Archive for July, 2006

Fragmenting IP

Monday, July 17th, 2006

When fragmenting IP packets, you usually split the packets up into "n-1" pMTU sized packets, and 1 packet of the remainder.  Now with wireless networks the larger the packet is the more likely it is to be lost/corrupted.  I suspect it would make more sense to fragment packets into equal sized pieces, so totlen/n bytes each.  Most routing overhead is per packet, and the total number of packets hasn't been changed.  Also this would tend to avoid so many pMTU issues as your packets are probably going to less than pMTU sized.

Migrating networking processes

Monday, July 10th, 2006

So if I want to migrate a networking process, chances are it's going to migrated to a machine that nolonger has the IP address that it started with, which breaks all current TCP/IP connections.  Suck.

But with IPv6, we have an abundance of addresses (264 per subnet), so we could trivially aquire a new IPv6 Address per process.  Mobile IPv6 allows you to migrate the IP address along with the process.  The kernel could do the IPv6 allocation, and route all packets to that address to the userspace process, and make sure that any packet arriving from userspace has the right source address.

Since all the networking state is stored in a library in userspace, when you serialise/hibernate the process (and restore it again), all your networking state is immediately accessible and usable.  This also fits well with Van Jacobson's NetChannels allowing for perhaps some of the performance increases he has seen.