LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 836|回复: 7

关于ARP的问题!

[复制链接]
发表于 2007-3-27 16:25:25 | 显示全部楼层 |阅读模式
我的主机用的是DEBIAN LINUX内核是2.6.18-3

当我和某个网站建立联接后,我用arp -a是不是可以看到一些联接信息?

可是我在某网站上下载了东西!这应该是建立联接了!可是我用arp -a确只能看到我和内网的一个联接信息!如下:
www (192.168.0.130) at 00:0D:61:96:44:36 [ether] on eth1
而内网的这台主机的主机名并不叫www,但IP正确!

第一个问题,为什么我在某网站上下载东西,但用arp -a确什么也看不到!

第二个问题,为什么我内网主机名叫www,而不是我写的名字!

注:内网只有一台机器!
发表于 2007-3-27 16:53:05 | 显示全部楼层
arp 是局域网中用于把 ip地址翻译成mac地址的,不是DNS, 和上层应用没有关系。

你想看你和那个网站之间的数据流,需要抓包工具 ethereal 或者 tcpdump
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-28 13:55:24 | 显示全部楼层
那互联网上的通信不是同样要用ARP协议吗?

比如站点A和站点B通信,不是一样要把IP地址转成物理地址吗?互联网不也是由很多个局域网通过网络设备联接到一起的吗?

www (192.168.0.130) at 00:0D:61:96:44:36 [ether] on eth1

这行中的www是什么意思?
回复 支持 反对

使用道具 举报

发表于 2007-3-28 17:22:45 | 显示全部楼层
互联网不用arp,用DNS。
比如主机A通过路由器R1再通过路由器R2与主机B连接。
A和R1在一个局域网,他们用arp。
R1和R2在一个局域网,他们用arp。
R2和B在一个局域网,他们用arp。
但是A和B不在一个局域网,他们只能用DNS。
回复 支持 反对

使用道具 举报

发表于 2007-3-28 20:47:54 | 显示全部楼层
Post by pdaliu
那互联网上的通信不是同样要用ARP协议吗?

比如站点A和站点B通信,不是一样要把IP地址转成物理地址吗?互联网不也是由很多个局域网通过网络设备联接到一起的吗?

www (192.168.0.130) at 00:0D:61:96:44:36 [ether] on eth1

这行中的www是什么意思?

不同网络之间传递数据不需要知道物理地址(MAC), 你也无法知道, 你所能知道的就是路由信息. 路由器(们)把你的数据一层层传到目的地网络后, 才发生物理地址的翻译.
回复 支持 反对

使用道具 举报

发表于 2007-3-28 21:15:24 | 显示全部楼层
你用 arp -a 列出来的是arp缓存表里的信息,只保存了局域网内与你所用机器通信的其他机器的mac地址等信息,可以参看一下arp协议的介绍。
关于那个www,不知道是什么意思
回复 支持 反对

使用道具 举报

发表于 2007-3-28 21:29:25 | 显示全部楼层
arp是将IP地址解释为MAC(网卡的物理地址)的协议,在本网段内通信的时候,才需要通过arp包来查询IP所对应的MAC地址,而在不同网段之间通信的时候,是通过网关中转的。

假设你的IP是192.168.0.2,网关是192.168.0.254,子网掩码是255.255.255.0,那么你的机器与192.168.0.x之间的IP通信的时候,就会发送arp广播包,查询192.168.0.xIP所对应的MAC地址。

当你需要与www.linuxsir.cn通信的时候,对首先通过DNS来解析www.linuxsir.cn的IP(211.93.98.20),然后判断一下,发现不是本网段,因此就会发送arp广播包,查询192.168.0.254的MAC地址(如果arp缓存中没有的话),然后就生成一个数据包,其中源IP地址是本机的IP,目的IP是211.93.98.20,源MAC是本机网卡的MAC,目的MAC是网关的MAC,这样网关就接收到这个数据包,先根据目的地址判断一下应该选择哪个路由节点,然后将该数据包的源MAC修改成自己的MAC,目的MAC修改成下一个路由节点的MAC(如果还需要做地址转换的话,那么就修改数据包的源地址为自己的IP,同时在状态表中记录下这个改变),并将这个数据包发送出去,同样的,下一路由节点也会这么做,于是数据包就传送到211.93.98.20这台主机了,在这个过程中,MAC地址是在不断变化的,而IP地址一直是不变的(除了有地址转换需要的时候。)

同样的,211.93.98.20接收到这个数据包就,会按照要求发送回应的数据包,其源IP是211.93.98.20,目的地址是收到这个数据包时数据包记录的源IP,并将这个数据包的源MAC设置为自己的MAC,目的MAC设置为它的网关的MAC,并发送出去。


在物理网络中,网卡接受数据包的时候是按照数据包的目的MAC来判断的,如果目的MAC是自已的MAC,那么就接收该数据包。

一旦跨越路由或者网关的时候,数据包的源MAC和目的MAC都会发生改变,否则数据包就无法传送了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-1 19:37:38 | 显示全部楼层
那就是说如果某个路由找找到了www.linuxsir.cn这个网站的 ... 在路由当中!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表