ccricky 发表于 2014-8-9 23:44:13

学习了,不错不错

starforce3 发表于 2014-8-13 16:13:13

有态度的学习,{:6_299:}

1028384736 发表于 2015-5-14 22:30:20

{:6_267:}

NetTail 发表于 2015-7-10 11:22:52

有点道理

foamreason 发表于 2015-7-14 11:05:14

看来我还是太天真了。。。你们厉害{:6_280:}

nanpieeee 发表于 2015-7-16 22:20:46

例子
假定在一个10Mbit以太网电缆上存在两台机器X和Y,它们具有以太网地址EA(X)和EA(Y),并具有DOD Internet地址IPA(X)和IPA(Y)。令Internet的以太网类型为ET(IP)。机器X刚刚启动,并早晚需要发送一个Internet数据包给机器Y。X知道它需要发送数据给IPA(Y)并告诉硬件驱动(具备以太网驱动)IPA(Y)。驱动参考地址解析协议模块将 ET(IP)-IPA(Y) 对转换为48位以太网地址,然而因为X刚刚启动,它并没有这些信息。X丢弃了Internet数据包,反而创建了一个地址解析协议包如下:
(ar$hrd) = ares_hrd$Ethernet
(ar$pro) = ET(IP)
(ar$hln) = length(EA(X))
(ar$pln) = length(IPA(X))
(ar$op) = ares_op$REQUEST
(ar$sha) = EA(X)
(ar$spa) = IPA(X)
(ar$tha) = don’t care
(ar$tpa) = IPA(Y)
并将此包广播到电缆上的全部机器。
Y机器获取这个包,并确定它理解硬件类型(以太网)并使用相同的协议(Internet)且包是发送给它的((ar$tpa)=IPA(Y))。Y设置(或者替换现存项) ET(IP)-IPA(X)映射到EA(X),Y随后注意到这是一个请求包,因此交换其字段,将EA(Y)送入新的发送者以太网地址字段(ar$sha),将操作码设置为应答,并将包直接(而非广播)到EA(X)。此时Y已经知道该如何发送给X,而X还不知道如何抵达Y。
X由Y获取应答包,将ET(IP)-IPA(Y)映射到EA(Y),注意到这是应答包并将其舍弃。下一次X的网络模块尝试通过以太网向Y发送包时,转换将会成功,包将直接抵达目标。如果Y的网络模块想要与X通信,它同样会成功,因为Y已经通过X的请求记住了X的地址解析信息。
----------------------------------------------------------------------------------------------------------------
粘贴自RFC 826 z中文

sharklover 发表于 2016-5-13 17:34:12

第一个包是发出去的,关键是第一个包没有reply。我理解有两个原因,一是b收到request之后要回复reply,但是没有网关mac地址,打包失败,转而去解析mac了;二是a发来的第二个icmp-request覆盖了request1,就没有必要回复1了。

sharklover 发表于 2016-5-13 17:47:20

sharklover 发表于 2016-5-13 17:34
第一个包是发出去的,关键是第一个包没有reply。我理解有两个原因,一是b收到request之后要回复reply,但是 ...

当所有设备刚启动的时候,当第一个包会在网关处被丢弃

xpperry 发表于 2016-5-31 10:59:43

{:6_267:}

cengjingliulang 发表于 2016-6-19 23:31:14

A和B通信,A对B发ping包时如果A arp缓存里没有B的MAC地址,此时会发ARP 广播获取B的mac地址,B对A的arp广播进行发响应消息时除了带有自己的MAC地址之外,应该不会在自己的ARP里记录A的mac地址,只是当A侧获取B端MAC地址后封装ICMP包进行通信时,B端对ICMP echo包进行回应时会再次发送ARP广播获取A端的mac地址,过程是同A一样的。

cam1968 发表于 2016-11-17 13:29:07

{:6_267:}是我想要的答案,谢谢。

benwucd 发表于 2016-12-12 11:29:58

认同

CSQ 发表于 2017-5-17 10:24:25

wdweida 发表于 2014-5-26 23:24
没有别人的MAC地址

arp不就是用来学习别人的MAC地址么,你这解释不是意味着,应该5个包都是丢弃的?

CSQ 发表于 2017-5-17 10:43:01

本帖最后由 CSQ 于 2017-5-17 10:45 编辑

wdweida 发表于 2014-5-26 23:24
没有别人的MAC地址
可能是我断章取义了,您的理解是对的,我误解了你的解释。此处引用crazzz在另一个帖子里的回复 @crazzz :

在发出第一个ping包,准备要封装destination mac的时候,发现没有目标mac地址,于是封装失败(这个时候,就是导致第一个ping包失败的原因,这个跟超时,延迟都无关,可能根本不用0.0001s,发现封装失败,直接就返回一个“.”告诉ping目标不可达),然后后面的arp解析之类的过程,就不细说了。

-------------------我的理解-------------------
第一个ping包是属于正常发送icmp,但是在第二层解析时,发现没有目的mac地址,那么就进行了丢弃行为(导致第一个包丢弃),转而进行arp广播发送报文,寻找目的mac地址,所以之后就是arp过程了。

CSQ 发表于 2017-5-17 10:46:12

ping ip第一个包超时现象 http://bbs.hh010.com/thread-339846-1-1.html (出处: 鸿鹄论坛)
页: 1 [2] 3
查看完整版本: 关于ping包第一个丢包的那些事