五邑大学-计算机网络-课后习题解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五邑大学-计算机网络-课后习题解答
1-17.收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2*108m/s。
试计算以下两种情况的发送时延和传播时延:(1)数据长度为107bit,数据发送速率为100kb/s。
(2)数据长度为103bit,数据发送速率为1Gb/s。
从以上计算结果可得出什么结论?
解:两种情况分别计算如下:
(1)发送时延为107bit/(100kb/s)=100s
传播时延为1000km/(2*108m/s)=5ms
发送时延远大于传播时延。
(2)发送时延为103bit /(1Gb/s)=1us
传播时延为1000km/(2*108m/s)=5ms
发送时延远小于传播时延。
结论:若数据长度大而发送率低,则在总的时延中,发送时延往往大于传播时延。
但若数据长度短而发送率高,则传播时延又可能是总时延中的主要成分。
1-19.长度为100字节的应用层数据交给传输层传送,需加上20字节的TCP首部。
再交给网络层传送,需加上20字节的IP首部。
最后交给数据链路层的以太网传送,加上首部和尾部共18字节。
试求数据的传输效率。
若应用层数据长度为1000字节,数据的传输效率是多少?
解:数据长度为100字节时,传输效率=100/(100+20+20+18)=63.3% 数据长度为1000字节时,传输效率=1000/(1000+20+20+18)=94.5%
2-07.假设某信道受奈氏准则限制的最高码元速率为2000码元/秒。
如果应用振幅调制,把码元的振幅划分为16个不同等级来传送,那么可以获得多高的数据率(b/s)?
解:如果我们用二进制数字来表示这16个不同等级的振幅,那么需要使用4个二进制数字。
即0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111。
可见现在用一个码元就可以表示4个比特。
因此码元速率为2000码元/秒时,我们得到的数据率=2000码元/秒*4b/码元=80000b/s。
2-08.假定用3kHz带宽的电话信道传送64kb/s的数据(无差错传输),试问这个信道应具有多高的信噪比(分别用比值和分贝来表示)?这个结果说明什么问题?
解:根据香农公式C=Wlog2(1+S/N)
S/N=2C/W-1=264/3-1=2642245
或者用分贝表示(S/N)dB=10log102642245=64.2dB
这个结果说明这是个信噪比很高的信道。
3-07.要发送的数据为1101011011。
采用CRC的生成多项式是
P(X)=X4+X+1。
试求应添加在数据后面的余数。
数据在传输过程中最后一个1变成了0,问接收端能否发现?
若数据在传输过程中最后两个1都变成了0,问接收端能否发现?
采用CRC检验后,数据链路层的传输是否就变成了可靠的传输?
解:采用CRC的生成多项式是P(X)=X4+X+1,用二进制表示就是P=10011。
现在除数是5位,因此在数据后面要添加4个0就得出被除数。
计算过程如下:
应添加在数据后面的余数为1110。
若数据在传输过程中最后一个1变成了0,则接收端实际收到的数据为11010110101110,接收方用收到的数据除以生成多项式,得到的余数为0011(过程省略)。
因为余数不为0,所以接收端能发现这个差错(但不能纠正)。
若数据在传输过程中最后两个1都变成了0,则接收端实际收到的数据为11010110001110,接收方用收到的数据除以生成多项式,得到的余数为0101(过程省略)。
因为余数不为0,所以接收端能发现这个差错(但不能纠正)。
采用CRC校验后,数据链路层的传输并非变成了可靠的传输。
当接收方进行CRC校验时,如果发现有差错,就简单地丢弃这个帧。
数据链路层并不能保证接收方收到的和发送方的完全一样。
3-09.一个PPP帧的数据部分(用十六进制写出)是7D5E FE277D5D 7D5D657D5E。
试问真正的数据是什么(用十六进制写出)?
解:转义后的数据:7D 5E FE 27 7D 5D 7D 5D 65 7D 5E
真正的数据:7E FE27 7D 7D 65 7E
3-10.PPP协议使用同步传输技术传送比特串0110 11111 11111 00。
试问经过零比特填充后变成怎样的比特串?若接收端收到的PPP帧的数据部分是0001110 111110 111110 110,问删除发送端加入的零比特后变成怎样的比特串?解:第一个比特串经过零比特填充后变成:0110 111110 111110 00。
第二个比特串删除发送端加入的零比特后变成:
0001110 11111 11111 110
4-13.设IP数据报使用固定首部,其各字段的具体数值如下图所示(除IP地址外,均为十进制表示)。
试用二进制运算方法计算应当写入到首部校验和字段中
4,5和0:01000101 00000000
28:00000000 00011100
1:00000000 00000001
0和0:00000000 00000000
4和17:00000100 00010001
0:00000000 00000000
10.12:00001010 00001100
14.5:00001110 00000101
12.6:00001100 00000110
7.9:00000111 00001001
和:01110100 01001110
校验和:10001011 10110001
4-14.重新计算上题,但使用十六进制运算方法(每16位二进制数字转换为4个十六进制数字,再按十六进制加法规则计算)。
比较这两种方法。
解:
4,5和0:45 00
28:00 1C
1:00 01
0和0:00 00
4和17:04 11
0:00 00
10.12:0A 0C
14.5:0E 05
12.6:0C 06
7.9:07 09
和:74 4E
校验和:8B B1
8B B116=1000101110110001。
这两种方法得出的结果一致,但如果手工计算,十六进制比较方便。
4-19.主机A发送IP数据报给主机B,途中经过了5个路由器。
试问在IP数据报的发送过程中总共使用了几次ARP?
答:6次。
主机发送IP数据报时用一次ARP,每一个路由器在转发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
试分别计算其下一跳。
解:把路由表中的四个目的网络地址分别记为,N2,N3和N4。
把收到的5个分组的目的地址分别记为D1,D2,D3,D4和D5。
(1)路由器收到的分组的目的地址D1=128.96.39.10 网络N1的子网掩码与D1进行与运算,得到128.96.39.0,与N1匹配。
所以下一跳为接口m0。
(2)路由器收到的分组的目的地址D2=128.96.40.12 网络N1的子网掩码与D2进行与运算,得到128.96.40.0,与N1不匹配。
再试下一个。
网络N2的子网掩码与D2进行与运算,得到128.96.40.0,与N2不匹配。
再试下一个。
网络N3的子网掩码与D2进行与运算,得到128.96.40.0,与N3匹配。
所以下一跳为R2。
(3)路由器收到的分组的目的地址D3=128.96.40.151 网络N1的子网掩码与D3进行与运算,得到128.96.40.128,与N1不匹配。
再试下一个。
网络N2的子网掩码与D3进行与运算,得到128.96.40.128,与N2不匹配。
再试下一个。
网络N3的子网掩码与D3进行与运算,得到128.96.40.128,与N3不匹配。
再试下一个。
网络N4的子网掩码与D3进行与运算,得到128.96.40.128,与N4不匹配。
因此下一跳为默认路由R4。
(4)路由器收到的分组的目的地址D4=192.4.153.17 网络N1的子网掩码与D4进行与运算,得到192.4.153.0,与N1不匹配。
再试下一个。
网络N2的子网掩码与D4进行与运算,得到192.4.153.0,与N2不匹配。
再试下一个。
网络N3的子网掩码与D4进行与运算,得到192.4.153.0,与N3不匹配。
再试下一个。
网络N4的子网掩码与D4进行与运算,得到192.4.153.0,与N4匹配。
因此下一跳为R3。
(5)路由器收到的分组的目的地址D5=192.4.153.90
网络N1的子网掩码与D5进行与运算,得到192.4.153.0,与N1不匹配。
再试下一个。
网络N2的子网掩码与D5进行与运算,得到192.4.153.0,与N2不匹配。
再试下一个。
网络N3的子网掩码与D5进行与运算,得到192.4.153.0,与N3不匹配。
再试下一个。
网络N4的子网掩码与D5进行与运算,得到192.4.153.64,与N4不匹配。
因此下一跳为默认路由R4。
4-21.某单位分配到一个B类IP地址,其net-id为129.250.0.0。
该单位有4000台机器,平均分布在16个不同的地点。
如选用子网掩码
为255.255.255.0,试给每一个地点分配一个子网号码,并算出每个地点主机号码的最小值和最大值。
解:4000台计算机,平均分布在16个不同的地点,每个地点有250台计算机。
因此,主机号host-id有8位就够了。
而16个不同地点需要有16个子网。
考虑到不使用全0和全1的子网号,因此子网号subnet-id 至少需要5位(可以有30个子网)。
这样,本题的解答本来并不是唯一的,子网号可以从5位到8位。
但题目已经给定了子网掩码为255.255.255.0,就是说,题目已经确定了采用8位的子网号,因此可以选用子网号从00000001到00010000这样16个号码。
每一个地点的主机号host-id从00000001到11111010共250个号码。
具体来说,每个地点的分配如下:
地点1:子网号1,最小主机地址129.250.1.1,最大主机地址129.250.1.250;地点2:子网号2,最小主机地址129.250.2.1,最大主机地址129.250.2.250;。
地点15:子网号15,最小主机地址129.250.15.1,最大主机地址129.250.15.250;
地点16:子网号16,最小主机地址129.250.16.1,最大主机地址129.250.16.250。
4-24.试找出可产生一下数目的A类子网的子网掩码(采用连续掩码)。
(1)2 (2)6 (3) 30 (4)62 (5)122 (6) 250
解:因为子网号为全0和全1的子网不能使用。
所以实际子网数应当大于等于给定子网数加2。
(1)因为22=2+2,所以必须从主机号中拿出2位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11000000,即子网掩码为255.192.0.0
(2)因为23=6+2,所以必须从主机号中拿出3位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11100000,即子网掩码为255.224.0.0
(3)因为25=30+2,所以必须从主机号中拿出5位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11111000,5
即子网掩码为255.248.0.0
(4)因为26=62+2,所以必须从主机号中拿出6位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11111100,即子网掩码为255.252.0.0
(5)因为27>122+2,所以必须从主机号中拿出7位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11111110,即子网掩码为255.254.0.0
(6)因为28>250+2,所以必须从主机号中拿出8位作为子网号。
子网掩码的前两个字节的2进制形式为11111111 11111111,即子网掩码为255.255.0.0
4-26.有如下的4个/24地址块,试进行最大可能的聚合。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
解:这几个地址的前两个字节都一样,因此,只需要比较第三个字节。
132用二进制表示是10000100
133用二进制表示是10000101
134用二进制表示是10000110
135用二进制表示是10000111
可以看出,这几个二进制的前6位是相同的。
因此,这4个地址的共同前缀有22位。
212.56.100001/22
最大可能的聚合是:212.56.132.0/22
4-27.有两个CIDR地址块208.128/11和208.130.28/22。
是否有哪一个地址块包含了另一个地址块?如果有,请指出,并说明理由。
解:将两个地址块用二进制表示:
208.128/11的网络前缀是有下划线所示的11位:
208.130.28/22的网络前缀是有下划线所示的22位:
可见,前一个地址块包含了后一个。
4-35.已知地址块中的一个地址是140.120.84.24/20。
试求这个地址块中的最小地址和最大地址。
地址掩码是什么?地址块中共有多少个地址?相当于多少个C类地址?
解:给定地址的网络前缀是20位,因此只要观察地址的第三个字节即可。
140.120.84.24/20表示为140.120.01010100.24/20 最小地址是140.120.01010000.0/20,即140.120.80.0/20
最大地址是140.120.01011111.11111111/20,即140.120.95.255/20
地址掩码是255.255.11110000.0,即255.255.240.0
地址数是212=4096,相当于16个C类地址。
4-37.某单位分配到一个地址块136.23.12.64/26。
现在需要进一步划分为4个一样大的子网。
试问:
(1)每个子网的网络前缀有多长?
(2)每一个子网中有多少个地址?
(3)每一个子网的地址块是什么?
(4)每一个子网可分配给主机使用的最小地址和最大地址是什么?
解:(1)原来网络前缀是26位,需要再增加2位,才能划分为4个一样大的子网。
因此,每个子网的网络前缀是28位。
(2)每个子网的地址中有4位留给主机用,因此共有16个地址,其中可用的地址有14个。
(3)原来的地址块136.23.12.64/26即136.23.12.01000000/26
四个子网的地址块分别是:
136.23.12.01000000/28,即136.23.12.64/28;
136.23.12.01010000/28,即136.23.12.80/28;
136.23.12.01100000/28,即136.23.12.96/28;
136.23.12.01110000/28,即136.23.12.112/28。
(4)第一个地址块136.23.12.01000000/28,可分配个主机使用的最小地址136.23.12.01000001/28,即136.23.12.65/28;最大地址
136.23.12.01001110/28,即136.23.12.78/28。
第二个地址块136.23.12.01010000/28,可分配个主机使用的最小地址136.23.12.01010001/28,即136.23.12.81/28;最大地址
136.23.12.01011110/28,即136.23.12.94/28。
第三个地址块136.23.12.01100000/28,可分配个主机使用的最小地址136.23.12.01100001/28,即136.23.12.97/28;最大地址
136.23.12.01101110/28,即136.23.12.110/28。
第四个地址块136.23.12.01110000/28,可分配个主机使用的最小地址136.23.12.01110001/28,即136.23.12.113/28;最大地址
136.23.12.01111110/28,即136.23.12.126/28。
4-41.假定网络中的路由器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更新后的路由表(详细说明每一个步骤)。
解:先把收到的路由信息中的“距离”加1:
N2 5
N3 9
N6 5
N8 4
N9 6
路由器B更新后的路由表如下:
N1 7 A 无新信息,不改变
N2 5 C 相同的下一跳,更新
N3 9 C 新的项目,添加进来
N6 5 C 不同的下一跳,距离更短,更新
N8 4 E 不同的下一跳,距离一样,不改变
N9 4 F 不同的下一跳,距离更大,不改变
4-42.假定网络中的路由器A的路由表有如下的项目(格式同上题):N1 4 B
N2 2 C
N3 1 F
N4 5 G
现在A收到从C发来的路由信息(格式同上题):
N1 2
N2 1
N3 3
N4 7
试求出路由器A更新后的路由表(详细说明每一个步骤)。
解:先把收到的路由信息中的“距离”加1:
N1 3
N2 2
N3 4
N4 8
路由器A更新后的路由表如下:
N1 3 C 不同的下一跳,距离更短,改变
N2 2 C 相同的下一跳,距离一样,不变
N3 1 F 不同的下一跳,距离更大,不改变
N4 5 G 不同的下一跳,距离更大,不改变
5-12.一个应用程序用UDP,到了IP层把数据报再划分为4个数据报片发送出去。
结果前两个数据报片丢失,后两个到达目的站。
过了一段时间应用程序重传UDP。
而IP层仍然划分为4个数据报片来传送。
结果这次前两个到达目的站而后两个丢失。
试问:在目的站能否将这两次传输的4个数据报片组装成为完整的数据报?假定目的站第一次收
到的后两个数据报片仍然保存在目的站的缓存中。
答:不行。
重传时,IP数据报的标识字段和原始数据报不同。
标识符相同的IP数据报才能组装成一个IP数据报。
前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。
5-14. 一UDP用户数据报的首部的十六进制表示是:06 32 00 45 00 1C E2
17。
试求源端口、目的端口、用户数据报的总长度、数据部分长度。
这个用户数据报是从客户发送给服务器还是从服务器发送给客户?使
用UDP的这个服务器程序是什么?
解:
源端口0632H=6*256+3*16+2=1586
目的端口0045H=4*16+5=69
用户数据报的总长度001CH=1*16+12=28 字节
数据部分长度=总长度---报头长=28-8=20字节
此UDP用户数据报是从客户发给服务器(因为目的端口<1023,是熟知端口)。
服务器程序是TFTP(从教材192页的表5-2查得。
考试时不要写上括号里的这句话)。
5-23.主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100。
试问:
(1)第一个报文段携带了多少字节的数据?
(2)主机B收到第一个报文段后发送的确认中的确认号应当是多少?
(3)如果B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?
(4)如果A发送的第一个报文段丢失了,但第二个报文段到达了B。
B在第二个报文段到达后向A发送确认。
试问这个确认号应为多少?解:
(1)第一个报文段的数据序号是70到99,共30字节的数据。
(2)B期望收到下一个报文段的第一个数据字节的序号是100,因此确认号应为100。
(3)A发送的第二个报文段中的数据字节数=180-100=80
(4)B在第二个报文段到达后向A发送确认。
这个确认号应为70。
6-09.假定一个超链从一个万维网文档链接到另一个万维网文档时,由于万维网文档上出现了差错而使得超链指向一个无效的计算机名字。
这时浏览器将向用户报告什么?
解:可能报告Internet Explorer无法显示该页面。
也有可能显示以下信息:404 Not Found。
6-10.假定要从已知的URL获得一个万维网文档。
若该万维网服务器的IP地址开始时并不知道。
试问:除HTTP外,还需要什么应用层协议和运输层协议?
解:应用层协议需要的是DNS(将服务器的域名解析为IP地址)。
运输层协议需要的是UDP(DNS使用)和TCP(HTTP使用)。
6-27.试将数据11001100 10000001 00111000进行base64编码,并得出最后传送的ASCII数据。
解:
24位二进制11001100 10000001 00111000
划分为4个6位组110011 001000 000100 111000 对应的十进制值51 8 4 56
Base64编码z I E 4
传送的ASCII数据:01111010 01001001 01000101 00110100
6-30.电子邮件系统使用TCP传送邮件。
为什么有时我们会遇到邮件发送失败的情况?为什么有时对方会收不到我们发送的邮件?
解:有时对方的邮件服务器不工作,邮件就发送不出去。
对方的邮件服务器出故障也会使邮件丢失。