码迷,mamicode.com
首页 > 其他好文 > 详细

ARP协议-路由交换原理5-【HCNA笔记】

时间:2016-09-11 15:35:37      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

1、ARP报文格式

    ARP协议工作在数据链路层,网络中传输的ARP包示意如下(由于字段较多,这里对连续字段进行换行处理):

帧头 Data(ARP包) FCS

ARP包:

Hardware Type Protocol Type Hardware Length Protocol Length Operation Code
16位 16位 8位
8位 16位
Source Hardware Address Source Protocol Address
48位 32位
Destination Hardware Address Destination Protocol Address
48位 32位

Hardware Type:硬件类型,指物理网络的类型,如以太网(值为1)

Protocol Type:协议类型,指网络协议类型,如IP协议(值为0x0806)

Hardware Length:硬件地址长度,指MAC地址长度,通常为6字节

Protocol Length:协议地址长度,指I票地址长度,通常为4字节

Operation Code:操作类型,指明ARP操作类型,ARP请求为1;ARP响应为2;RARP请求为3,RARP响应为4

Source Hardware Address:发送方硬件地址

Source Protocol Address:发送方IP地址

Destination Hardware Address:接收方硬件地址

Destination Protocol Address:接收方IP地址


2、ARP运行过程

    一台设备通过网络向另一台设备发送数据时,进行IP报文和帧封装时必须要填入目标设备的IP地址和MAC地址,而从上层交付的信息中只告知了目标IP地址,MAC地址则需要设备通过ARP协议自行获取。

    当源主机需要向目的主机发送数据时,源主机会先查看自己的ARP缓存表中是否有目标IP地址和MAC地址,若有则直接使用,若没有则通过ARP协议到网络中询问。询问过程是源主机向网络中广播一个ARP请求报文(即Operation Code=1),该报文包含了源IP、源MAC和目的IP。所有接受到该广播的设备均用自己的IP与目的IP进行比对,若不一致则不响应该请求,若一致则向源主机发送一个ARP响应报文(即Operation Code=2),其中就包含了目的主机的MAC地址。这样源主机和目的主机都知道了对方的IP及对应的MAC地址,并更新其ARP缓存表待以后使用。若ARP缓存表中的条目长时间不使用,主机会将该条目删除下次需要时再通过ARP询问,条目的默认缓存时间通常是1200S。需要注意的是ARP请求报文是广播包,也就是说该报文不能穿越路由器,不能转发到其他广播域,只能被主机所在网段内的其他主机收到。


3、ARP代理

    若主机配置了网关(一般是路由器),则发往另一个网段的数据会直接发往网关而不需要通过ARP协议获取MAC地址。若主机没有配置网关,则发往另一个网段的数据会被直接丢弃,ARP协议根本不会起作用。只有当源主机认为目标与自己处于同网段,但实际上目标主机处于另一网段,且他们之间通过一个路由器连接在一起(后面会详细说明这种情况)。因为源主机认为目标与自己处于同网段,所以源主机依旧向网段内广播ARP请求报文,启用了ARP代理的路由器也会收到该报文,路由器先查看目标主机的IP是否在自己的路由表中,若不存在则丢弃该报文,若存在则路由器会向源主机返回一个ARP应答报文,应答报文中目标IP对应的MAC地址是路由器自己的MAC地址。源主机记录该MAC地址后,需要发往目标主机的数据均会发往路由器再由路由器转发。


4、免费ARP

    免费ARP报文中的目的IP就是源主机本身,该报文依旧通过广播的形式发到广播域,其目的在于检测广播域内是否有主机与源主机IP冲突,另外还可以更新广播域内其他主机的ARP缓存表。


【ARP代理奇怪的作用范围】前面讲到ARP代理的产生条件非常有限,首先源主机要认为自己与目的主机位于同网段,但实际又不在同网段,这是怎么回事呢。

    实际上是可能的,这是由于掩码不同导致的问题。前几章中我们讲到过VLSM(可变长子网掩码)技术,也就是说一个IP可以使用不同的掩码来划分网段。那就会产生一种情况,如A:192.168.0.1/255.255.0.0和B:192.168.1.1/255.255.255.0这两个IP,因为掩码的问题导致A认为B与自己是同一网段,但B却认为A与自己不在同一网段,这种情况下的通讯就需要依靠ARP代理了。


【ARP到底工作于那一层】在学习时我们发现OSI模型中将ARP划分到数据链路层,而在TCP/IP模型中又将ARP划分到了网络层,那ARP到底是那一层呢。

    首先OSI模型是一个理论模型,而TCP/IP模型是网络实现后才进行划分的。OSI分为7层,最低层包括物理层、数据链路层、网络层等等。TCP/IP分为4层,包括网络接入层、网际互连层、传输层、应用层。这里误会的产生就在TCP/IP模型中将最低层叫做网络层,实际上它对应的是OSI中的物理层和数据链路层,所以把名字改成接入层大家就不争论了吧。实际上ARP在网络中传输时也并不包含IP头。


【ARP缓存表】ARP缓存表就是个IP-MAC对照表,设备会定期对其进行更新和清理。


【网关】网关实质上是一个网络通向其他网络的IP地址(路由器的IP)。比如有网络A和网络B,网络A的网段为192.168.1.0/255.255.255.0;网络B的网段为192.168.2.0/255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使两个网络连接在同一台交换机上,TCP/IP协议也会根据子网掩码判定两个主机处于不同的网络里。而要实现这两个网络之间的通信则必须通过网关。如果网络A中的主机发现数据包的目的主机不再本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

ARP协议-路由交换原理5-【HCNA笔记】

标签:

原文地址:http://www.cnblogs.com/cation/p/5861898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!