Introduction to Network and
Protocol
- History,
Standards, Design Principles
- Network Component
and Addressing.
References
- Leon-Garcia. Widjaja,
"Communication Networks: Fundamental Concepts and Key Architectures,"
McGraw-Hill, 2000.
- Douglas Comer,
Introduction with TCP/IP: Principles, Protocols, and Architectures," 4th
Edition, Prentice-Hall, 2000.
- Andrew S. Tanenbaum, Computer Networks , Prentice Hall, 3rd
ed., 1996.
- Larry L. Peterson & Bruce S. Davie, Computer Networks: a system
approach , 2nd Edition, Morgan Kaufmann, 2000.
- Internet Drafts and Notes documents available at
http://www.isi.edu/publications.html
What is a network
(net)?
Network: (Webster Dictionary) a system of computers, terminals, and
databases connected by communications lines.
Net: a short name for network.
Networking: the process of establishing or using a computer
network.
Switching node: system that connects with multiple communication lines,
receives information on one line and sends it over another
line.
Communication line (communication links, transmission line): line that
connects with several end points, takes information from one end points and
delivers to other end point(s).
Telecommunications
Networks
Today's Video
Networks
Computer Networks
Computer networks: Networks that connect computers and exchange
data.
Local Area Network (LAN): a private-owned network within a single
building or campus of up to a few kilometer in size
(Tanenbaum).
Metropolitan Area Network (MAN): a network that connects computers that
are geographically separated in a city or metropolitan area.
Wide Area Network (WAN): a network that spans a large geographical area,
often a country or continent, and connects LANs or MANs. It consists of
transmission line (called circuits, channels, or trunks) and switching elements
(called switching nodes, data switching exchanges or router).
Host=End system: computer that runs users' application
programs.
Backbone network: a network with purpose of connecting other
networks.
What is a protocol?
Protocol: Which one is the right definition?
_: The name of a movie starring
Goldie Hawn.
_: The
rule implemented by a device driver to allow cpu to talk to a
peripheral.
_: A set
of rules for achieving a global objective exercised by geographically
distributed nodes. (Robert Gallager, Prof. EE MIT)
Computer networks implement very complex functions for sophisticated
services.
Protocol layer: To reduce the design complexity, the network functions
are organized as a series of layers or levels. A higher layer utilizes the
service provided by the lower layer and provides the "enhanced" service to the
layer above.
Protocol entity: The hardware or software module in a computer that
implement the functions of a protocol layer.
Protocol peers: The set of protocol entities that comprising the
corresponding layer on different machines (typically
geographically-separated).
Network architecture: A set of layers and protocols implemented by a
network.
Protocol stack: the list of protocols, one per layer, used by a
network.
Open System Interconnection (OSI)
Reference Model
Served as a framework
for communications architecture specification and for specifying protocol
standards
Example: A UNIX Workstation Network
Interface
Protocol Data Unit
Encapsulation/Decapsulation
Example of PDU
Encapsulation
Messages Generated for
a Simple Web Access
It takes a lot of messages and involves with many
protocols to achieve a simple web access.
http://cs.uccs.edu/~cs522/ethereal/ethsum1.txt
contains the message sequence generated by typing "cs.uccs.edu/~cs522/" on a
browser on wait.uccs.edu.
Wait is a Dell
machine with one of its NIC (network inteface card) configured with the IP
address of 128.198.192.202 and it is on subnet
128.198.192/21.
The NIC card's burn in Ethernet address or MAC
address is 00:a0:24:56:9c:33. (hexadecimal representation).
The browser
application has a socket connection with port number=1089.
- First, the
browser parses the url entered by the user. Get the cs.uccs.edu as domain
name. To send HTTP request message to the cs.uccs.edu. It needs the IP address
of cs.uccs.edu to fill in the source IP address of IP header for every packet
sent to cs.uccs.edu.
- To find out
the IP address of cs.uccs.edu, it uses the DNS network services.
- The DNS query
(with content such as "what is the IP address of cs.uccs.edu?") is put in UDP
segment and the destination IP address of the IP packet carrying this UDP
segment is set to 128.198.1.250. From the system configuration, the machine knows
the destination IP address of the UDP packet is 128.198.1.250 (DNS server IP).
- The IP packet
is sent to the IP module for routing.
- The IP module
matches the routing table and found that 128.198.1.250 is not a host in local
subnet. Only the default gateway entry is matched.
- It realizes
that the IP packet needs to be sent to default gateway for relaying to the DNS
server.
- Assume that
we do not have arp entry of the default gatewy. We need to send out ARP
request to find the MAC address of the gateway. wait tries to find out the MAC
(Ethernet) address of the gateway/router of the subnet using ARP
protocol.
- The gateway
responds with its MAC address using the ARP protoocl
message.
- Wait then
sends the DNS request to DNS server, ccnucccs.uccs.edu.
- DNS server,
ccnucccs.uccs.edu, replies that the IP address of cs.uccs.edu is
128.198.162.68.
- Wait then
sets up a TCP connection with cs.uccs.edu. It takes three TCP messages,
SYN, SYN/ACK, ACK, called three-way handshake, to establish a TCP
connection.
- Wait then
sends the HTTP request message to cs.uccs.edu. Frame 11.
- cs.uccs.edu
returns the HTML document in the HTTP response message over 10 ethernet
frames. Frames 13,15, 16, 18, 19, 21, 22, 24, 25, 27. wait replies an
ACK every other packets.
- Note that the
~cs522 web page is 12719 byte long. An TCP packet can only carry 1448
byte data. Therefore it takes ceil(12719/1448)=9 addtional frames.
The first frame includes HTTP response header (not part of the 12719
byte HTTP data).
- The
informaton field in Ethernet frame can carry a maximum 1500 bytes data.
However, the IP header takes 20 bytes. The TCP header takes 32
bytes. TCP payload or data field is left with
1500-20-32=1448 bytes to carry the HTTP response.
- The process
of chopping a big message into several smaller packets by the sender is
called segmentation. The reverse process of assembling these fragmented
packets into the original message is called re-assembly.
- Wait's
browser parses the HTML document in HTTP response. Found there are
cubannder.JPG, rocky.mid, marble1.jpg, rainbowan.gif media files needed for
displaying the web page. It needs to go back to the web server at
cs.uccs.edu to retrieve them.
- Wait set up
three additonal TCP connections with port numbers, 1090, 1091, 1092, to
retrieve these four images and mid file. Note that at least packets over
1090 and 1091 interleave, implying that the benefit of concurrent retrieval of
files.
No.
Time
Source
Destination Protocol
Info
4 2.783156
wait.uccs.edu
ff:ff:ff:ff:ff:ff ARP Who
has 128.198.192.1? Tell 128.198.192.202
5 2.783698
cs-old-loadbalancing-router.uccs.edu
wait.uccs.edu
ARP 128.198.192.1 is at 00:50:80:d1:36:00
6 2.783717
wait.uccs.edu
ccnuccs.uccs.edu DNS
Standard query A cs.uccs.edu
7
2.784022 ccnuccs.uccs.edu
wait.uccs.edu
DNS Standard query response A 128.198.162.68
8 2.789416
wait.uccs.edu
cs.uccs.edu
TCP 1089 > www [SYN] Seq=4211769964 Ack=0
Win=32120 Len=0
9
2.789698
cs.uccs.edu
wait.uccs.edu
TCP www > 1089 [SYN, ACK] Seq=4202585076
Ack=4211769965 Win=32120 Len=0
10
2.789737
wait.uccs.edu
cs.uccs.edu
TCP 1089 > www [ACK] Seq=4211769965
Ack=4202585077 Win=32120 Len=0
11
2.790738
wait.uccs.edu
cs.uccs.edu
HTTP GET /~cs522/ HTTP/1.0
12 2.791138
cs.uccs.edu
wait.uccs.edu
TCP www > 1089 [ACK] Seq=4202585077
Ack=4211770251 Win=31856 Len=0
13
2.793790
cs.uccs.edu
wait.uccs.edu
HTTP HTTP/1.1 200 OK
38 2.834564
wait.uccs.edu
cs.uccs.edu
HTTP GET /~cs522/cubannder.JPG HTTP/1.0
39 2.835028
cs.uccs.edu
wait.uccs.edu
TCP www > 1092 [ACK] Seq=4205667534
Ack=4214663002 Win=31856 Len=0
40
2.836822
cs.uccs.edu
wait.uccs.edu
HTTP HTTP/1.1 200 OK
41 2.837067
wait.uccs.edu
cs.uccs.edu
TCP 1092 > www [ACK] Seq=4214663002
Ack=4205668982 Win=31856 Len=0
42
2.837050
cs.uccs.edu
wait.uccs.edu
HTTP Continuation
73 2.846638
wait.uccs.edu
cs.uccs.edu
HTTP GET /~cs522/rocky.mid HTTP/1.0
74 2.847026
cs.uccs.edu
wait.uccs.edu
TCP www > 1091 [ACK] Seq=4200573118
Ack=4209807636 Win=31856 Len=0
75
2.847940
wait.uccs.edu
cs.uccs.edu
HTTP GET /~cs522/marble1.jpg HTTP/1.0
76 2.848814
cs.uccs.edu
wait.uccs.edu
HTTP HTTP/1.1 200 OK
Defined in [Cerf and Kahn 1974], used in ARPANET, DoD research
network.
Consist of only four layers: applications, transport, network, and
host-network.
TCP: Transmission Control Protocol, a reliable transport layer protocol
that guarantees the message arrival and its arriving
sequence.
UDP: User Datagram Protocol, a simplified transport layer protocol that
emphasize the prompt delivery instead of guaranteed
delivery.
IP: Internet Protocol, deliver packet from one machine to the
other.
TELNET: virtual terminal protocol for login into a machine in the
net.
FTP: File Transfer Protocol.
SMTP: Simple Mail Transfer Protocol, for email.
DNS: Domain Name Service, mapping host names into network
addresses.
Internet, internet, intranet,
extranet
(the) Internet :
collection of networks and routers that uses TCP/IP protocol suite to form a
single, cooperative virtual network -- Douglas Comer.
intranet:
interconnected LANs within an organization.
- private
- may be connected
to the Internet, often by firewall
extranet: an outside
network connected to an intranet.
firewall: router placed
between intranet and extranet, restricting packet flows to provide
security.
A Short History of Internet
1968: Advanced Research Projects Agency Network(ARPAnet) awarded to Bolt
Beranek and Newman (BBN).
1969: ARPAnet has 4 nodes (UCLA, SRI, UCSB, U. Utah) connected by
Interface Message Processors (IMPs) and 56 kbps lines.
1973: First satellite link from California to
Hawaii.
1973: First international connections to ARPAnet from England and
Norway.
1979: ARPAnet about 100 nodes.
1980's: DARPA funded Berkeley Unix with TCP/IP
proliferation of LANs: Ethernet and Token Ring
1986: NSFNET created with 56 kbps backbone connected super computer
centers and regional network
1989: Internet passes 100,000 nodes.
first proposal fro
World-Wide-Web
NSFNET
upgrade to T1 (1.544Mbps)
Regional Data Network: Colorado SuperNet
Internet Development in 1990's
1990:
Original ARPAnet disbanded
1991:
Gopher released by U. Minnesota
1992:
NSFNET backbone upgraded to T3 (44.736Mbps)
1992
March: First Internet Multicast backBONE (MBONE) audio Multicast
1992
November: First MBONE video multicast
1993
February: NCAS Mosaic released
1993 June:
Internet reaches 1,776,000 hosts
1995 April
30: NSFNET backbone disbanded.
1996 very
high speed Backbone Network Service (vBNS) network (155 Mbps ATM) replace
NSFNET connecting Super Computer Centers (SCC).
1997
February: vBNS upgrades to 622 Mbps.
Internet Host Growth (Latest Survey Results January 2000
)
source: http://www.nw.com/
Number of Hosts and Domains advertised in the DNS
[* estimated by pinging 1% of all
hosts]
Host Distribution by Top-Level Domain Name (7/98)
source: http://www.nw.com
Rapid Growth of WWW Service
INTERNET USE LEVELING OFF
The number of new Internet users appears to be stabilizing, with
growth
rates hovering at less than 5%, according to a demographics study
released
last week by the Georgia Institute of Technology. According to
Tech's
survey, the number of users is now around 30 million -- that's a good
bit
lower than Nielsen's recent estimate of 50 million. "What brought
people
online were all the different service providers really gearing up," says
a
Tech researcher. "We don't know whether it will pick up again.
There
hasn't been that much change of the last three
surveys."
(Tampa Tribune 16 Jun 97)
Who run Internet?
- "Nobody?"
- Standards: Internet Engineering Task Force (IETF)
- Names: Internic (US), RIPE (Europe)
- IP Numbers: Internet Assigned Numbers Authority (IANA)
- Operational coordination: Internet Engineering Planning Group
(IEPG)
- Networks: Internet Service Providers (ISPs), Network Access Points
(NAPs)
- Fiber: Telephone companies (mostly)
- Content: Companies, universities, individuals
NAP: Internet Exchange Point where ISP comes to
exchange their customer's traffic.
There are four
NAPs:
- San Francisco NAP,
Pacific Bell
- Chicago NAP,
Ameritech and Bellcore
- New York NAP,
Sprint
- Washington DC NAP,
MFS
Network Access and
Interconnection
NEW ACCESS FEES WILL HASTEN ISP
SHAKEOUT
UUNet's decision to start charging smaller Internet service providers
for
use of its backbone network will accelerate the ISP shakeout that
industry
analysts have been predicting for some time. "The window of opportunity
is
closing for smaller ISPs," says a senior analyst with
Jupiter
Communications. Under the new deal, service providers that don't qualify
as
UUNet "peers" -- those whose network runs at a rate slower than 45-Mbps
and
can't connect into the backbone at four or more locations -- will pay
$2,000
a month for a T1 connection and $6,000 a month for a fractional
T3
connection. "We are not abandoning peering," says UUNet's VP of
marketing
and business development. "This monthly charge is not going to break
any
ISP, unless they didn't have a viable business plan in the first place."
A
Zona Research analyst says, "Consolidation is coming and there will
be
hundreds, not thousands, of ISPs."
(Investor's Business Daily 16 Jun 97)
Ameritech NAP
Architecture
Who pays for the Internet?
NAP Price and Availability
@Pacbell
"Our NAPs are located in the Bay Area (Service Area 1) and the LA area
(Service Area 5)
Customer sites outside of this area must establish interLATA service
through an
Pacific Bell will work with any interexchange carrier of the NAP
customer's choice.
NAP access and port charges are covered under a Market Trial granted by
the California Public Utilities Commission.
DS3 (45 Mbps) $5,000 (installation), $4,850 (monthly
service)
OC3c (155 Mbps) $8,500 (installation), $7,899 (monthly
service)"
very high speed Backbone Network
Services (vBNS)
Internet
Addresses and Domain Names
The Internet address are expressed in (4 number) dotted
notation.
Machine hpcslb.col.hp.com has 15.19.2.160 as its internet
address.
Is it belong to a class A
network? What is its netid value? hostid value?
Machine sanluis.uccs.edu has 128.198.2.62 as its internet
address. Is it belong to a class A
network? What is its netid value? hostid value? Machine
cli.com has 192.31.85.1 as its internet address.
Is it belong to a class A network? What is its netid value? hostid
value?
rfc1375.txt discusses the limitation of IP address formats & the
growing demand.
IP Address Classes
- Class D
addresses are called call IP multicast addresses or group addresses that are
dynamically assigned.
- The original
policy was to allow a C-class network address (256 IP addresses) to a domain
name applicant. With explosion of applications, there is a concern of IP
addresses is running out.
How to Avoid
Shortage of IP addresses
- Four
approaches:
- Extend size of
IP address: The proposed IP protocol (IPv6) will have 128 bits IP
address.
- Allocate network
with IP address ranges that are multiple of class C size instead of a large
class B size.
Require subnet mask and a network address to idenfiy this type
of network.
This is so called Classless and Subnet address
concept.
- Monitor the usage and take back
if not used.
- Don't allocate
if we do not have to.
- It turns out that
many domain names are hosted by ISP's and shared their IP addresses. There is
no need to give out C-class address individual. The new policy separates the
application of IP address and that of domain name. The IP addresses are not
running out in near future.
- Network Solutions
Inc. was trusted by NSF for assigning domain names. But they are not doing a
good job. There are proposals to allow multiple companies to assign domain
name.
- Most ISP or web
hosting companies has web pages that facilitate the search of avavailability
of domain name. Check out Tabnet web page
for searching the domain names.
- The Domain Name is picked by the organization.
- A domain name is simply a character string that maps to the Internet
address. It is easier for humans to remember than a unique set of
numbers.
Classless Address Notation
- We use the dot notation followed
by "/n" to describe a subnet address. Here n is the number of leading bits
that specifies the network address.
- For example, 128.198.162.0/21 is
used to describe the subnet used by CS department.
128.198.167.254 is used as gateway
(router) IP addresss for the subnet. This subnet has IP addresses from
128.198.160.0 to 128.198.167.255. Typically, the last one is the
broadcast address and the first one is reserved for the net address. It
can have 2^(32-21)-3=2045 IP address to assign to individual NIC (Network
Interface Card) cards. .
- cs-content-switch1-router.uccs.edu
128.198.60.1 # is the gateway for subnet
128.198.60.0/26
#
with 26 bits as subnet 's network address
#
machines address from (128.198.60.1 to 128.198.60.62)
#
Here 128.198.60.1 is assigned to the router connected UCCS backbone
network.
#
128.198.60.63 is the broadcast address, used to broadcast messages to the
whole subnet.
#
This subnet can have 2^(32-26)-3=61 IP addresses assigned to individual NIC
cards.
#
- cs-content-switch1-router.uccs.edu
128.198.60.1 # is the gateway for this subnet
128.198.60.0/26
#
with 26 bits as subnet network address
#
machines address from (128.198.60.1 to 128.198.60.64)
#
Here 60.1 is the router connected UCCS backbone network
- We can also use an IP address and
a 4 byte net mask pattern to specify a network.
For example, by typing the
"/sbin/route" or "netstat -rn" command we can see the routing table
entries on one's machine:
cs.uccs.edu> /sbin/route
Kernel IP routing table
Destination
Gateway
Genmask Flags Metric
Ref Use Iface
cs.uccs.edu
*
255.255.255.255 UH 0
0 0 eth0
128.198.160.0
*
255.255.248.0 U
0 0 0
eth0
127.0.0.0
*
255.0.0.0 U
0 0 0
lo
default
128.198.167.254 0.0.0.0
UG 0
0 0 eth0
- The network destination
128.198.160.0 and GenMask (netmask) 255.255.248.0 specifies a network
with first 21 bit of 128.198.160.0 as network address pattern.
128.198.160.0/24 specifies the same subnet.
- The above routing table says that
for the packet to any machine in 128.198.160.0.0/21 subnet (other then
itself), send it over the eth0 interface with 128.198.162.68
(cs.uccs.edu).
- If 255.255.255.192 is the net
mask, How many IP addresses can be assigned to individual NIC cards of the
subnet?
- hierarchical, dot-separated names
- multi-level delegation, each organization can assign names (prefix to
its assigned organization domain name) to its constituents.
- by country or by type of organization (in us)
- needs to be overhauled (63% of all domains are .com)
- Top-level domains:2 letters: countries; 3 letters: type of
organization
Name and Address Mapping
- Host domain name are mapped to IP address by Domain Name Service(DNS).
This could be a many-to-many mapping.
- Both www.cs.uccs.edu and owl.uccs.edu are mapped to
128.198.2.69
- www.cs.uccs.edu may be mapped to machine 128.198.8.250 in the
future.
- When we send IP packet out, we need IP address in the packet
header.
- Domain Name Servers (more than two in a domain) provide DNS
service.
- Java applet security problem related to DNS.
- IP address mapped to Ethernet card MAC address via ARP protocol,
one-to-one.
Domain Name Resolution
- Hierarchy of redundant domain name servers with time-limited
cache
- redundant to improve reliability and efficiency
- time-limited cache to avoid stale data.
- Each server know the (9) root servers
- Each root servers know at least two DNS servers in a
domain.
- Each host can be configured to query more than one DNS
server.
- better know which one is faster and less congested.
Internet Protocol Zoo
Protocol Taxonomy
- Data Link Layer Protocol: Point-to-Point (PTP), Serial Line Interface
(SLIP)
- Network layer data: IPv4, IPv6,
- Network layer routing: ICMP, IGMP, OSPF, PIM
- Transport layer: TCP, UDP.
- Information access: HTTP, FTP, TELNET
- File sharing: NFS, DFS
- Electronic Mail: SMTP, POP
- Real time service: Real-timeTransport Protocol (RTP)
- Time: Network Time Protocol (NTP)
TCP
- Guarantee data delivery
- retransmission data in case of loss
- data are delivered in sending order
- Use sequence number for keeping track of msg sending
status
- Use window concept dynamically adjusting the number of msgs
sent for
- flow control: avoid overruning slow receiver
receiver "advertise" the window
size.
- congestion control: avoid network overload
- Sender probes for available bandwidth:
- slow start: add segment size for each ACK received, which allows
exponentially open the window size
- when msg lost (detected via time-out mechanism), reduce the window
size
- Heavy overhead:
- 20 bytes header
- Connection oriented: requires three-way handshake to establish a
connection; no data sent before that
UDP
- Add "ports" concept to differentiate processes, which use network
services within a host.
- add payload checksum. IP only has header checksum.
- checksum: digit sequence computed from the data for verification
purpose.
- senders compute it and put in a special field typical at the end of a
msg.
- receivers recompute in from the data and compare against the checksum
sent. If they are not the same, transmission error is detected.
- Very little overhead: 8 byte header
- For prompt delivery and performance.
- Used by RTP and NFS
- Datagram: data can be sent right away without waiting for a connection
to be setup. It is also called connection less.
- Does not guarantee delivery of data.
Simple Web
Access Example: Step1
- Someone requests a document using a browser (Web Client) on a computer
connected to Internet
- Type in a URL, http://www.netcraft.co.uk/Survey/
- The browser parses the URL, obtains domain name of url,
www.netcraft.co.uk
- Asks Domain Name Server (DNS) for translating the domain name to the
IP adddress
- With IP address, the client computer sets up an HTTP connection to the
server
Simple Web Access Example:
Step2
- Browser sends ASCII characters string to server
GET /survey/
HTTP/1.0
User-agent: Mosaic for X windows/2.4
Accept: text/plain
Accept: text/html
Accept: image/*
- httpd server parses the request according to HTTP
interpret rest of the metainfo
for browser capabilities
retrieve c:/InetPub/wwwroot/survey/default.htm
send information back using HTTP/1.0
format
Simple Web Access Example:
Step3
- Server replies information using HTTP/1.0 format
Server: Microsoft-IIS/2.0
Date: Thu, 22 Jan 1998 17:54:15 GMT
Last-Modified: Mon, 18 Nov 1996 08:38:10 GMT
<!doctype html public "-//IETF//DTD HTML//EN">
- Server close file, network connection, wait for next
request