syndicate-2017/examples/netstack/monolithic-lowlevel
Tony Garnock-Jones 68ba2f74a6 Split dataspaces in to relay and mux sublayers.
This is a major change to the previous design, and also a change with
respect to the semantics in the ESOP 2016 paper. All the complexity of
echo-cancellation is stripped out of the core dataspace semantics, and
the relaying protocol is changed from one constructor, `at-meta`, to
two, `inbound` and `outbound`. The relay connecting a dataspace to its
container is now completely symmetric with the contained actors: it
initially asserts interest in what it is to relay, just like any other
actor would. Dataspaces no longer treat relaying specially.

This commit has updated all (I think) of the non-graphical examples. The
graphical code remains to be done in a following commit.
2016-07-30 14:49:05 -04:00
..
Makefile Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
README.md Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
TODO.md Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
arp.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
checksum.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
configuration.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
demo-config.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
dump-bytes.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
ethernet.rkt Split dataspaces in to relay and mux sublayers. 2016-07-30 14:49:05 -04:00
fetchurl.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
ip.rkt Split dataspaces in to relay and mux sublayers. 2016-07-30 14:49:05 -04:00
main.rkt Split dataspaces in to relay and mux sublayers. 2016-07-30 14:49:05 -04:00
on-claim.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
port-allocator.rkt Copy monolithic netstack implementation to subdir, for future reference 2016-07-21 17:04:01 -04:00
tcp.rkt Split dataspaces in to relay and mux sublayers. 2016-07-30 14:49:05 -04:00
udp.rkt Split dataspaces in to relay and mux sublayers. 2016-07-30 14:49:05 -04:00

README.md

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