向各位专家问个ARP协议的问题

femalelover 2008-10-30 10:41:09
在谢<<TCP/IP详解>>卷一, 第四章 ARP 协议中, 作者举了一个例子说, ftp xyz 命令会发生些什么事, 由此引出ARP协议.

我有个疑问, 假设目的主机xyz与本机不在同一个本地网内, 也就是说, 要通过路由器才能到达. 那么, 这时ARP是要找路路器的MAC地址, 还是要找xyz的MAC地址?

我觉得应该是找路由器的才对, 但看作者的意思, 好像是说要找xyz的一样.

请各位对网络协议比较了解的高手来说说.

这次瞎顶帖的不给分.
...全文
101 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
femalelover 2008-11-02
  • 打赏
  • 举报
回复
我晕, 这帖子怎么会有两份呢.
e_sharp 2008-10-31
  • 打赏
  • 举报
回复
UP
jia_xiaoxin 2008-10-31
  • 打赏
  • 举报
回复
ARP不能通过IP路由器发送广播,所以不能用来确定远程网络设备的硬件地址。对于目标主机位于远程网络的情况,IP利用ARP确定默认网关(路由器)的硬件地址,并将数据包发到默认网关,由路由器按它自己的方式转发数据包。
独孤过儿 2008-10-31
  • 打赏
  • 举报
回复
说实话,我没明白楼主问题是啥意思...

1、ARP是仅限于本网段之内的啊,出网怎么玩?要是全网上面允许广播,那别的包还可能有机会传输了吗?

2、如果楼主是想问一个普通的IP数据包怎么路由出去,那直接看RFC 791 Page 6吧,内容太长,我直接给你贴

个图吧:

Application Application
Program Program
\ /
Internet Module Internet Module Internet Module
\ / \ /
LNI-1 LNI-1 LNI-2 LNI-2
\ / \ /
Local Network 1 Local Network 2


Longinc 2008-10-30
  • 打赏
  • 举报
回复
UP
帅得不敢出门 2008-10-30
  • 打赏
  • 举报
回复
up
Arthur_ 2008-10-30
  • 打赏
  • 举报
回复
>我觉得应该是找路由器的才对, 但看作者的意思, 好像是说要找xyz的一样.
应该是你理解稍微偏了点哈。
我记得书上有这么句话:大意是如果让广播报文冲出路油器,那整个internet都是广播包。
星羽 2008-10-30
  • 打赏
  • 举报
回复
up = =
baihacker 2008-10-30
  • 打赏
  • 举报
回复
1.用dns找到目标的IP
2.根据自己的掩码,看看目标是不是和自己在同一网段
如果不是:
2.1通过ARP协议找到网关的MAC.
2.2和网关通信,网关负责把IP包转发.
如果是
2.1通过ARP协议找到这个主机的MAC
2.2直接和这个服务器通信.

当然,其中的很多步骤可能失败...
Arthur_ 2008-10-30
  • 打赏
  • 举报
回复
我有个疑问, 假设目的主机xyz与本机不在同一个本地网内, 也就是说, 要通过路由器才能到达. 那么, 这时ARP是要找路路器的MAC地址, 还是要找xyz的MAC地址?

我觉得应该是找路由器的才对, 但看作者的意思, 好像是说要找xyz的一样.
==============
你看了你应该知道 arp获得mac需要广播,但这种广播只能在本网段(或者一个冲撞域)内,也就是说这种广播报文不能通过router(有一种情况除外就是direct broadcast - samba使用)
所以arp只能找router的mac由router来转发(当然在有路由的情况下)。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧