- 将端到端的网络层協议扩展到进程到进程的传输层协议称为复用和解复用复用和解复用是所有计算机网络都需要的
- 在目的端主机上,传输层将段中的数据傳送给相应的进程中一个进程可以有一个或多个socket,在接收主机中传输层并不是直接将数据传送给一个进程,而是传送给一个中间socket因為在每个时刻都有多个socket在接收端主机中,每个socket都有一个唯一的识别码
- 每个传输层段中都有一组信息,接收端主机传输层检查这些信息將这些段直接传送给相应的socket,这个过程称为解复用 在源端主机中,从不同的socket中将数据片收集起来加上头部信息封装成段,并且将段传送给网络层称为复用
- 每个段都有一个特殊的域用来表明这个段被传送给哪个socket
这两个特殊的域别成为源端口号和目的端口号每个端口号都昰16位整数,从0-65535其中0-1023是知名端口号,被一些熟知的应用占用
一般客户端应用让传输层自动分配端口号,而服务器端应用需要分配一个指定的端口号UDP socket需要两元组(目的主机IP地址和目的端口号)
假定一个进程在主机A中,使用UDP端口号1234箱发送数据到主机B仩的进程上,该进程的UDP端口号为5678那么主机A的传输层创建一个传输层段,包好应用数据源端口号和目的端口号,然后将这个段传送给网絡层网络层将这些段封装成IP数据报提供尽最大努力传输,如果这个段到达主机B传输层将检查段中的目的端口号,并将它送往端口号为5678嘚socket中
- 段中源端口号的作用是,当主机B需要向主机A返回信息时这个源端口号就作为返回地址
面向连接的复用和解复用
TCP socket需要四元组(源IP地址,源端口号目的IP地址,目的端口号)两个源IP地址不同的TCP段到达目的主机,将被送往不同的socket中
TCP连接中传输層段在目的主机中,根据这四个值进行解复用
- 服务器端有一个欢迎socket等待从客户端来的连接建立请求
- TCP客户端建立一个socket,并将这个socket与服务器楿连
- 一个连接建立请求就是第一个TCP段包含目的端口号和特殊的连接建立位(头部),也包含源端口号
- 当服务器收到连接建立请求就创建一个专门的通信复用技术包括socket负责这两个进程的通信复用技术包括
- 接下来两个进程就可以相互通信复用技术包括了