当前位置: 首页> 技术文章> 多测师浅谈TCP与UDP三次握手的原理

多测师浅谈TCP与UDP三次握手的原理

多测师浅谈TCP与UDP三次握手的原理

我们经常浏览网页,网络聊天等,这些都是通过TCP协议以及UDP协议进行传输的TCPUDP协议都工作在传输层,都是在程序之间以二进制数进行数据的传输

那么TCPUDP协议他们之间具体有什么区别呢?

答:一个基于链接,一个基于非链接

例:如果将人与人之间的通信比喻成进程与进程之间的通信

1.基于非链接可以比喻成写信:

1.对方是否能收到信息

2.内容是否完整

3.如果有两封信是否按照先后顺序进行接

2.基于链接可以比喻成打电话:

        打电话则不同于写信的操作,电话接通相互通话结束挂断等操作流程,都可以得到对方确认

总结:打电话是基于链接的就是TCP协议写信是基于非链接的也就是UDP协议

                  

多测师教育培训之什么是三次握手?:

答:三次握手是建立通讯链接的过程。

1.发送端(客户端)发送一个数据包给接端(服务器)询问我是否可以与你建立链接,这个数据包我们称为SYN包,同时SYN包里会生成序列号

2.如果服务端同意链接就会回复客户端,发送数据包SYN加上ACK+1包

注意:ACK包(ACK包有自己的固定格式,长度大小,由接方发送给请求方,表示发送的SYN信息确认无误,1表示数据确认有效)

3.客户端收到了服务端的确认信息(SYN+ACK)包后,向服务端发送ACK包,建立链接成功

 

总结:这个交互的过程分为三次,发送了3数据包,所以我们称次握手

upfile1629940790053.jpg

为什么是次握手而不是两次握手呢?

答:是为了防止已失效的报文信息突然又传到服务端引起错误

假如采用两次握手建立链接:

       客户端向服务端发送一请求数据包(SYN包),如果因为一些未知原因(网络等)导致没有到达服务器,就会在传输过程中某个节点产生滞留。

为了建立链接客户端会再次发送一个请求(SYN包)给服务端,这次的包正常送达,服务端回复SYN+ACK从而建立链接然而,当阻塞的第一个数据包突然恢复,第一SYN包也送达到服务器,那么这个时候客户端会误认为客户端又发起了一个新的请求,服务端就会认为是两个链接状态,而客户端会认为是一个链接从而导致两个端状态不一致

 

总结采用三次握手进行确认,往往就是为了解决网络信不稳定


    如需了解更多测试技术信息请关注:http://www.duoceshi.cn/ 深圳多测师软件与技术服务有限公司




上一篇: 杭州多测师第十期团建活动

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊