一、主要的概念
多路复用:从源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在多路分解时使用)从而生成报文段,然后将报文段传递到网络层的工作称为多路复用。
多路分解:将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
以上就是多路复用和多路分解的概念,对我们理解网络层和运输层在进行数据交互的时候很重要。如果觉得说的还不是很直接的话,接下来将用图示再进一步分析
图1-1
如上图所示:A,B,C分别表示三台pc。p1,p2,p3,p4分别表示pc里面运行的进程。注意到图1-1中,中间的主机的运输层必须将从其下的网络层收到的报文段进行“多路分解”后交给其上的p1或者p2进程。这一个过程是通过将到来的报文段数据定向到相应进程的套接字来实现的(如何定位到准确的套接字?)中间主机的运输层也必须收集这些套接字输出的数据形成运输层报文段,然后将其传递给下面的网络层。多路复用,则是应用层通过”多路复用“定向到相应进程的套接字,将数据传给运输层。
二、运输层和网络层的关系:
运输层为卞在不同主机上的进程之间提供逻辑通信,而网络层提供主机之间的逻辑通信。
为了更好的理解上面的概念我们在这里打个比方来分析这种差别,考虑有两个家庭,一家位于美国东海岸,一家位于美国西海岸,每家有12个孩子。东海岸的孩子们是西海岸家庭孩子们的堂兄弟姐妹。这两个家庭的孩子们喜欢彼此通信,每个人每周要给每个堂兄弟姐妹写一封信,每封信都用单独的信封通过传统的邮政服务发送。因此,每个家庭每周向另一家庭发送144封信。(如果他们有电子邮件的话,这些孩子可以省不少钱!)每个家庭有一个孩子负责收发邮件,西海岸家庭是Ann而东海岸家庭是Bill。每周Ann去她所有的兄弟姐妹那里收集邮件,并将这些邮件交到每天到家门口的邮政运输车上。当信件到达西海岸家庭时,Ann也负责将信件发到她的兄弟姐妹手上,东海岸家庭中Bill也负责类似工作。
在这个例子中,邮政服务为两个家庭间提供逻辑通信,邮政服务器将信件从一家送往另一家,而不是从一个人送往另外一个人。另一方面,Ann和Bill为堂兄弟姐妹之间提供逻辑通信,Ann和Bill从兄弟姐妹那里收取或到兄弟姐妹那里交付信件。从堂兄弟姐妹们的角度来看,Ann和Bill就是邮件服务,尽管他们只是端到端交付过程的一部分(即端系统部分)在解释运输层和网络层之间的关系时,这个家庭的例子是很形象的。
应用层报文 = 信封上的字
进程 = 堂兄弟姐妹
主机 (又称为端系统) = 家庭
运输层协议 = Ann和Bill
网络层协议 = 邮政服务(包括邮政运输车)
三、面向连接的多路复用与多路分解
未完待续
这个例子很直白的讲清楚了,网络层和运输层的关系。应用层和运输层的关系最主要的就是多路复用和多路分解了