TCP 为什么三次握手而不是两次握手

可以只看这一篇:https://mp.weixin.qq.com/s/NIjxgx4NPn7FC4PfkHBAAQ

一句话概括,TCP连接握手,握的是啥?   

通信双方数据原点的序列号!

参考:TCP 为什么三次握手而不是两次握手

Why do we need a 3-way handshake? Why not just 2-way?

 

 why not just use a two-way handshake? The short answer is because a two way handshake would only allow one party to establish an ISN, and the other party to acknowledge it. Which means only one party can send data.

But TCP is a bi-directional communication protocol, which means either end ought to be able to send data reliably. Both parties need to establish an ISN, and both parties need to acknowledge the other's ISN.

为什么不只是使用双向握手? 简短的回答是因为双向握手只允许一方建立ISN,而另一方则承认它。 这意味着只有一方可以发送数据

TCP是一种双向通信协议,这意味着任何一端都应该能够可靠地发送数据。 双方都需要建立一个ISN,双方都需要承认对方的ISN。

å¨è¿éæå¥å¾çæè¿°

四次挥手:

TCP连接是双向传输的对等的模式,就是说双方都可以同时向对方发送或接收数据。当有一方要关闭连接时,会发送指令Fin告知对方,我要关闭连接了。这时对方会回一个ACK,此时一个方向的连接关闭。

但是另一个方向(假设A)仍然可以继续传输数据,等到发送完了所有的数据后,会发送一个FIN段来关闭此方向(A)上的连接。

接收方发送ACK确认关闭连接。注意,接收到FIN报文的一方只能回复一个ACK, 它是无法马上返回对方一个FIN报文段的,因为结束数据传输的“指令”是上层应用层给出的,我只是一个“搬运工”,我无法了解“上层的意志”

比较三次握手与四次挥手,其实是把三次握手中的第二次握手 ACK+SYN 拆分发送。

参考:“三次握手,四次挥手”你真的懂吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值