# 传输层实验
- 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,
- 然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。
- 之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
- TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
- 本实验要求实验者完善TCP接收器,实现按序接收,滑窗控制,按序回应等功能
For build prereqs, see [the CS144 VM setup instructions](https://web.stanford.edu/class/cs144/vm_howto).
## Sponge quickstart
To set up your build directory:
$ mkdir -p <path/to/sponge>/build
$ cd <path/to/sponge>/build
$ cmake ..
**Note:** all further commands listed below should be run from the `build` dir.
To build:
$ make
You can use the `-j` switch to build in parallel, e.g.,
$ make -j$(nproc)
To test (after building; make sure you've got the [build prereqs](https://web.stanford.edu/class/cs144/vm_howto) installed!)
$ make check
The first time you run `make check`, it will run `sudo` to configure two
[TUN](https://www.kernel.org/doc/Documentation/networking/tuntap.txt) devices for use during
testing.
### build options
You can specify a different compiler when you run cmake:
$ CC=clang CXX=clang++ cmake ..
You can also specify `CLANG_TIDY=` or `CLANG_FORMAT=` (see "other useful targets", below).
Sponge's build system supports several different build targets. By default, cmake chooses the `Release`
target, which enables the usual optimizations. The `Debug` target enables debugging and reduces the
level of optimization. To choose the `Debug` target:
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
The following targets are supported:
- `Release` - optimizations
- `Debug` - debug symbols and `-Og`
- `RelASan` - release build with [ASan](https://en.wikipedia.org/wiki/AddressSanitizer) and
[UBSan](https://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/)
- `RelTSan` - release build with
[ThreadSan](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Thread_Sanitizer)
- `DebugASan` - debug build with ASan and UBSan
- `DebugTSan` - debug build with ThreadSan
Of course, you can combine all of the above, e.g.,
$ CLANG_TIDY=clang-tidy-6.0 CXX=clang++-6.0 .. -DCMAKE_BUILD_TYPE=Debug
**Note:** if you want to change `CC`, `CXX`, `CLANG_TIDY`, or `CLANG_FORMAT`, you need to remove
`build/CMakeCache.txt` and re-run cmake. (This isn't necessary for `CMAKE_BUILD_TYPE`.)
### other useful targets
To generate documentation (you'll need `doxygen`; output will be in `build/doc/`):
$ make doc
To lint (you'll need `clang-tidy`):
$ make -j$(nproc) tidy
To run cppcheck (you'll need `cppcheck`):
$ make cppcheck
To format (you'll need `clang-format`):
$ make format
To see all available targets,
$ make help
没有合适的资源?快使用搜索试试~ 我知道了~
CS144实验答案,中国科学技术大学2023春网络系统实验
共1346个文件
cc:573个
hh:237个
sample:91个
需积分: 0 9 下载量 146 浏览量
2023-05-25
12:33:57
上传
评论 2
收藏 5.54MB ZIP 举报
温馨提示
测试样例全部通过,router实验使用了RadixTree进行优化,包含7次实验的所有内容,逻辑自然几乎没有用到特判,没有修改任何除可修改内容之外的其他库。 适合正在进行该实验的本科生。语言:C+++
资源推荐
资源详情
资源评论
收起资源包目录
CS144实验答案,中国科学技术大学2023春网络系统实验 (1346个子文件)
001e69d138774cb5b99b13a9144331be6ee274 2KB
001e69d138774cb5b99b13a9144331be6ee274 2KB
011b441f5f67a21847b3e2e92104e44d60c19b 1KB
011b441f5f67a21847b3e2e92104e44d60c19b 1KB
02e35591a55bd857bbc91020d18f7ebef046b3 158B
04fbd92550121866fec560eb9c1229685bc771 166B
06a6644b7838f0fa3e965065d1f7cd575ab080 170B
06b97150b41e1543f34e31330b86c0cd2441ea 869B
06b97150b41e1543f34e31330b86c0cd2441ea 869B
06d94d1c153ba0ab9028d449ac63437ebd6f97 1KB
0d8a2e9a9ecf049f38245f240bc2d986b77a51 92B
0def6c455847c2a946a3c3922ae2e8f274a06d 404B
0e582ac64bcfa8e13af943551b47b09debdfa9 1KB
16182fc75ff6efa29c79e810a702006d90170b 2KB
1690b29aedf29e5ca4fa4d8631240de0a7a91d 342B
16be4922862adfdb166d574391b21ae88b6931 156B
1c784d3decc10968e8c107095546b5e332c476 163B
1c9ef756a9d7878001139704fdc1a40b9ea1b8 380B
1d9d5ee78c496e7557636693e7f2e839084f2b 1KB
1f95747f51e168c1877893ab89738f708a6ab0 496B
2107414c07f5bfc4802c194f695afea244736b 809B
2107414c07f5bfc4802c194f695afea244736b 809B
212c4133cfed4b0f1f668976a05c2de2617b6a 801B
217d43c8ce4b43357a4b46fa1e49fb926ba64e 436B
29f4fed894ed47943e395d88fa8a5e443b0032 404B
2be394f7bc7ad78eb049de5fc9d8120d992542 2KB
2c89a63739ed9d855cda2ec11f77b317f91b7f 1KB
2e73fddc06c7ad28b3e7ef2f3cb1fde7f0ab3f 2KB
31bba2a2d35a45ef4c06313a1ef1c687814aaf 1KB
31bba2a2d35a45ef4c06313a1ef1c687814aaf 1KB
33c282b454216e49ff11b62bc9b11f0ef1cae2 2KB
34d3aa61c151c5f50df8af3826d8dc2bf8507a 38KB
35f9fed2de51fe88eb2bfd1326e7cbee7d7925 1KB
3a183f2df7acec242b03e210ea3578945ad401 2KB
3b9ad76b55c173d9c46716a0057d03c3da3c40 341B
3c17eb6a31076eed98ec9cf730d9f8f1eb0cc0 339B
45180461c915501fad88a6c36919e5348417e2 1KB
47bbd254201e27f3a881f1c8e053e5198de7fe 405B
48d8cf60f0d97c99a7de38e0367655fee2b11e 38KB
52d294558df610f61bd544e5d67bce0aabc1b4 192B
5f8f490dc4fc7e41d08c5871dd8443465ba23f 2KB
5fb5bbc993e744daa0c9f703ba8b2eb5f7fe07 85B
706d69f0ba0e5d70a7f9b636eac462d3f49aec 156B
730abe6fcb4e17d21b408f09b191691f2f9cef 494B
76386fdfe8b241b89304cd0555646be49aa16f 167B
768d70ff47741fa8356d2d19564f69e4ae78c6 761B
769d643478aa7f06fa5e0197a60a1bef8f3986 340B
7ccd67af70d06342e549eae7516a0466e93cee 157KB
7d66504750f35cea87454de3b0e0da8cc707bf 50KB
7e7ba755b17914796f4d02bc78d68a42799bfc 158B
85b58bb3cdb2c5cb5d7e1c2389b265868d0507 162B
8f5b1b5a2b91bdf6f5987b0693099931c00ace 78B
91e84f42a0106b1f185e89563fd86b86c33815 1KB
92fdf483eaf004d3ce5a22df759b9299ceac0e 2KB
932cb2d1a1db6f7ecd53c019dd32aaa49f5742 341B
948a246e93d2c8b3c4ffd9cf878b1d613617c1 166B
95abefbec897c7ae412821429c019ba709e614 158B
95c39a7db51787817bc779720cf79e33fa5f22 1KB
9873715088e6b3228f3d21ba0a2027eb8f0c3b 175B
99aaafc0b18a2a1fd4ea1508526f7834df8bf2 358B
a07c7fbf55eff25804d42d066b7735a039ec9f 170B
a1875ed4fbb1a70fd5fc3467f7b7c37058bb72 404B
a204fcbbaedb8b7f05ed22922a16cea47218c7 2KB
a23153ef6bcd499f426acad7a8007dfe416303 1KB
a23153ef6bcd499f426acad7a8007dfe416303 1KB
a2985c7b7f2c1acdf137abae01123d8a2fd01b 2KB
a30843697b96e51354c53cfb89379a9979a066 2KB
a4c2ed369b228f1f90dccf3d339235f11950f1 1KB
a7018d33cb1aa920bab6163582a9a498e93fd0 496B
a96ad7b11efdf57a2f8f825f4a378b40a11365 405B
adb9c034446c8eebc9bb3cb1665fd28f509b37 167B
b0b7d490703c8f1c29146907b6731e7f229e8a 165B
b15f44347cb4f7c399558531491546310f1fe7 161B
b1e74a233b36a1cf7b7c17a80a3f87cc7a4c69 405B
b38f62f4977b5a7b8d9c78b13f8fdb8493aa22 2KB
b67d4240446ff8a24f2d6495bdf320fe47e9ff 436B
b81d0771d75086f4df53e2b00d5299752121cf 2KB
b892cc71cd0f4acb0d60f242f4235ddcd5f422 340B
bb0b2c9e5ccbbd5ce3d8b72c2ef0aab1eb0ae3 171B
c0daf3b7a88e05600dbaefb0ec631d5bb46c48 1KB
c0daf3b7a88e05600dbaefb0ec631d5bb46c48 1KB
c0df481c87ff0cd2096408a82fc018ae393dcf 1KB
c3366ae5b1bf82c630c3e3f085d0b54ad7dbf8 404B
c4529b8914391bcf3b89a3cabeabc298d01402 892B
c4529b8914391bcf3b89a3cabeabc298d01402 892B
c877df40aef0d72a89aa27699a75bbe40a0ebb 2KB
c9e6412126ee97257b704d7ce35dd035102685 162B
net_interface.cc 15KB
net_interface.cc 15KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
ipv4_parser.cc 13KB
network_simulator.cc 13KB
tcp_sponge_socket.cc 13KB
tcp_sponge_socket.cc 13KB
tcp_fsm_test_harness.cc 13KB
共 1346 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
feidun01
- 粉丝: 9
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功