Packet Protocol Modules

Home/Documents/Development/High-Level Design/Packet Protocol Modules
 Project Closed
 Site Index
 User Docs
 Introduction to ANet
 High-Level Design
 Run-Time Wrapper
 Client Connection Modules
 Data Transformation Modules
 Client SDK
 Cluster Group Modules
 Cluster Filter Modules
 Core Modules
 Handshaking Protocol Modules
 Packet Protocol Modules
 Connection Protocol Modules
 Bandwidth Manager Module
 Document Type Definition (DTD)
 Low-Level Design
 Protocol Specifications
 Task List
 Development Roadmap
 Other Docs
 Mailing Lists
 Contacting Us


by Benad

The Packet Protocol Modules are used to define, in packets, the stream of communication between two nodes in the network.

Table of Contents


Role of the Packet Protocol Modules

While AEPs[1] are ready to be sent on the network, they don't have any limit on their size. This can be a major problem, as an usually large packet will block the transfer of the following smaller packets.

Thus, imposing a limit on the size of the AEPs would be useful. Instead of simply filtering packets that are too big (with a Cluster Filter Module[2]), the packets should be instead broken down into smaller pieces. But simply breaking down the packets would imply that some additionnal information need to be sent to be able to merge those pieces back together.

Also, it would be sometime useful to place the AEPs inside another protocol. For example, you could place the data inside a proper HTTP[3] transaction, or you could make ANet queries work inside the Gnutella[4] format.

So, the goal of a Packet Protocol Module is to tranform AEPs back and fourth to another format it supports.

Relation with the Bandwidth Manager

The Bandwidth Manager cannot know how much overhead is done by the Packet Protocol Module by itself. Thus, the Packet Protocol Module should send an approximate value, in bytes, of the overhead it created each time its "main" function is called. If it doesn't send that information, the Bandwitdh manager will assume that little or no overhead is created by the Protocol Module.

Implementation Notes


See the complete DTD for more information.

<!-- Packet Protocol Module -->
<!ELEMENT PacketProtocol EMPTY>
<!ATTLIST PacketProtocol %moduleName; %args; %security;>


About the references...

[1] Benad: "Core Modules". Local link.
[2] Benad: "Cluster Filter Modules". Local link.
[3] Network Working Group: "Hypertext Transfer Protocol". External link.
[4] Semi-Official Gnutella Web Site. External link.
[5] Benad: "Bandwidth Manager Module". Local link.
[6] Benad: "Cluster Group Modules". Local link.
[7] Benad: "Future". Local link.
[8] Benad: "Connection Protocol Modules". Local link.

Last update for this document: August 24, 2001, at 1:18:28 PST