【图解HTTP】与 HTTP 关系密切的协议 : TCP协议
确保可靠性的 TCP 协议
按层次分,TCP 位于传输层,提供可靠的字节流服务。
- 所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。
确保数据能到达目标(三次握手)
- 为了准确无误地将数据送达目标处,TCP 协议采用了三次握手(three-way handshaking)策略。
- 用 TCP 协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(flag)—SYN(synchronize) 和ACK(acknowledgement)。
- synchronize:使同步,acknowledgement:确认。
- 发送端首先发送一个带 SYN 标志的数据包给对方。
- 接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。
- 最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
除了上述三次握手,TCP 协议还有其他各种手段来保证通信的可靠性。