UDP sendto与ARP的一个现象

环境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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值