Adaptive Fragmentation Protocol
Basic concept by Michael Schulze. Details and implementation by Philipp Werner.
Introduction
The famouso middleware offers publish/subscribe communication via various networks, but with one unique API. Because events may contain more data than underlying network can transmit in one packet (maximum transmission unit), we need a fragmentation concept. AFP is a scalable fragmentation protocol with low overhead that does not depend on an underlying network type, but can be adapted to fit the network's characteristics:
- maximum payload of an underlying network's packet (CAN: 8 Bytes, UDP-MultiCast: 8184 Bytes)
- whether packets may be lost in the channel (send A; never receive A)
- whether order of packet may change in the channel (send A, send B; receive B, receive A)
- whether packets may be duplicated in the channel (send A; receive A, receive A)
AFP is also adaptable to other requirements. You may...
- reduce resource consumption for resource-constrained embedded platforms
- instruct AFP to add redundancy for forward error correction
- instruct AFP to collect statistics about defragmented events and fragments
AFP follows policy-based design principles to achieve the adaption at compile time. Thus you configure the AFP by selecting policies concerning network characteristics and the other requirements. The MTU and the FEC redundancy quota can be adapted at run time.
AFP is used in the Abstract Network Layer of the famouso middleware by default. It may be also utilized in the Application Layer to transmit larger events than famouso supports originally or to use application related feature like forward error correction.
At the moment AFP supports only one publisher per subject. If multiple publishers' events need to be fragmented, AFP cannot guarantee correct reconstruction of the events.
Content
- AFP usage
- AFP configuration
- AFP resource consumption on micro-controllers
- AFP header desciption
- famcat: a command line tool for publishing and subscribing
Other resources
- Ph. Werner, M. Schulze, G. Lukas and J. Kaiser: AFP -- an Adaptive Fragmentation Protocol for Transferring Large Datagrams (submitted to ICNP 2010)
This paper contains details about the concept of AFP, related work, an evaluation and a case study.