next up previous contents
Next: Protocol Analysis Up: Testing and Analysis Previous: Time Comparisons

Memory Issues

The main memory drain in the implementation is in the routing table. In Linux, for every computer that the host comes into contact with, be it a direct connection or along a route to another destination, an entry for the foreign host is made in the routing table. This routing table is accessed through the rtable structure. The implementation of T/TCP adds in two new fields to this structure, CCrecv and CCsent, see section 6.6.

The entire size of this structure is 56 bytes. This isn't a major memory hog on a small stand alone host, but on a busy server where the host communicates with maybe thousands of other hosts an hour, it can be a major strain on memory. Linux has a mechanism where a route that is no longer in use can be removed from memory. A check is run periodically that cleans out unused routes and those that have been idle for a time.

The problem here is that the routing table holds the TAO cache. So anytime a route is deleted that contained the last CC value from a host, the local host has to re-initiate the 3-Way Handshake with a CCnew segment.

Implementation-wise it is possible to create a separate cache to hold the TAO values, but the route table is the handiest solution. It is also possible to add in a check when cleaning out the routing entries to see whether it contains a CC value other than zero (undefined). In this case, the route could either be left there for a longer time span or permanently.

The benefits of leaving the routing entries up permanently are clear, the most likely use of this would be in a situation where a host only talks to a certain set of foreign hosts, and denies access to unknown hosts. In this case, it is advantageous to keep a permanent record in memory so that the three way handshake can be bypassed more often.


next up previous contents
Next: Protocol Analysis Up: Testing and Analysis Previous: Time Comparisons

Mark Stacey
Thu Apr 30 12:26:11 IST 1998