计算机网络7章习题及参考答案0722.docx

上传人:b****7 文档编号:9855449 上传时间:2023-02-07 格式:DOCX 页数:18 大小:70.38KB
下载 相关 举报
计算机网络7章习题及参考答案0722.docx_第1页
第1页 / 共18页
计算机网络7章习题及参考答案0722.docx_第2页
第2页 / 共18页
计算机网络7章习题及参考答案0722.docx_第3页
第3页 / 共18页
计算机网络7章习题及参考答案0722.docx_第4页
第4页 / 共18页
计算机网络7章习题及参考答案0722.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

计算机网络7章习题及参考答案0722.docx

《计算机网络7章习题及参考答案0722.docx》由会员分享,可在线阅读,更多相关《计算机网络7章习题及参考答案0722.docx(18页珍藏版)》请在冰豆网上搜索。

计算机网络7章习题及参考答案0722.docx

计算机网络7章习题及参考答案0722

第7章运输层

1.对比数据链路层和运输层的运行环境。

答案:

在某些方面运输协议类似于数据链路层协议,例如,它们都必须解决差错控制、报文顺序、流量控制及其它问题。

但是二者之间也存在显著的差异。

(1)这些差异主要是因为两个协议所运行的环境不同而造成的。

首先,在数据链路层,路由器的每一条输出线将对应唯一的一个路由器,故不必为路由器指明它要与哪个路由器通话。

而运输层跨越整个通信子网,故需要明确地给出目的端地址。

其次,因为另一端总是存在的,故在物理信道上建立数据链路连接的过程很简单。

但运输层初始连接的建立就要复杂得多。

(2)数据链路层和运输层之间另一重大区别来源于子网具有存储能力。

(3)数据链路层与运输层的另一个区别表现在数量上(连接的数目及分配给每个连接的缓冲区数目)。

在数据链路层,一般为每个连接分配固定数目的缓冲区。

而在运输层,由于需要管理很大数目的连接,因此,每个连接当前可用缓冲区是动态变化的。

2.在表7-1的运输原语例子中,LISTEN是一个阻塞调用。

这是必要的吗?

如果不是,

请解释如何才有可能使用一个非阻塞的原语。

与阻塞调用的方案相比,你的方案有什么优点?

答案:

可使用一个非阻塞的原语LISTEN,该LISTEN调用指出建立新连接的愿望而非阻塞。

当一个连接尝试出现时,LISTEN调用方会得到一个信号,然后LISTEN调用方就可执行某个动作,比方说OK或者REJECT,以接受或拒绝该连接。

在表7-1的方案中,缺乏这种灵活性。

3.想象用两步握手过程而不是三步握手过程来建立连接。

换句话说,第三个消息不再需要了。

现在有可能死锁吗?

请给出一个例子,或者证明死锁不存在。

答案:

死锁是有可能的。

例如,一个分组到达A,A确认了它。

但是如果确认在传输途中丢失了,A现在将是打开的,而B一点儿也不知道发生了什么。

现在同样的事情将发生在B身上,B是打开的,但正期待着A送回的不同的序列号。

因此,必需引入超时来避免这种死锁。

4.泛化的n-军问题(n支蓝军对一支白军),任何两支蓝军达成一致意见之后仍能取胜。

是否存在一个能保证蓝军必胜的协议?

答案:

否。

在n支蓝军对一支白军的时候,这个问题在本质上并不改变。

5.数据报的分片和重组由IP控制,请问TCP需要关心到达数据的失序问题吗?

答案:

尽管到达的每个数据报都是完整的,但到达的数据报顺序可能是错误的,因此TCP必须能按顺序重组报文的各个部分。

6.UDP较之TCP的优势何在?

在什么情况下,UDP更能满足应用的需要?

答案:

UDP虽然不可靠,但在很多情况下,UDP较之TCP有其优势。

由于UDP是无连接的,带来的延迟,就小,也不必为保持连接的状态而监测一些参数,这就减轻了CPU的负担。

UDP首部仅8字节,开销小。

特别是因为UDP不用进行流控和拥塞控制,因而响应快,更能充分利用网络的传输能力。

因而UDP对远程文件服务(NFS)、流式多媒体、IP电话、SNMP、RIP、DNS等应用更适合,即更能满足其应用的需要。

7.比较主机到主机的协议(IP)和端口到端口协议(TCP和UDP)。

答案:

IP是一个主机到主机的协议,即IP从源主机向目标主机传送数据报,它能将数据报从一个物理设备传递到另一个物理设备。

端口到端口的协议则在多路复用和分用的基础上实现应用进程在Internet中的远程通信,它工作在IP协议的上层。

8.在139.44.77.7主机上的TFTP服务器向14.91.93.33主机上的TFTP客户发送报

文时使用的一对插口可能是什么?

答案:

可能使用的一对插口是:

(139.44.77.769)和(14.91.93.33n)。

9.为了解决系统崩溃后机器会丢失全部存储信息的问题,Tomlinson建议为每台主机增设一个计时时钟。

不同主机的时钟不需同步。

假定每个时钟都采用二进制计数器形式,在统一的时间间隔内累加计数。

要求计数器的位数(Q)必须等于或大于序列号的位数(k),并假定时钟一直在运转,即便主机停机也是如此。

当建立一个连接时,就将此刻时钟的低k位作为该连接的起始序号。

禁区是将起始序号线向左平移一个时间T而得出的,不允许数据单元(即TPDU)的序号落入禁区之中。

考虑下面的问题,一个使用15(即k=15)位的计数器来产生初始序号的时钟驱动机构,

每100毫秒发一时钟脉冲。

分组最长生命周期T为60s。

问多长时间需重新同步一次?

(a)最坏情况。

(b)每分钟发240个TPDU。

答案:

首先画出禁区,如图7-1所示:

图7-1禁区图

时钟循环一次需32768(215)个脉冲,即3276.8s。

则①OM的方程为(直线)n=10t;

②M’N的方程为n=10(t-3276.8);

③禁区线M”N”的方程为n=10(t-3216.8).

重新同步发生在一个连接所使用的连接顺序号从左边进入禁区时。

(a)在最坏情况下(沿横轴最快进入禁区)

a的方程n=0,

求与禁区线交点的t坐标:

0=10(t-3216.8),

解得t=3216.8s。

(b)每分钟发240个TPDU

则每秒发4个TPDU,

b的方程n=4t

求与禁区线交点的t坐标:

4t=10(t-3216.8),∴6t=3216.8*10

解得t=32168/6=5361.3s

10.讨论一下运输层由接收方动态调整接收窗口的流量控制协议(又称为信用量协议)和数据链路层滑动窗口协议的优点和缺点。

答案:

数据链路层滑动窗口很简单,只有少量的参数(窗口边缘)需要管理。

此外,不会发生一个窗口先增加而后减少的问题。

然而,运输层由接收方动态调整接收窗口的流量控制协议更加灵活,允许一个与确认分开的滑动缓存管理,。

11.考虑一个建立在UDP基础上的简单应用层协议,它允许客户从一个远程服务器获取文件,而且该服务器位于一个众所周知的地址上。

客户首先发送一个请求,该请求中包含了文件名,然后服务器以一个数据分组序列作为响应,这些数据分组包含了客户所请求的文件的不同部分。

为了确保可靠性和顺序递交,客户和服务器使用了停-等协议。

忽略显然存在的性能问题,你还看得到这个协议的另一个问题吗?

请仔细想一想进程崩溃的可能性。

答案:

客户完全有可能得到错误文件。

假设客户A为获取文件f1发送一个请求,随后客户A就崩溃了。

稍后,另一个客户B使用相同的协议为获取另一个文件f2发送请求。

假设客户B和A运行在同一机器上(同一IP地址),将它的UDP套接字或插口(socket)绑在同一端口(A早先使用过的)。

此外,假设B的请求丢失了。

当服务器的回答(对A的请求)到达时,客户B将接收它并假设(错误地)是对它自己请求的回复。

12.UDP和TCP在递交消息的时候,都使用端口号来标识目标实体。

请给出两个理由说明为什么这两个协议要发明一个新的抽象ID(端口号),而不是使用进程ID(虽然在设计这两个协议的时候,进程ID早已经存在了)。

答案:

这里有三个原因。

第一,进程ID是操作系统指定的。

使用进程ID可能使这些协议依靠操作系统。

第二,单一进程可能建立多个通信信道。

让一个单独的进程ID(每个进程只有一个ID)

作为目的地标识符,区分不了这些信道。

第三,所有的进程去监听众所周知的端口都是容易的,但是监听众所周知的进程ID却

是不可能的。

13.为什么要使用UDP?

让用户进程直接发送原始的IP分组不就足够了吗?

答案:

仅仅使用IP分组还不够。

IP分组包含IP址,该地址指定一个目的地机器。

一旦这样的分组到达了目的地机器,网络控制程序如何知道该把它交给哪个进程呢?

UDP分组包含一个目的地端口,这一信息是必需的,因为有了它,分组才能被投递给正

确的进程。

14.在主机1上的一个进程被分配端口P,在主机2上的一个进程被分配端口Q。

试问,

在这两个端口之间是否可以同时有两条或多条TCP连接?

答案:

不可以。

一条连接仅仅用它的插口标识。

因此,(1,P)和(2,Q)这一对插口是在这两个端口之间惟一可能的连接。

15.一个TCP报文段的最大载荷是65515字节,为什么要选择这样一个数字?

答案:

整个TCP报文段必须适配IP分组65535字节的载荷段。

因为TCP头最少20个字节,所以仅剩下65515字节用于TCP数据。

16.TCP报文段的数据部分长24字节,分别计算在运输层、网际层和网络接口层的效

率(传输的数据部分与总字节数的比),假定TCP和IP首部均无选项,网络接口层使用以太网。

答案:

运输层的效率=24/(20+24)=24/44=6/11

网际层的效率=24/(20+20+24)=24/64=6/16=3/8

网络接口层(含以太网开销18字节及物理层的前同步码8字节)的效率

=24/(8+18+20+20+24)=24/90=4/15

17.TCP实体在1Gb/s的通道上使用65535字节的发送窗口,单程延迟时间等于10ms。

问可以取得的最大吞吐率是多少?

线路效率是多少?

答案:

10ms×2=20ms

每20ms可以发送一个窗口大小的通信量,每秒50个窗口(1000ms÷20ms=50)。

65535×8×50=26.214Mb/s

26.214Mb/s÷1000Mb/s≈2.6%

所以,最大吞吐率是26.214Mb/s,线路效率约为2.6%.

18.一个TCP连接使用256kb/s的链路,其端到端延时为128ms。

经测试发现吞吐量

只有128kb/s。

试问窗口是多少?

忽略PDU封装的协议开销以及接收方应答分组的发送时间(假定应答分组长度很小)。

答案:

来回路程的时延等于256ms(即128ms×2),设窗口值为X(注意,以字节为单位)假定一次最大发送量等于窗口值,且发送时间等于256ms,那么,每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可。

这样,只要发送时间等于停下来等待应答的时间(256ms),测到的平均吞吐率就将等于链路速率的一半,即128kb/s。

发送时间[8X÷(256×1000)]=[256×0.001]停下来等待应答的时间(256ms)

于是窗口值为:

X=256×1000×256×0.001÷8=256×32=8192字节。

19.用户进程A通过一条运输层连接向用户B进程发报文。

每个报文长度是128B。

户进程B取报文、处理报文的时间为10ms(等长报文,B取报文和处理报文,所花时间都相等),发送窗口为16。

子网通信能力能满足发送需要。

由于子网的存储及延时,使接收端的数据到达分布近似于泊松分布。

报文从发送到ACK返回的时间平均为200ms。

求接收端主机运输层进程中缓冲空间平均存储的字节数。

答案:

接收端主机中的排队模型如图7-2所示:

图7-2接收端主机中的排队模型

用户进程B处理一个报文10毫秒,每秒处理100个(定长服务时间),μc=80。

发端传16个报文,窗口锁住,直到T=200ms为止(报文从发送到ACK返回的时间平均为200ms)。

即,200毫秒可发16个,每秒可发80个。

因为子网传送能力能满足需求,也即不会阻塞,则,每秒有80个(平均)到达接收端主机运输层进程的buffer中。

等长报文,所以是M/D/1系统:

即λ=80/s(泊松流),p=λ/(μc)=0.8。

平均队长=ρ(2-ρ)/[2(1-ρ)]=0.8(2-0.8)/[2(1-0.8)]=2.4个报文,

buffer中字节数128*2.4=307.2字节。

20.发送方TCP收到一TCP报文段,确认序号=22001,窗口=1000,画出发送方TCP

的发送窗口;收到下一个TCP报文段,其确认序号=24001,窗口=800,画出发送方TCP新的发送窗口。

答案:

如图7-3所示:

发送方TCP收到一TCP报文段,确认序号=22001,窗口=1000,发送方TCP的发送

窗口为[22001,23000];

收到下一个TCP报文段,其确认序号=24001,窗口=800,发送方TCP新的发送窗口

为[24001,24800]。

2200124001窗口后沿

2300024800窗口前沿

图7-3发送方TCP的发送窗口

21.将本章图7-17的最后一行与图7-16对照(此2图本无关,但该时刻可互相参照),

此时,前沿的移动值为何值?

主机A发送窗口前沿位于何处?

主机A发送窗口后沿位于何处?

说明理由并标注在图7-16上。

答案:

主机A向B发送数据,主机B在三个确认报文段中,都设置了接收窗口值RW(即图7-17

中的WIN),从而三次改变了发送窗口,即进行了三次流量控制。

在图7-17的最后一行中,ACK=601,WIN=0,于是,窗口前沿后沿均将位于600处(发送窗口为零)。

因为此前窗口前沿为700,故前沿的移动值为-100。

如图7-4所示:

新的窗口后沿新的窗口前沿

图7-4标注在图7-16上的新的窗口

22.接收窗口=4000位,距离4000km,光纤中光速为200000km/s,假定链路费用与链路容量成正比,运输层一次发送接收窗口大小的报文段,设链路容量由该运输连接独占,并设接收方处理报文段和发送ACK的时间忽略不计。

请计算,链路容量取何值时,信道利用率为50%。

答案:

因为信道利用率=发送时间/(往返时延+发送时间)=50%,已知往返时延=40ms,可得发送时间=40ms。

于是链路容量=4000比特/发送时间=4000比特/40ms=100比特/ms=100kbps。

23.分析TCP的流量控机制和拥塞控制机制。

答案:

请参考7.4.6TCP的流量控制和7.4.7TCP的拥塞控制两节。

24.将TCP的拥塞控制机制改为,一旦超时,则将门限窗口TW减少一个确定的数n,这

种拥塞控制机制还能收敛到同等共享的状态吗?

试用图解方法分析之。

答案:

不能。

为进一步简化问题,仍然采用“计算机网络原理与设计”一书7.4.7TCP

的拥塞控制一节中的思想,考虑到慢启动阶段持续时间较短,假设TCP连接就在线性规律增长与加速递减模式下工作,如“计算机网络原理与设计”一书图7-20所示的锯齿形特性。

于是,可得如图7-5所示的工作特性:

图7-5改变后的TCP拥塞控制机制工作特性

设初始工作点位于带宽利用不足区的某处,在拥塞控制机制的作用下,每传输1次(经

过RTT时间),两个连接都将其窗口加1,于是工作点会沿45°线移动。

设到达B点时,两个连接的吞吐量会使报文段丢失(B位于负载超过带宽区),于是连接1和连接2均将门限窗口TW减少一个确定的数n,设新的工作点为A,显然,BA与横轴呈45度角。

设新的工作点A位于带宽利用不足区,于是工作点又会沿45°的AB线向上移动。

按本题的拥塞控制机制,工作点就会沿45°的AB线来回移动,这样继续下去,两个TCP连接永远不可能收敛到同等共享的状态。

25.Internet标准推荐将以下三种拥塞控制技术结合起来使用,即慢启动,拥塞避免

和加速递减。

请结合图7-18说明上述三种拥塞控制技术是怎样操作的。

答案:

“慢启动”是指每当出现超时,拥塞窗口都降低到1,使报文段缓慢地注入网络,在拥塞控制的这个阶段,CW以指数规律增长(不能超过TW),考虑到CW初值为1,于是把这个阶段称为慢启动(Slow-Start)。

当CW达到当前的门限值TW,拥塞窗口就改变为线性规律增长,每次加1。

把这个阶段称为拥塞避免(CongestionAvoidance)。

“拥塞避免”是指当拥塞窗口增大到门限窗口值时,就将拥塞窗口指数增长速率降低为线性增长速率,以避免网络拥塞很快出现。

只要每次发送的报文段的确认都能在超时之前返回,拥塞避免阶段就一直继续下去,直到由于该TCP连接上的发送速率持续增长,以至于导致路径上某处出现拥塞、导致报文段丢失、发生超时为止。

这时,就将门限窗口TW设置为当前拥塞窗口CW的一半,而CW则重置为1。

这些操作称为加速递减(multiplicativedecrease)。

随后发送方又开始新的慢启动过程。

因为“加速递减”将使门限窗口值减半,若超时频繁出现,则门限窗口减小的速率就将是很快的。

26.在TCP首部中,除了32位Acknowledgementnumber(确认号)域以外,在第4个字中还有一个ACK位。

这是否真正加入了有用的信息呢?

为什么是或为什么不是?

答案:

ACK比特用来区别32位Acknowledgementnumber(确认号)域是否使用。

在连接建立期间,ACK比特扮演着至关重要的角色,三次握手中的第二个和第三个报文段都要使用它。

27.请描述进入到图7-13的SYNRCVD状态的两种方法。

答案:

第一种方法是以LISTEN启动(被动打开)。

如果接收到一个SYN,协议进入SYNRCVD状态。

另一种方法是这样开始的:

当一个进程试图主动打开并发送SYN时(它进入SYNSENT状态),如果这时另一边也正在打开,前者接收到一个SYN,它就进入SYNRCVD状态了(同时打开)。

28.考虑在一条往返时间为10ms的无拥塞线路上使用慢启动算法的效果。

接收窗口为24KB,最大报文段长度为2KB。

请问需要多长时间才发送满窗口的数据?

答案:

由于是无拥塞线路,即不需设置拥塞窗口,发送窗口就等于接收方设置的接收窗口RW。

因为最大报文段长度为2KB,故慢启动算法的第一次传输(在0ms,时间起点)会是1个最大报文段,然后是2、4和8,发送窗口分别含有2K、4K、8K和16KB。

接下来的第五次传输(在40ms时)是24KB(达到接收窗口值)。

所以需要40ms才发送满窗口的数据

29.假设TCP的拥塞窗口为18KB时出现了超时。

如果接下来的4次传输全部成功的话,当时的拥塞窗口将是多大?

假设最大报文段长度为1KB。

答案:

假定接收方不进行流量控制,即接收方不设置接收窗口RW,于是发送方的发送窗口就将取拥塞窗口CW的值。

因为TCP的拥塞窗口为18KB时,出现了一个超时。

于是,接下来进入慢启动阶段,门限窗口TW为9KB。

接下来的传输先是1个最大报文段,然后分别是2、4和8个最大报文段。

所以在接下来的4次传输全部成功后,当时的拥塞窗口将会是8KB。

30.当老的分组仍然存在时,为了避免出现顺序号循环重复问题,可以使用64位顺序

号。

光纤在理论上可以用75Tb/s(1012)的速率工作,试问,需要什么样的最长的分组生命周期才能确保未来的75Tb/s网络在使用64位顺序号时不出现顺序号循环重复的问题?

假定像TCP那样,每个字节都有自己的序号。

答案:

顺序号空间的大小是264个字节,约为2×1019字节。

75÷8=9.375,即75Tb/s的发送器每秒消耗9.375×1012个序列号。

2×1019÷(9.375×1012)≈2×106。

所以顺序号循环一周需用2×106秒,一天有86400s,以75Tb/s的速率发送,顺序号循环一周所花的时间约等于2×106÷86400≈23(天),因此,只要最长的分组生命周期小于3个星期,就可以避免顺序号循环重复问题。

31.一台主机在一条线路上发送1500字节的TCP净荷,其中最大分组生存期为120秒,要想不让序列号重叠,该线路的速度最快为多少?

将TCP、IP和以太网的开销都考虑进去,假设以太网帧可以被连续发送。

答案:

最大分组生存期120秒内不让序列号回绕,就要求每120秒最多发送232净荷字节,或者每秒最多发送35791394净荷字节,也就是每秒最多发送23860帧(1500字节/帧)。

TCP首部固定部分(开销)是20字节,IP首部固定部分(开销)也是20字节,以太网首部(开销)是26字节。

这意味着1500字节的TCP净荷,实际上要发送1566字节。

要想不让序列号回绕,就要求每秒最多发送23860帧,每帧为1566字节,即要求该线路的速度最快只能是299Mbps。

如果发送速度(该线路的速度)比299Mbps还快,我们就会遇上两个不同TCP报文段同时具有同样的序列号的危险(即序列号重叠)。

32.假设你正在测量接收一个TPDU所需要的时间。

当一个中断发生的时候,你读出系统时钟的值(以毫秒为单位)。

当TPDU被完全处理之后,你再次读出时钟的值。

你测量的结果是:

270000次为0ms,730000次为1ms。

请问,接收一个TPDU需要多长时间?

答案:

接收一个TPDU所需时间计算如下:

(270,0000+730,0001)ms/1,000,000=730s。

33.一个CPU执行指令的速度为1000MIPS。

数据的复制可以按每次64位来进行,每个字的复制动作需要花费10条指令。

如果一个进来的分组要被复制4次,那么,这个系统能处理一条1Gbps的线路吗?

为了简单起见,假设所有的指令,包括读或者写内存的指令,都在1000MIPS的全速率上运行。

答案:

需要410=40指令去复制8个字节。

40个指令需要40ns。

因此,每个字节需要5ns的CPU时间来复制。

系统因此能够处理200MB/s或者1600Mbps。

如果没有其它瓶颈,它可以处理一个1Gbps的线路。

34.已知,一条千兆位线路每秒钟可以向主机转储80000个分组,但是主机只有6250条指令用于处理每个分组,剩下一半CPU时间留给应用系统。

这个计算过程假设每个分组的大小为1500字节。

请针对ARPANET的分组长度(128字节)重新计算一遍。

在这两次计算中,都假设所给出的分组长度包含了所有的开销。

答案:

因为ARPANET的分组长度为1500字节分组的11.72分之一,仍为千兆位线路,所以要处理的ARPANET的分组数为11.7280000。

于是,主机只有6250/11.72即533条指令用于处理每个分组。

35.请为下面的信道计算网络的带宽延迟积:

(1)64Kbps;

(2)以太网(10Mbps)。

假设双向传输延迟时间为100ms。

请回忆一下,本章曾经提到过,TCP头有16位保留用于

窗口大小(WindowSize)根据你的计算,能想出有什么隐含的意义吗?

答案:

网络的带宽延迟积(bandwidth-delayproduct)为带宽(单位为b/s)与双向传输延迟时间(单位为s)的乘积,即往返于发送方和接收方之间的信道的容量(单位为比特),它对网络性能的影响很大。

(1)0.8KB;

(2)125KB。

一个16bit的窗口尺寸意味着发送方在等待一个响应到达之前最多可以发送64KB。

意味着在以太网上,发送方不能使用TCP连续地传输以保持管道(发送方和接收方之间)全满。

36.在一个网络中,最大TPDU的尺寸为128B,最大的TPDU存活时间为30s,使用8

位序列号,问每条连接的最大数据速率是多少?

答案:

具有相同编号的TPDU不应该同时在网络中传输,必须保证,当序列号循环回来重复使用的时候,具有相同序列号的TPDU已经从网络中消失。

现在存活时间是30秒,那么在30秒的时间内发送方发迭的TPDU的数目不能多于256个。

256×128×8÷30=8738b/s

所以,每条连接的最大数据速率是8.738kb/s。

37.一个客户机通过1×109b/s的光缆发送128B的请求给位于100km以外的服务

器。

在该远程过程调

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1