戏说 TCP 三次握手 四次挥手

三次握手

1)客户端发送SYN(sync,同步)请求+发送序号X,给服务器端;
2)服务器端收到后将收到的X加1(方便下次核对),回一个ACK(acknowledge,应答)+一个SYN标志请求+发送序号Y;
3)客户端收到后将收到的Y加1,回一个ACK;

翻译成人类的语言:
1)老K想要跟老F隔江聊天,老K先喊:“老F咱们来聊天不来(SYN)?”
2)声音传播有时间,这段时间老F可能又跟隔壁王大妈广场舞去了。并且江上有风,可能这会儿喊话老K听不见了。所以老F听到后,回喊:“可以啊(ACK),你现在有空吗/听得见我说话吗(SYN)?”
3)老K听到后,回喊:“听得到!~(ACK)”,然后聊起了天来。

PS:因为江上风大,为了确保他们听到了对方的每一句话,以防他们的聊天时文不对题,所以老K在第一次喊的时候在句尾会加句:”这是俺说的第一句话(X)”,老F听到后会掰着手指头心中默念:“再听到声音,应该是老K的第二句话了(X+1)”,同样老F说话的时候也是这样(Y,Y+1)。

四次挥手

1)客户端想终止通信,发送FIN标志+发送序号X,然后不再发送数据;
2)服务器端收到后,将X+1,并回复ACK+发送序号Y;
3)服务器端也终止通信,发送FIN+发送序号Z;
4)客户端收到后,将Z+1,回复ACK;

为什么是四次而不是三次?原因在于2)步,服务器端收到FIN指令后,并不能像三次握手时那样,当时就将FIN指令协同ACK一起发回去,因为服务器端“可能还有话没讲完”,所以得等讲完了才发FIN回去。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值