HIPPARCH PROJECT PPR YEAR 2 May 19 1998

1.0.Overall Introduction

This document is the second annual progress report of the HIPPARCH project. HIPPARCH (HIgh Performance Protocol ARCHitecture) is the EC ESPRIT IT Long Term Research 21926. It began August 1996.

The project partners are:

Two major European companies, British Telecom (BT) and Ericsson Radio AB (ERA) are participating in the steering committee of the project.

HIPPARCH aims at investigating novel protocol architectures for high performance communication based on the Application Level Framing (ALF) and Integrated Layer Processing (ILP) concepts.

This project extends the result of a previous HIPPACH EC-AUS activity, where the ALF based design has been validated, to the broadest possible range of information services and applications. The goal of the project is to study the benefit of the ALF and ILP principles for the design of communication systems supporting multicast, mobility and real-time media.

The project results are:

All technical results were provided on time, i.e. after 2 years of project. The project partners therefore had to request a project extension in order to complete the following tasks:

1.1 Second year deliverables

The second year objectives are recapitulated in the following list of final deliverables. At the time of the review, all contracted work has been done. Final deliverables are available on the HIPPARCH project web site, http://www.docs.uu.se/hipparch/.

 

Task

Deliverable

Title

Authors

1.1

INRIA-2

ALFred, an integrated protocol compiler

D. Kaplan, T. Turletti, C. Diot

3.1

UU-2

Report on experiments with a host resource architecture

P. Gunningberg, M. Björkman

3.1

INRIA-6

Report on experiments with IntServ

M. May, J. Bolot, A. Jean-Marie

 

3.2

SICS-1

Experimental API software

B. Ahlgren and M. Björkman

3.3

INRIA-7

Integration of ALFred in the HIPPARCH execution environment

D. Kaplan, T. Turletti, B. Ahlgren, P. Gunningberg, C. Diot,

4.1

UCL-1

Application Set Specification

Z.Wang, J.Crowcroft,L.Vicisano

4.2

UCL-2

HTTPng Protocol Specification

Z.Wang, J.Crowcroft,L.Vicisano

4.3

DE-1

Comparison of WWW applications

P. Cocquet, Ph. Lenglet

1.2. Project coordination and activities

This section gives a global view of the project and of the collaboration between partners.

1.2.1 Travel, visits, and research staff exchanges

Travel:

HIPPARCH partners have participated and contributed extensively to the IETF working groups. INRIA, UCL, DE, and SICS participated in all meetings. INRIA, UCL, and SICS are authors of RFCs and Internet Drafts. There are three IETF meetings per year. Second year’s meetings were in Washington DC in December 97, Los Angeles in April 98, and Chicago in August 98. UCL, INRIA and DE are also active participants in IRTF’s Reliable Multicast Research Group. RMRG had 3 meetings this year; 2 of them were hosted by HIPPARCH partners (INRIA in September 97 and UCL in July 98). Jon Crowcroft is a member of IAB, and of the IRTF’s End to End research group, as well as a co-chair of two IETF Working Groups.

HIPPARCH partners are also Program Committee members in many International conferences and workshop such as ACM SIGCOMM, IEEE INFOCOM, IEEE GLOBECOM, IFIP HPN, IFIP IWQoS, etc.

Christophe Diot and Jon Crowcroft participate to the COST 237 project (Multimedia Tele-services) and meetings, and their respective organisations are members of Cabernet. There were two meetings (including a workshop) during HIPPARCH project second year : Lisbon (workshop chaired by Christophe Diot and meeting) in December 1997 and Berlin (together with ECMAST conference) in May 1998. Diot and Crowcroft are also the founder of a new COST project dedicated to group communication infrastucture (COST 264 "Costbone").

Travel related to workshop and conference participation is detailed in the next section.

Visits, research staff exchanges :

There have been several examples of staff mobility within the HIPPARCH project. Long-term exchanges were mostly between UTS (Australia). Short-term visits are not detailed here; but they where required to co-ordinate the technical development in the project (UU-INRIA, UCL-INRIA, DE-UCL, INRIA-DE collaboration will be described in the technical achievement section).

It should be noticed that there are also frequent meetings between project participants in conferences, workshops, and IETF meetings. The project members have prioritised the visibility of the project over and above the internal exchanges. Project scientific managers meet at least once per month in scientific events. Note that the project has also made extensive use of multimedia real-time conferencing for virtual meetings.

Research guests and visit outside the project will be described later in this report.

1.2.2 International publications and events

The following workshops have been organized by the HIPPARCH project members :

HIPPARCH members have also published (by paper selection or invitation) in the following events: IFIP IWQoS, IEEE ICMCS, IEEE INFOCOM, ACM MULTIMEDIA, IEEE Broadband Communication 98, etc.

Mats Björkman of Uppsala University and Stephen Pink of SICS were program chair of the Global Internet conference, of Globecomm, Phoenix, Arizona, November, 1997.

HIPPARCH activities presentations have been made by DE during the "Next generation Internet 97" conference in Paris (16-17 December 1997). DE was also present at InterOp97 ( Paris, 21-23 October 1997) where the last release of the MUSICA family components were demonstrated.

The JSAC special issue on architectures for the 21st century was published in April 1998 (this special issue was edited by HIPPARCH partners). The HIPPARCH project was also editor of a special issue of Computer Networks and ISDN Systems (CN&IS), in which the best paper of the June 98 HIPPARCH workshop were published. Jon Crowcroft coordinated this effort from UCL with the publisher/editor.

To conclude, here is a list of journals in which HIPPARCH members have published this year : IEEE Networks, IEEE JSAC, CN&IS.

It should be noticed that, among these publications, a large proportion involves two or more HIPPARCH project members.

Finally, an DE is preparing HIPPARCH participation to an industrial event. Details about HIPPARCH contribution will be given section 6.

1.2.3. Meetings

27 October 1997. Project meeting at UCL to analyse the consequence of the review and schedule precisely the work to be done during the second year.

27-28 January 1998. Project technical meeting at INRIA in Sophia-Antipolis, France.

20 April 1998. Project management meeting at DE in Paris, France. Preparation of the final review agenda and demonstrations.

15-17 June 1998. HIPPARCH Workshop and technical meeting in London (UCL). Preparation of the final review.

20 August 1998. Last coordination meeting before the final review.

1.2.4. External collaborations

The HIPPARCH project has attracted the interest from various European and international companies :

We could also mention numerous academic collaborations in the US and in Europe that profit HIPPARCH: Georgia Tech, University of Massachussetts Amherst, UC Berkeley, Bellcore, UCLA, University of Paris 6 (LIP6), CNRS, NTT, Lucent, Pisa University, EPFL, France Telecom, EUROCONTROL.

1.3. Technical achievement

All project goals were achieved for this second year and significantly more resources were contributed by project partners than just that due in the project Programme. The details of resources expended in the project are given for each partner in the following sections.

All deliverable have been published (or are being published) in international conferences, workshops, and journals.

The collaboration aspect has been important in the second year of the project with the integration of each partner’s results and demonstration of the HIPPARCH architecture.

1.4 Project contributions

 

 

1.5 Resource summary

  1. INRIA detailed report

2.1 Introduction

INRIA has been the coordinating partner for the duration of the project.

2.2 Related activities

INRIA has participated to all the IETF meetings (3 per year), and to the main scientific event in the research community (INFOCOM, SIGCOMM, GLOBECOMM, and various workshops in the US and in Europe).

All the articles were presented by members of the rodeo project in the corresponding conferences and received good feedback from the reviewers, and good scientific evaluation.

Christophe Diot, for INRIA was also co-chair of the HIPPARCH workshop organized at UCL, and chair of the COST 237 workshop in Lisbon (December 1997).

Despite the end of the project, INRIA will pursue activities started task 1.1 and 3.1.

2.3 Deliverables

INRIA has 3 final deliverables that have been completed on time. More details on these deliverables and on the results developed in these deliverables is available section 2.6.

2.4 Resources

Human resource per task :

Task 1.1 : 6 mm (INRIA local resource : 12 mm)

Task 3.1 : 4 mm (INRIA local resource : 18 mm)

Task 3.3 : 6 mm (INRIA local resource : 6 mm)

Task 4.3 : 6 mm (INRIA local resource : 6 mm)

 Total for the first year : 22 mm (INRIA local resource : 42 mm)

The following people have participated to the project :

Diot task 1.1 ( mm), task 3.1 ( mm), task 4.3 ( mm)

Kaplan task 1.1 ( mm), task 3.3 ( mm), task 4.3 ( mm)

Turletti task 1.1 ( mm), task 3.3 ( mm), task 4.3 ( mm)

Bolot task 3.1 ( mm)

Levine task 3.1 ( mm)

 

2.5 Deviation

The tasks described in the PP have been completed with minimal changes. Detailed men-month allocation is described here before.

There is no change in the PP that need justification, or that made that human resource had to be changed.

The extension required (with no funding) allowed INRIA to prepare a public version of ALFred, the protocol compiler, and to enhanced it with more communication libraries.

2.6 Technical Achievements

During this second year of HIPPARCH, INRIA has been involved in the following tasks:

1. ALFred now produces JAVA code in order to be OS independent

2. Application profiles have designed in order to simplify the task of the application designer. Profiles will be designed for Distributed Interactive application (providing DIS encapsulation), audio and video application, web data transfer.

Deliverable INRIA 2 describes the design and the features of the new compiler. It also contains a user manual

A new demonstration application called " Juke-box " has been designed to show how powerful ALFred is.

It should be noted that we have been contacted by a private company (NORTEL) that wishes to fund parallel works based on ALFred to validate the feasibility in an industrial context and then to commercialise ALFred.

It should be noticed that ALFred has been (and still is) in constant evolution in order to enhance its capabilities with more communication libraries, more execution machines, etc.

    1. Publications

F. Gagnon and C. Diot. "Impact of Out-of-Sequence Processing on Data Transmission Performance". INRIA Research Report RR-3216. INRIA Sophia Antipolis (France). July 1997.

V. Roca, T. Braun, C. Diot. "Demultiplexed Communication Architecture for Streams". IEEE Networks journal. July 1997.

I. Chrisment, D. Kaplan, and C. Diot . "An ALF Communication Architecture: Design and Automated Implementation". To be published in the IEEE JSAC special issue on Architectures for the 21st century. 1998.

M. May, J. C. Bolot, C. Diot, and A. Jean-Marie. "1-bit schemes for Service discrimination in the Internet: analysis and evaluation". INRIA Research Report 3238. INRIA Sophia Antipolis (France). August 1997.

M. Fuchs, C. Diot, T. Turletti, M. Hoffman. "A Framework for Reliable Multicast in the Internet". INRIA Research Report RR-3363. INRIA Sophia Antipolis (France). 117pp. February 1998.

B. Landfeldt, A. Seneviratne, and C. Diot. "User Services Assistant: An End-to-End Reactive QoS Architecture". IFIP/IEEE IWQOS '98 proceedings. Napa Valley. May 1998.

M. Fuchs, C. Diot, T. Turletti, M. Hoffman. "A Naming Approach for ALF Design". HIPPARCH workshop proceedings. London. June 1998.

J. Crowcroft, L.Vicisano, Z. Wang, A. Ghosh, M. Fuchs, C. Diot and T. Turletti. "RMFP: A Reliable Multicast Framing Protocol". Internet-Draft. March 1998.

 

 

 

3 UCL detailed report

3.1 Introduction

UCL have been responsible for Scientific Management of the project for the first half of the second year. This includes the period up to the publication of the JSAC special issue, and the period up until just before the HIPPARCH workshop (i.e. planning and paper handling for the workshop).

3.2 Visits, research staff exchanges

Lorenzo Vicisano spent a 2-weeks period visiting INRIA, during which he helped in the integration of RLC/RMDP software modules into the Alfred compiler. He was also involved in the specification of the software module interfaces and functionality needed for the process of automatic generation.

3.3 Related activities

 UCL has participated in all the IETF meetings (3 per year), and has a presence at the main scientific event in the research community (INFOCOM, SIGCOMM, GLOBECOMM, and various workshops in the US and in Europe).

Jon Crowcroft, for UCL was also co-chair and organiser of the HIPPARCH workshop organized at UCL.

Three of UCL’s pieces of work relating to the project, namely the TCP multiplier work by Philipe Oechslin, the RLC work by Lorenzo Vicisano, and the Self-Organising Transcoder work by a PhD student of Jon Crowcroft’s, Isidor Kouvelas, have been reported in papers submitted for publication at ACM CCR, IEEE INFOCOM, and the ACM Multimedia Conference respectively. All three pieces of work involved both protocol implementation, and simulation using the Berkeley VINT projects network simulator, ns. The simulation modules for the multcp, rlc and s.o.t., have been donated back to the Vint project with documentation so that they may be disseminated to the wider community.

HIPPARCH project activitiees are also continuing beyon the framework of the project:

3.4 Deliverables

UCL has 2 final deliverables that have been completed on time. . More details on these deliverables and on the results developed in these deliverables is available section 3.6.

3.5 Resources

Human resource per task :

Task 4.1 : 3 mm (UCL local resource : 3 mm)

Task 4.2 : 8 mm (UCL local resource : 9 mm)

Task 4.3 : 7 mm (UCL local resource : 2 mm)

Total for the first year : 18 mm (UCL local resource : 15 mm)

The following people have participated to the project :

Vicisano task 4.1 ( mm) , 4.2 ( mm), 4.3 ( mm)

Wang task 4.1 ( mm)

Oechslin task 4.2 ( mm)

White task 4.3 ( mm)

Davey task 4.3 ( mm)

3.6 Deviation

There is no change in the PP beyond year 1 already reported. Resources are as per planning.

3.7 Technical achievements

UCL second year activity has consisted in the HTTPng framework specification refinement and implementation, and in the implementation and performance tuning of the multicast transport modules: RLC and RMDP. UCL has also ported both RLC and RMDP to Java in order to facilitate the performance comparison with the automated implementation of the protocols. The availability of Java code also allows a better integration with software modules produced by the other partners. UCL has finally helped in the preliminary stages of the automated implementation by specifying protocol functionality and software module interfaces.

3.7.1 HTTPng framework

To extend the Web to new transport protocols and applications, UCL designed a framework based on a two-phase protocol. In phase-one the Web client collects all the information it needs and possibly carries out a capability negotiation with the Web server. In phase-two extension dependent actions are executed. This can either involve running new transport protocols or implementing application level extensions.

Phase-one is performed using HTTP and involves a standard client-server interaction. In this phase the meta-data needed for the subsequent phase are collected. If no extensions are needed, a complete HTTP transaction is carried out in phase-one, ending with the transfer of the information required. In this case phase-two is not started, this provides a transparent integration of standard Web transactions into our approach.

The integration of this framework into HTTP is accomplished with a PEP-HTTP extension implemented in our demonstration prototype using Java. Two software modules have been implemented:

3.7.2 RLC

In the framework described above UCL implemented a protocol stack that allows using multicast transport protocol for HTTP. RLC provides congestion control at the lower level of this protocol stack.

RLC is based on a receiver driven congestion control algorithm that is TCP-friendly and suitable for use in the Mbone. It supports variable transmission rate by using a layered organisation of data, transmitting each layer in a separate multicast group, and letting receivers adapt to the available bandwidth by joining to one or more multicast groups. Each receiver takes decisions autonomously, but techniques are used to synchronise receivers behind the same bottleneck (and belonging to the same protocol instance), so that they can co-operate in controlling the congestion at the shared bottleneck. No feedback to the sender is needed and no explicit form of group membership is used, so that the algorithm is fully scalable and simple to implement.

For scalability reason and to provide flexibility in the form of membership usable, we have not introduced any support for the synchronisation between sender and receivers. For this reason RLC needs an external control protocol that implements the wanted degree of coordination, starting the sender and keeping it active until needed. This role can be played either by the upper network layer or by the client application itself. In our Web example it is played by HTTP.

3.7.3.RMDP

RMDP (Reliable Multicast data Distribution Protocol) is able to transfer data to a very large number of heterogeneous and asynchronous clients, requiring little or no feedback to the sender. RMDP implements the `digital fountain' approach using FEC techniques. The working principle is simple: source data is encoded with high redundancy, so that a large set of packets is available for transmission. The sender just transmits pulling packets from its large set until there are active clients listening to the session. Receivers are then able to rebuild the original data source once they have collected enough packets. When they have finished, they just stop the forwarding leaving the multicast group.

RMDP is very simple to use on the top of RLC, being receivers almost insensible to gaps in the incoming packet stream.

Both RLC and RMDP are the outcome of a design activity started in the first project year and terminated with the current implementation. This activity includes an extensive performance evaluation, issued on the implemented prototypes and using simulations, C and Java implementations and performance tuning of the implementations.

3.8 Publications

Lorenzo Vicisano, Luigi Rizzo, and Jon Crowcroft. Tcp-like congestion control for layered multicast data transfer. In IEEE INFOCOM'98, the Conference on Computer Communication, San Francisco, USA, March-April, 1998, 1998. Also UCL-CS RN97/67.

Luigi Rizzo and Lorenzo Vicisano. A fec based reliable multicast protocol for wireless environments. ACM Mobile Computing and Communications Review, 2 (2), 1998. Also UCL-CS RN/97/132.

J.Crowcroft, H.Fuchs, T.Turletti, A.Ghosh, Z. Wang, L. Vicisano, and C.Diot. RMFP: a reliable multicast framing protocol. Internet Draft, Internet Engineering Task Force, March 1998. Work in progress.

Lorenzo Vicisano. Notes on a cumulative layered organisation of data packets across multiple streams with variable-rate. Research Note RN98/25, Department of Computer Science, University College London, May 1998.

 

 

 

 

4 UU detailed report

During this second year of HIPPARCH, UU has been involved in the following tasks:

Efforts have been carried out this second year in order to publish this work in a journal.

To be decided. UU has been participated in the effort to set up and demonstrate the adaptation to a wireless environment .

4.1 Publications (exact titles will follow)

 

A. Schiller and Gunningberg, Broadband Communication 98.

B. Ahlgren, Björkman and Gunningberg, IEEE JSAC 98

4.2 Pending Publications

 

1. Bryhni, Gunningberg, Kure, Espen, and Kure, manuscript submitted to CN&ISDN.

2. Schiller and Gunningberg, manuscript submitted from dagstuhl meeting.

3. Schiller and Gunningberg, manuscript submitted to IEEE Computer

4. Björkman and Knutsson, Manuscript submitted to IEEE JSAC

5. Beaton, manuscript submitted to NOSSDAV

 

1.3.6.1 related activities

 

UU has had extensive contacts with Ericsson during the year. Two contracts that builds on the HIPPARCH findings have been established. We have been active as program chair at Global Intenet and as PC member for SIGCOMM.. UU has participated in all HIPPARCH meetings.

1.3..6.2 deliverables

UU has one final deliverable at T0+24 (see section 2).

1.3.6.3 resources

Human resource per task :

Task 3.1 : 6 mm (UU local resource : 6 mm)

Task 3.3 : 3 mm

Task 4.3: 2 mm

Mng: 1 mm

 

Total for the second year : 12 mm (UU local resource : 6 mm)

The following people have participated to the project :

Gunningberg task 3.1 (4 mm), task 3.3 ( 1 mm), Mgt (1 mm)

Björkman task 3.1 ( 1 mm), task 3.3 ( 2 mm)

Melander task 3.1 ( 1 mm), task 4.3 (2 mm)

Knutsson task 3.1( 6 mm)

 

1.3.6.4 deviation

There are no major devitations from the technical annex that requires a rewriting of the tasks.

UU has worked closely together with SICS and INRIA on the integration of resource monotoring and ALFred. This means that UU has contributed to task 3.2 as well as 3.3 to a larger extent than planned. Initially, no UU manmonths were allocated to 3.2. However, the purpose of 3.2 is to provide an API for some mechanisms studied in 3.1 which motivates the necessary cooperation.

The reviewers from the first year recommended that the project should emphasize the QoS issues in wireless environments. Our respons to this is to increase the studies on adaptive resource allocation and the operating system support of wireless "thin" clients, such as mobile phones and PDAs.

Resource reservation and control in Unix for applications is cumbersome. We had to modify the kernel, the API:s and the drivers for our first year experiments. The Exokernel of MIT offers an attractive alternative approach. The low level abstractions are exported and user accessable library OS are used. These libraries can be modified for communications software without compromising secure multiplexing of resources. We have done experiments with protocol written in the language Erlang and compared the results with a traditional Unix implementation.

5 SICS detailed report

 

1.4.2 SICS activities

SICS is an associated partner to Uppsala University in HIPPARCH. SICS’ effort in the project is one man-year per year. Most of the work has been done in close collaboration with Uppsala University.

 

 

Resources

Task 3.1: 3mm

Task 3.2: 6mm

Task 3.3: ???

Task 4.3: 4mm

 

(Note: this need some thoughts and adjustments to match the above)

 

References

[SICS-1] Bengt Ahlgren and Mats Björkman, "Network probing for network conscious applications..."

 

  1. DE detailed report

2.1 Introduction

DE is the only industrial partner of the project. DE role in the project was to evaluate the project results from an industrial perspective. This is why DE active participation starts very late in the project. But DE has participated to all the project meetings and has had a leading role in technology and research choices.

2.2 Related activities

DE has participated to all the IETF meetings (3 per year), and to some scientific conferences (SIGCOMM)

Although not directly implicated in all developments produced during the first year, DE attended each technical meeting organised by the HIPPARCH partners, whatever subject they dealt.

DE is mainly involved in the evaluation phase of the project which is focused on the second year of the project. D.E. is collecting and integrating the first releases of prototype software from the academic partners as soon as made available.

Moreover, coordination meetings with the project managers allowed to detail or refine the first definitions of the demonstration and evaluation platforms and scenario. New meetings are already planned to tune the current definition, taking into account the intermediate results of the project.

DE is also preparing HIPPARCH participation to an industrial events.

2.3 Deliverables

DE is responsible for the task 4.3 " Comparison of WWW applications ". Deliverable DE-1 due to T0+24 is available on the HIPPARCH project web site.

2.4 Resource

The following table lists the human resources that have been spent during this first half of year 2.

Human resources per task : First half, year 2:

Management

1mm

DE local resource

1mm

Task 4.1

0,5mm

DE local resource

2 mm

Task 4.2

0,5mm

DE local resource

2 mm

Task 4.3

2 mm

DE local resource

7 mm

 

Total for the first half of year2 : 4 mm (DE local resource : 12 mm)

The following people have participated to the project :

Cocquet management ( 1 mm),

Lenglet task 4.1 ( 0,5mm), task 4.2 ( 0,5mm), task 4.3 ( 1mm),

Cathelin task 4.3 ( 1mm),

 

 

2.5 Deviation

The tasks described in the PP have been completed with minimal changes. Detailed men-month allocation is described here before.

There is no change in the PP that need justification, or that made that human resource had to be changed.

2.6 Technical achievements

During this second year of HIPPARCH, DE which is mainly involved in the evaluation phase of the project is collecting and integrating the first releases of prototype software from the academic partners.

The main characteristics of the platform that should be used for the demonstration are described in the document: " Baseline System Architecture Definition Report of the HIPPARCH platform ".

2.7 Publications

" A short term perspective Ipv6 over ATM " presented at " Next generation Internet 97 " in Paris (16-17 December 1997)

 

7. UTS detailed report

Background

The UTS work in the HIPPARCH project fits into to the four HIPPARCH workpackages. However, of these, in this phase of the project UTS were develop a prototype protocol function library under WP1 (UTS-1). This task has been successfully completed, and is described in this report. The other components of the work has progressed as scheduled. The work under WP2, which investigated the implication of network consciousness on end system resources has been done jointly with INRIA, and a simple prototype has been developed. This work has resulted in exchange of researchers between INRIA and UTS: Dr. Christophe Diot visisted UTS, while Mr. Bjorn Landfeldt visisted INRIA. A paper describing this work and the prototype currently being prepared. The work under WP3, has also seen strong collaboration between UTS and the University of Upsalla. This work is currently being integrated with the work done under WP1. Finally, the work under WP4 has progressed extremely well. A initial version of adaptive protocol in Java has been implemented.

 

 

Protocol Function Library

 

Introduction

In the QoS management architecture being developed under WP2, the communication subsystem may be chosen at run time, depending on the application and the operating environment characteristics. This implementation enables the dynamic configuration of protocols using a library of protocol functions.

 

The Basic Framework

The basic protocol structure consists of three main elements - the shell, the control channel and the data channel. This basic structure is illustrated in Figure 1.

 

 

The shell forms the user interface to the protocol stack and allows the users to open, close and reconfigure data channels as required. This is equivalent to the socket layer of the BSD TCP implementation.

 

The control channel is responsible for the setting up, tearing down and reconfiguration of data channels. No user data can be sent a long the control channel. There is one control channel for each shell. The control channel remains open until all data channels and the shell are closed.

 

The data channel is used for the transfer of all user data. The data channel supports a variety of protocol mechanisms which fall into four main protocol function groups - sequencing, error control and recovery, flow control and application layer framing. Further details on the different mechanisms and configurations supported are given in section 0. Each terminal can support multiple data channels each configured with its own protocol.

 

Figure 1, shows the different threads that would be running within the protocol. The main user thread is used for the shell user interface calls. Three threads each are necessary for the control channel and every data channel - one for the input process, output process and a timer process.

 

Protocol Functionality Supported and Configurations

Functionality

Mechanisms

Sequencing

None, Normal

Error Control

None, Go-back-N, Selective Repeat

Flow Control

None, Credit, Rate

The Table 1 above shows the different functionality that the protocol currently supports and the mechanisms that are being used to support each functionality.

 

A variety of different configurations are possible with the above number of mechanisms - the only restrictions are that the error control function's Go-back-n and Selective Repeat and the flow control function credit control require sequencing and hence can not be used with no sequencing.

 

The functionality defined in this prototype of protocol stack is not exhaustive but is designed to allow experimentation with various combinations of protocol functionality and to study how they will interact. Thus there is still a lot of different groups of functionality that can be added to allow for a greater range of application specific protocols to be defined.

 

Integrated Layer Processing (ILP) was not used in the implementation as initial experiments and recent research results showed that the benefits from ILP was not deterministic, and could result in loss of performance for complex functions. Further more given that the implementation was designed to be a runtime protocol, problems

arise when attempting to introduce compile time implementation optimisations like ILP.

 

Sequencing

Sequencing is used for checking the order in which packets are accepted when the arrive at the machine.

 

Mechanisms currently used for supporting sequencing :

Error Control

Error control mechanisms are used for recovering from errors. The errors are normally detected by the sequence mechanism or by a timeout occurring.

Error control mechanisms currently defined:

 

Flow Control

Flow control is used to prevent the sender from transmitter more data than the receiver can handle which would normally result in data being lost. Flow control can also be extended to include congestion control which attempts to prevent the network from being flooded with packets.

 

Mechanisms for supporting Flow Control -

Functionality to be added

The following is a list of possible mechanisms that could be added to the implementation to increase its functionality. Once again this list is not intended to be exhaustive but to illustrate how the implementation’s functionality can be extended to support a greater range of protocol configurations.

Packet Format

The packet format is shown in Figure 2. The packet contains a general format for all packets which consists of a sequence number, flow control information, acknowledgment number, flag field and length field. The data length is dependent on the underlying network technology. Their is no addressing information or checksum fields as this prototype was designed to run over UDP as explained in the following section.

Basic Protocol Operations

Basic protocol operations like setup, disconnect and reconfiguration of data channels are conducted through the control channel. Figure 3, Figure 4 and Figure 5 show the exchanges for the different operations.

 

 

For opening a channel, the initiating entity sends an open request which contains details like the UDP port and protocol for the new channel. The second replies with its UDP port number and confirms the protocol to be used. The second entity then waits till it receives the first data packet before it starts sending data.

 

 

 

 

For closing the initiating entity sends a request packet and waits till it gets a reply before closing the channel.

 

Protocol configuration exchanges are similar, with the difference being when the protocol request is sent - the data channel moves into a protocol wait state where it waits for a reply during this time no processing takes place within the data channel. When the peer entity receives the request it moves into the protocol wait state - changes its protocols and then returns to the open state after sending the reply. Then initiating entity switches the protocol mechanisms when it receives the wait state and then moves into the open state.

Implementation

The dynamic protocol was implemented on a Linux platform as an user level implementation. As explained earlier, it is a user level protocol because it was intended to interact with the application, and was designed to allow the user to create their own protocol functionality and this was easier to achieve if the protocol was outside the kernel. The prototype was built on top of the kernel level protocol UDP. Implementing the protocol over UDP was chosen for a number of reasons. By implementing it on top of UDP we had a way of demultiplexing the control and data channels by using different UDP ports. This would have been more difficult it attempted over raw IP sockets. Secondly UDP does not provide any functionality other than a checksum which is mandatory on the Linux implementation. This allowed us to design a protocol which provides all functionality with one exception -- it assumes that packets arriving from the underlying network are correct and does not carry out any detection for bit errors as it is assumed that this would be found by UDP’s checksum. Thirdly, it was considered more reasonable to use a standard socket interface to access the network, rather that access the underlying device drivers directly as this would have required super-user access.

To be able efficiently support a protocol stack that supports multiple channels, a control channel and adaptivity it was necessary to support multiple threads of execution. For this reason, a pthread package that would run on top of linux was

 

necessary. Proven's pthread package from MIT provides an user level POSIX compatible thread library. This package was used to provided multithread support. The Proven pthread package was the only user level package available and produced better results when switching compared to INRIA’s kernel pthread package. The only weakness in using this package was that all the pthreads run over a single process and hence the execution time of the process has to be shared with all the pthreads.

 

C was the language chosen to implement the protocol due to difficulties using C++ with the pthread library. C++ was originally envisioned as being more suitable protocol due to its object oriented programming methodology.

 

Currently it has been implemented as a library which includes the current functionality as part of the library. It will be preferable for future implementations to separate the functionality mechanisms from the main protocol engine. The mechanisms should be dynamically linked into the protocol as required. Furthermore by separating the functionality mechanisms form the main engine, it will allow for new mechanisms to be downloaded into the engine thus reducing the need for an end system to contain all the necessary mechanisms. The costs of dynamically linking functionality is given in [Ric95].

 

The current size of the library including functionality is 55 Kbytes. An individual mechanism is expected to be around 1-3 Kbyte in size which gives an encouraging view for the possibility downloading mechanisms. Current applications based on implementation are large and this is mainly due to the pthreads library which is 1.8Mbytes.

 

Implementation of Dynamic Functionality

As has been mentioned, the implementation is a dynamically adaptive protocol stack, i.e. it is has the ability to change functionality during the lifetime of a connection. As shown above it supports four groups of functionality - sequencing, error control, flow control and application layer framing. Each of these functionality groups consists of a number of different mechanisms which can be used to instantiate the appropriate functionality group. Each mechanism can be considered an object consisting a number of procedures. The implementation calls these procedures from within its main processing loop. The various breakdowns for each of the protocol functions are shown in Figure 6.

 

The follow sections provide an outline of the services provided by each method in each of the different functions.

Sequencing

Sequencing function consists of a number of methods as shown in Figure 6.

Error Control

Methods for Error control mechanism:

Flow Control

Methods for flow control functions

Application Layer Framing (ALF)

Methods for application layer framing functions :

Operation

The following sections explain the general algorithms used in the input, output and timer threads and how the appropriate method calls are made with the structure. The threads are initiated by the control channel after the data channel is setup.

 

All the threads are active while the connection is alive. The threads block while dynamic protocol changes take place as if they were frozen. The configuration of the new protocol is done through the control channel.

 

Input Thread

Experimental Results & Discussion

Table 2 shows some initial results for different protocol configurations. The performance varies depending on the protocol mechanisms used.

 

 

Protocol Configuration

 

Throughput (Mbps)

Sequencing

Error Control

Flow Control

 

None

None

None

9.08

None

None

Rate

8.48

Normal

None

Rate

8.46

Normal

Go-back-n

None

0.47

Normal

Go-back-n

Credit

8.93

Normal

Selective

None

2.33

Normal

Selective

Credit

9.00

The best results are achieved for the protocol with no functionality at all. Given that the protocol has not been optimized at all this is understandable. Rate control simply restricts the number of packets that can be sent in an interval. The number of packets is adjustable. Rate control with go-back-n and selective repeats will provide poor performance similar to using no flow control. The reason for this is that rate control does not increase the rate that acknowledgments are sent and hence this is done as per the ARQ schemes which use delay acknowledgments. The delay for the acknowledgments means that new packets can not be sent and hence poor performance. When using the credit flow control scheme when the credits start to get low - it forces acknowledgments to be sent hence keeping the performance high.

 

Reconfiguration of the protocol during runtime takes approximately 5ms of which about 1ms is roundtrip time. Such reconfiguration times are reasonable for a mobile environment where experiments have shown that handoff times for Mobile IP can take

 

Transmit (Mbps)

TCP

9.07

UDP

9.22

around 3 seconds [Cac94].

 

Comparisons with the performance of TCP and UDP in the same environment show that the user level protocol provides similar levels in performance as shown in Table 3.

 

The results show that user level application configurable protocols are viable and can provide high performance. In addition the implementation has shown that this can be achieved in a modular fashion.

 

Currently, it does not handle a number of problems relating to the specification and selection phases of the generic automated communication model. Work has to be carried out on how the user can specify their requirements to the user level protocol. The protocol must be able to decide depending on the environment what protocol functionality to be used and the appropriate mechanisms to be used.

 

At the moment, the only supports four classes of functionality, but there is no reason that this functionality cannot be extended to support more functionality groups. In particular presentation layer functionality can be added. This would be relevant to mobile systems where the bandwidth can be limited. The same applies to mechanisms which can be added to suit various application requirements.

 

Protocol configurations are currently decided by the users. One area of importance, involves deciding if a protocol is viable. For example, the has to be a mechanism for preventing an user from using sequencing and no error recovery as if a packet is lost it, the connection will come to a halt as the connection will never able to get back in the correct sequence.

 

In addition, it is unreasonable to assume that users will be able to decide what protocol functionality to use for their given application and their current environment, therefore it is necessary to build this intelligence into the protocol or within a larger framework. Particularly in a mobile environment, where network environment changes can require changes in protocol configuration it is unreasonable to expect the user to decide the correct functionality rather the functionality should be decided

 

based on a set of application requirements specified by the application designer and the underlying network environment.