随笔分类 -  计算机网络 / CS144-Lab

摘要:Checkpoint 5 Writeup 该lab较简单,没什么好说的 有两点是route函数for循环时必须用引用,还是ttl递减后要重新计算checksum,写的时候被坑到了。 至于找到最长前缀匹配,遍历路由表即可,注意prefix为0时要特判;为了方便判断是否在路由表中找到符合项,max_pr 阅读全文
posted @ 2023-10-11 23:01 trashwin 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Checkpoint 3 Writeup 该lab主要实现TCP发送方,细节比较多,具有一定难度,编写时需要从整体上理清设计思路,然后再实现具体的函数。 Timer 由于要实现TCP中的超时重传功能,所以需要在发送方维护一个定时器,但不需要自己使用计时函数,因为文档里说明了所有对时间的了解都是通过t 阅读全文
posted @ 2023-10-11 18:35 trashwin 阅读(52) 评论(0) 推荐(0) 编辑
摘要:Checkpoint 2 Writeup 该lab主要实现TCP接收方,接受来自发送方的TCPSenderMessage数据包,并使用checkpoint 1的Reasembler将接收到的数据推流到ByteStream,然后发送TCPReceiverMessage,指明接收方的窗口大小(ByteS 阅读全文
posted @ 2023-10-11 00:19 trashwin 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Checkpoint 1 Writeup 该lab要根据首字母索引来对收到的字符串进行重组,还原为原始数据(字符串可能乱序到达,可能有重叠) 思路是将按顺序并小于可用容量的字符串(可能是部分子串)直接推流到输出流,将失序但在可用容量内的字符串放入本地buffer。 考虑到最好用首字符索引对收到的字符 阅读全文
posted @ 2023-10-10 10:06 trashwin 阅读(49) 评论(0) 推荐(0) 编辑
摘要:Checkpoint 0 Writeup 该lab要实现一个字节流,兼具写入和读出的能力,并且buffer空间受限。 根据要实现的函数和读写功能,内部要存储的成员为 std::queue<std::string> buffer_ {}; 用于存储写入的字符串(原本用的std::queue,但由于qu 阅读全文
posted @ 2023-10-09 22:23 trashwin 阅读(70) 评论(0) 推荐(0) 编辑
摘要:Checkpoint 4 Writeup 报文头格式 IPV4头 /* * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |Version| IHL |Type of Service| Total Length 阅读全文
posted @ 2023-10-03 22:23 trashwin 阅读(83) 评论(0) 推荐(0) 编辑