TCP-IP协议详解(1)邮差与邮局 (

TCP-IP协议详解(1)邮差与邮局 (

信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是由于人们已预先设定好狼烟这个物理信号代表了“敌人入侵”这1抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(MorseCode),使用短信号和长信号的组合,来代表不同的英文字母。比如SOS(***—***,*代表短信号,-代表长信号)。这样“***=S,—=O”就是摩尔斯码规定的协议。但是更进一层,人们会知道SOS是求助信息,缘由是我们有“SOS=求救”这个协议存在在脑海里。所以”***—***=SOS=求救”是一个由两个协议组成的分层通讯系统。

使用MorseCode的电报机

计算机之间的通讯也要遵守不同层次的协议,来实现计算机的通讯。

物理层(physicallayer)所谓的物理层,是指光纤、电缆或电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,比如亮度、电压或振幅。对数字运用来讲,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列。

连接层(linklayer)在连接层,信息以帧(frame)为单位传输。所谓的帧,是一段有限的0/1序列。连接层协议的功能就是辨认0/1序列中所包括的帧。比如说,根据一定的0/1组合辨认出帧的起始和结束。在帧中,有收信地址(Source,SRC)和送信地址(Destination,DST),还有能够探测毛病的校验序列(FrameCheckSequence)。固然,帧中最重要的最重要是所要传输的数据(payload)。这些数据常常符合更高层协议,供络的上层使用。与数据相配套,帧中也有数据的类型(Type)信息。连接层协议不关心数据中到底包括甚么。帧就像是一个信封,把数据包裹起来。

以太(Ether)和WiFi是现在最常见的连接层协议。通过连接层协议,我们可以建立局域的以太或WiFi局域,并让位于同一局域络中的两台计算机通讯。连接层就像是一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信(帧)交给他,让他送给同一社区的另外一户人家。

连接层:社区小邮差

络层(worklayer)不同的社区之间该如何通讯呢?换句话说,如何让WiFi上的1台计算机和以太上的另外一台计算机通讯呢?我们需要一个“中间人”。这个“中间人”必须有以下功能:1.能从物理层上在两个络的接收和发送0/1序列,2.能同时理解两种络的帧格式。路由器(router)就是为此而产生的“翻译”。一个路由器有多个卡(NIC,NetworkInterfaceController),每一个NIC可以接入多个络,并理解相应的连接层协议。在帧经过路由到达另一个络的时候,路由会读取帧的信息,并改写以发送到另一个络。所以路由器就像是在两个社区都有分支的邮局。一个社区的邮差将信送到本社区的邮局分支,而邮局会通过自己在另一个地区的分支将信转交给另一个社区的邮差手中,并由另一个社区的邮差终究送到目的地。

通过路由连接的WiFi和以太

全部通讯进程以下:

WiFi上的计算机1-路由WiFi接口-路由以太接口-以太上的计算机2

(蓝色表示WiFi络,绿色表示以太络)

在连接层,我们的一个帧中只能记录SRC和DST两个地址。而上面的进程需要经过四个地址(计算机1,WiFi接口,以太接口,计算机2)。明显,仅仅靠连接层协议没法满足我们的需要。由于连接层协议开发在先,我们没法改动连接层协议,只能在连接层的数据(payload),也就是信纸内部下功夫了。IP协议应运而生。

计算机1,路由器和计算机2都要晓得IP协议。当计算机1写信的时候,会在信纸的开头写上这封信的动身地址和终究到达地址(而不是在信封上),而在信封上写上要送往邮局。WiFi的邮差将信送往邮局。在邮局,信被打开,邮局工作人员看到终究地址,因而将信包装在一个新的信封中,写上出发地为邮局,到达地为计算机2,并交给以太的邮差,由以太的邮差送往计算机2。

(IP协议还要求写如诸如校验等信息,交通状况等信息,以保护通讯的稳定性。)

转交给邮局

在连接层,邮差只负责在本社区送信,所以信封上的地址总是“第一条街第三座房子”或说“中心十字路口拐角的小房子”这样一些本地人材了解的地址描写,这给邮局的工作带来不便。所以邮局要求,信纸上写的地址必须是一个符合官方规定的“邮编”,也就是IP地址。这个地址为世界上的每个房子编号(邮编)。当信件送到邮局的时候,邮局根据邮编,就能查到对应的地址描写,从而能顺利改写信封上的信息。

每一个邮局一般连接多个社区,而一个社区也可以有多个邮局,分别通往不同的社区。有时候一封信要通过多个邮局转交,才能终究到达目的地,这个进程叫做route。邮局将分离的局域络连接成了inter,并终究构成了覆盖全球的互联。

传输层(transportlayer)上面的三层协议让不同的计算机之间可以通讯。但计算机中实际上有许多个进程,每一个进程都可能有通讯的需求。这就好像1所房子里住了好几个人(进程),如何让信精确的送到某个人手里呢?遵照之前相同的逻辑,我们需要在信纸上写上新的信息,比如收信人的姓名,才可能让信送到。所以,传输层就是在信纸的空白上写上新的“收信人”信息。每所房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。

管理员

传输层协议,比如TCP和UDP,使用端口号(portnumber)来辨认收信人(某个进程)。在写信的时候,我们写上目的地的端口。当信到达目的地的管理员手中,他会根据传输层协议,辨认端口号,将信送给不同的人。

TCP和UDP协议是两种不同的传输层协议。UDP协议类似于我们的信件交换进程。TCP协议则好像两个情人间的频繁通讯。一个小情人要表达的感情太多,以致于连续写了好几封信。而另外一方必须将这些信按顺序排列起来,才能看明白全部的意思。TCP协议还有控制络交通等功能。

运用层(applicationlayer)通过上面的几层协议,我们已可以在任意两个人(进程)之间进行通讯。但是每个人实际上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通讯,会用严格的律师术语,以避免产生纠纷。再比如外交官之间的通讯,必须符合一定的外交格式,以避免产生外交误解。再比如特务通过暗号来传递加密信息。运用层协议是对信件内容进一步的用语规范。运用层的协议包括用于Web阅读的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。

外交通讯

总结总过络分层,我们从原始的0/1序列抽象出

本地地址(邮差)、邮编(邮局)、收信人(管理员)、收信人行业(用语规范)

这些概念。这些概念终究允许互联上的散布于两台计算机的两个进程相互通讯。

写信人必须依照各层的协议,封装好全部信封(encapsulation);而收信人则依照相反的顺序,来拆开这个信封。整个过程是可读信息-二进制-可读信息。计算机只能理解和传输0/1序列,而计算机的用户则总是输入和输出可读信息。络协议保证了可读信息在全部转换和传输进程中的完整性。

计算机协议本身还有更多的细节需要深入。这篇文章只是从分层的角度描写各个层次所实现的功能。









































北京哪家医院白癜风较好
白癜风怎么治最好



转载请注明:http://www.danbaopay.com/zydy/638.html