These protocols manage many timing events at both the ender and the receiver ? for example, since the sender does not initiate receiver data acknowledgements, both the receiver and sender require an additional timer. The data transmission rates assumed are no longer valid and may limit the scalability of the protocols ? in TCP, for example, which was designed in an era of Kbps data transmission rates, the flow window size is small, and based on 16 bit byte sequencing. Finally, the state machines for these transport protocols were intended for sequential rather than parallel execution.
For example, the placement of the rainspout checksum field was considered arbitrary and so it was placed in the header. EXT provides for the reliable transmission of data in an inter-networked environment, with real-time processing of the EXT protocol ? I. E. , the processing time for incoming or outgoing packets is no greater than transmission time. EXT contains error, flow and rate control mechanisms similar to those found in other more modern transport layer protocols 2 in addition to multicast capability. Timer management is minimized ? in EXT 1 .
The transfer layer is formed by combining the functionalities f both the network and transport layers of the ISO OSI model into a single layer. 2. Specifically, two other modern transport layer protocols ? Versatile Message Transaction Protocol (VAMP) developed at Stanford University by David Criterion, and Network Bulk Transfer (NETBALL) developed at MIT by David Clark. There is only one timer at the receiver, used in closing the context. EXT has a 32 bit flow window. Steps state machine is specifically designed for parallel execution.
Address translation, context creation, flow control, error control, rate control and host system interfacing can all execute in parallel. The EXT protocol is considered a lightweight protocol for several reasons. First, it is a fairly simple yet flexible algorithm. Second, packet headers are of fixed size and contain sufficient information to screen and steer the packet through the network. The core of the protocol is essentially contained in four fixed-sized fields in the header ? KEY, ROUTE, SEE and the command word.
Additional mode bits and flags are kept to a minimum to simplify packet processing. Types of EXT PADS EXT utilizes two frame formats, one for control packets and one for information packets (see Figure 1). INFORMATION PACKET CONTROL PACKET Common Header Information Segment Common Trailer Control Segment (24 Bytes) (Variable Length) (16 Bytes) Figure 1 . General Frame Formats Both formats share a common header segment and a common trailer segment, each of constant length. Each EXT packet includes a variable length segment between the header and trailer whose segment type determines the packet type.
The important fields are aligned on 8 byte boundaries so that they can be quickly accessed by any machine with 2 byte, 4 byte or 8 byte alignment. The formats are described in greater detail later. The common header specifies the packet type and identifies what portion f the data stream, if any, is included in the information segment. Optional modes, such as disabling error checking or multicast transmission, are indicated in the packet header’s control flags field. The common trailer contains two checksum fields, identifies how much of the data stream has been delivered to the receiving client application, and also contains a flags field.
These flags generally control state changes, for example closing the data transmission connection or requesting data acknowledgement. Message boundaries are also specified in the trailer by setting the end of message flag (EOM). The information segment contains the user data being transferred, and is also used to pass addresses and other miscellaneous data when appropriate. Each data packet contains a contiguous subset of the data stream being transferred. In EXT, there is no protocol-imposed upper limit on the number of bytes included in each data packet ? each implementation is bounded by the underlying talking layer.
For each implementation this limit is known as the maximum transmission unit (EMIT) and is found by subtracting the EXT header and trailer sizes from the datelines maximum data field size. EXT supports two additional modes of data transfer which allow out- offhand, tagged data of constant length (8 bytes) to be included in the data packet along with the user’s data. These additional data bytes also appear in the information segment, either at the beginning or at the end of the usual user data. Their presence is indicated by flags in the header and trailer (the tag).
Beginning tagged data are with the TAG flag in the common trailer. The control segment contains the receiver’s error, flow and rate control parameters’ values. This segment also contains fields used to resynchronize the transmitter and achieve when necessary. Multi-Packet Handshaking In EXT, multi-packet exchange sequences provide user applications with both a transport-level virtual circuit capability and a transport-level datagram service. For example, in EXT a connection may consist of an exchange of three packets, as shown in Figure 2.
SOURCE DESTINATION FIRST (A) CONTROL (B) CONTROL (C) PACKET FUNCTION Request context be established Transmission of user data Request context termination Acknowledge context nit request Acknowledge user data reception Acknowledge context termination request Inform destination that sender has terminated context Figure 2. Three Packet Connection-Mode Handshake The scenario above depicts how EXT can reliably set up a connection between two user processes, transmit data, and close the connection with a minimum of three packets. In this scenario, the source initially transmits packet (A).
At the destination the header is examined and it is determined that the source wishes to establish a send connection. If the destination wishes to comply, a context is established. The packet’s data are then queued for transfer to the waiting destination user process. By sending control packet (B). This packet acknowledges the receipt of the data, and indicates that the destination is also ready to close the connection. On receiving packet (B), the sender emits control packet (C), and closes its side of the connection ? thus completing the three way handshake.
Any buffers still associated with the connection are freed, and the sender will no longer respond to control packets arriving for the context. When packet (C) is received by the destination, the connection is closed. In EXT the burden of detecting lost acknowledgements is assumed by the sender. The sender requests acknowledgement by setting the status request bit (SERE) in the EXT moon trailer. A timer (WITTIER) is used by the sender to determine if the receiver has failed to respond to a sender-generated request for current status and data acknowledgement.
If the timer expires before an acknowledgement arrives, the sender assumes the acknowledgment was lost, and sends another request for a control packet acknowledging the received data. On the other hand, when closing, the source acknowledges context termination, so that the receiver can be sure that the context is closed. If this last packet gets corrupted or lost, the receiver will eventually timeout and close the connection. Unlike TCP, where each data packet would be retransmitted after the timeout, in EXT only a CENT packet containing the SERE would be sent.
The corresponding returned CENT packet would indicate which data packets, if any, to retransmit. By utilizing selective retransmission, EXT avoids retransmitting data which has already been received correctly. Closing an EXT connection is coordinated using the three flags RECLUSE, WHOSE and END. The local host sets the RECLUSE or WHOSE flags in an out-going packet to inform the remote host that it has completed all reading or writing it intends to perform on he shared connection. Note that in a full duplex connection between two nodes A and B data would be transmitted in both directions (A?bi and B*A).
Using RECLUSE and WHOSE, each direction can be shut down independently. The END flag is set in an outgoing packet to signal to the remote host that the local host released or closed its end of the connection. Thus, END is set in the final packet transmitted, and indicates that the context has been terminated ? I. E. , that it is guaranteed that no further packets can be exchanged. If, at any time, a packet is achieved with the END bit set, the context is assumed closed at the remote end, and the local host releases the context.
The “close” protocol based on END, RECLUSE and WHOSE can uniformly support the three packet graceful termination of Figure 2, an abbreviated termination, transactions, and abort situations without modification. Two-packet, transaction-like packet exchange sequences are also allowed in EXT and are referred to as fast handshakes. For full duplex connections, these modes are less reliable than the three packet connection. The two packet fast close can be considered a transport level datagram service or the basis for simple request/response operations.
Note that when a data acknowledgment is requested in EXT, as in the FIRST packet of the fast close cases, the receiver delays acknowledgment until all data received prior to the SERE have been processed. This includes the data contained in the packet with SERE. EXT contains a second status request flag in the common header flags field which is called DEER. DEER differs from SERE in that SERE requests a response immediately from the receiver, and DEER requests it after the currently queued data have been received at the receiver.
This is useful because the acknowledgement is delayed until the receiver has freed the buffer space associated with the queued data and is capable of accepting more data from the sender. Flow control blocking is minimized. In closing, SERE behaves like DEER ? if this were not so, the receiver might generate its final acknowledgement packet before the data from the last information packet has been delivered to the receiving client. But the sender could not close the context since unacknowledged data exists. Thus, in closing, SERE responses are delayed until all data have been processed.
Flow Control Flow control allows the receiver to inform the sender about the current state of its receiving buffers. In EXT, the receiver’s flow control parameters are included in control packets sent from the receiver to the sender. These parameters are shown in Table 1. Parameter Type Location LOCAL 32 bit sequence number control segment 1 + sequence number of last byte receiver will accept. DEEDS common trailer 1 + sequence number of last byte receiver delivered to destination client process. RISE 1 + sequence number of last byte receiver accepted. LOCAL – DEEDS RISE – DEEDS
Description Size of receiver’s data buffer in bytes. Number of bytes received and waiting to be transferred to destination client process. TABLE 1 . EXT Flow Control Parameters LOCAL constrains the sender from introducing more data than the receiver’s buffers can accept. The sender refrains from sending bytes with sequence number LOCAL or higher. Thus, LOCAL is one greater than the highest byte sequence number that the receiver will accept. DEEDS is the sequence number of the next byte to be delivered to the destination application process, or client.
Likewise, DEEDS can be thought of as en greater than the sequence number of the last byte delivered to the destination client. All bytes with sequence number less than DEEDS have been successfully transferred to the destination client. DEEDS is always less than or equal to LOCAL. Subtracting DEEDS from LOCAL (modulo 232 ) yields the buffer size allocated in bytes to the context by the receiving EXT process. Thus, EXT uses a byte-oriented allocation scheme as in TCP instead of a packet-oriented allocation scheme as in TAP. An advantage to this policy is that byte-oriented allocation is not affected by internet argumentation.
The sender holds data that have been transmitted in a buffer until it knows the data have been delivered to the destination client. As long as the data are buffered, it can be retransmitted if necessary. When the sender notes that DEEDS has been extended, it frees the buffers associated with the delivered data. RISE is the sequence number of the first byte not yet received contiguously from the network. This can be the first byte in the first gap, or the first byte in the next data packet expected. As with LOCAL and DEEDS, an alternative interpretation exists for RISE.
All bytes associated with sequence numbers less than RISE have been buffered by the receiving EXT process at the destination, but may not have been delivered to the destination client process yet. Thus, RISE is one greater than the largest consecutively received data byte sequence number. The sequence numbers of all bytes associated with gaps lie between RISE and LOCAL. Collectively, these parameters provide the means for EXT to implement flow control whereby the receiver can restrict the sender from sending excessive data prematurely.
Note that all sequence number parameters in EXT occupy 4 bytes ? SEE, RISE, DEEDS, LOCAL associated with gaps in the received data stream. TCP has 32-bit sequence numbers and a 16-bit window. 3 EXT provides a 32-bit sequence number. The parameters RISE, DEEDS, and LOCAL are use to ensure that delayed retransmissions are not confused with new data having the same sequence number. Once the sender has been informed of the receiver’s allocation limit via the LOCAL parameter, it continues to transmit until the allocation has been reached, without the need for individual acknowledgements of each packet transmitted.
Thus, EXT efficiently utilizes the higher reliability of modern networks, such as fiber optic Lana. Once the allocation has been reached, the EXT sender process sets the SERE parameter in the last data packet transmitted, and the receiver responds as earlier described with a control packet that acknowledges all data received, describes any gaps detected, and, if appropriate, advances the allocation. 4 An alternative allocation policy exists in EXT based on the size and availability of the receiving client application’s buffers.
This mode is referred to as reservation mode. In reservation mode, the transmission is determined by the size of the receiving user’s buffers served specifically for the context (by setting LOCAL to the size of this reserved buffer). In this mode, the sender must pause between message transmissions until the receiving client has posted a new client buffer to receive the next message. This is necessary to separate adjacent messages into different client buffers, since each message may not entirely fill its buffer.
In reservation mode, the reservation buffer size may differ greatly from the normal allocation size, and may be greater. This mode is similar to the the allocation control mechanisms in the VAMP  and NETBALL protocols. Rate Control In some situations flow control is not sufficient to ensure efficient, error-free transmission between the sender and receiver, even on an extremely reliable network. Imagine a network containing both hardware and software implementations of the EXT protocol.
Since the VILE chip set will allow much of the protocol to be executed in parallel, a sending EXT process implemented in hardware may overwhelm a receiving EXT process implemented in software if it sends multiple, back-to-back packets. EXT uses rate control to restrict the size and time spacing of bursts of data from the sender. Within any small time period, the number of bytes that the sender transmits must not exceed the ability of the receiver (or intermediate routers) to decipher and queue the data ? otherwise they will be overwhelmed and begin dropping 3.
Van Jacobsen has proposed extending the TCP protocol to, among other things, use a 64- bit sequence number and a 29-bit window size.  4. Note that other policies are possible for determining when to set the SERE bit in EXT; in EXT, the SERE policy is determined by the user application. Packets, creating gaps in the received data stream. This problem is independent of he flow control/buffer size problem discussed previously. The receiver may have adequate buffer space available, but back-to-back packets may arrive faster than the control are shown in Table 2.
Together, the two rate control parameters allow the receiver to tune the data transmission rate to an acceptable level. RATE Maximum number of bytes receiver will accept in each one second time period. BURST Maximum number of bytes receiver will accept per burst of packets. The transmitter may not transmit more than BURST bytes between ARTIER timeouts. RATE/BURST Maximum number of packet bursts per second. BURST/RATE Seconds per Packet Burst. The rate timer (ARTIER) is set to this value. RATE = Rate control is disabled ? I. E. , sender transmissions are unconstrained.
TABLE 2. EXT Rate Control Parameters When a slow EXT receiver implemented in software is listening to a hardware- implemented sender, packet bursts must be time-spaced to guarantee that the slow receiver has sufficient time between back-to-back packet bursts to complete protocol processing before the arrival of the next burst. With the above parameters, interacted spacing can be achieved as follows. Set the BURST parameter equal to he EMIT (maximum transmission unit) of the underlying network. Thus, each packet “burst” may not contain more than one packet’s worth of data.
If the receiver can handle N packets per second, set RATE equal to EMIT * N. In this manner, the sender is constrained to spacing back-to-back packets accordingly. See Figure 3 which plots bytes transmitted versus time during a one second time period for a hypothetical EXT implementation of EXT, appropriate values could be determined experimentally. Their values would then be included in all out-going control packets from the receiver. Note that in this example, RATE > > BURST. In Figure 3, the BURST and RATE parameters have been adjusted such that an inter- burst separation occurs.
Each burst of data is depicted by a ramped triangle. The separations between adjacent bursts are shown by horizontal dotted line segments in which no progress is made towards the top of the graph. During each pause in the transmitter, the slower receiver is allowed to catch up. Unfortunately, the sender process does not know the appropriate RATE and BURST values to use with a particular receiver until the first burst of data has been completed; the proper value or LOCAL is also unknown initially. The appropriate values only become known when the first control packet arrives at the sender.
Before this control packet is returned, the sender must use default values for the various flow and rate control parameters. If protocol processing speeds vary widely on a network, the default values for LOCAL and rate control parameters affect the number of dropped packets during the initial data burst. A conservative approach would be for the sender to set the default LOCAL to a small number of bytes (say one average sized data packet as defined by the axiom transmission unit) and to use the aforementioned approach to setting the default rate parameters such that packet spacing is sufficient for the slowest receiver on the network.
After the initial burst, which also establishes the context connection, the sender would block, waiting for the returned control packet generated by the SERE in the last data packet of the burst. This control packet would contain the more accurate flow and rate control parameters specifically applicable to the receiver. In this case, few packets would be lost at the cost of moderately more overhead in the initial burst.