作者回复: TTL与MSL是有关系的但不是简单的相等的关系,MSL要大于等于TTL。
设备在处理TTL的时候,是需要处理时间的,每次处理TTL时这个字段就都应该被减少,来反应花在处理报文上的时间。比如说处理了1秒减1,处理了2秒减2。这样就可以保证TTL为30的肯定活不过30秒。
作者回复: IP数据报经过多少路由器这个是无法确定的。
作者回复: 是的。
作者回复: 因为你设置太大也没有,系统有个默认值。
作者回复: 是的。
作者回复: 理解挥手的目的就自然理解为啥是4此了,因为每个方向都需要一个 FIN 和一个 ACK,通常被称为四次挥手。
作者回复: 释放掉其他和套接字相关的系统资源?
作者回复: 还真不好模拟,这个直接通过程序来实现比较方便,比如shutdown、close。
作者回复: 好问题,我好想看过有类似的优化手段,实际上是不是这样做的,我不敢保证,可能要去读源码了。
作者回复: 哦,我的意思是EOF作为一个异常情况,需要加以处理,也就是读到返回值为0的情况。确实如你所言,程序的逻辑是正常处理的。
作者回复: 要保证的,一般来说MSL不等于TTL,MSL要比TTL大,保证2MSL的时间时候对应的分组一定变得无效。
作者回复: 不是啊,如果对着一个广播地址发送,才是一个广播操作。
作者回复: 程序贴上来,大家一起研究下。
作者回复: netty是Java的网络通信框架,其底层实现还是依赖类似epoll的事件分发机制的。
spring mvc这类的使用的Java网络编程框架来做的,tomcat也是类似的。
Nginx是使用类似epoll的机制来自己实现的。