第三部分
TCP/IP网络互连第 6章 网络互连 IP协议本章提要网络互连 IP协议的基本概念;
IPv4的概念与应用;
IPv6的基本概念与应用;
ARP与 RARP的原理;
ICMP的原理
6.1 IPv4
6.2 IP子网技术
6.3 IPv6
6.4 地址解析协议
6.5 Internet控制报文协议
6.6 实训 6-规划、配置网络系统
6.1 IPv4
6.1.1 IP数据报
6.1.2 IP的编址
6.1.3特殊地址
网际协议
( IP,Internet Protocol)
是 TCP/IP协议族中核心的协议。所有的 TCP,UDP,ICMP和 IGMP数据都以 IP数据报格式传输。现在所用的 IP协议版本为 1981年定义的第四版,即 IPv4。
IP提供了三个重要的定义
( 1) IP定义了在整个计算机网络上数据传输所用的基本单元数据报,它规定了互连网上传输数据的确切格式。
( 2) IP软件完成路由选择的功能,选择一个数据发送的路径。
( 3)除了数据格式和路由选择的精确而正式的定义外,IP还包括了一组嵌入了不可靠分组投递的规则,这些规则指明了主机和路由器应如何处理分组、何时、如何发出错误信息,以及在何种情况下可以放弃数据报。
6.1.1 IP数据报
互联网则把它的基本传输单元叫做一个
Internet数据报( datagram),简称为
IP数据报或数据报。
数据报报头 数据报的数据区数据报的一般格式
0 4 8 16 19 24 31
4bit版本 4bit报头长度 8bit服务类型( TOS) 16bit总长度(字节数)
16bit标识符 3bit标志 13bit分片偏移量
8bit生存时间( TTL) 8bit协议 16bit报头校验和
32bit源 IP地址
32bit目的 IP地址
IP选项(若有) 填充数据
……
优先级和服务类型
优先级字段指明本数据报的优先级,允许发送方表示本数据报的重要程度。优先级的值从 0到 7。,0”表示一般优先权,,7”表示网络控制优先权。服务类型提供了一种手段,
以允许控制信息享受比一般数据更高的优先级。
D,T,R三位表示本数据所希望的传输类型。
其中,D代表低延迟( Delay),T代表高吞吐量( Throughput),R代表高可靠性
( Reliability)。
分片问题
数据报在数据链路层中被封装在数据帧内,
通过帧的传输来实现数据报的传输。
各种物理网络技术,对帧的大小有不同的规定。最大数据传输单元( MTU)是指一个特定的网络所允许的物理帧的最大数据长度。当路由器收到一个大于其要转发的网络的 MTU的数据报时,路由器必须将这个数据报分成可通过该网络的数据报片,这就是 IP数据报的分片问题。
6.1.2 IP的编址
IP协议要求参加 Internet网的网节点要有一个统一规定格式的地址,这个地址称为符合 IP协议的地址,一般被称为 IP
地址。
IP地址格式
IP地址可以被表示为二进制格式。二进制表示的 IP地址中,每个 IP地址含 32位,
被分为 4段,每段 8位 。
IP地址由两部分组成:
网络号( Network ID)
主机号( Host ID)
IP地址类型
( 1) A类地址:一般用于大型网络,可以拥有很大数量的主机。第一字节表示网络号,其中最高位为
0。剩余三字节共 24位表示主机号,总共允许有 126
个网络。
( 2) B类地址:被分配到中等规模或较大规模的网络中。前两个字节表示网络号,其中最高两位总被置于二进制的 10,剩余两个字节共 16位表示主机号,
允许有 16384个网络。
( 3) C类地址:被用于主机数量较小的小型网络。
前三个字节表示网络号,其中高三位被置为二进制的 110,剩余一个字节表示主机号,允许大约 200万个网络。
( 4) D类地址:被用于多路广播组用户,高四位总被置为 1110,余下的位用于标明客户机所属的组。
( 5) E类地址:保留,为今后使用。
在分配网络号和主机号时应遵守以下几条准则:
( 1)网络号不能为 127,该标识号被保留作回送及诊断功能。
( 2)不能将网络号和主机号的各位均置 1。如果每一位都为 1,则各路由器均不转发,该地址会被解释为在本网络内使用的广播地址。
( 3)不能将某台主机的网络地址中主机号部分全置 1。在任何一个合法的网络中,主机号全为 1的地址代表对本网络上的所有主机进行广播的地址。
( 4)也不能将网络号和主机号的各位均置 0,否则该地址被解释为本网络地址。
( 5)对于一个网络来说,主机号应该是唯一的。
否则会出现 IP地址已分配或有冲突之类的错误。
子网掩码
TCP/IP上的每台主机都需要用一个掩码,也称为子网掩码。它是一个 4字节的二进制数。 IP软件在提取一个 IP地址的网络号和主机号时需要使用掩码。
当网络还没有划分为子网时,可以使用缺省的子网掩码;当网络被划分为若干个子网时,就要使用网络管理员分配的特定的子网掩码了。
缺省的子网掩码用于一个还没有划分子网的网络。即使是在一个单段网络上,每台主机也都需要这样的缺省值。它的形式依赖于网络的地址类型。在它的 4字节里,所有对应网络号的位都被置为 1,相应字节的十进制值都是 255;所有主机号的位都置为 0。
6.1.3特殊地址
网络地址:一个主机号的所有位都为,0”的地址是保留给该网络本身的。
广播地址:当数据报头中目的地址字段的内容为广播地址时,该数据报被网上所有主机接收。
组播地址:通过使用特定的 IP组播地址,按照最大投递的原则,将 IP数据报传输到一个组播群组
( multicast group)的主机集合。
回送地址,用于网络软件测试以及本地机进程间通信,叫做回送地址( loopback address)。
6.2 IP子网技术
6.2.1 子网划分
6.2.2 可变长子网
6.2.3 超网网 络
1 4 0,1 0,0,0
子 网 3
1 4 0,1 0,3,0
子 网 2
1 4 0,1 0,2,0
子 网 1
1 4 0,1 0,1,0
令 牌 环 网令 牌 环 网以 太 网
6.2.1 子网划分
子网编址将主机号部分增加一个子网号字段即把 IP地址的主机号中分出一些位用作子网号,而不仅仅把 32位 IP地址分成网络号和主机号。
网络号 主机号网络号 子网号 主机
( a)
( b)
网络号:
( 1)将 IP地址 114.252.20.68转换为二进制
01110010 11111100 00010100 01000100。
( 2)将子网掩码 255.255.255.224转换为二进制
11111111 11111111 11111111 11100000。
( 3)将两个二进制数逻辑与( AND)运算后得出的结果即为网络部分。
11111111 11111111 11111111 11100000
AND 01110010 11111100 00010100 01000100
01110010 11111100 00010100 01000000结果:
子网掩码:
IP地址:
114 252 20 64网络号:
主机号:
00000000 00000000 00000000 00011111
AND 01110010 11111100 00010100 01000100
00000000 00000000 00000000 00000100结果:
子网掩码取反:
IP地址:
0 0 0 4主机号:
6.2.2 可变长子网
可变长子网掩码( VLSM,Variable-
length Subnet Mask)技术是子网划分的一种应用技术,指在一个网络中,按照各子网中主机的数量规划不同的子网,但所有子网网络号是一致的。其本质是对已划分的子网做进一步的划分。引入可变长子网掩码技术,主要目的是优化可用地址空间,避免造成 IP地址资源的浪费。
1,任务描述
为一个企业规划一个可变长子网,给定条件如下:
( 1)申请一个 B类网络,网络号为
172.16.0.0。
( 2)配置 13个能容纳 4000台计算机的子网。
( 3) 6个能容纳 250台计算机的子网。
( 4)假定在划分中全 0和全 1的子网不可用。
2,互连方案的设计
( 1)配置 13个能容纳 4000台计算机的子网
( 2)配置 6个能容纳 250台计算机的子网子 网 2
1 7 2,1 6,3 2,0
子 网 3
1 7 2,1 6,4 8,0
子 网 4
1 7 2,1 6,6 4,0
子 网 1 2
1 7 2,1 6,1 9 2,0
子 网 1 3
1 7 2,1 6,2 0 8,0
子 网 1
1 7 2,1 6,1 6,0
子 网 5
1 7 2,1 6,8 0,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 7
1 7 2,1 6,1 1 2,0
子 网 6
7 2 1 6 9
子 网 8
1 7 2,1 6,1 2 8,0
子 网 9
1 7 2,1 6,1 4 4,0
子 网 1 0
1 7 2,1 6,1 6 0,0
子 网 1 1
1 7 2,1 6,1 7 6,0
子 网 2
1 7 2,1 6,2 2 6,0
子 网 1
1 7 2,1 6,2 2 5,0
子 网 3
1 7 2,1 6,2 2 7,0
子 网 4
1 7 2,1 6,2 2 8,0
子 网 5
1 7 2,1 6,2 2 9,0
子 网 6
1 7 2,1 6,2 3 0,0
交 换 机交 换 机
6.2.3 超网
IETF提出了超网( super net)和无类域间路由( CIDR,Classless Inter
Domain Routing)的方法,它采取了灵活选择 IP地址中主机号的长度,不再机械地划分成类。与子网编址相反,某组织内不用一个 IP地址来代表多个物理网络,而是用多个 IP网络地址代表一个组织。
采用了 CIDR后,将多个网络表项聚合成了一个路由表项,一般可以表示为如下模式:
[起始网络号,数量 ]
( 1)起始网络号:所分配的第一个 C类网络 IP地址。
( 2)数量:分配的 C类网络的总数。
在实际应用中,将世界划分为 4个区域,
将一部分 C类地址空间分配给这些地区区域 C类地址分配范围欧洲地区 194.0.0.0~ 195.255.255.255
北美地区 198.0.0.0~ 199.255.255.255
中美和南美地区 200.0.0.0~ 201.255.255.255
亚太地区 202.0.0.0~ 203.255.255.255
超网的应用
1,任务描述
某组织使用 10个标准 C类地址,202.123.3.0、
202.123.7.0,202.123.8.0,202.123.9.0、
202.123.10.0,202.123.11.0,202.123.12.0、
202.123.13.0,202.123.14.0和 202.123.15.0。
为了简化路由表,需将上述地址聚合使用,
需规划聚合后的网络掩码,网络地址,广播地址和有效 IP地址范围。
2,互连方案的设计
( 1) 首先判断能否聚合:方法是将聚合前 10个 C类地址的网络地址位最低位所在字节的十进制数转换成二进制数。
( 2)判断聚合前 10个 C类地址的网络地址位最低位所在字节的二进制数是否满足聚合条件 。
6.3 IPv6
6.3.1 IPv6概述
6.3.2 IPv6的数据报文格式
6.3.3 IPv6地址方案
6.3.1 IPv6概述
IPv6是下一代 IP协议,主要有以下内容:
( 1)采用 128位地址空间,在层次结构上更为科学合理。在 IPv6协议设计之前,网络界曾提出过若干种 IPv4的替代协议。
( 2)地址自动分配,提供了无状态和有状态地址自动配置两种地址方案。
( 3)简化了协议首部,使用了全新的、更加灵活的数据报首部结构。
( 4)支持源路由的选径,IPv6采用了多层次地址结构,提供了更多的路由信息,绝大多数路由算法都作了修改,以扩展其路由选径的能力。
( 5)集成了认证和加密的安全机制,两种机制可以自由组合使用,以适应不同的需要。
6.3.2 IPv6的数据报文格式
IPv6数据报文的基本首部和 IPv4报文一样,
IPv6的报文同样是封装在一个网络物理帧之中,如图所示 。
物理帧首部 IPv6首部 可选的 IPv6
扩展首部
TCP( UDP)
首部应用层数据 物理帧尾部
IPv6报文基本首部版本号 传输类别 流标识负载长度 下一首部 跳数极限
16byte源地址
16byte目的地址
0 3 4 11 12 15 16 23 24 31
IPv6协议设计的扩展首部
在 IPv6中,可选的因特网层特殊控制信息是存放在基本报文首部与因特网层上层协议首部之间的各个扩展首部之中,路由器和最终目的节点根据扩展首部中的控制信息对所传送的报文作特殊处理。
六种扩展首部
( 1) Hop-by-Hop选项扩展首部( Hop-by-Hop
header)。
( 2)源路径选择扩展首部( routing header)。
( 3)分片扩展首部( fragment header)。
( 4)目的选项扩展首部( destination option
header)。
( 5)认证扩展首部( authentication header)。
( 6)加密安全负载扩展首部( encapsulation
security pay load header)。
( 1) Hop-by-Hop选项扩展首部
( Hop-by-Hop header)
用来携带在一个报文的传送途中的所有节点都必须检查处理的信息。在 RFC l700中给 Hop-
by-Hop选项扩展首部的数字标识为 0,因此它由前一首部中值为 0的下一首部域标识。
下一个首部
( 8bit)
扩展首部长度
( 8bit)
可选项
8的整数倍字节长可选项
8的整数倍字节长
( 2)源路径选择扩展首部
( routing header)
源路径选择扩展首部( routing header)用于指明在到达目的节点前报文所必须要经过的路由节点。
它的功能类似于 IPv4中的自由源路径选择和记录选项( loose source and record route option) n,
RFC l700给源路径选择扩展首部分配的数字标识为
43,所以它的前一首部中下一首部域的值为 43。
下一个首部
( 8bit)
扩展首部长度
( 8bit)
路由类型
( 8bit)
剩余路由段
( 8bit)
特殊路由类型数据
( 3)分片扩展首部
( fragment header)
是源节点分段传送长于报文目的地址之间的通路最大传输单元( Path MTU)的数据报文时采用的扩展首部。路由器不负责对过长报文的拆分;对报文的拆分工作由发送报文的源节点完成。在 RFC l700中,给分片扩展首部分配的数字标识为 44,因此该首部由其前一扩展首部中值为 44的下一首部域标明。
下一首部
( 8bit)
保留域
( 8bit)
分片段偏移
( 13bit)
保留位
( 2bit)
M标志位
( 1bit)
拆分标识域
( 32bit)
( 4)目的选项扩展首部
( destination option header)
是用于携带仅被报文的目的节点(由基本首部中的目的地址域标识)所检查的信息,这与 Hop-by-Hop选项扩展首部的功能正好相反。在 RFC l700中,给目的选项扩展首部分配的数字标识为 60,所以它是由其前一首部中值为 60的下一首部域所标识。目的选项扩展首部的格式与 Hop-by-Hop选项扩展首部的形式基本一样。
( 5)认证扩展首部
( authentication header)
lPv6新定义的与认证有关的扩展首部。
它不对能够在路由途中被修改的 TLV可选项的选项数据域计算和检查报文的认证值。
( 6)加密安全负载扩展首部
( encapsulation security
pay load header)
该目的选项扩展首部中的可选项在报文传送的最终目的节点上进行处理。
报文最长生命时间报文的最长生命时间是一个报文在网络上能够存在的最大时间。 IPv6节点不必强制实行最长报文生命时间,这也就是 IPv6将 IPv4首部中的“生存时间”
域改为“跳数极限”的原因。实际上,很少有 IPv4
的应用严格遵循限制对报文生命时间的要求,它们多数都是通过对报文经过路由器的数目进行限制,
从而达到限制报文的存在时间的目的。因此 IPv6使用“跳数极限”域并不是一种本质上的改变,而是实际应用要求的体现。所有依赖于 IP协议的上层协议,如果要精确限制报文的生命时间,就需要通过修改协议本身来给自己提供一种发现过时报文和丢弃过时报文的机制。
6.3.3 IPv6地址方案
IETF在综合各方面意见的基础上,选择 128位作为
IPv6的地址长度。 128位地址为将来因特网的发展提供了足够的地址空间。除了地址长度的成倍增加外,IPv6地址还引入了更复杂的层次结构。它基于超网和 CIDR协议的思想,在地址中采用了多层次的地址前缀。因为使用了多层次的地址结构,所以地址的分配和管理可以分布在多级网管中心,这有效地减轻了网络管理员的负担,同时也大大减小了路由器中路由表的长度。
IPv6还提供了地址的自动配置机制,简化了网络设备的配置。为了让各种网络设备能平滑的从 IPv4升级到 IPv6,IPv6还提供了 IPv4的兼容地址。
IPv6地址的类型
按寻址方式和功能的不同,k三种基本类型:
( 1)单目地址( unicast address):单个网络接口的标识。以单目地址为目的地址的报文将送往其标识的网络接口。
( 2)群集地址( anycast address):一个网络接口集合的标识,集合中的不同成员一般分属于不同的节点。以群集地址为目的地址的报文将送往集合中的唯一一个成员,而且这个成员必须是被路由协议认为距离报文源节点最近的一个。
( 3)多目地址( multicast address):一个网络接口集合的标识,集合中的不同成员一般分属于不同节点。以多目地址为目的地址的报文将同时送往集合中的所有成员。
与 IPv6寻址模型有关的概念
( 1)节点( node):一个支持 IPv6协议的设备。
( 2)网络接口( interface):节点与网络链路之间的一个连接点。
( 3)站点( site):站点是整个 Internet的一部分,它由若干网络组成。由于这些网络在地理位置或组织上的联系非常紧密,所以因特网将这些网络抽象成一“点”来处理。
IPv6地址的文本表示
lPv6的 128位地址提供了很大的地址空间。但是使用二进制直接书写和记录如此长的网络地址很不方便。
类似于 lPv4中使用点分十进制表示方法,IPv6制定了冒分十六进制表示法,表示 lPv6的 128位地址。这种方法将 128位的地址分成 8个 16位十六进制数加上分隔它们的冒号来表示。这种表示方法的形式是
,X:X:X:X:X:X:X:X”,其中每个 x代表地址为一个 16
位部分,并使用十六进制表示。
在地址表示中,每个十六进制数靠左边的多个连续的零可以省略不写,但是全零的十六进制数需要用一个零来代表。例如,上面的第二个地址可以写成:
1080:0:0:0:8:800:200C:528F
为了进一步简化地址的表示,我们可以将地址中连续的全 0域用一对冒号“::”来代替。
IPv6地址前缀的文本表示
IPv6地址方案与 IPv4的超网和无类域间路由
( CIDR)方案类似,都是通过地址前缀来体现网络的层次结构。在 lPv6地址前缀的表示上,采用了类似于无类域间路由的表示法。
地址前缀长度是指明地址中从最左边开始组成地址前缀的连续位的长度。
IPv6的地址格式前缀和地址的总体划分
各种具体类型的 IPv6地址由地址中的高位引导位字段标明。这些引导位字段的长度各不相同。在协议中它们称为格式前缀 FP
( format prefix)。
协议设计者们对各种地址类型的前缀作了总体上的划分。将不同的格式前缀分配给具有不同寻址方式的地址类型是划分的主要原则。协议总是处于不断的完善修改中,不可能一下子就定型,所以地址的格式前缀也将随之不断地作调整修改。
格式前缀( n bit) 地址( 128- n bit)
单目地址
单目地址是单个网络接口的标识,以单目地址为目的地址的报文将被送往由其标识的唯一的网络接口上。单目地址的地址层次结构在形式上与 IPv4的
CIDR地址结构十分相似,它们都有任意长度的连续地址前缀和地址掩码。
在设计 IPv6单目地址时,设计者们作了如下假设:
( 1)因特网的路由系统都是基于在任意长度上的
“最长地址前缀匹配”算法来转发报文的,并且假设路由系统不知道 IPv6地址的内部结构。
( 2) IPv6的地址结构信息仅在地址的分配和定位时有效。
群集地址
群集地址是同时分配给多个网络接口(通常分布不同的节点上)的一类 IPv6地址。发往以群集地址为目的地址的 IPv6报文将会送往拥有该群集地址的接口之中路由协议认为最近的一个,亦即只有一个接口能接收到该报文。
目前 IPv6对群集地址的用途和实现机制都还在不断研究和尝试之中。现在已经确定的群集地址用途有以下三种:
( 1)标识一个提供因特网服务的组织中的路由器集合。
这时,群集地址可以作为报文源路径选择扩展首部中的中间路由器地址,使得报文经过指定网络服务接入组织的任意一个路由器进行传递。
( 2)标识连接特定子网的路由器集合。
( 3)标识提供到某一个网络区域路由信息的路由器集合。
多目地址
多目地址是在实施网络组播机制时使用的。早在 1988年就提出了组播的方法,在 IPv4
的地址中专门划分出 224.0.0.0~ 239.255.255.255的范围作为组播类地址,并且定义了相应的协议 IGMP来支持组播机制。 1992年,随着实验性的组播主子网 MBONE的建立,对组播应用的研究得到进一步的发展。
IPv6协议也采纳了组播机制,并专门设计了组播使用的多目地址。在 IPv6的地址空间中划分出以 1111 1111为地址格式前缀的地址空间专门供组播使用。同时,IPv6的设计者还定义了 IGMP第二版 IGMPv2作为 IPv6下组播的控制管理协议。
多目地址与群集地址一样是分配给多个网络接口,两者的区别是以多目地址为目的地址的 IPv6报文会同时被拥有该多目地址的所有网络接口接收到,这种发送过程称为组播。拥有同一多目地址的网络接口的集合称为一个组播组。
通常,Internet的通信都是在两个网络接口之间进行的,即一个通信过程只有一个发送方和一个接收方。例如 telnet远程登录应用,WWW浏览,FTP文件传输等都是这种一对一的网络传输过程。随着网络应用的发展,需要一种一对多的网络传输模式,即一个发送方同时与多个接收方进行通信。这种一对多的传输模式并不是简单的一个发送方同时与多个接收方建立多个连接,而是同一报文只发送一次,多个接收方都接收这个报文的拷贝。在现实生活中,这种发送的方式与电视、收音机的信号发送方式类似:当多个电视机接收同一频道的节目时,它们接收到的是电视发射机发出的相同电视信号。在 Internet上,这样的通信实例有网上新闻消息的发布、实时股票信息的网上发布和网络数字电视会议等等。
组播就是这种一对多网络传输模式的一种实现机制。因为组播机制的实现与单目地址报文的传播有很大区别,因此专门为组播分配了一类地址 — 多目地址。
一个 IPv6节点所需要的地址
1,一个主机节点所需要的地址
一个主机节点需要识别以下标识它自身的地址:
( 1)节点所有网络接口的本地链路地址,在本地链路上标识网络接口,用于本链路上的通信。
( 2)分配得到的单目地址,在整个因特网上标识网络接口,用于与整个因特网上其它节点进行通信。
( 3)本地回送地址,用于本节点内部的通信。
( 4)所有节点多目地址,用于接收本链路上的广播报文。
( 5)对应于节点所有单目地址和群集地址的被请求节点群集地址,用于邻节点探测和地址的自动配置。
( 6)对应于节点所属所有组播组的多目地址,用于接收发往所属组播组的组播报文。
2,一个路由器节点所需要的地址
路由器除了具有一般节点的功能外,它还需要负责报文转发、路由信息的发布、链路最大传输单元的信息发布以及配合完成地址自动配置功能等等。因此,一个路由器除了需要获得并识别一个主机节点所需要识别的地址外,还需要获得以下用于完成路由器特殊功能的地址:
( 1)对应每个具有路由功能的网络接口所连接子网的子网路由器群集地址:该类地址是方便普通节点指定缺省的路由器。
( 2)路由器所配置的所有其它群集地址:接收任播报文。
( 3)所有路由器多目地址:用于路由信息的发布。
( 4)路由器所从属的所有其它组播组的多目地址:
用于接收所属路由器组播组的报文。
6.4 地址解析协议
6.4.1 地址解析协议的工作机制
6.4.2 ARP和 RARP的协议格式
6.4.3 ARP代理
6.4.4 ARP实例
6.4.1 地址解析协议的工作机制
网络的具有分层的体系结构,在高层的应用软件仅仅使用计算机的 IP地址来进行通信。
但是数据要在物理网上传输使用 IP地址是不行的。因为数据链路层通信使用的是计算机的网卡地址即物理地址,要想在两台计算机之间传输数据就必须知道对方的物理地址。
所以当数据由高层协议到达数据链路层时,
就需要将 IP地址转化为物理地址。
网 络 适 配 器目 的 主 机 I P 地 址
I P = 1 0,9,8,1
F T P
F T P
F T P
F T P
1 0,9,8,1
0 0 - 5 0 - 0 4 - 9 3 - F 7 - 2 1
0 0 - 5 0 - 0 4 - 9 3 - F 7 - 2 1
源 主 机 A 目 的 主 机 B
用 I P 地 址 建 立 连 接用 I P 地 址 发 送 数 据 报将 I P 地 址 转 换 为 物 理 地 址目 的 主 机 硬 件 地 址应 用 层传 输 层网 络 层链 路 层
ARP实现的过程
当主机 A要转换 IP地址 IPb时,按照以下步骤工作:
( 1)首先广播一个特殊的分组,要求 IP地址为 IPb
的主机用它的物理地址 Mb响应它。
( 2)因为使用了以太网的广播机制,所以和 A在同一段网上的所有主机都将收到这个请求。
( 3)只有主机 B识别到请求中的 IP地址和它的 IP地址相同所以发送一个包含有它自己物理地址应答,
其它主机由于请求中的 IP地址和自己的 IP地址不相同,所以不予响应这个请求。
( 4)当 A收到回答后,就可以使用此物理地址把分组发送给 B。
这就可以使得使用地址转换协议 ARP允许主机在只知道同一物理网络上一个目的网点的 IP地址的情况下,找到目的主机的物理地址。
不 响 应,A 在 找 B,本机 是 C,保 持 沉 默响 应,与 I P b 对 应 的 物理 地 址 为 M b
广 播,需 要 I P b 的 物 理 地 址
A
B C
A B C
( a )
( b )
①
②
③ ③
RARP
通常计算机的 IP地址是保存在它的硬盘中的,操作系统在启动时从配置文件中读取 IP地址。但是一个没有硬盘的计算机如何确定它自己的 IP地址?如 X终端或无盘工作站,则需要其它方法来获得 IP地址。而这种方法是反向地址转换协议( RARP,Reverse Address Resolution
Protocol)的一种 TCP/IP协议,从服务器得到它的 IP地址。 RARP是
ARP协议改变过来的。而它不仅允许请求本机的 IP地址,还允许计算机请求第三方的 IP地址,并适用于多种物理网络类型。
寻找 IP地址的思想很简单:需要知道自己地址的计算机向服务器发送请求,并等待服务器发出响应。我们假定服务器访问了它存放互联网地址数据库磁盘。需要知道其自身互联网地址的计算机,在发出的请求中必须使用唯一的标识它自己的信息,通常用计算机本身的物理地址,以便于服务器查到正确的互联网地址并发出回答。发出请求的计算机和响应的服务器在简短的通信中都使用物理网络地址。请求方开始时并不知道知道服务器的物理地址,所以它只简单的向本地网络所有计算机广播请求。一个或多个服务器响应这个请求。
像 ARP报文一样,RARP报文是封装在一个网络帧的数据部分中从一台计算机传送到另一台上的。例如,一个携带 RARP请求的以太网帧,在帧的前部具有通常的前同步码,以太网源网点和目的网点地址和分组类型字段等。帧类型中的值为 8035H,用来标识帧的内容为一个 RARP报文。帧的数据部分包含了 28个 8位组的 RARP报文。
RARP的工作过程
( 1)发送方广播一个指定它自己既是发送方又是接收方的
RARP请求,并把它自己的物理网络地址放到目标硬件地址字段中。
( 2)网上的所有计算机都接收该请求。
( 3)只有被授权提供 RARP服务的计算机才处理请求并发出回答;这样的计算机称为 RARP服务器。要成功的使用
RARP,网络上必须至少有一个 RARP服务器。服务器填写目标协议地址字段,并把报文类型从“请求”改成“回答”,
然后直接把回答发回提出请求的计算机。
( 4)这台计算机收到所有 RARP服务器的回答,只使用第一个。
在请求自己 IP地址的计算机与提供这一地址的服务器之间,
它们所有的通信都只使用物理网络。此外,协议还允许主机任意目标主机地址的询问。
将 I P 地 址 转 换 为 物 理 地 址收 到 广 播 请 求 的 服 务 器向 请 求 者 分 配 I P 地 址接 收 应 答 后,可 以 通 信主 机 A 以 物 理 地 址
M A C 请 求 R A R P 服 务
( a )
( b )
①
②
③ ③
④
收 到 广 播 请 求 的 服 务 器 向请 求 者 分 配 I P 地 址
R A R P 服 务 器
6.4.2 ARP和 RARP的协议格式
RARP和 ARP是两个相反的协议,而在目的和实现手段上却不是完全相反的过程,它们在职能和操作方面有差别。 RARP发送的请求帧和应答帧与 ARP有基本相同的结构;不同的是请求帧中 MAC地址的目的地是 RARP服务器的地址,而非广播地址,请求帧的 IP报头源地址是空的,目的地址是 IP层的广播地址,RARP服务器在应答时给出了 IP地址。
ARP报文由一个帧的数据部分所携带,如图所示,
ARP报文
ARP报文帧类型以太网源地址以太网目的地址以太网首部由 IP地址查到对应的物理地址
0 8 16 24 31
硬件类型 协议类型硬件地址长度 协议地址长度 操作发送方首部( 8bit组 0-3)
发送方首部( 8bit组 4-5) 发送方 IP地址( 8bit组 0-1)
发送方 IP地址( 8bit组 2-3) 目标首部( 8bit组 0-1)
目标首部( 8bit组 2-5)
目标 IP地址( 8bit组 0-3)
6.4.3 ARP代理
代理 ARP是一个把 IP网络前缀映射到两个物理地址上的技术。这个技术,仅仅适用于
ARP把互连网地址绑定到物理地址的网络。
广 播,本 机 需 要 和 H
2 通 信,要 知 道 H 2 的物 理 地 址
( a )
( b )
H 1
H 2
A R P 代 理 服 务 器以 A R P 代 理 服 务 器 自己 在 网 络 1 上 的 物 理地 址 进 行 回 答
L A N 1 L A N 2
使 用 A R P 代 理 服 务 器的 物 理 地 址 发 送 数 据
H 1
H 2
A R P 代 理 服 务 器
L A N 1 L A N 2
ARP代理基本模式
6.4.4 ARP实例
在 Linux系统中提供了检查 ARP的方法,用
arp命令显示和控制本机的地址解析表。地址解析表是一个缓冲存储器( cache),其中记录了 MAC地址到 IP地址的映射。系统要发送一个 IP数据包,先要知道各节点的数据链路层地址,这是通过查地址解析表来实现的。
可以通过 arp命令来查看并修改(包括删除和增加) arp高速缓冲存储器( arp cache)。
它用来检测本网络中用错误的 IP地址配置的系统。
6.5 Internet控制报文协议
6.5.1 ICMP用途与机制
6.5.2 ICMP报文
6.5.3 ICMP差错报文
6.5.4 ICMP控制报文
6.5.5 ICMP请求 /应答报文
6.5.6 ICMP重定向举例
6.5.1 ICMP用途与机制
网间报文控制协议( ICMP,Internet Control
Message Protocol),是一个工作在主机和路由器之间的消息控制和差错报告协议。网络设备(通常是路由器)一旦发现传输问题,就会分析其错误类型,并向源主机返回一个 ICMP消息。常用的
ping命令和 tracert命令就是基于 ICMP的工具程序,
它们在主机和路由器上的格式与返回信息有一定的区别。
ICMP报文是放在一个 IP数据报的数据部分中进行传输的。
6.5.2 ICMP报文
ICMP报文也分为头标和数据区两大部分,其中头标包含三个字段:
( 1)类型字段:用来标识报文,长度为 8 位。
( 2)代码字段:提供有关报文类型的进一步信息,
长度为 8 位。
( 3)校验和字段,ICMP使用与 IP相同的相加校验算法,但 ICMP校验和只覆盖 ICMP报文,长度为 16
位。
类型
( 8bit)
代码
( 8bit)
检验和
( 16bit)
长度可变部分取决于 ICMP类型
0 7 8 15 16 31
ICMP报文格式
6.5.3 ICMP差错报文
信宿不可到达报文:当一个路由器检测出一个数据报不能发往它的目的地时,路由器发送一个信宿不可到达报文。
超时报文:当路由器将一个数据报的生存时间字段的值减为零时,路由器放弃该数据报并发送一个超时报文;当一台主机对某一个数据报的重组时间截止,而此时该数据报的分片还没有全部到达,则主机放弃分片并发送一个超时报文。
参数出错报文:网关或主机通过参数出错报文报告错误的数据报报头和错误的数据报选项参数等情况。
此报文只有在数据报被抛弃时才被发送,指针指向出错的数据报包头字节。
6.5.4 ICMP控制报文
拥塞控制与源抑制报文:
当路由器收到太多的数据报以至于没有足够的缓冲区来处理时,路由器放弃到达的额外数据报,并使用 ICMP源抑制报文向初始源主机报告拥塞状况,
并请求它减慢目前的数据报发送速率。
路径控制与重定向报文:
当路由器检测到一台主机使用非优化路由时,它向该主机发送一个重定向的 ICMP报文,请求该主机改变路由并把初始数据报转发给它的目的主机。
6.5.5 ICMP请求 /应答报文
( 1) 回应请求与应答报文请求者向特定目的主机发送一个回应请求,回应请求中包含一个任选的数据区;目的主机发回相应的回应应答,回应应答中包含一个请求中任选数据的拷贝。假如主机成功地收到一个应答,说明数据报传输系统的相应部分工作正常。 ping命令就是利用 ICMP回应请求与应答报文测试目的主机的可到达性。
( 2)时戳请求与应答报文用于时钟同步,以避免各主机的时钟相差太大。
( 3)地址掩码请求与应答报文一台主机在系统启动时广播一个地址掩码请求,收到请求的路由器发送一个包含该计算机所在网络的 32位掩码的应答。
6.5.6 ICMP重定向举例
主机有时不能确定正确的路由,
并将数据报发给了不处于最优路径上的路由器。这种情况下,收到数据报的那个路由器就要发送
ICMP重定向差错报文给 IP数据报的发送端。
I n t e r n e t
2 0 2,1 1 2,4 5,3 8 2 0 2,1 1 2,4 5,5 7
2 0 2,1 1 2,4 5,2 4
2 0 2,1 1 2,4 5,0
2 0 2,1 1 2,4 5,2 5 4
2 0 2,1 1 2,3 1,2 5 3
2 0 2,1 1 2,3 1,2 5 4
主 机 A
e t h 1
2 0 2,1 1 2,3 1,2 5
2 0 2,1 1 2,3 1,0
路 由 器 路 由 器目的子网掩码 网关 标志 接口
127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
202.112.31.0 255.255.255.0 202.112.31.25 U eth1
Default 0.0.0.0 202.112.31.254 UG eth1
主机 A的路由表假设主机 A发送一份 IP数据报给 202.112.45.38,如图 6.59,
查看路由表,除了缺省路由外,这并不能匹配任何路由。
因此静态路由将此数据报通过路由器 202.112.31.254发送,
但是,该地址为,202.112.31.254”的路由器知道所有发向子网 202.112.45.0的分组应该通过 202.112.31.253,因此,
它把数据报转发到地址为,202.112.31.253”的路由器。由图可以看到,如果主机 A直接把分组发到 202.112.31.253将会提高效率。
虽然路由器知道所有发向 202.112.45.0子网的分组应该通过 202.112.31.253,它通常只发送特定的主机的 ICMP重定向
(此例中是 202.112.45.38)。主机将在路由表中创建一个新的表项如表 6.20所示。
表 6.20 主机 A路由表中因 ICMP重定向新添的表项目的 子网掩码 网关 标志 接口
202.112.45.38 255.255.255.255 202.112.31.253 UGHD eth1
注意标志 D,对所有由 ICMP重定向创建的路由设置此标志。将来此类数据报将通过新路由发送。
6.6 实训 6-规划、配置网络系统实训目的
1.了解 IPv4和在 Internet应用的基本情况。
2.熟练掌握 IPv4规划、配置网络的方法。
3.掌握 IP协议和相关的网络协议。
4.了解 IPv6规划、配置网络的基本方法。
5.掌握常用网络的测试方法。
实训内容
1.根据社会调查明确 IP网络划分的实际需求。
2.经典 IPv4子网划分解决方案设计规划。
3.IPv4可变长子网、超网,VLAN解决方案设计规划。
4.IPv6网络划分解决方案设计规划。
5,IPv4解决方案设置、测试。
6.评价及结论。
实训习题
1.分析当前 IP网络划分的实际需求。
2.如何设计规划 IPv4经典子网、可变长子网、超网,VLAN?
3.如何设计规划 IPv6网络?
4.怎样在实际计算机网络系统中实施网络划分的解决方案?
5.如何在 MS-WINDOWS,Linux等环境中进行网络系统的测试?
TCP/IP网络互连第 6章 网络互连 IP协议本章提要网络互连 IP协议的基本概念;
IPv4的概念与应用;
IPv6的基本概念与应用;
ARP与 RARP的原理;
ICMP的原理
6.1 IPv4
6.2 IP子网技术
6.3 IPv6
6.4 地址解析协议
6.5 Internet控制报文协议
6.6 实训 6-规划、配置网络系统
6.1 IPv4
6.1.1 IP数据报
6.1.2 IP的编址
6.1.3特殊地址
网际协议
( IP,Internet Protocol)
是 TCP/IP协议族中核心的协议。所有的 TCP,UDP,ICMP和 IGMP数据都以 IP数据报格式传输。现在所用的 IP协议版本为 1981年定义的第四版,即 IPv4。
IP提供了三个重要的定义
( 1) IP定义了在整个计算机网络上数据传输所用的基本单元数据报,它规定了互连网上传输数据的确切格式。
( 2) IP软件完成路由选择的功能,选择一个数据发送的路径。
( 3)除了数据格式和路由选择的精确而正式的定义外,IP还包括了一组嵌入了不可靠分组投递的规则,这些规则指明了主机和路由器应如何处理分组、何时、如何发出错误信息,以及在何种情况下可以放弃数据报。
6.1.1 IP数据报
互联网则把它的基本传输单元叫做一个
Internet数据报( datagram),简称为
IP数据报或数据报。
数据报报头 数据报的数据区数据报的一般格式
0 4 8 16 19 24 31
4bit版本 4bit报头长度 8bit服务类型( TOS) 16bit总长度(字节数)
16bit标识符 3bit标志 13bit分片偏移量
8bit生存时间( TTL) 8bit协议 16bit报头校验和
32bit源 IP地址
32bit目的 IP地址
IP选项(若有) 填充数据
……
优先级和服务类型
优先级字段指明本数据报的优先级,允许发送方表示本数据报的重要程度。优先级的值从 0到 7。,0”表示一般优先权,,7”表示网络控制优先权。服务类型提供了一种手段,
以允许控制信息享受比一般数据更高的优先级。
D,T,R三位表示本数据所希望的传输类型。
其中,D代表低延迟( Delay),T代表高吞吐量( Throughput),R代表高可靠性
( Reliability)。
分片问题
数据报在数据链路层中被封装在数据帧内,
通过帧的传输来实现数据报的传输。
各种物理网络技术,对帧的大小有不同的规定。最大数据传输单元( MTU)是指一个特定的网络所允许的物理帧的最大数据长度。当路由器收到一个大于其要转发的网络的 MTU的数据报时,路由器必须将这个数据报分成可通过该网络的数据报片,这就是 IP数据报的分片问题。
6.1.2 IP的编址
IP协议要求参加 Internet网的网节点要有一个统一规定格式的地址,这个地址称为符合 IP协议的地址,一般被称为 IP
地址。
IP地址格式
IP地址可以被表示为二进制格式。二进制表示的 IP地址中,每个 IP地址含 32位,
被分为 4段,每段 8位 。
IP地址由两部分组成:
网络号( Network ID)
主机号( Host ID)
IP地址类型
( 1) A类地址:一般用于大型网络,可以拥有很大数量的主机。第一字节表示网络号,其中最高位为
0。剩余三字节共 24位表示主机号,总共允许有 126
个网络。
( 2) B类地址:被分配到中等规模或较大规模的网络中。前两个字节表示网络号,其中最高两位总被置于二进制的 10,剩余两个字节共 16位表示主机号,
允许有 16384个网络。
( 3) C类地址:被用于主机数量较小的小型网络。
前三个字节表示网络号,其中高三位被置为二进制的 110,剩余一个字节表示主机号,允许大约 200万个网络。
( 4) D类地址:被用于多路广播组用户,高四位总被置为 1110,余下的位用于标明客户机所属的组。
( 5) E类地址:保留,为今后使用。
在分配网络号和主机号时应遵守以下几条准则:
( 1)网络号不能为 127,该标识号被保留作回送及诊断功能。
( 2)不能将网络号和主机号的各位均置 1。如果每一位都为 1,则各路由器均不转发,该地址会被解释为在本网络内使用的广播地址。
( 3)不能将某台主机的网络地址中主机号部分全置 1。在任何一个合法的网络中,主机号全为 1的地址代表对本网络上的所有主机进行广播的地址。
( 4)也不能将网络号和主机号的各位均置 0,否则该地址被解释为本网络地址。
( 5)对于一个网络来说,主机号应该是唯一的。
否则会出现 IP地址已分配或有冲突之类的错误。
子网掩码
TCP/IP上的每台主机都需要用一个掩码,也称为子网掩码。它是一个 4字节的二进制数。 IP软件在提取一个 IP地址的网络号和主机号时需要使用掩码。
当网络还没有划分为子网时,可以使用缺省的子网掩码;当网络被划分为若干个子网时,就要使用网络管理员分配的特定的子网掩码了。
缺省的子网掩码用于一个还没有划分子网的网络。即使是在一个单段网络上,每台主机也都需要这样的缺省值。它的形式依赖于网络的地址类型。在它的 4字节里,所有对应网络号的位都被置为 1,相应字节的十进制值都是 255;所有主机号的位都置为 0。
6.1.3特殊地址
网络地址:一个主机号的所有位都为,0”的地址是保留给该网络本身的。
广播地址:当数据报头中目的地址字段的内容为广播地址时,该数据报被网上所有主机接收。
组播地址:通过使用特定的 IP组播地址,按照最大投递的原则,将 IP数据报传输到一个组播群组
( multicast group)的主机集合。
回送地址,用于网络软件测试以及本地机进程间通信,叫做回送地址( loopback address)。
6.2 IP子网技术
6.2.1 子网划分
6.2.2 可变长子网
6.2.3 超网网 络
1 4 0,1 0,0,0
子 网 3
1 4 0,1 0,3,0
子 网 2
1 4 0,1 0,2,0
子 网 1
1 4 0,1 0,1,0
令 牌 环 网令 牌 环 网以 太 网
6.2.1 子网划分
子网编址将主机号部分增加一个子网号字段即把 IP地址的主机号中分出一些位用作子网号,而不仅仅把 32位 IP地址分成网络号和主机号。
网络号 主机号网络号 子网号 主机
( a)
( b)
网络号:
( 1)将 IP地址 114.252.20.68转换为二进制
01110010 11111100 00010100 01000100。
( 2)将子网掩码 255.255.255.224转换为二进制
11111111 11111111 11111111 11100000。
( 3)将两个二进制数逻辑与( AND)运算后得出的结果即为网络部分。
11111111 11111111 11111111 11100000
AND 01110010 11111100 00010100 01000100
01110010 11111100 00010100 01000000结果:
子网掩码:
IP地址:
114 252 20 64网络号:
主机号:
00000000 00000000 00000000 00011111
AND 01110010 11111100 00010100 01000100
00000000 00000000 00000000 00000100结果:
子网掩码取反:
IP地址:
0 0 0 4主机号:
6.2.2 可变长子网
可变长子网掩码( VLSM,Variable-
length Subnet Mask)技术是子网划分的一种应用技术,指在一个网络中,按照各子网中主机的数量规划不同的子网,但所有子网网络号是一致的。其本质是对已划分的子网做进一步的划分。引入可变长子网掩码技术,主要目的是优化可用地址空间,避免造成 IP地址资源的浪费。
1,任务描述
为一个企业规划一个可变长子网,给定条件如下:
( 1)申请一个 B类网络,网络号为
172.16.0.0。
( 2)配置 13个能容纳 4000台计算机的子网。
( 3) 6个能容纳 250台计算机的子网。
( 4)假定在划分中全 0和全 1的子网不可用。
2,互连方案的设计
( 1)配置 13个能容纳 4000台计算机的子网
( 2)配置 6个能容纳 250台计算机的子网子 网 2
1 7 2,1 6,3 2,0
子 网 3
1 7 2,1 6,4 8,0
子 网 4
1 7 2,1 6,6 4,0
子 网 1 2
1 7 2,1 6,1 9 2,0
子 网 1 3
1 7 2,1 6,2 0 8,0
子 网 1
1 7 2,1 6,1 6,0
子 网 5
1 7 2,1 6,8 0,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 1
1 5 6,3 2,1 6,0
子 网 7
1 7 2,1 6,1 1 2,0
子 网 6
7 2 1 6 9
子 网 8
1 7 2,1 6,1 2 8,0
子 网 9
1 7 2,1 6,1 4 4,0
子 网 1 0
1 7 2,1 6,1 6 0,0
子 网 1 1
1 7 2,1 6,1 7 6,0
子 网 2
1 7 2,1 6,2 2 6,0
子 网 1
1 7 2,1 6,2 2 5,0
子 网 3
1 7 2,1 6,2 2 7,0
子 网 4
1 7 2,1 6,2 2 8,0
子 网 5
1 7 2,1 6,2 2 9,0
子 网 6
1 7 2,1 6,2 3 0,0
交 换 机交 换 机
6.2.3 超网
IETF提出了超网( super net)和无类域间路由( CIDR,Classless Inter
Domain Routing)的方法,它采取了灵活选择 IP地址中主机号的长度,不再机械地划分成类。与子网编址相反,某组织内不用一个 IP地址来代表多个物理网络,而是用多个 IP网络地址代表一个组织。
采用了 CIDR后,将多个网络表项聚合成了一个路由表项,一般可以表示为如下模式:
[起始网络号,数量 ]
( 1)起始网络号:所分配的第一个 C类网络 IP地址。
( 2)数量:分配的 C类网络的总数。
在实际应用中,将世界划分为 4个区域,
将一部分 C类地址空间分配给这些地区区域 C类地址分配范围欧洲地区 194.0.0.0~ 195.255.255.255
北美地区 198.0.0.0~ 199.255.255.255
中美和南美地区 200.0.0.0~ 201.255.255.255
亚太地区 202.0.0.0~ 203.255.255.255
超网的应用
1,任务描述
某组织使用 10个标准 C类地址,202.123.3.0、
202.123.7.0,202.123.8.0,202.123.9.0、
202.123.10.0,202.123.11.0,202.123.12.0、
202.123.13.0,202.123.14.0和 202.123.15.0。
为了简化路由表,需将上述地址聚合使用,
需规划聚合后的网络掩码,网络地址,广播地址和有效 IP地址范围。
2,互连方案的设计
( 1) 首先判断能否聚合:方法是将聚合前 10个 C类地址的网络地址位最低位所在字节的十进制数转换成二进制数。
( 2)判断聚合前 10个 C类地址的网络地址位最低位所在字节的二进制数是否满足聚合条件 。
6.3 IPv6
6.3.1 IPv6概述
6.3.2 IPv6的数据报文格式
6.3.3 IPv6地址方案
6.3.1 IPv6概述
IPv6是下一代 IP协议,主要有以下内容:
( 1)采用 128位地址空间,在层次结构上更为科学合理。在 IPv6协议设计之前,网络界曾提出过若干种 IPv4的替代协议。
( 2)地址自动分配,提供了无状态和有状态地址自动配置两种地址方案。
( 3)简化了协议首部,使用了全新的、更加灵活的数据报首部结构。
( 4)支持源路由的选径,IPv6采用了多层次地址结构,提供了更多的路由信息,绝大多数路由算法都作了修改,以扩展其路由选径的能力。
( 5)集成了认证和加密的安全机制,两种机制可以自由组合使用,以适应不同的需要。
6.3.2 IPv6的数据报文格式
IPv6数据报文的基本首部和 IPv4报文一样,
IPv6的报文同样是封装在一个网络物理帧之中,如图所示 。
物理帧首部 IPv6首部 可选的 IPv6
扩展首部
TCP( UDP)
首部应用层数据 物理帧尾部
IPv6报文基本首部版本号 传输类别 流标识负载长度 下一首部 跳数极限
16byte源地址
16byte目的地址
0 3 4 11 12 15 16 23 24 31
IPv6协议设计的扩展首部
在 IPv6中,可选的因特网层特殊控制信息是存放在基本报文首部与因特网层上层协议首部之间的各个扩展首部之中,路由器和最终目的节点根据扩展首部中的控制信息对所传送的报文作特殊处理。
六种扩展首部
( 1) Hop-by-Hop选项扩展首部( Hop-by-Hop
header)。
( 2)源路径选择扩展首部( routing header)。
( 3)分片扩展首部( fragment header)。
( 4)目的选项扩展首部( destination option
header)。
( 5)认证扩展首部( authentication header)。
( 6)加密安全负载扩展首部( encapsulation
security pay load header)。
( 1) Hop-by-Hop选项扩展首部
( Hop-by-Hop header)
用来携带在一个报文的传送途中的所有节点都必须检查处理的信息。在 RFC l700中给 Hop-
by-Hop选项扩展首部的数字标识为 0,因此它由前一首部中值为 0的下一首部域标识。
下一个首部
( 8bit)
扩展首部长度
( 8bit)
可选项
8的整数倍字节长可选项
8的整数倍字节长
( 2)源路径选择扩展首部
( routing header)
源路径选择扩展首部( routing header)用于指明在到达目的节点前报文所必须要经过的路由节点。
它的功能类似于 IPv4中的自由源路径选择和记录选项( loose source and record route option) n,
RFC l700给源路径选择扩展首部分配的数字标识为
43,所以它的前一首部中下一首部域的值为 43。
下一个首部
( 8bit)
扩展首部长度
( 8bit)
路由类型
( 8bit)
剩余路由段
( 8bit)
特殊路由类型数据
( 3)分片扩展首部
( fragment header)
是源节点分段传送长于报文目的地址之间的通路最大传输单元( Path MTU)的数据报文时采用的扩展首部。路由器不负责对过长报文的拆分;对报文的拆分工作由发送报文的源节点完成。在 RFC l700中,给分片扩展首部分配的数字标识为 44,因此该首部由其前一扩展首部中值为 44的下一首部域标明。
下一首部
( 8bit)
保留域
( 8bit)
分片段偏移
( 13bit)
保留位
( 2bit)
M标志位
( 1bit)
拆分标识域
( 32bit)
( 4)目的选项扩展首部
( destination option header)
是用于携带仅被报文的目的节点(由基本首部中的目的地址域标识)所检查的信息,这与 Hop-by-Hop选项扩展首部的功能正好相反。在 RFC l700中,给目的选项扩展首部分配的数字标识为 60,所以它是由其前一首部中值为 60的下一首部域所标识。目的选项扩展首部的格式与 Hop-by-Hop选项扩展首部的形式基本一样。
( 5)认证扩展首部
( authentication header)
lPv6新定义的与认证有关的扩展首部。
它不对能够在路由途中被修改的 TLV可选项的选项数据域计算和检查报文的认证值。
( 6)加密安全负载扩展首部
( encapsulation security
pay load header)
该目的选项扩展首部中的可选项在报文传送的最终目的节点上进行处理。
报文最长生命时间报文的最长生命时间是一个报文在网络上能够存在的最大时间。 IPv6节点不必强制实行最长报文生命时间,这也就是 IPv6将 IPv4首部中的“生存时间”
域改为“跳数极限”的原因。实际上,很少有 IPv4
的应用严格遵循限制对报文生命时间的要求,它们多数都是通过对报文经过路由器的数目进行限制,
从而达到限制报文的存在时间的目的。因此 IPv6使用“跳数极限”域并不是一种本质上的改变,而是实际应用要求的体现。所有依赖于 IP协议的上层协议,如果要精确限制报文的生命时间,就需要通过修改协议本身来给自己提供一种发现过时报文和丢弃过时报文的机制。
6.3.3 IPv6地址方案
IETF在综合各方面意见的基础上,选择 128位作为
IPv6的地址长度。 128位地址为将来因特网的发展提供了足够的地址空间。除了地址长度的成倍增加外,IPv6地址还引入了更复杂的层次结构。它基于超网和 CIDR协议的思想,在地址中采用了多层次的地址前缀。因为使用了多层次的地址结构,所以地址的分配和管理可以分布在多级网管中心,这有效地减轻了网络管理员的负担,同时也大大减小了路由器中路由表的长度。
IPv6还提供了地址的自动配置机制,简化了网络设备的配置。为了让各种网络设备能平滑的从 IPv4升级到 IPv6,IPv6还提供了 IPv4的兼容地址。
IPv6地址的类型
按寻址方式和功能的不同,k三种基本类型:
( 1)单目地址( unicast address):单个网络接口的标识。以单目地址为目的地址的报文将送往其标识的网络接口。
( 2)群集地址( anycast address):一个网络接口集合的标识,集合中的不同成员一般分属于不同的节点。以群集地址为目的地址的报文将送往集合中的唯一一个成员,而且这个成员必须是被路由协议认为距离报文源节点最近的一个。
( 3)多目地址( multicast address):一个网络接口集合的标识,集合中的不同成员一般分属于不同节点。以多目地址为目的地址的报文将同时送往集合中的所有成员。
与 IPv6寻址模型有关的概念
( 1)节点( node):一个支持 IPv6协议的设备。
( 2)网络接口( interface):节点与网络链路之间的一个连接点。
( 3)站点( site):站点是整个 Internet的一部分,它由若干网络组成。由于这些网络在地理位置或组织上的联系非常紧密,所以因特网将这些网络抽象成一“点”来处理。
IPv6地址的文本表示
lPv6的 128位地址提供了很大的地址空间。但是使用二进制直接书写和记录如此长的网络地址很不方便。
类似于 lPv4中使用点分十进制表示方法,IPv6制定了冒分十六进制表示法,表示 lPv6的 128位地址。这种方法将 128位的地址分成 8个 16位十六进制数加上分隔它们的冒号来表示。这种表示方法的形式是
,X:X:X:X:X:X:X:X”,其中每个 x代表地址为一个 16
位部分,并使用十六进制表示。
在地址表示中,每个十六进制数靠左边的多个连续的零可以省略不写,但是全零的十六进制数需要用一个零来代表。例如,上面的第二个地址可以写成:
1080:0:0:0:8:800:200C:528F
为了进一步简化地址的表示,我们可以将地址中连续的全 0域用一对冒号“::”来代替。
IPv6地址前缀的文本表示
IPv6地址方案与 IPv4的超网和无类域间路由
( CIDR)方案类似,都是通过地址前缀来体现网络的层次结构。在 lPv6地址前缀的表示上,采用了类似于无类域间路由的表示法。
地址前缀长度是指明地址中从最左边开始组成地址前缀的连续位的长度。
IPv6的地址格式前缀和地址的总体划分
各种具体类型的 IPv6地址由地址中的高位引导位字段标明。这些引导位字段的长度各不相同。在协议中它们称为格式前缀 FP
( format prefix)。
协议设计者们对各种地址类型的前缀作了总体上的划分。将不同的格式前缀分配给具有不同寻址方式的地址类型是划分的主要原则。协议总是处于不断的完善修改中,不可能一下子就定型,所以地址的格式前缀也将随之不断地作调整修改。
格式前缀( n bit) 地址( 128- n bit)
单目地址
单目地址是单个网络接口的标识,以单目地址为目的地址的报文将被送往由其标识的唯一的网络接口上。单目地址的地址层次结构在形式上与 IPv4的
CIDR地址结构十分相似,它们都有任意长度的连续地址前缀和地址掩码。
在设计 IPv6单目地址时,设计者们作了如下假设:
( 1)因特网的路由系统都是基于在任意长度上的
“最长地址前缀匹配”算法来转发报文的,并且假设路由系统不知道 IPv6地址的内部结构。
( 2) IPv6的地址结构信息仅在地址的分配和定位时有效。
群集地址
群集地址是同时分配给多个网络接口(通常分布不同的节点上)的一类 IPv6地址。发往以群集地址为目的地址的 IPv6报文将会送往拥有该群集地址的接口之中路由协议认为最近的一个,亦即只有一个接口能接收到该报文。
目前 IPv6对群集地址的用途和实现机制都还在不断研究和尝试之中。现在已经确定的群集地址用途有以下三种:
( 1)标识一个提供因特网服务的组织中的路由器集合。
这时,群集地址可以作为报文源路径选择扩展首部中的中间路由器地址,使得报文经过指定网络服务接入组织的任意一个路由器进行传递。
( 2)标识连接特定子网的路由器集合。
( 3)标识提供到某一个网络区域路由信息的路由器集合。
多目地址
多目地址是在实施网络组播机制时使用的。早在 1988年就提出了组播的方法,在 IPv4
的地址中专门划分出 224.0.0.0~ 239.255.255.255的范围作为组播类地址,并且定义了相应的协议 IGMP来支持组播机制。 1992年,随着实验性的组播主子网 MBONE的建立,对组播应用的研究得到进一步的发展。
IPv6协议也采纳了组播机制,并专门设计了组播使用的多目地址。在 IPv6的地址空间中划分出以 1111 1111为地址格式前缀的地址空间专门供组播使用。同时,IPv6的设计者还定义了 IGMP第二版 IGMPv2作为 IPv6下组播的控制管理协议。
多目地址与群集地址一样是分配给多个网络接口,两者的区别是以多目地址为目的地址的 IPv6报文会同时被拥有该多目地址的所有网络接口接收到,这种发送过程称为组播。拥有同一多目地址的网络接口的集合称为一个组播组。
通常,Internet的通信都是在两个网络接口之间进行的,即一个通信过程只有一个发送方和一个接收方。例如 telnet远程登录应用,WWW浏览,FTP文件传输等都是这种一对一的网络传输过程。随着网络应用的发展,需要一种一对多的网络传输模式,即一个发送方同时与多个接收方进行通信。这种一对多的传输模式并不是简单的一个发送方同时与多个接收方建立多个连接,而是同一报文只发送一次,多个接收方都接收这个报文的拷贝。在现实生活中,这种发送的方式与电视、收音机的信号发送方式类似:当多个电视机接收同一频道的节目时,它们接收到的是电视发射机发出的相同电视信号。在 Internet上,这样的通信实例有网上新闻消息的发布、实时股票信息的网上发布和网络数字电视会议等等。
组播就是这种一对多网络传输模式的一种实现机制。因为组播机制的实现与单目地址报文的传播有很大区别,因此专门为组播分配了一类地址 — 多目地址。
一个 IPv6节点所需要的地址
1,一个主机节点所需要的地址
一个主机节点需要识别以下标识它自身的地址:
( 1)节点所有网络接口的本地链路地址,在本地链路上标识网络接口,用于本链路上的通信。
( 2)分配得到的单目地址,在整个因特网上标识网络接口,用于与整个因特网上其它节点进行通信。
( 3)本地回送地址,用于本节点内部的通信。
( 4)所有节点多目地址,用于接收本链路上的广播报文。
( 5)对应于节点所有单目地址和群集地址的被请求节点群集地址,用于邻节点探测和地址的自动配置。
( 6)对应于节点所属所有组播组的多目地址,用于接收发往所属组播组的组播报文。
2,一个路由器节点所需要的地址
路由器除了具有一般节点的功能外,它还需要负责报文转发、路由信息的发布、链路最大传输单元的信息发布以及配合完成地址自动配置功能等等。因此,一个路由器除了需要获得并识别一个主机节点所需要识别的地址外,还需要获得以下用于完成路由器特殊功能的地址:
( 1)对应每个具有路由功能的网络接口所连接子网的子网路由器群集地址:该类地址是方便普通节点指定缺省的路由器。
( 2)路由器所配置的所有其它群集地址:接收任播报文。
( 3)所有路由器多目地址:用于路由信息的发布。
( 4)路由器所从属的所有其它组播组的多目地址:
用于接收所属路由器组播组的报文。
6.4 地址解析协议
6.4.1 地址解析协议的工作机制
6.4.2 ARP和 RARP的协议格式
6.4.3 ARP代理
6.4.4 ARP实例
6.4.1 地址解析协议的工作机制
网络的具有分层的体系结构,在高层的应用软件仅仅使用计算机的 IP地址来进行通信。
但是数据要在物理网上传输使用 IP地址是不行的。因为数据链路层通信使用的是计算机的网卡地址即物理地址,要想在两台计算机之间传输数据就必须知道对方的物理地址。
所以当数据由高层协议到达数据链路层时,
就需要将 IP地址转化为物理地址。
网 络 适 配 器目 的 主 机 I P 地 址
I P = 1 0,9,8,1
F T P
F T P
F T P
F T P
1 0,9,8,1
0 0 - 5 0 - 0 4 - 9 3 - F 7 - 2 1
0 0 - 5 0 - 0 4 - 9 3 - F 7 - 2 1
源 主 机 A 目 的 主 机 B
用 I P 地 址 建 立 连 接用 I P 地 址 发 送 数 据 报将 I P 地 址 转 换 为 物 理 地 址目 的 主 机 硬 件 地 址应 用 层传 输 层网 络 层链 路 层
ARP实现的过程
当主机 A要转换 IP地址 IPb时,按照以下步骤工作:
( 1)首先广播一个特殊的分组,要求 IP地址为 IPb
的主机用它的物理地址 Mb响应它。
( 2)因为使用了以太网的广播机制,所以和 A在同一段网上的所有主机都将收到这个请求。
( 3)只有主机 B识别到请求中的 IP地址和它的 IP地址相同所以发送一个包含有它自己物理地址应答,
其它主机由于请求中的 IP地址和自己的 IP地址不相同,所以不予响应这个请求。
( 4)当 A收到回答后,就可以使用此物理地址把分组发送给 B。
这就可以使得使用地址转换协议 ARP允许主机在只知道同一物理网络上一个目的网点的 IP地址的情况下,找到目的主机的物理地址。
不 响 应,A 在 找 B,本机 是 C,保 持 沉 默响 应,与 I P b 对 应 的 物理 地 址 为 M b
广 播,需 要 I P b 的 物 理 地 址
A
B C
A B C
( a )
( b )
①
②
③ ③
RARP
通常计算机的 IP地址是保存在它的硬盘中的,操作系统在启动时从配置文件中读取 IP地址。但是一个没有硬盘的计算机如何确定它自己的 IP地址?如 X终端或无盘工作站,则需要其它方法来获得 IP地址。而这种方法是反向地址转换协议( RARP,Reverse Address Resolution
Protocol)的一种 TCP/IP协议,从服务器得到它的 IP地址。 RARP是
ARP协议改变过来的。而它不仅允许请求本机的 IP地址,还允许计算机请求第三方的 IP地址,并适用于多种物理网络类型。
寻找 IP地址的思想很简单:需要知道自己地址的计算机向服务器发送请求,并等待服务器发出响应。我们假定服务器访问了它存放互联网地址数据库磁盘。需要知道其自身互联网地址的计算机,在发出的请求中必须使用唯一的标识它自己的信息,通常用计算机本身的物理地址,以便于服务器查到正确的互联网地址并发出回答。发出请求的计算机和响应的服务器在简短的通信中都使用物理网络地址。请求方开始时并不知道知道服务器的物理地址,所以它只简单的向本地网络所有计算机广播请求。一个或多个服务器响应这个请求。
像 ARP报文一样,RARP报文是封装在一个网络帧的数据部分中从一台计算机传送到另一台上的。例如,一个携带 RARP请求的以太网帧,在帧的前部具有通常的前同步码,以太网源网点和目的网点地址和分组类型字段等。帧类型中的值为 8035H,用来标识帧的内容为一个 RARP报文。帧的数据部分包含了 28个 8位组的 RARP报文。
RARP的工作过程
( 1)发送方广播一个指定它自己既是发送方又是接收方的
RARP请求,并把它自己的物理网络地址放到目标硬件地址字段中。
( 2)网上的所有计算机都接收该请求。
( 3)只有被授权提供 RARP服务的计算机才处理请求并发出回答;这样的计算机称为 RARP服务器。要成功的使用
RARP,网络上必须至少有一个 RARP服务器。服务器填写目标协议地址字段,并把报文类型从“请求”改成“回答”,
然后直接把回答发回提出请求的计算机。
( 4)这台计算机收到所有 RARP服务器的回答,只使用第一个。
在请求自己 IP地址的计算机与提供这一地址的服务器之间,
它们所有的通信都只使用物理网络。此外,协议还允许主机任意目标主机地址的询问。
将 I P 地 址 转 换 为 物 理 地 址收 到 广 播 请 求 的 服 务 器向 请 求 者 分 配 I P 地 址接 收 应 答 后,可 以 通 信主 机 A 以 物 理 地 址
M A C 请 求 R A R P 服 务
( a )
( b )
①
②
③ ③
④
收 到 广 播 请 求 的 服 务 器 向请 求 者 分 配 I P 地 址
R A R P 服 务 器
6.4.2 ARP和 RARP的协议格式
RARP和 ARP是两个相反的协议,而在目的和实现手段上却不是完全相反的过程,它们在职能和操作方面有差别。 RARP发送的请求帧和应答帧与 ARP有基本相同的结构;不同的是请求帧中 MAC地址的目的地是 RARP服务器的地址,而非广播地址,请求帧的 IP报头源地址是空的,目的地址是 IP层的广播地址,RARP服务器在应答时给出了 IP地址。
ARP报文由一个帧的数据部分所携带,如图所示,
ARP报文
ARP报文帧类型以太网源地址以太网目的地址以太网首部由 IP地址查到对应的物理地址
0 8 16 24 31
硬件类型 协议类型硬件地址长度 协议地址长度 操作发送方首部( 8bit组 0-3)
发送方首部( 8bit组 4-5) 发送方 IP地址( 8bit组 0-1)
发送方 IP地址( 8bit组 2-3) 目标首部( 8bit组 0-1)
目标首部( 8bit组 2-5)
目标 IP地址( 8bit组 0-3)
6.4.3 ARP代理
代理 ARP是一个把 IP网络前缀映射到两个物理地址上的技术。这个技术,仅仅适用于
ARP把互连网地址绑定到物理地址的网络。
广 播,本 机 需 要 和 H
2 通 信,要 知 道 H 2 的物 理 地 址
( a )
( b )
H 1
H 2
A R P 代 理 服 务 器以 A R P 代 理 服 务 器 自己 在 网 络 1 上 的 物 理地 址 进 行 回 答
L A N 1 L A N 2
使 用 A R P 代 理 服 务 器的 物 理 地 址 发 送 数 据
H 1
H 2
A R P 代 理 服 务 器
L A N 1 L A N 2
ARP代理基本模式
6.4.4 ARP实例
在 Linux系统中提供了检查 ARP的方法,用
arp命令显示和控制本机的地址解析表。地址解析表是一个缓冲存储器( cache),其中记录了 MAC地址到 IP地址的映射。系统要发送一个 IP数据包,先要知道各节点的数据链路层地址,这是通过查地址解析表来实现的。
可以通过 arp命令来查看并修改(包括删除和增加) arp高速缓冲存储器( arp cache)。
它用来检测本网络中用错误的 IP地址配置的系统。
6.5 Internet控制报文协议
6.5.1 ICMP用途与机制
6.5.2 ICMP报文
6.5.3 ICMP差错报文
6.5.4 ICMP控制报文
6.5.5 ICMP请求 /应答报文
6.5.6 ICMP重定向举例
6.5.1 ICMP用途与机制
网间报文控制协议( ICMP,Internet Control
Message Protocol),是一个工作在主机和路由器之间的消息控制和差错报告协议。网络设备(通常是路由器)一旦发现传输问题,就会分析其错误类型,并向源主机返回一个 ICMP消息。常用的
ping命令和 tracert命令就是基于 ICMP的工具程序,
它们在主机和路由器上的格式与返回信息有一定的区别。
ICMP报文是放在一个 IP数据报的数据部分中进行传输的。
6.5.2 ICMP报文
ICMP报文也分为头标和数据区两大部分,其中头标包含三个字段:
( 1)类型字段:用来标识报文,长度为 8 位。
( 2)代码字段:提供有关报文类型的进一步信息,
长度为 8 位。
( 3)校验和字段,ICMP使用与 IP相同的相加校验算法,但 ICMP校验和只覆盖 ICMP报文,长度为 16
位。
类型
( 8bit)
代码
( 8bit)
检验和
( 16bit)
长度可变部分取决于 ICMP类型
0 7 8 15 16 31
ICMP报文格式
6.5.3 ICMP差错报文
信宿不可到达报文:当一个路由器检测出一个数据报不能发往它的目的地时,路由器发送一个信宿不可到达报文。
超时报文:当路由器将一个数据报的生存时间字段的值减为零时,路由器放弃该数据报并发送一个超时报文;当一台主机对某一个数据报的重组时间截止,而此时该数据报的分片还没有全部到达,则主机放弃分片并发送一个超时报文。
参数出错报文:网关或主机通过参数出错报文报告错误的数据报报头和错误的数据报选项参数等情况。
此报文只有在数据报被抛弃时才被发送,指针指向出错的数据报包头字节。
6.5.4 ICMP控制报文
拥塞控制与源抑制报文:
当路由器收到太多的数据报以至于没有足够的缓冲区来处理时,路由器放弃到达的额外数据报,并使用 ICMP源抑制报文向初始源主机报告拥塞状况,
并请求它减慢目前的数据报发送速率。
路径控制与重定向报文:
当路由器检测到一台主机使用非优化路由时,它向该主机发送一个重定向的 ICMP报文,请求该主机改变路由并把初始数据报转发给它的目的主机。
6.5.5 ICMP请求 /应答报文
( 1) 回应请求与应答报文请求者向特定目的主机发送一个回应请求,回应请求中包含一个任选的数据区;目的主机发回相应的回应应答,回应应答中包含一个请求中任选数据的拷贝。假如主机成功地收到一个应答,说明数据报传输系统的相应部分工作正常。 ping命令就是利用 ICMP回应请求与应答报文测试目的主机的可到达性。
( 2)时戳请求与应答报文用于时钟同步,以避免各主机的时钟相差太大。
( 3)地址掩码请求与应答报文一台主机在系统启动时广播一个地址掩码请求,收到请求的路由器发送一个包含该计算机所在网络的 32位掩码的应答。
6.5.6 ICMP重定向举例
主机有时不能确定正确的路由,
并将数据报发给了不处于最优路径上的路由器。这种情况下,收到数据报的那个路由器就要发送
ICMP重定向差错报文给 IP数据报的发送端。
I n t e r n e t
2 0 2,1 1 2,4 5,3 8 2 0 2,1 1 2,4 5,5 7
2 0 2,1 1 2,4 5,2 4
2 0 2,1 1 2,4 5,0
2 0 2,1 1 2,4 5,2 5 4
2 0 2,1 1 2,3 1,2 5 3
2 0 2,1 1 2,3 1,2 5 4
主 机 A
e t h 1
2 0 2,1 1 2,3 1,2 5
2 0 2,1 1 2,3 1,0
路 由 器 路 由 器目的子网掩码 网关 标志 接口
127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
202.112.31.0 255.255.255.0 202.112.31.25 U eth1
Default 0.0.0.0 202.112.31.254 UG eth1
主机 A的路由表假设主机 A发送一份 IP数据报给 202.112.45.38,如图 6.59,
查看路由表,除了缺省路由外,这并不能匹配任何路由。
因此静态路由将此数据报通过路由器 202.112.31.254发送,
但是,该地址为,202.112.31.254”的路由器知道所有发向子网 202.112.45.0的分组应该通过 202.112.31.253,因此,
它把数据报转发到地址为,202.112.31.253”的路由器。由图可以看到,如果主机 A直接把分组发到 202.112.31.253将会提高效率。
虽然路由器知道所有发向 202.112.45.0子网的分组应该通过 202.112.31.253,它通常只发送特定的主机的 ICMP重定向
(此例中是 202.112.45.38)。主机将在路由表中创建一个新的表项如表 6.20所示。
表 6.20 主机 A路由表中因 ICMP重定向新添的表项目的 子网掩码 网关 标志 接口
202.112.45.38 255.255.255.255 202.112.31.253 UGHD eth1
注意标志 D,对所有由 ICMP重定向创建的路由设置此标志。将来此类数据报将通过新路由发送。
6.6 实训 6-规划、配置网络系统实训目的
1.了解 IPv4和在 Internet应用的基本情况。
2.熟练掌握 IPv4规划、配置网络的方法。
3.掌握 IP协议和相关的网络协议。
4.了解 IPv6规划、配置网络的基本方法。
5.掌握常用网络的测试方法。
实训内容
1.根据社会调查明确 IP网络划分的实际需求。
2.经典 IPv4子网划分解决方案设计规划。
3.IPv4可变长子网、超网,VLAN解决方案设计规划。
4.IPv6网络划分解决方案设计规划。
5,IPv4解决方案设置、测试。
6.评价及结论。
实训习题
1.分析当前 IP网络划分的实际需求。
2.如何设计规划 IPv4经典子网、可变长子网、超网,VLAN?
3.如何设计规划 IPv6网络?
4.怎样在实际计算机网络系统中实施网络划分的解决方案?
5.如何在 MS-WINDOWS,Linux等环境中进行网络系统的测试?