声明
本书为《计算机网络:自顶向下方法》(第六版),也就是图片上的那本。所有的课后复习题和习题答案均为个人理解,若有错误或不足的地方欢迎大家在评论中指出。
习题
P1. 设计并描述在自动柜员机和银行的中央计算机之间使用的一种应用层协议。你的协议应当允许验证用户卡和口令,查询账目结算(这些都在中央计算机系统中进行维护),支取账目(即向用户支付钱)。你的协议实体应当能够处理取钱时账目中钱不够的常见问题。通过列出自动柜员机和银行中央计算机在报文传输和接收过程中交换的报文和采取的动作来定义你的协议。使用类似于图1-2所示的图,拟定在简单无差错取钱情况下该协议的操作。明确地阐述在该协议中关于底层端到端运输服务所作的假设。
P2.式(1-1)给出了经传输速率为R的N段链路发送长度L的一个分组的端到端时延。对于经过N段链路连续地发送P个这样的分组,一般化地表示出这个公式。
如果是P个分组,那么最后一个分组到达的时间就是总共的时间,所以我们只需要关注最后一个分组就可以了
首先第二个分组发送出去之前,第一个分组必须已经到达第一个路由器,这时候需要消耗L/R,同理,第三个分组需要等待第二个分组发送到第一个路由器,也就是L/R + L/R,以此类推,第P个分组需要等待前面的分组都发送出去,也就是(P - 1) * L/R
然后第P个分组从端到端需要的时间是N * L/R
所以总共的时间也就是(N + P - 1) * L/R
P3.考虑一个应用程序以稳定的速率传输数据(例如,发送方每k个时间单元产生一个N比特的数据单元,其中k较小且固定)。另外,当这个应用程序启动时,它将连续运行相当长的一段时间。回答下列问题,简要论证你的回答:
a.是分组交换网还是电路交换网更为适合这种应用?为什么?
b.假定使用了分组交换网,并且该网中的所有流量都来自如上所述的这种应用程序。此外,假定该应用程序数据传输速率的总和小于每条链路的各自容量。需要某种形式的拥塞控制吗?为什么?
a. 电路交换网,因为发送速率稳定,而且运行时间较长,用电路交换不会占用太多空闲资源。
b. 不需要,因为假定了该应用程序数据传输速率的总和小于每条链路的各自容量
P4.考虑在图1-13中的电路交换网。回想在每条链路上有4条链路,以顺时针方向标记四台交换机A、B、C和D。
a.在该网络中,任何时候能够进行同时连接的最大数量是多少?
b.假定所有连接位于交换机A和C之间。能够进行同时连接的最大数量是多少?
c.假定我们要在交换机A和C之间建立4条连接,在交换机B和D之间建立另外4条连接。我们能够让这些呼叫通过这4条链路建立路由以容纳所有8条连接吗?
a. 16,A->B四条,B->C四条,C->D四条,D->A四条
b. 8,A->B->C四条,A->D->C四条
c. 可以,A->B->C两条,A->D->C两条,B->C->D两条,B->A->D两条
P5.回顾在1.4节中的车队的类比。假定传播速度还是100km/h。
a.假定车队旅行150km:在一个收费站前面开始,通过第二个收费站,并且在第三个收费站后面结束。其端到端时延是多少?
b.重复(a),现在假定车队中有8辆汽车而不是10辆。
a. 3个收费站一共旅行150km也就是说每个收费站距离是75km,车队从第一个收费站前面开始到处理完毕需要12 * 10 = 120秒 = 2分钟的处理时间,然后从第一个收费站到第二个收费站前面需要75 / 100 = 45分钟的传播时间,然后通过第二个收费站依然需要2分钟处理时间,再从第二个收费站到第三个收费站需要45分钟传播时间,最后第三个收费站需要2分钟处理时间。一共需要2 + 75 + 2 + 75 + 2 = 96分钟
b. 和前一题一样,传播时间依然是45分钟,而处理时间变为12 * 8 = 96秒,所以一共需要96s + 45min + 96s + 45min + 96s = 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