03-TCP协议简介

82 阅读1分钟

TCP 协议简介

TCP(Transmission Control Protocol):传输控制协议。TCP协议工作在传输层,TCP 提供一种面向连接的可靠的字节流服务。

  • 面向连接:使用 TCP 的应用在传输数据时,必须先交换彼此数据,建立连接。这便是我们熟知的『三次握手』。当数据传输完成后,也要断开连接,这便是我们熟知的『四次挥手』。
  • 可靠:TCP 连接只有彼此双方通信。TCP 提供了一系列复杂的机制来保证连接成功建立、数据成功到达。包括但不限于:『块分割』、『确认』、『检验和』、『数据包重组』、『流量控制』、『滑动窗口』等。
  • 字节流:TCP 传输的内容是二进制数据,TCP 协议本身不对字节流的内容做任何解释。

面向连接

面向连接-3次握手简图

  • 客户端(发送端)需要先和服务端(接收端)先建立连接,然后才能传输数据。在建立连接时,需要交换一些初始数据(后面讨论)。

可靠

TCP头部

  • 分段发送

  • 确认机制

  • 重试机制

  • 头部字段和数据校验和

  • 包重组

  • 滑动窗口

  • 拥塞控制

  • ……

字节流

TCP字节流

  • TCP 发送数据内容是由 8bit 所构成的字节流,而不是使用 ASCII 字符串。

    这里也会产生我们做应用层协议封装的『TCP 粘包』问题,因为 TCP 在传输数据时不对数据做任何解释,多个数据包可能会被合并到一起发送。