DirecPC Protocols

Crist J. Clark crist.clark at attbi.com
Fri Nov 15 22:01:59 UTC 2002

On Fri, Nov 15, 2002 at 04:41:10PM +0100, Jurian van der Knaap wrote:
> You might get some info out of the Linux DirecPC driver, or maybe the 
> developers of the driver can help.
> Find it at http://sourceforge.net/projects/direcpc
> Hope this is of any help,

Yeah, this helped. It showed me that their protocol is totally

They do an GRE- or IPIP-like encapsulation, but then set the protocol
field to that of the encapsulated packet. Or if the encapsulated
packet is not TCP, UDP, or ICMP, they set the outer protocol to TCP.
This will totally break behind NAT when the NATing device changes the
source IP address and then "fixes" the TCP or UDP checksum due to the
pseudo-header change. Either the NATing device drops the packet when
the intial checksum is wrong or it mangles the payload, which isn't
really TCP.

Who designs these things? And what were they smoking when they did?
Crist J. Clark                     |     cjclark at alum.mit.edu
                                   |     cjclark at jhu.edu
http://people.freebsd.org/~cjc/    |     cjc at freebsd.org

More information about the NANOG mailing list