补全:发送方该重发谁
本节的字节序号小工具:
segments(nbytes, mss) 把 nbytes 字节切成段,交回 [(序号, 长度)];序号是这段第一个字节的编号,SYN 占了 0 号,数据从 1 起
acks(segs, arrived) 接收方的累计确认:每收到一段回一个 ack = 下一个想要的字节号;乱序到的先存着,序号补齐了 ack 才往前跳;arrived 是每段到没到发送方只知道对方最后回的 ack,不知道后面哪些段其实到了。补全 unacked(segs, ack):交回序号 ≥ ack 的那些段的序号列表——这就是它必须重发(或至少还不能扔掉)的段。
全部评论