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