LINUX教程:解读TCP三次握手

LINUX教程:解读TCP三次握手,第1张

概述介绍《LINUX教程解读TCP三次握手》开发教程,希望对您有用。

《liNUX教程:解读TCP三次握手》要点:
本文介绍了liNUX教程:解读TCP三次握手,希望对您有用。如果有疑问,可以联系我们。

三次握手所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时取消联系,并建立虚连接.

一、七字真言解读三次握手二、为什么需要三次握手?

主机建立连接为什么需要三次握手?为了防止已经是失效连接突然又重新回到了服务端而产生的错误.“比如一个客户端发出一个连接哀求报文虽然没有丢失,但是由于一些原因在在某个网络节点中长时间滞留,以至于在断开连接后才到达服务端.这本身就是一个已经失效的报文.但是服务器误以为是客户端的又一个新的哀求.假设没有三次握手那么只要服务端发出确认链接就建立了.由于客户端也没有给服务端发哀求,因此也不回复服务端的确认.但是服务端确认为新的连接开始了,等待客户端发数据.这样就容易造成服务端的资源的浪费.采用三次握手可以防止这种情况发生.

三、图解三次握手、四次挥手三次握手
第一次握手:客户端申请连接(SYN=1),发送seq=j的数据包
第二次握手:服务器端申请连接(SYN=1),确认收到客户端的申请(ACK=1).;服务器期望下次收到J+1数据包(ack=j+1),发送seq=k的数据包
第三次握手:客户端确认收到哀求(SYN=1),发送服务器期望的数据包(j+1).完成连接

四次挥手
第一次挥手:客户端哀求断开连接(FIN=1),发送序号为j的数据(seq=u)
第二次挥手:确认收到哀求(ACK=1),我期望收到u+1d的数据包(ack=u+1),发送序号为k的数据(seq=k)
第三次挥手:服务器申请断开连接(FIN=1),确认收到你之前的哀求(ACK=1);期望收到u+1的数据(ack=u+1),发送序号为v的数据
第四次挥手:确认收到哀求(ACK=1),发送序号为u+1的数据(seq=u+1).断开连接

四、为什么握手三次,挥手四次?

三次握手
因为要保证信道的可靠,就需要双方沟通并且达成一致.而要办理这个文件3次是最小值.所以三次握手并不是真对TCP来说的,而是为了保证信道的可靠.
个人理解:三次握手并不准确,准确的说是双方各一次握手,各确认一次.中间第二次是握手与确认合并在一起

为什么挥手比握手多一次
因为tcp连接是全双工的,因此每个方向都必需单独的断开连接客户端申请断开连接,只是不再发送数据,还能接收数据.需要等待服务端将数据发送完毕后,等待服务端申请断开连接.

本文永远更新链接地址

学习更多liNUX教程,请查看站内专栏,如果有liNUX疑问,可以加QQ交流《liNUX教程:解读TCP三次握手》。

总结

以上是内存溢出为你收集整理的LINUX教程:解读TCP三次握手全部内容,希望文章能够帮你解决LINUX教程:解读TCP三次握手所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1042256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存