这个是百度百科的一个解释,是解释将一个十进制数转化为其他进制数,比如二进制和八进制的原理的解释
为什么当m是2的幂次时,n & (m-1) == n % m
这个问题可以从二进制的角度来考虑,假设 m = 2 k m = 2^k m=2k,那么n%m相当于是把n算数右移k位,移出去的那k位就是余数,也即n%m的结果。m-1是低k位全为1的二进制数,那么n&(m-1)得到的就是n的最低k位组成的数,这个数就是n%m的余数。
为什么网关必须与主机在同一个网段
从TCP/IP的理论上讲,数据包应该是可以发送出去的,但在模拟器上模拟的时候子网的数据包无法发送出去,这个需要后续再理解一下。那么当数据包返回的时候,若是网关与子网不在同一个网段,那么必然不可行。因为当返回的数据包到达网关所在的路由器时,必然会拆包查看目的IP,这时候目的IP在路由表中就没有匹配的子网,因此路由器会把该包丢弃,也就是该包无法返回到子网中的主机,因此网关必须与主机在同一个网段内。
connect和accept返回的时间
connect在服务器端回复SYN+ACK时返回,accept在收到客户端的ACK之后才返回。下面这篇博文解释的不错:accept何时返回