check7
Created|Updated|Network
|Post Views:
Solo portion
测试在wsl下非常顺利,下面是开始和关闭的截图
- 开始新连接截图:
- 互相发送截图
- 关闭截图
- 传输文件测试
整个流程非常顺利,没有修改任何代码,直接成功
Group portion
我选择和沈硕(221502023)互发
这里首先我作为server尝试给对方发文件,下面是对应的截图:
- 我的截图
- 对方的截图
然后我作为client尝试进行了聊天,非常成功,下面是截图
Author: Eric Li
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles
2024-11-01
Network Overview
Network CoreStore-and-Forward Transmission在这个模式下,每个router会被要求先接收到一个完整的包,再把整个包转发出去,这里给出在 段链接(一共有 个router),每段链接上的传输速率都为 的情况下,传输长度为 的包,产生的端到端的时延为: Hint:为什么这里前面是 是因为,这里最后的client也必须完整收到一个包才能进行处理 FDM and TDMDelay and lossQueuing Delays这里面没啥说的,Queueing Delay 讲的是在每一个router内部,buffer的数量是有限的,所以有可能这个包即使被完全收到也不能马上向前传输出去,可能需要排队等待后面。 Processing Delay这个讲的是,在router收到某个包的时候,需要读这个包的头来判断往哪里转发,所以会产生 process delay Packet LossPacket Loss 讲的是如果这个buffer满了,某些包可能被丢弃。 Transmission Delay...
2024-09-12
check0
Program Structure and Design3.4 geturl这个实验非常简单,只需要读懂他这里的API就可以做了,其中从socket里面读数据的方式和pipe是完全一致的,都用read来读,write来写。 首先使用 1Address address { host, "http" }; 来创建一个地址 然后用 1234TCPSocket socket;socket.connect( address );socket.write( "GET " + path + " HTTP/1.1\r\nHost: " + host + "\r\nConnection: close\r\n\r\n" );string response; 来创建socket,接下来不断读就行了: 1234567891011121314151617string response;bool is_line_one = true;while ( !socket.eof() && !socket.closed() ) { string tmp; socket.read( tmp );...
2024-11-03
Application Layer
HTTP HTTP 的全程是超文本文件传输协议,即 HyperText Transfer Protocol 用于传输网页等超文本信息。 一个常见的网页(Webpage)主要由以下的东西组成: HTML文件 JavaScript脚本 CSS层叠样式表 JPEG等其它资源文件 而HTTP的主要功能就是向客户机正确提供这些文件 URLURL是输入在浏览器里面用来访问互联网资源的地址,其格式形如: 1http://www.someSchool.edu/someDepartment/picture.gif 这里面主要包含一下几个部分: http:// 指明协议,可能包含 http 、https 等 www.someSchool.edu 被称为hostname即主机名,是指提供该服务的主机名称 someDepartment/picture.gif 是路径名(Path name) 描述希望获取的资源的位置 这个URL这里是可以整花活的,例如你可以在桌面创建一个 a.txt 的文件,然后在浏览器中输入 file:///C:/Users/Username/Desktop/a.txt...
2024-10-06
check1
Structure and Design这里主要就是需要维护一个区间,来表示每一次插入的时候插入的data是什么以及有效的 first_index 和 last_index 所以首先有一个类 123456789101112131415161718192021class section{private: uint64_t first_index; uint64_t last_index;public: string data;public: section( uint64_t first_index_, uint64_t last_index_, string& data_ ) : first_index( first_index_ ), last_index( last_index_ ), data( std::move( data_ ) ) {}; uint64_t get_first_index() const { return first_index; }; uint64_t get_last_index() const { return...
2024-10-27
Transport Layer
连接复用UDP: User Datagram ProtocolUDP只用一个二元组来区分链接,一个UDP的头只包括 dest ip 和 dest port 两个信息而在对上面的应用层提供服务的时候,拥有同样的 ip 和 port 的数据块会被送到同一个 Socket 里面 TCPTCP使用一个四元组来区分链接,即(source ip,source port, dest ip,dest port) 这个四元组来区分,只有当这四元组完全相同的时候才会送到同一个 Socket 里面去。 UDP优点和缺点优点 不需要握手建立连接 简单,发送端和接收端没有状态切换 报文头小 缺点 只是尽最大努力传输,所以报文可能会丢失、乱序 没有拥塞控制,可能会严重超时 UDP报文的样式 如何做checksum 可靠的传输这里面东西比较多,只记录怎么评估一个可信传输的效率 定义 表示sender工作的时长站总传输时长的占比,定义传输时间 这里的 表示每一个待发包的大小,而 表示这个Link的传输速率,那么在发送一个包并等待 ...
2024-10-13
check2
My name:李冠霖 My NJU ID:221502012 I collaborated with: NAN I would like to thank/reward these classmates for their help: NAN This lab took me about 8 hours to do. I did attend the lab session. Describe Wrap32 and TCPReceiver structure and design. Wrap32: 这个还是蛮简单的,就是要看懂他这里给的是什么意思,首先第一个 wrap 很简单直接加就行了,记得做类型转换就行。第二个 unwrap 最开始我想的是先用 0xffffffff00000000 去 mask 一下这个 checkpoint 把高32位取出来,然后再去凑最近的是哪一个,但是后面发现corner case太多了,不如直接去算最近的是哪一个。首先把减完的 offset 去减去 (1ULL << 32) / 2...
Announcement
The blog is now under construction