概念

运输层的多路复用与多路分解,也就是将由网络层提供的主机到主机交付服务延伸到为运行在主机上的应用程序提供进程到进程的交付服务。

假定你正坐在计算机 前下载Web页面, 同时还在运行一个FTP会话和两个Telnet会话。这样你就有4个网络应 用进程在运行,即两个Telnet进程,一个FTP进程和一个HTTP进程。当你的计算机中的运输层从底层的网络层接收数据时,它需要将所接收到的数据定向到这4个进程中的一个。这就是多路分解

多路复用正相反,多个进程发送数据时,全部汇聚给传输层,这就是多路复用

每一个孩子通过他们的名字来标识。当Bill从邮递员处收到一批信件,并通过查看收信人名字而将信件亲手交付给他的兄弟姐妹们时,他执行的就是一个分解操作。当Ann从兄弟姐妹们那里收集信件并将它们交给邮递员时,她执行的就是一个多路复用操作

运输层多路复用要求:

①套接字有唯一标识符

②每个报文段有特殊字段来指示该报文段所要交付到的套接字。如图所示,这些特殊字段是源端口号字段(source port number field)和目的端口号字段(destination port number field)

Untitled

在主机上的每个套接字能够分配一个端口号,当报文段到达主机时,运输层检査报文段中的目的端口号,并将其定向到相应的套接字。

<aside> 💡 UDP是根据 (目的端口、目的IP)进行查找的socket

TCP是根据(目的端口、目的IP、源端口、源IP)进行查找的socket

</aside>

一个socket对应一个进程,即创建socket的进程

Untitled

Untitled