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

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

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

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

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

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

1.对方是否能收到信息

2.内容是否完整

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多测师111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值