复习题
习题
P1.
假定 A 向 S 的源端口号为 x, B 向 S 的源端口号为 y
a.
A 向 S 的源端口号为 x, 目的端口号为 23
b.
B 向 S 的源端口号为 y, 目的端口号为 23
c.
S 向 A 的源端口号为 23, 目的端口号为 x
d.
S 向 B 的源端口号为 23, 目的端口号为 y
e.
x y 可能相同
f.
不可能
P2.
从 B 到 C:
左边的连接:源端口号 80,源 IP 为 B 的 IP;目的端口 26145,目的 IP 为 C 的 IP;
右边的连接:源端口号 80,源 IP 为 B 的 IP;目的端口 7532,目的 IP 为 C 的 IP;
从 B 到 A:
源端口号 80,源 IP 为 B 的 IP;目的端口 26145,目的 IP 为 C 的 IP;
P3.
注意应在溢出时向最低位进位:
01010011
+ 01100110
————————————
10111001
+ 01110100
————————————
(1) 00101101
+ 1
————————————
00101110
其反码为 11010001
使用反码有以下好处:
- 不依赖系统是大端还是小端
- 计算检验和比较简单快速
接收方检验差错的方法是将三个字节与检验和相加,如果任何一个位为 0,说明出错
1比特的差错肯定会导致结果不同
2比特的差错可能会检测不出,比如题中第一、二字节变为 01010010,01100111,即最后一个比特反转
P4.
a. 00111110
b. 01000000
c. a 中的第一、二字节变为 01011101、01100100
P5.
不能确保,如同上两题讨论的那样
P6.
如果 rdt2.1 发送方正处于“等待来自上层的调用0”,接收方处于“等待来自下层的0”,发送方发送序号为 0 的分组,而接收方正确接收并向发送方发送 ACK;此时发送方处于“等待 ACK 或 NAK 0”,接收方处于“等待下层的 1”,如果此 ACK 损坏,发送方重发序号0的分组,而接收方会发送 NAK,这将导致一个死循环;
其实此接收方并没有标注初始状态,如果发送方初始状态为“等待来自上层的 0”,接收方初始为“等待下层的 1”,也会导致上述死锁。
P7.
ACK 分组没有序号是因为接收方、发送方都不需要该序号。
P8.
可以直接使用 rdt2.2 中的接收方
P9.
P10.
类似于 rdt3.0 的发送方,在 rdt2.1 的发送方上加上 start_timer 以及 timeout 事件即可。timer 的时间要大于最大往返时延。
P11.
如果从“等待来自下层的1”中删除,不会影响正常工作,因为 sndpkt 已经被生成了。
但是如果从“等待来自下层的0”中删除,而且接收方刚刚启动(处于初始状态),sndpkt 是一个错误的值(很可能是一个随机值),那么发送方会认为 ACK 损坏并重发分组,接收方会继续发送错误值,浙江导致一个死锁。
P12.
仅有一个比特差错时,协议正常工作,只不过可能比 rdt3.0 发送方反应更快。
而当定时器时间过短时,每一个超时重发的分组都将会导致正在发送的包重发,这样从第一个包累积到第n个包,分组发送的次数将趋于无穷。
P13.
像图片展示的那样,两个 M0 将无法区分
P14.
分组 x 丢失只能被接收方检测到,且只有 x-1,x+1 都被接收后。如果发送方在发送 x 之后隔较长时间才发送 x+1,那么这段时间 x 将一直不会被重发。
而当数据量较大且很少丢包时,用 NAK 协议发送的数据包的数量明显比 ACK 协议少
P15.
中文版翻译较差,错误极多,无力吐槽。。。这里按英文版的 98% 来做:
U = (nL/R) / (RTT + L/R) > 98%
解出 n > 2450.98
因此 n 至少是 2451
P16.
肯定能增加利用率,接收到 ACK0 或 ACK1 之后发送方认为分组已经成功到达,即使事实不是如此。
可能导致许多问题,例如差错出现并不会重发、造成无谓的重发等。
P17.
B与A类似,只不过初始状态从 receive from A 开始
P18.
略
P19.
略
P20.
略
P21.
略
P22.
a.
考虑两种极端情况:
- 发送方发送 k-4,k-3,k-2,k-1,接收方都完整得接收并发送 ACK,但 ACK 全都未传到发送方,接收方的期待序号为 k,而发送方窗口序号为 [k-4, k-1]
- 如果 ACK 全都传回,则发送方更新 base,其序号为 [k, k+3]
因此序号可能是 [k-4, k+3]
b.
如果接收方期待 k,则它一定将比 k-1 小的 ACK 发送出去了,如果要使发送方发送 k-1,那么它至少已经接收到了 k-5 的 ACK。
因此正在传播回发送方的 ACK 序号可能是 [k-4, k-1]