a.
❌
主机 B 会对主机 A 发送的每个分组单独发送一个确认报文,并在确认报文段的确认号域填写期望接收的下一字节序号。
b.
❌
rwnd 会一直变化,rwnd 的值从接收方回传给发送方,用来进行流量控制。
c.
✅
但更为准确的描述应该是,主机 A 发送但未被确认的字节数不会超过 B 接收窗口 rwnd 的大小,(rwnd = 接收缓存 - [LastByteRead - LastByteRecv])
d.
❌
对于握手报文段,的确是 m + 1 ,但是对于携带数据的报文段,下一个序号是前一个报文段携带数据的首字节序号加上数据的长度。
e.
✅
就是接收窗口字段
f.
❌
该连接当前的 TimeoutInterval 是由上一次的 SampleRTT 和 DevRTT 计算出来的,或者是超时重传加倍出来的,和这次的 SmapleRTT = 1 没啥关系。
g.
❌
报文中的确认号和序号没半毛钱关系,确认号是期待接收到接收端的下一个字节的序号
a.
第一个报文段中有 119 - 90 + 1 = 20 字节的序号
b.
TCP 是累积确认的,因此假如第一个报文段丢失,而第二个报文段到达主机 B,那么主机 B 发往主机 A 的确认报文中,确认号是 90。
R16 考虑在 3.5 节中讨论的 Telnet 的例子。用户键入字符 C 数秒之后,用户又键入字符 R。那么在用户键入字符 R 之后,总共发送了多少个报文段,这些报文段中的序号和确认号字段应该填入什么?
3 个报文段,见下图