第15讲第10章下一代因特网(1)第10章下一代因特网10.1下一代网际协议IPv6(IPng)10.2多协议标记交换MPLS10.3P2P文件共享10.1下一代的网际协议IPv6(IPng)10.1.1解决IP地址耗尽的根本措施因特网经过几十年的飞速发展,到2011年2月3日,IPv4的地址已经耗尽,ISP已经不能再申请到新的IP地址块了。解决IP地址耗尽的根本措施就是采用具有更大地址空间的新版本的IP,即IPv6。IETF早在1992年6月就提出要制定下一代的IP,即IPng(IPNextGeneration)。IPng现正式称为IPv6。1998年12月发表的RFC2460~2463已成为因特网草案标准协议。10.1.2IPv6的基本首部IPv6仍支持无连接的传送所引进的主要变化如下更大的地址空间。IPv6将地址从IPv4的32位增大到了128位。扩展的地址层次结构。灵活的首部格式。改进的选项。允许协议继续扩充。支持即插即用(即自动配置)支持资源的预分配。IPv6数据报的首部IPv6将首部长度变为固定的40字节,称为基本首部(baseheader)。将不必要的功能取消了,首部的字段数减少到只有8个。取消了首部的检验和字段,加快了路由器处理数据报的速度。在基本首部的后面允许有零个或多个扩展首部。所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)或净负荷。IPv6数据报的一般形式基本首部扩展首部1扩展首部N…数据部分选项IPv6数据报有效载荷041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24有效载荷(扩展首部/数据)IPv6的基本首部(40B)IPv6的有效载荷(至64KB)041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位t)有效载荷长度跳数限制24扩展首部/数据IPv6的基本首部(40B)IPv6的有效载荷(至64KB)有效载荷(扩展首部/数据)041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B版本(version)——4位。它指明了协议的版本,对IPv6该字段总是6。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B通信量类(trafficclass)——8位。这是为了区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B流标号(flowlabel)——20位。“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B有效载荷长度(payloadlength)——16位。它指明IPv6数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是64KB。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B下一个首部(nextheader)——8位。它相当于IPv4的协议字段或可选字段。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B跳数限制(hoplimit)——8位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减1。当跳数限制的值为零时,就要将此数据报丢弃。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B源地址——128位。是数据报的发送站的IP地址。041631版本位目的地址源地址下一个首部流标号12通信量类(128位)(128位)有效载荷长度跳数限制24IPv6的基本首部40B目的地址——128位。是数据报的接收站的IP地址。10.1.3IPv6的扩展首部1.扩展首部及下一个首部字段IPv6把原来IPv4首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。这样就大大提高了路由器的处理效率。六种扩展首部在RFC2460中定义了六种扩展首部:逐跳选项路由选择分片鉴别封装安全有效载荷目的站选项有效载荷有效载荷IPv6的扩展首部基本首部下一个首部=TCP/UDP基本首部下一个首部=路由选择路由选择首部下一个首部=分片分片首部下一个首部=TCP/UDPTCP/UDP首部和数据(TCP/UDP报文段)TCP/UDP首部和数据(TCP/UDP报文段)无扩展首部有扩展首部2.扩展首部举例IPv6把分片限制为由源站来完成。源站可以采用保证的最小MTU(1280字节),或者在发送数据前完成路径最大传送单元发现(PathMTUDiscovery),以确定沿着该路径到目的站的最小MTU。分片扩展首部的格式如下:0291631位下一个首部片偏移8标识符保留保留M扩展首部举例IPv6数据报的有效载荷长度为3000字节。下层的以太网的最大传送单元MTU是1500字节。分成三个数据报片,两个1400字节长,最后一个是200字节长。IPv6基本首部分片首部1第一个分片1400字节IPv6基本首部分片首部2第二个分片1400字节IPv6基本首部分片首部3第三个分片200字节扩展首部用隧道技术来传送长数据报当路径途中的路由器需要对数据报进行分片时,就创建一个全新的数据报,然后将这个新的数据报分片,并在各个数据报片中插入扩展首部和新的基本首部。路由器将每个数据报片发送给最终的目的站,而在目的站将收到的各个数据报片收集起来,组装成原来的数据报,再从中抽取出数据部分。10.1.4IPv6的地址空间1.地址的类型与地址空间IPv6数据报的目的地址可以是以下三种基本类型地址之一:(1)单播(unicast)单播就是传统的点对点通信。(2)多播(multicast)多播是一点对多点的通信。(3)任播(anycast)这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。结点与接口IPv6将实现IPv6的主机和路由器均称为结点。IPv6地址是分配给结点上面的接口。一个接口可以有多个单播地址。一个结点接口的单播地址可用来唯一地标志该结点。冒号十六进制记法(colonhexadecimalnotation)每个16位的值用十六进制值表示,各值之间用冒号分隔。68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF零压缩(zerocompression),即一连串连续的零可以为一对冒号所取代。FF05:0:0:0:0:0:0:B3可以写成:FF05::B3点分十进制记法的后缀0:0:0:0:0:0:128.10.2.1再使用零压缩即可得出:::128.10.2.1CIDR的斜线表示法仍然可用。60位的前缀12AB00000000CD3可记为:12AB:0000:0000:CD30:0000:0000:0000:0000/60或12AB::CD30:0:0:0:0/60或12AB:0:0:CD30::/602.地址空间的分配IPv6将128位地址空间分为两大部分。第一部分是可变长度的类型前缀,它定义了地址的目的。第二部分是地址的其余部分,其长度也是可变的。类型前缀地址的其他部分长度可变长度可变128位3.特殊地址未指明地址这是16字节的全0地址,可缩写为两个冒号“::”。这个地址只能为还没有配置到一个标准的IP地址的主机当作源地址使用。环回地址即0:0:0:0:0:0:0:1(记为::1)。基于IPv4的地址前缀为00000000保留一小部分地址作为与IPv4兼容的。本地链路单播地址前缀为00000000的地址前缀为00000000是保留一小部分地址与IPv4兼容的,这是因为必须要考虑到在比较长的时期IPv4和IPv6将会同时存在,而有的结点不支持IPv6。因此数据报在这两类结点之间转发时,就必须进行地址的转换。0000..................0000FFFFIPv4地址80位16位32位IPv4映射的IPv6地址4.全球单播地址的等级结构IPv6扩展了地址的分级概念,使用以下三个等级:(1)全球路由选择前缀,占48位。(2)子网标识符,占16位。(3)接口标识符,占64位。第一级第三级接口标识符(64位)子网标识符(16位)第二级全球路由选择前缀(48位)位04864127EUI-64IEEE定义了一个标准的64位全球唯一地址格式EUI-64。EUI-64前三个字节(24位)仍为公司标识符,但后面的扩展标识符是五个字节(40位)。较为复杂的是当需要将48位的以太网硬件地址转换为IPv6地址。0xFFFE把以太网地址转换为IPv6地址低24位cccccc1gcccccccccccccccc1111111111111110cccccc0gcccccccccccccccc位082447位08244063IEEE802地址接口标识符低24位I/G位G/L位G/L=110.1.5从IPv4向IPv6过渡向IPv6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容。IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。双协议栈(dualstack)是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有两个协议栈,一个IPv4和一个IPv6。用双协议栈进行从IPv4到IPv6的过渡双协议栈IPv6/IPv4IPv6IPv6IPv4网络ABCDEF流标号:X源地址:A目的地址:F……数据部分流标号:无源地址:A目的地址:F……数据部分双协议栈IPv6/IPv4…IPv6数据报IPv6数据报源地址:A目的地址:F……数据部分源地址:A目的地址:F……数据部分IPv4数据报IPv4网络IPv6IPv6ABCDEF…IPv4数据报IPv4数据报IPv4网络IPv6IPv6ABEF隧道源地址:B目的地址:EIPv6数据报双协议栈IPv6/IPv4双协议栈IPv6/IPv4双协议栈IPv6/IPv4双协议栈IPv6/IPv4IPv4网络流标号:X源地址:A目的地址:F……数据部分IPv6数据报流标号:X源地址:A目的地址:F……数据部分IPv6数据报源地址:B目的地址:EIPv6数据报使用隧道技术从IPv4到IPv6过渡10.1.6ICMPv6在新版本的网络层中,地址解析协议ARP和网际组管理协议IGMP协议的功能都已被合并到ICMPv6中。版本4中的网络层ICMPIPv4ARPIGMP版本6中的网络层ICMPv6IPv6ICMPv6报文的分类ICMPv6报文差错报文组成员关系报文邻站发现报文信息报文ND协议MLD协议IPv4与IPv6比对表类别IPv4地址IPv6地址地址位数32128地址格式表示点分十进制格式冒号分十六进制格式,带零压缩地址划分按5类Internet划分总的IP地址不适用,IPv6没有对应地址划分,而主要是按传输类别划分网络表示点分十进制格式的子网掩码或以前缀长度格式表示仅以前缀长度表示环路地址127.0.0.1::1未指明的地址0.0.0.0::(0:0:0:0:0:0:0:0)域名解析主机地址(A)资源记录主机地址(AAAA)资源记录逆向域名解析IN-ADDR.ARPA域IP6.