Computer Network
CS144 Checkpoint 6:最长前缀匹配与 IPv4 路由转发
记录 CS144 Checkpoint 6 Router 的设计与实现:保存路由规则、执行最长前缀匹配、区分下一跳与输出接口,并正确处理 TTL、IPv4 校验和与默认路由。
CS144 Checkpoint 5:用 ARP 连接 IP 数据报与以太网帧
记录 CS144 Checkpoint 5 NetworkInterface 的设计与实现:区分最终目标与下一跳,用 ARP 解析 MAC 地址,缓存待发送数据报,并处理以太网帧收发和超时。
CS144 Checkpoint 3:滑动窗口、累计确认与 TCP 重传
记录 CS144 Checkpoint 3 的实现过程:TCPSender 如何填满接收窗口、管理未确认报文、处理累计 ACK,并用 RTO、指数退避和零窗口探测实现可靠发送。
CS144 Checkpoint 2:从回绕序列号到 TCP 接收方
记录 CS144 Checkpoint 2 的实现过程:32 位 TCP 序列号的 wrap/unwrap、checkpoint 的作用、SYN/FIN 占用序列号,以及 TCPReceiver 的接收、确认与流量控制。
CS144 Checkpoint 1:把乱序片段重组为连续字节流
记录 CS144 Checkpoint 1 Reassembler 的设计与实现:接收窗口、区间裁剪与合并、即时组装、EOF 处理,以及重叠片段和容量限制带来的问题。
CS144 Checkpoint 0:从 HTTP 客户端到有限容量字节流
记录 CS144 Checkpoint 0 的实现过程:用 TCP socket 发送 HTTP 请求、设计有限容量 ByteStream,以及编译、单元测试和网络超时中遇到的问题。
Stanford CS144
从 ByteStream 和乱序重组开始,逐步实现 TCP 收发、ARP、网络接口与 IPv4 路由器。