计算机网络学习四:网络层

1 基本概念

网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。

一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。 

在实现网络层功能时,需要解决的主要问题如下:

 (a) 寻址

数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。

 (b) 交换

规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。

(c) 路由算法

当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。

 (d) 连接服务

与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。

2 网络层提供的两种服务

(1) 虚电路服务

借助于电信网的成功经验,让网络负责可靠交付。用面向连接的通信方式,当两个计算机进行通信时,应当向建立连接(在分组交换中建立一条虚电路VC(Virtual Circuit)),以保证双方通信所需的一切网络资源,然后双方沿着已建立的虚电路发送分组。这样的分组的首部不需要填写完整的目的主机地址,而只需要填写这条虚电路的编号(一个不大的整数),因而减少了分组的开销。这种通信方式如果再使用可靠传输的网络协议,就可使所发的分组无差错按序到达终点,也不丢失、不重复。在通信结束后要释放建立的虚电路,图1(a)是网络提供虚电路服务的示意图,主机H1和H2之间交换的分组都必须在事先建立的虚电路上传送。

(2) 数据报服务

考虑到计算机网络的端系统是有智能的计算机,计算机有很强的差错处理能力(不像电信网的终端(电话机)非常简单,无智能和差错处理能力),因此因特网在设计上就采用了和电信网完全不同的思路。网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报)独立发送,与其前后的分组无关(不编号)。网络层不提供服务质量的承诺。所传送的分组可能出错、丢失、重复和失序,也不保证分组交付的时限。由于传输网络不提供端到端的可靠传输服务,这样的好处是路由器做的比较简单而且价格低廉,大大降低了网络的造价,运行方式灵活,能够适应多种应用。图1(b)是网络提供数据报服务的示意图,主机H1向H2发送的分组各自独立地选择路由,而且传送的过程中还可能丢失。

下表归纳了虚电路服务和数据报服务的主要区别。

3 网际协议IP

网际协议IP是TCP/IP体系中最主要的协议之一,也就是最重要的因特网标准协议之一,与IP协议配套使用的还有四个协议:地址解析协议ARP(Address Resolution Protocol)、逆地址解析协议RARP(Reverse Address Resolution Protocol)、网际控制报文协议ICMP(Internet Control Message Protocol)、网际组管理协议IGMP(Internet Group Management Protocol)。

3.1 虚拟互连网络

由于用户的需求是多种多样的,没有一种单一的网络能够适应所有用户的需求,所以市场上有很多种不同性能、不同网络协议的网络。面对不同的寻址方案、不同的最大分组长度、不同的网络接入机制、不同的超时控制、不同的差错恢复方法等等,网络的互连变得复杂。

TCP/IP体系在网络互连上采用的做法是在网络层(即IP层)采用了标准化协议,但相互连接的网络可以是异构的。由于参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成虚拟互连网络,所谓虚拟互连网络就是逻辑互连网络,也就是互连起来的各种物理网络的异构性本来是客观存在的,但是利用IP协议可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。

网络层使用中间设备路由器(router) 用来在互联网中进行路由选择。(物理层/数据链路层/网络层以上分别对应的中间设备是转发器(repeater)/网桥或桥接器(bridge)/网关(gateway))。如图2所示,主机H1先要查找自己的路由表,看目的主机是否就在本网络上,则不需要经过任何路由器而是直接交付,任务就完成。如不是,则必须把IP数据报发送给某个路由器 (R1),R1在查找了自己的路由表后,知道应当把数据报转发给R2进行间接交付,这样一直转发直到路由器R5直到自己是和H2在同一网络上,就把数据报直接交付给目的主机H2。图中协议栈中的数字1~5分别表示物理层、数据链路层、网络层、运输层和应用层。

3.2 分类的IP地址

有了虚拟互连网络的概念,再讨论在这样的虚拟网络上如何寻址。

3.2.1 IP地址及其表示方法

IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。IP地址现在由因特网名字与号码指派公司ICANN(Internet Corporation for Assigned Names and Numbers) 进行分配。

IP地址被划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个因特网范围内是唯一的。这种两级的IP地址可以记为IP地址 ::= {<网络号>, <主机号>}。

图3给出了各种IP地址的网络号字段和主机号字段,这里的A类、B类和C类地址都是单播地址(一对一通信),是最常用的。

由图3可以看出:

A类、B类和C类地址的网络号字段分别是1,2,和3字节长 ,而在网络号字段的最前面有1~3位的类别号,其数值分别规定为0,10和110。 A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长。 D类地址(前四位是1110)用于多播(一对多通信)。 E类地址(前四位是1111)保留为以后用。

此处指出,由于近年来已经广泛使用无分类IP地址进行路由选择,A类、B类和C类地址的区分已经成为历史。

从IP地址的结构来看,IP地址并不仅仅指明一个主机,同时指明了主机所连接到的网络。将IP地址分为三个类别主要是考虑到不同网络需要的主机数量不同,把IP地址划分为A类、B类和C类满足不同用户的要求。当某个单位申请到一个IP地址时,实际上是获得了具有同样网络号的一块地址。其中具体的各个主机号则由该单位自行分配,只要做到在该单位管辖范围内无重复的主机号即可。

3.2.2 常用的三种类别的IP地址

A类地址 的网络号字段占一个字节,只有7位可供使用(该字段的第一位已固定为0),最终可指派的网络号是126个(即2^7-2)。减2是去除了:(a) 网络号字段为全0的IP地址是个保留地址,表示“这个(this)”、“本网络”;(b) 网络号为127(即0111 1111)保留作为本地软件环回测试(loopback test) 本主机的进程之间通信使用。若主机发送一个目的地址为环回地址(如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。

A类地址的主机号占3字节,因此每一个A类网络中的最大主机数是2^24-2。此处减2去除的是:(a) 全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(如一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0),而全1表示“所有的(all)”,因此全1的主机号字段表示该网络上的所有主机。

IP地址空间共有 2^32 个地址。整个A类地址空间共有 2^31 个地址,占有整个IP地址空间的50%。

B类地址 的网络号字段有2字节,但前面两位(10)已经固定,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节的网络号字段成为全0或全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0。因此B类地址可指派的网络数为2\^14-1。B类地址的每一个网络上的最大主机数是2\^16-2,减2扣除全0和全1的主机号。整个B类地址空间共约有2^30个地址,占整个IP地址空间的25%。

C类地址 有3个字节的网络号字段,最前面的3位是(110),还有21位可以进行分配。C类网络地址192.0.0.0也是不指派的。可以指派的C类最小网络地址是192.0.1.0。因此C类地址可指派的网络总数是2\^21-1。每一个C类地址的最大主机数是2\^8-2。整个C类地址空间共约有2^29个地址,占整个IP地址的12.5%。

下表给出IP地址的指派范围如下:

下表给出了一般不使用的IP地址,这些地址只能在特定的情况下使用:

IP地址的重要特点:

每一个IP地址都由网络号和主机号两部分组成。从这个意义上说IP地址是一种分等级的地址结构。分两个等级的好处是:(a) IP地址管理机构在分配IP地址时只分配网络号(第一级),而剩下的主机号(第二级)则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。 (b) 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间以及查找路由表的时间。 实际上IP地址是标志一个主机(或路由器)和一条链路的接口。所以当一个主机拥有多个属于不同网络号的IP地址时,称为多归属主机(multihomed host),该主机同时连接到两个网络。由于一个路由器至少应当连接两个网络,因此一个路由器至少应当有两个不同的IP地址(两个路由器之间直接相连,连线两端的接口可以分配地址也可以不分配,为了节省IP地址资源,对于这种仅由一段连线构成的特殊“网络”,现在也常常不分配IP地址,通常把这样的特殊网络叫做无编号网络(unnumbered network)或无名网络(anonymous network))。 一个网络是指具有相同网络号net-id的主机的集合。因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,这些局域网都具有相同的网络号。具有不同网络号的局域网必须使用路由器进行互连。 在IP地址中,所有分配到网络号的网络都是平等的。

4 IP地址与硬件地址

从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。

IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。当IP数据报放入数据链路层的MAC帧中以后,整个IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。

4.1 地址解析协议ARP和逆地址解析协议RARP

ARP和RARP用于解决IP地址和物理地址之间的对应问题的两个协议。ARP协议找出IP地址对应的物理地址,RARP协议找出物理地址对弈的IP协议。

由于现在的DHCP协议(应用层)已经包含了RARP协议的功能,因此现在已经不再单独使用了。只要了解其作用是只知道自己硬件地址的主机能够通过RARP协议找出其IP地址。

由于主机的硬件地址可能会改变,而IP地址和硬件地址不存在简单的映射关系。此外,在一个网络上可能经常会有新的主机加入或者撤走一些主机。地址解析协议ARP解决IP地址和硬件地址的映射问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且该映射表还经常动态更新(新增或超时删除)。

每一个主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表。当主机A要想向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址,若有则在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。当查不到主机B的IP地址时,主机A就会自动运行ARP:

(a) ARP进程在本局域网上广播发送一个ARP请求分组,请求的主要内容是“我的IP地址时209.0.0.5,硬件地址是00-00-C0-15-AD-18。我想知道IP地址为209.0.0.6的主机的硬件地址。”;

(b) 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。

(c) 主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余的所有主机都不理睬这个ARP请求分组,ARP响应分组的主要内容是“我的IP地址是209.0.0.6,我的硬件地址是08-00-2B-00-EE-0A。”注意ARP请求分组是广播发送的,ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。同时主机A的这一地址映射也写入了主机B自己的ARP高速缓存中。

(d) 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间。凡是超过生存时间的项目就从高速缓存中删除掉。生存时间在某些主机硬件地址发生改变或者消失时十分有意义,可以及时更新或者删除映射地址。

注意ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。对于不在同一个局域网的主机,并不需要知道其硬件地址,只要先通过IP地址找到路由器(需要其硬件地址)进行转发即可。

既然有硬件地址,为什么我们要使用抽象的IP地址来寻找目的主机并调用ARP来找出硬件地址呢?主要是因为网络类型多种多样,其硬件地址格式也不同,要使得这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作。统一的IP地址解决了这个复杂的问题,不同主机之间的通信就像连接在同一个网络上一样。

5 IP数据包的格式

在TCP/IP标准中,各种数据报格式常常以32位(即4字节)为单位来描述。IP数据报的完整格式如图4所

5.1 IP数据报首部各字段的意义

5.1.1 IP数据报首部的固定部分中的各字段

(1) 版本

(a) 占4位,指IP协议的版本。

(b) 通信双方使用的IP协议的版本必须一致。

(c) IP协议版本号为4(即IPv4),IP协议版本号为6(即IPv6)。

(2) 首部长度

(a) 占4位,可表示的最大十进制数值是15。

(b) 这个字段所表示数的单位是32位字(即4字节),因此,当IP的首部长度为1111(即十进制的15)时,首部长度就达到最大值60个字节。

(c) 最常用的首部长度就是20个字节(即首部长度为0101),这时不使用任何选项,是固定首部的长度。

(d) 当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

(3) 区分服务

(a) 占8位,用来获得更好的服务。

(4) 总长度

(a) 占16位,指首部和数据之和的长度。

(b) 数据报的最大长度为2^16 -1 = 65535字节。

(c) 在IP层下面的每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个IP数据报封装成数据链路层的帧时,此数据报的总长度(即首部加上数据部分),一定不能超过下面的数据链路层的MTU值。

(d) 虽然使用尽可能长的数据报会使传输效率提高,但由于以太网的普遍应用,所以实际上使用的数据报长度很少有超过1500字节的。

(e) 为了不使IP数据报的传输效率降低,有关IP的标准文档规定,所有的主机和路由器必须能够处理的IP数据报的长度不得少于576字节。这个数值也就是最小的IP数据报的总长度。

(f) 当数据报长度超过网络所容许的最大传送单元MTU时,就必须把过长的数据报进行分片后才能在网络上传送(“片偏移”字段相关)。这时,数据报首部中的总长度不是指未分片前的数据报长度,而是指分片后的每一个分片的首部长度与数据长度的总和。

(5) 标识

(a) 占16位,指IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值付给标识字段。

(b) 但这个标识并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。

(c) 当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就会被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6) 标志

(a) 占3位,但目前只有两位有意义。

(b) 标志字段中的最低位记为MF(More Fragment)。

MF=1即表示后面“还有分片”的数据报。

MF=0即表示这已是若干数据报片中的最后一个。

(c) 标志字段中的中间位DF(Don’t Fragment),意思是“不能分片”,只有当DF=0时才允许分片。

(7) 片偏移

(a) 占13位,指出较长的分钟再分片后,某片在原分组中的相对位置。

(b) 也就是说,相对于用户数据字段的起点,该片从何处开始。

(c) 片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8字节(64位)的整数倍。

(d) 例子:一数据报的总长度为3820字节,其数据部分为3800字节长(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分成3个数据报片,其数据部分的长度分别分为1400,1400和1000字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。

(8) 生存时间

(a) 占8位,常用的英文缩写是TTL(Time To Live),表明数据报在网络中的寿命。

(b) 由发出数据报的源点设置这个字段。

(c) 其目的是为了防止无法交付的数据报无限制地在因特网中兜圈子,因而白白浪费网络资源。

(d) 随着技术的发展,TTL字段的功能改为“跳数限制”。路由器在转发数据报之前就把TTL值减1。若TTL值减少到零,就丢弃这个数据报,不再转发。

(e) 因此,现在TTL的单位不再是秒,而是跳数。

(f) TTL的意义是指明数据报在因特网中至多可经过多少个路由器。显然,数据报能在因特网中经过的路由器的最大数是255。

(g) 若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。

(9) 协议

(a) 占8位,指出此数据报携带的数据是使用何种协议,一遍使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(b) 常用的一些协议和相应协议的字段值。

(10) 首部检验和

(a) 占16位,只检验数据报的首部,但不包括数据部分。

(b) 这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。

(c) 不检验数据部分可减少计算的工作量。

(d) 为了进一步减少计算检验和的工作量,IP首部的检验和不采用复杂的CRC检验码而是采用以下算法:

1) 在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置零。

2) 用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段,

3) 接收方收到数据报后,将首部的所有16位字再使用反码算术运算相加一次。将得到的和取反码,即得出接收方检验和的计算结果。若首部未发生任何变化,则此结果必为0,于是就保留这个数据报,否则即认为出错,并将此数据报丢弃。

(11) 源地址

(a) 占32位。

(12) 目的地址

(a) 占32位。

5.1.2 IP数据报首部的可变部分

IP首部的可变部分就是一个选项字段。

(1) 可选字段(长度可变)

(a) 选项字段用来支持排错、测量以及安全等措施,内容很丰富。

(b) 此字段的长度可变,从1~40个字节不等,取决于所选择的项目。

(c) 某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符。

(2) 填充

最后用全0的填充字段补齐成为4字节的整数倍。

注:增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的IP版本IPv6就把IP数据报的首部长度做成固定的。

6 IP层转发分组的流程

现在的路由表是按主机所在的网络地址来制作路由表,每一行对应于一个网络,大大降低了路由表的规模。在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)。

虽然因特网所有的分组转发都是基于目的主机所在的网络,但是在大多数情况下都允许有这样的特例,即对特定的目的主机指明一个路由,这种路由称为特定主机路由,能够更方便地控制和测试网络。路由器还可采用默认路由(default route) 以减少路由表所占用的空间和搜索路由表所用的时间,这种转发方式在一个网络只有很少的对外连接时是很有用的。

注意到,在IP数据包的首部中没有什么地方可以用来指明“下一跳路由器的IP地址”,待转发的数据报是怎么找到下一跳路由器呢?当当路由器收到一个待转发的数据报,在从路由表得到下一跳路由器的IP地址后,把这个地址送交下层的网络接口软件,使用ARP将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一条路由器。

(1) 根据目的网络地址来确定下一跳路由器,这样做的结果如下:

(a) IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。

(b) 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

注:在互联网上转发分组时,是从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)。

(2) 特定主机路由

虽然因特网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指,明的一个路由这种路由叫做特定主机路由。

采用特定主机路由的好处:

(a) 可使网络管理人员能够更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

(b) 在对网络的连接或路由表进行排错时,指明到某一主机的特定路由就十分有用。

注:特定主机路由是要到某一台机器的路由。特定网络路由是你到某一个子网的路由。特定主机路由也可视为特定网络路由的一个特例,即Mask为255.255.255.255的特定网络路由。

(3) 默认路由

默认路由是一种特殊的静态路由,指的是当路由表中与包的目的地址之间没有匹配的表项时路由器能够做出的选择。

如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。

默认路由在某些时候非常有效,当存在末梢网络时,默认路由会大大简化路由器的配置,减轻管理员的工作负担,提高网络性能。

主机里的默认路由通常被称作默认网关,默认网关通常会是一个有过滤功能的设备,如防火墙和代理服务器。

默认路由和静态路由的命令格式一样,只是把目的地ip和子网掩码改成0.0.0.0和0.0.0.0,默认路由只能存在末梢网络中。

(4) 分组转发算法

注:当发送一连串的数据报时,上述的这种查找路由表、计算硬件地址、写入MAC帧的首部等过程,将不断地重复进行,造成了一定的开销。尽管如此,也不能在路由表中直接使用硬件地址,因为使用抽象的IP地址,就是为了屏蔽各种底层网络的复杂性而便于分析和研究问题,这样就不可避免地多了一些开销。

(a) 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。

(b) 若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就要执行(c)进行间接交付。

(c) 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(d)。

(d) 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(e)。

(e) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(f)。

(f) 报告转发分组出错。

本文转自:

https://blog.csdn.net/cainv89/article/details/51264587

猜你喜欢

转载自blog.csdn.net/u011857683/article/details/82828706