ARCHIVED: What is a packet?

This content has been archived, and is no longer maintained by Indiana University. Information here may no longer be accurate, and links may no longer be available or reliable.

Packets are the basic units of communication over a TCP/IP network. Devices on a TCP/IP network divide data into small pieces, allowing the network to accommodate various bandwidths, to allow for multiple routes to a destination, and to retransmit the pieces of data which are interrupted or lost. Each piece is a packet, a term interchangeable with datagram.

History

Packets evolved due to the need for networks and the Internet to be connectionless, i.e., to be constructed in a way where no prearranged session needs to be established before one end can transmit to another. Without the necessity of a pre-established connection, any computer can send a network transmission out into the network without needing to do anything to ensure that the receiving end actually receives it. The original network which became the Internet was developed by the US government, which desired an electronic network which could withstand a nuclear attack (for more information, see the Knowledge Base document ARCHIVED: What is the Internet?). This ideal network would have the ability to transmit data dynamically through changing routes, as well as be able to retransmit lost data if any node was suddenly destroyed. A static, connection-oriented network would fail if nodes were destroyed because losing any individual connection would disrupt an entire chain of predetermined routes. In contrast, a connectionless network would stay functional because the data would simply find an alternate route. In order for a connectionless network to function, it required small, separable units of data, or packets.

To fulfill these requirements, the US government first created ARPANET, which was then developed by universities and businesses over two decades to become the Internet. The TCP/IP protocols were then developed out of a need to have a common communication language. Packets form the basic discrete unit of data within the TCP/IP protocols.

Anatomy

A packet is a string of bits divided into three main sections:

  • A set of headers
  • The payload, the actual data being transmitted
  • The trailer, sometimes called the footer

The headers consist of the following:

  • Internet Protocol (IP) version
  • Header Length
  • ToS (Type of Service): Also called the Differentiated Services Code Point (rarely used)
  • Size of Datagram: The size of the header plus the payload in bytes
  • Identification: A 16-bit number. The destination computer combines the Identification with the source address to uniquely identify a packet, and uses these unique identifiers to reassemble data from packets.
  • Flags: A bit used to let a router know whether it can fragment a packet or not. This is important, since many networks are restricted by the maximum size of packets they can forward.
  • Fragmentation Offset: A value used to help reconstruct a fragmented packet
  • TTL (Time to Live): The maximum number of hops a packet can take
  • Protocol: The type of packet, i.e., TCP, UDP, ICMP, IGMP
  • Header Checksum: A value used to detect errors, corruption
  • Source Address: The IP address where the packet originated
  • Destination Address: The IP address where the packet is going
  • Options: Rarely used

The payload is the actual data being sent. This isn't normally read by routers en route like the headers and trailers are.

The trailer in most cases is nothing more than a pair of bits signaling the end of the packet. Occasionally, the trailer contains CRC (Cyclic Redundancy Check) error checking information.

Related documents

This is document anyq in the Knowledge Base.
Last modified on 2018-01-18 13:45:04.