3.2 多路复用和多路分用
- 多路复用/分用
- 分用如何工作?
- 无连接分用
- 面向连接的分用
- 面向连接的分用:多线程Web服务器
多路复用/分用
分用如何工作?
- 主机接收到IP数据报(datagram)
- 每个数据报携带源IP地址、目的IP地址。
- 每个数据报携带一个传输层的段(Segment)。
- 每个段携带源端口号和目的端口号
- 主机收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导向相应的Socket。
- TCP做更多处理
无连接分用
-
利用端口号创建Socket
DatagramSocket mySocket1 = new DatagramSocket(9911);
DatagramSocket mySocket2 = new DatagramSocket(9922); -
UDP的Socket用二元组标识
- (目的IP地址,目的端口号)
-
主机收到UDP段后
- 检查段中的目的端口号
- 将UDP段导向绑定在该端口号的 Socket
-
来自不同源IP地址和/或源端口号的IP数据包被导向同一个Socket
面向连接的分用
- TCP的Socket用四元组标识
- 源IP地址
- 源端口号
- 目的IP地址
- 目的端口号
- 接收端利用所有的四个值将Segment导向合适的Socket
- 服务器可能同时支持多个TCP Socket
- 每个Socket用自己的四元组标识
- Web服务器为每个客户端开不同的
Socket