TCP 协议,即传输控制协议,是运输层十分重要也复杂的协议,可靠且完备(当然,因为可靠和完备,也牺牲了一些性能)。
-
TCP 的主要特点:
(1)TCP 是面向连接的运输层协议。即是在发送数据前,必须先建立联系(当然,对于每一个数据来说,都需要前面建立联系,而第一次的联系,就没有前面的联系了,但那不是发送数据的,而是建立联系请求的)。我们一直听到的三次握手,四次挥手就是 TCP 用来建立和断开联系的。
它就像会建立一条固有的通道,而 UDP 并没有建立固有的通道。
(2)TCP 的连接只能是两个端点,即是一对一的。
(3)TCP 有健壮的体系,能够提供可靠交付的服务。通过 TCP 发送的数据,无差错、不丢失、不重复(其实是就算丢失,也可以重发,所以应该说,不是不犯错,是犯了错也有很强的容错率,可以弥补)。
(4) TCP 提供全双工通信,即是可以在发的时候,保持接收状态。这是 HTTP 应用能够使用流水线式连续连接的基础。
(5) TCP 面向字节流。就是发送的是一段字节,在运输层里 TCP 会对内容进行合并裁剪,而不会是像 UDP 直接无脑发送。那 TCP 怎么确定一个 package 要多少字节呢? TCP 会根据对方给的窗口值和当前网络拥塞程度来决定一个分组