多路复用和解复用
多路复用/解复用
在发送方主机多路复用
从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装(连头部信息用于以后的解复用)
在接收方主机多路解复用
根据报文段的头部信息中的IP地址和端口号接收到的报文段发给正确的套接字(和对应的应用进程)
多路解复用工作原理
- 解复用原理
- TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的socket,从而交给正确的进程
- 主机收到IP数据报
- 每个数据报有源IP地址和目标地址
- 每个数据包承载一个传输层报文段
- 每个报文段有一个源端口号和目标端口号(特定应用有著名的端口号)
- 主机联合使用IP地址和端口号将报文段发送给合适的套接字
无连接(UDP)多路解复用
- 在接收端,UDP套接字用二元组标识(目标IP地址、目标端口号)
- 当主机接收到UDP段时:
- 检查UDP段中的目标端 口号
- 将UDP段交给具备那个端口号的套接字
- 如果两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则被定位到相同的套接字
面向连接(TCP)的多路解复用
- TCP套接字:四元组本 地标识:
- 源IP地址
- 源端口号
- 目的IP地址
- 目的端口号
解复用:接收主机用 这四个值来将数据报 定位到合适的套接字
- 服务器能够在一个TCP端口上同时支持多个TCP套接字:
- 每个套接字由其四元组标识(有不同的源IP和源PORT)
- Web服务器对每个连接客户端有不同的套接字
- 非持久对每个请求有不同的套接字