(学习笔记-TCP连接建立)三次握手丢失后分别会发生什么?

本文详细探讨了TCP连接建立过程中三次握手丢失的情况。客户端在第一次握手超时后会进行最多5次重传,服务端在第二次握手丢失后也会进行重传。当第三次握手丢失,服务端会继续重传SYN-ACK报文,直至达到最大重传次数或接收到ACK。若多次重传未成功,两端都将断开连接。
摘要由CSDN通过智能技术生成

第一次握手丢失

当客户端想和服务端建立TCP连接后,首先第一个发的就是SYN报文,然后进入到SYN_SENT状态。

在这之后如果客户端迟迟没有收到服务端的SYN-ACK报文(第二次握手),就会触发[超时重传]机制,重传SYN报文,而且重传的SYN报文的序列号都是一样的。

不同版本的操作系统可能超时时间不同,有的1秒,有的3秒,这个超时时间是写死在内核里的,如果想要修改则需要重新编译内核,比较麻烦。

当客户端在1秒后没收到服务端的SYN-ACK报文后,客户端就会重发SYN报文,那么重发几次呢?

在Linux系统里,客户端的SYN报文最大重传次数由tcp_syn_retries内核参数控制,这个参数是可以自定义的,默认值一般是5.

# cat /proc/sys/net/ipv4/tcp_syn_retries
5

通常,第一次超时重传是在1秒后,第二次超时重传是在2秒后,第三次超时重传是在4秒后...每一次超时重传的时间都是上一次的2倍

总耗时  = 1+2+4+8+16+32 = 63秒

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值