随笔分类 -  计算机网络

摘要:如何判断HTTP请求结束 如果按下面这样写的话,在浏览器中访问12000端口,可能会显示出"Hellow World!",但浏览器实际一直处于连接状态,在edge中状态栏会显示叉号,可以手动关闭连接。 from socket import socket, AF_INET, SOCK_STREAM, 阅读全文
posted @ 2024-05-07 17:14 trashwin 阅读(106) 评论(0) 推荐(0)
摘要:HTTP 1.1 特点 长连接,默认不关闭,可以被多个请求复用 并发连接,允许对一个域名的请求分配多个TCP连接,缓解了队首阻塞问题 增加了PUT、DELETE、OPTIONS、TRACE、CONNECT等方法 增加了缓存字段,允许缓存代理服务器缓存数据,if-modified-since、if-n 阅读全文
posted @ 2024-04-18 23:40 trashwin 阅读(33) 评论(0) 推荐(0)
摘要:SSH是一种网络协议,用于计算机之间的加密登录。由于对称加密很难保证客户端不将秘钥泄漏,存在安全性问题,ssh使用非对称加密 密码认证 服务器收到客户端的连接请求,将自己的公钥发送给客户端 客户端收到公钥后,将密码用公钥加密后发送给服务器 服务器收到加密后的密码后,用自己的私钥解密,得到密码,然后验 阅读全文
posted @ 2024-03-17 21:22 trashwin 阅读(60) 评论(0) 推荐(0)
摘要:MTU:最大传输单元,链路层的帧中的数据部分的最大字节数,以太网中的一般为1500字节。 MSS:最大报文段大小,TCP的报文段中的数据部分的最大字节数,MTU减去IPv4的Header和TCP的Header。IPv4的Header和TCP的Header一般都是20字节,则MSS=1500-20-2 阅读全文
posted @ 2024-01-04 21:37 trashwin 阅读(236) 评论(0) 推荐(0)
摘要:海明码 校验位个数计算 k为校验个数,n为数据位个数 2^k>=n+k+1 解释:海明码至少要能检验出n+k个1位出错情况,和不出错的情况,共n+k+1种,而k位能检测出2^k种错误,所以校验位个数k要满足2^k>=n+k+1 校验位位置 校验位在2^n位置 H1 H2 H3 H4 H5 H6 H7 阅读全文
posted @ 2023-10-13 22:23 trashwin 阅读(939) 评论(0) 推荐(0)
摘要:Checkpoint 5 Writeup 该lab较简单,没什么好说的 有两点是route函数for循环时必须用引用,还是ttl递减后要重新计算checksum,写的时候被坑到了。 至于找到最长前缀匹配,遍历路由表即可,注意prefix为0时要特判;为了方便判断是否在路由表中找到符合项,max_pr 阅读全文
posted @ 2023-10-11 23:01 trashwin 阅读(41) 评论(0) 推荐(0)
摘要:Checkpoint 3 Writeup 该lab主要实现TCP发送方,细节比较多,具有一定难度,编写时需要从整体上理清设计思路,然后再实现具体的函数。 Timer 由于要实现TCP中的超时重传功能,所以需要在发送方维护一个定时器,但不需要自己使用计时函数,因为文档里说明了所有对时间的了解都是通过t 阅读全文
posted @ 2023-10-11 18:35 trashwin 阅读(83) 评论(0) 推荐(0)
摘要:Checkpoint 2 Writeup 该lab主要实现TCP接收方,接受来自发送方的TCPSenderMessage数据包,并使用checkpoint 1的Reasembler将接收到的数据推流到ByteStream,然后发送TCPReceiverMessage,指明接收方的窗口大小(ByteS 阅读全文
posted @ 2023-10-11 00:19 trashwin 阅读(79) 评论(0) 推荐(0)
摘要:Checkpoint 1 Writeup 该lab要根据首字母索引来对收到的字符串进行重组,还原为原始数据(字符串可能乱序到达,可能有重叠) 思路是将按顺序并小于可用容量的字符串(可能是部分子串)直接推流到输出流,将失序但在可用容量内的字符串放入本地buffer。 考虑到最好用首字符索引对收到的字符 阅读全文
posted @ 2023-10-10 10:06 trashwin 阅读(83) 评论(0) 推荐(0)
摘要:Checkpoint 0 Writeup 该lab要实现一个字节流,兼具写入和读出的能力,并且buffer空间受限。 根据要实现的函数和读写功能,内部要存储的成员为 std::queue<std::string> buffer_ {}; 用于存储写入的字符串(原本用的std::queue,但由于qu 阅读全文
posted @ 2023-10-09 22:23 trashwin 阅读(110) 评论(0) 推荐(0)
摘要:Checkpoint 4 Writeup 报文头格式 IPV4头 /* * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |Version| IHL |Type of Service| Total Length 阅读全文
posted @ 2023-10-03 22:23 trashwin 阅读(118) 评论(0) 推荐(0)