Network Protocol Modules

  • Kamaelia.Protocol
    • AudioCookieProtocol
    • EchoProtocol
    • FortuneCookieProtocol
    • HTTP
    • RTP
    • SimpleReliableMulticast
    • SimpleVideoCookieServer
    • Torrent (bittorrent)

Echo protocol and Fortune Cookies

EchoProtocol is the simplest protocol and forms a simple loopback protocol useful for integration testing. In practice this component is really a data pass through component since all data recieved on its inbox is passed on directly to its outbox. Kamaelia.Util.PassThrough is a similar component.

FortuneCookieProtocol is one step above EchoProtocol. It runs the fortune program on the server and sends the result to its outbox. In a networked environment what this means is the server will simply blat the fortune cookie to a client that connects to the server.

AudioCookieProtocol is a further logical extension. Similar to FortuneCookieProtocol it too runs an external program and sends the result to its outbox. In this case however rather than a short piece of text, it is a short snippet of audio.

SimpleVideoCookieServer is essentially the same but his time with a short piece of video.


Kamaelia.Protocol.HTTP is a collection of components implementing an extensible HTTP server and an HTTP Client. There is also an implementation of a SHOUTcast/Icecast client.


Kamaelia.Protocol.RTP is a set of modules for implementing RTP.

Simple Reliable Multicast

Kamaelia.Protocol.SimpleReliableMulticast module contains a simple collection of components that can be pipelined together to create a simple protocol for reliable transfer of data over multicast - designed to cope with duplicated, lost and delivered-out-of-order packets.

Bit Torrent

Kamaelia.Protocol.Torrent is a set of modules that wrap the mainline bittorrent code adding bit-torrent components to Kamaelia. Specifically the TorrentPatron component provided shared access to bittorrent functionality.

Support: Packetisation, Framing, MIME types, etc

These components don't implement fully fledged protocols, but provide useful support that many protocols may wish to use.

The Framing module contains components that implement a simple protocol for framing chunks of data and combining them with an associated 'tag' - making it easy to add things like sequence numbers to a stream of chunks of data.

MimeRequestComponent module unpacks MIME request headers into a python dict object.

Packetise contains a simple component for ensuring that data chunks do not exceed a specified size - particularly useful, for example, for ensuring UDP payloads fit within a packet size limit.

-- Michael, December 2004; updated by Matt, April 2007


Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)