您的位置:首页 > 理论基础 > 计算机网络

【软件测试】网络应用篇:第二章 互联网底层协议—ARP、RARP、ICMP、IGMP

2011-03-13 22:13 609 查看

第二章 互联网底层协议—ARP、RARP、ICMP、IGMP

一、ARP:地址解析协议,Adress Resolution Protocl

ARP用途:32位网络层IP地址(网络号+网络中PC号)是虚地址,只在路由器中有效。IP分组进入物理网络LAN(或ATM等),LAN网络硬件不能根据IP地址定位PC-B。当IP分组穿越实际物理网络(如LAN、DDN、ATM、FR)时到达下站协议地址(路由器或PC)前,IP地址必须先翻译为等价的硬件地址,即地址解析。

ARP技术实现
查表法( Table Lookup),把地址联编的信息存储在内存的一张表中,当需要ARP时查询表。适用WAN,维护麻烦。
相近计算法(Close-Form Computation),精心选择网络中的IP地址,使之能通过IP地址的简单计算得出硬件地址。计算效率高,无须维护表,但管理员地址分配麻烦。
消息交换法(Message Exchange),当解析一个地址时,发出某个地址解析的请求(广播或定向),另一台计算机(目的计算机或代理)返回一个应答信息。通用性强,但增加网络通信量,适用静态编址网络。
TCP/IP协议包含了ARP协议,通常采用广播的消息交换方式,即向网络中计算机广播发出请求包,目的IP地址计算机应答返回其硬件地址。

以太网封装的ARP分组格式




二、RARP:逆地址解析协议,Reverse Adress Resolution Protocl
字面可以想象出RARP是从过程硬件地址获取IP地址的处理!通常计算机可以从磁盘的配置文件中直接读取IP地址,但对无盘PC、无盘工作站等情况下,就需要从RARP的方法获取自身的IP地址。所以, RARP协议是无盘PC、无盘工作站在系统引导时用来获取IP的。

RARP实现复杂性
APR服务器构成简单,是TCP/IP内核一部分,由于内核知道计算机的IP地址和硬件地址,所以请求和应答过程很方便。
RAPR服务器要为所有无盘机提供硬件地址和IP地址的联编服务,需要放置在磁盘文件中。由于内核一般不读磁盘文件,所以RAPR服务器功能只有在用户进程中实现 。RARP概念简单,但实现与系统有关,而不一定是TCP/IP内核实现的一部分。

以太网封装的RARP分组格式
基本结构完全和ARP一致,只是在帧类型、操作类型定义不同。



三、ICMP:Internet控制报文协议,Internet Control Message Protocol
IP提供的尽力数据报通信服务无连接服务,而并不能解决网络低层的数据报丢失、重复、延迟或乱序等问题,TCP在IP基础建立有连接服务解决以上问题,不能解决网络故障或其它网络原因无法传输的包的问题。
所以, ICMP设计的本意就是希望对IP包无法传输时提供报告,这些差错报告帮助了发送方了解为什么无法传递,网络发生了什么问题,确定应用程序后续操作。
注意:IP中有关于差错检测的机制——用于检测传输错误的头部检验和。

ICMP的两级封装:每个ICMP报文放在IP数据报的数据部分中通过互联网传递,而IP数据报本身放在帧的数据部分中通过物理网络传递。



ICMP报文格式:ICMP定义了五种常用差错报文和六种询问报文类型,以及用代码表达某类型下面不同情况的细分。
类型(用来标识报文,有15个不同的值)
代号
校验和(覆盖整个ICMP报文)
ICMP数据(取决于消息类型)
………………
(提供有关报文类型的进一步信息)
ICMP应用:有三种基于ICMP的简单而广泛使用的应用为:Ping、Traceroute、MTU测试。Ping是应用层直接使用网络层ICMP的一个例子,它没有通过运输层的TCP或UDP。

四、IGMP:因特网组管理协议,Internet Group Multicast Protocol
IGMP基础知识:
单播(unicast:一个主机向网上的单个目的主机发送帧。
广播(broadcast:一个主机向网上的所有其它主机发送帧。
多播(multicast:介于单播和广播之间,帧仅传送给属于多播组的多个主机。
能够接收发往一个特定多播组地址数据的主机集合称为多播组。能够运行多播协议的路由器称为多播路由器(multicast router)。多播路由器可以是一个单独的路由器,也可以是运行多播软件的普通路由器。
多播的应用:音频会议、多媒体会议、数据分发、博奕和模拟、实时数据多播等。
因特网多播地址:D类是专用多播地址,范围 224.0.0.0-239.255.255.255

因特网组管理协议(IGMP:一台主机如何加入或离开多播群组呢?有一个标准协议——因特网组管理协议,每当主机需要加入或离开某个特定的多播群组时,该协议允许该主机去通知邻近的路由器。该协议只用在主机与路由器之间的网络上。而且,协议只把计算机(不是应用进程)定义为群组成员。如果在一给定计算机上有多个进程要加入到一个多播群组,计算机必须要把接收到的每个数据报复制多个副本给每个进程。只有当最后一个进程离开群组时,计算机才利用IGMP通知本地的路由器,表明它不再是群组的成员了。

IGMP报文格式



IGMP协议优化处理:目的尽量避免多播信息对网络增加大量开销。
1、主机和多播路由器的所有通信使用IP多播,只要有可能,携带IGMP报文的数据报都使用硬件多播来传送。
2、多播路由器在探询组成员关系时,只需要对所有多播组只发一个查询,而不是对每一个组发送一个查询,默认125S一次。

多播路由选择问题的复杂性
1、IGMP协议只解决多播组的成员关系变化,而没有涉及多播的路由选择问题。
2、多播组成员的动态变化,使多播的路由是动态变化的;多播转发不仅要考虑目的地址,而且还要考虑源地址,以确定复制和转发副本;多播数据报可能不是组成员主机产生,也可能通过无组成员的网络。
3、目前采用的多播路由算法思想:寻找从源开始的多播树,使每个数据报在每条链路上传一次(不兜圈子)。

官方博文地址:http://www.17core.com/blog/html/201103/226.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐