计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)

前言

对于知识点的掌握不能仅仅是知晓,能够加以应用才能熟练掌握,计算机网络:自顶向下这本书中为读者提供了合适的习题来帮助我们练习。接下来我将和大家一起解读官方答案文档(英文),并给出我所理解的中文翻译(英语好的读者建议直接观看官方英语文档,部分问题笔者能力有限无法解答)。

Chapter 1 Problems

Problem 1

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第1张图片
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第2张图片

英文:

There is no single right answer to this question. Many protocols would do the trick. Here’s a simple answer below:

Messages from ATM machine to Server

Msg name purpose
HELO Let server know that there is a card in the ATM machine and ATM card transmits user ID to Server
PASSWD User enters PIN, which is sent to server
BALANCE User requests balance
WITHDRAWL User asks to withdraw money
BYE user all done

Messages from Server to ATM machine (display)

Msg name purpose
PASSWD Ask user for PIN (password)
OK last requested operation (PASSWD, WITHDRAWL)
ERR last requested operation (PASSWD, WITHDRAWL) in ERROR
AMOUNT sent in response to BALANCE request
BYE user done, display welcome screen at ATM

Correct operation:

client server
HELO (userid) --------------> (check if valid userid)
<------------- PASSWD
PASSWD --------------> (check password)
<------------- OK (password is OK)
BALANCE -------------->
<------------- AMOUNT
WITHDRAWL --------------> check if enough $ to cover withdrawl
<------------- OK
ATM dispenses $
BYE-------------->
<-------------BYE

In situation when there’s not enough money:

client server
HELO (userid) --------------> (check if valid userid)
<------------- PASSWD
PASSWD --------------> (check password)
BALANCE -------------->
<------------- AMOUNT
ATM <------------- OK (password is OK)
WITHDRAWL --------------> check if enough $ to cover withdrawl
<------------- ERR (not enough funds)
error msg displayed -------------->no $ given out
BYE -------------->
<------------- BYE

中文

这里不仅有一种解法,许多协议都可以满足条件,以下给出一个简单的版本

从ATM机到服务器的消息

消息名称 目的
HELO 让服务器知道ATM机上有卡,ATM卡将用户ID传送给服务器
PASSWD 用户输入 PIN,发送到服务器
BALANCE 用户请求取款
WITHDRAWL 用户请求取款的金额
BYE 完成服务

从ATM机到服务器的消息(显示屏打印)

消息名称 目的
PASSWD 向用户询问密码
OK 上次请求的动作(输入密码,取款)完成了
ERR 上次请求的动作(输入密码,取款)失败了
AMOUNT 输入请求金额
BYE 完成,打印下次光临

正确操作:

客户端 总服务器
HELO (userid) --------------> (检查是用户否合法)
(请输入密码) <------------- PASSWD
PASSWD --------------> (检查密码)
密码正确 <------------- OK (密码正确)
BALANCE --------------> (请求取款)
(输入取款金额) <------------- AMOUNT
WITHDRAWL --------------> (检查余额是否足够)
(账户余额足够) <------------- OK
(ATM 发钱)
BYE--------------> (服务结束)
(服务结束) <-------------BYE

在用户没有足够金额下的情况

客户端 总服务器
HELO (userid) --------------> (检查是用户否合法)
请输入密码 <------------- PASSWD
PASSWD --------------> (检查密码)
密码正确 <------------- OK (密码正确)
BALANCE --------------> (请求取款)
(输入取款金额) <------------- AMOUNT
WITHDRAWL --------------> (检查余额是否足够)
<------------- ERR (没有足够金额)
(打印金额不错的消息) -------------->(无金钱支出)
BYE --------------> 服务结束
服务结束 <------------- BYE

答案解析

可以看出,答案首先定义了几个名词的简写,随后在客户端与服务器之间做交互应答(如图1-2)

Problem 2

对于N端电路发送P个分组,请计算端到端距离为L链路速度为R的时延

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第3张图片
一个分组从一个路由器到另外一个路由器的时间为 L R \frac{L}{R} RL,在时刻 N ∗ L R \frac{N*L}{R} RNL第一个分组到达目的地,第二个分组储存在倒数第一个路由器中。第三个分组储存在倒数第二个路由器中,以此类推。在时刻 N ∗ L R + L R \frac{N*L}{R}+\frac{L}{R} RNL+RL时第二个分组到达目的地,同时第三个分组储存在倒数第一个分组中以此类推,根据这个逻辑,我们可以知道当时刻 N ∗ L R + ( P − 1 ) ∗ L R = ( N + P − 1 ) ∗ L R \frac{N*L}{R}+\frac{(P-1)*L}{R}=\frac{(N+P-1)*L}{R} RNL+RP1L=RN+P1L所有分组到达目的端点,总时延为 ( P − 1 ) ∗ L R \frac{(P-1)*L}{R} RP1L

Problem 3

考虑一个应用程序以稳定的速率传输数据(例如,发送方每k个时间单元产生一个N比特的数据单元,其中k较小且固定)。另外,当这个应用程序启动时,它将连续运行相当长的一段时间考虑下列问题

  1. a. 是分组交换网络网适合这个应用还是电路交换网更为适合这种应用?
    计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第4张图片
    电路交换网络将非常适合该应用程序,因为该应用程序涉及具有可预测的平滑带宽需求的长会话。由于传输速率是已知的,而不是突发的,可以为每个应用会话保留带宽而不会造成重大浪费。此外,设置和拆卸连接的开销费用将在典型应用程序会话的长时间内摊销。

  2. b.假定采用了分组交换网络,并且该网中所有的流量都来自如上述所述的应用程序,该应用程序数据传输速率的总和小于每条链路的各自容量。需要控制某种形式的拥塞控制吗?
    计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第5张图片
    在最坏的情况下,所有应用程序同时通过一个或多个网络链路进行传输。但是,由于每个链路都有足够的带宽来处理所有应用程序的数据速率的和,因此不会发生拥塞(很少的排队)。鉴于如此慷慨的链路容量,网络不需要拥塞控制机制。

Problem 4

考虑在图1-13中的电路交换网。回想在每条链路上有4条链路,以顺时针方向标记四台交换机A、B、C和D。
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第6张图片

a.在该网络中,任何时候能够进行同时连接的最大数量是多少?

a) Between the switch in the upper left and the switch in the upper right we can have 4
connections. Similarly we can have four connections between each of the 3 other
pairs of adjacent switches. Thus, this network can support up to 16 connections.

在左上角和右上角的开关之间,我们可以有4个连接。类似地,我们可以在其他3对相邻的交换机之间有4个连接。因此,该网络最多可以支持16个连接。

b.假定所有连接位于交换机A和C之间。能够进行同时连接的最大数量是多少?

b) We can 4 connections passing through the switch in the upper-right-hand corner and
another 4 connections passing through the switch in the lower-left-hand corner,
giving a total of 8 connections.
我们可以有4个连接通过右上角的开关,另外可以有4个连接通过左下角的开关,总共有8个连接。

c.假定我们要在交换机A和C之间建立4条连接,在交换机B和D之间建立另外4条连接。我们能够让这些呼叫通过这4条链路建立路由以容纳所有8条连接吗?

c) Yes. For the connections between A and C, we route two connections through B and
two connections through D. For the connections between B and D, we route two
connections through A and two connections through C. In this manner, there are at
most 4 connections passing through any link.

c)是的。对于A和C之间的连接,我们通过B路由两个连接,而两个连接通过 D. 对于B和D之间的连接,我们通过A连接两个连接,两个连接通过 C. 通过这种方式,最多有4个连接通过任何链接。

Problem 5.回顾在1.4节中的车队的类比。假定传播速度还是100km/h。

a.假定车队旅行150km:在一个收费站前面开始,通过第二个收费站,并且在第三个收费站后面结束。其端到端时延是多少?

a) There are ten cars. It takes 120 seconds, or 2 minutes, for the first tollbooth to service
the 10 cars. Each of these cars has a propagation delay of 45 minutes (travel 75 km)
before arriving at the second tollbooth. Thus, all the cars are lined up before the
second tollbooth after 47 minutes. The whole process repeats itself for traveling
between the second and third tollbooths. It also takes 2 minutes for the third tollbooth
to service the 10 cars. Thus the total delay is 96 minutes.

a)有十辆车。第一个收费站服务10辆汽车需要120秒,或2分钟。在到达第二个收费站之前,每辆车都要延迟45分钟(到达75公里)。因此,所有的车在47分钟后都在第二个收费站前排队。整个过程在第二个收费站和第三个收费站之间重复运行。第三个收费站还需要2分钟来服务10辆车。因此,总的延迟时间为96分钟。

b.重复(a),现在假定车队中有8辆汽车而不是10辆。

b) Delay between tollbooths is 812 seconds plus 45 minutes, i.e., 46 minutes and 36
seconds. The total delay is twice this amount plus 8
12 seconds, i.e., 94 minutes and
48 seconds.
b)在收费站之间的延迟为812秒加上45分钟,即46分36秒。总延迟是这个的两倍加上812秒,即94分48秒。

P6.这个习题开始探讨传播时延和传输时延,这是数据网络中的两个重要概念。考虑两台主机A和B由一条速率为R bps的链路相连。假定这两台主机相隔m米,沿该链路的传播速率为s m/s。主机A向主机B发送长度L比特的分组。

a.用m和s来表示传播时延dprop。
b.用L和R来确定该分组的传输时间dtrans。
c.忽略处理和排队时延,得出端到端时延的表达式。
d.假定主机A在时刻t=0开始传输该分组。在时刻t=dtrans,该分组的最后一个比特在什么地方?
e.假定dprop大于dtrans。在时刻t=dtrans,该分组的第一个比特在何处?
f.假定dproc小于dtrans。在时刻t=dtrans,该分组的第一个比特在何处?
g.假定s=2.5×108,L=120比特,R=56kbps。求出使dproc等于dtrans的距离m。
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第7张图片

a. m/s

b. L/R

c. m/s + L/R

d. 刚刚离开主机A

e. 在链路上传播

f. 已经到达主机B

P7.我们考虑从主机A向主机B通过分组交换网发送语音(VoIP)。主机A将模拟语音转换为传输中的64kbps数字比特流。然后主机A将这些比特分为56字节的分组。A和B之间有一条链路:它的传输速率是2Mbps,传播时延是10ms。一旦A收集了一个分组,就将它向主机B发送。一旦主机B接收到一个完整的分组,它将该分组的比特转换成模拟信号。从比特产生(从位于主机A的初始模拟信号起)的时刻起,到该比特被解码(在主机B上作为模拟信号的一部分),花了多少时间?

Consider the first bit in a packet. Before this bit can be transmitted, all of the bits in the
1.packet must be generated. This requires 56 ∗ 8 64 ∗ 1 0 3 \frac{56*8}{64*10^{3}} 64103568
2.The time required to transmit the packet is 56 ∗ 8 2 ∗ 1 0 6 \frac{56*8}{2*10^{6}} 2106568
3.Propagation delay = 10 msec.
A similar analysis shows that all bits experience a delay of 17.224 msec

考虑到一个数据包中的第一位。在传输此位之前,必须生成数据包中的所有位。这需要 56 ∗ 8 64 ∗ 1 0 3 \frac{56*8}{64*10^{3}} 64103568 = 7ms

接着从解码之后的传输时间需要 56 ∗ 8 2 ∗ 1 0 6 \frac{56*8}{2*10^{6}} 2106568= 0.224ms

然后传播到主机B的传播时间是10ms

最后有一个问题是,这道题目是否考虑主机B的解码时间,如果不考虑的话总时间就是7 + 10 + 0.224 = 17.224ms;如果考虑的话题目并没有给出,假设是xms,那么就是(17.224 + x)ms

P8.假定用户共享一条3Mbps的链路。又设每个用户传输时要求150kbps,但是每个用户仅有10%的时间传输。(参见1.3节中关于“分组交换与电路交换的对比”的讨论。)(该题难度较大,我也看不懂,给大家答案自行分析)

a.当使用电路交换时,能够支持多少用户?
b.对于本习题的后续小题,假定使用分组交换。求出给定用户正在传输的概率。
c.假定有120个用户。求出在任何给定时刻,实际有n个用户在同时传输的概率。(提示:使用二项式分布。)
d.求出有21个或更多用户同时传输的概率。

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第8张图片

P9.考虑在1.3节“分组交换与电路交换的对比”的讨论中,给出了一个具有一条1Mbps链路的例子。用户在忙时以100kbps速率产生数据,但忙时仅以p=0.1的概率产生数据。假定用1Gbps链路替代1Mbps的链路。(估计是概率论的题跳过)

a.当采用电路交换技术时,能被同时支持的最大用户数量N是多少?

b.现在考虑分组交换和有M个用户的情况。给出多于N用户发送数据的概率公式(用p、M、N表示)。

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第9张图片

P10.考虑一个长度为L的分组从端系统A开始,经3段链路传送到目的端系统。令di、si和Ri表示链路i的长度、传播速度和传输速率(i=1,2,3)。该分组交换机对每个分组的时延为dproc。假定没有排队时延,根据di、si、Ri(i=1,2,3)和L,该分组总的端到端时延是什么?现在假定该分组是1500字节,在所有3条链路上的传播时延是2.5×108m/s,所有3条链路的传输速率是2Mbps,分组交换机的处理时延是3ms,第一段链路的长度是5000km,第二段链路的长度是4000km,并且最后一段链路的长度是1000km。对于这些值,该端到端时延为多少?

The first end system requires L/R1 to transmit the packet onto the first link; the packet
propagates over the first link in d1/s1; the packet switch adds a processing delay of dproc;
after receiving the entire packet, the packet switch connecting the first and the second
link requires L/R2 to transmit the packet onto the second link; the packet propagates over
the second link in d2/s2. Similarly, we can find the delay caused by the second switch and
the third link: L/R3, dproc, and d3/s3.
Adding these five delays gives
dend-end= L/R1 + L/R2 + L/R3 + d1/s1 + d2/s2 + d3/s3+ dproc+ dproc
To answer the second question, we simply plug the values into the equation to get 6 + 6 +
6 + 20+16 + 4 + 3 + 3 = 64 msec.

第一端系统需要L/R1将分组传送到第一链路,分组在 d 1 s 1 \frac{d1}{s1} s1d1中的第一链路传播,分组交换增加dproc的处理延迟,接收到整个包后,连接第一和第二链路的分组交换需要 L R 2 \frac{L}{R2} R2L传送到第二链路,分组在 d 2 s 2 \frac{d2}{s2} s2d2中通过第二链路传播。同样地,我们也可以找到由第二个开关和第三个链接引起的延迟: d 3 s 3 \frac{d3}{s3} s3d3、dproc和 L R 3 \frac{L}{R3} R3L。添加这五个延迟给数据端= L / R 1 + L / R 2 + L / R 3 + d 1 / s 1 + d 2 / s 2 + d 3 / s 3 + d p r o c L/R1+L/R2+L/R3+d1/s1+d2/s2+d3/s3+dproc L/R1+L/R2+L/R3+d1/s1+d2/s2+d3/s3+dproc
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第10张图片

套一下公式得到是64ms

P11.在上述习题中,假定R1=R2=R3=R且dproc=0。进一步假定该分组交换机不存储转发分组,而是在等待分组到达前立即传输它收到的每个比特。这时端到端时延为多少?

Because bits are immediately transmitted, the packet switch does not introduce any delay;
in particular, it does not introduce a transmission delay. Thus,
dend-end= L / R + d 1 / s 1 + d 2 / s 2 + d 3 / s 3 L/R + d1/s1 + d2/s2+ d3/s3 L/R+d1/s1+d2/s2+d3/s3
For the values in Problem 10, we get 6 + 20 + 16 + 4 = 46 msec.

由于比特不被留在交换机中直接被转发,所以端到端的时延也就是最后一个比特的时延。首先最后一个比特需要被处理到链路上,也就是L/R,然后需要经过3段链路的时延 d 1 / s 1 + d 2 / s 2 + d 3 / s 3 d1/s1 + d2/s2 + d3/s3 d1/s1+d2/s2+d3/s3。最后算出来结果是46ms

P12.一台分组交换机接收一个分组并决定该分组应当转发的出链路。当某分组到达时,另一个分组正在该出链路上被发送到一半,还有4个其他分组正等待传输。这些分组以到达的次序传输。假定所有分组是1500字节并且链路速率是2Mbps。该分组的排队时延是多少?在更一般的情况下,当所有分组的长度是L,传输速率是R,当前正在传输的分组已经传输了x比特,并且已经在队列中有n个分组,其排队时延是多少?

The arriving packet must first wait for the link to transmit 4.5 *1,500 bytes = 6,750 bytes
or 54,000 bits. Since these bits are transmitted at 2 Mbps, the queuing delay is 27 msec.
Generally, the queuing delay is ( n L + ( L − x ) ) / R . (nL + (L - x))/R. (nL+(Lx))/R.

到达的数据包必须首先等待链路传输4.5*1,500字节=6,750字节或54,000位。由于这些位以2Mbps传输,因此排队延迟为27毫秒。通常,排队延迟为 ( n L + ( L − x ) ) / R (nL+(L-x))/R nL+Lx/R

P13.

a.假定有N个分组同时到达一条当前没有分组传输或排队的链路。每个分组长为L,链路传输速率为R。对N个分组而言,其平均排队时延是多少?
The queuing delay is 0 for the first transmitted packet, L/R for the second transmitted
packet, and generally, (n-1)L/R for the n th transmitted packet. Thus, the average delay
for the N packets is:
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第11张图片

bIt takes
LN / Rseconds to transmit the Npackets. Thus, the buffer is empty when a each batch of N
packets arrive. Thus, the average delay of a packet across all batches is the average delay within one batch, i.e., (N-1)L/2R…
现在假定每隔LN/R秒有N个分组同时到达链路。一个分组的平均排队时延是多少?
由于 L N / R 比 ( N − 1 ) ∗ L / 2 R LN/R比(N - 1) * L / 2R LN/R(N1)L/2R大,所以在下一次N个分组来之前,上一次N个分组已经处理完了,没有额外排队时延,所以平均排队时延依然是 ( N − 1 ) ∗ L / 2 R (N - 1) * L / 2R (N1)L/2R

P14.考虑路由器缓存中的排队时延。令I表示流量强度;即I=La/R。假定排队时延的形式为IL/R(1-I),其中I<1。

a.写出总时延公式,即排队时延加上传输时延。
b.以L/R为函数画出总时延的图。

a.
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第12张图片

b.上式化简

P15.令a表示在一条链路上分组的到达率(以分组/秒计),令μ表示一条链路上分组的传输率(以分组/秒计)。基于上述习题中推导出的总时延公式(即排队时延加传输时延),推导出以a和μ表示的总时延公式。

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第13张图片

由于传输率是μ,所以传输时间为1/μ = L/R
排队时间由上题得到是IL/R(1 - I),然后又有I = La/R
利用这三个式子,把I、L、R全部消除然后化简就得到了1/(μ - a)

P16.考虑一台路由器缓存前面的一条出链路。在这个习题中,将使用李特尔(Little)公式,这是排队论中的一个著名公式。令N表示在缓存中的分组加上被传输的分组的平均数。令a表示到达链路的分组速率。令d表示一个分组历经的平均总时延(即排队时延加传输时延)。李特尔公式是N=a×d。假定该缓存平均包含10个分组,并且平均分组排队时延是10ms。该链路的传输速率是100分组/秒。使用李特尔公式,在没有丢包的情况下,平均分组到达率是多少?

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第14张图片

假设已经被传输了1个分组
那么N = 10 + 1 = 11
d = 10/1000s + 1/100s = 0.02
所以a = N/d = 550

P17.

a.对于不同的处理速率、传输速率和传播时延,给出1.4.3节中式(1-2)的一般表达式。
b.重复(a),不过此时假定在每个结点有平均排队时延dqueue。
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第15张图片

P18.在一天的3个不同的小时内,在同一个大陆上的源和目的地之间执行Traceroute。(略)

a.在这3个小时的每个小时中,求出往返时延的均值和方差。
b.在这3个小时的每个小时中,求出路径上的路由器数量。在这些时段中,该路径发生变化了吗?
c.试图根据源到目的地Traceroute分组通过的情况,辨明ISP网络的数量。具有类似名字和/或类似的IP地址的路由器应当被认为是同一个ISP的一部分。在你的实验中,在相邻的ISP间的对等接口处出现最大的时延了吗?
d.对位于不同大陆上的源和目的地重复上述内容。比较大陆内部和大陆之间的这些结果。

(读者有兴趣可以自行实验)linux系统可以通过traceroute命令,windows可以通过tracert命令

P19.a.访问站点www.traceroute.org,并从法国两个不同的城市向位于美国的相同的目的主机执行Traceroute。在这两个Traceroute中,有多少条链路是相同的?大西洋沿岸国家的链路相同吗?(略)

b.重复(a),但此时选择位于法国的一个城市和位于德国的另一个城市。
c.在美国挑选一个城市,然后向位于中国的两个不同城市的主机执行Traceroute。在这两次Traceroute中有多少链路是相同的?在到达中国前这两个Traceroute分开了吗?

(读者有兴趣可自行尝试)如果文中网站无法进入可以尝试使用问题实验链接

P20.考虑对应于图1-20b吞吐量的例子。现在假定有M对客户-服务器而不是10对。用Rs、Rc和R分别表示服务器链路、客户链路和网络链路的速率。假设所有的其他链路都有充足容量,并且除了由这M对客户-服务器产生的流量外,网络中没有其他流量。推导出由Rs、Rc、R和M表示的通用吞吐量表达式。

Throughput = min{Rs, Rc, R/M}
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第16张图片

P21.考虑图1-19b。现在假定在服务器和客户之间有M条路径。任两条路径都不共享任何链路。路径k(k=1,…,M)是由传输速率为Rk1、Rk2、…、RkN的N条链路组成。如果服务器仅能够使用一条路径向客户发送数据,则该服务器能够取得的最大吞吐量是多少?如果该服务器能够使用所有M条路径发送数据,则该服务器能够取得的最大吞吐量是多少?

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第17张图片!

P22.考虑图1-19b。假定服务器与客户之间的每条链路的丢包概率为p,且这些链路的丢包率是独立的。一个(由服务器发送的)分组成功地被接收方收到的概率是多少?如果在从服务器到客户的路径上分组丢失了,则服务器将重传该分组。平均来说,为了使客户成功地接收该分组,服务器将要重传该分组多少次?

Probability of successfully receiving a packet is: ps= ( 1 − p ) N (1-p)^{N} (1p)N. The number of transmissions needed to be performed until the packet is successfully
received by the client is a geometric random variable with success probability ps. Thus,
the average number of transmissions needed is given by: 1/ps . Then, the average number
of re-transmissions needed is given by: 1/ps -1.

( 1 − p ) n (1-p)^{n} (1p)n

因为第一次不属于重传

P23.考虑图1-19a。假定我们知道沿着从服务器到客户的路径的瓶颈链路是速率为Rs bps的第一段链路。假定我们从服务器向客户发送紧接着的一对分组,且沿这条路径没有其他流量。假定每个分组的长度为L比特,两条链路具有相同的传播时延dprop。

a.在目的地,分组的到达间隔时间有多大?也就是说,从第一个分组的最后一个比特到达到第二个分组最后一个比特到达所经过的时间有多长?
b.现在假定第二段链路是瓶颈链路(即Rc 计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第18张图片
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第19张图片

a. L/Rs

b. 是有可能的,考虑一下极端情况Rc=0,就会发生排队。T必须至少L/Rc - L/Rs

P24. 假设你希望从波士顿到洛杉矶紧急传送40 x 1012字节数据。你有一条100Mbps专用链路可用于传输数据。你是愿意通过这条链路传输数据,还是愿意使用FedEx一夜快递?解释你的理由。

40 terabytes = 40 ∗ 1 0 12 ∗ 8 40 * 10^{12 * 8} 4010128 bits. So, if using the dedicated link, it will take 40 ∗ 1 0 12 ∗ 8 40 * 10^{12 * 8} 4010128 (100 *106) =3200000 seconds = 37 days. But with FedEx overnight delivery, you can guarantee the data arrives in one day, and it should cost less than $100.

如果选择链路传输数据,那么需要 40 x 1012 x 8 / 100Mbps = 37天,所以还是选择FedEx一夜快递吧。。

P25.假定两台主机A和B相隔20000km,由一条直接的R=2Mbps的链路相连。假定跨越该链路的传播速率是2.5×108m/s。

!](https://img-blog.csdnimg.cn/7d8fbe9b9ea94e16a9480bc2644c0a73.png)

a.计算带宽-时延积R·tprop。
b.考虑从主机A到主机B发送一个800000比特的文件。假定该文件作为一个大的报文连续发送。在任何给定的时间,在链路上具有的比特数量最大值是多少?
c.给出带宽-时延积的一种解释。
d.在该链路上一个比特的宽度(以米计)是多少?它比一个足球场更长吗?
e.根据传播速率s、带宽R和链路m的长度,推导出一个比特宽度的一般表示式。
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第20张图片

a. Rtprop = 2Mbps x 20000km/(2.5 x 108)m/s = 160000

b. 160000,因为带宽-时延积就是任一时间链路上具有的比特最大数量,公式如何推出来的见e小问

c. 带宽-时延积就是任一时间链路上具有的比特最大数量,公式如何推出来的见e小问

d. 比特数量是160000,链路长度是20000km,所以可以算出来一个比特是125米,应该跟足球场差不多长了吧。。

e. 首先推一下链路上具有的比特最大数量,设一共有L个比特
传播时延是m/s,传输时延是L/R
那么传播时延占传输时延的百分比就是(m/s)/(L/R) = mR/sL,也就是说过了mR/sL秒之后,链路上就占满比特了
因为一共有L个比特,所以任一时间链路上具有的比特最大数量是L * mR/sL = mR/s,也就是带宽-时延积
那么宽度就是m / (mR/s) = s/R

P26.对于习题P25,假定我们能够修改R。对什么样的R值,一个比特的宽度能与该链路的长度一样长?

s/R=20000km, then R=s/20000km= 2.5 ∗ 1 0 8 / ( 2 ∗ 1 0 7 ) 2.5*10^{8}/(2*10^{7}) 2.5108/(2107)= 12.5 bps
s/R = m,求出来R是12.5bps

P27.考虑习题P25,但现在链路的速率是R=1Gbps。

a.计算带宽-时延积R·dprop。
b.考虑从主机A到主机B发送一个800000比特的文件。假定该文件作为一个大的报文连续发送。在任何给定的时间,在链路上具有的比特数量最大值是多少?
c.在该链路上一个比特的宽度(以米计)是多少?

在这里插入图片描述

a. 8 ∗ 1 0 7 8 * 10^{7} 8107

b. 8 x 1 0 5 8 x 10^{5} 8x105,这里的带宽-时延积不是任一时间链路上具有的比特最大数量,是因为传输时延比传播时延小,也就是说比特还没到达终点的时候,已经全部在链路上了

c. 0.25m

P28.再次考虑习题P25。

a.假定连续发送,发送该文件需要多长时间?
b.假定现在该文件被划分为20个分组,每个分组包含40000比特。假定每个分组被接收方确认,确认分组的传输时间可忽略不计。最后,假定前一个分组被确认后,发送方才能发送分组。发送该文件需要多长时间?
c.比较(a)和(b)的结果。
在这里插入图片描述

a. 0.48s

b. 2s

c. 显然第一个更小,主要是浪费在传播时延上了

P29.假定在同步卫星和它的地球基站之间有一条10Mbps的微波链路。每分钟该卫星拍摄一幅数字照片,并将它发送到基站。假定传播速率是2.4×108m/s。

a.该链路的传播时延是多少?
b.带宽-时延积R·dprop是多少?
c.若x表示该照片的大小。对于这条微波链路,能够连续传输的x最小值是多少?

首先要知道同步卫星距离地球的高度约为36000km
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第21张图片

a. dprop = 0.15s

b. 1500000

c. 由于卫生每分钟拍摄一次照片,所以在这60s之内需要把前一行照片传输完毕(注意是传输完毕不是传播完毕,只要传输到链路上就行了,不用等到达地球),所以算出来是6 x 108比特的传输时间是60秒

P30.考虑1.5节中我们在分层讨论中对航线旅行的类比,随着协议数据单元向协议栈底层流动,首部在增加。随着旅客和行李移动到航线协议栈底部,有与上述首部信息等价的概念吗?

Let’s suppose the passenger and his/her bags correspond to the data unit arriving to the
top of the protocol stack. When the passenger checks in, his/her bags are checked, and a
tag is attached to the bags and ticket. This is additional information added in the
Baggage layer if Figure 1.20 that allows the Baggage layer to implement the service or
separating the passengers and baggage on the sending side, and then reuniting them
(hopefully!) on the destination side. When a passenger then passes through security and
additional stamp is often added to his/her ticket, indicating that the passenger has passed
through a security check. This information is used to ensure (e.g., by later checks for the
security information) secure transfer of people.

(机翻)假设乘客及其行李对应于到达协议堆栈顶部的数据单元。当乘客办理登机手续时,检查行李,并在行李和车票上附上标签。如果图1.20允许行李层实现行李服务,或分离乘客和行李,然后重新合并(希望!)在目的地的一侧。当乘客通过安检时,在票上经常加上额外的印章,表明乘客已经通过了安全检查。此信息用于确保(例如,通过以后检查安全信息)人员的安全转移。

一句话就是登机牌就是首部,这样飞机就能知道你要去哪里

P31.在包括因特网的现代分组交换网中,源主机将长应用层报文(如一个图像或音乐文件)分段为较小的分组并向网络发送。接收方则将这些分组重新装配为初始报文。我们称这个过程为报文分段。图1-27显示了一个报文在报文不分段或报文分段情况下的端到端传输。考虑一个长度为8×106比特的报文,它在图1-27中从源发送到目的地。假定在该图中的每段链路是2Mbps。忽略传播、排队和处理时延。

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第22张图片
计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第23张图片

a.考虑从源到目的地发送该报文且没有报文分段。从源主机到第一台分组交换机移动报文需要多长时间?记住,每台交换机均使用存储转发分组交换,从源主机移动该报文到目的主机需要多长时间?
b.现在假定该报文被分段为800个分组,每个分组10000比特长。从源主机移动第一个分组到第一台交换机需要多长时间?从第一台交换机发送第一个分组到第二台交换机,从源主机发送第二个分组到第一台交换机各需要多长时间?什么时候第二个分组能被第一台交换机全部收到?
c.当进行报文分段时,从源主机向目的主机移动该文件需要多长时间?将该结果与(a)的答案进行比较并解释之。
d.除了减小时延外,使用报文分段还有什么原因?
e.讨论报文分段的缺点。

a. 4s,12s

b. 5ms, 都是5ms, 10ms

c. 只关注最后一个分组即可,最后一个分组需要等待799个5ms才能发送,然后需要3个5ms到达目的主机,所以一共需要802个5ms,也就是4.01s,比a的12s小很多。因为分组交换机必须等待把一个分组都收到后才能转发这个分组,如果这个分组非常非常大,那么可能等待的时间很长,而分成很多小分组的话,就可以先把先收到的小分组转发出去,这样就减少了等待时间。最极端的例子就是不等待整个分组再转发,而是收到一个bit就转发一个bit,这样就几乎没有等待的时间了。

d. 减小交换机处理分组的压力(可能交换机的内存很小,一次不能处理整个文件那么大,但是一次可以处理一个分组那么大);并且当一个很大的分组正在处理时,可能后面很小的分组需要排队等很久;还有就是当比特丢失或者错位时,一次需要全部重传,如果分成若干分组的话,哪个分组比特有错误就重传这个分组就行了

e. 每个分组都需要加上一些额外的信息(比如序列号),因为到达目的主机后需要重新把这些分组合并起来,所以总体的大小是比以前整个文件的大小大的

P32.用本书的Web网站上的报文分段小Java小程序进行实验。该程序中的时延与前一个习题中的时延相当吗?链路传播时延是怎样影响分组交换(有报文分段)和报文交换的端到端总时延的?

JAVA小程序地址
Yes, the delays in the applet correspond to the delays in the Problem 31.The propagation
delays affect the overall end-to-end delays both for packet switching and message
switching equally

是的,小程序中的延迟对应于问题31中的延迟。传播延迟对包交换和消息交换的总体端到端延迟都影响相同

P33.考虑从主机A到主机B发送一个F比特的大文件。A和B之间有两段链路(和两台交换机),并且该链路不拥塞(即没有排队时延)。主机A将该文件分为每个为S比特的报文段,并为每个报文段增加一个80比特的首部,形成L=80+S比特的分组。每条链路的传输速率为R bps。求出从A到B移动该文件时延最小的值S。忽略传播时延。(看不懂)

计算机网络:自顶向下 第一章 课后习题参考答案(官方文档中文解析)_第24张图片

P34. Skype提供了一种服务,使你能用PC向普通电话打电话。这意味着语音呼叫必须通过因特网和电话网。讨论这是如何做到的。

The circuit-switched telephone networks and the Internet are connected together at “gateways”. When a Skype user (connected to the Internet) calls an ordinary telephone, a circuit is established between a gateway and the telephone user over the circuit switched network. The skype user’s voice is sent in packets over the Internet to the gateway. At the gateway, the voice signal is reconstructed and then sent over the circuit. In the other direction, the voice signal is sent over the circuit switched network to the gateway. The gateway packetizes the voice signal and sends the voice packets to the Skype user.

(机翻)电路交换的电话网络和互联网通过“网关”连接在一起。当Skype用户(连接到因特网)呼叫普通电话时,通过电路交换网络在网关和电话用户之间建立一个电路。skype用户的语音通过互联网以数据包的形式发送到网关。在网关上,重建语音信号,然后通过电路发送。在另一个方向上,语音信号通过电路交换网络被发送到网关。网关打包语音信号,并将语音数据包发送给Skype用户。

大概就是应该是中间有一层服务器做转发,网络电话通过把语音信号经过数字化处理、压缩编码打包、透过网络传输给服务器,然后服务器解压、把数字信号还原成声音,再拨打出去

结语

完成这篇文章后,我松了一口气,感觉前面的内容学的轻松而又愉快,但是到了课后习题往往不那么友好,完成这篇文章的难度十分的巨大,由于英语水平有限,很多内容无法很好的回答。希望这篇文章能帮助到所有在学习这本书的人顺利完成习题。加油!

你可能感兴趣的:(计算机网络,计算机网络自顶向下,习题解答)