计算机网络之探赜索隐
本讲主题
多路复用和多路分用
多路复用/分用
Why?
如果某层的一个协议对应直接上层的多个协议/实体,则需要服用/分用
接收端进行多路分用:
传输层依据头部信息将接收到的Segment交给正确的Socket,即不同的进程
发送端进行多路复用:
从多个Socket接收数据,为每块数据封装上头部信息,生成Segment,交给网络层
分用如何工作?
1、主机接收到IP数数据报(datagram)
每个数据报携带源IP地址、目的IP地址
每个数据报携带一个传输层的段(Segment)
每个段携带源端口号和目的端口号
// 数据报:在网络层经过封装后的数据单元
// 段:在传输层经过封装后的数据单元
2、主机接收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导向相应的Socket
TCP做更多处理
TCP/UDP段主要包含:源端口号、目的端口号、其他头部信息、应用数据(message)
无连接分用
1、利用端口号创建Socket
DatagramSocket mySocket1 = new DatagramSocket(9911);
DatagramSocket mySocket2 = new DatagramSocket(9922);
2、UDP的Socket用二元组标识
(目的IP地址,目的端口号)
3、主机接收到UDP段后
检查段中的目的端口号
将UDP导向该端口号所在的Socket
4、来自不同源IP地址和/或源端口号的IP数据包被导向同一个Socket
面向连接的分用
1、TCP的Socket用四元组标识
源IP地址
源端口号
目的IP地址
目的端口号
2、接收端利用所有的四个值将Segment导向合适的Socket
3、服务器可能同时支持多个TCP Socket
每个Socket用自己的四元组标识
4、Web服务器为每个客户端开不同的Socket
面向连接的分用:多线程Web服务器
// 聂兰顺老师的ppt比较简略,建议对照课程视频进行学习,精彩部分不容错过~
————————————
仅用于本人学习
来源:中国大学慕课-计算机网络-哈尔滨工业大学-李全龙、聂兰顺