欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

ARP封包与邻居协议

程序员文章站 2022-08-12 22:14:34
ARP封包与邻居协议   ARP封包   ARP封包中L3地址的地址类型有unicast,broadcast,multicast,类型保存在neighbour结构中...

ARP封包与邻居协议

 

ARP封包

 

ARP封包中L3地址的地址类型有unicast,broadcast,multicast,类型保存在neighbour结构中(neigh->type),可以通过inet_addr_type可以确定地址类型,ARP对每个类型的处理:

unicast : 这正是常见的ARP解析的solication请求。

broadcast:arp将L3广播地址映射为与具体设备有关的L2广播地址。

multicast:ARP使用函数arp_mc_map从L3多播地址导出L2多播地址,ARP不需要生成solication请求,因为L2地址可以根据硬件类型(Ethernet,Token Ring等)的公式推算得到。

 

Ethernet帧中包含了发送方硬件地址两次:一次是ethernet帧头,一次是在ARP封包中。

当主机充当ARP代理角色时,这两个值会不同了。

 

另外:

ARP 邻居协议是在IPV4中采用的。IPV6中用的是ND邻居协议居多

 

邻居协议

 

   在现在的IP网络中使用两个邻居协议,绝大多数系统使用IPv4中的ARP协议,另一个更通用的协议是邻居发现协议(Neighbor Discovery,ND),它是为IPv6开发的,为了能在专有网络中使用,linux内核支持其它邻居协议,如: DECnet使用的邻居协议。

    邻居协议代理是什么呢?

若一台主机将发往另一台主机的流量拦截下来,并代替后者处理这些流量,那么这台主机就是代理。

邻居协议的代理服务器是一台主机,对请求不属于自己的地址的solication请求,它能够代替拥有这些地址的主机做出应答,因为有了代理,位于不同LAN中的主机可以互相通信,就好像它们在同一个LAN中。

    代理举例:

http代理,也就是一台http缓存服务器,它将发往受访问的Web的请求截断,然后将保存自己缓存中的的那些服务器上的网页提供给请求者,这种方式可以减少网络流量。