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.
History of Packets
Great Works in Computer Science
Robbie Hott
2013
www.robbiehott.com
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.
The Internet has a very interesting history. Since this is well-documented, we provide you with some histories that have already been compiled.
Barry M. Leiner, Vinton G. Cerf, David D. Clark, Robert E. Kahn, Leonard Kleinrock, Daniel C. Lynch, Jon Postel, Larry G. Roberts, Stephen Wolff (2012): http://www.internetsociety.org/internet/what-internet/history-internet/brief-history-internet
Cameron Chapman (2009): http://sixrevisions.com/resources/the-history-of-the-internet-in-a-nutshell/
Robert Zakon (2011): http://www.zakon.org/robert/internet/timeline/
Simon Jeffery, Chris Fenn, Bobbie Johnson, Elliot Smith and John Coumbe (2009): http://www.guardian.co.uk/technology/interactive/2009/oct/23/internet-arpanet
History of Packets
Great Works in Computer Science
Robbie Hott
2013
www.robbiehott.com
History of Packets
Great Works in Computer Science
Robbie Hott
2013
www.robbiehott.com
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.
Initial design for ARPANET
TCP and IP Split into separate headers
Revised Edition
TCP Behavior Updated
IP Version 4.0 Updated
IP Version 4.0 Updated
Updated
History of Packets
Great Works in Computer Science
Robbie Hott
2013
www.robbiehott.com
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 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.
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.
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.
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 |
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)
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
Version 2 of TCP/IP includes many new features. First, an 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).
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 theIn 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.
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)
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
Dennis Hayes created 300 bit/s modem, April 1977
DARPA created wireless packet radio network PRNET, connecting to ARPANET at 100-400 kbps, 1977
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.
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)
NES |
NES: Not End of Segment flag
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
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.
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)
OP | MF |
OP: Option field present
MF: More fragments flag
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
DF |
DF: Don't Fragment this segment
First commercial spam message sent, May 1978
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.
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 Relationships (Updated to show current high-level protocols)
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)
OP | MF |
OP: Option field present
MF: More fragments flag
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
DF |
DF: Don't Fragment this segment
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.
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)
OP | MF |
OP: Option field present
MF: More fragments flag
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
DF |
DF: Don't Fragment this segment
Usenet created, with connection between Duke and UNC, 1979
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.
Protocol Layers (updated to show current protocols)
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)
0 | DF | MF |
DF: Don't fragment
MF: More fragments
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
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
Discussions between DARPA, NSF, and University of Wisconsin to establish a Computer Science research network, 1979
DARPA established the Internet Configuration Control Board, 1979
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.
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)
OP | MF |
OP: Option field present
MF: More fragments flag
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
DF |
DF: Don't Fragment this segment
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 will be here
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)
OP | MF |
OP: Option field present
MF: More fragments flag
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
DF |
DF: Don't Fragment this segment
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 will be here
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)
0 | DF | MF |
DF: Don't fragment
MF: More fragments
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
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
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
This is the last fully specified version of Internet Protocol Version 4.
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)
0 | DF | MF |
DF: Don't fragment
MF: More fragments
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
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
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
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.
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.
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)
0 | DF | MF |
DF: Don't fragment
MF: More fragments
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
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
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
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.
The following works and guides were used in the creation of this project:
R. Braden, Internet Engineering Task Force (October 1989)
http://www.rfc-editor.org/rfc/rfc1122.txt
Vinton Cerf (February 1978)
http://www.rfc-editor.org/ien/ien27.pdf
Vinton Cerf (February 1978)
http://www.rfc-editor.org/ien/ien26.pdf
Vinton Cerf (March 1977)
http://www.rfc-editor.org/ien/ien5.pdf
Vinton Cerf, Jonathan Postel (January 1978)
http://www.rfc-editor.org/ien/ien21.pdf
S. Deering (Cisco), R. Hinden (Nokia) (December 1998)
http://www.rfc-editor.org/rfc/rfc2460.txt
Barry M. Leiner, Vinton G. Cerf, David D. Clark, Robert E. Kahn, Leonard Kleinrock, Daniel C. Lynch, Jon Postel, Larry G. Roberts, Stephen Wolff (2012)
http://www.internetsociety.org/internet/what-internet/history-internet/brief-history-internet
C. Perkins, IBM (October 1996)
http://www.rfc-editor.org/rfc/rfc2003.txt
Jonathan Postel (December 1979)
http://www.rfc-editor.org/ien/ien123.txt
Jonathan Postel (January 1980)
http://www.rfc-editor.org/rfc/rfc760.txt
Jonathan Postel (December 1979)
http://www.rfc-editor.org/ien/ien124.txt
Jonathan Postel (January 1980)
http://www.rfc-editor.org/rfc/rfc761.txt
Jonathan Postel (February 1978)
http://www.rfc-editor.org/ien/ien28.pdf
Jonathan Postel (August 1979)
http://www.rfc-editor.org/ien/ien111.txt
Jonathan Postel (June 1978)
http://www.rfc-editor.org/ien/ien41.pdf
Jonathan Postel (June 1978)
http://www.rfc-editor.org/ien/ien44.pdf
Jonathan Postel (September 1978)
http://www.rfc-editor.org/ien/ien55.pdf
Jonathan Postel (August 1979)
http://www.rfc-editor.org/ien/ien112.txt
Jonathan Postel (September 1981)
http://www.rfc-editor.org/rfc/rfc793.txt
Jonathan Postel (June 1978)
http://www.rfc-editor.org/ien/ien40.pdf
J Touch (February 2013)
http://www.rfc-editor.org/rfc/rfc6864.txt
Wikipedia (accessed April 2013)
https://en.wikipedia.org/wiki/Computer_network
Wikipedia (accessed April 2013)
https://en.wikipedia.org/wiki/Ethernet
Wikipedia (accessed April 2013)
https://en.wikipedia.org/wiki/10BASE-T
Wikipedia (accessed April 2013)
http://en.wikipedia.org/wiki/Hayes_Communications
Wikipedia (accessed April 2013)
http://en.wikipedia.org/wiki/History_of_IEEE_802.11
Wikipedia (accessed April 2013)
http://en.wikipedia.org/wiki/X.25
History of Packets
Great Works in Computer Science
Robbie Hott
2013
www.robbiehott.com