行业动态

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

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

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

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

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

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

  1.对方是否能收到信息

  2.内容是否完整

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

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

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

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

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

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

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

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

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

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

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

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

  

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

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

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

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

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

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

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

        以上是关于软件测试的知识,由多测师亲自撰写,全网独家提供!  https://www.duoceshi.com/

新闻资讯

联系我们

联系人:何女士

手机:13825291265

电话:0755-21072941

邮箱:hr@duoceshi.com

地址: 广东省深圳市龙华区龙华街道清湖和平路62号优鼎企创园D栋201室,202室

用手机扫描二维码关闭
二维码