TCP连接结束需要四次握手的一种理解

简单理解就是,TCP连接是双向的,一个连接的关闭可以理解为两个单向连接的关闭。

那么一个A到B的单向连接的关闭需要几次来回呢?

典型做法是三次。

1.A发FIN到B(告知B自己话说完了)

2.B回ACK到A(告知A自己收到了)

3.A发ACK到B(告知B收到2了)

另一个办法是用超时代替第三次通信:通过前两步,已经说明AB间双向通畅,第二步B发送信息后,B等待一段时间,若未收到A的信息,就认为A收到了(没有绝对的可靠,只是通过1认为A->B的通路是ok的),这里就需要和A约定好,如果A在1MSL后没有收到,则告知B没收到,这样B等待2MSL就够了。

进一步的,关闭一个双向连接需要几次呢?

我们看一下图,STEP1/2容易理解,完成A->B的单向传输关闭,STEP3是试图关闭B->A的单向传输,STEP4是A确认收到并等待一段时间避免B未收到。这里的判断机制是,B完成STEP3后,一段时间内未收到STEP4中A的反馈,则会重发STEP3

实质是关闭两个单向连接,每次关闭需要三次,但是第三次可以用超时来做。此外,

STEP1.A->B: A request close TRANS(A->B)

STEP2.B->A: B acknowledge A's request and comfirm close TRANS(A->B)

STEP3.B->A: B request close TRANS(B->A)

STEP3.A->B: A acknowledge B's request and confirm close TRANS(B->A)

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值