环境windows7
现象:
1、ping命令;为什么ping有的机器显示"无法访问目标主机",有的显示"请求超时"
2、UDP 阻塞socket,局域网主机A, 往主机B和主机C同时发一个1400字节的udp包;发往主机B的不阻塞,C的阻塞约3秒;都是发送成功;
3、UDP 阻塞socket,局域网主机A,往主机B发送一个1400字节的包,和一个400字节的包,前者阻塞,后者不阻塞;都是发送成功;反复确认,发现分界点在1024字节
解释 :
1、ping局域网内的机器,arp表没有对应的记录,目标机器又离线,此时数据包根本没有经过网卡(可以用wireshark验证),这时会显示“无法访问目标主机”
2、局域网的机器,阻塞的3秒估计是arp寻址超时时间。此时数据包根本没有经过网卡(可以用wireshark验证).
3、mac下(个人认为等同linux), 在发送udp包到没有arp记录的局域网地址时,表现不同:
a、windows不管是否阻塞,sendto都返回成功;但是mac下则有成功,也有失败;
b、max下完成没有阻塞的现象;
对于由于长度引起的阻塞机制、以及max下不确定的返回成功、失败,个人认为这涉及平台差异,与编程技术没有太多关系,故不作深究。
附带设置arp记录(windows),其中12是网卡标识
netsh -c "i i" add ne 12 192.168.1.236 00-aa-00-62-c6-09 store=active