|CITS3002 Computer Networks|
The Requirements of Internetworking
Networks come in differing topologies and speeds and (of course) no single network configuration suits everyone.
The technology known as internetworking draws the multitudes of networking technologies into a common framework that combines networks into internets. In general an internetwork must :
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p1, 22nd April 2020.
A Brief History of the Internet
In 1969, the US Defense Advanced Research Projects Agency (DARPA) funded a project in computing resource sharing termed the ARPANET. ARPANET consisted of multiply connected, high-bandwidth (56 Kbps) links between government, academic and industrial laboratories.
During the 1970s DARPA was the chief funding body for packet switching networks using diverse technologies, such as mobile radio transmitters and satellite links. By the mid 1970s research concentrated on a framework for the ARPANET. By 1979 the Transmission Control Protocol/Internet Protocol (TCP/IP) was running exclusively over ARPANET.
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p2, 22nd April 2020.
(Earlier) Milestones in Internet History
The Internet Society hosts a monograph named
A Brief History of
the Internet, by Vint Cerf -
Cerf's paper notes these key milestones in Internet history:
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p3, 22nd April 2020.
Where It All Began (?)During my service in the United States Congress, I took the initiative in creating the Internet. - Al Gore, 1999
Internet RFCs (Requests For Comments)The Internet is not (yet) a commerical product - instead a large, active research project. Reports of work, proposals for protocols, and protocol standards appear as a series of nearly 8800 technical reports termed RFCs. Recently: RFC 8771: The Internationalized Deliberately Unreadable Network NOtation (I-DUNNO). The whole RFC collection may be searched and read via: https://www.rfc-editor.org. (and read the collection of humorous April Fools' Day Request for Comments).
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p4, 22nd April 2020.
The TCP/IP Protocol Architecture
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p5, 22nd April 2020.
The TCP/IP Protocol Architecture, continued
The host/host layer contains protocols able to deliver data between processes on the different hosts. Depending on the quality of service and the length of connections required (if any) at this layer, four host-host layer protocols are in frequent use -
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p6, 22nd April 2020.
Traditional Class-based IP Version 4 Addressing
Each computer or device accessible using Internet (IP) protocols has at least one unique address within its subnet.
If every device was accessible over the global Internet, each device would require its own unique address (worldwide); each address consists of a network 'portion' and a local 'portion'. The network 'portions' are assigned by the central DARPA authority.
The original Internet designers were unsure as to how the Internet would grow - either a large number of networks each with a small number of hosts or a small number of networks each with a large number of hosts.
As a compromise, Internet addressing schemes accommodate both large and small network topologies.
Moreover, class-based addresses are self-describing.
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p7, 22nd April 2020.
Class-based IP Version 4 Addressing, continuedWhen describing Internet addresses (verbally or in literature) a dotted decimal notation is used to describe the 32-bit addresses.
# 220.127.116.11 www www.csse.uwa.edu.au 18.104.22.168 budgie budgie.csse.uwa.edu.au 22.214.171.124 laser25 laser25.csse.uwa.edu.au # 126.96.36.199 ecm-csse2101-l.uniwa.uwa.edu.au 188.8.131.52 ecm-csse2101-x.uniwa.uwa.edu.auThe different (hardware) encoding of 32-bit integers between architectures demands a standard representation for Internet addresses. The Internet standard for byte order specifies that integers are sent most significant byte first (big-endian).
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p8, 22nd April 2020.
Classless Inter-Domain Routing (CIDR)
With the advent of CIDR, the classful restrictions no longer exist. Address space may be allocated and assigned on bit boundaries, and routers may use one aggregated route (like 184.108.40.206/20) instead of advertising 16 class C addresses [RFC-1518].
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p9, 22nd April 2020.
Mapping Internet Addresses to Physical Addresses
An obvious question is 'What physical address should the sender use to send Internet datagrams to a specific Internet site?'
In some cases a physical address may fit into, say, a Class A Internet address, but more typically an Ethernet address (48 bits) will not fit in the Internet addressing schema.
The Address Resolution Protocol (ARP) is a special protocol designed to map Internet to physical addresses. When a gateway needs to know the physical address for an Internet address of a host known to be on its network, it broadcasts an ARP frame requesting the physical address. The required host replies; the gateway caches the address for future reference.
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p10, 22nd April 2020.
The Address Resolution Protocol (ARP)
ARP is a low-level protocol that hides the underlying physical addressing, permitting one or more Internet addresses to be assigned to each machine. ARP is considered part of the physical network system, not strictly part of the Internet protocols.
Unlike most protocols, ARP does not have a fixed format. Its design permits it to indicate how big its own fields will be, in this case that Ethernet addresses are 6 bytes (octets) long, and Internet addresses 4 bytes long. This permits ARP to be used with arbitrary network addressing schemes.
When making a request, the sender (making the request) also supplies its own Ethernet/Internet address mapping. As all hosts on the Ethernet monitor the broadcast, they can update their mapping tables for future reference (ARP snooping).
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p11, 22nd April 2020.
Configuration of Network Devices
All previous discussion on internetworking has assumed that our computers have been 'up and running', and possessed full knowledge about their networking environment. Where did this knowledge come from?
The standard booting sequence for most operating systems involves the computer's hard-disk (or CD-ROM, flash-memory, ...) providing a short bootstrap program of several hundred bytes, which in turn reads the true operating system code from nominated blocks on permanent media. To configure its network connection, a client host requires (at least):
A reasonable first approach to defining this information is in a configuration file (see our labs' /etc/sysconfig/network*):
DEVICE=eth0 BROADCAST=220.127.116.11 NETMASK=255.255.255.0 IPADDR=18.104.22.168 BOOTPROTO=none GATEWAY=22.214.171.124 GATEWAYDEV=eth0 HOSTNAME=budgie.csse.uwa.edu.au
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p12, 22nd April 2020.
Problems With Static Configuration
There are a number of clear problems with static configuration of network attributes:
A partial solution
The most 'stable' attribute in most networking configurations is the network interface card's MAC address, such as a card's 48-bit Ethernet address. (many new Ethernet cards can change their MAC addresses programmatically - a mixed blessing!)
As with the ARP protocol described earlier, a newly booted client computer can broadcast its Ethernet address via the Reverse Address-Resolution Protocol (RARP).
The client broadcasts its RARP request, and any host acting as a RARP server may reply with the client's allocated IP address.
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p13, 22nd April 2020.
The Bootstrap Protocol (BOOTP)
Booting over a NetworkAn additional feature of BOOTP is its support of providing a computer's (or any 'dumber' device's) operating system's image:
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p14, 22nd April 2020.
Dynamic Host Configuration Protocol (DHCP)
DHCP's purpose is to enable individual computers on an IP network to extract their configurations from a server (the 'DHCP server').
In general, the servers will have no static information about the individual client computers until information is requested. Responses to each client will then be generated dynamically.
The overall purpose of this is to reduce the work necessary to administer a large (often dynamic) IP-based network.
The most significant piece of information distributed in this manner is the IP address.
DHCP is based on BOOTP and maintains some backward compatibility. The main difference is that BOOTP was designed for manual pre-configuration of the host information in a server database, while DHCP allows for dynamic allocation of network addresses and configurations to newly attached hosts. Additionally, DHCP allows for recovery and reallocation of network addresses through a leasing mechanism.
An Example DHCP Configuration
The DHCP daemon (process) is typically provided with the name of a network interface (such as eth0) so that it knows from where to accept broadcast requests. The DHCP daemon reads information from a configuration file storing the 'public' information for clients. To provide a truly dynamic configuration, we also need to provide a range of IP addresses given to clients. We can also use DHCP to provide fixed configuration information, based on the Ethernet (MAC) address of the arriving request: Examples include:
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p15, 22nd April 2020.
The TCP/IP Protocol DependenciesThe many Internet protocols naturally depend on each other, that is they demand the services provided by other protocols. For example, the remote login protocol (rlogin) demands that it operates over a reliable stream protocol (TCP), delivered to a host on a network (IP) which provides flow control (ICMP).
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p16, 22nd April 2020.
Internet Protocol (IP) Datagrams
The Internet Protocol (IP) provides an unreliable, best-effort, connectionless, packet delivery system.
In this unit we will initially be discussing Internet Protocol version 4 (IP v4) RFC-791.
Internet datagrams resemble 'standard' physical-layer frames, but are designed to be encapsulated within the normal network framing schema. Hence, Internet datagrams are said to run on top of traditional networks.
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p17, 22nd April 2020.
Internet Control Message Protocol (ICMP)
ICMP allows gateways and hosts to exchange bootstrap and error information. Gateways send ICMP datagrams when they cannot deliver a datagram, or to direct hosts to use another gateway. Hosts send ICMP datagrams to test the 'liveness' of their network.
As an example, the Unix program ping sends ICMP echo messages to a specified machine. Upon receipt of the echo request, the destination returns an ICMP echo reply. ping hence both checks that a host is up and that the path to a host is viable.
prompt> /bin/ping elvis elvis is alive prompt> time /bin/ping sophia.inria.fr sophia.inria.fr is alive 3.006s real 0.040s usr 0.060s sys prompt> time /bin/ping sophia.inria.fr sophia.inria.fr is alive 0.591s real 0.020s usr 0.090s sys
If a gateway must discard a datagram due to lack of resources it sends a source quench to the datagram's sender. If a datagram cannot be delivered because a host is down or no route exists, a ICMP destination unreachable datagram is generated.
The TCP/IP Protocol suite defines over 15 (in-use) ICMP error message types, including:
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p18, 22nd April 2020.
Interesting Uses For ICMP - TracerouteTraceroute utilizes the IP protocol `time to live' field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to some host:
CITS3002 Computer Networks, Lecture 7, The TCP/IP protocol suite, p19, 22nd April 2020.