补全:该等还是该发

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

本节的超时小工具:

rto_trace(samples)         RFC 6298 的整数版:第一次 SRTT = R、RTTVAR = R // 2;之后 RTTVAR = (3·RTTVAR + |SRTT − R|) // 4、SRTT = (7·SRTT + R) // 8;RTO = SRTT + 4·RTTVAR;交回每个样本后的 (SRTT, RTTVAR, RTO)
backoff(rto, n)            连续超时 n 次后的 RTO:每次翻倍
resend(segs, plan, rtt, rto)   停等 + 超时重传:plan 每次发送一个字符(. 到  x 丢),丢了等 rto 再发、rto 翻倍;交回 (发了几次, 花了多少时间)
fast_retransmit(acks)      同一个 ack 连着第 4 次出现(原始 + 3 个重复)就触发,交回触发位置(从 1 数),没有交回 0

补全 decide(ack_list, expired):ack_list 是到目前收到的 ack 序列,expired 是定时器有没有到期。三个重复 ack(同一个号连着第 4 次)→ "fast";否则定时器到期 → "timeout";否则 → "wait"。三种情况各判一次:

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论