发信人: aqing()
整理人: microant(1999-08-19 01:30:08), 站内信件
|
本文来自--上海交通大学远程教育中心 网址:http://www.dlc. sjtu.edu.cn/
本文已得到授权只在广州网易社区网站建设讨论区转载,如果您要再次转载此文请 与原出处联系
---------------------------------------------------------------------- --------
IP地址将网络地址隐藏起来, 使网间网表现出统一的地址格式.
但在实际进行通讯时,物理网络所使用的依然是物理地址, IP地址是不能被物理 层所识别的.
在网间网中存在两种地址,二者之间要建立映射关系, 这是地址统一所必须付出 的代价.
地址之间的映射叫地址解析(resolotion).
地址解析包括从网间网地址到物理地址的映射和从物理地址到网间网地址的映射 .
TCP/IP提供了两个协议:
ARP(AddressResolutionProtocol),
RARP(Reverse Address Resolution Protocol)
ARP用于从网间网地址到物理地址的映射.
RARP用于从物理地址到网间网地址的映射.
ARP的原理
假定在图示的网络上, A(信源机)要与E(信宿机)进行通信, 但不知道E的物理地址 .
A利用ARP协议工作的过程如下:
A首先广播一个ARP请求报文, 请求网间网地址为IPE的主机回答其物理地址PE. 网 上所有主机都将收到该ARP请求, 但只有E识别出自己的地址IPE,并
回 答自己的物理地址PE, 这样, 网间网地址就被转化成了物理地址. A收到这个 ARP回答包后, 就可以与E进行通讯了.
(关于ARP请求及应答报文的格式,请参阅下一节(页): 逆向地址解析协议RARP)
---------------------------------------------------------------------- ----------
ARP的效率
为提高效率, ARP使用了高速缓存技术.
在每台使用ARP的主机中, 都保留了一个专用的内存区,存放最近取得的网间网地 址-物理地址对应.
一收到ARP应答, 主机就将获得的网间网地址和物理地址存入缓存.
欲发送报文时, 首先去缓存中查找相应的项, 若找不到,再利用ARP进行地址解析 .
由于多数网络通信都要连续发送多个报文, 所以高速缓存大大提高了ARP的效率.
另外, 在ARP请求报文中放入信源机的网间网地址-物理地址对应, 以防止信宿机 接着为信源机的物理地址再来一次ARP请求(死锁).
信源机在广播自己的地址映射时, 网络上所有主机都可以将它存入自己的缓存.
在新机入网时, 令其主动广播其地址映射, 以减少其它主机进行ARP.
---------------------------------------------------------------------- ----------
ARP应用的例子
上面讲到的是在一个物理网络中ARP应用的情况, 下面的例子说明在用路由器连接 起来的不同网络中如何使用ARP.
如图所示两台主机A,B分别连到两个不同的物理网络:m网, n网.
现在A要往B发送数据包, 但只知道B的IP地址, 不知道B的物理地址.
A, B, 以及路由器Router的各项参数如下:
IP地址 MAC地址
主机A 142.1.0.9 080000002198
主机B 30.0.0.1 MACB(未知)
路由器R(接m网) 142.1.0.22 MACRm
路由器R(接n网) 30.0.0.22 MACRn
注: MAC地址即物理地址, Media Access Control
A通过ARP获得物理地址然后再发送数据的过程如下:
1. A 发送ARP广播包: ARP request for 142.1.0.22
2. 路由器回发回答包:
ARP response for 142.1.0.22 ---MACRm
3. A发送IP包:
To From
MACRm MACA
30.0.0.1 142.1.0.9
4. 路由器发ARP广播包.(格式同1)
5. B发回答包, 给出B的MAC地址(格式同2).
6. Router把数据包发送给B
To From
MACB(已知) MACRn
30.0.0.1 142.1.0.9
注意: MAC地址一直在变, 而IP地址一直未变, IP层的软件并不知道物理层所发生 的变化.
另外B再发送数据包给A的时候就不用再使用ARP了, B从Router发给它的数据包中 已经获得了Router的物理地址.
2.2.2 逆向地址解析协议:RARP
从物理地址到网间网地址
在网络中有一类站点, 叫作无盘机(diskless machine).
无盘机本身不需要大量的磁盘操作, 文件放在网络中某台指定的带盘机中, 该带 盘机是它的文件服务器.
一般情况下无盘机的IP地址都存放在服务器的硬盘中 (IP地址实际上是高层协议 的内容, 一般不由硬件实现,而放在外存中),
那么,如何取得IP地址呢?
这个问题看似简单, 其实很有讲究.
首先,无盘机与服务器是通过IP地址通信的(文件访问显然是高层软件的事), 那么 不知道IP地址便不可能与服务器通信,IP地址也就无从获取.
第二,多数无盘机都是通过标准的TCP/IP文件传输协议获取其自举映象(boot map ), 即在操作系统运行之前,必须首先获取并使用IP地址.
在操作系统都没有的情况下由谁来执行查找IP地址的操作?
让我们来设想一下一台无盘机在不知道自身的IP地址和操作系统启动之前, 能干 些什么事情.
显然,它拥有一个物理地址;
另外在ROM中还有一个基本输入输出系统, 能依赖于物理地址进行本地网络通信.
那么,无盘机获取IP地址可以采取以下方法:
有ROM基本输入输出系统向服务器发送(确切地说是广播,因为此时 服务器的物理 地址也是不知道的)请求报文以获得应答.
在广播IP请求时,无盘机使用机器的物理地址作为其标志. 因为对于一个物理网络 来说, 物理地址是唯一的, 而且可以从硬件中读取。
那么,这个请求是如何处理的呢?
---------------------------------------------------------------------- ----------
RARP的原理
给出一个物理网络地址, 如何通过服务器解析出对应的网间网地址, 这就是所谓 的逆向地址解析, 其TCP/IP标准为RARP(Reverse Address Resolution Protocol ).
RARP服务器要响应请求, 首先必须知道物理地址与IP地址对应关系. 为此,在RAR P服务器中维持着一个本网"物理地址--IP地址"映射表.
无盘机发出的RARP请求中携带着本网的物理网络地址, 当某无盘机发出RARP请求 后, 网上所有机器均收到该请求, 但只有RARP服务器处理请求并根据请求者物理 地址响应请求.
服务器此时已经知道无盘机的物理地址, 因此不再采用广播方式, 而是直接向无 盘机发送应答.
这样,当无盘机收到该回答报文时, 便知道了自己的IP地址.
到现在, 我们已经讨论了两个方向上的地址解析问题(ARP与RARP), ARP用于从IP 地址到物理地址的转换, RARP用于从物理地址到IP地址的转换. 二者几乎是可逆 的, 因此报文格式完全相同.
解析中使用的报文的格式如下图所示:
0 8 16 24
硬件类型 协议类型
硬件地址长度 协议地址长度 操作
发送者硬件地址(字节0~3)
发送者硬件地址(字节4~5) 发送者IP地址(字节0~1)
发送者IP地址(字节2~3) 目的硬件地址(字节0~1)
目的硬件地址(字节2~5)
目的IP地址(字节0~3)
TCP/IP将该报文设计成一种能适应各种物理网络地址和协议地址的格式.
其中两个长度域分别指出各相应域的长度.
"硬件类型"指出发送者本机网络接口类型("1"代表以太网),
"协议类型"指出发送者所提供/请求的高层协议地址类型("0X0800"代表IP协议),
"操作"指出本报文的类型("1"为ARP请求,"2"为ARP应答, "3"为RARP请求, "4"为 RARP应答).
-- ☆★☆★☆★情教护花,视保护美眉为已任☆★☆★☆★
欢迎加盟情教,总坛地址:love21n.126.com
情教聊天室:love21nchat.126.com
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.97.245.250]
|
|