为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机网络7章习题及参考答案(20080722)

2018-12-05 18页 doc 90KB 77阅读

用户头像

is_841159

暂无简介

举报
计算机网络7章习题及参考答案(20080722)第7章 运输层 1.对比数据链路层和运输层的运行环境。 答案: 在某些方面运输协议类似于数据链路层协议,例如,它们都必须解决差错控制、报文顺序、流量控制及其它问题。但是二者之间也存在显著的差异。 (1)这些差异主要是因为两个协议所运行的环境不同而造成的。 首先,在数据链路层,路由器的每一条输出线将对应唯一的一个路由器,故不必为路由器指明它要与哪个路由器通话。而运输层跨越整个通信子网,故需要明确地给出目的端地址。其次,因为另一端总是存在的,故在物理信道上建立数据链路连接的过程很简单。但运输层初始连接的建立就要复杂得多。 (2)...
计算机网络7章习题及参考答案(20080722)
第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.7  69)和(14.91.93.33  n)。 9.为了解决系统崩溃后机器会丢失全部存储信息的问题,Tomlinson建议为每台主机增设一个计时时钟。不同主机的时钟不需同步。假定每个时钟都采用二进制计数器形式,在统一的时间间隔内累加计数。要求计数器的位数(Q)必须等于或大于序列号的位数(k),并假定时钟一直在运转,即便主机停机也是如此。当建立一个连接时,就将此刻时钟的低k位作为该连接的起始序号。禁区是将起始序号线向左平移一个时间T而得出的,不允许数据单元(即TPDU)的序号落入禁区之中。 考虑下面的问题,一个使用15(即k=15)位的计数器来产生初始序号的时钟驱动机构, 每100毫秒发一时钟脉冲。分组最长生命周期T为60 s。问多长时间需重新同步一次? (a)  最坏情况。 (b)  每分钟发240个TPDU。 答案:首先画出禁区,如图7-1所示: 图7-1  禁区图 时钟循环一次需32768(215 )个脉冲,即3276.8 s。 则① 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.3 s 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报文段的最大载荷是65 515字节,为什么要选择这样一个数字? 答案: 整个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个窗口(1 000ms÷20ms=50)。 65535×8×50=26.214Mb/s 26.214Mb/s÷1000Mb/s≈2.6% 所以,最大吞吐率是26.214Mb/s, 线路效率约为2.6%. 18.一个TCP连接使用256 kb/s的链路,其端到端延时为128 ms。经测试发现吞吐量 只有128 kb/s。试问窗口是多少?忽略PDU封装的协议开销以及接收方应答分组的发送时间(假定应答分组长度很小)。 答案: 来回路程的时延等于256ms(即128ms×2),设窗口值为X(注意,以字节为单位)假定一次最大发送量等于窗口值,且发送时间等于256ms,那么,每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可。这样,只要发送时间等于停下来等待应答的时间(256ms),测到的平均吞吐率就将等于链路速率的一半,即128 kb/s。 发送时间 [8X÷(256 ×1000)]=[256×0.001]停下来等待应答的时间(256ms) 于是窗口值为:  X=256× 1000 × 256 × 0.001÷8=256×32=8192字节。 19.用户进程A通过一条运输层连接向用户B进程发报文。每个报文长度是128 B。用 户进程B取报文、处理报文的时间为10 ms(等长报文,B取报文和处理报文,所花时间都相等),发送窗口为16。子网通信能力能满足发送需要。由于子网的存储及延时,使接收端的数据到达分布近似于泊松分布。报文从发送到ACK返回的时间平均为200 ms。求接收端主机运输层进程中缓冲空间平均存储的字节数。 答案:接收端主机中的排队模型如图7-2所示: 图7-2 接收端主机中的排队模型 用户进程B处理一个报文10毫秒,每秒处理100个(定长服务时间),μc=80。 发端传16个报文,窗口锁住,直到T=200ms为止(报文从发送到ACK返回的时间平均为200 ms)。  即, 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报文段,确认序号=22 001,窗口=1 000,画出发送方TCP 的发送窗口;收到下一个TCP报文段,其确认序号=24 001,窗口=800,画出发送方TCP新的发送窗口。 答案: 如图7-3所示: 发送方TCP收到一TCP报文段,确认序号=22 001,窗口=1 000,发送方TCP的发送 窗口为[22001,23000]; 收到下一个TCP报文段,其确认序号=24 001,窗口=800,发送方TCP新的发送窗口 为[24001,24800]。 22001              24001                            窗口后沿 23000              24800            窗口前沿 图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位,距离4000 km,光纤中光速为200 000km/s,假定链路费用与链路容量成正比,运输层一次发送接收窗口大小的报文段,设链路容量由该运输连接独占,并设接收方处理报文段和发送ACK的时间忽略不计。请计算,链路容量取何值时,信道利用率为50%。 答案: 因为信道利用率=发送时间/(往返时延+发送时间)= 50%,已知往返时延=40ms,可得发送时间=40ms。 于是链路容量=4000比特/发送时间=4000比特/40 ms  =100比特/ m s=100kbps。 23.分析TCP的流量控机制和拥塞控制机制。 答案: 请参考7.4.6  TCP的流量控制和7.4.7 TCP的拥塞控制两节。 24.将TCP的拥塞控制机制改为,一旦超时,则将门限窗口TW减少一个确定的数n,这 种拥塞控制机制还能收敛到同等共享的状态吗?试用图解分析之。 答案:不能。为进一步简化问题,仍然采用“计算机网络原理与设计”一书7.4.7 TCP 的拥塞控制一节中的思想,考虑到慢启动阶段持续时间较短,假设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。把这个阶段称为拥塞避免(Congestion Avoidance)。“拥塞避免”是指当拥塞窗口增大到门限窗口值时,就将拥塞窗口指数增长速率降低为线性增长速率,以避免网络拥塞很快出现。 只要每次发送的报文段的确认都能在超时之前返回,拥塞避免阶段就一直继续下去,直到由于该TCP连接上的发送速率持续增长,以至于导致路径上某处出现拥塞、导致报文段丢失、发生超时为止。这时,就将门限窗口TW设置为当前拥塞窗口CW的一半,而CW则重置为1。这些操作称为加速递减(multiplicative decrease)。随后发送方又开始新的慢启动过程。因为“加速递减”将使门限窗口值减半,若超时频繁出现,则门限窗口减小的速率就将是很快的。 26.在TCP首部中,除了32位Acknowledgement number(确认号)域以外,在第4个字中还有一个ACK位。这是否真正加入了有用的信息呢?为什么是或为什么不是? 答案: ACK比特用来区别32位Acknowledgement number(确认号)域是否使用。 在连接建立期间,ACK比特扮演着至关重要的角色,三次握手中的第二个和第三个报文段都要使用它。 27.请描述进入到图7-13的SYN RCVD状态的两种方法。 答案: 第一种方法是以LISTEN启动(被动打开)。如果接收到一个SYN,协议进入SYN RCVD状态。 另一种方法是这样开始的:当一个进程试图主动打开并发送SYN时(它进入SYN SENT状态),如果这时另一边也正在打开,前者接收到一个SYN,它就进入SYN RCVD状态了(同时打开)。 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×10 6秒,一天有86 400s,以75Tb/s的速率发送,顺序号循环一周所花的时间约等于2×10 6 ÷ 86400 ≈ 23(天),因此,只要最长的分组生命周期小于3个星期,就可以避免顺序号循环重复问题。 31.一台主机在一条线路上发送150节的TCP净荷,其中最大分组生存期为120秒,要想不让序列号重叠,该线路的速度最快为多少?将TCP、IP和以太网的开销都考虑进去,假设以太网帧可以被连续发送。 答案: 最大分组生存期120秒内不让序列号回绕,就要求每120秒最多发送232净荷字节,或者每秒最多发送35 791 394净荷字节,也就是每秒最多发送23 860帧(1500字节/帧)。 TCP首部固定部分(开销)是20字节,IP首部固定部分(开销)也是20字节,以太网首部(开销)是26字节。这意味着1500字节的TCP净荷,实际上要发送1566字节。
/
本文档为【计算机网络7章习题及参考答案(20080722)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索