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

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

-
分段发送
-
确认机制
-
重试机制
-
头部字段和数据校验和
-
包重组
-
滑动窗口
-
拥塞控制
-
……
字节流

-
TCP 发送数据内容是由 8bit 所构成的字节流,而不是使用 ASCII 字符串。
这里也会产生我们做应用层协议封装的『TCP 粘包』问题,因为 TCP 在传输数据时不对数据做任何解释,多个数据包可能会被合并到一起发送。