TCP 与 UDP

第 6 章 TCP 与 UDP

在 TCP/IP 中能够实现传输层功能的,具有代表性的协议是 TCP 和 UDP。

  • TCP (Transmission Control Protocol)是面向连接的、可靠的流协议。具有顺序控制、重发控制、流量控制、拥塞控制。
  • UDP (User Datagram Protocol)是不具备可靠性的数据报协议。

TCP

提供丢包重发,以及顺序控制。

TCP 通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

  1. 通过序列号与确认应答提高可靠性;
  2. 略大于一个 RTT ,进行超时重发;
  3. 使用 TCP 首部控制字段,进行三次握手(四次挥手),进行连接管理;
  4. TCP 以段为单位发送数据(MSS:Maximum Segment Size);
  5. 使用窗口控制(滑动窗口)提高发送速度;同时发送端根据窗口大小对发送数据的量进行流量,
  6. 使用重发控制,解决丢包问题。
  7. 使用拥塞控制,避免通信开始时连续发包导致的网络拥堵,避免网络拥塞情况的发生。
  8. 提高网络利用率的规范;

    Nagle 算法:当发送端数据很少时进行延迟发送的一种处理机制。会发生某种程度的延迟。
    延迟确认应答:延迟一段时间,再发送确认(一定程度可以减少确认次数)。(可提高网络利用率从而降低计算机处理负荷)
    捎带应答(PiggyBack Acknowledge):TCP 的确认应答和回执数据通过一个包发送。(需启动延迟确认应答才能实现捎带应答)

UDP

UDP 不提供复杂的而控制机制,利用 IP 提供面向无连接的通信服务。收到数据即原样发送。

UDP 主要应用于那些对高速传输和实时性有较高要求的通信和广播通信。UDP 无重发机制,从而也就不会有声音大幅度延迟到达的问题。

应用:
包总量较小的通信(DNS、SNMP等)
音视频等多媒体通信(即时通信)
限定于 LAN 等特定网络的应用通信
广播通信(广播、多播)


来源:https://leunggeorge.github.io/

0%