next up previous contents
Next: State Processing Up: Design and Implementation Previous: Design and Implementation

Design Approach

The basis for the design of the T/TCP implementation, as in the original TCP implementation, is the state machine (figure 6.1 and table 6.1). The starred states in the diagram are the new states introduced by T/TCP. There is a simple correspondence between these states and their equivalent original states. Table 6.2 shows this correspondence [3]. This modified state diagram results in changes necessary in any state checking in the kernel, section 6.2 describes the implementation.

New variables and flags are needed for the implementation of T/TCP. These are described in section 6.3.

CC options play a major part in the implementation of T/TCP. Their integration into the kernel is described in section 6.4. Two new functions were necessary to handle the CC options along with a number of new state variables. CC options also allow the packet to be further validated then with sequence numbers, section 6.5 has further details.

Two variable additions to the routing table are described in section 6.6. These variables hold the TAO cache which is used for the TAO test.

The implementation of the TAO test is described in section 6.7. This is where the 3-Way Handshake can be bypassed and the data passed onto the user for immediate processing.

Changes required to the mechanism for transmission of TCP packets is described in section 6.8. The main changes involved here include calculating which CC options to send and inserting them into the header of the packet.

Receipt of an ACK segment and the receipt of a SYN segment are the main areas where the input processing needs to be modified. Section 6.9 details the changes required to the tcp_conn_request(), tcp_ack(), tcp_accept() and the tcp_rcv() functions.

A brief description of the truncation of the TIME-WAIT state is described in section 6.10, followed by a check necessary to handle older Linux kernels with a bug that affects T/TCP in section 6.11.

The tcp_statistics structure is updated to display the T/TCP processing. The changes can be seen in section 6.12.

Since T/TCP is still experimental, and not required in all situations, an option to compile T/TCP support into the kernel was included in the design. This is described in section 6.13.


next up previous contents
Next: State Processing Up: Design and Implementation Previous: Design and Implementation

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