Clean up netstack README and TODO situation.
This commit is contained in:
parent
426a38b17f
commit
4beb281a2d
|
@ -1,5 +1,18 @@
|
|||
# TCP/IP Stack
|
||||
|
||||
There are two (closely-related) implementations here:
|
||||
|
||||
- [`monolithic-lowlevel`](monolithic-lowlevel/) is the original
|
||||
implementation, originally written for `minimart`, a language that
|
||||
followed our ESOP 2014 paper quite closely. Porting it to a
|
||||
monolithic-assertion-set Syndicate dialect helped substantially
|
||||
simplify the code.
|
||||
|
||||
- [`incremental-highlevel`](incremental-highlevel/) is a port of
|
||||
`monolithic-lowlevel` to the Syndicate high-level DSL
|
||||
("`syndicate/actor`"). Moving from the low-level Syndicate style to
|
||||
the high-level style also drastically simplified the code.
|
||||
|
||||
## Linux Firewall Configuration
|
||||
|
||||
Imagine a setup where the machine you are running this code has IP
|
|
@ -11,8 +11,14 @@ TCP options negotiation.
|
|||
- SACK
|
||||
- Window scaling
|
||||
|
||||
Check that we handle the situations in figs. 9, 10, 11, pp.33- of RFC 793.
|
||||
|
||||
Bugs:
|
||||
- RST kills a connection even if its sequence number is bogus. Check
|
||||
to make sure it's in the window. (See
|
||||
http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41848.pdf
|
||||
and RFC 5961)
|
||||
|
||||
Conform better to the rules for reset generation and processing
|
||||
from pp.36- of RFC 793. In particular, do not blindly accept RSTs
|
||||
without checking sequence numbers against windows etc.
|
|
@ -1,16 +0,0 @@
|
|||
# TCP/IP Stack
|
||||
|
||||
## Linux Firewall Configuration
|
||||
|
||||
Imagine a setup where the machine you are running this code has IP
|
||||
192.168.1.10. This code claims 192.168.1.222 for itself. Now, pinging
|
||||
192.168.1.222 from some other machine, say 192.168.1.99, will cause
|
||||
the local kernel to receive the pings and then *forward them on to
|
||||
192.168.1.222*, which because of the gratuitous ARP announcement, it
|
||||
knows to be on its own Ethernet MAC address. This causes the ping
|
||||
requests to repeat endlessly, each time with one lower TTL.
|
||||
|
||||
One approach to solving the problem is to prevent the kernel from
|
||||
forwarding packets addressed to 192.168.1.222. To do this,
|
||||
|
||||
sudo iptables -I FORWARD -d 192.168.1.222 -j DROP
|
|
@ -1,18 +0,0 @@
|
|||
Ideas on TCP unit testing:
|
||||
<https://www.snellman.net/blog/archive/2015-07-09-unit-testing-a-tcp-stack/>
|
||||
|
||||
Check behaviour around TCP zero-window probing. Is the correct
|
||||
behaviour already a consequence of the way `send-outbound` works?
|
||||
|
||||
Do something smarter with TCP timers and RTT estimation than the
|
||||
nothing that's already being done.
|
||||
|
||||
TCP options negotiation.
|
||||
- SACK
|
||||
- Window scaling
|
||||
|
||||
Bugs:
|
||||
- RST kills a connection even if its sequence number is bogus. Check
|
||||
to make sure it's in the window. (See
|
||||
http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41848.pdf
|
||||
and RFC 5961)
|
Loading…
Reference in New Issue