- Packet (information technology)
information technology, a packet is a formatted unit of datacarried by a packet mode computer network. Computer communications links that do not support packets, such as traditional point-to-point telecommunications links, simply transmit data as a series of bytes, characters, or bits alone. When data is formatted into packets, the bitrateof the communication medium can better be shared among users than if the network would have been circuit switched. By using packet switched networking it is also harder to guarantee a lowest possible bitrate.
A packet consists of two kinds of data: control information and user data (also known as "payload"). The control information provides data the network needs to deliver the user data, for example: source and destination addresses, error detection codes like checksums, and sequencing information. Typically, control information is found in packet headers and trailers, with user data in between.
communications protocols use different conventions for distinguishing between the elements and for formatting the data. In Binary Synchronous Transmission, the packet is formatted in 8-bit bytes, and special characters are used to delimit the different elements. Other protocols, like Ethernet, establish the start of the header and data elements by their location relative to the start of the packet. Some protocols format the information at a bit level instead of a byte level.
A good analogy is to consider a packet to be like a letter: the header is like the envelope, and the data area is whatever the person puts inside the envelope. A difference, however, is that some networks can break a larger packet into smaller packets when necessary (note that these smaller data elements are still formatted as packets).
A network design can achieve two major results by using packets: "error detection" and "multiple host addressing".
It is more efficient and reliable to calculate a
checksumor cyclic redundancy checkover the contents of a packet than to check errors using character-by-character parity bitchecking.
The packet trailer often contains error checking data to detect errors that occur during transmission.
Modern networks usually connect three or more host computers together; in such cases the packet header generally contains addressing information so that the packet is received by the correct host computer. In complex networks constructed of multiple routing and switching nodes, like the
ARPANETand the modern Internet, a series of packets sent from one host computer to another may follow different routes to reach the same destination. This technology is called packet switching.
Packets vs. datagrams
In general, the term packet applies to any message formatted as a packet, while the term datagram is generally reserved for packets of an "unreliable" service. [Kurose, James F. & Ross, Keith W. (2007), "Computer Networking: A Top-Down Approach" ISBN: 0-321-49770-8] A "reliable" service is one that notifies the user if delivery fails, while an "unreliable" one does not notify the user if delivery fails. For example, IP provides an unreliable service. Together, TCP and IP provide a reliable service, whereas UDP and IP provide an unreliable one. All these protocols use packets, but UDP packets are generally called datagrams. [Kurose, James F. & Ross, Keith W. (2007), "Computer Networking: A Top-Down Approach" ISBN: 0-321-49770-8]
ARPANETpioneered packet switching, it provided a reliable packet delivery procedure to its connected hosts via its 1822 interface. A host computer simply arranged the data in the correct packet format, inserted the address of the destination host computer, and sent the message across the interface to its connected IMP. Once the message was delivered to the destination host, an acknowledgement was delivered to the sending host. If the network could not deliver the message, it would send an error message back to the sending host.
Meanwhile, the developers of
CYCLADESand of ALOHAnetdemonstrated that it was possible to build an effective computer network without providing reliable packet transmission. This lesson was later embraced by the designers of Ethernet.
If a network does not guarantee packet delivery, then it becomes the host's responsibility to provide reliability by detecting and retransmitting lost packets. Subsequent experience on the ARPANET indicated that the network itself could not reliably detect all packet delivery failures, and this pushed responsibility for error detection onto the sending host in any case. This led to the development of the
end-to-end principle, which is one of the Internet's fundamental design assumptions.
Example: IP packets
IP packets are composed of a header and Payload. The IPv4 packet header consists of:
# 4 bits that contain the "version", that specifies if it's an
# 4 bits that contain the "Internet Header Length" which is the length of the header in multiples of 4 bytes. Ex. 5 is equal to 20 bytes.
# 8 bits that contain the "Type of Service", also referred to as
Quality of Service(QoS), which describes what priority the packet should have,
# 16 bits that contain the "length" of the packet in bytes,
# 16 bits that contain an "identification tag" to help reconstruct the packet from several fragments,
# 3 bits that contain a zero, a flag that says whether the packet is allowed to be "fragmented" or not (DF: Don't fragment), and a flag to state whether more fragments of a packet follow (MF: More Fragments)
# 13 bits that contain the "fragment offset", a field to identify which fragment this packet is attached to,
# 8 bits that contain the "
Time to live" (TTL) which is the number of hops (router, computer or device along a network) the packet is allowed to pass before it dies (for example, a packet with a TTL of 16 will be allowed to go across 16 routers to get to its destination before it is discarded),
# 8 bits that contain the "protocol" (TCP, UDP, ICMP, etc...)
# 16 bits that contain the "Header Checksum," a number used in error detection,
# 32 bits that contain the "source IP address",
# 32 bits that contain the "destination address".
After those, optional flags can be added of varied length, which can change based on the protocol used, then the data that packet carries is added. An IP packet has no trailer. However, an IP packet is often carried as the payload inside an Ethernet frame, which has its own header and trailer.
Delivery not guaranteed
Many networks do not provide guarantees of delivery, nonduplication of packets, or in-order delivery of packets, "e.g.", the UDP protocol of the Internet. However, it is possible to layer a
transport protocolon top of the packet service that can provide such protection; TCP and UDP are the best examples of layer 4, the Transport Layer, of the seven layered OSI model.
The header of a packet specifies the data type, packet number, total number of packets, and the sender's and receiver's
The term frame is sometimes used to refer to a packet exactly as transmitted over the wire or radio.
Example: the NASA Deep Space Network
The Consultative Committee for Space Data Systems (
CCSDS) packet telemetry standard definesthe protocol used for the transmission of spacecraft instrument data over the deep-space channel. Under this standard, an image or other data sent from a spacecraft instrument is transmitted using one or more packets.
CCSDS packet definition
A packet is a block of data with length that can vary between successive packets, ranging from 7to 65,542 bytes, including the packet header.
* Packetized data are transmitted via frames, which are fixed-length data blocks. The size of a frame, including frame header and control information, can range up to 2048 bytes.
* Packet sizes are fixed during the development phase.Because packet lengths are variable but frame lengths are fixed, packet boundaries usually do not coincide with frame boundaries.
Telecom processing notes
Data in a frame typically are protected from channel errors by error-correcting codes.
* Even when the channel errors exceed the correction capability of the error-correcting code, the presence of errors nearly always is detected by the error-correcting code or by a separate error-detecting code.
* Frames for which uncorrectable errors are detected are marked as undecodable and typically are deleted.
Handling data loss
Deleted undecodable whole frames are the principal type of data loss that affects compressed data sets. There generally would be little to gain from attempting to use compressed data from a frame marked as undecodable.
* When errors are present in a frame, the bits of the subband pixels are already decoded before the first bit error will remain intact, but all subsequent decoded bits in the segment usually will be completely corrupted; a single bit error is often just as disruptive as many bit errors.
* Furthermore, compressed data usually are protected by powerful, long-blocklength error-correcting codes, which are the types of codes most likely to yield substantial fractions of bit errors throughout those frames that are undecodable.
Thus, frames with detected errors would be essentially unusable even if they were not deleted by the frame processor.
This data loss can be compensated for with the following mechanisms.
* If an erroneous frame escapes detection, the decompressor will blindly use the frame data as if they were reliable, whereas in the case of detected erroneous frames, the decompressor can base its reconstruction on incomplete, but not misleading, data.
* Fortunately, it is extremely rare for an erroneous frame to go undetected.
* For frames coded by the CCSDS Reed–Solomon code, fewer than 1 in 40,000 erroneous frames can escape detection.
* All frames not employing the Reed–Solomon code use a
cyclic redundancy check(CRC) error-detecting code, which has an undetected frame-error rate of less than 1 in 32,000.
*Dean, Tamara (2006). Network+ Guide to Networks. Boston, Massachusetts: Thomson Course Technology.
*Kurose, James F. & Ross, Keith W. (2007)"Computer Networking A Top-Down approach
Wikimedia Foundation. 2010.