Interactive Model Architecture


In this section we briefly present the basic architecture of iTCP's event subscription and transport probing scenarios. For detailed information please refere to our published papers or technical reports.

iTCP Architecture
  • 1, 2 --The application binds the TCP kernel with chosen events (e.g. retransmit timerout event) through a special "Subscription API". The subscription also binds the subscribed event with a predetermined user-supplied "Event-Handler".
  • 3a --An entity called Event-Monitor runs in the TCP-interactive kernel space and monitors all subscribed events for every socket. When a subscribed event is detected, The Event-Monitor sends a signal to a central handler running in the system space called "Transientware".
  • 3b --At the same time, the Event-Monitor writes the event's relevant information in a special data structure and marks all subscriptions of that event as outstanding and need to be handled immediately.
  • 4a, 4b--When it receives a signal, the Transientware probes the kernel through the special probing API. First, it probes the kernel to know which socket needs attention, then, it gets the relevant information about the outstanding event.
  • 5 --The Transientware invokes the appropriate Event-Handler to handle the outstanding event. There should be enough Event-Handlers to satisfy all subscriptions. These are small programs supplied by the user or by a third-party as ready to run executables custom-designed to handle certain events.
  • 6a, 6b--The probing API allows Event-Handlers to probe additional information about the state of the TCP connection. This includes some parameters like send window size (snd_wnd), congestion-control window size (snd_cwnd), and round-trip time (t_rtttime).
  • 7 --Event-Handlers use some of these parameters to calculate a new sending or to guarantees certain delivery time bound of the traffic. The model allows the Event-Handler to probe the Kernel any time and get the updated values of these parameters, and it allows the network administrator to restrict access to certain kernel parameters.