⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc826.txt

📁 中文RFC文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
			地址更新表,并把Merge_flag设成true。
			?我是目的协议地址吗?
			是的: 
				如果Merge_flag是false,在转换表中加入三元组<协议类型,发送者协

				议地址,发送者硬件地址>。
				?操作码是ares_op$REQUEST吗?(现在看操作码)
				是的:
					交换硬件和协议字段,把本地硬件和协议地址填在发送者字段中。
					在ar$op字段中填ares_op$REPLY。然后从收到包的硬件上把这个包
					发送到目的硬件地址。
	注意到在检查操作码之前,<协议类型,发送者协议地址,发送者硬件地址>三元组就
被加入转换表中。这是建立在通信是双向的假设上的,如果A有某种理由与B“交谈”,B也
会有某种理由与A“交谈”。还注意到如果<协议类型,发送者协议地址>对已存在表项中,
新的硬件地址将覆盖旧的。相关情况给出了这样做的动机。
	总结:ar$hrd和ar$hln字段使非10兆以太网可以使用这个协议和包格式。对于10兆
以太网,<ar$hrd, ar$hln>就是<1,6>。对于其它硬件网络,ar$prozi字段也许不再对应以
太网类型字段,但会和地址转换要看的协议有关。

9.为什么这么做
	定期广播并不是所期望的,假设一个以太网上有100台主机,每隔10分钟广播地址转换
信息(可能通过参数设置),这样每隔6秒钟就有一个包。这完全合理,但有用吗?工作站一
般不会互相通信(因此转换表中有100个没用的表项),它们主要和大型机,文件服务器或网
桥通信,而仅和很少数量的主机通信(例如交互谈话)。本文描述的协议只在需要时发送信
息,并且每台机器每次启动时只发一次。
	这种包格式不允许在一个包中进行多于一个的转换。这是为了简单。如果复杂的话,
包将较难被分析,并且很多信息是没用的。想想一个有四种协议的网桥告诉工作站四个协
议地址,而其中三个工作站从来都不会用到。
	这种包格式允许应答包重用请求包的存储空间,应答包和请求包具有相同的长度,有

些字段也相同。
	硬件字段(ar$hrd)的值来自一个列表。现在只有为10兆以太网定义的一个值(ares_hrd
$Ethernet = 1)。已经在讨论在Packet Radio Networks上使用这个协议,这需要为希望使
用这个协议的其它硬件介质分配值。
	对于10兆以太网,协议字段(ar$pro)的值来自集合ether_type$,这是对已分配的协议
类型的自然重用。把它和操作码(ar$op)结合起来,将有效地减半可使用这个协议转换的协
议的数量,同时将对网络监控和排错造成更多的困难(见下面网络监控和排错)。希望不会
有32768个协议,但Murphy制造了一些不允许我们作这个假设的规则。
	理论上,长度字段(ar$hln和ar$pln)是多余的,因为通过硬件类型(在ar$hrd中)和协
议类型(在ar$pro中)就可以决定协议地址的长度。它们被包括是为了可选的一致性检查和
网络监控和排错(见下面)。
	操作码决定了是请求(可能导致一个应答)还是对先前请求的应答。16比特长了一些,
但这个字段是必须的。
	发送者的硬件地址和协议地址绝对是有用的,通过它们才能从转换表中得到结果。
	在请求包格式中,目的协议地址是必须的,这样机器才能决定是否把发送者信息放到
转换表中,是否发送应答。如果假设应答是由请求引起的,那么在应答包中这个字段不是
必须的。包括它是为了完整性,网络监控,和使上面描述的算法更简单(把发送者信息放到
转换表中后才去看操作码)。
	目的硬件地址被包括进来是为了完整性和网络监控。它在请求包中毫无意义,因为机
器要问的就是这个数字。它在应答包中是处理请求机器的地址。在某些实现中(例如不检察
14比特的以太网头),把这个字段作为包的目的硬件地址发送到硬件驱动器,存在寄存器或
栈空间中。
	地址间没有填充字节。包数据被看作字节流,其中只有3个字节对可看作字(ar$hrd,a
r$pro和ar$op),它们在发送时高位字节在前。

10.网络监控和排错
	以上的地址转换协议允许机器在以太网上获得高层协议活动(例如CHAOS,Internet,
PUP,DECnet)的信息。它能决定哪个以太网地址正在使用(通过值),以及每个协议类型的
协议地址。事实上,监控者不必使用任何一种高层协议。它象下面这样工作:
	当收到地址转换包,它总是把<协议类型,发送者协议地址,发送者硬件地址>存入转
换表。硬件和协议地址的长度可从包的ar$hln和ar$pln字段得到。如果操作码是应答,监
控者可以丢弃这个包。如果操作码是请求,并且目的协议地址与监控者的协议地址相同,
监控者通常会发应答包。监控者将只得到一个映射,因为请求的应答将被直接发送到请求
主机。监控者可试着发自己的请求,但要小心,这会造成两个监控者陷入请求发送循环。
	由于没有把协议和操作码合并成一个字段,监控者不必知道每个高层协议的请求操作
码对应的应答操作码。长度字段要带有可“分析”协议地址的足够信息,虽然它并不带有
协议地址的意义。
	地址转换协议的一个成功实现还可为不成功的实现排错。假设一个硬件驱动者成功地
广播了以太网类型为ether_type$ADDRESS_RESOLUTION的包。由于实现的错误或维护表的复
杂性,包格式可能不正确。因为请求是广播,监控者会收到这个包,如果需要可显示出来
进行排错。

11.一个例子
	假设在同一根10兆以太网电缆上有机器X和Y。它们有以太网地址EA(X)和EA(Y),DOD 
Internet地址IPA(X)和IPA(Y)。假设Internet的以太网类型为ET(IP)。机器X刚启动,并
且它迟早都会向机器Y发包。X知道要发包给IPA(Y),并把IPA(Y)告诉硬件驱动者(这里是
以太网驱动者)。驱动者让地址转换模块把<ET(IP),IPA(Y)>转换成48比特以太网地址,但
因为X刚启动,它没有这些信息。它先不发包,生成一个地址转换包,
	(ar$hrd) = ares_hrd$Ethernet
	(ar$pro) = ET(IP)
	(ar$hln) = EA(X)的长度
	(ar$pln) = (IPA(X)的长度
	(ar$op)  = ares_op$REQUEST
	(ar$sha) = EA(X)
	(ar$spa) = IPA(X)
	(ar$tha) = 任意值
	(ar$tpa) = IPA(Y)
并广播到电缆上的所有机器。
	机器Y收到这个包,判断自己是否懂这种硬件类型(以太网),是否理解这种协议(Inter
net),包是否是给自己的((ar$tpa)=IPA(Y))。然后把<ET(IP), IPA(X)>映射到EA(X)的信
息记下来(可能会覆盖已有表项)。然后又意识到是请求,于是就交换字段,把EA(Y)填入发
送者以太网地址字段(ar$sha),把操作码设为应答,再把包直接发送(不是广播)到EA(X)。
这个时候,Y已经知道怎样向X发送,而X还不知道怎样向Y发送。s
	机器X收到Y发送的包,生成<ET(IP),IPA(Y)>到EA(Y)的映射,意识到是个应答包,
于是丢弃。下次X的Internet模块试图向Y发送包,地址转换就会成功了,并且包也能到达。
如果Y的Internet模块要向X发送,它也会成功,因为Y已经从X的地址转换请求中记住了
需要的信息。


12.相关情况
	也许希望转换表会过期,这些的实现超出本协议的范围。这里有一个较详细的描述(感
谢MOON@SCRC@MIT-MC)。
	当主机移动时,假设移动时清除了地址转换表,那么从该主机发起的任何连接都可以
工作。但是发起过到该主机连接的其它主机并没有任何理由会知道去丢弃它们的旧地址。
而48比特以太网地址是唯一的,任何时候都是固定的,不会变。如果主机名(和其它协议地
址)在不同物理硬件上被重新分配,主机就“移动”了。而且从经验来说,总会存在由于硬
件或软件错误产生的错误路由信息,但这种错误不允许永远存在。也许发起某个连接的失
败,会使地址转换模块认为由于对方当机或转换表项错误等原因而不可到达对方。从而删
除这个信息。也许收到一个来自某个主机的包,会更新用来向该主机发送的转换表项的时
钟。如果一定时间没有收到来自某个主机的包,这条转换表项会被删除。这将产生为每个
收到的包扫描转换表的额外负担。或许使用散列或索引会快一些。
	收到地址转换包的建议算法试图缩短主机移动以后的恢复时间。如果<协议类型,发送
者协议地址>已经在转换表中,那么发送者的硬件地址将覆盖这个表项。因此在良好的以太
网上,当请求广播到达后,每个工作站都将得到这个新的硬件地址。
	另一种方法是有一个守护进程在处理超时。经过一定时间,守护进程考虑删除一个表
项。它先用表里的以太网地址直接发送地址转换请求包(如果需要可重传几次)。如果在一
段短时间内,没有收到应答,则删除表项。这个请求是直接发送的,不会影响以太网上的
每个工作站。删除表项就是把必须重新获得的有用信息删除。
	因为主机只发送关于它们自身的信息,而不会发送任何其它主机的信息,重启动一个
主机会使它的地址映射表成为最新的。通过机器间的传输,错误信息不会永远存在。机器

中唯一可存在的错误信息是不知道其它机器已经修改了48比特以太网地址。也许手工更新
(或清除)地址映射表就够了。
	如果认为重要的话,这篇文档需要更多地思考。任何地址转换类型的协议都用的到。
RFC826——An Ethernet Address Resolution Protocol or Converting Network Protocol 
Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware                 
以太网地址转换协议或转换网络协议地址为48比特以太网地址用于在以太网硬件上传输


1
RFC文档中文翻译计划


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -