计算机网络——习题整理(三)

继续整理,上期传送门.

传输层

在这里插入图片描述
在这里插入图片描述

UDP的简单性,导致了强的实时性
传输层的两个概念:
多路复用: 主机将不同套接字中的数据块加上首部信息生成报文端,将其传输到网络中(封装)
多路分解: 将传输层报文端数据交付到正确的套接字

  1. 假设某应用程序每秒产生一个60 byte的数据块,每个数据块被封装在一个TCP报文中,再封装在一个IP数据报中,那么最后每个数据报所包含的应用数据占比是()
    A.20% B.40% C.60% D.80%
    TCP头部分部为 20 byte; IP头部如果没有选项部分也是20 byte; 60 / (60+20+20) = 60% ,而UDP头部为8 byte;

  2. 如果用户程序使用UDP进行数据传输,那么()协议必须承担可靠性方面的全部工作
    A.数据链路层 B.网际层 C.传输层 D.应用层

  3. 下列关于UDP的描述,错误的是()
    A.UDP报头主要包括端口号、长度、校验和等字段
    B.UDP长度字段是UDP数据报的长度,包括伪首部的长度 (伪首部中包括IP地址信息,但不属于UDP报文端)
    C.UDP校验和对伪首部、UDP数据报的长度以及应用层数据进行校验
    D.伪首部包括IP分组报头的一部分
    在这里插入图片描述在这里插入图片描述

  4. 下列关于UDP校验和错误的是()
    A.UDP的校验和功能不是必须的,可不使用
    B.如果UDP校验和计算结果为0,则在校验和字段填充0 (应该再取反,取全1)
    C.UDP校验和字段的计算包括一个伪首部、UDP首部和携带的用户数据
    D.UDP校验和的计算方法是二进制反码运算求和再取反
    注:当源主机不想计算校验和,则令该字段为0
    校验和计算:二进制反码运算求和再取反
    如何得到校验和?
    将UDP报文段的所有byte + 伪首部, 取二进制运算求和,结果再取反即为校验码
    (反码计算意思是:从低到高位逐列进行计算,0和0加得0,0和1加得1,1和1加得0但要产生一个进位1,加到下一列,若最高位产生了进位,则最后得到的结果要加1。)
    举个例子 我们计算出结果为 01001010 11000010 取反码为 10110101 00111101为校验和
    这个时候接收方将接收数据的和 + 校验和,没有差错的话应该全为1,否则有差错而丢弃。

  5. 题目见下图
    在这里插入图片描述
    以太网帧的数据段的最大长度为1500 byte
    1500 byte 减去 IP数据报的首部20 byte,IP片的数据长度最大为1500 - 20 = 1480 byte
    IP的数据段 为 UDP报文端 : 8(UDP首部) + 8192 = 8200 byte
    8200 / 1480 = 5 … 800 所以应该划分 6 个IP数据报片
    对于IP片偏移,其单位为8 byte 需要除以8,如下:
    在这里插入图片描述

  6. 主机甲与主机乙已建立TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发出超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是()
    A.10KB B.12KB C.14KB D.15KB
    注:拥塞窗口 cwnd:发送方根据当前网络拥塞程度的估计而确定的窗口值
    接收窗口 rwnd:接收方根据自己缓存大小动态调整发送方的发送窗口大小
    实际发送窗口 = min(接收窗口、拥塞窗口)
    本题实际上已知接收窗口rwnd为10KB,发送窗口最终应该不大于10,只能选A
    正常解法:TCP的拥塞机制
    1.慢启动:TCP发送速率起始慢,在慢启动时指数增加(1,2,4,8…);
    当 lwnd = ssthresh(慢开始门限) 进入拥塞避免;
    如果指数下一个值 > ssthresh,则让cwnd = ssthresh
    2.拥塞避免:谨慎增加cwnd,每个RTT,cwnd加1个MSS;
    丢包时,将ssthresh = cwnd / 2,cwnd = 1 重新回到慢启动
    3个ACK冗余,至快速恢复
    3.快速恢复:快速恢复前做两件事,一是 cwnd = cwnd / 2,二是 ssthresh = cwnd / 2,
    收到冗余ACK,cwnd增加一个MSS(线性增长)
    在这里插入图片描述
    题目中到达超时,也就是丢包,ssthresh = cwnd / 2 = 4,cwnd = 1
    后面10RTT为 2、4、5、6、7、8、9、10、11、12 而实际发送窗口 = min(10,12)= 12

  7. ()字段包含在TCP首部中,而不包含在UDP首部
    A.目的端口号 B.序列号 C.校验和 D.目的IP地址(都没u)

  8. 以下关于TCP报文格式的描述,错误的是()
    A.报头长度为20~60byte,其中固定部分为20byte
    B.端口号字段依次表示源端口号与目的端口号
    C.报头长度总是4的倍数个字节
    D.TCP校验和伪首部中IP分组头的协议字段为17 (应该是6,17是UDP)
    在这里插入图片描述
    首部长度4个bit 最高为15,单位为4byte,最高60byte (IPv4也有首部长度)

  9. 为保证数据传输的可靠性,TCP采用了对()确认的机制
    A.报文端 B.分组 C.字节 D.比特
    TCP头部有确认号,,用于确认下一个报文端的第一个字节的序号,而序号是本报文端第一字节的序号

  10. 滑动窗口的作用()
    A. 流量控制 B. 拥塞控制 C.路由控制 D.差错控制
    拥塞控制是TCP跟踪一个变量来限制TCP发送方发送速率,滑动窗口对应流量控制

  11. 以下关于TCP工作原理的描述,错误的是()
    A.TCP连接建立过程需要经过“三次握手”的过程
    B.当TCP传输连接建立后,客户端与服务器端的应用进程进行全双工的字节流传输
    C.TCP传输连接的释放过程很复杂,只有客户端可以主动提出释放连接的请求 (四次挥手,双方都可以)
    D.TCP连接的释放需要经过“四方挥手“的过程
    注: TCP 建立:三次挥手 释放:四次挥手
    在这里插入图片描述

  12. TCP滑动窗口的值过大,对主机的影响()
    A. 由于传送数据过多而使路由器拥挤,主机可能丢失分组
    B.产生过多ACK
    C.由于接收的数据多,而使主机的工作速度加快(无直接因果)
    D.由于接收的数据多,而使主机的工作速度变慢
    在这里插入图片描述

  13. A与B之间建立了TCP连接,A向B发送了一个报文段,其中序号字段seq=200,确认号字段ACK=201,数据部分有2个字节,那么B对报文的确认报文段中()
    A. seq=202,ack=200 B.seq=201,ack=201 C.seq=201,ack=202 D.seq=202,ack=201
    在B发给A的确认报文中,seq的值应和A发向B的报文中的ACK的相同,即201;
    ACK的值应该是A发向B的报文的序号加上A发向B的报文中数据的长度,即200+2=202,表示B下次希望收到序号为202的报文段。

  14. 在一个TCP连接中。MSS为1KB,当拥塞窗口为34KB时发生了超时事件。如果在接下来的4RTT内报文段传输都是成功的,那么拥塞窗口的大小是()
    A.8KB B.9KB C.16KB D.17KB
    老考点:TCP拥塞控制 1,2,4,8,16 4个RTT(间隔)

  15. 主机甲与乙之间建立了TCP连接,TCP最大段长度为1000字节。若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是()
    A.1000 B. 2000 C.3000 D.4000
    实际发送窗口为 min{cwnd,rwnd}= min{4000,2000} = 2000
    由于主机乙已经确认了1000字节(存入TCP缓存),对乙来说接收窗口rwnd可用空间为 2000-1000 = 1000,即为主机甲还可以向主机乙发送的最大字节数。

  16. 如果主机1的进程以端口x与主机2端口y建立了一条TCP连接,如果希望再在这两个端口建立一个TCP连接,那么会()
    A.建立失败,不影响先建立连接的传输
    B.建立成功,并且两个连接都可以正常传输
    C.建立失败,先建立的连接被断开
    D.建立失败,两个连接都被断开
    TCP通过套接字sokect(主机IP地址、端口号)来连接,唯一标识为(目的ip,目的端口,源ip,源端口)四元组构成;
    题目中唯一标识四元组固定了,无法建立多个TCP端口,而TCP连接很稳定,不会轻易断开;

  17. 某客户通过一个TCP连接向服务器发送数据的部分过程如下图所示,客户在t0第一次收到确认号为100的段,并发送了seq=100的段,但发送丢失。若TCP支持快速重传,则用户发送seq=100段的时刻是()
    A.T1 B.T2 C.T3 D.T4
    在这里插入图片描述
    快速重传:当收到3个重复的ACK,直接重传而不等待超时,所以图上结果为t3.

  18. 当前TCP连接的RTT值为35ms,连续收到3个确认报文段,它们比相应的数据报文段的发送时间滞后了27ms,30ms与21ms,若a = 0.2,计算第三个确认报文段到达后新的RTT的估计值。
    注:RTT计算公式——新估计 RTT = (1-a) * (旧RTT) + a * 新RTT
    对第一个: 0.8 * 35 + 0.2 * 27 = 33.4ms
    第二个:0.8 * 33.4 + 0.2 * 30 = 32.72ms
    第三个: 0.8 * 30.72 + 0.2 * 21 = 30.376ms

  19. 网络允许的最大报文段的长度为128字节,序号用8bit表示,报文段在网络中的寿命为30s。求每一条TCP连接所能达到的最高数据率。
    注:TCP每个寿命内最多发送序号数-1个报文段 理由:题目8bit序号 为0 ~ 28 - 1,若 发送了0又发送了
    28 - 1,则28 - 1的下一个确认号为0,接收端不知道这个0是原分组还是新分组。
    数据率(吞吐率也类似) = 有效数据大小 / 周期 = (28 - 1)* 128 * 8 / 30 = 8704 bit / s

  20. 假设TCP报文段载荷为1500 Byte,最大分组存活时间为120s,那么要使TCP报文段的序列号不会循环而重叠,线路允许的最快速度是多大?
    序号:32 bit
    报文段最多 (2 32 - 1) / 1500 = 2863312 个 (四舍五入)
    2863312 * 1566 / 120 = 37366221.6 (1566 = 1500 + 20 + 20 + 18 + 8 如下图)
    在这里插入图片描述
    如有错误还望指出···

  • 17
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值