User-mode TCP/IP stack from 4.4BSD-Lite2, a companion of TCP/IP Illustrated vol. 2
C
377
32 commits
updated Apr 6, 2021
User-land TCP/IP stack from 4.4BSD-Lite2, a companion of W. Richard Stevens's immortal work TCP/IP Illustrated, Volume 2: The Implementation, with a focus on TCP chapters. TCP/IP Illustrated vol.2 uses 4.4BSD-Lite as its example, a slightly early version. TCP/IP code of 4.4BSD-Lite2 is roughly the same as FreeBSD 2.0.
This is not a fork of https://github.com/sergev/4.4BSD-Lite2, which contains the whole 4.4BSD-Lite2.tar.gz. This repository only contains usr/src/sys of the tarball, ie. the kernel source.
$ make
This build a few executables:
objs/test_init TCP three-way handshake, you can step through code with GDBobjs/test_self TCP self-connectionobjs/test_pigeon ICMP echo request/responseobjs/test_tun Connect to host with TAP/TUN device.
tun0, its IP address is 192.168.0.2, listens on port 1234.ping 192.168.0.2 or nc 192.168.0.2 1234, also watch the packets with tcpdump -n -i tun0.This TCP/IP stack is alive, using tap/tun device on Linux. (WIP)
Unofficial companion site of TCP/IP Illustrated vol. 2
For running recent FreeBSD TCP/IP stack in user mode, take a look at https://github.com/pkelsey/libuinet and https://github.com/cloudius-systems/osv.
32 commits
C
93.5%
Assembly
5.2%
User-mode TCP/IP stack from 4.4BSD-Lite2, a companion of TCP/IP Illustrated vol. 2
C
377
32 commits
updated Apr 6, 2021
User-land TCP/IP stack from 4.4BSD-Lite2, a companion of W. Richard Stevens's immortal work TCP/IP Illustrated, Volume 2: The Implementation, with a focus on TCP chapters. TCP/IP Illustrated vol.2 uses 4.4BSD-Lite as its example, a slightly early version. TCP/IP code of 4.4BSD-Lite2 is roughly the same as FreeBSD 2.0.
This is not a fork of https://github.com/sergev/4.4BSD-Lite2, which contains the whole 4.4BSD-Lite2.tar.gz. This repository only contains usr/src/sys of the tarball, ie. the kernel source.
$ make
This build a few executables:
objs/test_init TCP three-way handshake, you can step through code with GDBobjs/test_self TCP self-connectionobjs/test_pigeon ICMP echo request/responseobjs/test_tun Connect to host with TAP/TUN device.
tun0, its IP address is 192.168.0.2, listens on port 1234.ping 192.168.0.2 or nc 192.168.0.2 1234, also watch the packets with tcpdump -n -i tun0.This TCP/IP stack is alive, using tap/tun device on Linux. (WIP)
Unofficial companion site of TCP/IP Illustrated vol. 2
For running recent FreeBSD TCP/IP stack in user mode, take a look at https://github.com/pkelsey/libuinet and https://github.com/cloudius-systems/osv.
32 commits
C
93.5%
Assembly
5.2%