“三次握手“ 和“四次挥手“

一.建立连接("三次握手")

客户端主动发送第一次请求。

经过以上四次交互,就完成了 建立连接的过程,客户端和服务器互相分别给对方发送了一个syn,再互相发送了一个ack,但是中间两次交互可以合并位为一次,每次数据报文传输都要经历一系列的封装分用,分成两个报来发送代价太大,所以称为"三次握手"。

"三次握手"不仅仅是为了验证通信发送/接受能力是否正常,还能协商一些重要参数。

二.断开连接("四次挥手")

客户端和服务器都可以主动发起请求。

 和"三次握手"不同,"四次挥手"看起来也是客户端和服务器互相分别给对方发送了一个FIN,再互相发送了一个ACK,但是"四次挥手"中间连词发送不能合并成一次。因为服务器B返回ACK是操作系统内核的行为,操作系统内核收到FIN后,就会立即返回ACK,而服务器B的FIN是用户代码的行为,用户在代码中调用socket.close()方法才会触发FIN,因此服务器B发送FIN和ACK之间会有不可忽视的时间间隔,所以不能合并。

以下是更加详细的图示: 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值