一、问题描述从一个网络设计者的角度来看网络层要解决的核心问题是如何把全世界各种异构的网络互连起来使任何两台主机之间都能够方便地通信同时还要兼顾地址资源的合理利用、路由的可扩展性、服务质量的差异化以及安全性围绕这一核心问题可以分解为以下几个子问题子问题1网络层应该向传输层提供什么样的服务是面向连接的虚电路服务还是无连接的数据报服务子问题2如何把全世界各种异构的网络互连起来使用什么中间设备虚拟互连网络的基本思想是什么子问题3如何为互联网上的每一台主机和路由器分配全球唯一的地址IPv4地址如何表示、分类和编址CIDR如何提高地址利用率子问题4IP数据报在互联网中是如何被转发的路由器如何查找转发表最长前缀匹配和二叉线索是什么子问题5IP数据报的格式是怎样的首部各字段有什么作用如何进行分片和重装子问题6IP地址与MAC地址有什么区别和联系地址解析协议ARP如何工作子问题7网络层如何报告差错和提供异常情况报告ICMP协议有哪些应用子问题8主机如何自动获取IP地址等配置信息DHCP协议如何工作子问题9IPv4地址耗尽后怎么办IPv6有哪些改进如何从IPv4向IPv6过渡子问题10互联网规模巨大如何设计可扩展的路由协议RIP、OSPF、BGP各有什么特点子问题11路由器的内部结构是怎样的如何实现高速分组转发子问题12如何支持一对多的通信IP多播如何工作子问题13如何使用公共互联网构建专用网VPN和NAT如何工作子问题14互联网只提供“尽最大努力交付”如何改进以支持实时多媒体业务DiffServ如何工作子问题15如何加快分组转发并支持流量工程MPLS如何工作二、方案说明2.1 针对子问题1网络层提供的两种服务争论网络层应该向传输层提供怎样的服务面向连接还是无连接在计算机通信中可靠交付应当由谁来负责是网络还是端系统一种观点让网络负责可靠交付虚电路服务计算机网络模仿电信网络使用面向连接的通信方式。通信之前先建立虚电路VC即连接以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议可使所发送的分组无差错按序到达终点不丢失、不重复。虚电路只是一条逻辑上的连接分组都沿着这条逻辑连接按照存储转发方式传送并不是真正建立了一条物理连接。另一种观点网络提供数据报服务互联网采用的设计思路网络层要设计得尽量简单向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组即IP数据报独立发送与其前后的分组无关不进行编号。网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序也不保证分组传送的时限。由主机中的传输层负责可靠的通信。虚电路服务与数据报服务的对比对比方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用每个分组使用短的虚电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当节点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组一些路由可能会发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责也可以由用户主机负责由用户主机负责2.2 针对子问题2虚拟互连网络实现网络互连、互通时需要解决许多问题寻址方案、最大分组长度、网络接入机制、超时控制、差错恢复方法、状态报告方法、路由技术、用户接入控制、面向连接/无连接服务、管理与控制方式等。使用中间设备进行互连协议栈层次中间设备传输层及以上网关网络层路由器数据链路层交换机物理层转发器使用转发器或交换机不称为网络互连转发器或交换机仅把一个网络扩大了仍然是一个网络。网络互连使用路由器路由器是实现网络互连的关键设备。互联网Internet就是一个覆盖全球的IP网就好像在一个单个网络上通信一样。分组传输路径源主机H₁发送IP数据报给目的主机H₂中间经过多个路由器每一跳称为“跳”下一跳表示“下一跳的终点”。直接交付和间接交付是分组传输的两种方式。2.3 针对子问题3IP地址及其编址方法IP地址及其表示方法由互联网名字和数字分配机构ICANN为互联网上的每台主机或路由器的每个接口分配一个在全世界唯一的IP地址。IP地址32位二进制代码分为每8位为一组将每8位的二进制数转换为十进制数采用点分十进制记法。IP地址采用2级结构网络号和主机号。网络号标志主机或路由器所连接到的网络在整个互联网范围内必须是唯一的主机号用来标志主机或路由器在所连接的网络中必须是唯一的。分类的IP地址类别前缀网络号位数主机号位数A类地址08位24位B类地址1016位16位C类地址11024位8位D类地址1110—多播地址E类地址1111—保留为今后使用一般不使用的特殊的IP地址网络号主机号源地址使用目的地址使用代表的意思00可以不可在本网络上的本主机0X可以不可在本网络上主机号为X的主机全1全1不可可以只在本网络上进行广播Y全1不可可以对网络号为Y的网络上的所有主机进行广播127非全0或全1的任何数可以可以仅用于本机软件环回测试分类的IP地址的优点和缺点管理简单使用方便转发分组迅速。设计上不合理A类、B类网络地址空间太大而C类网络地址空间又太小导致地址资源浪费很大。无分类编址CIDRCIDRClassless Inter-Domain Routing无分类域间路由。消除了传统的A类、B类和C类地址的概念可以更加有效地分配IPv4的地址空间但无法解决IP地址枯竭的问题。要点网络前缀、地址块、地址掩码。CIDR记法斜线记法 a.b.c.d/n二进制IP地址的前n位是网络前缀。地址块CIDR把网络前缀都相同的所有连续的IP地址组成一个CIDR地址块。地址掩码又称为子网掩码由一连串1和接着的一连串0组成1的个数就是网络前缀的长度。网络地址 (二进制的IP地址) AND (地址掩码)。常用的CIDR地址块/13到/27等不同前缀长度对应的地址块和包含的地址数。不能接入互联网的地址前缀最小地址最大地址名称10.0.0.0/810.0.0.010.255.255.255私用地址172.16.0.0/12172.16.0.0172.31.255.255私用地址192.168.0.0/16192.168.0.0192.168.255.255私用地址169.254.0.0/16169.254.0.0169.254.255.255链路本地地址路由聚合一个大的CIDR地址块中往往包含很多小地址块所以在路由器的转发表中就可以利用一个较大的CIDR地址块来代替许多较小的地址块。这种方法称为路由聚合它使得转发表中只用一个项目就可以表示原来传统分类地址的很多个路由项目因而大大压缩了转发表所占的空间减少了查找转发表所需的时间。IP地址的特点每个IP地址都由网络前缀和主机号两部分组成。IP地址是标志一台主机或路由器连接到网络的接口。转发器或交换机连接起来的若干个局域网仍为一个网络。在IP地址中所有分配到网络前缀的网络都是平等的。2.4 针对子问题4IP层转发分组的过程基于终点的转发分组在互联网中是逐跳转发的。基于终点的转发基于分组首部中的目的地址传送和转发。最长前缀匹配使用CIDR时在查找转发表时可能会得到不止一个匹配结果。最长前缀匹配原则选择前缀最长的一个作为匹配的前缀。网络前缀越长其地址块就越小因而路由就越具体。使用最长前缀匹配可以尽可能利用路由聚合减少路由表的项目。转发表中的2种特殊的路由主机路由又叫做特定主机路由。是对特定目的主机的IP地址专门指明的一个路由。网络前缀就是a.b.c.d/32。默认路由对于任何目的地址没有其他可匹配的路由项目时匹配默认路由。用特殊前缀0.0.0.0/0表示。查找转发表的简单归纳提取目的地址IP地址D → 检查转发表的第一行 → 子网掩码与D按位AND运算 → 与本行前缀匹配→ 是根据下一跳转发分组否检查转发表的下一行 → 转发表还有下一行→ 是继续检查否丢弃分组。使用二叉线索查找转发表二叉线索是一种特殊结构的树可以快速在转发表中找到匹配的叶节点。从二叉线索的根节点自顶向下的深度最多有32层每一层对应于IP地址中的一位。为简化二叉线索的结构可以用唯一前缀来构造二叉线索。2.5 针对子问题5IP数据报的格式IP数据报由首部和数据两部分组成。首部的前一部分是固定长度共20字节是所有IP数据报必须具有的。首部的可变部分就是一个选项字段用来支持排错、测量以及安全等措施内容很丰富。长度可变从1个字节到40个字节不等取决于所选择的项目。IP数据报首部的固定部分中的各字段版本占4位指IP协议的版本。目前的IP协议版本号为4即IPv4。首部长度占4位可表示的最大数值是15个单位一个单位为4字节因此IP的首部长度的最大值是60字节。区分服务占8位用来获得更好的服务。只有在使用区分服务DiffServ时这个字段才起作用。总长度占16位指首部和数据之和的长度单位为字节因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。标识占16位它是一个计数器用来产生IP数据报的标识。标志占3位目前只有前两位有意义。标志字段的最低位是MFMore FragmentMF1表示后面还有分片MF0表示最后一个分片。标志字段中间的一位是DFDon’t Fragment只有当DF0时才允许分片。片偏移占13位指出较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。生存时间占8位记为TTLTime To Live指示数据报在网络中可通过的路由器数的最大值。协议占8位指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给那个处理过程。常用协议字段值ICMP1IGMP2IP4TCP6UDP17IPv641OSPF89。首部校验和占16位只校验数据报的首部不校验数据部分。这里不采用CRC校验码而采用简单的计算方法。数据报每经过一个路由器路由器都要重新计算一下首部校验和。源地址和目的地址都各占32位。IP数据报的分片数据报长度超过输出链路的MTU时需要进行分片处理。目的主机要把分片的数据报重新组装成为原来的数据报。到达目的主机之前的所有路由器都不允许组装数据报片。2.6 针对子问题6IP地址与MAC地址、地址解析协议ARPIP地址与MAC地址的区别IP地址虚拟地址、软件地址、逻辑地址。网络层和以上各层使用。放在IP数据报的首部。MAC地址固化在网卡上的ROM中。硬件地址、物理地址。数据链路层使用。放在MAC帧的首部。地址解析协议ARP的作用已经知道了一个机器主机或路由器的IP地址如何找出其相应的MAC地址要点1ARP高速缓存存放IP地址到MAC地址的映射表。要点2ARP工作当主机A欲向本局域网上的某个主机B发送IP数据报时在其ARP高速缓存查找主机B的IP地址。找到则取出MAC地址写入MAC帧的目的地址发送该MAC帧找不到则自动运行ARP找出主机B的MAC地址更新ARP高速缓存。ARP请求和响应主机A本局域网上广播发送ARP请求分组主机B向A单播发送ARP响应分组。为进一步减少ARP通信量主机A在发送其ARP请求分组时就将自己的IP地址到MAC地址的映射写入ARP请求分组。ARP高速缓存中的生存时间超过生存时间的项目都从高速缓存中删除以保证信息的新鲜性。使用ARP的四种典型情况主机H₁要和在同一局域网中的H₂通信时主机H₁可以用ARP找到在同一局域网上主机H₂的MAC地址。若主机H₁要和不在同一局域网上的主机H₃通信那么H₁并不需要知道H₃的MAC地址。H₁先把数据报发送给路由器R₁再由路由器R₁去完成数据报的转发。为此主机H₁需要用ARP找到路由器R₁的MAC地址。R₁也必须用ARP找到路由器R₂的MAC地址再将数据报转发给R₂。最后R₂使用ARP找到主机H₃的MAC地址把数据报交付同一个局域网上的主机H₃。为什么我们不直接使用MAC地址进行通信全世界存在着多种网络它们可能使用不同的MAC地址。异构网络互相通信就必须进行非常复杂的MAC地址转换工作。对分布在全世界的以太网MAC地址进行寻址是极其困难的。IP编址把这个复杂问题解决了。2.7 针对子问题7互联网控制报文协议ICMPICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是互联网的标准协议。但ICMP不是高层协议而是网络层的协议。ICMP报文的种类差错报告报文询问报文。几种常用的ICMP报文类型ICMP报文种类类型的值ICMP报文的类型差错报告报文3终点不可达差错报告报文11时间超过差错报告报文12参数问题差错报告报文5重定向询问报文8或0回送请求或回答询问报文13或14时间戳请求或回答ICMP的差错报告终点不可达、时间超过、参数问题、重定向。不应发送ICMP差错报告报文的几种情况对ICMP差错报告报文不再发送ICMP差错报告报文对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文对具有多播地址的数据报都不发送ICMP差错报告报文对具有特殊地址的数据报不发送ICMP差错报告报文。ICMP询问报文回送请求与回送回答、时间戳请求与时间戳回答。ICMP的应用举例PING用来测试两个主机之间的连通性。使用了ICMP回送请求与回送回答报文。是应用层直接使用网络层ICMP的例子没有通过传输层的TCP或UDP。Traceroute用来跟踪一个分组从源点到终点的路径。利用IP数据报中的TTL字段、ICMP时间超过差错报告报文和ICMP终点不可达差错报告报文实现对从源点到终点的路径的跟踪。2.8 针对子问题8动态主机配置协议DHCP连接到互联网的计算机都需要正确配置IP地址、子网掩码、默认路由器的IP地址、域名服务器的IP地址。DHCP提供了即插即用连网的机制允许连网的主机自动获取IP地址等信息而不用手工配置。DHCP工作过程广播发送DHCP发现报文来发现在本网络上的DHCP服务器。DHCP发现报文IP数据报的目的IP地址是全1源IP地址为全0。只有DHCP服务器才对DHCP发现报文进行回答。DHCP服务器从地址池中取一个地址分配给A并发送DHCP提供报文。在提供报文中DHCP服务器还必须给出IP地址的租用期。本网络上可能有不止一个DHCP服务器。客户必须选择其中的一个并发送广播发送DHCP请求报文以确认所分配的IP地址以及其他配置信息。提供IP地址的DHCP服务器发送DHCP确认报文以确认分配并完成IP地址的租约。从这时起主机A就可以使用这个IP地址了。当租用期过了一半客户需要发送请求报文DHCPREQUEST要求更新租用期。DHCP服务器若同意则发回确认报文DHCPACK。DHCP客户将得到了新的租用期并重新设置计时器。反之若服务器不同意则发回否认报文DHCPNACK。这时DHCP客户必须停止使用原来的IP地址。若DHCP服务器不响应客户端的更新租用期请求则DHCP客户在租用期过了87.5%时要重新发送请求报文DHCPREQUEST。若过了租用期还得不到DHCP服务器的响应则停止使用原来的IP地址。DHCP客户可以随时提前终止服务器所提供的租用期这时只需向DHCP服务器发送释放报文DHCPRELEASE。DHCP中继代理DHCP中继代理收到主机广播发送的发现报文后就以单播方式向DHCP服务器转发此报文并等待其回答。收到DHCP服务器回答的提供报文后DHCP中继代理再将其发回给主机。2.9 针对子问题9IPv6IPv4地址耗尽问题到2011年2月IANA IPv4的32位地址已经耗尽。根本解决措施采用具有更大地址空间的新版本的IP即IPv6。IPv6的地址IPv6拥有更大的地址空间其地址位数从IPv4的32位增大到4倍即增大到128位。使用冒号十六进制记法16位的值用十六进制值表示各值之间用冒号分隔。零压缩方法可以把任何一个十六进制组中最前面的1个0或2~3个连续的0省略。对于冒号隔开的连续2个或2个以上的0可压缩为一对冒号。任何地址对一连串连续0的零压缩只能使用一次。IPv6地址的三种基本类型单播、多播、任播。全球单播地址GUA使用得最多的一类单播地址占IPv6地址总数的1/8。GUA的地址前缀是2000::/3。唯一本地单播地址ULA相当于IPv4的私用地址不能接入到互联网。ULA的前缀为fc00::/7。链路本地单播地址LLA相当于IPv4的169.254.0.0/16。LLA的前缀为fe80::/10。嵌入式IPv4的IPv6地址在IPv6地址中嵌入了32位IPv4地址用于从IPv4向IPv6过渡。未指明地址128位全0地址可缩写为两个冒号“::”。不能用作目的地址只能作为源地址使用。环回地址IPv6的环回地址是0:0:0:0:0:0:0:1可缩写为::1。IPv6的基本首部IPv6仍支持无连接的传送。将协议数据单元PDU称为分组。IPv6在首部上的最大的变化就是使用固定长度的基本首部。由基本首部和有效载荷两大部分组成。有效载荷也称为净负荷。有效载荷包括零个或多个扩展首部其后面是数据部分。基本首部固定的40字节。首部字段数只有8个。IPv6对首部的主要更改取消首部长度字段取消了服务类型字段改用通信量类字段取消了总长度字段改用有效载荷长度字段取消了检验和字段把TTL字段改称为跳数限制字段取消了协议字段改用下一个首部字段取消了选项字段而用扩展首部来实现选项功能取消了与分片有关的字段。IPv6的扩展首部已定义了6种IPv6扩展首部当使用多个扩展首部时一般应按下面的先后顺序出现逐跳选项、目的站选项、路由、分片、鉴别、封装安全有效载荷、目的站选项。ICMPv6IPv6也需要使用ICMP来反馈一些差错信息。新的版本称为ICMPv6。ICMPv6包含了ARP和IGMP协议的功能。ICMPv6报文利用报文来报告差错获取信息探测邻站或管理多播通信。IPv6地址的配置人工配置、自动配置、动态配置。邻居发现协议NDP在IPv6地址的自动配置中起着非常重要的作用。无状态地址自动配置SLAAC用于自动配置主机的IPv6地址。SLAAC通常生成两种类型的地址链路本地地址、全球单播地址。IPv6的动态主机配置协议DHCPv6有状态的DHCPv6、无状态的DHCPv6。从IPv4向IPv6过渡双协议栈双协议栈的主机在和IPv6主机通信时采用IPv6地址而和IPv4主机通信时则采用IPv4地址。隧道技术在IPv4网络和IPv6网络之间建立隧道。协议转换技术在IPv4网络和IPv6网络之间部署一台协议转换器在IPv4数据报与IPv6数据报之间的转换包括首部转换和地址转换。2.10 针对子问题10互联网的路由协议有关路由协议的几个基本概念理想的路由算法正确完整、计算简单、自适应、公平、稳定、最佳。关于“最佳路由”不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。路由算法分类静态路由策略、动态路由策略。互联网采用的路由协议主要是自适应的即动态的、分布式路由协议。分层次的路由协议把整个互联网划分为许多较小的自治系统AS采用分层次的路由协议内部网关协议IGP例如RIP和OSPF外部网关协议EGP目前是BGP-4。路由信息协议RIP是一种分布式的、基于距离向量的路由协议。互联网的标准协议。最大优点简单。RIP“距离”的定义路由器到直接连接的网络的距离1。路由器到非直接连接的网络的距离所经过的路由器数1。RIP协议中的“距离”也称为“跳数”每经过一个路由器跳数就加1。好路由“距离短”的路由。最佳路由“距离最短”的路由。一条路径最多只能包含15个网络。“距离”的最大值为16时即相当于不可达。RIP协议的三个特点仅和相邻路由器交换信息交换的信息是当前本路由器所知道的全部信息即自己的路由表按固定时间间隔交换路由信息。RIP的路由算法距离向量算法。坏消息传播得慢RIP协议缺点好消息传播得快坏消息传播得慢。RIP协议的优缺点优点实现简单开销较小。缺点网络规模有限交换的路由信息为完整路由表开销较大坏消息传播得慢收敛时间过长。开放最短路径优先协议OSPF开放最短路径优先OSPF。“开放”表明协议是公开的。“最短路径优先”是指使用了Dijkstra最短路径优先算法SPF。是一种链路状态路由选择协议。链路状态通告LSA“链路状态”是指与路由器直接相连的网络或链路的信息。“通告”表明这种链路状态是要通告其他路由器的。链路状态数据库所有路由器都需要维护一个链路状态数据库全网拓扑结构图。OSPF通过泛洪机制来传播LSA。OSPF的5种分组类型问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组、链路状态确认分组。OSPF的层次结构划分区域后用洪泛机制交换链路状态更新分组的范围就缩小了。主干区域标识符0.0.0.0作用用来连通其他下层区域。区域边界路由器、主干路由器、自治系统边界路由器。OSPF的要点OSPF是一种分布式链路状态路由协议。链路代价可以由网络管理人员设定。使用可靠洪泛机制向自治系统内所有路由器通告链路状态信息。OSPF没有“坏消息传播得慢”的问题。采用分层路由结构可使OSPF协议能够用于规模很大的自治系统中。边界网关协议BGP边界网关协议是不同自治系统的路由器之间交换路由信息的协议。只能是力求选择出一条能够到达目的网络且比较好的路由而并非要计算出一条最佳路由。采用了路径向量路由协议。路由通告中要指出路径经过的节点序列。BGP路由一个AS至少要有一台边界路由器和相邻AS的边界路由器直接相连这样AS之间才能利用协议BGP交换可达性路由信息。当两台边界路由器进行通信时必须先建立TCP连接。eBGP和iBGPeBGP是在不同AS的两个对等端之间的BGP连接而iBGP是同一AS的两个对等端之间的BGP连接。IGP、iBGP和eBGP的关系每一个AS都必须运行本AS选择的内部网关协议IGP例如OSPF或RIP。而协议BGP是在iBGP连接和eBGP连接之上运行的。BGP路由信息BGP路由[前缀BGP属性][前缀AS-PATHNEXT-HOP]。三种不同的自治系统AS末梢AS、多归属AS、穿越AS、对等AS。BGP的路由选择选择本地偏好值最高的路由选择具有AS跳数最少的路由使用热土豆路由算法路由器BGP ID数值最小的路由。BGP-4的四种报文OPEN打开、UPDATE更新、KEEPALIVE保活、NOTIFICATION通知。2.11 针对子问题11路由器的构成路由器的结构路由器转发主机之间传送的分组时分组所经过的路由器都工作在协议栈的下三层。但是当路由器之间使用RIP或BGP路由协议交换路由信息时这两个协议都是工作在应用层。这时整个5层协议栈的功能都会使用到而不只使用协议栈的下三层。路由器的结构包括路由选择、管理控制平面软件分组转发数据平面硬件。“转发”和“路由”的区别转发根据转发表将用户的IP数据报从合适的端口转发出去仅涉及到一个路由器转发表是从路由表得出的转发表的结构应当使查找过程最优化转发表则可用特殊的硬件来实现。路由涉及到很多路由器按照路由算法根据网络拓扑的变化情况动态地改变所选择的路由并由此构造出整个的路由表路由表则需要对网络拓扑变化的计算最优化路由表总是用软件实现的。输入端口对线路上收到的分组的处理物理层处理、数据链路层处理、网络层处理、分组排队。从输入端口接收比特剥去帧的首部和尾部若收到的分组是交换路由信息的分组送交路由处理机。若收到的是数据分组按目的地址查找转发表根据得出的结果经交换结构到达合适的输出端口。若某分组正在查找转发表该分组排队等待。输出端口将交换结构传送来的分组发送到线路物理层处理、数据链路层处理、网络层处理、分组排队、缓存管理。当交换结构传送的分组的速率超过输出链路的发送速率时来不及发送的分组就必须缓存在队列中。输入端口和输出端口都可能会出现排队分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理。网络拥塞导致的分组丢失就是发生在路由器中的输入或输出队列产生溢出的时候。交换结构常用交换方法有三种通过存储器、通过总线、通过纵横交换结构。2.12 针对子问题12IP多播IP多播的基本概念多播即一对多的通信。以前曾译为组播。有许多应用需要由一个源点发送到多个终点例如实时信息的交付、软件更新、交互式会议等。与单播相比在一对多的通信中多播可大大节约网络资源。在互联网上进行多播就叫做IP多播。互联网范围的多播要靠路由器来实现。能够运行多播协议的路由器称为多播路由器。在IPv4网络中用一个D类地址标志一个多播组。多播数据报和一般的IP数据报的区别就是它使用D类IP地址作为目的地址。对多播数据报不产生ICMP差错报文。IPv4的多播地址的范围是224.0.0.0至239.255.255.255。在局域网上进行硬件多播IANA拥有的以太网地址块的高24位为00-00-5E。IPv4 D类IP地址与以太网多播地址的映射关系。IPv6多播地址映射到以太网多播地址的方法。组管理协议和多播路由协议IP多播需要两种协议互联网组管理协议IGMP、多播路由协议。IGMP使多播路由器知道本局域网的多播组成员信息。多播路由协议使多播路由器协同工作把多播数据报用最小代价传送给多播组的所有组成员。多播路由协议比单播路由协议更为复杂。转发多播数据报时使用三种方法洪泛与剪除、隧道技术、基于核心的发现技术。一些建议使用的多播路由协议DVMRP、CBT、MOSPF、PIM-SM、PIM-DM。2.13 针对子问题13虚拟专用网VPN和网络地址转换NAT虚拟专用网VPN许多机构需要使用的专用网。这是因为一个机构内的主机之间需要经常互相交换本机构的内部信息但这些内部信息不宜对外公开。可以有两种方法实现专用网租用电信公司的通信线路或本机构出资建造专用网利用现有的公用互联网作为本机构各专用网之间的通信载体但要采用一些必要的措施用这样的方法就构成了虚拟专用网VPN。在专用网内部需使用私用地址。IPv4的三个私用地址块10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。用隧道技术实现虚拟专用网。网络地址转换NAT为了让更多的IPv4主机能够接入到互联网目前IPv4网络广泛使用网络地址转换NAT技术。实际普遍使用的其实是网络地址端口转换NAPT但大家仍简称其为NAT。这种方法是用在专用网连接到互联网的地方安装一个NAT路由器。这个NAT路由器有一个有效的全球地址。所有在专用网使用本地地址的主机在和外界通信时只需在NAT路由器上将其本地地址转换为全球地址即可。NAT路由器与普通路由器不同普通路由器在转发IP数据报时对于源地址和目的地址都是不改变的。但NAT路由器在转发IP数据报时一定要更换其IP地址。普通路由器在转发分组时是工作在网络层的。但NAPT路由器还要查看和转换传输层的端口号这种操作已跨越到了传输层。2.14 针对子问题14改进“尽最大努力交付”的服务使互联网提供服务质量使互联网更好地传送多媒体信息的另一种方法是改变互联网平等对待所有分组的思想使得对时延有较严格要求的实时音频/视频分组能够从网络得到更好的服务质量QoS。服务质量QoS服务质量可用若干基本性能指标来描述包括可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测和改正时间等。QoS机制分析需要增加一个机制给不同性质的分组打上不同的标记。需要增加一种分类机制。路由器应能对数据流进行通信量的管制。应在路由器中再增加一种调度机制。需要另一种增加呼叫接纳机制。调度和管制机制调度指排队的规则。默认排队规则先进先出FIFO。FIFO的最大缺点不能区分时间敏感分组和一般数据分组不公平。在先进先出的基础上增加按优先级排队就能使优先级高的分组优先得到服务。公平排队FQ轮流服务队列使每个队列一次只能发送一个分组。加权公平排队WFQ增加了队列权重使高优先级队列中的分组有更多的机会得到服务。管制机制根据以下三个方面进行管制平均速率、峰值速率、突发长度。漏桶管制器在任何时间间隔t内准许进入网络的分组数rtb。漏桶机制与加权公平排队相结合可以控制队列中的最大时延。综合服务与资源预留协议综合服务IntServ旨在提供端到端的网络服务质量QoS保障。资源预留协议RSVP是实现IntServ的一种协议用于在网络中为数据流进行资源预留。IntServ和RSVP面临的挑战需要在每台路由器上维护每个流的状态信息RSVP协议需要在网络中为每个流进行资源预留这导致了额外的信令开销和资源消耗IntServ和RSVP要求网络路径上的所有设备都支持这些协议这违反了互联网的端到端原则。区分服务DiffServ由于综合服务IntServ和资源预留协议RSVP都较复杂很难在大规模的网络中实现因此IETF提出了新的策略即区分服务DiffServ。区分服务DiffServ的要点力图不改变网络的基础结构但在路由器中增加区分服务的功能。区分服务遵循“边缘标记核心转发”的原则。每跳行为PHB转发分组时体现服务水平。DiffServ定义的两种PHB加速转发PHBEF PHB、确保转发PHBAF PHB。2.15 针对子问题15多协议标签交换MPLSMPLS的工作原理MPLS是面向连接的所有的分组都是沿着已建立的路径来传输。每个分组携带一个具有整数值的标签。标签交换路由器用标签值检索标签交换表实现分组的快速转发。MPLS处在网络层和数据链路层之间常称为第2.5层协议。MPLS的特点可以在多种上层传输协议环境中使用虽然是一种面向连接的技术但它能够在无连接的环境中工作支持流量工程平衡网络负载有效地支持虚拟专用网VPN。MPLS基本工作方式在每一个IP分组前面压入标签然后路由器根据标签值来转发分组并进行标签交换。转发等价类FEC在MPLS网络中那些被分配了相同标签并沿着相同路径并按同样方式转发的分组的集合。MPLS域与标签交换路由器LSR。标签信息库LIB和标签转发信息库LFIB。MPLS标签的压入、交换和弹出。MPLS首部的格式标签值占20位。可以同时容纳高达2²⁰个流。流量类TC占3位。TC57用于实时流量TC24用于关键业务数据TC0~1用于普通数据流量。栈S占1位。在使用多个标签构成“标签栈”时使用。S0表示后面还有更多标签。S1表示这是标签栈中的最后一个标签。生存时间TTL占8位用来防止MPLS分组在MPLS域中兜圈子。MPLS的应用场合MPLS目前的主要优势体现在流量工程、故障恢复、VPN隔离等网络管理和服务功能上而非简单的转发速率。流量工程TE利用MPLS技术对网络中的数据流进行路径规划和资源分配以优化流量分布、避开网络拥塞、提升链路利用率和保障网络服务质量QoS的整体机制和技术。实现快速故障切换MPLS还可以实现快速故障切换即快速重路由FRR。虚拟专用网VPNMPLS能够为用户非常方便地构建虚拟专用网VPN。三、总结本章围绕“如何把全世界各种异构的网络互连起来使任何两台主机之间都能够方便地通信”这一核心问题从网络设计者的角度逐层展开回答了十五个关键子问题网络层提供的两种服务虚电路服务与数据报服务。互联网采用数据报服务网络层设计得尽量简单由主机中的传输层负责可靠通信。虚拟互连网络使用路由器进行网络互连互联网就是一个覆盖全球的IP网就好像在一个单个网络上通信一样。IP地址及其编址方法IPv4地址采用2级结构分类的IP地址分为A、B、C、D、E五类无分类编址CIDR消除了传统的分类概念可以更加有效地分配IPv4的地址空间路由聚合大大压缩了转发表所占的空间。IP层转发分组的过程基于终点的转发最长前缀匹配主机路由和默认路由查找转发表的简单归纳使用二叉线索查找转发表。IP数据报的格式首部的前一部分是固定长度共20字节首部的可变部分是一个选项字段各字段的作用包括版本、首部长度、区分服务、总长度、标识、标志、片偏移、生存时间、协议、首部校验和、源地址和目的地址。IP地址与MAC地址、地址解析协议ARPIP地址是逻辑地址MAC地址是硬件地址ARP用于将IP地址解析为MAC地址ARP高速缓存存放IP地址到MAC地址的映射表。互联网控制报文协议ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告ICMP报文的种类包括差错报告报文和询问报文ICMP的应用举例包括PING和Traceroute。动态主机配置协议DHCP提供了即插即用连网的机制允许连网的主机自动获取IP地址等信息DHCP工作过程包括发现、提供、请求、确认等步骤DHCP中继代理用于跨网络转发DHCP报文。IPv6IPv6拥有更大的地址空间使用冒号十六进制记法和零压缩方法IPv6地址的三种基本类型单播、多播、任播IPv6的基本首部固定为40字节IPv6的扩展首部用于实现选项功能ICMPv6包含了ARP和IGMP协议的功能IPv6地址的配置包括人工配置、自动配置、动态配置从IPv4向IPv6过渡的基本方法包括双协议栈、隧道技术、协议转换技术。互联网的路由协议分层次的路由协议内部网关协议IGPRIP、OSPF和外部网关协议EGPBGP-4RIP是一种分布式的、基于距离向量的路由协议OSPF是一种链路状态路由选择协议采用分层路由结构BGP是不同自治系统的路由器之间交换路由信息的协议采用了路径向量路由协议。路由器的构成路由器的结构包括路由选择、管理控制平面软件和分组转发数据平面硬件输入端口和输出端口都可能会出现排队交换结构常用交换方法有三种通过存储器、通过总线、通过纵横交换结构。IP多播多播即一对多的通信可大大节约网络资源在局域网上进行硬件多播组管理协议IGMP和多播路由协议多播路由协议比单播路由协议更为复杂转发多播数据报时使用三种方法洪泛与剪除、隧道技术、基于核心的发现技术。虚拟专用网VPN和网络地址转换NATVPN利用现有的公用互联网作为本机构各专用网之间的通信载体NAT路由器在转发IP数据报时更换其IP地址NAPT还要查看和转换传输层的端口号。改进“尽最大努力交付”的服务使互联网提供服务质量QoS调度和管制机制综合服务与资源预留协议区分服务DiffServDiffServ定义的两种PHB加速转发PHB和确保转发PHB。多协议标签交换MPLSMPLS是面向连接的每个分组携带一个具有整数值的标签MPLS处在网络层和数据链路层之间常称为第2.5层协议MPLS目前的主要优势体现在流量工程、故障恢复、VPN隔离等网络管理和服务功能上。通过本章的学习我们理解了网络层在计算机网络中的核心作用掌握了IP协议、IP地址编址、路由协议、路由器构成、IP多播、VPN和NAT、服务质量、MPLS等核心知识为后续学习传输层、应用层等高层协议奠定了基础。