====================================================================== Network Working Group P. Mockapetris Request for Comments: 3043 ISI Updates: None May, 1995 c++ IP encapsulation for carrier pigeons For many people without access to a physical network conneection, be it a dedicated connection or a simple dialup PPP link, getting internet access may seem hopeless. However, a new method has been designed to allow almost anyone access to the internet. Not that this method probably can't be used in the far north, without encapsulating your carrier pigeon in a wool packet (See RFC3044). The data and frame format for a carrier pigeon is interesting because it doesn't have a physical network layer - That is, you send direct IP packets (They are not encapsulated in, for example, a PPP packet). Thus, the TCP/IP frame for a carrier pigeon is quite simple. Selectivly color in squares on a grid piece of paper. The TCP segment header is shown: TCP Header Format (With carrier pigeon extensions) 0 1 2 3 0123456789012345678901234567890 +-----------------------------+ | Source Port | Dest Port | +-----------------------------+ | Sequence Number | +-----------------------------+ | Ack Number | +-----------------------------+ |Dta| | | |Ofs| Reserved | Window | | | | | +---+----------+--------------+ | Checksum | Urgent Pntr | +--------------+--------------+ | Options | Padding | +-------------------+---------+ | Data | +-----------------------------+ Note that you can indicate the status/ownership of the pigeon by changing the statis bit in `Reserved'. U means you own the carrier, O means someone unknown owns the pigeon, and G means your carrier pigeon provider owns the pigeon. So, to send a packet you simply check off the boxes on a grid piece of paper, conforming to the ablive TCP/IP data header, and send the pigeon off and await the reply. Note that UDP datagrams are essentialy useless, because of the inherent instability of the network. This also means that ICMP packets in most cases will not be passed. This renders Ping and several routing protocols inoperable. However, to verify that the network is indeed still alive, kick it. This is refered to as "Squawking the Network". If a squawk is returned, the network is alive and operational. This is really just a primer. Refer to RFC3048 for more information.