Wireshark的文章没有看完还在看上一篇文章,今天新书到了,看了一些
还在看上一篇文章,今天新书到了,看了一些。
TCP的三次握手四次挥手在文章中讲得很详细
丢失的时候是有章可循的
当握手数据丢失后会进行重传,
第二次握手丢包后,SYN的传重最大次数是根据cp_sys_retries的值决定的,默认值是5;SYN、ACK包传重最大次数是根据sys_synack_retries的值决定的,默认值是5
第三次握手包丢后,TCP 建立连接后的数据包传输,最大超时重传次数是由 tcp_retries2
指定,默认值是 15 次,如下:
- tcp_keepalive_time=7200:表示保活时间是 7200 秒(2小时),也就 2 小时内如果没有任何连接相关的活动,则会启动保活机制
- tcp_keepalive_intvl=75:表示每次检测间隔 75 秒;
- tcp_keepalive_probes=9:表示检测 9 次无响应,认为对方是不可达的,从而中断本次的连接。
- 如果客户端没发送数据包,一直处于
ESTABLISHED
状态,然后经过 2 小时 11 分 15 秒才可以发现一个「死亡」连接,于是客户端连接就会断开连接。 - 如果客户端发送了数据包,一直没有收到服务端对该数据包的确认报文,则会一直重传该数据包,直到重传次数超过
tcp_retries2
值(默认值 15 次)后,客户端就会断开 TCP 连接。