Post

TCP协议简介

【网络协议 10】TCP协议简介✅

本文只是对TCP协议做个简要的介绍。

TCP 协议,即传输控制协议,与UDP协议同处于传输层,同样使用相同的网络层,但 TCP 提供了一种可靠的、面向连接的数据传输服务,它会在两个使用 TCP 的应用之间建立一个 TCP 连接,在该连接上进行数据的传输。

TCP 通过以下方式提供可靠性:

  1. 应用程序被分割成 TCP 认为最合适发送的数据块。这点与 UDP 完全不同,应用程序产生的 UDP 数据报长度将保持不变,加上 IP 首部后,才会进行 IP 分片。
  2. 当 TCP 发出一个报文段后,它会启动一个定时器,等待目的端发确认收到这个报文段,如果没能及时收到该确认信息,则将重发这个报文段。
  3. 当 TCP 接收端收到发送端发来的 TCP 报文段时,它将发送一个确认,这个确认不是立即发送的,通常会推迟几分之一秒。
  4. TCP 将保持它首部和数据的校验和。这是一个端到端的校验和,如果收到的报文段的校验和有差错,TCP将丢弃该报文段,同时不发送确认收到的消息,从而使发送端超时重发。
  5. TCP 能提供流量控制。TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接受端只允许另一端发送接收端缓冲区所能接纳的数据,这将防止较快主机致使较慢主机的缓冲区溢出。
  6. 由于 TCP 报文段作为IP数据报来传输,IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能失序,如果必要,TCP 将对收到的数据进行重排序,将收到的数据以正确的顺序交给应用层。
  7. 由于 IP 数据报有可能发生重复,TCP 的接收端必须丢弃重复的数据。

从上面几点可以看出,TCP协议保持可靠性的方式就是超时重传,这种方式很好,虽然TCP也可以通过向源主机发送各种各样的ICMP报文或者来处理这些,但这也是不可靠的,试想,如果ICMP报文在发送回来的过程中丢失了,很明显这种方式就不可靠了。最可靠的方式就是只要得不到确认,就重新发送数据,直到得到确认为止。

This post is licensed under CC BY 4.0 by the author.