1
0
mirror of https://github.com/yarrick/iodine.git synced 2024-11-25 06:26:05 +03:00

Update changelog and proto docs

This commit is contained in:
Erik Ekman 2009-08-15 13:10:21 +00:00 committed by Erik Ekman
parent 473bb93951
commit 0e81cd78bc
2 changed files with 32 additions and 0 deletions

View File

@ -16,6 +16,8 @@ CHANGES:
does not include localhost.
- The client will now exit if configuring IP or MTU fails.
- The starting cache miss value is randomized at startup, fixes #65.
- Raw UDP mode added. If the iodined server is reachable directly,
packets can be sent to it without DNS encoding. Fixes #36.
2009-06-01: 0.5.2 "WifiFree"
- Fixed client segfault on OS X, #57

View File

@ -3,6 +3,8 @@ Detailed specification of protocol in version 00000501
Note: work in progress!!
======================================================
1. DNS protocol
======================================================
CMC = 2 byte Cache Miss Counter, increased every time it is used
@ -125,3 +127,31 @@ The server response to Ping and Data packets is a DNS NULL type response:
If server has nothing to send, data length is 0 bytes.
If server has something to send, it will send a downstream data packet,
prefixed with 2 bytes header as shown above.
======================================================
2. Raw UDP protocol
======================================================
All Raw UDP protcol messages start with a 3 byte header: 0x10d19e
This is not the start of a valid DNS message so it is easy to identify.
The fourth byte contains the command and the user id.
7654 3210
+----+----+
|CCCC|UUUU|
+----+----+
Login message (command = 1):
The header is followed by a MD5 hash with the same password as in the DNS
login. The client starts the raw mode by sending this message, and uses
the login challenge +1, and the server responds using the login challenge -1.
After the login message has been exchanged, both the server and the client
switch to raw udp mode for the rest of the connection.
Data message (command = 2):
After the header comes the payload data, which may be compressed.
Ping message (command = 3):
Sent from client to server and back to keep session open. Has no payload.