高楼外墙清洗价格:网际层

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 02:00:32
1 IP v4协议     1.IP地址
(1) IP地址的格式与分类
(2) IP地址的屏蔽码
A 无子网的表示法
B 有子网的表示法
2. IP协议
(1) IP数据报格式
(2) 数据报的分段与重装
A 数据报分段
B 数据报重装
3. 路由选择
(1) 数据报发送
(2) 数据报接收
4. IP数据报选项
2 IP v6协议
1.IP v6报文格式
2.IP v6地址格式
(1) 单播地址
(2) 多播地址
(3) 任播地址
3.IP v6路由选择
4.IP v6安全机制
5.IP v6移动性
6.IP v6 QoS支持机制
3 ARP协议和RARP协议
1. ARP协议
2. RARP协议
4 ICMP协议
1. ICMP报文格式
2. ICMP差错报文
3. ICMP控制报文
4. ICMP请求/应答报文
网际层的主要功能是实现互连网络环境下的端到端数据分组传输,这种端到端数据分组传输采用无连接交换方式来完成。为此,网际层提供了基于无连接的数据传输、路由选择、拥塞控制和地址映射等功能,这些功能主要由4个协议来实现:IP、ARP、 RARP和ICMP,其中IP协议提供数据分组传输、路由选择等功能,ARP和RARP提供逻辑地址与物理地址映射功能,ICMP协议提供网络控制和差错处理功能。
1 IP v4协议
IP(Internet Protocol)协议是网际层的主要协议。目前,IP有两个版本:IP v4和IP v6,IP v4是当前使用的版本,也是IP网络技术的基础。因此,首先介绍IP v4协议。
1.IP地址
在互连网体系结构中, 参与通信的各个节点(包括端节点和中间节点)都要预先分配一个惟一的逻辑地址作为标识符,并且使用该地址进行一切通信活动, 该地址称为IP地址。在IP v4 中,IP地址为32位,由网络标识(Net)和主机标识(Host)两部分组成, 可标识一个互连网络中任何一个网络中的任何节点。从节点标识的角度,IP协议将节点统称为主机(Host)。
IP地址是一种在网际层用来标识主机的逻辑地址。当数据报在物理网络传输时, 还必须把IP地址转换成物理地址, 由网际层的地址解析协议ARP提供这种地址映射服务。
(1) IP地址的格式与分类
IP地址有二进制格式和十进制格式两种。十进制格式是由二进制翻译过去的, 用十进制表示是为了便于使用和掌握。
二进制的IP地址共有32 位。例如: 10000011, 01101011, 00000011, 00011000。每八位组用一个十进制数表示, 并用“.”进行分隔, 上例就变为131.107.3.24。IP地址分为A、B、C、D、E五类。其中A、B、C类地址的一般格式为:
其中,M为地址类别号;NET为网络号;HOST为主机号。地址类别不同, 这三个参数在 32 位中所占的位数也不同。下图为IP地址格式。

在IP地址中,有一些特殊的规定:
·当32位的IP地址为全0 时,表示该主机,但只允许在主机启动时使用,以后不允许再使用。
·当32位的IP地址为全1 时,表示在该网的广播地址,一般用于初始化。
·当32位的IP地址为 127.0.0.0时,表示是回送地址,目的地址为回送地址的数据报将被IP协议立即送回,主要用于网络测试目的。
·当主机地址为全0时表示该类网本身。
·当主机地址为全1时表示该类网内广播地址。

在A类地址中,M字段占1 位,即第0位为0,表示是A类地址,第1~7位表示网络地址, 第8~31位表示主机地址。它所能表示的地址范围为0.0.0.0~127.255.255.255, 可以表示28-2=126个A类网,每个A类网最多可以有224-2=16 387 062个主机地址。A类地址通常用于超大型网络的场合。
在B类地址中, M字段占2位,即第0、1位为“1 0”,表示是B类地址,第2~15位表示网络地址, 第16~31位表示主机地址。它所能表示的地址范围为128.0.0.0~191.255.255.255, 可以表示214-1=16383个B类网,每个B类网最多可以有224-2=16 64 574个主机地址。B类地址通常用于大型网络的场合。
在C类地址中, M字段占3位,即第0、1、2位为“1 1 0”,表示是C类地址,第3~23位表示网络地址, 第24~31位表示主机地址。它所表示的范围为192.0.0.0~223.255.255.255, 可以表示221-1=2097151个C类网,每个C类网最多可以有28-2=254个主机地址。C类地址通常用于校园网或企业网。
D类地址是多播地址,它所能表示的地址范围为224.0.0.0~239.255.255.255。在 Internet中,允许有两类广播组:临时地址广播组和永久地址广播组。临时地址广播组是临时建立的广播组,必须事先创建;永久地址广播组则永久性存在,不需要事先创建,主要用于特殊目的,例如:
·224.0.0.1表示本网络所有的主机和路由器。
·224.0.0.2表示本网络所有的路由器。
·224.0.0.5表示本网络所有的OSPF路由器。
·224.0.0.6表示本网络指定的OSPF路由器。
·224.0.0.9表示本网络所有的RIP路由器。
E类地址是实验地址,它所能表示的地址范围为 240.0.0.0~247.255.255.255。
在Internet中,IP 地址不是任意分配的, 必须由国际组织统一分配,以保持IP地址惟一性,避免IP地址冲突。有关的国际组织机构是:
①分配A类(最高一级)IP 地址的国际组织是国际网络信息中心NIC(Network Information Center)。它负责分配A类IP地址, 授权分配B类IP地址的组织—自治区系统。它有权重新刷新IP地址。
②分配B类IP地址的国际组织是InterNIC、APNIC和ENIC。这三个自治区系统组织的分工是:ENIC负责欧洲地址的分配工作;InterNIC负责北美地区;而APNIC负责亚太地区, 设在日本东京大学。我国属于APNIC, 由它来分配B类地址。例如, APNIC给中国CERNET分配了10个B类地址。
③分配C类IP地址的组织是国家或地区网络的NIC。例如, CERNET的NIC设在清华大学, CERNET各地区的网管中心需向CERNET NIC申请分配C类地址。
RFC 1597规定下列地址可以用于Intranet内部地址:
·A类地址:10.0.0.0~10.255.255.255
·B类地址:172.16.0.0~172.31.255.255
·C类地址:192.168.0.0~192.168.255.255
(2) IP地址的屏蔽码
屏蔽码是IP地址的特殊标注码,也是用32位表示,用于指明一个IP网络中是否有子网。
A 无子网的表示法
如果一个IP网络无子网,则屏蔽码中的网络号字段各位全为1, 主机号字段各位全为0。例如:
IP地址: 202.114.80.5
屏蔽码: 255.255.255.0
IP地址 202.114.80.5标识了202.114.80号网络中的5号主机,并且202.114.80号网络中没有设置子网。在无子网的情况下可以省略屏蔽码。
B 有子网的表示法
如果一个IP网络有子网,则子网号用主机号字段的前几位来表示, 所占的位数与子网的数量相对应, 如1位可表示2个子网;2位可表示4个子网;3位可表示8个子网…。并且屏蔽码和IP地址必须成对出现,屏蔽码中的网络号字段各位全为1, 主机号字段中的子网号各位也全为1, 而主机号各位全为0。例如:
IP地址:202.114.80.5
屏蔽码:255.255.255.224 (224为二进制的“11100000”)
它表示在 202.114.80号网络中最多有8个子网, 每个子网可配置32台主机。这个IP地址标识的是该IP网络0号子网中的第5号主机。
在有子网的IP网络中,如果两个主机属于同一个子网, 则它们之间可以直接进行信息交换,而不需要路由器;如果两个主机不在同一个子网, 即子网号不同, 则它们之间就要通过路由进行信息交换。例如:
屏蔽码:255.255.255.224
IP地址:202.114.80.1主机号字段为00000001
202.114.80.16 主机号字段为00010000
这两个IP地址的主机号字段前三位均为000, 说明它们属于同一子网, 可不通过路由器来直接交换信息。又如:
屏蔽码:255.255.255.224
IP地址:202.114.80.1主机号字段为00000001
202.114.80.130主机号字段为01000010
这两个IP地址的主机号字段前三位不同(000/010), 说明它们属于不同子网, 必须通过路由器来交换信息。它们在各自子网上的主机号分别为1和2。
屏蔽码说明了是否有子网,以及在有子网的情况下子网的最大数量,而不说明具体的子网号。屏蔽码的作用就是屏蔽掉IP地址中的主机号, 而保留其网络号和子网号,以便于路由器寻址。
2. IP协议
IP是TCP/IP协议集的核心协议之一, 它提供了无连接的数据报传输和互连网的路由服务。IP的基本任务是通过互连网传输数据报, 各个IP数据报是独立传输的。主机上的IP层基于数据链路层向传输层提供传输服务, IP从源传输层实体获取数据, 再通过物理网络传送给目的主机的IP层。IP不保证传送的可靠性, 在主机资源不足的情况下, 它可能丢弃某些数据报, 同时IP也不检查被数据链路层丢弃的报文。
在传送时, 高层协议将数据传给IP, IP将数据封装为IP数据报后通过网络接口发送出去。如果目的主机直接连在本地网中, 则IP直接将数据报传送给本地网中的目的主机;如果目的主机是在远程网络上, 则IP将数据报传送给本地路由器, 由本地路由器将数据报传送给下一个路由器或目的主机。这样, 一个IP数据报通过一组互连网络从一个IP实体传送到另一个IP实体, 直至到达目的地。
(1) IP数据报格式
IP数据报由报头和报文数据两部分组成, 参见下图。

版本IHL服务类型报文长度
标识标志分段偏移
生存期上层协议号报头检查和
IP数据报中各个字段的含义简要说明如下:
·版本:4位, IP协议的版本号,IP v4版本取值为 4;
·IP报头长度 (IHL):4位,以 32 位为单位表示的报头长度;
·服务类型(ToS):8 位,用于规定优先级、传送延迟、吞吐量和可靠性等参数;
·报文长度:16位,以字节为单位表示的报文总长度(包括报头和数据两部分);
·标识(ID):16位,数据报的惟一标识, 用于数据报的分段与重装;
·标志(Flag):3位,数据报是否分段的标志;
·分段偏移:13位,以 64 位为单位表示的分段偏移;
·生存期(TTL):8位,允许数据报在网间传输的存活时间;
·上层协议号:8位,指出发送数据报的上层协议;
·报头检查和:16位,仅用于对报头的正确性检查;
·源IP地址:32位,发送数据报的源主机IP地址;
·目的IP地址:32位,接收数据报的目的主机IP地址;
·任选项:可变长度,提供任选的服务, 如时间戳、错误报告及特殊路由等;
·填充:可变长度,保证IP 报头以32 位为边界对齐。
(2) 数据报的分段与重装
A 数据报分段
在各种物理网络中, 如Ethernet、Token Ring等都有最大帧长限制。为了使较大的数据报能以适当的大小在物理网络上传输, IP协议首先要根据物理网络所允许的最大帧长对上层协议提交的数据报进行长度检查, 必要时把数据报分成若干个段发送。
在数据报分段时,每个段都要加上IP报头, 形成IP数据报。与数据报分段相关的字段有:
·标识(ID): 数据报的唯一标识。被分段传送的IP数据报设有相同的标识。
·报文长度: 对每一个被分段的IP数据报都要重新计算其报文长度。
·分段偏移: 每一个被分段的IP数据报要表明它在原始数据报中的位置, 用 64位的倍数来表示。
·标志(Flag): 如果是无分段的IP数据报, 该标志为 0;如果是有分段的IP数据报,除了最后一个分段IP数据报将该标志置为0 外, 其它的都将该标志置为1。
B 数据报重装
在互连网络中, 被分段的各个IP数据报进行独立的传输, 它们在经过中间路由器转发时可能选择不同的路由。这样, 到达目的主机的IP数据报顺序与发送的顺序可能不一致。因此, 目的主机上的IP协议必须根据IP数据报中相关字段(标识、长度、偏移及标志等)将分段的各个IP数据报重新组装成完整的原始数据报, 然后再提交上层协议。
在进行数据报重装时, 各个IP数据报除应具有相同的标识外, 还应具有相同的上层协议号、源IP地址和目的IP地址, 并且在一定的时间内要全部到齐。 IP协议将满足上述条件的IP数据报按分段偏移顺序排队, 且只保留第1段IP数据报报头, 而其它段的IP 报头均删除, 组装成一个完整的原始IP数据报, 并重新计算其报文长度, 填入IP报头相应的字段。最后将组装好的原始IP数据报按上层协议号提交给上层协议。
3. 路由选择
路由选择是IP协议最重要的功能之一。在IP协议中,采用的是源路由选择策略,由发送端指定发送路由。因此, 互连网络中的每个主机和路由器(TCP/IP中称它为网关)都保持一个路由表, 给出互连网络中各个网络所对应的路由器地址以及该路由器当前的忙闲度。在路由表中, 网络地址和路由器地址都是用IP地址表示的, 路由器地址指向IP数据报应送往的下一个路由器。忙闲度是用这个路由器所发送的数据报数量来衡量的,当一个网络地址有多个路由时, IP协议总是选择忙闲度值最小的路由。为了提高路由查找速度, 路由表通常采用散列表(Hash)结构。
(1) 数据报发送
当发送节点IP协议收到上层协议要求发送的数据报时, 如果上层协议已指定了发送路由,则按指定的路由发送数据报;如果上层协议未指定发送路由, IP协议则以IP数据报中目的IP地址为关键字来搜索路由表中的路由。如果未找到任何路由, 则说明目的不可达, 向上层协议报告错误信息。对于已确定的发送路由, 无论是由上层协议指定的, 还是从路由表中找到的, 如果该路由是直接可达的(源主机和目的地址在同一网络中), 则将IP数据报中的目的IP地址通告给网络接口程序;如果该路由不是直接可达的, 则将路由表中对应的路由器IP 地址通告给网络接口程序。对于多路由场合, 要通告忙闲度最小的路由器地址。
网络接口程序收到IP协议提交的IP数据报和目的IP地址后, 调用ARP协议, 将IP地址映射成物理地址, 并把IP数据报封装成数据帧,通过物理网络传送给目的节点,目的节点或是路由器(中转路由)或是目的主机(直达路由)。
(2) 数据报接收
当接收节点IP协议收到由网络接口程序传来的数据报时, 分两种情况处理:
①当该节点为主机节点时, 则比较IP数据报中的目的IP地址与本机IP地址是否相匹配。若匹配, 则把IP数据报递交给对应的上层协议;否则丢弃该数据报。
②当该节点为路由器节点时, 需要转发该数据报, 即用该数据报的目的IP地址从路由表中查找转发路由。如果找到路由, 则按该路由转发数据报, 其过程如前所述;否则, 向发送该数据报的源主机发送ICMP报文, 报告目的不可达。
如果该节点是一个被配置成具有路由选择功能的主机, 则先执行①。若不匹配,则是待转发的数据报, 不能丢弃掉, 而是转入执行②。
4. IP数据报选项
在IP数据报的任选项字段中提供了若干选项主要用于控制和测试两大目的。选项处理作为IP协议的组成部分, 在所有的IP协议实现中都是不可缺少的。主要的选项有:
(1) 源路由
源路由是指传送数据报的路由是由源主机指定, 而不是由IP协议通过路由表确定的。源路由选项可以用于测试某特定网络的吞吐率, 可以使数据报绕开出错的网络等, 是一个有用的选项。源路由选项有两类: 一是限制源路由, 另一是自由源路由。限制源路由要给出一条完整的路径, 并规定数据报要经过路径上的每一个路由器, 并且经过路由器的顺序也不可改变。自由源路由给出的不是完整路径, 而是精简路径, 必要时要由IP协议为其补充路径。
(2) 记录路由
记录路由是指记录下数据报从源主机到目的主机所经过路径上各个路由器的IP地址。这种功能由记录路由选项来完成。记录地址的区域大小是由源主机预先分配并初始化的,如果预先分配的区域不足以记录下全部路径, 则IP协议将放弃记录余下地址的尝试。此外, 只有在源主机和目的主机双方都同意的情况下, 记录路由选项中的各个IP地址才能得到处理, 该选项才是有效的。
(3) 时戳
所谓时戳(Time Stamp)是指数据报每经过一个路由器时所记录下的当时时间。这个功能由时戳选项来完成。通过时戳可以获得IP数据报在互连网中的时域参数, 可用于分析网络的吞吐量、拥塞情况、负载情况等。时戳中的时间采用环球时间(Universal Time)表示, 以千分之一秒为单位。由于各个路由器中的时钟并不严格同步, 所以时戳只是一种大致的参考值。此外, 在选择时戳选项时, 可以设置成时间和地址同时记录, 缺省为只记录时间。
2 IP v6协议
由于IP v4协议存在着地址空间匮乏、安全性差和不支持QoS等方面的固有缺陷,使IP v4协议难以担当下一代Internet核心协议的重任。为此,IETF提出了下一代IP协议:Ipng的建议方案,并将它命名为IP v6。IP v6在IP地址空间、路由协议、安全性、移动性以及QoS支持等方面作了较大的改进,增强了IP协议的功能。
1.IP v6报文格式
与IP v4相比,IP v6的报文格式大为简化,参见下图。

IP v6报头各个字段含义如下:
·版本号:4位, 表示IP协议的版本号, IP v6版本取值为6;
·优先级:4位,表示该数据报的优先级;
·流类别:24位,与优先级一起共同标识该数据报的服务质量级;
·载荷长度:16位,以字节为单位表示有效载荷长度;
·后续报头:8位,标识紧接在IP v6后的后续扩展报头的类型;
·跳步数(Hops):8 位,允许数据报跨越路由器的个数,表示该数据报在网间传输的最大存活时间;
·源IP地址:128位,发送数据报的源主机IP地址;
·目的IP地址:128位,接收数据报的目的主机IP地址。
IP v6通过扩展报头来增强协议的功能,扩展报头是可选的。如果选择了扩展报头,则位于IP v6报头之后。IP v6定义了多种扩展报头,如逐次跳步、路由、分段、封装、安全认证以及目的端选项等,除了逐次跳步扩展报头外,其它的扩展报头由端点解释,中间点并不检查这些内容。一个数据报中可以包含多个扩展报头,由扩展报头的后续报头字段指出下一个扩展报头的类型。下图给出一个带有多个扩展报头的IP v6数据报中的例子。

2.IP v6地址格式
在IP v4中,32位的IP地址被分成网络地址和主机地址两部分。根据不同的地址类别,网络地址和主机地址所分配的位数是不同的。这种地址分配方法的缺陷是不够灵活。
IP v6对128位的地址没有作类别限制,允许服务提供者根据实际需要进行地址划分。IP v6的标准地址格式为X:X:X:X:X:X:X:X,每个X为16位。在IP v6地址中,允许出现连续的0,并可用“::”表示,但一个地址中只能出现“::”一次,这样对连续多组X为0的地址起到一定的压缩作用。IP v6地址使用了地址前缀(FP)概念,用来表示该地址的前几位,并用X/Y形式表示,其中X是地址前缀,Y是地址前缀的位数。例如,5D4C:0000::/16表示其地址前缀为5D4C。
IP v6目前定义了三种地址:单播(Unicast)、多播(Multicast)和任播(Anycast),利用地址格式前缀表示各种类型。
(1) 单播地址
单播地址唯一地标识一个接口,以该类地址传送的数据报将交付给该地址对应的接口。IP v6定义了多种单播地址格式,如完整用户单播地址、NSAP(网络层服务访问点)地址、基于地理区域的地址、局部地址、与IP v4兼容的地址以及其它保留地址类型。下图是完整单播地址格式,其中:
·前3位是该地址类型的标识符;
·REG ID是Internet服务提供者的注册标识符;
·PROV ID为提供者标识符;
·SUBSC ID用于标识多个提供者所管理的用户;
·SUBNET ID用于标识一个指定的子网;
·INTERFACE ID用于标识一个单一接口。    如果INTERFACE ID是一个接口的全局惟一标识符,则可用它实现地址的自动生成。例如,一个节点通过监听路由器广播消息而发现了子网前缀,则可用IEEE 802 MAC地址作为INTERFACE ID来构造一个完整的IP v6地址。
局部地址用于定义子网中的局部网络,局部网络在未接入Internet之前可用局部地址进行访问操作。如果该局部网络要接入Internet,可加入地址前缀(REG ID+PROV ID+SUBSC ID),形成完整的Internet地址。由于IP v4相当普及,即使IP v6将来被推广使用,也会长期处于的共存局面。因此,必须实现两种地址格式之间的转换。IP v4节点将分为只适用于IP v4和兼容IP v6两种节点。为此,IP v6定义了两种相应的地址类型。对于兼容IP v6的节点,当接收到IP v6数据报时,可利用隧道技术对IP v6数据报再封装,或者通过对IP报头的转换来实现地址信息转换。
(2) 多播地址
多播地址标识了一组接口,以该地址类型传送的数据报将交付给该地址对应的所有接口。IP v6未定义广播(broadcast)地址类型,它可利用多播地址来实现。
(3) 任播地址
任播地址标识了一组接口,即该地址被分配给多个接口,当一个数据报发送给该地址时,只有按照路由协议计算出的最近的接口才接受该数据报。这种地址方式可用于标注一组服务提供者所对应的路由器,发送者利用路由扩展报头,将任播地址作为一个路由序列的一部分,从多个服务提供者中挑选一个来完成数据报传送。
3.IP v6路由选择
路由器的基本功能是存储转发数据报。在转发数据报时,路由器将根据数据报的地址信息查找路由表,选择一条可到达目的站点的最佳路径。路由表的维护和更新由路由协议来完成。
IP v6的路由选择是基于地址前缀概念实现的,这样可以很方便地建立层次化的路由选择策略,服务提供者可以根据网络规模来汇聚IP地址,充分利用IP地址空间。IP v6中的路由协议尽量保持了与IP v4相一致,当前Internet的路由协议稍加修改后便可用于IP v6路由。
此外,IETF正在研究一些新的路由协议,如策略路由协议、多点路由协议等,研究的重点集中在支持QoS和优化路由等方面,这些研究成果将应用于IP v6。
4.IP v6安全机制
IP v6利用扩展报头提供了两种安全机制:数据报认证和数据加密传输,这两种安全机制是分离的,可单独使用,也可一起使用。同时,IP v6还允许高层采用其它的安全体系,实现多层安全体系。
(1)数据报认证。它保证数据报传输的完整性和源地址的正确性,但它不提供信息保密性。其工作机制是:发送方根据数据报的报头、有效载荷和用户信息等计算出一个散列值,接收方也根据接收数据报的相同字段信息计算出一个散列值,若两者相同,接收方认为该数据报正确;若两者不等则丢弃该数据报。
(2)数据加密传输。它采用数据加密方式提供数据传输的保密性。其工作机制是:发送方对整个数据报进行加密,生成一个安全有效载荷(ESP),并在ESP上重新封装一个IP v6报头后,再进行传输。当接收方接收到该数据报后,删除封装报头,再对ESP解密后的数据报进行处理。封装报头支持多种加密算法,使用户有较大选择余地。
5.IP v6移动性
为了支持Internet上的移动IP业务,IETF提出了支持移动主机在Internet 上进行无缝漫游的移动IP技术。在移动IP业务中,移动主机需要两个地址:基地地址和转交地址。基地地址是指以移动主机在基地网络上注册的地址;转交地址是指移动主机到达外部网络时的临时地址。在IP v4中,一般主机不能与移动主机建立直接的通信关系,它们需要通过设在基地网络或外部网络上的代理服务器来实现通信。IP v6简化了这一方法,它允许通信主机和移动主机直接通信,其通信过程如图5.7所示。   
假定移动主机在外部网络,且已获得了转交地址,并通过地址绑定技术将转交地址通告给基地代理服务器。以后的通信工作过程是:第一步,通信主机利用移动主机的基地地址向移动主机发送数据报;第二步,基地代理服务器截获该信息,将其移交移动主机;第三步,移动主机向通信主机发送地址绑定信息;第四步,通信主机与移动主机建立直接通信。
6 IP v6 QoS支持机制
IP v6报头的中的优先级和流类别字段提供了QoS支持机制。IP v6报头的优先级字段允许发送端根据通信业务的需要设置数据报的优先级别。通常,通信业务被分为两类:可流控业务和不可流控业务。前者大多数是对时间不敏感的业务,一般使用TCP协议作为传输协议,当网络发生拥挤时,可通过调节流量来疏导网络交通,其优先级从1到7,例如,IPv6建议:USENET的优先级为1;FTP的优先级为4;Telnet的优先级为6。后者大多数是对时间敏感的业务,如多媒体实时通信,当网络发生拥挤时,则按照数据报优先级对数据报进行丢弃处理来疏导网络交通,其优先级值从8到15。
数据流是指一组由源端发往目的端的数据报序列。源节点使用IP v6报头的流类别符来标识一个特定数据流。当数据流途经各个路由器时,如果路由器具备流类别处理能力,则为该数据流预留资源,提供QoS保证;如果路由器不具备这种能力,则不提供任何QoS保证。可见,在数据流传输路径上,各个路由器都应当具备QoS支持能力,这样网络才能提供端到端的QoS保证。通常,IP v6应当和RSVP之类的资源保留协议一起使用,才能充分发挥应有的作用。
IP v6通过优先级和流类别字段提供了QoS支持机制,可以支持多媒体通信,但要求数据流传输路径上各个路由器也应具备QoS支持能力,这样才能实现端到端的 QoS保证。IP v6作为下一代Internet(即Internet 2)的核心协议,在协议性能和功能上都作了较大的改进,以满足Internet业务不断增长的需要。
3 ARP协议和RARP协议
为了使TCP/IP协议与具体的物理网络无关, 通过网际层将物理地址隐藏起来, 统一使用IP地址进行网际间通信。IP地址与物理地址之间的映射称为地址解析。在网际层, 提供从IP地址到物理地址映像服务的协议是地址解析协议ARP(Address Resolution Protocol), 而提供从物理地址到IP地址映射服务的协议是逆向地址解析协议RARP(Reverse Address Resolution Protocol)。
1. ARP协议
当一个主机向另一个主机发送报文时, 只有知道与对方IP地址相对应的物理地址后才能在物理网络上进行传输。这种地址解析服务是由ARP协议提供的。应当注意的是, ARP只用于解析对方的物理地址, 而不是解析本机的物理地址。
ARP是采用一种称为动态联编(dynamic binding)方式来解析对方物理地址的。具体地说, 发送主机向网络中广播一个ARP请求报文, 报文中包含有目的主机的IP地址, 以请求与该IP地址相符合的目的主机物理地址。网络上所有的主机都能接收到这个ARP请求报文, 但只有本机的IP地址与报文中目的IP地址相符合的主机才发送一个ARP响应报文,报告本机的物理地址。这样, 发送主机就得到了目的主机的物理地址了。ARP的报文格式下图所示。

在 ARP/RARP报文格式中:
·物理网络类型字段为2个字节, 表示发送方主机的物理网络类型。其中, “1”代表以太网。
·协议类型字段为2个字节, 表示发送方使用ARP获取物理地址的高层协议类型。其中, “0x0800”代表IP协议。
·物理地址长度字段为1个字节, 用于规定物理地址字段的长度。通常, 物理地址字段占6个字节(48位地址)。
·IP地址长度字段为1个字节, 用于规定IP地址字段的长度。通常, IP地址字段占4个字节(IP v4版本)。
·操作字段为2个字节, 表示报文类型。其中:
1 ——ARP请求报文;
2 ——ARP响应报文;
3 ——RARP请求报文;
4 ——RARP响应报文。
·发送方物理地址字段为6个字节, 用于存放发送方的物理地址。
·发送方IP地址字段为4个字节, 用于存放发送方的IP地址。
·目的方物理地址字段为6个字节, 用于存放目的方的物理地址。对于ARP请求报文, 该字段为空。
·目的方IP地址字段为 4 个字节, 用于存放目的方的IP地址。
发送方在发送ARP请求报文时, 要填写除目的方物理地址字段外的其它字段。目的方通过发送ARP响应报文报告自己的物理地址, 这时报文中的发送方和目的方字段要作相应的交换。
在单一网络中, 发送方的ARP请求报文可直接发送给网络中任何一个主机。在互连网络中, 发送给另一网络主机的数据报要由路由器转发。因此, 发送方必须首先获取路由器节点的物理地址, 即发送ARP请求报文给该路由器节点。
2. RARP协议
如果一个主机初始化后只有自己的物理地址而没有IP地址, 则可以通过RARP协议发送广播式请求报文来请求自己的IP地址, 而RARP服务器负责对该请求作出应答。这样,无IP地址的主机可以通过RARP协议来获取自己的IP地址。RARP协议主要用于无盘工作站来获取自己的 IP地址。RARP的报文格式与ARP的相同。当发送方以广播方式发送RARP请求报文时, 在发送方物理地址字段和目的方物理地址字段上都填入本机物理地址。RARP服务器主机接收到该请求报文后, 便给发送方回送一个RARP响应报文, 从目的方IP地址字段中带回发送方的IP地址。
4 ICMP协议
IP协议提供了无连接的数据报传送服务。在传送过程中, 如果发生差错或意外情况, 如数据报目的地址不可达、数据报在网络中的滞留时间超过其生存期, 中转节点或目的节点主机因缓冲区不足而无法处理数据报等, 总要通过一种通信机制, 向源节点报告差错情况, 以便源节点对差错进行相应的处理。网际控制报文协议ICMP(Internetwork Control Message Protocol)正是提供这类差错报告服务的协议。它在IP层加入一类特殊用途的报文机制, 以满足IP协议报告差错的需求。
ICMP是IP协议的一部分, 必须包含在每一个IP实现中。 ICMP数据报要通过IP协议发送出去, 它有多种类型, 可以提供多种服务。例如, 测试报文目的可达性和状态, 报告不可达报文目的地址, 数据报流量控制, 网关路由改变请求, 检查循环路由或超长路由, 报告错误数据报报头以获取网络地址等。
1.ICMP报文格式
每个ICMP报文都是作为IP数据报的数据部分在网际间传送的。 ICMP报文格式如下图所示。

其中, Type字段为1个字节, 指出ICMP报文的类型, 参见表5.1。 Code字段也是1个字节, 提供关于报文类型的进一步信息。 Checksum字段共两个字节, 提供了整个ICMP报文的校验和, 其校验和算法与IP报头的校验和算法相同。其它信息字段为4个字节, 一般不使用(为全 0)。
Type ICMP报文类型 Type ICMP报文类型
0
回送响答
12
数据报参数错
3
目的不可达
13
时戳请求
4
报源抑制
14
时戳响答
5
重定向
17
屏蔽码请求
8
回送请求
18
屏蔽码响应
11
数据报超时
ICMP报文类型
ICMP报文数据区包含出错数据报报头以及该数据报前64位数据(TCP/IP规定, 各个协议都要把重要信息包含在这64位数据中), 提供这些信息的目的在于帮助源主机分析出错的数据报。
尽管ICMP报文是被封装在 IP报头中作为IP数据报的一部分向外发送的, 但并不能就此把ICMP看作是一种高层协议。如前所述, 它只是IP的一部分, 为IP提供差错处理功能。
2.ICMP差错报文
ICMP最基本的功能就是提供差错报告传输机制。对于差错的处理方式, ICMP协议没有严格的规定。事实上, 源主机收到ICMP差错报文后, 还需要与应用程序联系起来, 才能决定相应的差错处理方式。
ICMP的差错报告都是采用路由器向源主机报告模式, 即当路由器发现IP数据报差错后, 使用ICMP报文向该IP数据报的源主机报告其差错。同时, 发生差错的IP数据报被丢弃掉, 不再向前转发。
在ICMP差错报文中, 有目的不可达报文、超时报文和参数出错报文等。
(1) 目的不可达报文
路由器的主要功能是为数据报选择路由并转发数据报。当从路由表上查不出与IP数据报目的IP地址对应的路由时, 则会发生目的不可达的错误。这时, 路由器要向源主机发送目的不可达的ICMP报文。目的不可达ICMP报文类型(Type)为 3, 并进一步细分成 13 种子类, 用代码(Code)来标识, 其它信息字段未用, 为全 0。
(2) 超时报文
数据报每经过一个路由器时, 其生存期都要根据其滞留时间而递减。如果在一个路由器上数据报的生存期递减为0, 该路由器则会丢弃这个数据报, 并向源主机发送Type=11、Code=0 的ICMP报文, 报告该数据报生存期超时。
当目的主机在对数据报进行重装的过程中发生重装超时时, 将丢弃现已收到的各个分段数据报, 并在第 1 个分段数据报到达后向源主机节点发送Type=11、Code=1的ICMP报文。       (3) 参数出错报文
当路由器或目的主机在对收到的IP数据报进行处理时, 如果发现在IP报头参数中含有无法继续完成报文处理的错误时, 则将该数据报丢弃, 并向源主机发送Type=12、Code=0的ICMP报文, 并且在ICMP报文的其它信息字段中用1个字节作为指针来指出差错在数据报中的位置(以字节为单位)。
3. ICMP控制报文
ICMP控制报文主要用于拥塞控制和路由控制。
(1) 报源抑制报文
当路由器的数据报输入速度超过路由器的转发速度时, 则可能发生拥塞现象。拥塞控制的概念与流量控制有所不同。流量控制主要是解决端点对端点的传输速率匹配问题, 属于局部控制;而拥塞控制带有全局性质。因为拥塞可能影响到整个网络的数据传输, 故需要各个节点共同参与协同解决。
拥塞控制的方法有很多, 而TCP/IP采用的是报源抑制技术, 即抑制源主机节点发送数据报的速率。具体的过程如下:
①当路由器节点由于缺乏缓冲区空间而无法接收数据报时, 或者当目的主机节点由于数据报的到达速度太快而无法继续处理时, 它们都将丢弃这些输入的数据报, 并向源主机节点发送Type=4、Code=0的报源抑制ICMP报文。
②当源主机节点收到报源抑制 ICMP报文后, 相应地降低其报文发送速度, 直到不再收到报源抑制ICMP报文为止。然后, 源主机节点又逐渐增加它的报文发送速度, 直到再一次出现报源抑制ICMP报文为止。
对于路由器和目的主机节点而言, 理想的报源抑制报文发送时间是在当前输入数据报占用的缓冲区容量接近系统限制时。这样可以避免由于输入数据报占用的缓冲区容量超过系统限制而被丢弃, 从而可以减少网络重发的数据量。
(2) 重定向报文
重定向功能提供了一种路由优化控制机制, 使源主机能以动态方式寻址最短路径。通常, ICMP重定向报文只能在同一网络中的源主机与路由器之间使用。
当路由器R1从处于同一子网的主机H1收到一个需转发的IP数据报时, R1将检查自身的路由表信息, 并假设它选定了下一个路由器R2继续转发该数据报。如果这时R1判别确认R2和H1也处于同一子网时, R1就向H1发送重定向ICMP报文, 通知H1将数据报直接发给R2将会是一条较短的传送路径。
重定向报文的类型 (Type)为 5, 分成四个子类:
·Code=0:网络重定向数据报;
·Code=1:主机重定向数据报;
·Code=2:服务类型和网络重定向数据报;
·Code=3:服务类型和主机重定向数据报。
在重定向报文的其它信息字段中要填入重定向的路由器(如R2)IP地址。
4.ICMP请求/应答报文
(1) 回送请求与响应报文
回送请求与响应报文主要用于测试网络目的节点的可达性。源节点使用ICMP回送请求报文向某一特定的目的主机发送请求, 目的节点收到请求后必须使用ICMP回送响应报文来响应对方。在许多TCP/IP实现中, 提供的一种用户命令Ping便是利用这种ICMP回送请求/响应报文来测试目的可达性的。
(2) 时戳请求与响应报文
时戳请求与响应报文主要用于估算源和目的节点间的报文往返时间。在报文中使用了三个时戳字段:初始时戳字段是源节点发送时戳请求报文的时间;接收时戳字段是目的节点接收到时戳请求报文的时间;发送时戳字段是目的节点发送时戳响应报文的时间。源节点首先发送时戳请求报文,然后等待目的节点返回其响应报文,并根据这三个时戳字段来估算两个节点间的报文往返时间。
(3) 屏蔽码请求与响应报文
屏蔽码请求与响应报文主要用于源节点获取所在网络的IP地址屏蔽码信息。源节点在发送请求报文时, 将IP报头中的源和目的IP地址字段的网络号部分设为0。这样网络上的目的节点(通常为路由器)接收到该请求后, 填写好网络的屏蔽码向源节点回送响应报文。