讲的最好系列之--TCP三次握手

TCP三次握手是什么?

	第一次握手:客户端请求服务器建立连接
	第二次握手:服务端授予客户端连接
	第三次握手:客户端确认服务端授予的连接

为什么要进行TCP握手?

	TCP三次握手的目的是保证通信双方都能够
正常发送和接收信息

为什么要进行三次握手?

	第一次握手:客户端向服务端发起连接请求,
服务端收到客户端的请求后,服务端可以确认
客户端发送报文和自己接收报文的功能正常,
而客户端并不知道自己是否发送成功
	第二次握手:客户端收到来自服务端允许建立
连接的报文,同时表示客户端第一次向服务端
发送请求连接报文发送成功,此时客户端可以
确认自己和服务端发送和接收报文的功能都
正常,服务端只知道自己接收报文正常
	第三次握手:服务端收到客户端的确认请求,
说明客户端收到自己的确认请求,服务端可以
知道客户端发送和接收报文的功能正常,同
时知道自己发送报文的功能正常,

通过三次握手后,服务端和客户端都知道自己和对方发送和接收功能正常

为什么不是俩次握手?

	通过上面的三次握手,可以明白如果俩次握手,
服务端无法知道自己发送报文和客户端接收
报文的功能是否正常
	举个例子,如果客户端向服务端发送请求连
接的报文因为某些原因滞留在网络中,客户端迟迟
收不到服务端的授予连接报文,会误认为发送失败
重新向服务端发送报文,这次服务端收到报文,并向
客户端发送确认请求报文,客户端收到服务端的报
文,连接建立。此时之前客户端向服务端发送的报
文发送到了服务端,由于是俩次握手,服务器不
知道自己的发送功能和客户端的接收功能是否正常
,会以为自己回给客户端的报文客户端没有收到,
此时会再会给客户端一个报文,会再建立一个连接,
而客户端早已将之前误认为发送失败的报文丢弃,
并不会通过该连接进行信息的传输,而服务端一直
等待接收客户端的信息,这就白白浪费了服务端的资源。

为什么不是四次握手?

	通过三次握手,可能有一个问题,在第三次握手的时候,
客户端并不知道自己是否能够发送成功。对,这是根本没法
确定的,因为没有完全可靠的通信协议。我们通过三次握手
只要可以确认之前客户端和服务端各自发送和接收报文的功
能正常就好,至于以后是否正常即便是四次握手,五次握手
也是没有用的。对于确认确认之前客户端和服务端各自发送
和接收报文的功能正常,三次握手就够了,也就用不到四次
握手,白白的多发送一次报文。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值