Check out the new USENIX Web site. next up previous
Next: Token Passing Up: Single-Segment RETHER Previous: Single-Segment RETHER

  
Overview

RETHER provides a set of procedural interfaces for applications to reserve network bandwidth, and guarantees the reservations throughout the lifetime of the applications once they are admitted. Currently RETHER is implemented within the Ethernet device driver under FreeBSD UNIX, Linux and DOS. Under RETHER , individual applications can send a certain amount of data (D) in each periodic cycle, T. The amount of data is specified in the reservations and thus varies from application to application. The length of the cycle is fixed but can be changed at the system initialization time. To start a RETHER connection, which is uni-directional, the sender application makes a library call, reservation(), which, upon successfully creating a RETHER connection, returns a socket descriptor. From that time on, the sender application can send() the reserved amount of data through the returned socket descriptor, and RETHER ensures that the data be delivered at the rate $\frac{D}{T}$. The receiver application simply receives the sent data using normal receive() calls without making any special arrangements.

The current implementation of reservation() is based on the socket interface and uses a special unused Ethernet address1 to alert the local RETHER module in the device driver of the reservation request. Upon detecting such a request, RETHER reserves a RETHER connection to the target receiver according to the requested bandwidth requirement, and if successful, records a mapping between the reserved RETHER connection's ID and the source port number associated with the socket descriptor to be returned to the sender application. At run time, RETHER consults with this mapping to determine which RETHER connection each IP packet should be sent on. Packets that are not parts of reserved connections are sent on a pre-established RETHER connection by default.

In the absence of real-time connections, the RETHER network operates under the original CSMA/CD protocol. When the first real-time bandwidth reservation request arrives, the RETHER network switches to a token-passing mode. In this mode, channel access for all traffic, real-time and non-real-time, is regulated by a token. Intuitively time is divided into cycles. In each cycle, the token first services all the nodes that have real-time data to send (called real-time (RT) nodes), and then it attempts to service non-real-time (NRT) nodes in a round-robin fashion. Essentially NRT nodes share the bandwidth remaining in each cycle after all RT nodes have been serviced. Note that all network nodes, including those making bandwidth reservations, are NRT nodes. The network stays in the token-passing mode until the last real-time session terminates. At this time, the network switches back to the CSMA/CD protocol. This hybrid scheme reduces the performance impact due to token passing on non-real-time traffic.


next up previous
Next: Token Passing Up: Single-Segment RETHER Previous: Single-Segment RETHER
Tzi-cker Chiueh
1999-03-18