Difference between revisions of "TCP/IP"

From Computer History Wiki
Jump to: navigation, search
m (Proper catt, +link)
m (External links: +TCP-IP Distribution List)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
'''TCP/IP''' is the network [[protocol suite]] that is used in the [[Internet]], the [[internetwork|internet]] (the short form of the term 'internetwork') which is the world's dominant [[data network]].
 
'''TCP/IP''' is the network [[protocol suite]] that is used in the [[Internet]], the [[internetwork|internet]] (the short form of the term 'internetwork') which is the world's dominant [[data network]].
  
Because of the rise in popularity of the Internet, TCP/IP is the most popular networking protocol suite of all time. There simply are an amazing amount of [[operating system|OSs]] and platforms that support TCP/IP.
+
Because of the rise in popularity of the Internet, TCP/IP is the most popular networking protocol suite of all time. [[Operating system|OSs]] and platforms that support TCP/IP are now basically ubiquitous, including on the equally ubiquitous [[smart-phone]]s.
  
TCP/IP was heavily influenced by the ground-breaking [[CYCLADES]] network (as were all internetworks), and also took influences from the [[PARC Universal Packet]] (PUP) protocol suite.
+
TCP/IP was heavily influenced by the ground-breaking [[CYCLADES]] network (as were all internets), and also took influences from the [[PARC Universal Packet]] (PUP) protocol suite.
  
Vint Cerf is largely credited with initially creating the protocol suite; over the last several decades, a varying cast of characters, under the aegis of the [[Internet Engineering Task Force]], has done the engineering work to let TCP/IP handle the much larger Internet of today (many times larger than TCP/IP was originally designed to support).
+
Vint Cerf and Robert Kahn are largely credited with initially creating the protocol suite; over the last several decades, a varying cast of characters, under the aegis of the [[Internet Engineering Task Force]], has done the engineering work to let TCP/IP handle the much larger Internet of today (many times larger than the internets which TCP/IP was originally designed to support).
  
 
TCP/IP is a family of several [[protocol]]s, the most important of which are listed below:
 
TCP/IP is a family of several [[protocol]]s, the most important of which are listed below:
  
== IP ==
+
==IP==
  
The most important protocol of all, the [[internetworking layer]] [[Internet Protocol]] (IP), offers direct un-reliable [[datagram]] carriage across the entire internetwork.
+
The most important protocol of all, the [[internetworking layer]] [[Internet Protocol]] (IP), offers direct un-reliable [[datagram]] carriage across the entire internet.
  
Underneath IP, each individual [[physical network]] has a protocol which specifies how packets are carried from one interface to that network to another; there are also a number of different protocols, providing different services, running on top of IP.
+
Underneath IP, each individual [[physical network]] has a protocol which specifies how [[packet]]s are carried from one [[network interface]] to that network to another; there are also a number of different protocols, providing different services, running on top of IP.
  
IP is thus spoken of as being the 'waist' in the 'hour-glass' of TCP/IP; it is the one indispensable protocol that every node in the internet must understand and use.
+
IP is thus spoken of as being the 'waist' in the 'hour-glass' of TCP/IP; it is the one indispensable protocol which every node in the internet ''must'' understand and use.
  
 
The lack of delivery guarantees means that it is the job of the protocols above IP to ensure reliable data carriage on an [[end to end]] basis; these do so using [[checksum]]s, [[sequence number]]s, [[acknowledgement]]s, [[timeout]]s, and [[re-transmission]]s.
 
The lack of delivery guarantees means that it is the job of the protocols above IP to ensure reliable data carriage on an [[end to end]] basis; these do so using [[checksum]]s, [[sequence number]]s, [[acknowledgement]]s, [[timeout]]s, and [[re-transmission]]s.
  
== Higher level protocols ==
+
==Lower level protocols==
  
=== TCP ===
+
===ARP===
The [[Transmission Control Protocol]] is the most widely used protocol to do that; it provides a [[reliable byte stream]] service/abstraction.
+
 
 +
[[Address Resolution Protocol]]; it translates from IP [[address]]es to physical network (e.g. [[Ethernet]]) addresses.
 +
 
 +
===SLIP===
 +
 
 +
[[Serial line]] protocol; SLIP was a popular way to connect machines with TCP/IP over leased lines and [[modem]]s (or anything that could talk in a serial manner, like the most popular [[EIA RS-232 serial line interface|RS232]] ports). The big drawback to SLIP was that each end had to be pre-configured; this made things like dialup banks exceptionally difficult to maintain, as each user would be assigned a static address - however it did work out fine for 'infrastructure' as they tended not to move.
 +
 
 +
SLIP has been largely supplanted by the PPP protocol.
 +
 
 +
===PPP===
 +
 
 +
Point to point protocol; PPP supplanted SLIP in two major ways.  The first and most significant change was that PPP can auto-configure nodes, so that clients don't have to know anything about the network they are connecting to. The PPP server will supply an IP address from a pool - and configure the client's [[router]] - and will also add [[Domain Name System|DNS]] information.  PPP also included VJ header compression support, while ignoring the payload did help speed up some things on slow dialup links.
 +
 
 +
==Higher level protocols==
  
=== UDP ===
+
===TCP===
The [[User Datagram Protocol]] is used to provide access to an un-reliable datagram service, for applications which don't need the complexity and overhead of TCP.
 
  
== Lower level protocols ==
+
The [[Transmission Control Protocol]] is the most widely used protocol to do that; it provides a [[reliable byte stream]] service/abstraction.
  
=== ARP ===
+
===UDP===
Address resolution protocol; it translates from an IP address to physical network (e.g. [[Ethernet]]) addresses.
 
  
=== SLIP ===
+
The [[User Datagram Protocol]] is used to provide access to an un-reliable datagram service, for [[application]]s which don't need the complexity and overhead of TCP.
Serial line protocol. SLIP was a popular way to connect machines with TCP/IP over leased lines and modems (or anything that could talk in a serial manner, like the most popular RS232 ports). The big drawback to SLIP was that each end had to be pre-configured; this made things like dialup banks exceptionally difficult to maintain, as each user would be assigned a static address - however it did work out fine for 'infrastructure' as they tended not to move.
 
  
SLIP has been largely supplanted by the PPP protocol.
+
==Application protocols==
  
=== PPP ===
+
All [[application]]s are implemented by protocols - many inherited from the [[ARPANET]] (where they ran on top of [[Network Control Protocol|NCP]]) - which run on top of either TCP or UDP. They include:
Point to point protocol.
 
  
PPP supplanted SLIP in two major ways.  The first and most significant change was that PPP can auto-configure nodes, so that clients don't have to know anything about the network they are connecting to.  The PPP server will supply an IP address from a pool - and configure the client's gateway - and will also add DNS information.  PPP also included VJ header compression support, while ignoring the payload did help speed up some things on slow dialup links.
+
* [[telnet]] - remote login
 +
* [[File Transfer Protocol|FTP]] - file transfer - little used now
 +
* [[Simple Mail Transfer Protocol|SMTP]] - [[email]]
 +
* [[Hypertext Transfer Protocol|HTTP]] - the [[World Wide Web]]
  
== Historical Systems Including TCP/IP ==
+
==Historical Systems Which Included TCP/IP==
  
 
This list is far, far from exhaustive, and primarily meant for systems from the 1980s, before TCP/IP became universal on all but embedded systems.
 
This list is far, far from exhaustive, and primarily meant for systems from the 1980s, before TCP/IP became universal on all but embedded systems.
Line 48: Line 60:
 
The most popular implementation of TCP/IP came from the [[4.3 BSD]] release: because of the BSD copyright, people were free to adapt the software to their own needs.
 
The most popular implementation of TCP/IP came from the [[4.3 BSD]] release: because of the BSD copyright, people were free to adapt the software to their own needs.
  
 +
* [[TENEX]]
 +
* [[TOPS-20]]
 +
* [[MOS operating system|MOS]]
 +
* [[Multics]]
 
* [[BSD]] Unix from 4.2 onward.
 
* [[BSD]] Unix from 4.2 onward.
  
 +
==See also==
 +
 +
* [[TCP and Internet Meetings]]
 +
* [[TCP and IP bake offs]]
 +
 +
==External links==
 +
 +
* [https://web.archive.org/web/20020112080426/http://www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/ TCP-IP Distribution List] - Archived archive of important transition-era email list
 +
 +
[[Category: Internet]]
 
[[Category: TCP/IP Protocols]]
 
[[Category: TCP/IP Protocols]]

Latest revision as of 22:02, 29 January 2024

TCP/IP is the network protocol suite that is used in the Internet, the internet (the short form of the term 'internetwork') which is the world's dominant data network.

Because of the rise in popularity of the Internet, TCP/IP is the most popular networking protocol suite of all time. OSs and platforms that support TCP/IP are now basically ubiquitous, including on the equally ubiquitous smart-phones.

TCP/IP was heavily influenced by the ground-breaking CYCLADES network (as were all internets), and also took influences from the PARC Universal Packet (PUP) protocol suite.

Vint Cerf and Robert Kahn are largely credited with initially creating the protocol suite; over the last several decades, a varying cast of characters, under the aegis of the Internet Engineering Task Force, has done the engineering work to let TCP/IP handle the much larger Internet of today (many times larger than the internets which TCP/IP was originally designed to support).

TCP/IP is a family of several protocols, the most important of which are listed below:

IP

The most important protocol of all, the internetworking layer Internet Protocol (IP), offers direct un-reliable datagram carriage across the entire internet.

Underneath IP, each individual physical network has a protocol which specifies how packets are carried from one network interface to that network to another; there are also a number of different protocols, providing different services, running on top of IP.

IP is thus spoken of as being the 'waist' in the 'hour-glass' of TCP/IP; it is the one indispensable protocol which every node in the internet must understand and use.

The lack of delivery guarantees means that it is the job of the protocols above IP to ensure reliable data carriage on an end to end basis; these do so using checksums, sequence numbers, acknowledgements, timeouts, and re-transmissions.

Lower level protocols

ARP

Address Resolution Protocol; it translates from IP addresses to physical network (e.g. Ethernet) addresses.

SLIP

Serial line protocol; SLIP was a popular way to connect machines with TCP/IP over leased lines and modems (or anything that could talk in a serial manner, like the most popular RS232 ports). The big drawback to SLIP was that each end had to be pre-configured; this made things like dialup banks exceptionally difficult to maintain, as each user would be assigned a static address - however it did work out fine for 'infrastructure' as they tended not to move.

SLIP has been largely supplanted by the PPP protocol.

PPP

Point to point protocol; PPP supplanted SLIP in two major ways. The first and most significant change was that PPP can auto-configure nodes, so that clients don't have to know anything about the network they are connecting to. The PPP server will supply an IP address from a pool - and configure the client's router - and will also add DNS information. PPP also included VJ header compression support, while ignoring the payload did help speed up some things on slow dialup links.

Higher level protocols

TCP

The Transmission Control Protocol is the most widely used protocol to do that; it provides a reliable byte stream service/abstraction.

UDP

The User Datagram Protocol is used to provide access to an un-reliable datagram service, for applications which don't need the complexity and overhead of TCP.

Application protocols

All applications are implemented by protocols - many inherited from the ARPANET (where they ran on top of NCP) - which run on top of either TCP or UDP. They include:

Historical Systems Which Included TCP/IP

This list is far, far from exhaustive, and primarily meant for systems from the 1980s, before TCP/IP became universal on all but embedded systems.

The most popular implementation of TCP/IP came from the 4.3 BSD release: because of the BSD copyright, people were free to adapt the software to their own needs.

See also

External links