|THINK Home||Digital Archive||Search||Feedback|
The basic service provided by the transport layer consists of copying a buffer of the sender's memory into the receiver's memory. The transport service provides support for point-to-point conversations: it relieves higher layers of the problems associated with the sharing of data transmission resources.
Host computers communicate using a host software called ST (transfer station) and a communications network. ST's are very similar to Arpanet NCP's, except for the fact that several ST's can reside on the same host. [Pouzin 1973, pg 82]
The term "letters" refers to blocks of information moved from one port to another. Letter size is independent of the size of packets in the data transmission layer. A letter is a container of information with a variable length limited to 4 K octets.
Host entities, such as processes, users and devices communicate through the exchange of letters. Letters are given over to the local transfer station and if fragmentation is necessary the transfer station divides the letter into several commands that fit into packets. After the letter is sent to the addressee's transfer station, the receiver reassembles the packets upon arrival and then delivers the letter as a whole to the receiving process.
The transport service also transmits data units in the form of "telegrams". A telegram is a fixed length piece of information (16 bits) intended for interrupt-like use. It could appear at the user interface as an event, as an interrupt, or as a contingency. Transmission and delivery of telegrams is independent of letters. [Pouzin 1973, pg 82]
The hierarchical structure in the transport name space is as follows: The network uses Transport Station addresses to identify hosts (Cigale) and these addresses route information to the proper destination. Each host has sub-addresses of transport stations that are interpreted by the multiplexing function of the transport station. These sub addresses correlate to port numbers that identify communicating entities.
When necessary, a transfer station divides letters into fixed length fragments except for the last fragment. The sender process sends each fragment as a one packet command with proper control information. The size of the packet text has a direct relationship with the size of the fragment. Each letter carries an 8-bit reference unique within the liaison. Within the letter, fragments are numbered and an end-of-letter flag indicates the last fragment of the letter. The fragment number is 7 bits, and the end-of-letter flag is 1 bit. Upon arrival, fragments are reassembled into a copy of the letter
To protect against lost packets, time-outs are associated with each letter that undergoes reassembly. See the section on error control for more information about the use of time-outs to prevent packet loss.
Port names constitute a convenient network-wide naming convention for all communications. Each system is then responsible for mapping its local names into ports. Outside each individual system, ports identify resources and their users.
As previously mentioned, ``liaison'' is the term that refers to the connection between two ports. This connection allows letter delivery. An initial setup is necessary to open a connection, and exchange port
names. In order to exchange letters, one must have a ``subscription''. A ``subscription'' can be activated and deactivated, similar to a login/logout process.
Telegrams are not subject to error control.
Error control is an inherent part of reassembling letters. Since packets may get lost, a time-out associated with each letter under reassembly protects the reassembly process. This time-out is set upon receipt of the first delivered fragment, reset on receipt of each fragment, and finally turned off when all fragments of the letter have been received. If the time-out occurs, reassembly is aborted and the letter considered erroneous.
Letters are subject to error control but fragments are not. When in use on a liaison, both directions perform error control. The sending transport station sends letters with cyclically re-used sequential references and expects acknowledgement within a maximum delay after sending the last fragment of the letter.
The receiving transport station acknowledges letters immediately after reception (within the maximum delay after the last fragment) by sending back ``your reference''. This means the receiving transport station received the letter with this reference and all preceding ones without error. "Your reference", however, does not mean the process has read the message or agrees with its contents. It simply acknowledges that the receiving Transport Station correctly received the letter fragment and made the fragment available to the receiving process. There are two forms that the acknowledgement can take: 1. It can be sent in a special command, or 2. If there is a fragment going from the receiver back to the sender, the receiver transport station can attach the acknowledgement to that fragment. [Pouzin 1982].
To be able to recover from packet loss, the sender must keep a copy of the data it is sending until it receives an acknowledgement.
If the sending transport station within does not receive an acknowledgement within the prescribed delay, it assumes that all unacknowledged letters are lost. It restarts the send process, beginning with the first unacknowledged letter. Once again, the sending transport station expects acknowledgement within the given delay and if it does not receive acknowledgement this process will be repeated.
If a letter has been sent ``N'' times without success, the sending transport station will declare an unrecoverable error, inform its user and quit.
There are several other rules that facilitate error recovery within the transport layer:
Telegrams are not subject to flow control. Error control inherently implements flow control on a liaison. The receiving end allocates ``Credits'' to the sending end. One credit represents the permission to send one letter. Each allocation correlates with an acknowledgement within a letter sending command or an ACK sending command. The 4-bit Credit Number parameter means: ``you may send letter with references going from your reference number + 1 up to your reference number + credit number. If credit number is zero, it means not to send any letters. The credit number has a maximum value of 15, thus, when flow control is used (it is optional), the maximum number of letters in transit is 15.
No security features mentioned.
||Written by the THINK Protocols team,
Please direct comments to Chris Edmondson-Yurkanan.
This document was last modified on Tuesday, 11-Jun-2002 10:17:59 CDT.