mirror of
https://github.com/yarrick/iodine.git
synced 2024-11-16 12:53:17 +00:00
Update changelog and proto docs
This commit is contained in:
parent
03243094e5
commit
7f76ce7ce4
|
@ -16,6 +16,8 @@ CHANGES:
|
||||||
does not include localhost.
|
does not include localhost.
|
||||||
- The client will now exit if configuring IP or MTU fails.
|
- The client will now exit if configuring IP or MTU fails.
|
||||||
- The starting cache miss value is randomized at startup, fixes #65.
|
- 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"
|
2009-06-01: 0.5.2 "WifiFree"
|
||||||
- Fixed client segfault on OS X, #57
|
- Fixed client segfault on OS X, #57
|
||||||
|
|
|
@ -3,6 +3,8 @@ Detailed specification of protocol in version 00000501
|
||||||
|
|
||||||
Note: work in progress!!
|
Note: work in progress!!
|
||||||
|
|
||||||
|
======================================================
|
||||||
|
1. DNS protocol
|
||||||
======================================================
|
======================================================
|
||||||
|
|
||||||
CMC = 2 byte Cache Miss Counter, increased every time it is used
|
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 nothing to send, data length is 0 bytes.
|
||||||
If server has something to send, it will send a downstream data packet,
|
If server has something to send, it will send a downstream data packet,
|
||||||
prefixed with 2 bytes header as shown above.
|
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.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue