TCP的特点#

TCP的三个特点:面向连接,可靠传输,基于字节流的传输层通信协议。

TCP连接#

怎么理解什么是连接#

用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。

所以,建立一个TCP连接需要客户端与服务器达成三个信息的共识。

  1. Socket:IP地址和端口号
  2. 序列号:解决乱序问题
  3. 窗口大小:流量控制

如何确定一个唯一的TCP连接#

TCP连接由四元组唯一标识:源IP地址、源端口号、目的IP地址、目的端口号。

TCP和UDP的区别#

TCP和UDP的报头对比

UDP 不提供复杂的控制机制,利用 IP 提供面向「无连接」的通信服务。

MTU - (TCP 标头 + IP 标头) = MSS

UDP vs TCP Header

  1. 连接
  • TCP 是面向连接的传输层协议,传输数据前先要建立连接。
  • UDP 是不需要连接,即刻传输数据。
  1. 服务对象
  • TCP 是一对一的两点服务,即一条连接只有两个端点。
  • UDP 可以支持一对多、多对多的通信。

结构模型#

OSI 七层模型#

osi7层

TCP/IP 五层模型#

osi7层

TCP 为什么需要3次握手#

三个方面分析三次握手的原因:

  • 三次握手才可以阻止重复历史连接的初始化(主要原因)
  • 三次握手才可以同步双方的初始序列号
  • 三次握手才可以避免资源浪费

TCP 建立连接时,通过三次握手能防止历史连接的建立,能减少双方不必要的资源开销,能帮助双方同步初始化序列号。序列号能够保证数据包不重复、不丢弃和按序传输。

不使用「两次握手」和「四次握手」的原因:

  • 「两次握手」:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;
  • 「四次握手」:三次握手就已经理论上最少可靠连接建立,所以不需要使用更多的通信次数。
本站总访问量  ·  访客数
你的IP 获取中…