On defining the service provided by TCP

  • Authors:
  • Jonathan Billington;Bing Han

  • Affiliations:
  • Computer Systems Engineering Centre, University of South Australia, Mawson Lakes, SA 5095, Australia;Computer Systems Engineering Centre, University of South Australia, Mawson Lakes, SA 5095, Australia

  • Venue:
  • ACSC '03 Proceedings of the 26th Australasian computer science conference - Volume 16
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Transmission Control Protocol (TCP) is an important transport layer protocol providing a reliable data transfer service to support many applications running over the Internet such as the World Wide Web. It is therefore important to define the intent of TCP. This is achieved by describing the services it is intended to provide in an abstract way, known as a service definition. Several attempts have been made to define the services provided by TCP, however, they are all inadequate in various ways. In particular, most of them follow the applications interface defined in the TCP Request for Comments (RFC 793) too closely, making them rather implementation specific. The aim of our work is to provide an appropriately abstract definition of the TCP service, following the guidance of the Open Systems Interconnection service conventions, and to make it as general and as complete as possible. We define the service in terms of a set of 15 service primitives and their sequences, for TCP's main features of connection establishment, data transfer, urgent data transfer, orderly connection release, and aborting connections. The choice of primitives is discussed in terms of their relationship with the Interface Definition of RFC 793. We formalise the TCP service using Coloured Petri Nets, and from it generate the global sequences of service primitives for TCP's Connection Management services (including aborts). We believe this is the first time this has been achieved.