TCP三次握手

TCP的三次握手是一个很重要的概念,这里重点梳理一下。

建立连接



如上所示

客户端:发送syn=1,告诉服务器,我要和你建立连接,而且发送序列号。

服务器:发送syn=1 ack,ACK,告诉客户端可以连接了。

客户端:发送syn=0,发送ack

在很多的文章里面有ACK和ack两种表示,ACK是单纯的确认与否(确认为1)ack则是一种报文的下一个请求,如果客户端发送的数据编号为n,那么服务器的ack=n+1,表示要第n+1个数据。

下面的图更详细了


断开连接


客户端:发送FIN标志,告诉服务器,我发完了。

服务器:发送ACK,知道了。然后告诉下面的应用程序小弟,TCP要断开了啊。

服务器:发送FIN,我也要关了。

客户端:发送ACK,我收到了你的回复。然后客户端就彻底关了。


下面这图更详细。


为啥最后又要客户端要发送确认呢?怕丢包。如果服务器没收到确认,还要在发一个FIN,这样就可以保证让客户端关闭了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值