PASSINGCCIE 发表于 2013-10-8 21:26:04

关于ping包第一个丢包的那些事

之前就有关于为什么我们ping包的时候第一个包总是显示逗点,也就是超时的困惑。很多人的解答就是因为ARP啊,然后就没有下文了。继续追问那么为什么ARP就要是逗点呢?然后就又有一些人说因为要ARP解析,所以时间太长了,超过了时延就显示超时不通,然后就是逗点了。总结来说就是因为ARP解析超时了所以就显示ping包的第一个包不通了。百度上很多解答也是这样子

不过今天晚上看了视频得到了启发,ping包的第一个包并不是因为超时所以显示不通,因为当我使用扩展ping将数据包的延时设置位50秒的时候,第一个包还是不通。所以绝对不是因为延时。

那么是为什么呢?

是因为第一个包根本就没有发出去,做实验抓包的时候只能够抓到ping包的后面四个echo,reply。

那么为什么第一个包没有发出去呢?
因为第一个包还没有ARP解析,也就是没有对应的mac地址,在尚无mac地址的情况下,系统内核是不会发包的,路由器在一段链路中是使用mac地址的。,无mac地址的数据包根本就不会发出去,所以不知道mac地址,首先先发ARP解析mac地址,同时第一个包还没有发出去就被自己kill了。后续的包因为有了对应的mac地址就顺利的发出去了。

以上纯属个人做实验的理解~~~~

lees 发表于 2013-10-8 21:28:39

CCNP交换里面有说,ARP RFC 826文档中解释是第一个ARP解析时,没有ARP对应的MAC表会被丢弃{:6_269:}

b573129968 发表于 2013-10-8 22:27:28

我开始觉得是cef里面的arp御制,会丢弃未得到响应前的数据包

shaoyung 发表于 2013-10-8 23:54:29

jswjsw35 发表于 2013-10-9 12:40:46

{:6_282:}

QQ285486507 发表于 2013-10-11 17:17:57

{:6_289:}一直没做过这个实验 。别人说不如自己做一次真实。

sanming110 发表于 2013-10-13 14:44:30

下来看看 挣点分儿

sanming110 发表于 2013-10-13 14:45:22

下来看看 挣点分儿

leless_1987 发表于 2013-10-13 20:43:56

{:6_299:}{:6_299:}

redstone 发表于 2013-10-15 21:47:26

{:6_267:}

拿了橘子跑 发表于 2014-5-20 23:30:24

斗胆问一句,“第一个包没有ARP解析,没有对应的MAC地址,”

那这个MAC是自己的MAC地址还是对方的MAC地址?{:6_282:}

wdweida 发表于 2014-5-26 23:24:32

拿了橘子跑 发表于 2014-5-20 23:30
斗胆问一句,“第一个包没有ARP解析,没有对应的MAC地址,”

那这个MAC是自己的MAC地址还是对方的MAC地 ...

没有别人的MAC地址

maydayshengxia 发表于 2014-6-9 01:25:16

{:6_282:}{:6_282:}你们太刁了

gudaqun99 发表于 2014-6-9 08:42:20

good

zefa 发表于 2014-6-9 10:52:41

认同,做实验。。。。
页: [1] 2 3
查看完整版本: 关于ping包第一个丢包的那些事