From 0e81cd78bc11c1cf5dfd46b0da8de64d9a859b5f Mon Sep 17 00:00:00 2001 From: Erik Ekman Date: Sat, 15 Aug 2009 13:10:21 +0000 Subject: [PATCH] Update changelog and proto docs --- CHANGELOG | 2 ++ doc/proto_00000501.txt | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 84b60f0..9a8dcca 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -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 diff --git a/doc/proto_00000501.txt b/doc/proto_00000501.txt index 5b7fc5d..fded6e2 100644 --- a/doc/proto_00000501.txt +++ b/doc/proto_00000501.txt @@ -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. +