Lab Checkpoint 3: the TCP sender
2 Checkpoint 3: The TCP Sender
Lab3 将实现 TCP 中的 TCPSender,其需要完成的功能有:
- 跟踪 Receiver 的 TCPReceiverMessage 信息(acknos 和 window sizes),通过将 ByteStream 的数据以 TCP Segments 的格式不断发送,尽可能地填满 window, 直到 window 满了或者 ByteStream 中没有任何东西可以发送。
- 跟踪那些已发送但还没有被接收的 segments, 通常将这些数据被称为 “outstanding” segments。
- 若是这些 segments 在足够长的时间后没有没接收, 则重传这些 segments 数据。
这些功能实现了 “automatic repeat request (ARQ)” 机制,TCPSender 的任务就是确保 TCPReceiver 能收到每个字节至少一次。