CS144-3test1 1如果已经通过了lab2的测试,就可以开始lab3
</div>然后就可以开始同步实验文件了cmake --build build --target check 3
test1 1实验开始这次需要实现的其实也就四个函数,其他函数只需要调用头文件中维护的变量
</div>我当时卡在不知道tick要如何实现,不让调用系统时间,只通过传参要怎么实现,说到底还是不了解这个传参的作用,其实每一次该函数被调用结束,都会重置为0,换一句话说,就是调用到第二次调用所经历的时间间隔就是传参的值,相当于一个随机的数,你需要的就是处理这个传参。
test1 1test1 2test1 3代码实现接下来我讲讲我的实现思路,想自己思考的可以去实验了。
整体上,需要找到一个数据结构来存放我们的数据,我这里使用的是deque,因为数据的增删频繁,用queque也可以,但是实现起来复杂,没有必要。
我们创建两存储,一个是已经发送的但是未确认的,一个是准备发送的报文段。push函数用来把需要发送的报文段放入准备发送的deque类型存储,receive函数用来改变已经发送 ...
CS144-2test1 1检查在实验2之前,要保证之前的实验1已经通过测试cmake --build build --target check 1如果出现如下就可以继续实验了
test1 1获取实验文件git fetch来检索实验分配的最新版本git merge origin/check2-startercode然后同步这次的实验代码在这一部分中,你需要实现TCPReceiver,和一个wrapping_integers这是我们整个实验中的端口的服务端和绝对/相对序列号的转换在这实验之前,你需要了解报文中的确认号(ackno),序列号(seqno)以及连接请求(SYN)和断开请求(FIN),了解这些就足以应对这个实验。你需要知道的是以上四个量在传递过程中的值的变化,最好是自己尝试画出来
test1 1实验开始首先这一部分难的地方并不在于去理解发送中的状态更新,而是在于如何在适当的时刻去利用相对位置和绝对位置这两个状态,而且要实现这两个转换个,如果在实现了转换的部分,同时如果这个在收发过程想明白,那么这个实验容易通过的。
首先你需要知道,当2的32次方超过就会溢出,如果是无符号型 ...
CS144-1test1 1前言cmake --build build --target check 0来检查你的lab0后就可以开始这部分的实验了事实上对于这部分实验,在我整个实验中花费的时间是最长的,代码也是最长的,而且即使通过了,后续的实验中,也会由于这部分导致超时,而无法通过。所以参考了其他大佬的思路才通过了这部分的测试
这是我参考的大佬的链接,需要代码的可以去他那边看看https://github.com/Mobuiss
目前大多数对于这一题的思路就是重复子串的合并,我一开始想到的也是用map来实现这个过程,但是后面写得也很长,性能很低。大佬的思路就不一样了,是用一个vector来维护buffer,下面详细讲。
test1 1实验开始这个实验的主体是通过insert这个函数实现的
它的传参有
uint64_t first_index string data bool is_last_substring Writer& output
first_index是每一个data绝对位置,也就是类似于leetcode中合并区间的区间下标。data就是数据本身,可以调用.siz ...
CS144-0由于没有学校的邮箱,前面虚拟机交流也很简单,直接从代码发送阶段开始。test1 1test1 21.编写报文实验步骤:
在你的虚拟机上,获取实验的源代码: git clone https://github.com/cs144/minnow
进入 Lab 0 目录: cd minnow
创建一个目录来编译实验室软件: cmake -S . -B build
编译源代码: cmake --build build
在构建目录外部,打开并开始编辑 writeups/check 0. Md 文件。
在文件 ../apps/webget. cc 中,找到并实现 get_URL 函数。你需要使用 HTTP 协议,使用 TCPSocket 和 Address 类。这里会出现的问题是克隆GitHub库的时候,由于网络问题克隆不了,建议多尝试,不推荐直接从GitHub库下载后导入虚拟机,因为后续需要同步新的实验,会由于git库的归属问题,导致无法同步。
做这一部分以前,要先有Http报文的前置知识,了解整个http的报文结构,才能完成这一部分的实验知识点
test1 1test1 2test ...
test1 1test1 2CS144 - 前言在我开始深入CS144这门课程之前,我必须先声明一下 —— 我并非什么大佬。实际上,我在网络系统这方面的旅程才刚刚开始,有时候,我自己也还在为之前的认知感到惊讶。毕竟,将书本知识转化为可以在真实世界中运行的代码是一条充满挑战的路。我分享的内容,可能不见得是行业内的最优解,但至少代表了我的一点小小见解,希望能给你提供一些不同的思考角度。小声逼逼
说白了,别嫌我太菜。
test1 1原地址好,正题来了,这是CS144课程的官方链接CS144 强烈推荐给像我一样对网络系统感兴趣的朋友们。
test1 1心路历程(废话 busi)开始实操这门课的项目时,我真的遇到了不少的阻力。以前我更多的是书面上的学习,对概念和理论比较了解,但在动手实现它们的时候,突然间好像有一面墙立在了我的面前,让我手足无措,反反复复在文档与之前学过的知识对照,又双叒叕地与bug和失败结果打交道。程序员嘛,谁没有过在编译器前哭泣的时候呢?
test1 1test1 2有所所获这个过程中,我学到了很多东西——不仅仅是知识上的收获,更多的是在面对问题和困难时,如何保持冷静,如何一 ...
该网站的诞生从前,在Echo的小窝里,有一群聪明的猫猫虫猫猫虫们聪明又可爱,他们相亲相爱,互相交流建站的经验,和生活琐事。有一天,有一只猫猫发现了不得了的事情人家隔壁的石头搭建的窝也太好看了吧猫猫们也想要那样的一个窝,但是目前的窝又是猫猫们舍不得的,这可把猫猫们急的呀团团转怎么办?怎么办?突然聪明的猫猫们想出了一个办法小孩子才做选择,猫猫们全都要于是本站诞生啦!