1.3.1 The Basic Internet Protocols
- IP
- The Internet Protocol. This protocol is almost never used directly by
applications. It provides the basic packet delivery and routing infrastructure
of the Internet. Much like the phone company's switching centers or the Post
Office's trucks, it is not of much day-to-day interest to the regular user
(or programmer).
It happens to be a best effort datagram protocol.
In the early twenty-first century, there are two versions of this protocol
in use:
- IPv4
- The original version of the Internet Protocol, with 32-bit addresses, on which
most of the current Internet is based.
- IPv6
- The “next generation” of the Internet Protocol, with 128-bit addresses.
This protocol is in wide use in certain parts of the world, but has not
yet replaced IPv4.1
Versions of the other protocols that sit “atop” IP exist for both
IPv4 and IPv6. However, as the IPv6 versions are fundamentally the same
as the original IPv4 versions, we will not distinguish further between them.
- UDP
- The User Datagram Protocol. This is a best effort datagram protocol.
It provides a small amount of extra reliability over IP, and adds
the notion of ports, described in TCP and UDP Ports.
- TCP
- The Transmission Control Protocol. This is a duplex, reliable, sequenced
byte-stream protocol, again layered on top of IP, and also providing the
notion of ports. This is the protocol that you will most likely use
when using gawk for network programming.
All other user-level protocols use either TCP or UDP to do their basic
communications. Examples are SMTP (Simple Mail Transfer Protocol),
FTP (File Transfer Protocol), and HTTP (HyperText Transfer Protocol).