《CPIP协议第四章Internet控制协议.ppt》由会员分享,可在线阅读,更多相关《CPIP协议第四章Internet控制协议.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 ARPARP和和RARPRARP1地址解析协议(ARP)IP分组从源站到达目的站的途中可能要经过许多不同的物理网络,在分组传输过程中需要使用以下两类地址:1.逻辑地址:就是指IP地址。2.物理地址:就是指硬件地址、MAC地址或二层地址(数据链路层地址)。物理地址是一个本地地址,其管辖范围为本地网络。通常用硬件来实现的,与物理设备本身相关联。2地址解析协议(ARP)(续)对于IPv4中32bit长的IP地址,考察不同物理网络物理地址长度,可以分为两类不同的类型:1.小型物理地址:相对于32bit的IP地址来说,具有较短的物理地址长度。2.大型物理地址:相对于32bit的IP地址来说
2、,具有较长的物理地址长度。例如以太网的48bit物理地址。3地址解析协议(ARP)(续)所谓静态映射,就是手工创建IP地址与物理地址的映射关系,建立映射表。但静态映射具有一定的局限性:1.当一台主机更换了网络接口卡(NIC),也就改变了该主机的物理地址。2.在某些局域网中,如LocalTalk,每当计算机加电时,它的物理地址就改变一次。3.当主机从一个物理网络移动到另一个物理网络时,虽然主机的物理地址没有改变,但改变了主机的IP地址。4地址解析协议(ARP)(续)在动态映射中,每当及其知道两个地址中的一个(逻辑地址或物理地址)时,就可使用协议把另一个地址找出来。已设计出两个协议来完成动态映射:
3、地址解析协议(ARP)和逆地址解析协议(RARP)ARPRARP逻辑地址逻辑地址物理地址物理地址物理地址物理地址逻辑地址逻辑地址54.1 ARP工作原理例:在同一个物理网络(以太网)上的主机A和B主机A需要查询IP地址为的主机B的物理地址。因为主机A不知道主机B的物理地址,查询就在网络上广播,查询的内容组成ARP请求分组。主机B单播发送ARP应答分组.67使用ARP的四种情况 85.1.3 ARP分组格式硬件类型协议类型硬件长度协议长度操作(请求1,回答2)发送站硬件地址(例如,对以太网是6字节)发送站协议地址(例如,对IP是4字节)目的站硬件地址(例如对以太网是6字节,在请求中不填入)目的站
4、协议地址(例如,对IP是4字节)9ARP的改进 使用ARP高速缓存。当主机(或路由器)A通过ARP请求得到B的物理地址时,就将此“IP地址物理地址”绑定存储在高速缓存中。这样,对于后续发往B的分组,通过查找高速缓存获得物理地址。10使用高速缓存后ARP请求实现流程 有无无有目的站IP地址查询ARP高速缓存IP地址物理地址?广播ARP请求,等待ARP应答提取物理地址“IP地址物理地址“绑定存入高速缓存收到ARP应答?找不到物理地址11改进后的ARP应答实现流程 是否ARP请求分组到达本机是请求目标?用本机物理地址进行应答发送站“IP地址物理地址“绑定存入高速缓存12ARP的改进(续)使用高速缓存
5、超时计时器的优势与缺陷:使用高速缓存超时计时器的优势与缺陷:优势:优势:1、一台主机或路由器能够确定自己、一台主机或路由器能够确定自己ARP缓存中缓存中的信息何时应该重新生效,与其他主机无关。的信息何时应该重新生效,与其他主机无关。2、发送站不需要通过成功的与接收站或第三方、发送站不需要通过成功的与接收站或第三方通信来确定绑定已无效,如果目的站不响应通信来确定绑定已无效,如果目的站不响应ARP请请求,发送站就认为目的站已下线。求,发送站就认为目的站已下线。缺陷:缺陷:如果计时器的间隔是如果计时器的间隔是n秒,发送站直到秒,发送站直到n秒后才秒后才能检测到接收站已下线或出现了故障。在这段时间能检
6、测到接收站已下线或出现了故障。在这段时间内,发送站可能已经发送了大量的分组,但这些分内,发送站可能已经发送了大量的分组,但这些分组都没有被接收站接收。组都没有被接收站接收。135.1.4 代理ARP图给出了两个物理网络通过代理图给出了两个物理网络通过代理ARPARP连接的例子。连接的例子。14ARP软件包 ARPARP软件包由以下五个构件组成:软件包由以下五个构件组成:1.1.高速缓存表高速缓存表2.2.队列队列3.3.输出模块输出模块4.4.输入模块输入模块5.5.高速缓存控制模块高速缓存控制模块15输出模块工作过程1.1.睡眠,直到从睡眠,直到从IPIP软件收到软件收到IPIP分组。分组。
7、2.2.检查高速缓存表,寻找对应于这个检查高速缓存表,寻找对应于这个IPIP分组的终点的项目。分组的终点的项目。3.3.若(找到)若(找到)1 1)若(状态是)若(状态是RESOLVEDRESOLVED)1.1.从该项目中提取硬件地址值从该项目中提取硬件地址值 2.2.把分组连同硬件地址一起发送到数据链路层把分组连同硬件地址一起发送到数据链路层 3.3.返回返回2 2)若(状态是)若(状态是PENDINGPENDING)1.1.把分组放入相应的队列把分组放入相应的队列 2.2.返回返回4.4.若(未找到)若(未找到)1 1)创建一个高速缓存项目,状态置为)创建一个高速缓存项目,状态置为PEND
8、INGPENDING且置且置ATTEMPTSATTEMPTS为为1 12 2)创建一个队列)创建一个队列3 3)把分组放入队列)把分组放入队列4 4)发送)发送ARPARP请求请求5.5.返回返回16输入模块工作过程1.1.睡眠,直到睡眠,直到ARPARP分组(请求或回答)到达。分组(请求或回答)到达。2.2.检查高速缓存表,寻找对应于这个检查高速缓存表,寻找对应于这个ARPARP分组的项目。分组的项目。3.3.若(找到)若(找到)1 1)更新这个项目)更新这个项目2 2)若(状态是)若(状态是PENDINGPENDING)1.1.当队列非空当队列非空1 1)把一个分组从队列中取出)把一个分组
9、从队列中取出2 2)把分组连同硬件地址一起发送给数据链路层。)把分组连同硬件地址一起发送给数据链路层。4.4.若(未找到)若(未找到)1 1)创建一个项目)创建一个项目2 2)把这个项目添加到表中)把这个项目添加到表中5.5.若(分组是请求)若(分组是请求)1 1)发送)发送ARPARP回答回答6.6.返回返回17高速缓存控制模块工作过程1.1.睡眠,直到计时器到时间。睡眠,直到计时器到时间。2.2.对高速缓存表中的每一个项目对高速缓存表中的每一个项目1 1)若(状态为)若(状态为FREEFREE),继续),继续2 2)若(状态是)若(状态是PENDINGPENDING)1.1.把尝试值加把尝
10、试值加1 1 2.2.若(尝试大于最大值)若(尝试大于最大值)1.1.把状态改变为把状态改变为FREEFREE2.2.撤销相应的队列撤销相应的队列 3.3.否则,发送否则,发送ARPARP请求请求 4.4.继续继续3 3)若(状态为)若(状态为RESOLVEDRESOLVED)1.1.把超时字段的值减去已经过的时间把超时字段的值减去已经过的时间 2.2.把(超时字段的值小于或等于零)把(超时字段的值小于或等于零)1.1.把状态改变为把状态改变为FREEFREE2.2.撤销相应的队列撤销相应的队列3.3.返回返回18举例原始高速缓存表原始高速缓存表状态状态 队列队列尝试尝试 超时超时协议地址协议
11、地址硬件地址硬件地址R5900180.3.6.1ACAE32457342P22129.34.4.8P145201.11.56.7R8450114.5.7.89457342ACAE32P121220.55.5.7FR96019.1.7.824573E3242ACAP183188.11.8.7119例2 :ARPARP输出模块收到一个输出模块收到一个IPIP数据报(从数据报(从IPIP层)层),其目的地址为。问,若发送分组到这台主,其目的地址为。问,若发送分组到这台主机,那么使用的硬件地址是什么?机,那么使用的硬件地址是什么?例3 :20s20s以后,以后,ARPARP输出模块收到输出模块收到IP
12、IP数据报(从数据报(从IPIP层),其目的地址为,那么此时的高速缓层),其目的地址为,那么此时的高速缓存表变成什么样?存表变成什么样?答案答案20已更新的高速缓存表已更新的高速缓存表状态状态 队列队列 尝试尝试 超时超时协议地址协议地址硬件地址硬件地址R5900180.3.6.1ACAE32457342P22129.34.4.8P145201.11.56.7R8450114.5.7.89457342ACAE32P121220.55.5.7P231116.1.7.22R96019.1.7.824573E3242ACAP183188.11.8.7121例4 :15s15s以后,以后,ARPARP
13、输入模块收到输入模块收到ARPARP分组,其分组,其目的协议(目的协议(IPIP)地址为,而对应的硬件地址)地址为,而对应的硬件地址为为E34573242ACAE34573242ACA,那么此时的高速缓存表变,那么此时的高速缓存表变成什么样?成什么样?答案答案22状态状态 队列队列 尝试尝试 超时超时协议地址协议地址硬件地址硬件地址R5900180.3.6.1ACAE32457342P22129.34.4.8P145201.11.56.7R8450114.5.7.89457342ACAE32P121220.55.5.7P231116.1.7.22R96019.1.7.824573E3242AC
14、AR183900188.11.8.71E34573242ACA已更新的高速缓存表已更新的高速缓存表23例5 :25s25s以后,高速缓存模块更新每一个项目,以后,高速缓存模块更新每一个项目,对于状态为对于状态为R R的项超时计时器减少相应的时间,的项超时计时器减少相应的时间,对于状态为对于状态为P P的项尝试字段增加的项尝试字段增加1 1,而尝试字,而尝试字段最大值是段最大值是5 5,则此时的高速缓存表的状态?,则此时的高速缓存表的状态?答案答案24状态状态 队列队列 尝试尝试 超时超时协议地址协议地址硬件地址硬件地址R5840180.3.6.1ACAE32457342P22129.34.4.
15、8FR8390114.5.7.89457342ACAE32P121220.55.5.7P231116.1.7.22FR183840188.11.8.71E34573242ACA已更新的高速缓存表已更新的高速缓存表25逆地址解析协议(RARP)RARP实现从物理地址到逻辑地址(IP地址)的映射,即已知主机的物理地址,需要找到其相应的IP地址。26RARP请求分组广播发送请求分组广播发送 27RARP应答分组单播发送应答分组单播发送 28RARP分组格式分组格式 发送站硬件地址发送站协议地址目的站硬件地址目的站协议地址硬件类型协议类型硬件长度协议长度操作(请求3,回答4)294.2 RARP服务器
16、服务器RARP提供从物理地址到逻辑地址的映射。这种映射存储为一个磁盘文件。服务器通常是在应用层实现的,而服务器使用的文件也是在这一层进行存取。RARP服务器则是在数据链路层实现的。要存取文件,RARP需要底层操作系统的帮助。RARP服务器的另一个问题就是这个服务器有时会停机。要向无盘计算机发送RARP回答,管理员通常要安装不止一个RARP服务器。但是当所有的RARP服务器都工作,那么好几个RARP回答将会在同一个时间在网络上传送,这就产生很大的通信量。304.2 BOOTP协议协议引导程序协议BOOTP(BOOTstrap Protocol)是一种为了将以下4种信息提供给无盘计算机或第一次启动
17、的计算机的协议。这个计算机的IP地址这个计算机的子网掩码一个路由器的IP地址(网关的IP地址)一个名称服务器的IP地址31本章小结把分组交付给主机或路由器需要两级地址:逻辑地址和物理地址。逻辑地址在网络级标志主机或路由器。TCP/IP称这种逻辑地址为IP地址物理地址在物理级标志主机或路由器。逻辑地址到物理地址的映射可以是静态的或动态的静态映射要使用逻辑地址与物理地址的对应表,维护这种表需要很大的开销。地址解析协议(ARP)是一种动态映射方法,在给出逻辑地址时可找出对应的物理地址32本章小结(续)ARP请求用广播发送给网络上所有设备ARP回答用单播发送给请求映射的主机使用代理ARP时,一个路由器代表一组主机。当ARP请求寻找该组中的任何一个主机时,这个路由器就发送自己的物理地址。这就产生了划分子网的效果。逆地址解析协议(RARP)是一种动态映射方法,把给定的物理地址和逻辑地址关联起来。BOOTP协议的作用?33练习1.以太网的广播地址是什么?2.某路由器的IP地址是,而所在的以太网物理地址是23:45:AB:4F:67:CD,它要给IP地址是的主机发送IP分组。试给出这个路由器发出的ARP请求分组中的各项目。假定不划分子网。3.书上P1063、44.BOOTP协议的作用?34
限制150内