The Tau Project
Tau (Transport and up) is a protocol and
framework designed to support the implementation of
end-to-end (i.e. application-to-application)
communication services through the composition of
individual protocol functions such as error control,
encryption, flow control, etc.
Tau implements protocol composition without layered
encapsulation; this enables it to support performance-oriented
techniques such as the integration of data-handling
functions (ILP).
Tau is motivated by
what has been learned about end-to-end protocol
design and implementation in the past ten years.
Although present practice reflects some of this (congestion control, for
example), it is well known that
some of these techniques --for example, Integrated
Layer Processing (ILP)-- are hampered by the use of layering as
a composition mechanism above TCP and UDP.
Much of the standards activity today is at the upper levels
(cf. SSL, HTTP, DNS, etc), yet
the Internet basically has no architecture above
TCP and UDP ports.
Layering functionality on top of TCP and UDP in the traditional
ways will increasingly limit performance, especially as round trips inevitably
become the dominant performance consideration.
The primary objective of the Tau project is
to create a standard platform for development and deployment
of new protocol services, one designed to incorporate
what has been learned about protocol architecture in the past 20 years.
The Tau framework comprises three major parts:
-
An explicit metaheader protocol, which provides
application addressing and an
indication of the protocol processing applied to the message.
The metaheader is coded to allow efficient parsing and processing
of Tau data units by the receiver.
-
A generic protocol interface (GPI), which allows
protocol functionality to be specified and implemented
apart from the ``glue'' that binds them together.
-
An extensible set of protocol functions, including connection
management, congestion avoidance and control, and security functions.
Tau can be instantiated with different "top" and "bottom" interfaces,
so it can be used with different underlying services. It is designed
to be used over UDP, TCP, or directly on IP; both user-space and
kernel implementations are possible.
The basic design premise of Tau is that it
should be possible to maintain modularity of implementation
(and thus increase code reusability) and still support
high-performance implementation techniques,
by using an explicit composition mechanism instead of
layered encapsulation.
Tau specification
The official Tau specification is in flux, and
probably will be for a while, but some parts are stable. Comments are
welcome.
Publications Related to Tau
-
R. Clayton and K. Calvert, "A Reactive Implementation of the Tau
Composition Mechanism", Proceedings of the
1998 IEEE Conference on Open Architectures and Programming
(OpenArch 98).
-
Joseph T. Dixon and Kenneth L. Calvert, "Effective Search Strategies
for Application-Independent Speedup in UDP Demultiplexing",
Proceedings of the Internation Conference
on Computer Communication Networks, Las Vegas, September 1997.
Longer version available as
College of Computing Technical Report GIT-CC-97-02
.
-
Joseph T. Dixon and Kenneth L. Calvert, "Increasing Demultiplexing
Efficiency in TCP/IP Network Servers",
Proceedings of the Internation Conference
on Computer Communication Networks, Washington, D.C., October 1996.
Longer version available as
College of Computing Technical Report GIT-CC-96-08
.
- Richard V. Clayton and Kenneth L. Calvert, "Structuring Protocols
as Data Streams", Second Workshop on High-Performance Protocol Architectures,
Sydney, Australia, December 1995.
- Kenneth L. Calvert, "Beyond Layering: Modularity Considerations for
Protocol Architectures", Proceedings 1993 International Conference on
Network Protocols, San Francisco, October
1993. (gzipped PostScript)
-
Robin Kravets,
Ken Calvert, and
Karsten Schwan,
"Dynamically Configurable Communication Protocols
and Distributed Applications: Motivation and Experience",
College of Computing Technical Report GIT-CC-96-16
.
Students
The Tau project is supported in part by the
National Science
Foundation under grant number ANI-9996069.
Any opinions, findings, and conclusions or recommendations expressed
in this material are those of the author(s) and do not necessarily
reflect the views of the National Science Foundation.
Ken Calvert
Last modified: Fri Sep 4 16:48:13 EDT 1998