TCP 为什么是三次握手,而不是两次或四次?

TCP是一种全双工的可靠传输协议,核心思想:保证数据可靠传输以及数据的传输效率

A------B

二次握手:

1.A发送同步信号SYN+A's initial sequence number

2.B发送同步信号SYN+B's initial sequence number +B's ACK sequence number

这里存在一个问题,假设A和B初始列号一致,但B无法知道A是否已经收到自己的SYN,如果这个SYN丢失,则A和B的初始序号将无法达成一致,从而不能保证数据的可靠传输。

四次握手:

1.A发送SYN+A‘s initial sequence number

2.B确认收到A的同步信号,并记录A’s ISN 到本地,命名B's ACK sequence number

3.B发送同步信号SYN+B‘ISN

4.A确认收到A的同步信号,并记录B’s ISN到本地,命名A's ACK sequence number

其中 2,3两步可以合并,提高数据的传输效率。

TCP 为什么是三次握手,而不是两次或四次?

 

 
posted @ 2019-02-01 14:48  Archer-Fang  阅读(598)  评论(0编辑  收藏  举报