![]() |
![]() |
||
| THINK Home | Digital Archive | Search | Feedback |
|
THINK Cyclades |
Transport Layer:
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] Protocol Data Unit (PDU)
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. Addressing
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. Fragmentation and Reassembly
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. Routing Updates
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. Connection
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. Error Detection
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]. Error Recovery
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:
Flow Control and Congestion Control
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. Security Features
No security features mentioned.
|
|
|
Written by the THINK Protocols team,
CS Dept,
UT Austin
Please direct comments to Chris Edmondson-Yurkanan. This document was last modified on Tuesday, 11-Jun-2002 10:17:59 CDT. |