据部分<1200-160(bit),由于片偏移是以8字节即64bit为单位的,所以IP数据片的数据部分最大不超过1024bit,这样3200bit的报文要分4个数据片,所以第二个局域网向上传送的比特数等于(3200+4×160),共3840bit。
6-16设某路由器建立了如下路由表(这三列分别是目的网络、子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去):
128.96.39.0 255.255.255.128 接口0 128.96.39.128 255.255.255.128 接口1 128.96.40.0 255.255.255.128 R2 192.4.153.0 255.255.255.192 R3 *(默认) R4 现共收到5个分组,其目的站IP地址分别为: (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)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口0转发。 (2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2
转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发。
6-17某单位分配到一个B类IP地址,其net-id为129.250.0.0。该单位有4000台机器,平均分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一地点分配一个子网号码,并计算出每个地点主机号码的最小值和最大值。
答:4000/16=250,平均每个地点250台机器。如选255.255.255.0为掩码,则每个网络所连主机数=28-2=254>250,共有子网数=28-2=254>16,能满足实际需求。 可给每个地点分配如下子网号码
地点: 子网号(subnet-id) 子网网络号 主机IP的最小值和最大值
1: 00000001 129.250.1.0 129.250.1.1---129.250.1.254 2: 00000010 129.250.2.0 129.250.2.1---129.250.2.254 3: 00000011 129.250.3.0 129.250.3.1---129.250.3.254 4: 00000100 129.250.4.0 129.250.4.1---129.250.4.254 5: 00000101 129.250.5.0 129.250.5.1---129.250.5.254
21
6: 00000110 129.250.6.0 129.250.6.1---129.250.6.254 7: 00000111 129.250.7.0 129.250.7.1---129.250.7.254 8: 00001000 129.250.8.0 129.250.8.1---129.250.8.254 9: 00001001 129.250.9.0 129.250.9.1---129.250.9.254 10: 00001010 129.250.10.0 129.250.10.1---129.250.10.254 11: 00001011 129.250.11.0 129.250.11.1---129.250.11.254 12: 00001100 129.250.12.0 129.250.12.1---129.250.12.254 13: 00001101 129.250.13.0 129.250.13.1---129.250.13.254 14: 00001110 129.250.14.0 129.250.14.1---129.250.14.254 15: 00001111 129.250.15.0 129.250.15.1---129.250.15.254 16: 00010000 129.250.16.0 129.250.16.1---129.250.16.254 6-18一具数据报长度为4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值? 答:IP数据报固定首部长度为20字节 原始数据报 数据报片1 数据报片2 数据报片3 总长度(字节) 4000 1500 1500 1040 数据长度(字节) 3980 1480 1480 1020 MF 0 1 1 0 片偏移 0 0 185 370
6-19分两种情况(使用子网掩码和使用CIDR)写出因特网的IP层查找路由的算法。 6-24一个自治系统有5个局域网,其连接图如图6-61所示。LAN2至LAN5上的主机数分别为:91,150,3和15。该项自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块(包括前缀)。
解:分配网络前缀时应先分配地址数较多的前缀。 地址块30.138.118/23可写成30.138.118.0/23
写成二进制表示:00011110 10001010 01110110 00000000 掩码 11111111 11111111 11111110 00000000 LAN3有150个主机加一个路由器地址为151个地址。 地址块 00011110 10001010 0111011* ********
分配地址块 00011110 10001010 01110110 ******** 即 30.138.118.0/24
LAN2有91个主机加一个路由器地址为92个地址。
分配地址块 00011110 10001010 01110111 0******* 即 30.138.119.0/25
LAN5有15个主机加一个路由器地址为16个地址。需要/27地址块,可分配/26地址块。 分配地址块 00011110 10001010 01110111 10****** 即 30.138.119.128/26
LAN4有3个主机加一个路由器地址为4个地址。至少需要/29地址块 分配地址块 00011110 10001010 01110111 11000*** 即 30.138.119.192/29
LAN1至少有3个IP地址供路由器用。也分一个/29地址块 分配地址块 00011110 10001010 01110111 11001***
22
即 30.138.119.200/29
6-20试找出可产生以下数目的A类子网的子网掩码(采用连续掩码) (1)2,(2)6,(3)20,(4)62,(5)122,(6)250 答:(3)20+2=22<25(加2即将不能作为子网号的全1和全0的两种,所以子网号占用5bit,所以网络号加子网号共13bit,子网掩码为前13个1后19个0,即255.248.0.0。依此方法: (1)255.192.0.0,(2)255.224.0.0,(4)255.252.0.0,(5)255.254.0.0,(6)255.255.0.0 6-21以下有四个子网掩码,哪些是不推荐使用的? (1)176.0.0.0,(2)96.0.0.0,(3)127.192.0.0,(4)255.128.0.0 答:只有(4)是连续的1和连续的0的掩码,是推荐使用的。 6-22有如下的四个/24地址块,试进行最大可能的聚合。
212.56.132.0/24,212.56.133.0/24。212.56.134.0/24,212.56.135.0/24 答:212=(11010100)2,56=(00111000)2
132=(10000100)2, 133=(10000101)2 134=(10000110)2, 135=(10000111)2
所以共同的前缀有22位,即11010100 00111000 100001,聚合的CIDR地址块是:212.56.132.0/22
6-23有两个CIDR地址块208.128/11和208.130.28/22。是否有哪一个地址块包含了另一地址块?如果有,请指出,并说明理由。 答:208.128/11的前缀为:11010000 100
208.130.28/22的前缀为:11010000 10000010 000101,它的前11位与208.128/11的前缀是一致的,所以208.128/11地址块包含了208.130.28/22这一地址块。
6-31 IGP和EGP这两类协议的主要区别是什么?
6-34假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)
N1 7 A N2 2 C N6 8 F N8 4 E N9 4 F
现在B收到从C发来的路由信息(这两列分别表示“目的网络”和“距离” ):
N2 4 N3 8 N6 4 N8 3 N9 5
试求出路由器B更新后的路由表。 解:路由器B更新后的路由表如下:
N1 7 A 无新信息,不改变 N2 5 C 相同的下一跳,更新 N3 9 C 新的项目,添加进来
N6 5 C 不同的下一跳,距离更短,更新
23
N8 4 E 不同的下一跳,距离一样,不改变 N9 4 F 不同的下一跳,距离更大,不改变
6-35假定网络中的路由器A的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)
N1 4 B N2 2 C N3 1 F N4 5 G
现在A收到从C发来的路由信息(这两列分别表示“目的网络”和“距离” ):
N1 2 N2 1 N3 3
试求出路由器A更新后的路由表。 解:路由器A更新后的路由表如下:
N1 3 C 不同的下一跳,距离更短,改变 N2 2 C 不同的下一跳,距离一样,不变 N3 1 F 不同的下一跳,距离更大,不改变 N4 5 G 无新信息,不改变
第七章 运输层
7-01(1)试说明运输层的作用。网络层提供数据报或虚电路服务对上面的运输层有何影响? (2)当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向
24
连接的?
(3)接收端收到有差错的UDP用户数据报时应如何处理? 答:(1)从通信和信息处理的角度来看,运输层向它上面的应用层提供通信服务。运输层为应用进程之间提供端到端的逻辑通信。
(2)都是。这要从不同层次来看。在运输层是面向连接的,在网络层则是无连接的。 (3)丢弃。
7-04解释为什么突然释放运输连接就可能丢失用户数据而使用TCP的连接释放方法就可保证不丢失数据。
答:当主机1和主机2之间连接建立后,主机1发送了一个TCP数据段并正确抵达主机2,接着主机1发送另一个TCP数据段,这次很不幸,,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数据,而仍然可接收主机1发来的数据,所以可保证不丢失数据。
7-05试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。
答:我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
7-06一个TCP报文段的数据部分最多为多少字节?为什么?如果用户要传送的数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,问还能否用TCP来传送?
答:65495字节。此数据部分加上TCP首部的20字节,再加上IP数据报的首部的20字节,正好是IP数据报的最大长度。当然,IP首部包含了选择,则IP首部长度超过20字节,这时TCP报文段的数据部分的长度将小于65495字节。 7-10设TCP使用的最大窗口为64KB,即64*1024字节。而传输信道貌岸然的带宽可认为 是不受限制的。若报文段的平均时延为20ms,问所能得到的最大的吞吐量是多少?
答:可见在报文段平均往返时延20ms内,发送方最多能发送64×1024×8比特,所以最大的吞吐量为=64×1024×8÷(20×10-3)=26214400bit/s=26.21Mbit/s 7-11试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250ms,每一个广域网的范围为1500km,其传播时延可按150000km/s来计算。各数据链路数率为48kbit/s,帧长为960bit。
答:5段链路的传播时延=250×2+(1500/150000)×3×1000=530ms 5段链路的发送时延=960÷(48×1000)×5×1000=100ms 所以5段链路单程端到端时延=530+100=630ms
7-13用TCP传送512字节的数据,设窗口为100字节,而TCP报文段每次也是传送100
25