软件测试管理

当前位置:首页 > 软件测试管理

《计算机网络:自顶向下方法》第三章 续9

习题


P1.假设客户A向服务器S发起一个Telnet会话。与此同时,客户B也向服务器s发起一个Telnet会话。给出下面报文段的源端口号和目的端口号:


a从A向S发送的报文段。


b.从B向S发送的报文段。


c.从S向A发送的报文段。


d.从S向B发送的报文段。


e.如果A和B是不同的主机,那么从A向s发送的报文段的源端口号是否可能与从B向S发送的报文段的源端口号相同?


f.如果它们是同一台主机,情况会怎么样?


P2.考虑图3-5。从服务器返回客户进程的报文流中的源端口号和目的端口号是多少?在承载运输层报文段的网络层数据报中,IP 地址是多少?


P3. UDP和TCP使用反码来计算它们的检验和。假设你有下面3个8比特字节: 01010011, 01 100110,01110100。这些8比特字节和的反码是多少? (注意到尽管UDP和TCP使用16比特的字来计算检验和,但对于这个问题,你应该考虑8比特和。)写出所有工作过程。UDP为什么要用该和的反码,即为什么不直接使用该和呢?使用该反码方案,接收方如何检测出差错? 1比特的差错将可能检测不出来吗? 2比特的差错呢?


P4. a.假定你有下列2个字节: 01011100和01100101。这2个字节之和的反码是什么?


b.假定你有下列2个字节: 11011010和01100101。这2个字节之和的反码是什么?


c.对于(a) 中的字节,给出一个例子,使得这2个字节中的每个都在一个比特反转时,其反码不会改变。


P5.假定某UDP接收方对接收到的UDP报文段计算因特网检验和,并发现它与承载在检验和字段中的值相匹配。该接收方能够绝对确信没有出现过比特差错吗?试解释之。


P6.考虑我们改正协议rdt2. 1的动机。试说明如图3-57所示的接收方与如图3-11所示的发送方运行时,接收方可能会引起发送方和接收方进人死锁状态,即双方都在等待不可能发生的事件。


《计算机网络:自顶向下方法》第三章 续8


P7.在rd3.0协议中,从接收方向发送方流动的ACK分组没有序号(尽管它们具有ACK字段,该字段包括了它们正在确认的分组的序号)。为什么这些ACK分组不需要序号呢?


P8.画出协议rdt3. 0中接收方的FSM。


P9.当数据分组和确认分组发生篡改时,给出rd3. 0协议运行的轨迹。你画的轨迹应当类似于图3-16中所用的图。


P10.考虑一个能够丢失分组但其最大时延已知的信道。修改协议rd2.1,以包括发送方超时和重传机制。非正式地论证:为什么你的协议能够通过该信道正确通信?


P11.考虑在图3-14中的rdt2.2接收方,在状态“等待来自下层的0”和状态“等待来自下层的1”中的自转换(即从某状态转换回自身)中生成一个新分组: sndpk = make_ pkt (ACK, 1, checksum) 和sndpk = make_ pkt (ACK, 0, checksum)。如果这个动作从状态“等待来自下层的1”中的自转换中删除,该协议将正确工作吗?评估你的答案。在状态“等待来自下层的0"中的自转换中删除这个事件将会怎样? [提示:在后一种情况下, 考虑如果第一个发送方到接收方的分组损坏的话,将会发生什么情况?]


P12. rdl3. 0协议的发送方直接忽略(即不采取任何动作)接收到的所有出现差错和确认分组的确认号( acknum)字段中的值有差错的分组。假设在这种情况下,rd3. 0只是重传当前的数据分组,该协议是否还能正常运行? (提示:考虑在下列情况下会发生什么情况:仅有一个比特差错时;报文没有丢失但能出现定时器过早超时。考虑到当n趋于无穷时,第n个分组将被发送多少次。)


P13.考虑rdt3.0协议。如果发送方和接收方的网络连接能够对报文重排序(即在发送方和接收方之间的媒体上传播的两个报文段能重新排序),那么比特交替协议将不能正确工作(确信你清楚地理解这时它不能正确工作的原因),试画图说明之。画图时把发送方放在左边,接收方放在右边,使时间轴朝下,标出交换的数据报文(D)和确认报文(A)。要标明与任何数据和确认报文段相关的序号。


P14.考虑一种仅使用否定确认的可靠数据传输协议。假定发送方只是偶尔发送数据。只用NAK的协议是否会比使用ACK的协议更好?为什么?现在我们假设发送方要发送大量的数据,并且该端到端连接很少丢包。在第:二种情况下,只用NAK的协议是否会比使用ACK的协议更好?为什么?


P15.考虑显示在图3-17中的网络跨越国家的例子。窗口长度设置成多少时,才能使该信道的利用率超过90%?假设分组的长度为1500字节(包括首部字段和数据)。


P16.假设某应用使用rdb3. 0作为其运输层协议。因为停等协议具有非常低的信道利用率( 显示在网络跨越国家的例子中),该应用程序的设计者让接收方持续回送许多(大于2)交替的ACKO和ACK 1,即使对应的数据未到达接收方。这个应用程序设计将能增加信道利用率吗?为什么?该方法存在某种潜在的问题吗?试解释之。


P17.考虑两个网络实体A和B,它们由一条完善的双向信道所连接(即任何发送的报文将正确地收到;信道将不会损坏、丢失或重排序分组)。A和B将以交互的方式彼此交付报文:首先,A必须向B交付一个报文,B然后必须向A交付一个报文,接下来A必须向B交付一个报文,等等。如果一个实体处于它不试图向另一侧交付报文的状态,将存在一个来 自上层的类似于rdt _send( data)调用的事件,它试图向下传送数据以向另一侧传输, 来自上层的该调用能够直接 忽略对于rdt_ unable. _to_send( data)调用,这通知较高层当前不能够发送数据。[注意:做出这种简化的假设,使你不必担心缓存数据。]对该协议画出FSM说明(一个FSM用于A,一个FSM用于B)。注意你不必担心这里的可靠性机制,该问题的要点在于创建反映这两个实体的同步行为的FSM说明。应当使用与图3-9中协议rdtl. 0有相同含义的下列事件和动作: rdt_ send( data), packet = make_ pkt(data), udt send( data),rdt_ srev( packet),extract( packet,data), deliver. _data( data)。保证你的协议反映了A和B之间发送的严格交替。还要保证在你的FSM描述中指出A和B的初始状态。


P18.在3.4.4节我们学习的一般性SR协议中,只要报文可用(如果报文在窗口中),发送方就会不等待确认而传输报文。假设现在我们要求一个SR协议,元次发出一对报文,而且只有在知道第一对报文中的两个报文都正确到达后才发送第二对报文。假设该信道中可能会丢失报文,但报文不会发生损坏和失序。试为报文的单向可靠传输而设计一个差错控制协议。画出发送方和接收方的FSM描述。描述在发送方和接收方之间两个方向发送的报文格式。如果你使用了不同于3.4节(例如udt. send()、start _timer()、 rdt rev()等)中的任何其他过程调用,详细地阐述这些动作。举例说明(用发送方和接收方的时序踪迹图)你的协议是如何恢复报文丢失的。


P19.考虑一种情况, 主机A想同时向主机B和主机C发送分组。A与B和C是经过广播信道连接的,即由A发送的分组通过该信道传送到B和C。假设连接A、B和C的这个广播信道具有独立的报文丢失和损坏特性(例如,从A发出的报文可能被B正确接收,但没有被C正确接收)。设计一个类似于停等协议的差错控制协议,用于从A可靠地传输分组到B和C。该协议使得A直到得知B和C已经正确接收到当前报文,才获取上层交付的新数据。给出A和C的FSM描述。(提示: B的FSM大体上应当与C的相同。)同时,给出所使用的报文格式的描述。


P20.考虑种主机A和主机B要向主机C发送报文的情况。主机A和C通过一条报文能够丢失和损坏(但不重排序)的信道相连接。主机B和C由另条(与连接A和C的信道独立)具有相同性质的信道连接。在主机C.上的运输层,在向上层交付来自主机A和B的报文时应当交替进行( 即它应当首先交付来自A的分组中的数据,然后是来自B的分组中的数据,等等)。设计一个类似于停等协议的差错控制协议,以可靠地向C传输来自A和B的分组,同时以前面描述的方式在C处交替地交付。给出A和C的FSM描述。(提示: B的FSM大体上应当与A的相同。)同时,给出所使用的报文格式的描述。


P21.假定我们有两个网络实体A和B。B有一些数据报文要通过下列规则传给A。当A从其上层得到一个请求,就从B获取下一个数据(D)报文。A必须通过A——B信道向B发送一个请求(R)报文。仅当B收到一个R报文后,它才会通过B——A信道向A发送一一个数据(D)报文。A应当准确地将每份D报文的副本交付给上层。R报文可能会在A——B信道中丢失(但不会损坏); D报文一旦发出总是能够正确交付。两个信道的时延未知且是变化的。设计一个协议(给出FSM描述),它能够综合适当的机制,以补偿会丢包的A——B信道,并且实现在A实体中向上层传递报文。只采用绝对必要的机制。


P22.考虑一个GBN协议,其发送方窗口为4,序号范围为1024。假设在时刻t,接收方期待的下一个有序分组的序号是k。假设媒体不会对报文重新排序。回答以下问题:


a在t时刻,发送方窗口内的报文序号可能是多少?论证你的回答。


b.在t时刻,在当前传播回发送方的所有可能报文中,ACK字段的所有可能值是多少?论证你的回答。


P23.考虑GBN协议和SR协议。假设序号空间的长度为k,那么为了避免出现图3-27中的问题,对于这两种协议中的每一种,允许的发送方窗口最大为多少?


P24.对下面的问题判断是非,并简要地证实你的回答:


a对于SR协议,发送方可能会收到落在其当前窗口之外的分组的ACK。


b.对于GBN协议,发送方可能会收到落在其当前窗口之外的分组的ACK。


c.当发送方和接收方窗口长度都为1时,比特交替协议与SR协议相同。


d当发送方和接收方窗口长度都为1时,比特交替协议与GBN协议相同。


相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~