HCIA TCP三次握手协议详解 2022.12.30

一、综合图示

二、Wireshark抓包

第一次握手

源IP:192.168.1.4

目标IP:120.232.32.89

SYN=1,seq=0(x)

第二次握手

源IP:120.232.32.89

目标IP:192.168.1.4

SYN=1,ACK=1,seq=0(y),ack=0+1(x+1)

第三次握手

源IP:192.168.1.4

目标IP:120.232.32.89

ACK=1,seq=0+1=1(x+1),ack=0+1=1(y+1)

三、分部图解

 第一次握手:
客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。

 第二次握手:
服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

第三次握手:
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1。

四、拓展

1、为什么要三次握手

TCP的连接因为是全双工的,也就是Client和Server两端,发送消息两个方向的连接都要建立成功。如果要保证双向连接都成功的话,三次通信是最少的次数了。大于三次的话,后面的次数通信就没有必要了,是在浪费资源。

2、三次握手失败了会怎么样

这里要看是在那个阶段失败的,Client在发送SYN之后没有收到ACK消息,Client会进行重传,第一次重传时间5.5-6s之间,第二次重传会是24s,不成功还会继续尝试,伯克利系统在超过75s之后,如果还是不成功,会放弃尝试连接。如果Server没有收到最后的一次Ack消息,同样的原理,Server也会进行重传第二步的Syn+Ack消息。

3、三次握手的状态转换

TCP的状态变化图如下所示,客户端和服务器的初始状态都是CLOSED状态

客户端:CLOSED-----发送Syn 消息--->SYN_SENT-----收到Server端发回的SYN+ACK--->ESTABLISHED---发送和接收数据-->......

服务器:CLOSED----收到Client端发送过来的SYN消息-->SYN_RCVD-----发送SYN+ACK消息--->SYN_RCVD----收到Client发回来的ACK消息--->ESTABLISHED-----发送和接收数据-->......

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值