The Internet and TCP/IP Phones OFF Please Brian Bramer Home: www.cse.dmu.ac.uk/~bb

Phones OFF Please
The Internet and TCP/IP
Brian Bramer
Home: www.cse.dmu.ac.uk/~bb
Email: [email protected]
Topics:
1.
The Evolution of TCP/IP
2.
TCP/IP Protocol Architecture
3.
The Internet Protocol Layer
3.1 IP Addresses
3.1.1 The Subnet Mask
3.2 DHCP
3.3 IP Domains and DNS
3.4 Problems with IP addressing
4.
TCP and UDP Protocols
4.1 Client and Server Ports
5.
TCP/IP Applications
6.
NAT
Appendix A- The IP Datagram Packet
Appendix B- Routing IP Datagram
1. The Evolution of TCP/IP (and the Internet)
• Problem:
• organisations had serious problems transferring information between computers.
• i.e. incompatible operating systems, hardware, character codes, number systems,
etc.
• and resource sharing.
• In summary:
• In 1960’s U.S. DoD funded an experiment to interconnect research sites.
• December 1968 ARPA awarded a contract to design and deploy a
packet switching network.
• September 1969, the first node at UCLA.
• End of 1969 - four nodes installed.
• 1971 - ARPANET spanned continental U.S.
• 1973 - had connections to Europe.
• ARPANET developed X.25.
• 1974 TCP/IP proposed & implemented.
• 1983, the US DoD mandated that all of their computer systems
would use the TCP/IP.
• 1983, ARPANET split into two components:
• ARPANET - interconnects research! development and academic
sites.
• MILNET - carries military traffic and became part of the Defence
Data Network.
•1983 - University of California’s 4.2BSD UNIX included TCP/IP.
• 1986 - the NSF built a backbone network to interconnect four NSF-funded
regional supercomputer centres and the National Centre for Atmospheric
Research (NeAR).
• NSFNET was originally intended as a backbone for other networks and
limited traffic to non-commercial use.
• Thus
• ARPANET started with four nodes in 1969.
• 600 nodes before it was split in 1983.
• 160000 in 1989.
• 19500000 in 1997.
• today is unknown but is in 100’s of millions.
2. The TCP/IP Protocol Architecture
• Communication over Internet is mostly TCP/IP (Transmission Control
Protocol/Internet protocol).
• TCP/IP "stack" is software which allows applications to communicate
over network.
• TCP/IP support is either built into OS (e.g. UNIX) or available as an add-on.
• Application is what the users see, e.g. programs such as ftp,
email, web browser, telnet, etc.
•TCP (transmission control protocol)
• takes messages from the application
• breaks them up into packets
• sends them to the remote system
• where the message is put back together and passed to the application
• TCP corrects for errors in transmission (e.g. due to noise) and looks
after flow control (a slow system talking to a fast one).
• IP (Internet protocol) looks after addressing of machines and routing
the packets over the underlying network.
• Low level stuff is the Network Interface Layer connecting to
the underlying network(s).
• TCP/IP was developed by the USA Dept of Defence to operate over
multiple unreliable local or wide area networks connecting many different
types of computer systems.
3 The Internet Protocol Layer
• IP provides services that are roughly equivalent to the OSI Network Layer.
• provides a datagram (connectionless) transport service across the network.
• sometimes referred to as unreliable because does not guarantee delivery nor
notify the end host system about packets lost, i.e. TCP/IP was assumed to
run over unreliable networks.
• IP datagrams contain a message, or one fragment of a message, that may be
up to 65,535 bytes (octets) in length.
• IP does not provide a mechanism for flow control (the TCP layer can
provide this if necessary).
• Working:
• two host computers communicating using TCP/IP via two nodes, e.g. routers.
• e.g. a user on a home network communicating with it’s ISP server.
• Host 1 is communicates via Subnet 1 (home network) to Gateway 1
(router/modem).
• Gateway 1 communicates via subnet 2 (telephone lines) with ISP’s
modem Gateway2.
• Gateway 2 communicates with Host 2 via the ISP’s internal network Subnet 3.
• IP interfaces with each subnet in turn using it to transmit datagrams (DG) to the
next node (using whatever physical, datalink and network layer that subnet has)
until they reach the destination.
• The TCP layer can create a virtual circuit (correcting for errors, flow control, etc.)
between the hosts for the applications which exchange messages.
3.1 IP Addresses
• Every machine requires a unique address so it can be identified and
packets routed to it.
• IP addresses are 32 bits in length typically written as a sequence of four
8-bit numbers (range 0 to 255) e.g. 199.182.20.17.
• IP addresses are hierarchical for routing purposes and are subdivided into
two subfields:
• Network Identifier (NET ID) subfield identifies the TCP/IP sub-network
and is used for high-level routing between networks
• as the country code, city code, or area code is used in the telephone network.
• The Host Identifier (HOST_ID) subfield indicates the specific host
within a sub-network.
• To accommodate different size networks, IP defines several address
classes, A, B, C D and E.
• Class A intended for very large networks and can address up to
16,777,216 (224) hosts/network.
• The first digit of a Class A addresses will be a number
between 1 and 126.
• Relatively few Class A addresses have been assigned;
e.g. 9.0.0.0 (IBM)
• Class B intended for moderate sized networks -can address up
to 65,536 (216) hosts/network.
• The first digit of a Class B address will be a number
between 128 and 191, e.g. DMU
• Class C intended for small networks and can address only up to 256
hosts per network.
• The first digit of a Class C address will be a number between 192 and 223.
• Most addresses assigned to networks today are Class C
• The remaining two address classes are used for special functions only and are
not commonly assigned to individual hosts.
3.1.1 The subnet mask
• An additional addressing tool is the subnet mask which is used to indicate to
applications the portion of the address that identifies the network from the
portion that identifies the individual hosts.
• The subnet mask is written in dotted decimal and the number of is indicates
the significant NET_ID bits.
• A Class B address would have a subnet mask of 255.255.0.0 since the
first l6 bits are NET_ID.
3.2 DHCP (Dynamic Host Configuration Protocol)
• A machine can have a static IP address which is the same each time it
connects or a dynamic address which is assigned when it connects to the
Internet (and can be different each time).
• DHCP is the protocol for assigning dynamic IP addresses – the ISP has a
range of IP addresses available which are assigned when devices connect and
become free on disconnection.
• Machines permanently (e.g. DMU labs) attached to TCP/IP network are
permanently allocated an IP address by the network manager.
• When you dial-in from home to access the Internet via ISP Dial-in service the
IP address is assigned by the ISP’s DHCP server:
• the server has a number of addresses available for dial-in clients
and assigns the next free one at disconnection the IP address is then
available for another client
• Some ISPs offer static IP address to broadband users, e.g. if you runs
servers on your home PC.
3.3 IP Domains and Host Names
• Most IP hosts have both a numeric IP address and a name.
• Internet hosts use a hierarchical naming structure comprising a top-level
domain (TLD), domain and subdomain (optional), and host name
• e.g. www.dmu.ac.uk = 146.227.1.23
• The domain name structure is best read from right-to-left, Internet host names
end with a top- level domain name.
3.3.1 Domain Name Servers (DNS)
• Domain names are convenient for people, however, the name must be translated
back to a numeric address for routing purposes:
• names and numbers are stored by a "domain name server" (DNS)
• Client programs may query the DNS to find a number before making a
connection, e.g. UNIX nslookup command
• e.g. www.dmu.ac.uk = 146.227.1.23
3.4 Problems with IP addressing and IPv6
• Problems with the current IP addressing (called IPv4) based on a 32-bit number:
• Exhaustion of address space – the Internet is running out of IP addresses.
• Poor routing ability IPv4 - addresses bear no relation to physical location,
making routing difficult and creating large routing tables
• Limited support for multicast – Ipv4 has class D which is very limited for
commercial applications
• Inefficient/inflexible header – all IP packets carry the same header
overhead no matter what their requirements are.
• IPv6 has a 128 bit address space which is usually written as eight
16-bit numbers
• e.g., FEDC:BA98:7654:3210:FEDC:BA98:7654:3210.
• four times the number of bits (128 vs. 32) i.e.340,282,366,920,938,463,
463,374,607,431,768,211,456
• In addition to extended addressing IPv6 offers
• improved security: encrypting along with authentication and security headers.
• Improved multicasting
• sender and a receiver to establish a high-quality, high-bandwidth secure paths.
4 The Transport Layer – TCP and UDP
• The TCP/IP protocol suite comprises two protocols that correspond roughly to
the OSI Transport and Session Layers;
• TCP (Transmission Control Protocol) provides a virtual circuit
(connection-oriented) service.
• TCP includes rules for formatting messages, establishing and terminating virtual
circuits, sequencing, flow control, and error correction.
• Most of the applications in the TCP/IP suite use the TCP reliable transport.
• UDP provides an end-to-end datagram (connectionless) service.
• Some applications, such as those that involve a simple query and response,
are better suited to the datagram service of UDP because there is no time lost to
virtual circuit establishment and termination.
4.1 Clients and servers and TCP and UDP ports
• Consider a server program running on a machine in a TCP/IP network and
providing a service (mail, WWW, etc) to remote clients.
• To send a message to the server (e.g. to collect email) the client has to send a
packet to:
• a particular program, e.g. the email server
• running on a particular machine, e.g. DMU’s email server
• Requirement b) is satisfied by knowing the machine’s Domain Name or IP address,
e.g. DMU’s email server is helios.dmu.ac.uk on IP address 146.227.1.2.
• However, a particular machine may be running several services so how is a packet
delivered to the correct program?
• This achieved by ‘ports’ via which programs communicate.
• When TCP/IP is running on a particular machine TCP and UDP each have 65536
ports numbered 0 to 65535 many of which are reserved for standard services.
• For example, consider a student accessing the DMU web page on
http://www.dmu.ac.uk/
• When a server is started it attaches to a TCP or UDP port, e.g. a
HTTP (WWW) server listens on TCP port 80.
• The student would run a web client program.
• The student would enter the URL http://www.dmu.ac.uk/.
• The web client would contact a DNS server to obtain the webs server’s
IP address; DMU’s web server was running on parkway.dmu.ac.uk with
IP address 146.227.1.23.
• Web client would send a packet to IP address 146.227.1.23 port 80
requesting a web page.
• Packet would specify the clients IP address (e.g. 146.227.23.9) and a spare
port on the client machine (e.g. 5023) for the reply to be sent to – the client
now ‘listens’ on this port
• the web server receives the packet, gets the web page off disk, constructs a
packet and sends it to the client’s IP address and specified port,
e.g. 146.227.23.9 port 5023
• A server program is usually capable of processing requests from many
simultaneous clients.
• Port numbers below 1024 are reserved for ‘standard’ services and many not be
used by users, e.g.
• E-mail - SMPT (you send the email to ) port 25 and POP3 (you get the
email from) port 110
• Remote login (telnet) - port 23
• finger - port 79
• File transfer (FTP) - 20 (FTP data transfer), 21 (FTP control)
In Summary
• Applications and utilities reside in host, or end-communicating, systems.
• TCP provides a reliable, virtual circuit connection between the two hosts.
• UDP provides an end-to-end datagram connection at this layer.
• IP provides a datagram (DG) transport service over any intervening sub-networks,
including local and wide area networks.
• The underlying sub-network may employ nearly any common local or wide area
network technology.
5 TCP/IP Applications
• The Application Layer protocols include:
• Telnet: Short for Telecommunication Network, a virtual terminal protocol
allowing a user logged on to one TCP/IP host to access other hosts on
the network.
• FTP: The File Transfer Protocol allows a user to transfer files between local
and remote host computer.
• SMTP: The Simple Mail Transfer Protocol is the standard protocol for the
exchange of electronic mail.
• HTTP: The Hypertext Transfer Protocol is the basis for exchange of
information over the Internet (WWW).
• Finger: Used to determine the status of other hosts and/or users.
• POP: The Post Office Protocol defines a simple interface between a user’s
mail reader software and an electronic mail server; the current version is POP3.
• DNS: The Domain Name System defines the structure of Internet names and
their association with IP addresses, as well as the association of mail, name,
and other servers with domains.
• SNMP: The Simple Network Management Protocol defines procedures and
management information databases for managing TCP/IP-based network devices.
• Ping: A utility that allows a user at one system to determine the status of other
hosts and the latency in getting a message to that host. Uses ICMP Echo
messages.
• Whois/NICNAME: Utilities that search databases for information about Internet
domain and domain contact information.
• Traceroute: A tool that displays the route that packets will take when travelling
to a remote host.
Common TCP/IP servers attached to their TCP and UDP ports.
7 NAT (Network Address Translation Protocol)
• An organisation may be assigned one IP address (or a small number) yet have many
machines, e.g. an domestic ADSL line is assigned one IP address yet a house may
have four or five PCs.
• NAT is an Internet standard that enables a LAN to use one set of IP addresses for
internal traffic and a second set of addresses for external traffic.
• A NAT box located where the LAN meets the Internet makes all necessary IP
address translations.
• For example, IP addresses in the range 192.168.0.1 to 192.168.255.255 (65536
addresses) are assigned for internal network use and may not appear on the
internet itself.
• When an outgoing packet arrives at the NAT:
• the source IP address (say 192.168.0.4) is replaced by the
organisations true IP address
• the source port (say 5000) is replaced by an index (say 1025) into a table in
the router and the source IP address and port are stored into the table
• The packet is then sent to the Internet.
• When an incoming packet is received by the NAT:
• the destination port (1025) is extracted and used as an index into the table
• the local IP address (192.168.0.4) and port (5000) are extracted and put
into the packet
• the packet is sent to the correct process on the correct local machine.
• Because internal IP addresses are hidden NAT also provides a type of firewall in
that unsolicited packets arriving at the NAT are rejected (in a secure environment
additional firewalls should be implemented).
• The exception to this is when machines on the internal network run servers which
must be accessed from outside.
• Port Redirection is used which will pass packets for a particular destination port to
a specified machine on the network, e.g. if 192.168.0.4 is running a HTTP server
(WWW) packets arriving at the NAT for port 80 will be sent to port 80
on 192.168.0.4.
• In addition NAT helps with the problem of IPv4’s exhaustion of address space by
allowing a number of machines to use one (or a smaller number) of IP addresses.
Appendix A The IP datagram packet
0
4
8
16
24
Version
Header lgth
Service Type
IP version number used
Expressed in 32 bit units What quality of service
is required?
32
Total Length
Of the entire
datagram
Identification
Flags e.g.
Fragment Offset
From which datagram does this
fragment come?
'don't cut me up!',
Position of this fragments
data within the data for the
overall datagram
Time to live
or
'There are more fragments on the
way!'
Protocol
Header Checksum
The maximum time, in secs, this Which Transport Layer protocol
datagram is allowed to survive in is involved?
the internet
Source IP address
Destination IP address
IP options (if any)
To enable new ideas to be tested temporarily e.g.
security features, time-stamping etc.
Data
Padding
To protect the header bits.
Data bits are protected by the
Transport Layer error control
mechanism.
Appendix B Routing IP Datagrams
B1. IP address classes
• An IP address allows you to define
• A network id,
• A host id on that network
• The unique address of a host is of the form
• (netid, hostid) or (netid, {sub-netid, hostid})
• An IP address for a host at DMU might be: 146 . 227 . LANx . hosty
• A sender indicates a destination using a (netid, hostid) IP address written into an IP
datagram. The datagram is sent to a router.
• Repeat……
the datagram arrives at a router. The router examines the netid part of the address:
• if
• the netid matches a network currently attached to the router:
• the router encapsulates the packet in the correct frame and adds the
correct hardware address of the destination device. If it doesn't know the
hardware address, it broadcasts an ARP request to find it out;
• the packet is sent over the network to the destination device;
• the destination unwraps the packet and passes it up to TCP running in
the Transport Layer
• else
• the router uses its routing table to determine the next hop;
• the packet is passed to the next router;
Until
the packet arrives at a router at which the netid matches an attached network