当前位置:   article > 正文

对计算机网络用户而言,计算机网络(自顶向下方法)(原书第4版)课后复习题解答(第三章)...

计算机网络自顶向下方法:第三章 运输层 答案

第三章 运输层

3.1.1 假定网络层提供了下列服务。源主机中的网络层接受最大长度为1200字节和来自运输层的目的主机地址的报文端。网络层则保证将报文段交付给位于目的主机的运输层。假定在目的主机上能够运行许多网络应用进程。

a.设计最简单的运输层协议,该协议将使应用程序数据到达目的主机上所希望的进程。假设目的主机中的操作系统已经为每个运行的应用进程分配一个4字节的端口号。

b.修改这个协议,使它向目的进程提供一个“返回地址”。

c.在你的协议中,该运输层在计算机网络核心中“什么也不做”吗?

答(a):略。

答(b):略。

答(c):略。

3.1.2 考虑有一个星球,每个人都有一个六口之家,每个家庭都住在自己的房子里,每个房子都有一个唯一的地址,并且每个家庭中的每个人都有一个唯一的名字。假定该星球有一个从源家庭到目的家庭交付信件的邮政服务。该邮件服务要求:(1)在一个信封中有一封信;(2)在信封上清楚地写上目的家庭(并且没有其他东西)的地址。假设每个家庭有一名家庭成员代表为家庭中的其他成员收集和分发信件。这些信没有必要提供接受者。

a.使用对上面问题1的解决方案作为启发,描述家庭成员代表能够使用的协议,以便从发送家庭成员向接收家庭成员交付信件。

b.在你的协议中,该邮政服务必须打开信封并检查信件内容才能提供其服务吗?

答(a):略。

答(b):略。

3.1.3 考虑在主机A和主机B之间有一条TCP连接。假设从主机A传送到主机B的TCP报文段使用的源端口号是x,目的端口号是y。那么对于从主机B传送到主机A的TCP报文段而言,源端口号和目的端口号分别是多少?

答:源端口号是y,目的端口号是x。

3.1.4 描述应用程序开发者为什么更倾向于选择在UDP上运行应用程序而不是在TCP上运行。

答:应用层能更好地控制要发送的数据和发送时间;无需连接建立;无连接状态;分组首部开销小。

3.1.5 在今天的因特网中,为什么语音和视频流量常常是经TCP而不是UDP发送?(提示:答案与TCP的拥塞控制机制没有关系。)

答:因为大多数防火墙阻挡UDP流量,使用TCP可以穿过防火墙。

3.1.6 当应用程序运行在UDP上时,该应用程序是否能够得到可靠数据传输?如果能,如何实现?

答:可以。在应用程序自身中建立可靠性机制来完成,如增加确认和重传机制来实现。

3.1.7 假定主机c上的一个进程有一个端口号6789的UDP套接字。假定主机A和主机B都用目的端口号6789向主机C发送一个UDP报文段。这两台主机的这些报文段在主机C都被描述为相同的套接字吗?如果是这样的话,在主机C的该进程将怎样知道源于两台不同主机的这两个报文段?

答:不会,因为源端口号不相同。

3.1.8 假定在主机C的端口80上运行一个web服务器。假定这个web服务器使用持久连接,并且正在接受来自两台不同主机A和B的请求。被发送的所有请求都通过位于主机C的相同套接字吗?如果他们通过不同的套接字传递,这两个套接字都具有端口80吗?讨论并解释。

答:不是的,是通过不同的套接字连接到主机C的。主机C通过解析TCP报文段首部中的源IP地址和源端口号,根据两者的不同来区分不同的报文段的。

3.4.9 在rdt协议中,为什么需要引入序号?

答:接收方可以通过序号来确定新到达的报文段是新的还是重发的。

3.4.10 在rdt协议中,为什么需要引入定时器?

答:如果发送方在确定时间中,没有收到请求,则认为分组已经丢失,则会重发分组。

3.4.11 假定发送方和接受方之间的往返时延是固定的并且为发送方所知,假设分组能够丢失的话,在协议rdt3.0中,仍需要定时器吗,试解释之。

答:需要,为了检测丢失,对于发送者,仍然需要定时器。

3.4.12 在配套网站上使用回退N布Java小程序。

a.让源发送5个分组,在这5个分组任何一个到达目的地之前暂停该动画,然后毁掉第一个分组并继续该动画,描述发生的情况。

b.重复该实验,只是现在让第一个分组到达目的地并毁掉第一个确认。再次描述发生的情况。

c.最后,尝试发送6个分组。发生了什么情况?

答:略。

3.4.13 重复12题,但是现在使用选择重传Java小程序。选择重传和回退N步有什么不同?

答:略。

3.5.14 是否判断题:

a. 主机A通过一条TCP连接向主机B发送一个大文件。假设主机B没有数据发往主机A。因为主机B不能随数据捎带确认信息,所以主机B将不向主机A发送确认。

b. 在连接的整个过程中,TCP的RcvWindow的长度不会变化。

c. 假设主机A通过一条TCP连接向主机B发送一个大文件。主机A发送的未被确认的字节数不会超过接收缓存的大小。

d. 假设主机A通过一条TCP连接向主机B发送一个大文件。如果对于这次连接的一个报文段序列号为m,则对于后继报文段的序列号必然为m+1。

e. TCP报文段在它的首部中有一个RcvWindow字段。

f. 假定在一条TCP连接中最后的SampleRTT等于1s,那么对于这一连接的TimeoutInterVal的当前值必定≥1s。

g. 假定主机A通过一条TCP连接向主机B发送一个序号为38的4字节报文段。这个报文段的确认号必定是42。

答(a):错误。TCP连接中,如果主机B没有数据要发往主机,它就不能随数据捎带确认信息,但是,TCP要求B必须发送确认,因此B将向A发送非捎带的确认信息。

答(b):错误。RcvWindow的值是动态的,它是表示连接的缓存中还有多少空间。

答(c):正确。

答(d):错误。顺序号的设定是以传送的字节流为单位,而不是以报文段为单位。一个报文段的顺序号是该报文段中数据段的第一个字节在字节流中的编号 。

答(e):正确。

答(f):错误。超时时间是EstimatedRTT 和SampleRTT的函数,不能由一个SampleRTT值决定。

答(g):错误。在某些情况下接受方会发送一个重复的ACK,所以确认号还是42。

3.5.15 假定主机A通过一条TCP连接向主机B连续发送两个TCP报文段。第一个报文段的序号为90,第二个报文段的序号为110。

a.第一个报文段中有多少数据?

b.假设第一个报文段丢失而第二个报文段到达主机B,那么在主机B发往主机A的确认报文中,确认号应该是多少?

答(a):20个字节数据。

答(b):确认号是90。

3.5.16 考虑3.5节中讨论的Telnet的例子。在键入字符C数秒之后,用户又键入字符R。那么在用户键入字符R之后,总共发送了多少个报文段?这个报文段中的序号和确认号字段应该填入什么?

答: 3 个报文段.第一个报文段: seq = 43, ack =80,data=’R’;第二个报文段: seq = 80, ack = 44,data=’R’;第三个报文段: seq = 44, ack = 81

3.7.17 假设两个TCP连接存在于一个带宽为R bps的瓶颈链路上。它们都要发送一个很大的文件(以相同方向经过瓶颈链路),并且两者是同时开始发送文件。那么TCP将为每个连接分配多大的传输速率?

答:R/2

3 .7.18 是非判断题。考虑TCP的拥塞控制,发送方定时器超时时,其阀值将被设置为原来值的一半。

答:错误。它将被设置为拥塞值的一半。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/483119
推荐阅读
相关标签
  

闽ICP备14008679号