补全:谁先关谁等
本节的内存版 TCP 状态机(判题机不联网;真机上 ss -tan 看到的 State 就是这些名字): TABLE[(状态, 事件)] = (新状态, 要发出去的段) 事件:listen / connect / close / tim
⚠️ 自己写:去掉 TIME-WAIT
本节的内存版 TCP 状态机(判题机不联网;真机上 ss -tan 看到的 State 就是这些名字): TABLE[(状态, 事件)] = (新状态, 要发出去的段) 事件:listen / connect / close / tim
序号编的是什么
TCP 的序号(seq)编的是【0】。
确认号说的是什么
接收方回的确认号(ack)说的是【0】。
中间丢了一段会怎样
三段依次是 1、401、801;第二段丢了、第三段到了。接收方收到第三段时回的 ack 是【0】。
一千字节切三段
本节的字节序号小工具: segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起 acks(segs, arrived)
第二段丢了 ack 怎么走
本节的字节序号小工具: segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起 acks(segs, arrived)
补全:发送方该重发谁
本节的字节序号小工具: segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起 acks(segs, arrived)
补全:按序交给应用
本节的字节序号小工具: segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起 acks(segs, arrived)
⚠️ 自己写:去掉序号会怎样
本节的字节序号小工具: segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起 acks(segs, arrived)