Skip to main content

第七章 传输层

7.1 传输层的功能与作用

传输层位于网络层之上,主要负责端到端的通信,提供可靠或不可靠的数据传输服务。其核心功能包括:

  1. 数据分段与重组:将应用层数据分段,添加传输层首部,传输完成后重组数据。
  2. 端到端通信:确保数据准确地传输到目标主机的正确进程。
  3. 可靠性保证:通过确认机制、重传机制等实现数据的可靠传输(TCP协议)。
  4. 流量控制:避免数据发送方过快地向接收方传输数据,造成拥塞。
  5. 拥塞控制:防止网络过载,提升整体性能。
  6. 多路复用与多路分解:支持多个应用共享一个网络连接。

7.2 端到端通信与传输层协议

传输层实现端到端通信,主要通过两种协议来完成:

  1. TCP(Transmission Control Protocol)

    • 提供可靠的数据传输。
    • 使用连接机制,确保数据无丢失、无重复、按顺序到达。
    • 适用于需要高可靠性的应用(如文件传输、电子邮件)。
  2. UDP(User Datagram Protocol)

    • 提供无连接的数据传输。
    • 不保证数据可靠性,适用于实时性高、对丢包不敏感的场景(如视频流、在线游戏)。

7.3 TCP协议

7.3.1 连接管理

TCP通过三次握手建立连接,四次挥手断开连接:

  1. 三次握手(建立连接):
    • 客户端发送SYN(同步)请求。
    • 服务器回复SYN+ACK(同步+确认)。
    • 客户端发送ACK(确认)完成握手。
  2. 四次挥手(断开连接):
    • 主动关闭方发送FIN(结束)请求。
    • 被动关闭方发送ACK确认。
    • 被动关闭方再发送FIN请求。
    • 主动关闭方发送ACK确认,连接断开。

7.3.2 流量控制

  • 目的:控制发送方的发送速度,避免接收方因缓存不足而丢包。
  • 方法:基于接收方的窗口大小(接收窗口,Receive Window)调整发送速率。

7.3.3 拥塞控制

  • 目的:避免网络过载,维持数据流畅性。
  • 常见算法
    • 慢启动:初始发送速度较低,逐步增大窗口。
    • 拥塞避免:检测网络拥塞,调整窗口大小。
    • 快速重传:在未收到确认时,快速重发丢失的数据。
    • 快速恢复:避免拥塞后恢复数据传输。

7.4 UDP协议

UDP是一种简单的无连接传输协议,特点如下:

  • 无连接:数据在不建立连接的情况下发送,不维护会话状态。
  • 不可靠性:不保证数据到达顺序,也不提供重传机制。
  • 效率高:传输开销小,适合实时性高的应用。
  • 应用场景
    • 视频流传输(如IPTV、视频会议)。
    • 实时通信(如VoIP、在线游戏)。
    • DNS查询服务。

7.5 传输层端口与套接字

7.5.1 端口

  • 定义:端口是传输层用来标识应用程序的数字标识符。
  • 范围
    • 0-1023:知名端口,分配给常见服务(如HTTP的80,HTTPS的443)。
    • 1024-49151:注册端口,供特定服务使用。
    • 49152-65535:动态端口,为临时通信分配。

7.5.2 套接字(Socket)

  • 定义:套接字是IP地址和端口的组合,用于标识通信的端点。
  • 示例192.168.1.10:80 表示IP地址为192.168.1.10,端口为80的通信终点。

7.6 服务质量(QoS)与传输层的优化

7.6.1 服务质量(QoS)

  • 定义:QoS是指在网络中提供不同服务的优先级,确保关键应用获得较好的服务质量。
  • 核心指标
    • 带宽:数据传输的最大速率。
    • 延迟:数据从发送到接收的时间间隔。
    • 抖动:延迟的波动性。
    • 丢包率:传输中丢失数据包的比例。

7.6.2 传输层优化技术

  • 拥塞管理:采用高效的拥塞控制算法优化传输效率。
  • 数据压缩:通过压缩技术减少传输数据量。
  • 传输协议选择:根据应用场景选择合适的传输协议(如TCP或UDP)。

总结

传输层是实现端到端通信的核心部分,为应用层提供可靠或非可靠的传输服务。通过掌握TCP、UDP协议及其核心机制,可以更好地理解和优化网络通信。