计算机网络自顶向下 传输层 习题

计算机网络自顶向下 传输层 习题

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

    答:源端口号y和目标端口号x

  2. 描述应用程序开发者为什么可能选择在 UDP 上运行应用程序而不是在 TCP 上运行 的原因。

    答:应用程序开发人员可能不希望其应用程序使用TCP的拥塞控制,这可以在拥塞时限制应用程序的发送速率。 通常,IP电话和IP视频会议应用程序的设计者选择通过UDP运行其应用程序,因为他们希望避免TCP的拥塞控制。 此外,某些应用程序不需要TCP提供的可靠数据传输。

  3. 在我们的 rdt 协议中,为什么需要引入序号?

    答:接收方需要序号来确定到达的数据包是包含新数据还是重传

  4. 在我们的 rdt 协议中,为什么需要引入定时器?

    答:处理传输损失。 如果在分组的定时器的持续时间内没有接收到针对所发送的分组的ACK,则假定分组(或其ACK或NACK)已丢失。

  5. 是非判断题:
    a. 主机 A 经过一条 TCP 连接向主机 B 发送一个大文件。假定主机 B 没有数据发往主 机 A。因为主机 B 不能随数据捎带确认,所以主机 B 将不向主机 A 发送确认。
    false

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

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

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

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

    f. 假定在一条 TCP 连接中最后的 SampleRTT 等于 1 秒,那么对于该连接的 TimeoutInterval 的当前值必定大于等于 1 秒。
    false

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

  6. 假设主机 A 通过一条 TCP 连接向主机 B 发送两个紧接着的 TCP 报文段。第一个 报文段的序号为 90,第二个报文段序号为 110。
    a. 第一个报文段中有多少数据?
    b. 假设第一个报文段丢失而第二个报文段到达主机 B。那么在主机 B 发往主机 A 的确认报文中,确认号应该是多少?

    20 bytes
    确认号 = 90

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

    答:
    0101 0011 + 0110 0110 = 1011 1001
    1011 1001 + 0111 0100 = 1 0010 1101(多了一位,第一位1回卷)
    0010 1101 + 1 = 0010 1110 取其反码,得到1101 0001。
    将反码1101 0001 放在检验和处,在接受方将全部的传输数据和检验和相加为1111 1111时,无差错,只要有任意一位为0,传输中就出现了差错。
    运用反码相加,全1的检测对于计算机来说更加方便,速度会更快。
    1比特的差错一定能够检查出来,2比特的差错如果出现在同一位上,则会被忽略。

  8. 当数据分组和确认分组发生篡改时,给出 rdt3.0 协议运行的轨迹。你画的轨迹应当类似 于 FSM 中所用的图。
    在这里插入图片描述
    在这里插入图片描述

  9. 考虑 rdt2.2 接收方,在状态“等待来自下层的 0”和状态“等待来自下层的 1”中的自转 换(即从某状态转换回自身)中生成一个新分组:sndpk=make_pkt(ACK, 1, checksum) 和 sndpk=make_pkt(ACK, 0, checksum)。
    如果这个动作从状态“等待来自下层的 1”中 的自转换中删除,该协议将正确工作吗?评估你的答案。

    在等待来自下层的1中删除时:会正常工作。因为上一步状态转换时已经生成了sndpkt

    在状态“等待来自下层的 0” 中的自转换中删除这个事件将会怎样?[提示:在后一种情况下,考虑如果第一个发送 方到接收方的分组损坏的话,将会发生什么情况?]

    在等待来自下层的0中删除时:在第一次进入时,会工作不正常。此时sndpkt还没有生成,如果接收了一个校验错误的报文,那么无法返回一个分组。

  10. 对下面的问题判断是非,并简要地证实你的回答:
    a. 对于 SR 协议,发送方可能会收到落在其当前窗口之外的分组的 ACK。
    正确。假设发送方的窗口大小为3,并在t0发送数据包1、2、3。在t1(t1>t0),接收方锁定1,2,3。在t2(t2>t1),发送方超时并发送1、2、3。在t3(t3>t2),接收方接收副本并重新确认1、2、3。在T4(T4>T3),发送方接收在t1t1发送的ACK s,并将其窗口推进到t5t5。在t5t5,发送方接收t2t2发送的ACKs 1、2、3。这些ACK就在窗户外面。

    b. 对于 GBN 协议,发送方可能会收到落在其当前窗口之外的分组的 ACK。
    正确,和a一样的场景

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

    d. 当发送方和接收方窗口长度都为 1 时,比特交替协议与 GBN 协议相同。
    正确。当窗口大小为 1 时, SRGBN,和交替位协议在功能上是等价的。窗口大小为 1 ,排除了无序数据包(窗口内)的可能性。累积 ACK 在这种情况下只是一个普通的 ACK ,因为它只能引用窗口内的单个包。

  11. 补充题:分别描述停止等待协议、GBN、SR 协议的工作原理(基本思想),并给出发 送窗口和接收窗口尺寸与序号位数的关系

    1.停止等待协议(stop-and-wati),是数据链据层一个很重要的协议,基本原理就是说每发送一个分组,必须要停下来等待,等接收方确认后才可继续发送下一个分组。如果没收到确认,就只能超时重传。

    2.GBN协议中,发送方在发完一个数据帧后,连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍未收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧

    3.SR协议是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。显然,SR减少了浪费,但要求接收方有足够大的缓冲区空间
    在这里插入图片描述

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值