4-01 网络层向上提供的服务有哪两种?试比较其优缺点?
虚电路服务和数据报服务。
虚电路
优点:可靠,按序,减销
1.可以提供可靠的通信服务
2.所有分组可以按序到达,无重复、无丢失。
3.因为数据是沿着建立的虚电路进行传输的,因此分组的首部不需要携带完整的目的主机 的地址,只需要填写这条虚电路的编号(并不大的整数),因此减少了分组的开销。
缺点:慢,贵,坏
1.每次通信需要建立连接(逻辑连接而非物理连接),数据传输启动慢。
2.因为网络层要保证可靠传输,所以使用虚电路服务的网络节点交换机也比较昂贵和复 杂。
3.一故整无:同一条虚电路的分组只能按照同一路由进行转发,在这条通路上,只要有一个结点出现故障,整条通路均无法工作。
数据报
优点:灵活,简单
1.每个分组可独立查找转发表进行转发,比较灵活
2.由于传输网络不提供端到端的可靠传输服务,这就使得网络中的路由器比较简单,且价 格较便宜,这就使得网络造价大大降低。
缺点:不可靠,不按序,主负大,
1.不能提供可靠的通信服务
2.分组不能有序到达,可能出现分组的重复或者丢失
3.因为网络层不提供可靠通信,因此由主机来负责端到端的可靠性,包括差错处理和流量 控制,因此主机的处理负担比较大。
4-02 网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?
实际意义:
可以使许多异构网络在逻辑层面上看起来是同一种网络,这样的好处是,当IP网上主机进行通信时,就好像在一个单个网络上通信一样。
网络互连需要解决的问题有:
1.不同的寻址方案
2.不同的最大分组长度
3.不同的网络接入机制
4.不同的超时控制
5.不同的差错恢复方法
6.不同的状态报告方法
7.不同的路由选择技术
8.不同的服务(面向连接服务和无连接服务)
9.不同的管理与控制方式;等等
服务,网络接入机制,路由选择技术,寻址方案,最大分组长度,超时控制,差错恢复方法,状态报告方法,管理与控制方式
4-03 作为中间设备,转发器、网桥、路由器和网关有何区别?
1)物理层使用的中间设备叫做转发器
2)数据链路层使用的中间设备叫做网桥或交换机
3)网络层使用的中间设备叫做路由器
4)在网络层以上使用的中间设备叫做网关,用网关连接两个不兼容的系统需要在高层进行协议的转换
转发器和网桥仅仅是将一个网络扩大了,从网络层的角度看来,这仍然是一个网络,并不叫网络的互连。网络互连使用的中间设备是路由器
因此当我们讨论到网络互连,都是指用路由器进行网络互连和路由选择。
由于一些历史原因,以前的文献把路由器也叫作网关,现在叫路由器。
4-04 试简单说明下列协议的作用:IP,ARP和ICMP。
IP协议(Internet Protocol):使许多异构网络互连,以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
ARP协议(Address Resolution Protocol):地址解析协议,是根据IP地址获取物理地址的一个IP协议,将IP地址解析成对应的MAC地址。通过 IP 地址解析对应的 MAC 地址。当主机需要向某个 IP地址发送数据时,先检査本地 ARP 缓存,如果缓存中没有对应的 MAC 地址,就会向局域网内广播 ARP 请求,包含目标 IP 地址。网络中的主机接收到请求后,会检査请求中的 IP 地址是否与自身匹配,若匹配,则发送包含自己 MAC 地址的 ARP 应答给请求主机。请求主机收到应答后,将 IP与MAC 对应关系存入本地 ARP 缓存中,用于后续通信。
ICMP协议(Internet Control Message Protocol):网际控制报文协议,为了有效地转发IP数据报和提高交付成功的机会,在网际层使用了ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。提供差错报告和有关异常报告
RARP(Reverse Address Resolution Protocol,反向地址转换协议)是一种网络协议,用于在网络中实现从物理地址到IP地址的映射。其主要用途是在局域网中,当一个设备知道自己的物理地址(如MAC地址)但不知道自己的IP地址时,通过向局域网中的RARP服务器请求来获取IP地址。
4-05 IP地址如何表示?
IP地址:互联网协议地址(IP地址)是分配给设备在网络上的唯一标识符。IP地址用于标识网络上的主机和设备。IPv4地址由32位二进制数构成。IPv6地址由128位二进制数构成。
IP地址为32位,可记为:
IP地址共分为五类。
A类地址:网络号字段为1字节,最前面的1位是0。
B类地址:网络号字段为2字节,最前面的2位是10。
C类地址:网络号字段为3字节,最前面的3位是110。
D类地址:用于多播,最前面的4位是1110。
E类地址:保留今后使用,最前面的4位是1111。
无分类地址又称为 CIDR。由“网络前缀”(network-prefix)(简称为“前缀”)和主机号组成。主机号字段称为后缀(suffix)。CIDR的记法是:
但网络前缀的位数不固定,并且没有A类、B类或C类的划分。
图 T-4-5 是两种地址的比较。
4-06 IP地址的主要特点是什么?
IP地址:互联网协议地址(IP地址)是分配给设备在网络上的唯一标识符。IP地址用于标识网络上的主机和设备。IPv4地址由32位二进制数构成。IPv6地址由128位二进制数构成。
唯一,对等,两部分,是接口。未对两口
1)IP地址在整个互联网范围内是唯一的
2)所有IP地址是对等的
3)每个IP地址都是由网络号和主机号两部分组成的
4)IP地址是标志一个主机/路由器和一条链路的接口。
IP地址管理机构在分配IP地址时,只分配网络号,而剩下的主机号由得到该网络号的单位自行分配,这样便于管理。
4-07 试说明IP地址和MAC地址的区别。为什么要使用这两种不同的地址?
IP地址:被称为虚拟地址、软件地址或逻辑地址,互联网协议地址(IP地址)是分配给设备在网络上的唯一标识符。IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)。
MAC地址:由于MAC地址已固化在网卡的ROM中,因此常将MAC地址称为硬件地址或物理地址。MAC地址是数据链路层和物理层使用的地址。网络接口的唯一标识符
IP地址放在IP数据报的首部,而MAC地址则放在MAC帧的首部。
为什么要使用这两种不同的地址?
全世界存在各式各样的网络,他们使用不同的MAC地址,让这些异构网络通信就要进行复杂MAC地址转换工作,用户或用户主机无法完成,则使用IP地址解决——连接到互联网的主机拥有统一IP地址,软件自动完成ARP过程将IP地址转换为MAC地址,他们之间通信就像在同一个网络上一样方便。
由于全世界存在着各式各样的网络,它们使用不同的MAC地址。要使这些异构网络能够互相通信就必须进行非常复杂的MAC地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。
即使是对分布在全世界的以太网MAC地址进行寻址,也是极其困难的。
然而IP编址解决了这个问题,连接到互联网的主机只需各自拥有一个IP地址,它们之间的通信就可以像连接在同一个网络上那样简单方便,即便必须多次调用ARP来找到MAC地址,但这个过程都是由计算机软件自动进行的,用户看不见。
4-08 IP地址方案与我国的电话号码体制的主要不同点是什么?
①IP地址是定长的,例如IPv4中是32位比特;电话号是不定长的。
② IP地址不反映主机地理位置的信息。而电话号码反映有关电话的地理位置的信息,同一地域的电话号码相似。
注:我国电话号码体制是按照行政区域划分的层次结构,同一地域的电话号码有相同的若干位前缀。号码相似的若干话机,其地理位置应该相距较近。IP地址没有此属性。
4-09 IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
最大好处是:不检查数据部分加快检验过程,转发分组更快。
坏处是不能及时发现数据部分的错误,只有当数据部分交付运输层时,TCP才检查出差错。
4-10 当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?
不要求源站重发,是因为IP首部源地址也有可能出错,从而找不到正确的源站。
不使用CRC,就是为了减少检验时间。
4-13 什么是最大传送单元MTU?它和IP数据报首部中的哪个字段有关系?
最大传送单元MTU(Maximum Transmission Unit):是数据链路层协议规定的一个帧中数据部分所能传送的最大值。
MTU与IP数据报的总长度字段有关系。
虽然总长度字段是16位,表示最大长度是2^16-1=65535字节,但实际上下面的数据链路层已经限制了IP数据报总长度不能超过最大传送单元MTU,这个值远小于65535。当一个IP数据报封装成帧时,此数据报的总长度(即首部加上数据部分)一定不能超过数据链路层所规定的MTU值。例如,最常用的以太网就规定其MTU值是1500字节。如果超过,就必须要进行分片。
4-14 在互联网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据分片后通过一个网络就进行一次组装。试比较这两种方法的优劣。
在目的站而不是在中间的路由器进行组装更好:
1)在中间的路由器不进行数据报的组装,使路由器处理数据报更简单些
2)并非所有的数据报片都经过同样的路由器,因此在每一个中间的路由器进行组装可能总会缺少几个数据报片
3)也许分组后面还要经过一个MTU更小的网络,它还要给这些数据报划分成更小的片。如果在中间的路由器进行组装就可能会组装多次。降低传输效率。
4-15 一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来,但第二个局域网所能传送的最长数据帧中的数据部分只有1200位,因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然是指局域网看得见的数据)?
第二个局域网所能传送的最长数据帧中的数据部分只有1200bit,可知每一个IP数据报的最大长度是1200bit,故其数据部分长度为:
1200 - 160 = 1040 bit
而TCP交给IP的数据共3200bit = 1024 + 1024 + 1024 + 128,因此3200bit的数据必须划分为4个数据报片。(数据报分片以8字节为单位,因此每个分片字节数必须是8字节的整数倍,最后一个分片不要求)
每个数据报片再加上首部信息:
3200 + 160*4 = 3840 bit
因此,第二个局域网向其上层要传送3840比特的数据。
4-16 (1)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个事件设置得太大或太小会出现什么问题?(2)举出至少两种不需要发送ARP请求分组的情况(即不需要请求将某个目的IP地址解析为相应的MAC地址)
(1)因为网络中某个IP地址和MAC地址的映射关系变化时,ARP高速缓存中记录的项目就要改变。例如更换以太网网卡,10~20分钟更换一块网卡是合理的。
如果时间设置的太小,ARP高速缓存记录更新过快,频繁发送ARP请求和应答会占用网络资源,网络负担过重。
如果时间设置的太长,ARP高速缓存记录更新过慢,可能会使更换网卡之后的主机迟迟无法和该网络上的其他主机通信。
(2)第一种情况:目的IP地址的项目在ARP高速缓存中有记录,直接在缓存里拿,不需要发送ARP 请求。
第二种情况:源主机发送的是广播分组。
第三种情况:源主机和目的主机使用的是点对点链路(PPP)。
4-17 主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?
总共使用6次ARP:主机发送IP数据报时用一次ARP,每一个路由器在转发IP数据报时各使用一次。
4-18 设某路由器建立了如下转发表:
现共收到5个分组,其目的地址分别为:
1)128.96.39.10
2)128.96.40.12
3)128.96.40.151
4)192.4.153.17
5)192.4.153.90
试分别计算下一跳
1)如果网络号是前26位或者前25位,得到的网络号均为 128.96.39.0,因此匹配的下一跳为接口m0
2)如果网络号是前26位,得到的网络号为128.96.40.0,如果网络号是前25位,得到的网络号也是128.96.40.0,因此匹配的下一跳为R2
3)如果网络号是前26位,得到的网络号为128.96.40.128,如果网络号是前25位,得到的网络号也是128.96.40.128,均匹配失败,因此匹配的下一跳为默认路由R4
4)如果网络号是前26位,得到的网络号为192.4.153.0,如果网络号是前25位,得到的网络号也是192.4.153.0,因此匹配的下一跳为 R3
5)如果网络号是前26位,得到的网络号为192.4.153.64,如果网络号是前25位,得到的网络号也是192.4.153.0,均匹配失败,因此匹配的下一跳为默认路由R4
忘 4-19 某单位分配到一个地址块129.250/16.该单位有4000台机器,平均分布在16个不同的地点。试给每一个地点分配一个地址块,并算出每个地址块中IP地址的最小值和最大值。
4000台机器,平均分布在16个不同的地点,那么每个地点的机器台数:
4000/16 = 250(台)
那么可以算出,至少需要8位主机号(2^7<250<2^8),那么子网号有32-16-8 = 8(位)
因此,
分配的第一个地址块子网号为0000 0001,因此该地址块的IP地址范围为129.250.1.1~129.250.1.254
分配的第二个地址块的子网号为0000 0010,因此该地址块的IP地址范围为129.250.2.1~129.250.2.254
分配的第三个地址块的子网号为0000 0011,因此该地址块的IP地址范围为129.250.3.1~129.250.3.254
分配的第四个地址块的子网号为0000 0100,因此该地址块的IP地址范围为129.250.4.1~129.250.4.254
以此类推,第X个地址块的子网号为X,IP地址范围为129.250.X.1~129.250.X.254
(注意,主机号为全0或全1的IP地址不能被分配)
offset要除8!4-20 一个数据报长度为4000字节(固定首部长度)。现经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
首先应该记住,IP数据报的固定首部长度为20字节。
因此,可以算出这个数据报的数据部分长度为4000-20=3980字节,因为当前网络所能传送的最大数据长度为1500字节,因此该网络所能传送的最大数据部分为1480字节,3980 = 1480+1480+1020,所以应当划分为3个短些的数据报片:
第一个数据报片数据字段长度为1480,片偏移字段为0,因为后面还有分片,所以MF = 1
第二个数据报片数据字段长度为1480,片偏移字段为1480/8 = 185(片偏移是以8个字节为偏移单位),因为后面还有分片,所以MF = 1
第三个数据报片数据字段长度为1020,片偏移字段为2960/8 = 370,因为这是最后一个分片,所以MF = 0
4-21 写出互联网的IP层查找路由的算法。
使用子网掩码查找路由的算法:
1)从收到的数据报首部提取目的IP地址
2)若查找到有特定主机路由,就按照这条路由的下一跳转发分组,否则从转发表下一行开始检查,执行(3)
3)把这一行的子网掩码与目的地址按位进行 AND 运算。
若运算结果与本行的前缀匹配,则查找结束,按照“下一跳”所指出的进行处理(或直接交付本网络上的目的主机,或通过指定接口发送到下一跳路由器)。
若不匹配且转发表还有下一行,则对下一行进行检查,重新执行(3)。否则,执行(4)。
4) 若转发表中有一个默认路由,则按照指明的接口把分组传送到指明的默认路由器;否则报告转发分组出错。
使用CIDR查找路由的算法:与上面算法相同,唯一不同是查找路由表时可能会得到不止一个匹配结果。这时遵循最长前缀匹配原则,从匹配结果中选择具有最长网络前缀的路由。如果在路由表中的各项目是按网络前缀的长度排序的,把最长的网络前缀放在最前面,那么当查找路由表找到匹配时,就是找到了正确的路由,因而结束了查找。但如果在路由表中的各项目不是按网络前缀的长度排序,那么就应当从匹配结果中选择具有最长网络前缀的路由。
1)从ISP收到的数据报中提取目的IP地址
2)把该IP地址分别和ISP的路由器的路由表中的已有的各项的掩码逐位,将逐位与操作后的结果顺序写出
3)根据最长前缀匹配原则选择目的网络,把收到的数据报转发到所选择的匹配的目的网络
tips:最长前缀匹配原则:在同网段内,掩码越长,越匹配。从匹配结果中选择具有最长网络前缀的路由
×××××4-22 有如下的4个/24地址块,试进行最大可能的聚合。
由于四个地址块前两个字节都相同,只需将每个地址块的第三个字节转换为二进制:
212.56.1000 0100.0
212.56.1000 0101.0
212.56.1000 0110.0
212.56.1000 0111.0
可以发现,212.56.1000 01这一部分是相同的,因此可以聚合成212.56.132.0/22
4-23 有两个CIDR地址块208.128/11和208.130.28/22.是否有哪一个地址块包含了另一个地址?如果有,请指出,并说明理由。
208.128/11地址块包含了208.130.28/22这个地址块,因为前一个地址块的前11位与后一个地址块的前11位是相同的。
×××××4-24 已知路由器R1的转发表如下所示:
试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口。对不能确定的情况应当指明。
(6条消息) 已知路由器R1的路由表如表4-12所示。试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口。对不能确定的情况应当指明。
4-25 一个自治系统分配到的IP地址块为30.138.118/23,并包含有5个局域网,其连接图如图所示,每个局域网上的主机数分别标注在图4-77上。试给出每一个局域网的地址块(包括前缀)。
如图,
LAN1下有三个局域网,至少需要分配6(2^2-2<3<2^3-2)个地址;
LAN2至少要分配126个地址(2^6-2<91<2^7-2);
LAN3至少要分配254个地址(2^7-2<150<2^8-2);
LAN4至少要分配6个地址(2^2-2<4<2^3-2);
LAN5至少要分配30个地址(2^4-2<15<2^5-2);
因此,如果按照地址从多往少划分,可以是:
LAN1——30.138.118.192/29
LAN2——30.138.118/25
LAN3——30.138.119/24
LAN4——30.138.118.224/29
LAN5——30.138.118.128/27
上面只是众多划分方法中的一种,还可以有很多划分结果
4-26 一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24.公司的网络布局如图4-78所示。总部共有5个局域网,其中的LAN1~LAN4都连接到路由器R1上,R1再通过LAN5与路由器R2相连。R2和远地的三个部门的局域网LAN6~LAN8通过广域网相连。每一个局域网旁边标明的数字是局域网上的主机数。试给每一个局域网分配一个合适的网络前缀。
如果按照主机数由多到少的顺序来分配,可以是(有多种分法,只要地址块不重叠):
LAN1:192.77.33.0/26(子网号:00)
LAN3:192.77.33.64/27(子网号:010)
LAN8:192.77.33.96/27(子网号:011)
LAN6:192.77.33.128/27(子网号:100)
LAN7:192.77.33.160/27(子网号:101)
LAN2:192.77.33.192/28(子网号:1100)
LAN4:192.77.33.208/28(子网号:1101)
LAN5:192.77.33.224/29(子网号:11100)
4-27 以下地址中的哪一个和86.32/12匹配?请说明理由?
①86.33.224.123 ②86.79.65.216 ③86.58.119.74 ④86.68.206.154
第一个,因为取第一个地址的前12位,与86.32吻合,所以选择第一个,其他三个选项都不吻合。
4-28 以下的地址前缀中的哪一个地址与2.52.90.140匹配?请说明理由?
①0/4 ②32/4 ③4/6 ④80/4
对于①,取2.52.90.140的前4位,等于0,所以匹配
对于②,取2.52.90.140的前4位,等于0!=32,所以不匹配
对于③,取2.52.90.140的前6位,等于0!=4,所以不匹配
对于④,取2.52.90.140的前4位,等于0!=80,所以不匹配
4-29 下面的前缀中的哪一个和地址152.7.77.159及152.31.47.252都匹配,请说明理由?
①152.40/13 ②153.40/9 ③152.64/12 ④152.0/11
④,因为取题目中给的两个地址的前11位,与④都是匹配的,其余选项不符合条件
4-30 与下列掩码相对应的网络前缀各有多少位?
1)192.0.0.0; 2)240.0.0.0; 3)255.224.0.0; 4)255.255.255.252;
掩码中“1 ”的个数就是网络前缀的位数,“0”的个数代表主机号的位数。
因此:
1)2位
2)4位
3)11位
4)30位
4-31 已知地址块中的一个地址是140.120.84.24/20.试求这个地址块中的最小地址和最大地址。地址掩码是什么?地址块中共有多少个地址?相当于多少个C类地址?
根据这个IP地址,可以得到该地址块的网络前缀为140.120.80/20,
因此,
最小地址为:140.120.80.0/20,最大地址为:140.120.95.255/20
地址掩码是:255.255.240.0(前20位都是1,后面全为0)
地址块中有2^12个地址
相当于2^12/2^8=16个C类地址
4-32 已知某地址块中的一个地址是190.87.140.202/29.试重新计算上题。
根据这个IP地址,可以得到该地址块的网络前缀为190.87.140.200,
因此,
最小地址为:190.120.87.200/29,最大地址为:190.128.95.207/29
地址掩码是:255.255.255.248(前29位都是1,后面全为0)
地址块中有2^3个地址
相当于2^3/2^8=1/32个C类地址
4-33 某单位分配到一个地址块136.23.12.64/26.现在需要进一步划分为4个一样大的子网。试问:
(1)每一个子网的网络前缀有多长?
(2)每一个子网中有多少个地址?
(3)每一个子网的地址块是什么?
(4)每一个子网可分配给主机使用的最小地址和最大地址是什么?
1)划分为4个子网需要两位子网号,因此每一个子网的网络前缀为26+2=28位
2)每一个子网中有32-28 = 4位主机号,因此一共有2^4个地址
3)每一个子网的地址块为:
①136.23.12.64/28;②136.23.12.80/28;③136.23.12.96/28;④136.23.12.112/28;
4)
可分配的最小地址 可分配的最大地址
① 136.23.12.65/28 136.23.12.78/28
② 136.23.12.81/28 136.23.12.94/28
③ 136.23.12.97/28 136.23.12.110/28
④ 136.23.12.113/28 136.23.12.126/28
4-34 IGP和EGP这两类协议的主要区别是什么?
IGP-内部网关协议(Interior GateWay Protocol):在自治系统内部使用的路由协议,只关心本自治系统内如何传送数据报,与互联网中其他自治系统使用什么协议无关:力求最佳路由,使用较多RIP和OSPF。
EGP-外部网关协议(External GateWay Protocol):是不同自治系统的路由器之间交换路由信息的协议,若源主机和目的主机处在不同的自治系统中,当数据报传到一个自治系统边界时,需要使用一种协议将路由选择信息传递到另一个自治系统中。使用较多BGP-4。
不关心AS 内部使用何种协议。力求较好路由(不兜圈子),EGP必须考虑其他方面的政策,需要多条路由。例如相比代价费用 可能可达性更重要。
4-35 试简述RIP,OSPF和BGP路由选择协议的主要特点?
——RIP 路由信息协议 (Routing Information Protocol)
主要特点:相邻路由器+全部信息+固定30秒
路由信息协议RIP 是一种基于距离向量的分布式路由选择协议,其最大优点就是简单。RIP协议的特点是:
(1)仅和相邻路由器交换信息。如果两个路由器之间的通信不需要经过另一个路由器,那么这两个路由器就是相邻的。RIP协议规定,不相邻的路由器不交换信息。
(2)路由器交换的信息是当前路由器所知道的全部信息,即路由表。
(3)固定的时间间隔交换路由信息,例如,每隔30秒。然后路由器根据收到的路由信息更新路由表。当网络拓扑发生变化时,路由器及时向相邻路由器交换路由信息,即触发更新。
触发更新。
若网络中没有变化,则按通常的30秒间隔发送更新信息;若有变化,路由器就立即发送其新的路由表。这个过程叫做触发更新
——开放最短路径优先OSPF(Open Shortest Path First)
主要特点:所有路由器+相邻关系信息+更新
OSPF 是一种基于链路状态的分布式路由选择协议
(1)向系统中所有路由器发送信息。这里使用的方法是洪泛法,这就是路由器通过所有输出端口向所有相邻的路由器发送信息。而每一个相邻路由器又再将此信息发往其所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)。这样,最终整个区域中所有的路由器都得到了这个信息的一个副本。
(2)发送与本路由器相邻的所有路由器的链路状态,所谓“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”。“度量”可以表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定,因此较为灵活。有时为了方便就称这个度量为“代价”
(3)只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息:
BGP主要特点:边界网关协议
BGP是不同自治系统的路由器之间交换路由信息的协议,它采用了路径向量路由选择协议。BGP协议的主要特点是:可达性”信息+有关策略+较好路由
(1)BGP 在自治系统之间交换“可达性”信息(即“可到达”或“不可到达””)。例如,告诉相邻路由器:“到达目的网络 N 可经过 ASx”。
(2)BGP必须考虑有关策略,相关政策。
(3)BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
RIP坏消息传播慢
如图,正常时的路由R2通过R,转发数据包到网1中。当R1通往网1的链路出现故障时,R1首先感知到故障将路由表中网1跳数修改为16,此时R2定时触发更新把自己的路由表发送给 R1,R1通过 RIP 规则对比误以为自己可以通过 R2到达网 1,因此把通往网1的跳数修改为3,R1定时触发更新把自己的路由表发给R2,R2收到后通过RIP协议对比发现需要更新,通往网1的跳数为4,这样循环直到跳数都为16他们才能发现故障,这就是坏消息传的慢,好消息传得快。这种现象与RIP协议的触发更新和路由器之间信息互相依赖有关(你告诉我一些信息,我又告诉你一些信息(P154))。
为了使坏消息传播得更快些,可以采取多种措施。
水平分割:一个接口通过了给某一个路由器的更新信息,则这个路由信息不能再通过此接口向反方向发送回去。
毒性逆转:当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去,这叫做毒性逆转。
4-36 RIP使用UDP,OSPF使用IP,而BGP使用TCP。这样做有何优点?为什么RIP周期性地和邻站交换路由信息而BGP却不这样做?
(1)RIP①在较短周期频繁和相邻路由器交换路由表,较短周期要求传送开销较小②频繁交换路由信息则可以不用保证可靠性。③只发给相邻路由器,不需要IP数据报,所以选用UDP
(2)OSPF使用洪泛法发给AS内各个路由器,要求传送开销也要尽量小,所以使用IP数据报传送。
(3)(环境复杂+不频繁)BGP①在AS之间传输路由信息,网络环境复杂,要求可靠传输;②有变动才更新,更新频率低,也要求每一次传输尽量可靠,否则这个错误会保留很久,所以使用TCP传输。
问题2:因为RIP使用UDP不保证可靠性,所以需要频繁交换可以及时更新路由信息;而BGP已经保证了可靠传输,若仍周期性交换会造成较大开销并且没有必要。
4-37 假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”“距离”和“下一跳路由器”):
现在B收到从C发来的路由信息(这两列表示“目的网络”和“距离”)
试求出路由器B更新后的路由表(详细说明每一个步骤)
对于第一条信息:目的网络是N2,距离是5,下一跳是C,说明B经由C到N2的路由发生了变化,因此直接更新路由信息。
对于第二条信息:目的网络是N3,距离是9,下一跳是C,发现原来的路由表没有到N3的路由,因此直接在路由表中加入该路由信息
对于第三条信息:目的网络是N6,距离是5,下一跳是C,发现原来的路由表中有一条经由B到N6的路由,距离为8>5,因此更新该路由信息
对于第四条信息:目的网络是N8,距离是4,下一跳是C,发现原来的路由表中有一条经由E到N8的路由,距离为4=4,因此不更新该路由信息
对于第五条信息:目的网络是N9,距离是6,下一跳是C,发现原来的路由表中有一条经由F到N9的路由,距离为4<6,因此不更新该路由信息
因此,更新之后的路由表为:
N1 7 A
N2 5 C
N3 9 C
N6 5 C
N8 4 E
N9 4 F
4-38 网络如图4-79所示。假定AS1和AS4运行程序RIP,AS2和AS3运行程序OSPF。AS之间运行程序eBGP和iBGP。目前先假定在AS2和AS4之间没有物理连接(图中的虚线表示这个假定)
(1)路由器R3c使用哪一个协议知道前缀X(X在AS4中)?
(2)路由器R3a使用哪一个协议知道前缀X?
(3)路由器R1c使用哪一个协议知道前缀X?
(4)路由器R1d使用哪一个协议知道前缀X?
(1)eBGP协议
(2)iBGP协议
(3)eBGP协议
(4)iBGP协议
4-39 网络同上题。路由器R1d知道前缀X,并将前缀X写入转发表。
(1)试问路由器R1d应当从接口1还是接口2转发分组呢?请简述理由。
(2)现假定AS2和AS4之间有物理连接,即图中的虚线变成了实线。假定路由器R1d知道到达前缀X可以经过AS2,但也可以经过AS3。试问路由器R1d应当从接口1还是接口2转发分组呢?请简述理由。
(3)现假定有另一个AS5处在AS2和AS4之间(图中的虚线之间未画出AS5)。假定路由器R1d知道到达前缀X可以经过路由[AS2 AS5 AS4],但也可以经过路由[AS3 AS4]。试问路由器R1d应当从接口1还是接口2转发分组呢?请简述理由。
(1)R1d向X转发数据只能通过R1c,AS1使用RIP,则力求最佳路由,选择跳数最少的路由,走接口1只需要两跳,走接口2需要3跳,选接口1。
(2)BGP的路由选择有三种策略:
- ①优先选择本地偏好值高的路由。(本题未提及)
- ②选择AS跳数少的。(本题AS跳数相同)
- ③AS跳数相同时,使用热土豆算法,即尽快离开本AS,选择路由器跳数少的——走接口2只有1跳,接口1需要2跳,选接口1。
(3)根据BGP策略,选择AS跳数少的路由,选接口1。
4-40 IGMP协议的要点是什么?隧道技术在多播中是怎样使用的?
网际组管理协议IGMP(Internet Group Management Protocol):让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。
(下图为4个组,即4个局域网,R1234是多播路由器R123中都有组成员,R4中没有组成员)
- 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器
- 第二阶段:因为组成员关系是动态的,因此本地多播路由器(R1234)要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。(因为加入多播)
- 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
- 但一个组在经过几次的探询后仍然没有一个主机响应,则认为本网络上主机都离开了这个组,不再将该组的成员关系转发给其他的多播路由器。
隧道技术:多播数据报被封装到一个单播数据报中,可穿越不支持多播的网络到达另一个支持多播的网络。
4-41 什么是VPN?VPN有什么特点和优缺点?VPN有几种类别?
- VPN(Virtual Private Network)就是虚拟专用网。VPN的特点就是采用TCP/IP技术和利用公用网作为通信载体,使一个机构中分布在不同场所的主机能够像使用一个本机构的专用网那样进行通信。
- 专用网:用于本机构各主机和机构内部其他主机进行通信的网络,而非和非本机构的主机通信。
- VPN 的优点:价格比专用网要便宜。
- 但缺点是需要比较复杂的技术。
- VPN分:内联网VPN(仅有内部网络)、外联网VPN(和外部机构共同建立的),远程接入VPN(可使外地员工通过拨号接入互联网,并和公司保持联系)。
4-42 什么是NAT?NAT的优点和缺点有哪些?NAPT有哪些特点?
- NAT(Network Address Translation)就是网络地址转换。NAPT(Network Address Port Translation )是网络地址与端口号转换,是使用端口号的NAT。
- NAT的优点:可以通过使用NAT路由器使专用网内部的用户和因特网连接。专用网内部的用户使用的是专用地址(也叫本地地址,如果不使用NAT路由器专用地址不能和因特网相连),但当IP数据报传送到NAT路由器后就转换成为全球IP地址(NAT路由器至少要有一个这样的全球IP地址)。于是专用网的用户也就可以和因特网连接了。
- NAT的缺点:①通过NAT路由器的通信必须由专用网内的主机发起。若互联网上的主机发起通信,当IP数据报到达 NAT路由器时,NAT路由器就不知道应当把目的IP地址转换成哪一个专用地址。②当 NAT路由器只有一个全球IP地址时,专用网内最多只有一个主机可以接入互联网。如果NAT路由器有多个全球IP地址,那么就可以同时有多个主机接入互联网
- NAPT:NAPT使用了运输层的端口号,NAPT上的一个全球IP地址,可以供专用网中的多个主机使用(每一个主机使用不同的端口号)。
当NAPT路由器收到从互联网发来的应答时,就可以从IP数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从NAPT转换表中找到正确的目的主机。 ②从层次的角度看,NAPT的机制有些特殊。普通路由器在转发IP数据报时,不改变源IP地址或目的IP地址。但NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)。
4-43 试把下列IPv4地址从二进制记法转换为点分十进制记法。
(1)129.11.11.239
(2)193.131.27.255
(3)231.219.139.111
(4)249.155.251.15
4-44 假设一段地址的首地址为146.102.29.0,末地址为146.102.32.255,求这个地址段的地址数。
(32-29+1)x(255-0+1) = 1024(个)
4-45 已知一/27网络中有一个地址是167.199.170.82,问这个网络的网络掩码、网络前缀长度和网络后缀长度是多少?
网络掩码:255.255.255.224
网络前缀长度:27
网络后缀长度:5
4-46 已知条件同上题,试求这个地址块的地址数、首地址以及末地址各是多少?
地址数:2^5 = 32
首地址:167.199.170.64
末地址:167.199.170.95
4-47 某单位分配到一个地址块14.24.74.0/24.该单位需要用到三个子网,对这三个子地址块的具体要求是:子网N1需要120个地址,子网N2需要60个地址,子网N3需要10个地址。请给出地址块的分配方案。
要分成三个子网,至少需要两位子网号2^2>3,因此:
分配方案可以是:
N1: 14.24.74.0/26
N2:14.24.74.128/26
N3: 14.24.74.192/26
4-48 如图4-80所示,网络145.13.0.0/16划分为四个子网N1,N2,N3和N4.这四个子网与路由器R连接的接口分别是m0,m1,m2和m3.路由器R的第五个接口m4连接到互联网。
(1)试给出路由器R的路由表
(2)路由器R收到分组,其目的地址是145.13.160.78试给出这个分组是怎样被转发的。
(1)
目的网络 子网掩码 下一跳
145.13.0.0/18 255.255.192.0 m0
145.13.64.0/18 255.255.192.0 m1
145.13.128.0/18 255.255.192.0 m2
145.13.192.0/18 255.255.192.0 m3
其他 M m4
(2)书写过程记一下(还是记4-49过程更好吧):

4-49 收到一个分组,其目的地址D = 11.1.2.5。要查找的转发表有这样的三项:(标准步骤记忆)
4-50 同上题。假定路由1的目的网络 11.0.0.0/8中有一台主机H,其IP地址是11.1.2.3。当我们发送一个分组给主机H时,根据最长前缀匹配准则,上面的这个转发表却把这个分组转发到路由3的目的网络11.1.2.0/24.是最长前缀匹配准则有时会出错吗?
最长前缀匹配准则没有错,而是IP地址11.1.2.3分配错误,路由1的地址块默认是不包含路由2和路由3的11.1.0.0/16,11.1.2.0/24两个地址块,所以路由1本身就不该分配地址11.1.2.3,11.1.2.3是属于11.1.2.0/24的一个IP地址。
4-51 已知一CIDR地址块为200.56.168.0/21.
(1)试用二进制形式表示这个地址块
(2)这个CIDR地址块包括有多少个C类地址块?(第二问写法需要记忆)
4-52 建议的IPv6协议没有首部检验和。这样做的优缺点是什么?
- 优点:对首部的处理更简单。数据链路层已经将有差错的帧丢弃了,因此网络层可以省去这步骤。
- 缺点:可能遇到数据链路层检测不出来的差错(此概率极小)。
4-53 在IPv4首部中有一个“协议”字段,但在IPv6的固定首部中却没有。这是为什么?
在IP数据报传送过程中所有路由器都不需要这一字段的信息,只有目的主机才需要协议字段。在IPv6使用“下一个首部”字段完成IPv4中的“协议”字段的功能。
4-54 当使用IPv6时,协议ARP是否需要改变,如果需要改变,那么应当进行概念性的改变还是技术性的改变?
IPv6已经没有ARP协议了。但IPv6中的ICMPv6 包括了IPv4中ARP的功能。IPv4中ARP 协议的功能,在IPv6中已由新的邻居发现协议 ND 来完成了。概念上来说,ARP的功能在IPv6中仍然是不可缺少的,但在技术上却进行了很多改进。
4-55 IPv6只允许在源点进行分片。这样做有什么好处?
解答:分片与重装是非常耗时的操作。IPv6把这一功能从路由器中删除,并移到网络边缘的主机中,这就可以大大加快网络中IP数据报的转发速度。
4-56 设每隔1微微秒就分配出100万个IPv6地址。试计算大约要用多少年才能将IPv6地址空间玩不用光。可以和宇宙的年龄(大约有100亿年)进行比较。
据计算,
2^128/10^18/3600/24/265 = 1.08^14(约等于)
相当于10^3个宇宙的年龄
4-57 试把以下的IPv6地址用零压缩法写成简洁的形式:
(1)::F53:6382:AB00:67DB:BB27:7332
(2)::4D:ABCD
(3)::AF36:7328:0:87AA:398
(4)2819:AF::35:CB2:B271
4-58 试把以下的零压缩的IPv6地址写成原来的形式:
(1)0000:0000:0000:0000:0000:0000:0000:0000
(2)0000:00AA:0000:0000:0000:0000:0000:0000
(3)0000:1234:0000:0000:0000:0000:0000:0003
(4)0123:0000:0000:0000:0000:0000:0001:0002
4-59 从IPv4过渡到IPv6的方法有哪些?
由于现在整个互联网的规模太大,因此,“规定一个日期”,从这一天其所有的路由器一律都改用IPv6,显然是不可行的,这样,向IPv6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容。
下面是两种向IPv6过渡的策略:
①双协议栈:
指在完全过渡到IPv6之前,使一部分主机(或路由器)同时装有IPv4和IPv6这两种协议,双协议栈主机使用域名系统DNS来查询目的主机使用的是哪一种协议,若DNS返回的是IPv4地址,那么源主机就使用IPv4地址,否则就使用IPv6.但是这种方式需要付出的代价太大,因为要安装上两套协议。
②隧道技术:
比上面的方式要好,这种方法的要点就是在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报。IPv6数据报就在IPv4 网络的隧道中传输。当IPv4 数据报离开IPv4网络中的隧道时再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。
IPv6数据报封装成IPv4数据报,通过IPv4网络的隧道,到达目的主机后把IPv4数据报的数据部分即:IPv6数据报 交给目的主机。
4-60 多协议标签交换MPLS的工作原理是怎样的?它有哪些主要的功能?
工作原理:Multi-Protocol Label Switching多协议标签交换MPLS
在传统的IP网络中,分组每到达一个路由器,都必须查找路由表,并按照“最长前缀匹配”的原则找到下一跳的IP地址。当网络很大时,查找含有大量项目的路由表要花费很多时间,在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。
传统IP数据报到达路由器后会上升至第三层协议,查找路由表,根据“最长前缀匹配”的原则找到下一跳的IP地址。当网络很大时,查找含有大量项目的路由表要花费很多时间
MPLS给每一个进入MPLS域的IP数据报打上固定长度的“标签”,然后对打上标签的IP数据报用硬件进行转发,这就使得IP数据报转发时路由器不再上升到第三层查找转发表,而是根据标签在第二层用硬件进行转发,因而IP数据报转发的速率就大大加快了。
MPLS可使用多种链路层协议,如PPP、以太网、ATM以及帧中继等。
主要的功能:
(1)属于一种面向连接的连网技术。
(2)当IP数据报进入MPLS域时就被打上标签,MPLS域中的标记交换路由器LSR(Label Switched Router),使用专门的标记分配协议LDP(Label Distribution Protocol)交换报文,并找出和特定标签相对应的路径。这样就加快了IP数据报的转发速度。
(3)在MPLS的上面可以采用多种协议,但最常用的是IP协议。
(4)具有转发等价类FEC的功能。入口结点并不是给每一个IP数据报指派一个不同的标记,而是将属于同样FEC的IP数据报都指派同样的标记,按同样方式转发。
(5)MPLS可以把FEC用于负载平衡。网络管理员采用自定义的FEC就可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程。
4-61 SDN的广义转发与传统的基于终点的转发有何区别?
软件定义网络SDN(Software Defined Network
4-62 试举出IP数据报首部中能够在OpenFlow1.0中匹配的三个字段。试举出在OpenFlow中不能匹配的三个IP数据报首部。
能够在OpenFlow1.0中匹配的三个IP数据报首部字段是:源地址、目的地址和协议字段。
不能够在OpenFlow1.0中匹配的三个IP数据报首部字段是:版本、生存时间和总长度字段。
4-63 网络如图4-81所示
(1)假定路由器R1把所有发往网络前缀123.1.2.16/29的分组都从接口4转发出去。
(2)假定路由器R1要把H1发往123.1.2.16/29的分组从接口4转发出去,而把H2发往123.1.2.16/29的分组从接口3转发出去。
试问,在上述两种情况下,你都能够给出路由器R1的转发表吗?转发表只需要给出发往123.1.2.16/29的分组应当从哪一个接口转发出去。
(1) 网络前缀 转发接口
123.1.2.16/29 接口4
(2)传统路由器无法做到一个目的ip地址有两个路由,但是SND能做到。
4-64 已知一具有4个接口的路由器R1的转发表如表4-11所示,转发表的每一行给出了目的地址的范围,以及对应的转发接口。
(1)试把以上转发表改换为另一种形式,其中的目的地址范围改为前缀匹配,而转发表由4行增加为5行
(2)若路由器收到一个分组,其目的地址是:
试给出每一种情况下分组应当通过的转发接口。
(1)转发表如下:
(2)根据最长前缀匹配原则
a.接口2
b.接口1
c.接口2
4-65 一路由器连接到三个子网,这三个子网共同的前缀是255.2.17/24.假定子网N1要有62台主机,子网N2要有105台主机,而子网N3要有12台主机。试分配这三个子网的前缀。
分配方案可以是:
N2:255.2.17.0/25
N1:255.2.17.128/26
N3:255.2.17.192/28
4-66