协议分析第4章ARP协议.ppt

上传人:小飞机 文档编号:5759123 上传时间:2023-08-17 格式:PPT 页数:54 大小:1,009.50KB
返回 下载 相关 举报
协议分析第4章ARP协议.ppt_第1页
第1页 / 共54页
协议分析第4章ARP协议.ppt_第2页
第2页 / 共54页
协议分析第4章ARP协议.ppt_第3页
第3页 / 共54页
协议分析第4章ARP协议.ppt_第4页
第4页 / 共54页
协议分析第4章ARP协议.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《协议分析第4章ARP协议.ppt》由会员分享,可在线阅读,更多相关《协议分析第4章ARP协议.ppt(54页珍藏版)》请在三一办公上搜索。

1、计算机网络协议分析与测试,第四章 ARP协议,地址解析,互联网地址能够将不同的物理地址统一起来,采用的技术是在各种物理网络技术上覆盖一层软件(IP协议+ARP协议+RARP协议),将物理地址隐藏起来。因特网技术并没有改变底层的物理网络,最终数据还是在物理网络上传输,而在物理网络上传输时使用的仍是物理地址。网络层使用IP地址,物理网络仍使用物理地址。同时存在的两套地址之间必须建立映射关系。,IP地址又称为逻辑地址,逻辑地址由软件进行处理。建立逻辑地址与物理地址之间映射的方法通常有两种:-静态映射主要采用地址映射表格来实现逻辑地址与物理地址之间的映射。由于地址映射表一般由人工方式建立和维护,所以不

2、能适应物理地址和逻辑地址频繁变化的网络和规模庞大的网络。网卡变化、主机移动后需及时更新地址映射表。-动态映射是在需要获得地址映射关系时利用网络通信协议直接从其他主机上获得映射信息。因特网采用了动态映射的方法进行地址映射。,逻辑地址与物理地址之间的映射称为地址解析(Address resolution)。地址解析包括两个方面的内容:-从IP地址到物理地址的映射-从物理地址到IP地址的映射 TCP/IP用两个协议来实现这两种映射,一个是地址解析协议ARP,另一个是反向地址解析协议RARP。-ARP用于从IP地址到物理地址的映射-RARP用于从物理地址到IP地址的映射,-ARP用于从IP地址到物理地

3、址的映射-RARP用于从物理地址到IP地址的映射,4.1 地址解析协议(ARP)4.2 反向地址解析协议(RARP)4.3 地址解析报文 4.4 代理ARP,本章主要内容,第一节 地址解析协议(ARP),4.1 地址解析协议(ARP),4.1.1 地址解析原理地址解析协议ARP使IP能够获得与某个给定IP地址相关的主机物理地址。ARP的功能分为两部分:发送数据包请求获得目的主机的物理地址向请求物理地址的主机发送解析结果。当主机A需要向同一物理网络中的主机B发送IP数据报时,主机A的IP层要将IP数据报传给数据链路层进行帧封装,封装时要求给出目的主机的物理地址。,ARP解析步骤,A的IP层发送数

4、据报给B时产生的事件:IP调用ARP,请求IP地址IB的物理地址PBARP创建一个请求帧,请求IB对应的PBA在本地网络中广播ARP请求帧该网络中所有主机都收到ARP请求帧,并将自己的IP地址与IB进行比较,不匹配则忽略如果主机发现IB与自己IP相同,产生应答帧ARP应答帧直接发回给AA利用从应答帧中获得的PB完成IP数据报封装,然后发给B,ARP请求帧将包括如下信息:请求主机的物理地址PA请求主机的IP地址IA目的主机的IP地址IB 主机A在本地网络中广播的ARP请求帧目的地址为广播地址(全“1”)。,ARP应答帧直接发回给发送ARP请求的主机A。ARP应答帧包含以下信息:应答主机的物理地址

5、PB;应答主机的IP地址IB;请求主机的物理地址PA;请求主机的IP地址IA A利用从应答帧中得到的目的主机的物理地址PB完成IP数据报的帧封装,并将该帧发送给主机B。,注意两点:1.ARP请求帧在物理网络中是以广播方式发送的,ARP应答帧是以单播方式发 送的。2.目的主机必须与源主机位于同一物理网络。,问题:如果每次在发送IP数据报前都重复上面的过程,势必会带来较大的开销。广播ARP请求不仅要耗费带宽,而且使得本地网络中的每台主机都要处理该广播帧,或忽略或给出响应帧。解决:为了使地址解析时的广播尽可能少,每台主机都维护一个名为ARP高速缓存的本地列表。ARP高速缓存中含有最近使用过的IP地址

6、与物理地址的映射列表。ARP请求和应答方都把对方的地址映射存储在ARP高速缓存中。,4.1.2 ARP缓存,使用:当发送IP数据报需要获取目的主机的物理地址时,首先检查它的ARP高速缓存,如果ARP高速缓存中已经存在对应的映射表项,则目的主机的硬件地址可以从ARP高速缓存中获得,主机可以立即发送IP数据报。只有当ARP高速缓存中不存在与该目的IP地址对应的映射表项时,才广播ARP请求。创建:由于ARP高速缓存位于内存中,因此每次计算机或路由器重新启动时,都必须动态地创建地址映射表。当主机收到一个ARP请求帧或响应帧时,检查它的ARP高速缓存,如果ARP高速缓存中不存在对应的映射表项,则将ARP

7、请求帧或响应帧中的发送方的IP地址和物理地址加入到ARP高速缓存中。,4.1.2 ARP缓存,1ARP高速缓存中地址映射表项的超时问题:由于IP地址与物理地址的映射关系可能因网络接口或IP地址的变化而发生变化,对于ARP高速缓存中地址映射表项都存在一个过时的问题。解决:给ARP高速缓存中的每一个表项设置一个超时值,使得每个地址映射表项都有一个生命期。不同的TCP/IP实现使用不同的超时值,短的仅有几十秒钟,而长的则长达几个小时。超时值越短,系统中出现的ARP请求广播就越多。但若超时值过长,主机又不能及时地发现地址映射关系的改变,也可能会引起问题。Windows 2min不用则超时,2min内使

8、用则延长到10min 映射表超时前,ARP高速缓存已满,且有新的表项要加入,则删除最旧的表项。regedit:MachineSysCurrentControlSetservicestcpipparameters:ArpCacheLife 可以修改。,ARP高速缓存中地址映射表项的超时,2.静态ARP表项,另一种控制地址映射表项超时值的方法是在ARP高速缓存中创建一个静态表项。静态表项是永不超时的地址映射表项。静态表项主要用在一台主机经常向另一台主机发送ARP请求的情况下。为了提高效率,减少不必要的开销,可以在ARP高速缓存中创建一个静态表项,使该地址映射表项始终存在于ARP高速缓存中,避免向某

9、一主机发送ARP广播。,静态表项也有可能发生变化:当主机接收到ARP广播,而且该广播所含的地址信息与当前ARP高速缓存中对应的静态表项不一致时,主机将用新收到的物理地址替代原有的物理地址,并为该表项设置超时值,使其不再是静态表项。使用arp实用程序可以人工删除静态表项。重新启动主机也会使静态表项丢失。静态表项的不足之处是不能很好地适应地址映射的变化。,4.1.3 ARP实用程序,通过arp实用程序,可以对ARP高速缓存进行查看和管理。ARP命令可以显示或删除ARP高速缓存中的IP地址与物理地址的映射表项,而且还可以添加静态表项。arp命令的格式如下:arp-a inet_addr 显示地址映射

10、表项,为可选项。arp-g inet_addr 功能与arp-a inet_addr相同。arp-d inet_addr 删除由inet_addr所指定的表项。arp-s inet_addr phys_addr 增加由inet_addr和phys_addr指定的静态表项。inet_addr为点分十进制格式的IP地址,phys_addr为十六进制形式的物理地址,物理地址的字节之间用短横线分割,例如,0C-26-1B-23-45-67。,C:Documents and Settingscyarp-aInterface:192.168.2.101-0 x2 Internet Address Phys

11、ical Address Type 192.168.2.1 00-1d-0f-85-fd-6c dynamic 192.168.2.100 8c-a9-82-09-b4-84 dynamicC:Documents and Settingscyarp-gInterface:192.168.2.101-0 x2 Internet Address Physical Address Type 192.168.2.1 00-1d-0f-85-fd-6c dynamic 192.168.2.100 8c-a9-82-09-b4-84 dynamicInterface:192.168.2.102-0 x10

12、004 Internet Address Physical Address Type 192.168.2.100 8c-a9-82-09-b4-84 dynamic,Arp,ARP地址转换协议,用来确定对应IP地址的网卡物理地址(MAC),查看本地计算机或另一台计算机ARP高速缓存中的当前内容,并可以将IP地址和MAC地址绑定,以防止攻击。,主要用法:1、ARP a查看所有缓存中的条目2、ARP s静态增加ARP表项,动态的可以通过ping实现3、ARP a IP只显示相关的条目4、ARP d IP删除条目,4.1.4 地址解析实例,实例解析1:参与通信的源主机与目的主机位于同一个子网实例解析

13、2:参与通信的源主机与目的主机位于不同的子网,1.源主机与目的主机位于同一子网,196.168.27.20主机,向196.168.27.22主机发送IP数据报,进行IP地址解析的过程,具体步骤:检查本地ARP高速缓存向目的主机发送ARP请求将请求方的地址信息写入ARP高速缓存向请求方发送ARP应答请求方更新ARP高速缓存,1.源主机与目的主机位于同一子网,196.168.27.20主机,向196.168.27.22主机发送IP数据报,进行IP地址解析的过程,具体步骤:检查本地ARP高速缓存向目的主机发送ARP请求将请求方的地址信息写入ARP高速缓存向请求方发送ARP应答请求方更新ARP高速缓存

14、,(1)检查本地ARP高速缓存确定同一子网目的主机的物理地址时,ARP首先检查本地的ARP高速缓存,确定它是否含有目的主机的IP地址与物理地址的映射。如包含,则取出目的主机的物理地址,利用物理地址将IP数据报封装成帧。此时不需要广播ARP请求,因为目的主机的物理地址已经在以前的通信中被存入了本地的ARP高速缓存。如果ARP高速缓存中不包含相关的地址映射,则进行下一步操作。,(2)向目的主机发送ARP请求:若ARP高速缓存不包含所需的地址映射,主机就会形成一个ARP请求,以物理广播地址在本子网上广播,并等待目的主机的应答。(3)将请求者的地址信息写入ARP高速缓存:由于ARP请求是子网上的广播,

15、因而该子网上的每台主机都会收到广播,并将自己IP址和ARP请求中的目的IP比较。如不匹配,则请求被忽略;如果相匹配,则目的主机就将发送者的IP地址与物理地址写入到本机的ARP高速缓存中。,(4)向请求者发送ARP响应 如果在ARP请求期间产生准确的匹配,则目的主机就向发送主机以单播方式发出一个ARP应答(因为此时应答主机已经知道了请求方的物理地址)。(5)请求方更新ARP高速缓存 请求主机收到ARP应答后,取出应答中应答者的IP地址与物理地址,将其写入它的ARP高速缓存。至此,双方都已知道了对方的地址映射,完成了地址解析,下面就可以进行两主机之间的通信了。,2.源主机与目的主机位于不同的子网,

16、目的主机与源主机不在同一子网中时,源主机与目的主机之间有一台或多台路由器,ARP必须为IP数据报通过的每个路由器解析IP地址,逐级解析下1跳的物理地址,封装帧后发包。源主机根据源IP地址、目的IP地址以及子网掩码可以判断出本主机与目的主机位于不同的子网,源主机根据其路由表(或默认网关设置)得到去往目的主机的下一跳路由器路由器1的IP地址,源主机通过ARP解析得到路由器1端口1A的物理地址,然后将要传送给目的主机的IP数据报用该物理地址封装成帧后发送给路由器1。,路由器1收到该IP数据报后,根据目的主机的IP地址和自己的路由表确定去往目的主机的下一跳路由器路由器2的IP地址,并通过ARP解析得到

17、路由器2端口2A的物理地址,然后将要传送给目的主机的IP数据报用该物理地址封装成帧后发送给路由器2。如此下去,以逐级跳的方式将IP数据报传至路由器n。路由器n根据目的主机的IP地址解析得到目的主机的物理地址,用该物理地址将IP数据报封装成帧后发送给目的主机。,2.源主机与目的主机位于不同的子网,2.源主机与目的主机位于不同的子网,假设一台IP地址为172.16.1.9,子网掩码为255.255.255.0的客户机希望向IP地址为 172.16.2.5的主机发送IP数据报。,(1)检查本地高速缓存 当一台设备确认目的IP地址不属于本子网时,它会根据本身的路由表找到去往目的网络的路由器的IP地址(

18、图中为172.16.1.1)。然后根据此IP地址确定路由器该端口的硬件地址,ARP首先检查本地的ARP高速缓存,确定它是否含有路由器对应端口的IP地址与物理地址的映射。如果包含,则ARP取出路由器端口的硬件地址,并以此物理地址为目的地址完成数据帧的封装和传输。,(2)向下一跳路由器发送ARP请求 如果在ARP高速缓存中没有发现路由器IP地址的映射,则主机A必须向该路由器发送ARP请求广播,并等待答复。该ARP请求包含发送者的IP地址和硬件地址,以及路由器的IP地址。,(3)缓存ARP请求 由于ARP请求是子网上的广播,因而网络上的每台设备都能接收到该数据包,并将自己的IP地址和该ARP请求中所

19、指定的IP地址相比较。若不匹配,则忽略;若相匹配,则刷新本地ARP高速缓存。当路由器有多个网络接口时,每个接口都维护各自的高速缓存。(4)路由器将ARP应答传给源主机 路由器向源主机发出一个ARP应答,应答给出了路由器与主机A所在网络的接口的IP地址解析。(5)源主机刷新自己的ARP高速缓存 源主机刷新自己的ARP高速缓存,使其包含从ARP应答中得到的路由器的IP地址-物理地址映射。,(6)源主机向路由器发送数据:完成路由器地址的解析后,将数据传给路由器。(7)路由器进行转发前查询ARP高速缓存:数据被传送到路由器后,路由器根据IP数据报中目的主机的IP地址和路由表确定数据是否已到达最后一跳路

20、由器。若不是,则继续向下一跳路由器转发;否则,可以直接发往目的主机。(8)向目的主机发送ARP请求:如果在路由器的ARP高速缓存中没有找到目的主机的地址映射,则路由器就必须向通往目的网络的接口广播一个ARP请求,并等待答复。,(9)刷新ARP高速缓存:目的子网上的所有主机均能接收到ARP广播,并将自己的IP地址与ARP请求中所指定的IP地址进行比较。如果不相匹配,则抛弃该ARP请求;如果匹配,则目的主机刷新它的ARP高速缓存表目。(10)目的主机将ARP应答发送回路由器:目的主机向路由器发回一个ARP应答。应答中包含对目的主机地址的解析结果。(11)路由器刷新高速缓存:路由器收到应答后,刷新自

21、己的高速缓存,使其包含目的主机的地址映射。,(12)路由器向目的主机转发数据 完成目的主机地址的解析后,源主机根据目的主机的物理地址进行物理数据帧的封装,然后将数据传给目的主机。至此,源主机和目的主机完成了一次单向通信。,第一次通信时要完成ARP高速缓存的写入,后面的通信就变得容易得多了。引入ARP高速缓存的好处在于:一次解析,多次使用。注意:数据包在从源到目的地的传输是通过逐级跳的方式完成的。在转发过程中数据包的源、目的IP地址是不发生变化的,而物理地址在每一跳都会发生变化。远程通信时的逐段地址解析正是为了满足这一要求。,4.2 反向地址解析协议(RARP),反向地址解析协议RARP可以实现

22、从物理地址到IP地址的转换。反向地址解析协议被无盘计算机用来获取其IP地址。由于无盘计算机没有外部存储器来记录其IP地址,一旦关机,就会丢掉它的IP地址。无盘计算机为了在开机时获得它的IP地址,必须有一个唯一的且容易读取的标识符,根据这一标识,无盘计算机可以从RARP服务器上获得其IP地址。物理地址可以直接从硬件(NIC)中读取,而且物理地址在一个物理网络中是唯一的。因此,物理地址是解析协议地址的最佳标识符。,在进行反向地址解析前,无盘计算机只知道自己的物理地址,另外还具有一个位于ROM中的基本输入/输出系统。通过这个基本输入/输出系统无盘计算机可以在网络上传送数据。由于无盘计算机不知道自己的

23、IP地址,同时也不知道RARP服务器的IP地址和物理地址,因此,无盘计算机只能以广播方式发出RARP请求。反向地址解析过程如图示。之所以RARP服务器能够给出无盘计算机的地址映射,是因为RARP服务器上存有管理人员配置好的物理地址-IP地址映射表。,(1)无盘计算机以广播方式发出携带本机物理地址的RARP请求。注意这里的广播是帧的广播,即目的MAC地址为全“1”。(2)网上所有的计算机均收到该请求,但只有提供RARP服务的RARP服务器处理请求并根据请求者的物理地址查物理地址-IP地址映射表,然后形成应答。应答以单播方式发送。,为了保证系统的可靠性,可以在网络上设置若干台RARP服务器,此时,

24、请求者会收到多个RARP服务器的应答,而请求者只认可最先到达的一个应答。为了防止多个RARP服务器同时给出应答造成冲突,可以将RARP服务器分为主RARP服务器和备份RARP服务器,主RARP服务器只有一个而备份RARP服务器可以有多个。正常情况下由主RARP服务器给出应答,只有当主RARP服务器不能给出应答时,备份RARP服务器才介入解析工作。设备(路由器等)不仅可以对自己的地址进行反向解析,而且可以对其他机器的地址进行反向解析。,ARP和RARP的不同之处 ARP假定每个主机都知道自己的物理地址和IP地址的映射,地址解析的目的是求取另一个设备的物理地址,而RARP则主要是由本机的物理地址求

25、取本机的IP地址。-RARP需要有RARP服务器帮助完成解析,而ARP不需要专门的服务器。,4.3 地址解析报文,4.3.1 地址解析报文格式ARP和RARP都是通过一对请求和应答报文来完成解析的。TCP/IP协议为了保证一致性和处理上的方便,将ARP和RARP的请求和应答报文设计成相同的格式,通过操作字段来加以区别。这一设计思想在TCP/IP协议设计中被反复使用。,0 8 16 31,4.3 地址解析报文,0 8 16 31,硬件类型:16bit 定义物理网络类型,如 以太=1协议类型:16bit 定义使用ARP的协议,如IPV4=0800硬件地址长度:8bit 以字节为单位定义物理地址长度

26、 以太网=6协议地址长度:8bit 以字节为单位定义协议地址长度 IPv4=4,4.3 地址解析报文,0 8 16 31,操作类型:16bit 定义报文的类型 ARP请求=1;ARP应答=2;RARP请求=3;RARP应答=4;发送方硬件地址:长度取决于硬件地址长度,定义发方物理地址发送方协议地址:长度取决于协议地址长度,定义发方协议地址 RARP请求中不填写此字段(待解析),4.3 地址解析报文,0 8 16 31,操作类型:16bit 定义报文的类型 ARP请求=1;ARP应答=2;RARP请求=3;RARP应答=4;目的硬件地址:长度取决于硬件地址长度,定义目的物理地址 ARP请求中不填

27、写此字段(待解析)目的协议地址:长度取决于协议地址长度,定义目的协议地址 RARP请求中不填写此字段(待解析),4.3.2 地址解析报文处理在ARP请求报文中,发送方在发送方硬件地址字段填入本机的物理地址,在发送方协议地址字段填入本机的协议地址(对于TCP/IP协议就是IP地址),在目的协议地址字段填入准备解析的目标机的IP地址,目的硬件地址不填(为0),在操作类型字段填入“1”表示是ARP请求。ARP请求以广播方式在物理网络中发送。在ARP应答报文中,目标机将收到的ARP请求报文中的发送方硬件地址和发送方协议地址放入目的硬件地址和目的协议地址,将自己的硬件地址和协议地址(IP地址)填入发送方

28、硬件地址和发送方协议地址,在操作类型字段填入“2”表示是ARP应答。ARP应答以单播方式在物理网络中发送。,0 8 16 31,在RARP请求报文中,本机一般既是发送方又是目标机(需要获得其IP地址),因此,在发送方硬件地址字段和目的硬件地址字段都填本机的物理地址。操作类型字段填入“3”表示是RARP请求。RARP请求以广播方式在物理网络中发送。RARP应答报文由RARP服务器给出,因此,RARP服务器是发送方。在RARP应答报文中,发送方硬件地址和发送方协议地址字段填的是给出应答的RARP服务器的物理地址和IP地址,而目的硬件地址和目的协议地址字段填的是被解析对象的IP地址和物理地址,操作类

29、型字段填入“4”表示是RARP应答。RARP应答以单播方式在物理网络中发送。,4.3.3 地址解析报文封装,ARP/RARP报文是作为一般数据直接封装在物理帧中进行传输的,ARP/RARP报文封装在以太网物理帧中的格式如下图所示。,4.4 代理ARP,代理ARP被用在路由器上可以使路由器代替隐藏在路由器后面的主机响应ARP请求。如下图 4-15所示,当主机A请求对隐藏在路由器后面的子网中的某一主机IP地址(196.168.17.33196.168.17.46)进行解析时,代理ARP路由器将用自己的物理地址0 x45EF695A2712作为解析结果进行响应。这样,主机A就将此物理地址作为隐藏子网

30、上的主机的物理地址进行通信,实际上,主机A发出的信息被送到代理ARP路由器,然后由代理ARP路由器将信息转发给真正拥有那一IP地址的主机。,主机A将隐藏子网中的主机都作为本物理网络上的主机对待,但事实上却是位于不同的子网。隐藏子网完全可以采用和主机A所在子网不同的物理网络技术。借助于代理ARP进行通信和与远程主机的通信是不同的。以图为例,主机A与主机B进行通信时,主机A发出的ARP请求中的目的协议地址是196.168.17.46。而当路由器不运行代理ARP时,必须通过子网掩码将主机A和主机B划分到不同的子网中,主机A发出的ARP请求中的目的协议地址一定是196.168.17.17。,本章要点,

31、建立逻辑地址与物理地址之间映射的方法通常有静态映射和动态映射。动态映射是在需要获得地址映射关系时利用网络通信协议直接从其他主机上获得映射信息。因特网采用了动态映射的方法进行地址映射。获得逻辑地址与物理地址之间的映射关系称为地址解析。地址解析协议ARP是将逻辑地址(IP地址)映射到物理地址的动态映射协议。ARP高速缓存中含有最近使用过的IP地址与物理地址的映射列表。,在ARP高速缓存中创建的静态表项是永不超时的地址映射表项。反向地址解析协议RARP是将给定的物理地址映射到逻辑地址(IP地址)的动态映射。RARP需要有RARP服务器帮助完成解析。ARP请求和RARP请求,都是采用本地物理网络广播实现的。在代理ARP中,当主机请求对隐藏在路由器后面的子网中的某一主机IP地址进行解析时,代理ARP路由器将用自己的物理地址作为解析结果进行响应。,Question?,主机A,MAC:0 xa35b6042c521 主机B IP:202.119.86.50 MAC:0 x2c0b367251201、A、B在同一子网内,A广播ARP请求B的物理地址,其请求报文内容各字段值为?2、B根据IP比较进行了解析,发回的ARP应答报文中,各字段值?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号