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

对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查看连接的状态,以确认问题的原因。

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注