Main Menu

History of Packets
Great Works in Computer Science
Robbie Hott
2013

www.robbiehott.com

Packets

Menu

The History of Packets

This guide seeks to take you on the adventure of the changing packet, and how it has survived over the past four decades of networking hardware and computer software. The Internet started in the late 1960s as ARPANET.

Browse the Menu

Find Content and Added Features

always available at the top left

OR

Hop in the Time Machine

Start your adventure in 1974 with ARPANET

Available Histories of the Internet

Menu

History of the Internet

The Internet has a very interesting history. Since this is well-documented, we provide you with some histories that have already been compiled.



Main Menu

History of Packets
Great Works in Computer Science
Robbie Hott
2013

www.robbiehott.com

How Headers Work

Menu


Main Menu

History of Packets
Great Works in Computer Science
Robbie Hott
2013

www.robbiehott.com

Packet History Through Time

Menu

Packet Time Machine

Choose your destination from the dates below. You may also filter your results by searching for a specific date or topic in the search box below.



Main Menu

History of Packets
Great Works in Computer Science
Robbie Hott
2013

www.robbiehott.com

ARPANET TCP/IP (v1)

Back Help

 

                               
Seq Hi/Lo   Logical Channel Number   0
0 0 Ver Pri Tra Leader Flags Acknowledgement
Checksum
Source Address (IMP)
Message Number Message Block Number
S/M Last   Msg Block Use Number Packet Number Packet Code
Destination Address (IMP)
Virtual Circuit Number Subtype

16-byte Packet Header (16-bits wide)

TCP/IP Version 1.0

TCP/IP originated out of ARPANET. ARPANET was the world's first packet-switched network. That means that instead of two users communicating via a dedicated line (circuit-switched), the information sent and received is broken into smaller pieces, called packets, and sent over an interconnect. These smaller packets can be interleaved among transmissions, allowing multiple users to share the same interconnect.

Each local network connected to ARPANET through an Interface Message Processor, or IMP. Originally, there were 4 IMPs: University of California Los Angeles, Stanford Research Institute, University of California Santa Barbara, and University of Utah. The first message transmitted was "lo", from "login", before the system crashed.

Packet Features

ARPANET utilized a store-and-forward protocol. Source and Destination IMPs were specified with 16-bit addresses. If a source and destination IMP were not directly connected, their communication would be forwarded through an intermediary IMP. Since multiple paths existed, the packet required a Numbering Scheme to ensure proper reordering at the destination. Likewise, since intermediary IMPs may go down during communication, the Acknowledgement field allows a receiving IMP to reply an acknowledge receipt of a message. The 16-bit Checksum field allowed the destination IMP to verify that the packet arrived without errors.

Help

Touch a field in the packet header to highlight that element for all of time. You may touch again at any time to remove the highlighting.

TCP/IP Version 2.0

Back

 

                               
Dest Net Destination Host
Source Net Source Host
Data Length Header Length Format Version
Sequence Number
Window Control Flags
  Destination Port
  Source Port
Acknowledgement
Checksum Options
Options

1-bit Control Flags

SYN ACK FIN RSN EOS EOL INT BOS ARQ RST

SYN: Synchronize sequence numbers
ACK: Acknowledgement field significant
FIN: No more data from sender
RSN: Sender is resynchronizing
EOS: End of Segment, Checksum present
EOL: End of letter
INT: Sender is interrupting
BOS: Beginning of Segment
ARQ: Acknowledgement requested
RST: Reset the connection

40-byte Packet Header (32-bits wide)

TCP/IP Version 2.0

Time Machine Jet Lag Updates

  • Ethernet developed at Xerox PARC, 1973-1974

  • UNIX released to the outside world, 1975

  • John Vittal released a modern email client, 1975

  • Satellite links used to connect nodes across oceans (Hawaii and UK), 1975

  • Unix-to-Unix CoPy (UUCP) created to copy files between UNIX installs, 1976

  • X.25 packet-switching service protocols finalized, 1976

Packet Features

Version 2 of TCP/IP includes many new features. First, an Options field was added to allow for special features such as diagnostic timestamping, security, priorities, etc. The error messages from v1 were eliminated, except for the Reset flag. Port fields for the Source and Destination were added to accomodate nodes that accept multiple connections. The TCP identifier consisted of the Network (8-bits) and Host (24-bits) address plus the process' port address (24-bits).

In order to close a connection, the FIN signals must also be acknowledged, which was not the case in version 1. Also, INT and FIN no longer cause data-stream flushing, however this version does not include a FLUSH command. Finally, reassembling fragments into segments was fully specified and a method for dealing with flow-control windows that have gone to zero was provided.

TCP/IP Version 3.0

Back

 

                               
Version TOS Format Total Length
IH Length DAL SAL Destination
Destination (continued) Source
Source (continued) Internet Options
Internet Options (continued) Padding

IPv1 Header (20 Bytes, 32-bits wide)

                               
Sequence Number
Acknowledgement Number
  Flags Window
Destination Port
Source Port
Data Offset Reserved Checksum
Urgent Pointer Buffer Size
TCP Options Padding

TCPv3 Header (32 Bytes, 32-bits wide)

1-bit Control Flags

URG BZS BOS EOS ACK BOL EOL RST SYN FIN

URG: Urgent Pointer field significant
BZS: Buffer Size field present
BOS: Beginning of Segment
EOS: End of Segment
ACK: Acknowledgement field significant
BOL: Begin of letter
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

TCP/IP Version 3.0

Time Machine Jet Lag Updates

  • Dennis Hayes created 300 bit/s modem, April 1977

  • DARPA created wireless packet radio network PRNET, connecting to ARPANET at 100-400 kbps, 1977

Packet Features

TCP/IP was formally split into two separate packet headers for version 3. Many changes have been specified:

  • INT interrupt signal has been eliminated for an Urgent Pointer.

  • Resynchronization mechanisms eliminated for a quiet period on the initialization of TCP.

TCP Version 3.1

Back

 

                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Format DAL SAL Destination
Destination (continued) Source
Source (continued) Internet Options Padding

IPv2 Header (20 Bytes, 32-bits wide)

                               
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv3.1 Header (20 Bytes, 32-bits wide)

1-bit Control Flags

              NES

NES: Not End of Segment flag

1-bit Control Flags

OPT URG ACK BOL EOL RST SYN FIN

OPT: Option field present
URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
BOL: Begin of letter
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

TCP Version 3.1

Packet Features

This new version, following a month after the previous, addressed a few important changes. They were:

  • Port addressing moved from TCP header to IP header.

  • TCP no longer handles fragmentation. That will be addressed in the Internet layer.

Many changes to fix the size of the packet and slim the packet to end on a 32-bit boundary were included as well. The Urgent Pointer is always present, but ignored if the URG control flag is not set. Control and data offset fields have been resized and combined to one 16-bit segment. The Checksum field provides a checksum of the TCP header, options, and test.

TCP Version 4.0

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Network Source Address
Destination Network Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source Port Destination Port

TCPv4.0 Port Header (4 Bytes, 32-bits wide)

                               
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 Header (20 Bytes, 32-bits wide)

1-bit Control Flags

OP MF

OP: Option field present
MF: More fragments flag

1-bit Control Flags

OPT URG ACK BOL EOL RST SYN FIN

OPT: Option field present
URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
BOL: Begin of letter
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
DF

DF: Don't Fragment this segment

TCP Version 4.0

Time Machine Jet Lag Updates

  • First commercial spam message sent, May 1978

Version Updates

In this version, all addressing information has been removed from the TCP header. It is provided by the Internet layer, as shown in the IP header. Likewise, fragmentation and reassembly have also moved from the TCP header to the Internet protocols.

Network Setup

The anticipated layered network setup is outlined with the description of TCP Version 4.0. TCP now supports higher-level protocols such as Telnet and FTP (originally written for ARPANET) and expects levels of service to be guaranteed by the Internet Protocol (a lower-level protocol). This setup is how the current Internet works.

Protocol Layout
Protocol Relationships (Updated to show current high-level protocols)

TCP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Network Source Address
Destination Network Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

OP   MF

OP: Option field present
MF: More fragments flag

1-bit Control Flags

  URG ACK   EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
DF

DF: Don't Fragment this segment

TCP Version 4.0 (Revised)

Revisions

The inner-workings of TCP were modified to now require a lower-level protocol (Internet Layer), which will fully implement the ARPA Internetwork Protocol. All addressing, fragmentation, and reassembly must be performed by this lower layer.

TCP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Network Source Address
Destination Network Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

OP   MF

OP: Option field present
MF: More fragments flag

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
DF

DF: Don't Fragment this segment

TCP Version 4.0 (Revised)

Time Machine Jet Lag Updates

  • Usenet created, with connection between Duke and UNC, 1979

Revised Features

The February 1979 update to TCP specified the behavior of the protocol, without changing the packet designs. The Protocol is formally layered between applications (higher-level) and Internet datagram protocol (lower-level), as pictured below.

Layers
Protocol Layers (updated to show current protocols)

TCP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Address
Destination Address
Options Padding

IPv4 (Revised) Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

0 DF MF

DF: Don't fragment
MF: More fragments

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
Priority STRM Reliability S/R Speed

Priority: 00 up to 11
STRM: Streaming (1) or Datagram (0)
Reliability: 00 up to 11
S/R: Speed (1) or Reliability (0)
Speed: 00 up to 11

IP Version 4.0 (Revised)

Time Machine Jet Lag Updates

  • Discussions between DARPA, NSF, and University of Wisconsin to establish a Computer Science research network, 1979

  • DARPA established the Internet Configuration Control Board, 1979

Packet Updates

The Source and Destination addressing schemes were updated in IPv4. The Type of Service flags in the Internet Protocol were also formally specified allowing for 4 levels of priority as well as settings for either speed or reliability.

TCP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Network Source Address
Destination Network Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

OP   MF

OP: Option field present
MF: More fragments flag

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
DF

DF: Don't Fragment this segment

NO CHANGE: TCP Version 4.0 (Revised)

What happened while in the DeLorean

Changes to network structure will go here. Changes in the packet designs. TCP and IP are now split into their own headers, as defined by separate specifications.

Packet Features

Packet features will be here

TCP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Network Source Address
Destination Network Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

OP   MF

OP: Option field present
MF: More fragments flag

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
DF

DF: Don't Fragment this segment

NO CHANGE: TCP Version 4.0 (Revised)

What happened while in the DeLorean

Changes to network structure will go here. Changes in the packet designs. TCP and IP are now split into their own headers, as defined by separate specifications.

Packet Features

Packet features will be here

IP Version 4.0 Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Address
Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

0 DF MF

DF: Don't fragment
MF: More fragments

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
Priority STRM Reliability S/R Speed

Priority: 00 up to 11
STRM: Streaming (1) or Datagram (0)
Reliability: 00 up to 11
S/R: Speed (1) or Reliability (0)
Speed: 00 up to 11

TCP Version 4.0 / IP Version 4.0 (Revised)

Time Machine Jet Lag Updates

  • Usenet connected to ARPANET by UC Berkeley, 1980

  • IEEE started project 802 to standardize Local Area Networks, 1980

  • DIX Ethernet (10 Mbps) standard released (48-bit destination and source MAC addresses), 1980

  • Ethernet II standard released, 1981

  • Ethernet links used shared coaxial cable (10BASE5) resulting in high collisions, early 1980s

Version Notes

This is the last fully specified version of Internet Protocol Version 4.

IP Version 6.0

Back

 

                                                               
Version Traffic Class Flow Label
Payload Length Next Header Hop Limit
Source Address
Source Address (continued)
Source Address (continued)
Source Address (continued)
Destination Address
Destination Address (continued)
Destination Address (continued)
Destination Address (continued)

IPv6 Header (40 Bytes, 32-bits wide)

                                                               
Next Header Length Options
Options (continued)
...

IPv6 Hop-by-Hop Options Header (8+ Bytes, 32-bits wide)

                                                               
Next Header Length Routing Type Segments Left
type-specific data
...

IPv6 Routing Header (8+ Bytes, 32-bits wide)

                                                               
Next Header   Fragment Offset   M
Identification
...

IPv6 Routing Header (8+ Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

0 DF MF

DF: Don't fragment
MF: More fragments

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

IP Version 6.0

Time Machine Jet Lag Update

Much has happened in the last 17 years while you were waiting for a packet update:

  • IEEE 802.3 standard for LANs approved, 1982

  • All ARPANET computers switched over to TCP/IP, 1983

  • The Domain Name System for resolving names to IP addresses was created, 1984

  • U.S. Federal Communications Commission releases ISM radio band for unlicensed use (802.11), 1985

  • NSFNET (56 Kbps) backbone created, 1986

  • Twisted-pair Ethernet 802.3e developed (10BASE-T) to reduce and eventually eliminate collisions (1 Mbps), 1986

  • 10BASE-T Ethernet 802.3i updated to 10 Mbps, 1987

  • NSFNET updated to T1 (1.54 Mbps) connection, 1988

  • The World Wide Web (Berners-Lee) proposed, 1989

  • Death of ARPANET, 1990

  • Commercialization and explosion of the Internet (commercial dial-up connections, web sites, etc), 1990 - 1998

  • NCR Corporation / AT&T develop wireless communication standard IEEE 802.11, 1991

  • NSFNET de-commercializes, all commercial traffic handed to interconnected service providers, 1995

  • 100BASE-TX Ethernet 802.3u updated to 100 Mbps, 1995

  • Perkins in RFC 2003 proposed a method for Internet Datagram (IPv4) packets to be encapsulated within other IPv4 packet headers to be carried on other types of networks. For example, a packet could be routed over a Mobile IP network. This method was suggested as a way to facilitate or replace normal IPv4 routing. 1996

IP Version 6.0 Features

There were five major changes introduced in IPv6 to address shortcomings of IPv4 in 1998:

  • Source and Destination Addresses were increased from 32-bits to 128-bits to support a larger address hierarchy, allow for more addresses, and provide mechanism for auto-configuration of device addresses.

  • Simplified the fields in the header by creating optional headers, which may be left out if unnecessary.

  • Improved support for specifying and adding Options to the IP header.

  • Flow labels, so that each packet may be classified into a level-of-service flow. This is controversial, since it allows headers to have various quality of service definitions.

  • Extensions to support authentication, data integrity, and confidentiality.

Notes

IPv6, even though defined over a decade ago, is still not widely used in the Internet. Network Address Translation (NAT) provided a buffer for the small 32-bit address space, allowing IPv4 to continue without enough true addresses available.

IP Version 4.0 ID Revised

Back

 

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Checksum
Source Address
Destination Address
Options Padding

IPv4 Header (24 Bytes, 32-bits wide)

                               
Source
Destination
0 Protocol TCP Length

TCPv4.0 Pseudo-Header (32-bits wide) for checksum
Carried by Internet Datagram Protocol

                               
Source Port Destination Port
Sequence Number
Acknowledgement Number
Data Offset   Flags Window
Checksum Urgent Pointer
Options Padding

TCPv4.0 (Revised) Header (24 Bytes, 32-bits wide)

1-bit Control Flags

0 DF MF

DF: Don't fragment
MF: More fragments

1-bit Control Flags

URG ACK EOL RST SYN FIN

URG: Urgent Pointer field significant
ACK: Acknowledgement field significant
EOL: End of letter
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

Type of Service Flags

               
Priority STRM Reliability S/R Speed

Priority: 00 up to 11
STRM: Streaming (1) or Datagram (0)
Reliability: 00 up to 11
S/R: Speed (1) or Reliability (0)
Speed: 00 up to 11

IP Version 4.0 (Revised)

Time Machine Jet Lag Update

  • IPv4 is still supported, since IPv6 has not gained enough support since 1998

  • 1000BASE-T Ethernet 802.3ab updated to 1 Gbps, 1999

  • Wireless 802.11b released supporting speeds up to 11 Mbps, 1999

  • Wireless 802.11a released supporting speeds up to 54 Mbps, 1999

  • Wireless 802.11g released supporting speeds up to 54 Mbps, 2003

  • 10GBASE-T Ethernet 802.3an updated to 10 Gbps, 2006

  • Wireless 802.11n released supporting speeds up to 150 Mbps, 2009

  • Draft of wireless 802.11ac released supporting speeds up to 867 Mbps, 2012

  • Anticipated wireless 802.11ad proposed to support transmission speeds up to 7 Gbps, 2014

Updates Featured

This update focus on the Identification field of IPv4. This problem does not exist in IPv6, but must be fixed in IPv4. The Identification field must be unique for each packet, based on Source, Destination, and Protocol for a given maximum datagram lifetime (MDL). Since this field is only 16-bits and the MDL was set at 2 minutes, this limited the maximum throughput of any link to 6.4 Mbps. To address this problem, RFC 6864 updates the IPv4 Identification field to be used only when a datagram is fragmented, similar to how that field is used in IPv6.

References

Menu

References

The following works and guides were used in the creation of this project:



Main Menu

History of Packets
Great Works in Computer Science
Robbie Hott
2013

www.robbiehott.com