的硬件地址 。
ar$tpa未定义
当操作码是4(应答):
ar$sha是响应者的硬件地址(应答包的发送者)
ar$spa是响应者的协议地址(见下面的注重)
ar$tha是目的硬件地址,必须和请求包中得到的相同
ar$tpa是目的协议地址,即需要得到的地址 。
注重:在操作码为4的包中ar$spa字段填响应者的协议地址,只是为了方便 。例如,
系统同时使用ARP和RARP,有效的协议-硬件对(ar$spa,ar$sha)会减少以后发ARP
请求的需要 。
4.参考
[1] Plummer,D.,"AnEthernetAddressResolutionProtocol",RFC826,MIT-LCS,
November1982.
附录A.4.2BSDUnix下的两个实现例子
下面的实现描述概括了4.2BSDUnix下实现RARP服务器的两种不同方法 。
A. 提供在内核外访问数据链路层包 。RARP服务器完全在内核外实现,只在收发RARP
包时和内核进行互操作 。内核被修改成能提供接口来访问这些包,目前4.2内核只
答应访问IP包 。CMU的“包过滤”伪驱动是提供这种功能的现有机制 。它在CMU
和斯坦福实现“用户级”网络服务器排序上,使用的很成功 。
B. 在内核里维护一个数据库表项的缓存 。整个RARP服务器数据库通过一个用户进程
在内核外维护 。RARP服务器本身直接在内核中实现,并为应答维护一个小的数据
表项缓存 。这个缓存和传输ARP的相同 。这个缓存通过两个新的输入输出控制从实
际的RARP数据库得到(这像SIOCIFADDR,因为他们不直接和具体的套接字相关) 。
一种是:“睡眠直到需要进行地址转换,然后把请求直接输出到用户进程”;另一种
是:“把地址转换输入内核表” 。因此,当内核不能在缓存中发现一个表项的时候,
把这个请求放到队列中,然后调用wakeup() 。第一个输入输出控制的实现是sleep(),
从队列中取出第一项返回给用户进程,因为内核不能在中断级等待直到用户进程回
应,它或者放弃(假设请求主机一定时间后会重传请求包),或者假如第二个输入输
出控制把请求拷贝到内核,在那个时候应答 。
推荐阅读
- 1 CCNA真题TCP/IP:地址和协议
- sai英文版怎么转换成中文版
- 三星s10反向充电设置
- 如何设置电脑ip地址
- rog游戏手机2王牌战士定制贴纸怎么领 领取入口地址方法介绍
- 魅族16spro发布会直播地址 魅族16spro手机发布时间
- 如何确认我的电子邮件地址
- 恒大雅苑地址在哪里
- 怎么查看手机的MAC地址
- 四种I P广播地址详谈