传输层概述
传输层是忽略了传输过程中的路由器,将两个设备之间的传输的过程抽象为这两个设备的直接传输(逻辑上的传输)。也因此,路由器是没有传输层(路由器不会主动、人为的传输数据)。
传输层中有两种协议:TCP 与 UDP。其中 TCP 是可靠传输协议,UDP 是不可靠传输协议。
Multiplexing & Demultiplexing
多路复用(Multiplexing)是指多个应用层应用使用传输层,使用同一个传输层模块时,传输层模块需要区分这写不同的应用层数据。反之,多路分解(Demultiplexing)是指将得到的报文转发给正确的应用层应用。

对于 UDP 协议,为了实现 Multiplexing 和 Demultiplexing,其协议中规定了需要有源端口号和目标端口号;对于 TCP 协议,规定了需要有源 IP 地址、源端口号、目标 IP 地址、目标端口号。
应用程序使用网络进行通讯时,系统提供了套接字这一抽象。上述也就表明如果使用的是 UDP 协议,那么套接字中使用的是端口进行多路复用与多路分解;如果使用的是 TCP,那么除了端口外还使用了 IP 地址。
端口
端口号(port number)相当于程序的进程号,对于同一套协议下(TCP/UDP)端口号必须不同。端口号的取值范围为 \((0,65535]\),其中,\((0,1023]\) 分配给一些特定的服务用,剩余的 \([1024,65535]\) 为自由使用的端口号。