THINK Home Digital Archive Search Feedback


THINK  Cyclades

Technical History of CYCLADES -
A Technical Tour

Data Transmission Layer:


Cigale is a simple packet switching network that makes up the data transmission layer of the Cyclades network and provides users with a datagram service. Essentially, Cigale is a "black box similar to a XEROX copier. It takes an image of a source packet, and after some delay delivers a copy to the specified destination." [Pouzin 1982, p26]  In building it, the aim was to keep it simple to avoid duplication of function between the various layers of the network.  

Therefore, Cigale maximizes the speed of packet transfer by transferring end-to-end control to hosts.  For example, hosts implement functions such as fragmentation and reassembly.  By enforcing ideas such as layered architecture and the independence of these layers Cigale provides a simple host to host communication facility.

Central to Cigale’s internal architecture is a kernel that provides a simple packet communication facility between entities located both outside and inside Cigale.  This facility is the foundation for mechanisms such as: remote monitoring of nodes from a control center; adaptive routing; congestion control; and run-time measurements that are performed in parallel with measurement processes that send information using regular packets to the measurement center. [Pouzin 1977]


Protocol Data Unit (PDU)

PDU's at the data transmission level are referred to as "packets" (a common term today).  In Cigale, there is only one packet format, for all purposes. This makes basic packet handling very simple and stable because packets do not have to be parsed for a variety of formats. Packet sizes in Cigale can vary from 0 to 2040 bits. A maximum packet size was set so to simplify that the interconnection with different packet-switching networks: 2040 bits is long enough to accept packets from the other existing networks, including the British Post-Office network. 

The packet header is 96 bits in length, and contains the following: header format (4 bits), header length (4 bits), text length (8 bits), packet identification (16 bits), accounting facilities (16 bits), destination network (8 bits), source network (8 bits), destination host (16 bits), and source host (16 bits).  The header structure favors octet machines because they made up the majority of the market at design time.  Also, the designers chose a header length of 96 bits to accommodate computers with 6, 8, 12, 16, 24 or 32 bit word sizes.  Cigale does not process or alter the identification field but leaves them for users to identify their packets.  Host level protocols also use these fields to report anomalies and other special services.

[Pouzin 1974]

Figure:  Packet Header [Pouzin 1982]



At this layer, addresses are referred to as name spaces. The “Routing Updates” section of this document discusses how Cigale uses this name space.   Cigale’s addressing system consists of a combination of logical, hierarchical and general addressing.  Logical addressing applies to transport stations (TS).  TS’s are designated by logical names that do not contain references to physical components (ie. a node or a line).  Routing tables keep track of relationships between logical names and physical locations.

Cigale implements an abstract name space independent from the physical components. Thus, there is no constraint on naming hosts. Similar to the American telephone numbering system, host names  have region name prefixes. Therefore, any given node only needs to list local hosts and other regions. Cigale organizes addressing and routing on host name within a region, and on region names across regions. [Pouzin 1974]

Figure:  Address Space [Pouzin 1982]


Fragmentation and Reassembly

Cigale does not fragment or reassemble messages- it only  receives packets. 


"Since fragmentation and reassembly of data items are to be necessary functions of subscriber protocols, no further fragmentation appears to be desirable at PSN level.  However, each PSN is entirely free to do so, if it wishes, as long as it delivers unaltered messages to the next PSN."  [Pouzin 1974, p 109]


Routing Updates  

Since routing tables can become too large to maintain in large networks, Cigale uses a hierarchical namespace made up of networks, regions and local destinations.  To accommodate the small number of cases where regional names is unacceptable, Cigale allows the use of general addresses (addresses that do not refer to any specific region).  

Routing in Cigale is similar to Arpanet in that routing information propagates continuously throughout Cigale. First, Cigale switches packets towards other networks unless the network address is Cigale itself. Then packet switching occurs on a regional level, unless the packets are already in the final destination region.  Finally Cigale switches packets towards the local destination.  One difference from Arpanet is the fact that packets never flow backwards.  If Cigale cannot find a path, it drops the packet.  [Pouzin 1974]



At this level, there is no connection setup and/or handshaking- it is connectionless.


Error Detection

There is no error detection in Cigale.  There are several reasons why designers chose not to include error detection at this level.  First, since there can exist multiple links between a host and CIGALE, there really isn't a "pair" at network level.  Secondly, protocols that use CIGALE should already include message error control.  Since there is error control in the transport layer, error detection at this level is redundant.    [Pouzin 1974]


Error Recovery

No Error Recovery at this level.


Flow Control and Congestion Control

At the time of design very little was known about traffic control other than the fact that congestion could build up in packet networks.  Evidence from other networks, however, showed that traffic did not build up quickly.  For example, real traffic in ARPANET was below potential capacity even after several years of operation.  

The initial method of preventing congestion in Cigale consisted of packet dropping.  Although this was a simple solution, it was effective.  Each output queue has a maximum number of packet buffers and when this maximum is reached, nodes start dropping incoming packets.  

As time progressed, it became clear that Cigale needed a better method of traffic control.  After looking at previous research, designers discovered that the problem lay with not having enough bandwidth.  Therefore, Cigale engineers implemented a traffic control scheme named Channel Load Limiter (CLL).  Basically, CLL controlled link loads and sent choke packets to sources causing congestion.   When a host received a choke packet, it reduced its traffic to the congested destination.   [Pouzin 1982]

Security Features

No security features at this level.


<< General Information                 >> Transport Layer




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:18:00 CDT.