Knowledge Is Power So, how can we learn how ADSL works? By reading the protocol documentation - the relevant protocols are: PPTP (Point to Point Tunneling Protocol) PPP (the Point to Point Protocol) GRE (the Generic Encapsulation Protocol) After we are familiar with the protocols, we want to see how they are implemented. We do this by reading pptp's internal documentation, and by reading, _and modifying_ the source code. Adding debug printouts, following the code in the debugger and generally doing whatever it takes to "grok"[1] it. [1] grok - from Heinlein's Stranger in a Strange Land, generally thought to mean "to grasp and to know".