Abstract
Deploying protocols is an expensive and time-consuming process today. One reason is the high cost of developing, testing, and installing protocol implementations. To reduce this difficulty, protocols are developed and executed within environments called protocol subsystems, and protocol software is often ported instead of being coded from scratch. Unfortunately, today a variety of protocol subsystems offer a plethora of features, functionality, and drawbacks; the differences among them often reduce the portability and reusability of protocol code, and therefore present barriers to the deployment of new protocols. In this paper, we consider differences in subsystems and their effect on the portability and reusability of protocols and protocol implementations. We then propose two different approaches, each optimized for a different situation, that allow protocol code implemented in one subsystem to be used without modification within other subsystems, and thus reduce the barriers to protocol deployment. We relate our experiences designing, implementing, and measuring the performance of each approach using, as a baseline, an AppleTalk protocol stack we have developed.
Original language | English |
---|---|
Pages (from-to) | 445-459 |
Number of pages | 15 |
Journal | IEEE/ACM Transactions on Networking |
Volume | 5 |
Issue number | 4 |
DOIs | |
State | Published - 1997 |
Bibliographical note
Funding Information:Manuscript received December 12, 1995; revised February 21, 1997 and March 27, 1997; approved by IEEE/ACM TRANSACTIONS ON NETWORKING Editor D. Lee. This research was supported by grants from the National Science Foundation under Grant NCR-9305115 and Grant NCR-9628397, and by the TRANSOPEN project of the Army Research Lab (formerly AIRMICS) under Contract no. DAKF11-91-D-0004.
Keywords
- Portability
- Protocol deployment
- Protocol implementation
- Protocol subsystem
ASJC Scopus subject areas
- Software
- Computer Science Applications
- Computer Networks and Communications
- Electrical and Electronic Engineering