三次握手(tcp三次握手的通俗理解)
TCP协议需要经过三次握手才能建立连接,而像SCTP协议一样,要经过四次握手才能建立连接 。我们不禁要问,为什么TCP不握手两次或四次就建立连接呢?
TCP是一种可靠的传输控制协议 。它必须做两件事,一是保证数据的可靠传输,二是尽可能提高传输效率 。三次握手正是为了这两件事而出现的 。
可靠性的实现基于假设A和B都想建立TCP连接 。
首先,操作系统随机选择一个32位的序列号 , 假设A的初始序列号为1000,然后对要发送的数据进行编号,1001、1002、1003 。...
a会把初始序列号ISN告诉B , 让B知道什么样的序列号数据是合法的,什么样的序列号数据是非法的 。例如,接收序列号999是非法的 。
b也会确认a的每一个数字数据,如果数字是2001,1001-2000,说明1000字节已经安全到达 。
同样 , B也会做类似的操作 。如果B的初始序列号ISN是2000,B也将开始编号2001、2002和2003 。...
然后B告诉A初始序列号ISN,A也可以确认B发送了多少字节 , 这些数据是否合法 。
通过以上步骤,我们不难发现,TCP握手的本质是双方数据来源的序列号,从而达到可靠性 。
传输效率要实现可靠的数据传输,为什么只需要三次握手?如果你握两次手 , 好吗?
两次握手:
1.a发送同步信号SYN+A的初始序列号 。
2.B发送同步信号的初始序列号SYN+B+B的ACK序列号
两次握手会产生一个问题,B无法知道A是否收到了自己的同步信号 。一旦这个同步信号丢失,A和B就无法对B的初始序列号达成一致 。
显然,两次握手是不可取的 。
四次握手呢?
1.a发送同步信号SYN+A的初始序列号 。
2.b确认收到A的同步信号,将A的ISN记录到本地,命名为b的ACK序列号 。
3.发送同步信号SYN+B的初始序列号 。
4.A确认收到B的同步信号,记录B的ISN到本地,命名A的ACK序列号 。
显然不需要四个步骤 , 2和3的和就可以组合起来提高连接速度和效率 。
【tcp三次握手的通俗理解 三次握手】TCP协议需要考虑可靠性和传输效率 。知道了这些,我们就能理解为什么只能是三次握手,而不是两次或四次 。
推荐阅读
- 小学生台历的制作图片 日历怎么做
- 日常生活中的地理现象有哪些
- 莲花菜怎么做好吃 莲花菜做好吃的方法
- 心火烧歌词 心火烧歌曲简介
- 明朝帽子有什么特点?怎么做出来的
- 王者荣耀ios转安卓申请 王者荣耀ios转安卓申请方法
- 糖尿病早期10个征兆 糖尿病症状
- 鼠标能托运吗
- 燕窝的做法大全及功效,燕窝的具体做法有哪些