计算机网络原理(谢希仁第八版)第五章课后习题答案

第五章

35题,36题已经做了更正,特别感谢粉丝奈七七的答案。
1.试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?
答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务 运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。 各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。
2.网络层提供数据报或虚电路服务对上面的运输层有何影响?
答:网络层提供数据报或虚电路服务不影响上面的运输层的运行机制。 但提供不同的服务质量。
3.当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向无连接的?
答:都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的。
4.试用画图解释运输层的复用。画图说明许多个运输用户复用到一条运输连接上,而这条运输连接有复用到IP数据报上。
答:
在这里插入图片描述
在图中,主机H3同时和主机H1和主机H2进行通信。H1和H3两个应用进程(HTTP和SMTP)进行通信,这需要使用两个TCP连接。这两个TCP连接所传送的报文段,使用下面的网络层IP数据报进行传送。H2和H3的应用进程(HTTP)进行通信,这需要使用一个TCP进行连接。这个TCP连接所传送的报文段,也要使用下面的网络层IP数据报进行传送。在网络层所传送的IP数据报已看不到运输层以上的复用情况。
5.试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠TCP。
答:VOIP:由于语音信息具有一定的冗余度,人耳对VOIP数据报损失由一定的承受度,但对传输时延的变化较敏感。有差错的UDP数据报在接收端被直接抛弃,TCP数据报出错则会引起重传,可能带来较大的时延扰动。因此VOIP宁可采用不可靠的UDP,而不愿意采用可靠的TCP。
6.接收方收到有差错的UDP用户数据报时应如何处理?
答:丢弃。
7.如果应用程序愿意使用UDP来完成可靠的传输,这可能吗?请说明理由。
答:可能,但应用程序中必须额外提供与TCP相同的功能。
8.为什么说UDP是面向报文的,而TCP是面向字节流的?
答:发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,课分拆/合并),但维持各字节。
9.端口的作用是什么?为什么端口要划分为三种?
答:端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。熟知端口,数值一般为0——1023.标记常规的服务进程;登记端口号,数值为1024——49151,标记没有熟知端口号的非常规的服务进程。
10.试说明运输层中伪首部的作用。
答:用于计算运输层数据报校验和。
11.某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?
答:不可跳过UDP而直接交给IP层IP数据报IP报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程。UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。
12.一个应用程序用UDP,到IP层把数据报在划分为4个数据报片发送出去,结果前两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试问:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中。
答:不行。重传时,IP数据报的标识字段会有另一个标识符。仅当标识符相同的IP数据报片才能组装成一个IP数据报。前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。
13.一个UDP用户数据的数据字段为8192字节。在数据链路层要使用以太网来传送。试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值。
答:UDP数据报 = 首部8字节 + 数据部分组成。
因为数据字段为8192字节,所以数据报总长度 = 8192 + 8 = 8200 字节。
以太网的最大传输单元MTU = 1500。
因为要划分为几个IP数据报,而每个IP数据报的首部占20字节,所以字段部分最大占1480字节。
划分的时候,可以划分为 8200 / 1480 = 5,余 800 字节。
所以应当划分为 6 个IP数据报片,前 5 个都是 1480 字节,第 6 个是 800 字节。一个字段即为8个字节。
第一个IP数据报字段长度:1480,第一片偏移字段:1480 * 0 / 8 = 0
第二个IP数据报字段长度:1480,第二片偏移字段:1480 * 1 / 8 = 185
第三个IP数据报字段长度:1480,第三片偏移字段:1480 * 2 / 8 = 370
第四个IP数据报字段长度:1480,第四片偏移字段:1480 * 3 / 8 = 555
第五个IP数据报字段长度:1480,第五片偏移字段:1480 * 4 / 8 = 740
第六个IP数据报字段长度:800, 第六片偏移字段:1480 * 5 / 8 = 925
UDP数据报的首部存在于第一个IP数据报片中,所以第一个IP数据报字段为:首部8字节 + 1472数据部分。
14.一UDP用户数据报的首部十六进制表示是:06 32 00 45 00 1C E2 17.试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是服务器发送给客户?使用UDP的这个服务器程序是什么?
解:源端口:1586(前4个字节0632)
目的端口:69(00 45)
用户数据报总长度:28 字节(00 1C,其中首部占8字节)
数据部分长度:20 字节
这个用户数据报是:从客户发送给服务器
服务器程序:TFTP。
UDP数据报由首部字段和数据字段组成,其中首部占8个字节(TCP数据报首部占20字节),格式如下:
在这里插入图片描述
以上求出的长度为UDP数据报的总长度28字节,由于UDP数据报的首部占8字节,所以数据字段长度占20字节
因为目的端口号 69 < 1023,是常用的服务端口,所以这个数据报是发往服务器端的
0~1023:常用的服务端口
1024~49151是被注册的端口,也成为“用户端口”
其中 1024~5000为临时端口
因为端口号为69,所以使用 UDP 的这个服务器程序是TFTP
TFTP:是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
15.使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有什么问题?
答:如果语音数据不是实时播放(边接受边播放)就可以使用TCP,因为TCP传输可靠。接收端用TCP讲话音数据接受完毕后,可以在以后的任何时间进行播放。但假定是实时传输,则必须使用UDP。 UDP不保证可靠付,但UCP比TCP的开销要小很多。因此只要应用程序接受这样的服务质量就可以使用UDP。
16.在停止等待协议中如果不使用编号是否可行?为什么?
答:不可行,分组和确认分组都必须进行编号,才能明确哪个分则得到了确认。
17.在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么也没做)是否可行?试举出具体的例子说明理由。
答:可行,比如收到重复的报文段不确认相当于确认丢失。
18.假定在运输层使用停止等待协议。发送发在发送报文段M0后再设定的时间内未收到确认,于是重传M0,但M0又迟迟不能到达接收方。不久,发送方收到了迟到的对M0的确认,于是发送下一个报文段M1,不久就收到了对M1的确认。接着发送方发送新的报文段M0,但这个新的M0在传送过程中丢失了。正巧,一开始就滞留在网络中的M0现在到达接收方。接收方无法分辨M0是旧的。于是收下M0,并发送确认。显然,接收方后来收到的M0是重复的,协议失败了。试画出类似于图5-9所示的双方交换报文段的过程。
答:在这里插入图片描述
我们可以看出,旧的M0被当成是新的M0!可见运输层不能使用停止等待协议(编号只有 0 和1 两种)。
19.试证明:当用 n 比特进行分组的编号时,若接收到窗口等于 1(即只能按序接收分组),当仅在发送窗口不超过 2 n − 1 2^n-1 2n1时,连接 ARQ 协议才能正确运行。窗口单位是分组。
答:
在这里插入图片描述
Ⅰ、设发送窗口记为 WT,接收窗口记为 WR。假定用 3 比特进行编号。设接收窗口正好在 7 号分组处(有阴影的分组)。
Ⅱ、发送窗口 WT的位置不可能比 ② 的位置更靠前。因为接收窗口的位置表明接收方正在等待接收 7 号分组,而这时的发送方不可能已经收到了对 7 号分组的确认。因此发送窗口必须包括 7 号分组,也就是不可能比 ② 的位置更靠前(前方就是图的右方)。
Ⅲ、发送窗口 WT的位置不可能比 ③ 的位置更靠后。因为接收窗口的位置表明接收方已经对 6 号分组(以及以前的分组)发送了确认。但如果发送窗口 WT的位置再靠后一个分组,即在 6 号分组的左边,那就表明还没有发送 6 号分组。但接收方的位置表明接收方已经发送了对 6 号分组的确认。这显然是不可能的。
Ⅳ、发送窗口 WT的位置可能在某个位置的中间,如 ①。
对于 ① 和 ② 的情况,在 WT的范围内必须无重复序号,即 WT 2 n 2^n 2n
对于 ③ 的情况,在 WT+ WR的范围内无重复序号,即 WT + WR 2 n 2^n 2n
现在 WR = 1,故发送窗口的最大值:WT 2 n − 1 2^n − 1 2n1
20.在连续 ARQ 协议中,若发送窗口等于 7,则发送端在开始时可连续发送 7 个分组。因此,在每一分组发送后,都要置一个超时计时器。现在计算机里只有一个硬时钟。设这 7 个分组发出的时间分别为 t0,t1,…t6,且tout都一样大。试问如何实现这 7 个超时计时器(这叫软件时钟法)?
答:
方法1:可采用链表记录,其信息域为分组的相对发送时间和分组编号来实现。当编号为 0 的分组定时时钟到期后,修改链表指针并重发此分组,同时将头指针指向编号为 1 的分组,以此类推。此类方法相当于数据结构算法里的链表建立的过程。我有一篇C++的链表文章,可以参考。
在这里插入图片描述
方法2:可以定义一个含有7个数据的数组,数组中的数据表示时间,当该组数据发送出去时,在对应序号的数组中填入时间值,该时间值是该组发送出去的时间+超时时间得到,如何不停的对该数组的值进行扫描,当接收到接收端的确认分组时,即将对应数组序号的时间值设置为空,准备记录下一个数据发发送时间,当系统时间大于数组中某一个时间值时,说明该分组以及超时了,需要进行重传。
21.使用连续 ARQ 协议中,发送窗口大小是 3,而序列范围 [0, 15],而传输媒体保证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是 5。试问:
(1)在发送方的发送窗口中可能有出现的序号组合有哪几种?
(2)接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。

答:
(1)在接收方,下一个期望收到的序号是 5。这表明序号到 4 为止的分组都已收到。若这些确认都已到达发送方,则发送窗口最靠前,其范围是 [5, 7]。
假定所有的分组都丢失了,发送方都没有收到这些确认。这时,发送窗口最靠后,应为 [2, 4]。因此,发送窗口可以是 [2, 4],[3, 5],[4, 6],[5, 7] 中的任何一个。
(2)接收方期望收到的序号 5 的分组,说明序号为 2,3,4 的分组都已收到,并且发送了确认。对序号为 1 的分组的确认肯定被发送方收到了,否则发送方不可能发送 4 号分组。可见,对序号为 2,3,4 的分组的确认有可能仍滞留在网络中。这些确认是用来确认序号为 2,3,4 的分组的。
22.主机 A 向主机 B 发送一个很长的文件,其长度为 L 字节。假定 TCP 使用的 MSS 有 1460 字节。
(1)在 TCP 的序号不重复使用的条件下,L 的最大值是多少?
(2)假定使用上面计算出文件长度,而运输层、网络层和数据链路层所使用的首部开销共 66 字节,链路的数据率为 10 Mb/s,试求这个文件所需的最短发送时间

答:(1)可能的序号共 2 32 2^{32} 232=4294967296 个。TCP 的序号是数据字段中每一个字节的编号,而不是每一个报文段的编号。因此,这一小题与报文段的长度无关,即用不到题目给出的 MSS 值。这个文件 L 的最大值就是可能的序号数,即 4294967296 字节。若1GB= 2 30 2^{30} 230B,则 L 的最大值为 4 GB。
(2)发送帧数等于数据字节/每帧的数据字节= 2 32 2^{32} 232/1460=2941758.422,需要发送 2941759 个帧。
帧首部的开销是 66×2941759 = 194156094 字节。
发送的总字节数 =

1. 什么是分层协议,它的优点是什么? 答:分层协议是一种将通信协议分成不同层次的方法。每个层次都负责一些特定的任务,而这些任务通常涉及对数据的转换、处理和传输。分层协议的优点包括: - 分层协议使得网络架构更加灵活,能够根据需要进行修改和扩展。 - 分层协议使得不同的网络设备能够进行互操作性,因为它们都使用了相同的协议。 - 分层协议可以使得协议的实现和维护更加容易,因为每个层次都有清晰的职责和功能。 2. OSI参考模型有哪些层次? 答:OSI参考模型包括以下七个层次: - 物理层:负责传输比特流,包括物理媒介、电气特性、传输速率等。 - 数据链路层:负责将比特流组织成帧,进行差错检测和纠正,以及访问共享介质。 - 网络层:负责将数据报从源节点传输到目的节点,包括路由选择、分组转发、流量控制等。 - 传输层:负责提供端到端的可靠传输,包括数据分段、流量控制、差错恢复等。 - 会话层:负责建立、管理和终止会话,包括会话的同步、检查点和恢复等。 - 表示层:负责数据的格式化、编码和解码,以及数据的加密和解密。 - 应用层:负责提供应用程序和用户之间的接口,包括文件传输、电子邮件、远程登录等。 3. TCP/IP协议族有哪些层次? 答:TCP/IP协议族包括以下四个层次: - 网络接口层:负责网络物理接口的管理,包括硬件驱动程序、网络适配器、MAC地址等。 - 网络层:负责数据包的路由和传输,包括IP协议、ARP协议、ICMP协议等。 - 传输层:负责提供可靠的端到端数据传输,包括TCP协议和UDP协议。 - 应用层:负责提供各种网络应用服务,包括HTTP协议、FTP协议、SMTP协议等。 4. TCP协议和UDP协议的区别是什么? 答:TCP协议和UDP协议是传输层的两种协议,它们的区别主要在以下几个方面: - 可靠性:TCP协议提供可靠的、有序的、端到端的数据传输,UDP协议则不保证数据的可靠性和顺序性。 - 连接性:TCP协议是面向连接的,需要建立连接后才能进行数据传输,UDP协议则是无连接的,可以直接进行数据传输。 - 带宽占用:TCP协议的带宽占用相对较高,因为它需要进行多次数据确认和重传,UDP协议则带宽占用较低。 - 应用场景:TCP协议适用于要求可靠传输的应用,如文件传输、电子邮件等;UDP协议适用于实时应用,如流媒体、视频通话等。 5. 什么是HTTP协议? 答:HTTP协议是一种应用层协议,用于在Web浏览器和Web服务器之间传输数据。它定义了Web客户端如何向Web服务器请求数据,并规定了Web服务器如何响应这些请求。HTTP协议使用TCP协议作为传输层协议,通过URL(Uniform Resource Locator)指定要获取的Web资源。HTTP协议的请求和响应都是由HTTP头和HTTP体组成,HTTP头包含了请求或响应的元数据,HTTP体包含了实际的数据。HTTP协议的版本包括HTTP/1.0、HTTP/1.1、HTTP/2.0等。
评论 110
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱栗创

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值