The structure of the packet header was examined. To facilitate the reordering of packets received out of time sequence, a packet number was introduced. Also, the notion of a variable length header was developed to improve the utilization of message bits. Thus, short headers could be used with short, simple messages, and long headers with long, complex ones.
– Elmer Shapiro; Computer Network Meeting of Oct 9-10, 1967; Nov 1967.
Breaking digital communications into packets gave network technology something to work with. The key idea of packet switching is the division of each communication into individual, equal-sized packets. These packets are then sent individually to their destination through the network, and the entire message is reassembled when all the packets arrive. There are a range of procedures for retransmission of packets that might get lost in the network.
On the Internet, a typical packet length is about one kilobyte, or a thousand characters. A large message may be divided into thousands of individual packets. The beginning of an packet is called the “header” and records the following information:
- Source. The IP address of the computer sending the packet.
- Destination. The IP address of the destination computer .
- Length. The length of the packet in bytes.
- Number. The total number of packets in the complete message.
- Sequence. The number of this packet in the whole list of packets making up this communication.
This data provides the information an Internet router needs to get packets and messages to their destination. For example, a destination computer can request the retransmission of missing packets, since it knows the number of total packets and therefore can figure out which ones it doesn’t have.
For additional reliability, Internet packet headers also contain an error correction code, which is a number representing a mathematical combination of the rest of the packet data. If even a single bit of the packet is changed in transmission, then recalculation of the error correction code by a router won’t match the code transmitted with the message, and the packet will be discarded and a request made for retransmission.