https://github.com/lancelet/numbat
Learning how the "Network of Tubes" works
https://github.com/lancelet/numbat
network tcp
Last synced: 3 months ago
JSON representation
Learning how the "Network of Tubes" works
- Host: GitHub
- URL: https://github.com/lancelet/numbat
- Owner: lancelet
- License: bsd-3-clause
- Created: 2020-03-20T06:33:07.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-03-30T08:15:00.000Z (about 5 years ago)
- Last Synced: 2025-01-13T21:27:43.255Z (4 months ago)
- Topics: network, tcp
- Language: Haskell
- Homepage:
- Size: 34.2 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Network Numbat

> Learning how the Network of Tubes works
This project is not intended to implement any "real-world" functionality.
Instead, it's my personal learning about the network stack.## Implemented Features
- [ ] Encoding / decoding TCP header
- [ ] Encoding / decoding IP segments
- [ ] TCP state machine## Sources of Documentation
- [RFC 793][rfc-793]: The main TCP RFC.
- [TCP at Wikipedia][tcp-wikipedia]: Extra summary of background information.
- [`tcpdump` Cheatsheet][tcpdump-cheatsheet]: Useful summary of `tcpdump`
options.
- [`rust_tun`][rust-tun]: A Rust binding for TUN which works on MacOS.
- [`mac-utun`][mac-utun]: Another Rust TUN binding for MacOS.
- [WWDC Presentation on DriverKit][wwdc-driverkit]: DriverKit allows user-space
macOS drivers. Maybe even a TAP (layer 2 virtualisation) implementation.
- [WWDC Presentation on Network Extensions][wwdc-network-extensions]: I think
this is more background on DriverKit, etc.
- [NetworkingDriverKit][networkingdriverkit]: A sub-component of DriverKit,
for Ethernet drivers.[rfc-793]: https://tools.ietf.org/html/rfc793
[tcp-wikipedia]: https://en.wikipedia.org/wiki/Transmission_Control_Protocol
[rust-tun]: https://github.com/meh/rust-tun
[mac-utun]: https://crates.io/crates/mac_utun
[tcpdump-cheatsheet]: https://www.andreafortuna.org/2018/07/18/tcpdump-a-simple-cheatsheet/
[wwdc-driverkit]: https://developer.apple.com/videos/play/wwdc2019/702/
[wwdc-network-extensions]: https://developer.apple.com/videos/play/wwdc2019/714/
[networkingdriverkit]: https://developer.apple.com/documentation/networkingdriverkit