TCP
/ IP - FAQ 
Question
What is TCP/IP?
Answer
TCP/IP is a name given to the collection (or suite) of
networking protocols that have been used to construct the
global Internet. The protocols are also referred to as the DoD
(dee-oh-dee) or Arpanet protocol suite because their early
development was funded by the Advanced Research Projects
Agency (ARPA) of the US Department of Defense (DoD).
The TCP/IP name is taken from two of the fundamental protocols
in the collection, IP and TCP. Other core protocols in the
suite are UDP and ICMP. These protocols work together to
provide a basic networking framework that is used by many
different application protocols, each tuned to achieving a
particular goal.
TCP/IP protocols are not used only on the Internet. They are
also widely used to build private networks, called internets
(spelled with a small 'i'), that may or may not be connected
to the global Internet (spelled with a capital 'I'). An
internet that is used exclusively by one organization is
sometimes called an intranet.
Question
How is TCP/IP defined?
Answer
All of the protocols in the TCP/IP suite are defined by
documents called Requests For Comments (RFC's). An important
difference between TCP/IP RFC's and other (say, IEEE or ITU)
networking standards is that RFC's are freely available
online.
RFC's can be composed and submitted for approval by anyone.
Standards RFC's are often the product of many weeks or months
of discussion between interested parties designated as working
groups, during which time drafts of the proposed RFC are
continually updated and made available for comment. These
discussions typically take place on open mailing lists which
welcome input from all quarters. The RFC approval process is
managed by the Internet Engineering Steering Group (IESG)
based on recommendations from the Internet Engineering Task
Force (IETF) which is a prime mover in the formation of
working groups focused on strategic TCP/IP issues. You can
find out more about IESG and IETF activities from the IETF
home page at http://www.ietf.org/.
Not all RFC's specify TCP/IP standards. Some RFC's contain
background information, some provide hints for managing an
internet, some document protocol weaknesses in the hope that
they might be addressed by future standards, and some are
entirely humorous.
Question
Where can I find RFC's?
Answer
The Definitive RFC Repository
The official and definitive RFC repository is the anonymous
FTP archive maintained by the Information Sciences Institute
of the University of Southern California at ftp://ftp.isi.edu/in-notes.
It is reachable via the Web at http://www.rfc-editor.org.
Question
How do I find the right RFC?
Answer
There are over 2500 RFC's. Each RFC is known by a number. For
instance, RFC 1180 presents a tutorial on TCP/IP, RFC 1920
lists the current standards RFC's and explains the RFC
standards process, and RFC 1941 is a FAQ list on the topic of
Internet deployment in educational establishments. RFC numbers
are assigned in ascending order as each RFC is approved.
The RFC files in the archive are named rfcNNNN.txt where NNNN
is the number of the RFC. For instance, the text of RFC 822 is
contained in the file named rfc822.txt. A small number of
RFC's are also available in PostScript format, in which case a
file named rfcNNNN.ps will exist in addition to the .txt file.
Basic information (number, title, author, publication date and
so on) on all of the RFC's is contained in the RFC index
document named rfc-index.txt which you can find alongside the
RFC's at any of the RFC archive sites. If you don't know which
RFC's you need, the index is a good place to start. The index
also indicates the current status of each RFC. The content of
an RFC does not change once the RFC has been published, but
since TCP/IP is in a constant state of evolution the
information in one RFC is often revised, extended, clarified
and in some cases completely superseded by later RFC's.
Annotations in the index indicate when this is the case.
Question
What is IP?
Answer
Internet Protocol (IP) is the central, unifying protocol in
the TCP/IP suite. It provides the basic delivery mechanism for
packets of data sent between all systems on an internet,
regardless of whether the systems are in the same room or on
opposite sides of the world. All other protocols in the TCP/IP
suite depend on IP to carry out the fundamental function of
moving packets across the internet.
In terms of the OSI networking model, IP provides a
Connectionless Unacknowledged Network Service, which means
that its attitude to data packets can be characterised as
"send and forget". IP does not guarantee to actually
deliver the data to the destination, nor does it guarantee
that the data will be delivered undamaged, nor does it
guarantee that data packets will be delivered to the
destination in the order in which they were sent by the
source, nor does it guarantee that only one copy of the data
will be delivered to the destination.
Because it makes so few guarantees, IP is a very simple
protocol. This means that it can be implemented fairly easily
and can run on systems that have modest processing power and
small amounts of memory. It also means that IP demands only
minimal functionality from the underlying medium (the physical
network that carries packets on behalf of IP) and can be
deployed on a wide variety of networking technologies.
The no-promises type of service offered by IP is not directly
useful to many applications. Applications usually depend on
TCP or UDP to provide assurances of of data integrity and (in
TCP's case) ordered and complete data delivery.
The fundamentals of IP are defined in RFC 791. RFC 1122
summarises the requirements that must be met by an IP
implementation in an Internet host, and RFC 1812 summarises
the IP requirements for an Internet router.
Question
How Is IP Carried On A Network?
Answer
IP really isn't very fussy about how its packets are
transported. The details of how an IP packet is carried over a
particular kind of network are usually chosen to be convenient
for the network itself. As long as the transmitter and
receiver observe some convention that allows IP packets to be
differentiated from any other data that might be seen by the
receiver, then IP can be used to carry data between those
stations.
On a LAN, IP is carried in the data portion of the LAN frame
and the frame header contains additional information that
identifies the frame an an IP frame. Different LAN's have
different conventions for carrying that additional
information. On an Ethernet the Ethertype field is used; a
value of 0x0800 identifies a frame that contains IP data. FDDI
and Token Ring use frames that conform to IEEE 802 Logical
Link Control, and on those LAN's IP is carried in Unnumbered
Information frames with Source and Destination LSAP's of 0xAA
and a SNAP header of 00-00-00-08-00.
The only thing that IP cares strongly about is the maximum
size of a frame that can be carried on the medium. This
controls whether, and to what extent, IP must break down large
data packets into a train of smaller packets before arranging
for them to be transmitted on the medium. This activity is
called "fragmentation" and the resulting smaller and
incomplete packets are called "fragments". The final
destination is responsible for rebuilding the original IP
packet from its fragments, an activity called "fragment
reassembly".
Question
Does IP Protect Data On The Network?
Answer
IP itself does not guarantee to deliver data correctly. It
leaves all issues of data protection to the transport
protocol. Both TCP and UDP have mechanisms that guarantee that
the data they deliver to an application is correct.
IP does try to protect the packet's IP header, the relatively
small part of each packet that controls how the packet is
moved through the network. It does this by calculating a
checksum on the header fields and including that checksum in
the transmitted packet. The receiver verifies the IP header
checksum before processing the packet. Packets whose checksums
no longer match have been damaged in some way and are simply
discarded.
The IP checksum is discussed in detail in RFC 1071, which also
includes sample code for calculating the checksum. RFC 1141
and RFC 1624 describe incremental modification of an existing
checksum, which can be useful in machines such as routers
which modify fields in the IP header while forwarding a packet
and therefore need to compute a new header checksum.
The same checksum algorithm is used by TCP and UDP, although
they include the data portion of the packet (not just the
header) in their calculations.
Question
What is ARP?
Answer
Address Resolution Protocol (ARP) is a mechanism that can be
used by IP to find the link-layer station address that
corresponds to a particular IP address. It defines a method
that is used to ask, and answer, the question "what MAC
address corresponds to a given IP address?". ARP sends
broadcast frames to obtain this information dynamically, so it
can only be used on media that support broadcast frames. Most
LAN's (including Ethernet, FDDI, and Token Ring) have a
broadcast capability and ARP is used when IP is running on
those media. ARP is defined in RFC 826. That definition
assumes an Ethernet LAN. Additional details for ARP on
networks that use IEEE 802.2 frame formats (IEEE 802.3 CSMA/CD,
IEEE 802.4, IEEE 802.5 Token Ring) are in RFC 1042. ARP on
FDDI is described in RFC 1390.
When IP is runnning over non-broadcast media (say, X.25 or
ATM) some other mechanism is used to match IP addresses to
media addresses. IP really doesn't care how the media address
is obtained.
RFC 903 defines Reverse ARP (RARP) which lets a station ask
the question "which IP address corresponds to a given MAC
address?". RARP is typically used to let a piece of
diskless equipment discover its own IP address as part of its
boot procedure. RARP is rarely used by modern equipment; it
has been supplanted by the Boot Protocol (BOOTP) defined in
RFC 1542. BOOTP in turn is being supplanted by the Dynamic
Host Configuration Protocol (DHCP).
Question
What is IPv6?
Answer
IP Version 6 (IPv6) is the newest version of IP, sometimes
called IPng for "IP, Next Generation". IPv6 is
fairly well defined but is not yet widely deployed. The main
differences between IPv6 and the current widely-deployed
version of IP (which is IPv4) are:
-
IPv6 uses larger addresses (128 bits
instead of 32 bits in IPv4) and so can support many more
devices on the network, and
-
IPv6 includes features like
authentication and multicasting that had been bolted on to
IPv4 in a piecemeal fashion over the years.
Question
What is TCP?
Answer
Transmission Control Protocol (TCP) provides a reliable
byte-stream transfer service between two endpoints on an
internet. TCP depends on IP to move packets around the network
on its behalf. IP is inherently unreliable, so TCP protects
against data loss, data corruption, packet reordering and data
duplication by adding checksums and sequence numbers to
transmitted data and, on the receiving side, sending back
packets that acknowledge the receipt of data.
Before sending data across the network, TCP establishes a
connection with the destination via an exchange of management
packets. The connection is destroyed, again via an exchange of
management packets, when the application that was using TCP
indicates that no more data will be transferred. In OSI terms,
TCP is a Connection-Oriented Acknowledged Transport protocol.
TCP has a multi-stage flow-control mechanism which
continuously adjusts the sender's data rate in an attempt to
achieve maximum data throughput while avoiding congestion and
subsequent packet losses in the network. It also attempts to
make the best use of network resources by packing as much data
as possible into a single IP packet, although this behaviour
can be overridden by applications that demand immediate data
transfer and don't care about the inefficiencies of small
network packets.
The fundamentals of TCP are defined in RFC 793, and later
RFC's refine the protocol. RFC 1122 catalogues these
refinements as of October 1989 and summarises the requirements
that a TCP implementation must meet.
TCP is still being developed. For instance, RFC 1323
introduces a TCP option that can be useful when traffic is
being carried over high-capacity links. It is important that
such developments are backwards-compatible. That is, a TCP
implementation that supports a new feature must continue to
work with older TCP implementations that do not support that
feature.
Question
How does TCP try to avoid network meltdown?
Answer
TCP includes several mechanisms that attempt to sustain good
data transfer rates while avoiding placing excessive load on
the network. TCP's "Slow Start", "Congestion
Avoidance", "Fast Retransmit" and "Fast
Recovery" algorithms are summarised in RFC 2001. TCP also
mandates an algorithm that avoids "Silly Window
Syndrome" (SWS), an undesirable condition that results in
very small chunks of data being transferred between sender and
receiver. SWS Avoidance is discussed in RFC 813. The
"Nagle Algorithm", which prevents the sending side
of TCP from flooding the network with a train of small frames,
is described in RFC 896.
Question
How do applications coexist over TCP and UDP?
Answer
Each application running over TCP or UDP distinguishes itself
from other applications using the service by reserving and
using a 16-bit port number. Destination and source port
numbers are placed in the UDP and TCP headers by the
originator of the packet before it is given to IP, and the
destination port number allows the packet to be delivered to
the intended recipient at the destination system.
So, a system may have a Telnet server listening for packets on
TCP port 23 while an FTP server listens for packets on TCP
port 21 and a DNS server listens for packets on port 53. TCP
examines the port number in each received frame and uses it to
figure out which server gets the data. UDP has its own similar
set of port numbers.
Many servers, like the ones in this example, always listen on
the same well-known port number. The actual port number is
arbitrary, but is fixed by tradition and by an official
allocation or "assignment" of the number by the
Internet Assigned Numbers Authority (IANA).
Question
How does the Open Services Gateway Initiative relate to
LonWORKS?
Answer
The Open Services Gateway Initiative can also be integrated
with this technology as the Services Gateway standard is an
entirely open specification providing its own device API that
can be interfaced to LonWorks enabled devices.


TCP / IP -
FAQ |