BigSpeed Data Exchange Protocol

Software VPN at the application level
Version 1.0
 
Idea
We need a flexible message-oriented protocol to serve as a backbone for our private networking. Our peers will be grouped logically in a virtual community of trusted nodes. A simple and efficient method must secure our communications without using third party certificates. A single TCP connection should be used for all transferred data, which will be organized in named packets with additional headers.
 
Architecture

 
Design
All exchanged information is encapsulated in packets with the following structure.
Field Size Value Description
Start of packet
Prefix 8 bytes &H31543949
394D3349
Indicates the beginning of the packet
Attributes 4 bytes Bit array Specifies configuration parameters of the packet

bits 0-2: padding length for the body
bit 3: encryption flag
bit 4: compression flag
Length 4 bytes Integer Indicates the total length of the packet
Start of encrypted area
Initialization
vector
16 bytes Random Cipher initialization value
Command 4 bytes Integer Identifies the type of the message
Body Variable byte stream Message payload
Suffix 8 bytes &H31453952
394B344F
Indicates the end of the packet
End of packet
The message body supports four basic data types: boolean, integer, string, and byte array. They can be used by the application to derive new data types.
Data type Length field Value vield
Boolean Void 1 byte
Integer Void 4 bytes
String 4 bytes [Length field] unicode characters
Byte array 4 bytes [Length field] bytes
 
Bottom line
BigSpeed Data Exchange protocol lets us quickly and easily create software-based virtual private networks at the application level.
(c) Bigspeed Computing Inc. 1998-. Mastering algorithms.