特点

  1. TCP 是面向连接的运输层协议。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接。
  2. 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一)。
  3. TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复、并且按序到达。
  4. TCP 提供全双工通信。 TCP 允许通信双方的应用进程在任何时候都能发送数据。
  5. 面向字节流。

TCP 的连接

TCP 连接的端点叫套接字(socket)或插口。
套接字socket = (IP地址: 端口号)

可靠传输的工作原理

TCP 发送的报文段是交给 IP 层传送的。但 IP 层只能提供尽最大努力服务,也就是说, TCP 下面的网络所提供的是不可靠的传输。因此, TCP 必须采用适当的措施才能使得两个运输层之间的通信变得可靠。
主要是通过一些可靠传输协议,当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告诉发送发适当降低发送数据的速度。

停止等待协议

“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
当出现差错的时候,会进行超时重传。即如果发送方超过一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面发送过的分组。

连续 ARQ 协议

连续 ARQ 协议规定,发送方每收到一个确认,就把发送串口向前滑动一个分组的位置。
接收方一般都是采用累积确认的方式。这就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。