欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

对tcp/ip协议新认识(四)

程序员文章站 2022-04-07 19:34:42
对tcp/ip协议新认识(四)     tcp/ip协议中存在一些基本的术语,如MSL,TTL,RTT等。       MSL...

对tcp/ip协议新认识(四)

 

  tcp/ip协议中存在一些基本的术语,如MSL,TTL,RTT等。 

     MSL(max segment lifetime) 表示报文的最大生存时间,即包在网络上存在的最长时间,超过这个时间的包将被丢弃,这个值实际应用中是30s,1min,2 min等。

     TTL(time to live) 表示包经过的最大的路由器的个数,这个值有源主机设置,每当包经过一个路由器,它的计数就减1,当为0时,这个包被丢弃,同时ICMP通知源主机。

      在效果上MSL要比TTL大。

      RTT(round-trip time) 表示client 到server的往返时间,TCP含有动态估算RTT的算法。

      TCP连接关闭的发起者在收到对端的关闭请求,并发出关闭确认后进入time_wait后有一个等待时间,这个时间就是2MSL,主要是端口的占用的时间,如果设置了SO_ADDRREUSE就没有关系,close_wait是被关闭的一侧的状态。

       基于上面的一些概念,当网络出现异常时,就会出现半开连接和半闭连接,以及rst命令的出现。

       例如:

             server重启后,先前已经建立连接的client在毫不知情地情况下,发送数据,这就是半闭连接,此时server就会发送rst命令。

             半开连接就是在连接连接的过程中,没有及时收到响应,半开连接与半闭连接的最大区别就是半闭连接不能用,半开连接可以用。

              client发送syn到server,但是server的端口并为打开,此时server也会发送rst。

       在server抓包如果出现rst命令,可以尝试使用netstat查看连接的状态,以确认问题的原因。