CS144--Lab7笔记

CS144——Lab7笔记

Getting started

首先是版本控制操作,从lab6分支创建用于lab7开发的分支,我是在Clion的Git图形操作界面设定的。然后按照文档,从远程仓库拉取lab7的实验内容

//在新分支dev-lab7下
git fetch
git merge origin/lab7-startercode
make -j4

会弹出一个询问界面,让你提交此次合并到你本地仓库分支的说明commit,可以不管,直接ctrl+X键。
本次实验,你不用编写任何代码,仅仅需要在terminal下执行几条命令即可。
本次实验的逻辑流程:
在这里插入图片描述

你可能需要一个搭档(没有也可以),如果有就是一方充当server端,一方是client端(没有的话,同一台机器上开两个窗口也可以完成)。作为普通用户我们的实际网络是处于NAT网络转换下的,可以借助本实验的设计者在 CS144.keithw.org 搭建的服务,server和client借助此服务作为中继通信。

注意:端口号可能被占用,多尝试别的端口号

测试

简略通讯测试

我是直接开了两个窗口,分别在两个窗口执行下列命令(都要在build目录下):

//作为server的窗口,端口号尽量大一点(1024 ~ 64000)
sudo ./apps/lab7 server cs144.keithw.org 9730
//作为client的窗口
sudo ./apps/lab7 client cs144.keithw.org 12093

通信测试结果如下图(c->s:表示客户端发给服务器端;s->c:服务器端发给客户端):
在这里插入图片描述

前面通讯完成后,先在client端按ctrl+D结束连接,然后继续在server端是可以发送消息的,因为第四次挥手还没做,然后server端也ctrl+D,等待一会后双方都会结束了。

传输文件测试

现在本地创建一个big.txt文件:

dd if=/dev/urandom bs=1M count=1 of=/tmp/big.txt
//接着在另外一个窗口
sudo ./apps/lab7 server cs144.keithw.org 6000 < /tmp/big.txt
//又在另外一个窗口
sudo ./apps/lab7 client cs144.keithw.org 6001 > /tmp/big-received.txt </dev/null

可以根据窗口信息知道,client在接收到文件后就结束了通信,所以在server端要ctrl+D,等待连接关闭。
接着就可以在ternimal中执行:

sha256sum /tmp/big.txt
//会得到一串哈希值
sha256sum /tmp/big-received.txt
//也会得到一串哈希值

比较两者,结果如下:
在这里插入图片描述


磕磕碰碰终于玩成了CS144的八个实验!😄 👏完结撒花🌸

找到了性能非常好的实现,等后面尝试优化一下,感谢 Keith Winstein 教授的实验设计。

参考引用

👉LRL52博客
👉涉及的Sponge仓库
👉康宇PL‘s Blog
👉Kiprey的博客
👉Lexssma’s Blogs
👉TUN和TAP的区别
👉ViXbob的实现效率很优秀
👉B站一个Up很好的视频讲解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值