这里是为了讲解TCP和UDP做准备。
复用/分用
如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用
传输层都是为了应对应用层中每一个主机当中有多个不同的socket,接收端需要进行分用,将获取的报文分发给不同的进程,发送端需要进行复用,将多个进程的消息封装在进程中,再进行发送。
如何工作
-
主机接收到IP数据报(datagram)
- 每个数据报携带源IP地址、目的IP地址。
- 每个数据报携带一个传输层的段(Segment)。
- 每个段携带源端口号和目的端口号
主机收到Segment之后,传输层协议提
取IP地址和端口号信息,将Segment导
向相应的Socket
无连接分用
-
UDP的socket用二元组(目的IP地址,目的端口号)进行标识。
-
-
主机收到UDP段后
- 检查段中的目的端口号
- 将UDP段导向绑定在该端口号的Socket
-
来自不同源IP地址和/或源端口号的IP数据报被导向同一个Socket
面向连接的分用
TCP的Socket用四元组标识
- 源IP地址
- 源端口号
- 目的IP地址
- 目的端口号
- 接收端利用所有的四个值将
Segment导向合适的Socket
- 服务器可能同时支持多个TCP
Socket - 每个Socket用自己的四元组标识
- Web服务器为每个客户端开不同的Socket