什么是传输层?
传输层是开放系统互连(OSI)通信模型的第4层,负责确保数据包在发送方和接收方之间准确可靠地传输。传输层最常使用传输控制协议(TCP)或用户数据报协议(UDP)。在TCP/IP网络模型中,传输层位于应用层和网络层之间。
在OSI模型中,传输层位于网络层和会话层之间。网络层负责接收数据包并将其发送到正确的计算机,传输层则接收数据包,检查错误并进行排序,然后将其发送给计算机上运行的正确程序的会话层。会话层接收格式完好的数据包,供应用程序使用数据。
传输层功能
总体功能是将应用层与繁琐的实现细节隔离,通过以下机制实现:
端到端通信 传输层为应用程序提供发送和接收数据流的能力。网络层将数据流分割成通过网络发送的数据包,并在另一端重建数据。如果数据包乱序到达,可通过分段编号重新排序,以正确顺序呈现数据。
可靠性 能够纠正网络数据传输过程中可能发生的错误。如果数据在传输过程中意外更改,错误校正和校验和会将其捕获。如果数据包丢失,会被检测并重传。如果单个数据包被重复,可被检测并丢弃。还可发送接收确认以保证交付。某些协议在数据包未接收或损坏时会发送消息。
流量控制 传输层能够避免发送超过可靠传输能力的数据量。可缓冲发送和接收数据,直到有足够的网络容量。如果接收缓冲区已满,可降低发送速率。同时实施拥塞控制,防止网络因过多重传消息而过载,通过动态重传计时器和慢启动机制实现。
寻址 能够与计算机上的正确应用程序通信。通常使用网络端口为机器上的每个发送和接收应用程序分配特定端口号。通过结合网络层使用的IP地址和传输层的端口,每个应用程序都可拥有唯一地址。
多路复用 任意数量的应用程序可使用任意数量的网络连接。例如,典型台式机可能只有一个以太网连接,但同时有多个互联网连接(如网页浏览器、视频流和邮件客户端)。相反,大型服务器可能只有一个应用程序(如SQL服务器),但有两个物理以太网连接以提供最大带宽。传输层确保每个应用程序公平分享网络连接。
TCP/IP模型中的传输层
OSI模型是理解系统间通信的理论框架,不直接关联任何具体实现。而TCP/IP是现代计算机网络和互联网实际使用的协议。
TCP/IP可能实现也可能不实现OSI模型的所有功能,支持的功能取决于使用的协议。TCP/IP使用更少的层,在OSI模型中,传输层位于网络层和会话层之间,而在TCP/IP中,它位于网络层和应用层之间。
传输层协议
UDP和TCP是最常见的传输层协议。
UDP 是一种简单快速的传输协议,用于无连接传输。由于不使用确认或重传,被认为不可靠,数据包可能丢失。UDP最适合实时数据,其中传输速度比可靠性更重要,如视频会议。
TCP 是功能更丰富的传输协议,面向连接。使用同步和确认消息确保交付,必要时重传和重新排序数据包,可协商发送和接收速率。TCP比UDP慢,是互联网上最常用的协议。
QUIC 前身为快速UDP互联网连接,是一种新协议。旨在结合TCP的最佳可靠性特性和UDP的速度,针对互联网和HTTP/3优化使用。采用前向纠错,更适合无线传输(如5G网络)。
其他传输层协议包括:
- 光纤通道协议
- 可靠数据协议
- 流控制传输协议