COMS/CSEE 4140 Networking Laboratory Salman Abdul Baset Spring 2008 Agenda Administrivia  Introduction to the lab equipment  A simple TCP/IP example  Overview of important networking.

Download Report

Transcript COMS/CSEE 4140 Networking Laboratory Salman Abdul Baset Spring 2008 Agenda Administrivia  Introduction to the lab equipment  A simple TCP/IP example  Overview of important networking.

COMS/CSEE 4140
Networking Laboratory
Salman Abdul Baset
Spring 2008
Agenda
Administrivia
 Introduction to the lab equipment
 A simple TCP/IP example
 Overview of important networking concepts

2
Course overview

Goals




Prerequisites


Gain hands-on experience
Apply and reinforce important networking concepts
and techniques learned in CS4119
No socket programming 
CS4119, ELEN4710, ELEN6761 or equivalent
Organization


Weekly lectures review relevant materials
Weekly labs
3
Materials covered (partial list)

Wide area networks


Internetworking
Static & dynamic routing


RIP, OSPF, BGP
UDP & TCP

LAN switching & bridges

DHCP, NAT, DNS, SNMP
(and various other 3 & 4 letter acronyms )
4
Course staff

Instructor: Salman Abdul Baset


OHs: Tuesday 10am-12pm CEPSR 720/7LW2
Email: [email protected]
TAs
 Jong-Yul Kim




OHs: Friday 10:00am – 12pm CEPSR 721
Email: [email protected]
Ankit Malhotra


OHs: Thursday 10:30am-12:30pm INTEREST Lab
Email: [email protected]
5
Lectures/labs: when and where?

Lectures



When: Mondays: 5:40pm – 6:55pm
Where: CLIC lab (486 CSB)
Labs



When: Meeting times depend on groups
Where: INTEREST lab
Three slots (FCFS policy and/or time conflicts):



Mondays: 7pm-9:30pm
Tuesday: 7pm-9:30pm
Wednesday: 1pm-3:30pm
6
Lab organization

Groups (3 people)



One report per group
Pre-labs and feedback form (optional) to be
completed by each of the students individually
Group selection



Find people that you can work with
Random selection is also a choice 
Email group info by Feb 1st to the instructor
7
Structure of the labs

Each lab has four parts:
1.
2.
3.
4.
Prelab (individual)
Lab session (group)
Lab report (group)
Feedback forms (individual – optional)
8
Bibliography & readings

TextBook
 Mastering Networks: An Internet Lab Manual
by Jorg Liebeherr and Magda El Zarki
ISBN: 0-201-78134-4. Publisher: Addison-Wesley. Copyright: 2004.
Sample Chapters and more info at the authors' Web Site

TCP/IP tutorial and technical overview (IBM Red
Book)
by A.Rodriguez, J. Gatrell, J. Karas, R.Peschke (online)

Reference books




Computer networking: a top-down approach featuring the
Internet by James Kurose and Keith Ross
Cisco essentials book and Cisco web site
Unix man pages & RFCs
Course web site will be populated with FAQ & links
9
Grading scheme

Pre-lab questions: (20%) (individual)

Lab Reports (40%) (group)

Two exams, each 15% (30%) (individual)
 Final exam can be replaced by a group project

Class participation (5%) (individual)
Lab participation (5%) (individual)
(TAs may randomly ask a group member any question related to the lab)
10
Other requirements

CS account


Swipe access





through CRF
MICE Facilities->Card Access->Request Access
Level 6
Sponsor: Salman Baset
End date: May 15, 2008
USB flash drive

One per group
11
Website, discussion board

Website
http://www1.cs.columbia.edu/~salman/4140/

Discussion board, grades, prelab/lab report
submissions
http://courseworks.columbia.edu
12
Agenda
Administrivia
 Introduction to the lab equipment
 A simple TCP/IP example
 Overview of important networking concepts

13
Internet Lab Equipment

4 Cisco 2600 Routers

4 Linux PCs
(Intel Celeron 2GHz, 256MB Ram, 40GB disk, cdrom, floppy,
USB)

2 Ethernet hubs
2x 5-port Hub 3Com OfficeConnect Dual Speed (10/100)
2x 16-port NETGEAR hub

2 monitors, 2 keyboards, 2 mice

1 KVM switch

Cables
14
Internet Lab Equipment
Router 1
Router 2
Router 3
Router 4
PC1
PC2
PC3
PC4
15
Linux PCs

PCs and routers are labeled as:
PC1, PC2, etc, Router1, Router2, etc.

PCs run Linux Fedora Core 5

Each PC has:





a floppy drive,
a cdrom drive,
a serial port,
5x 10/100 Mbps Ethernet
interface cards (NICs) named eth0 – eth4.
2x USB ports
16
Linux PC
17
Cisco Routers



Routers are labeled: Router1, Router2, Router3, Router4.
Routers run Cisco IOS 12.0 or a later version
Each router has:
 a console port
 an auxiliary port
 two 10/100 Mbps Fast Ethernet interfaces
18
Ethernet Hubs

Each hub has 4 or more RJ-45 ports

Ports can operate at 10 Mbps or 100 Mbps
19
Connectors

DB-9 (DE-9) connector
(serial port)
male

PS2 Mini DIN 6

DB-25 connector

DE-15/HD-15
(VGA connector)

RJ-45 connector
female
20
Ethernet Cables




Category 5e cable (4 pairs)
Straight cable
Cross over cable
Automatic roll over NICs
21
Lab Sequence
Core Labs:
Lab 1 Introduction to
the Internet Lab
Lab 2 - Single
Segment IP
Networks
Lab 7 - NAT
and DHCP
Lab 3 - Static
Routing
Lab 4 Dynamic
Routing
Protocols
Lab 5 Transport
Protocols:
UDP and TCP
Lab 8 - Domain
Name System
Lab 9 - SNMP
Lab 10 - IP
Multicast
Advanced Labs:
Lab 6 - LAN
switching
22
Core Labs

Lab 1 – Introduction to the Internet Lab
Overview of the Internet Lab equipment; introduction to
ethereal and tcpdump.

Lab 2 – Single Segment IP Networks
Configuring a network interface for IP networking;
address resolution with ARP;
security problems of common Internet applications.
23
Core Labs (cont.)

Lab 3 – Static routing
IP forwarding and routing between IP networks; setup a Linux PC
and a Cisco router as an IP router; manual configuration of routing
tables.

Lab 4 – Dynamic Routing Protocols
Routing protocols RIP, OSPF and BGP.

Lab 5 – Transport Protocols: UDP and TCP
Data transmissions with TCP and UDP; TCP connection management; TCP
flow control; retransmissions in TCP; TCP congestion control.
24
Advanced Labs
 Lab 6 - LAN switching
LAN switching in Ethernet networks; forwarding of Ethernet frames
between LAN switches/bridges; spanning tree protocol for loop free routing
between interconnected LANs.
 Lab 7 - NAT and DHCP
Setup of a private network; dynamic assignment of IP addresses with
DHCP.
 Lab 8 – Domain Name System
Domain name resolution with DNS; name server hierarchy; setup of a DNS
root server.
 Lab 10 – IP Multicast
Multicast group management with IGMP; IP multicast forwarding;
Multicast routing protocols PIM-SM and PIM-DM.
25
In the Lab:
1.
2.
3.
4.
5.
6.
7.
Submit Prelab through courseworks
Bring USB drive, the lab manual
Reboot Linux PCs
Complete exercises as described in the lab manual
Take measurements as instructed
Save data to the USB drive
Submit lab report through courseworks
26
Additional notes

The equipment of the Internet Lab is not connected to the
Internet. Warning: Do not connect the lab equipment to the
Internet.

Each lab has an anonymous feedback sheet. The feedback is
used to improve the setup and organization of the labs.

Since you have administrative (root) privileges on the Internet
Lab equipment, exercise caution when modifying the
configuration of the Internet Lab equipment.

No eating or drinking in the lab.

Bring your laptops to the lab.
27
Tips for the lab

Ethereal is your best friend in 4140!

Each lab session comprises of several [sometimes
independent] exercises. Discuss with your group
members if you can do the exercise in parallel.

Traffic does not flow!





the power is on?
connected to the correct interface? interface LED?
ethernet wire is behaving correctly?
ARP and routing tables?
are you observing traffic on the correct interface?
28
Agenda
Administrivia
 Introduction to the lab equipment
 A simple TCP/IP example
 Overview of important networking concepts

29
Topology
Web request
Web page
Web client
Web server

A user on host argon.netlab.edu (“Argon”) makes web access to
URL http://neon.netlab.edu/index.html.

What actually happens in the network?
30
HTTP Request and HTTP response
Web server runs an HTTP server program
 HTTP client Web browser runs an HTTP client program
 sends an HTTP request to HTTP server
 HTTP server responds with HTTP response

31
HTTP Request
GET /example.html HTTP/1.1
Accept: image/gif, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: 192.168.123.144
Connection: Keep-Alive
32
HTTP Response
HTTP/1.1 200 OK
Date: Sat, 25 May 2002 21:10:32 GMT
Server: Apache/1.3.19 (Unix)
Last-Modified: Sat, 25 May 2002 20:51:33 GMT
ETag: "56497-51-3ceff955"
Accept-Ranges: bytes
Content-Length: 81
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
<HTML>
<BODY>
<H1>Internet Lab</H1>
Click <a href="http://www.netlab.net/index.html">here</a> for the
Internet Lab webpage.
</BODY>
</HTML>
• How does the HTTP request get from Argon to Neon ?
33
From HTTP to TCP
Argon
Neon
HTTP client
HTTP request / HTTP response
HTTP server
TCP client
TCP connection
TCP server

To send request, HTTP client program establishes an TCP
connection to the HTTP server Neon.

The HTTP server at Neon has a TCP server running
34
Resolving hostnames and port
numbers

Since TCP does not work with hostnames and also would not know how
to find the HTTP server program at Neon, two things must happen:
1. The name “neon.netlab.edu” must be translated into a 32-bit IP
address.
2. The HTTP server at Neon must be identified by a 16-bit port
number.
35
Translating a hostname into an IP
address

The translation of the hostname neon.netlab.edu into an IP address
is done via a database lookup

The distributed database used is called the Domain Name System
(DNS)

All machines on the Internet have an IP address:
argon.netlab.edu
128.143.137.144
neon.netlab.edu
128.143.71.21
36
Finding the port number

Note: Most services on the Internet are reachable via well-known ports.

E.g. HTTP servers on the Internet can be reached at port number “80”.

So: Argon simply knows the port number of the HTTP server at a
remote machine.

On most Unix systems, the well-known ports are listed in a file with
name /etc/services. The well-known port numbers of some of the most
popular services are:
ftp
21
finger 79
telnet
23
http
80
smtp
25
nntp
119
tftp
69
ssh
23
ntp
123
37
Requesting a TCP Connection

The HTTP client at argon.netlab.edu requests the TCP client to establish a
connection to port 80 of the machine with address 128.141.71.21
38
Invoking the IP Protocol



The TCP client at Argon sends a request to establish a connection to port 80 at
Neon
This is done by asking its local IP module to send an IP datagram to
128.143.71.21
(The data portion of the IP datagram contains the request to open a
39
connection)
Sending the IP datagram to an IP
router

Argon (128.143.137.144) can deliver the IP datagram directly to Neon
(128.143.71.21), only if it is on the same local network (“subnet”)

But Argon and Neon are not on the same local network
(Q: How does Argon know this?)

So, Argon sends the IP datagram to its default gateway

The default gateway is an IP router

The default gateway for Argon is Router137.netlab.edu (128.143.137.1).
40
The route from Argon to Neon

Note that the gateway has a different name for each of its interfaces.
41
Finding the MAC address of the
gateway

To send an IP datagram to Router137, Argon puts the IP datagram in an
Ethernet frame, and transmits the frame.

However, Ethernet uses different addresses, so-called Media Access
Control (MAC) addresses (also called: physical address, hardware
address).

Therefore, Argon must first translate the IP address 128.143.137.1 into a
MAC address.

The translation of addressed is performed via the Address Resolution
Protocol (ARP)
42
Address resolution with ARP
43
Invoking the device driver

The IP module at Argon, tells its Ethernet device driver to
send an Ethernet frame to address 00:e0:f9:23:a8:20
44
Sending an Ethernet frame

The Ethernet device driver of Argon sends the Ethernet frame to
the Ethernet network interface card (NIC)

The NIC sends the frame onto the wire
45
Forwarding the IP datagram


The IP router receives the Ethernet frame at interface 128.143.137.1, recovers the
IP datagram and determines that the IP datagram should be forwarded to the
interface with name 128.143.71.1
The IP router determines that it can deliver the IP datagram directly
46
Another lookup of a MAC address

The router needs to find the MAC address of Neon.

Again, ARP is invoked, to translate the IP address of Neon
(128.143.71.21) into the MAC address of neon (00:20:af:03:98:28).
47
Invoking the Device Driver at the
Router

The IP protocol at Router71, tells its Ethernet device driver to send an
Ethernet frame to address 00:20:af:03:98:28
48
Sending another Ethernet frame

The Ethernet device driver of Router71 sends the Ethernet
frame to the Ethernet NIC, which transmits the frame
onto the wire.
49
Data has arrived at Neon

Neon receives the Ethernet frame

The payload of the Ethernet frame is an IP
datagram which is passed to the IP
protocol.

The payload of the IP datagram is a TCP
segment, which is passed to the TCP server
50
Wrapping up the example

Data traverses a sequence of layers

Each layer has protocols to handle the packets
51
Agenda
Administrivia
 Introduction to the lab equipment
 A simple TCP/IP example
 Overview of important networking concepts

52
TCP/IP Suite and OSI Reference
Model
Application
Layer
The TCP/IP protocol stack does not
define the lower layers of a complete
protocol stack
Application
Layer
Transport
Layer
Network
Layer
(Data) Link
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
(Data) Link
Layer
Physical
Layer
TCP/IP Suite
OSI
Reference
Model 53
Functions of the Layers


Data Link Layer:

Service:

Functions:
Network Layer:



Service:
Functions:
Move packets from source host to destination host
Routing, addressing
Service:
Functions:
Delivery of data between hosts
Connection establishment/termination, error
control, flow control
Transport Layer:



Reliable transfer of frames over a link
Media Access Control on a LAN
Framing, media access control, error checking
Application Layer:


Service:
HTML
Functions:
Application specific (delivery of email, retrieval of
documents, reliable transfer of file)
Application specific
54
Assignment of Protocols to Layers
ping
application
HTTP
Telnet
FTP
TCP
DNS
SNMP
Application
Layer
Transport
Layer
UDP
Routing Protocols
ICMP
RIP
IP
IGMP
PIM
Network
Layer
OSPF
DHCP
ARP
Ethernet
Data Link
Layer
55
Network
Interface
Layered Communications

An entity of a particular layer can only
communicate with:
1. a peer layer entity using a common protocol (Peer
Protocol)
2. adjacent layers to provide services and to receive
N+1 Layer Protocol
N+1 Layer
N+1 Layer
services
N+1 Layer
Entity
Entity
layer N+1/N
interface
N Layer
N Layer
Entity
N Layer Protocol
N Layer
Entity
N-1 Layer
Entity
N-1 Layer Protocol
N-1 Layer
Entity
layer N/N-1
interface
N-1 Layer
56
Layered Communications
A layer N+1 entity sees the lower layers only as a
service provider
N+1 Layer
Entity
N+1 Layer Peer Protocol
N+1 Layer
Entity
Indicate
Delivery
Request
Delivery
Service Provider
57
Service Access Points
A service user accesses services of the service
provider at Service Access Points (SAPs)
 A SAP has an address that uniquely identifies
where the service can be accessed

N Layer
Layer-N
Entity
Layer
N-1
SAP
layer N/N-1
service interface
N-1
Layer
Layer- N-1
Entity
58
Exchange of Data


The unit of data send between peer entities is called a
Protocol Data Unit (PDU)
For now, let us think of a PDU as a single packet
A


N Layer
Entity
PDU
(at layer N)
N Layer
Entity
B
Scenario: Layer-N at A sends a layer-N PDU to layer-N
at B
What actually happens:



A’s layer-N passes the PDU to one the SAPs at layer-N-1
Layer-N-1 entity at A constructs its own (layer-N-1) PDU which it sends
to the layer-N-1 entity at B
59
PDU at layer-N-1 = layer-N-1 Header + layer –N PDU
Exchange of Data
A
B
Layer-N
Entity
control
Layer-N PDU and control data is
sent to SAP of Layer-N-1
Layer-N
Entity
N PDU
SAPs
Layer- N-1
Entity
Layer- N-1
Entity
Header
control
N PDU
(of layer N-1)
N PDU
PDU of Layer-N-1
60
Layers in the Example
HTTP
HTTP protocol
HTTP
TCP
TCP protocol
TCP
IP
Ethernet
IP
IP protocol
Ethernet
argon.tcpiplab.edu
128.143.137.144
Ethernet
IP protocol
Ethernet
Ethernet
router71.tcpip- router137.tcpiplab.edu
lab.edu
128.143.137.1
128.143.71.1
00:e0:f9:23:a8:20
IP
Ethernet
neon.tcpip-lab.edu
128.143.71.21
61
Layers in the Example
HTTP
TCP
IP
Frame is an IP
datagram
Ethernet
Send HTTP Request
to neon
Establish a connection to 128.143.71.21 at
port 80Open TCP connection to
128.143.71.21 port 80
IP datagram is a TCP
segment for port 80
Send
IP data-gram
to
Send a datagram (which
contains
a connection
Send IP datagram
to
IP
128.143.71.21
request) to 128.143.71.21
128.143.71.21
Frame is an IP
datagram
Send the datagram to 128.143.137.1
Ethernet
Ethernet
HTTP
TCP
IP
Send the datagram
Ethernet
to 128.143.7.21
argon.tcpipneon.tcpip-lab.edu
router71.tcpip- router137.tcpipSend Ethernet frame
Send Ethernet frame
lab.edu
128.143.71.21
lab.edu
to 00:20:af:03:98:28
to 00:e0:f9:23:a8:20 lab.edu
128.143.137.144
128.143.137.1
128.143.71.1
00:e0:f9:23:a8:20
62
Layers and Services

Service provided by TCP to HTTP:


Service provided by IP to TCP:


unreliable transmission of IP datagrams across an IP
network
Service provided by Ethernet to IP:


reliable transmission of data over a logical connection
transmission of a frame across an Ethernet segment
Other services:


DNS: translation between domain names and IP addresses
ARP: Translation between IP addresses and MAC addresses
63
Encapsulation and Demultiplexing

As data is moving down the protocol stack, each
protocol is adding layer-specific control
information
User data
HTTP
HTTP Header
User data
HTTP Header
User data
TCP
TCP Header
IP
TCP segment
IP Header
Ethernet
TCP Header
HTTP Header
User data
IP datagram
Ethernet
Header
IP Header
TCP Header
HTTP Header
Ethernet frame
User data
Ethernet
Trailer
64
Encapsulation and Demultiplexing
in our Example

Let us look in detail at the Ethernet frame
between Argon and the Router, which contains
the TCP connection request to Neon.

This is the frame in hexadecimal notation.
00e0
4500
8990
0000
05b4
f923
002c
808f
0000
a820
9d08
4715
6002
00a0
4000
065b
2000
2471
8006
0050
598e
e444
8bff
0009
0000
0800
808f
465b
0204
65
Ethereal
View 1:
Summary of
packets
View2:
Details of
packet headers
View 3:
Packet content
in hexadecimal
and ASCII
representation
66
Parsing the information in the
frame
4 bytes
destination address
00:e0:f9:23:a8:20
Ethernet
header
(14 bytes)
source address
0:a0:24:71:e4:44
type
0x0800
version
0x4
IP Header
(20 bytes)
Type of Service/TOS
0x5
0x00
Identification
flags
0x9d08
0102
time-to;ive
protocol
0x80
0x06
cource IP address
128.143.137.144
destination IP address
128.143.71.21
header length
source port number
162710
TCP Header
(24 bytes)
0x6
Ethernet
trailer
(4 bytes)
destination port number
8010
sequence number
0x0009465b
acknowledgement number
0x00000000
flags
0000102
unused
0000002
TCP checksum
0x598e
option type
option length
0x02
0x04
header length
total length (in bytes)
0x002c
fragment offset
00000000000002
header checksum
0x8bff
window size
819210
urgent pointer
0x0000
maximum segment size
146010
CRC
67
Encapsulation and Demultiplexing
6 bytes
destination address
4 bytes
source address
type
Ethernet Header
CRC
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
68
Encapsulation and Demultiplexing:
Ethernet Header
6 bytes
00:e0:f9:23:a8:20
4 bytes
0:a0:24:71:e4:44
0x0800
Ethernet Header
CRC
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
69
Encapsulation and Demultiplexing:
IP Header
32 bits
version
(4 bits)
header
length
DS
flags
(3 bits)
Identification (16 bits)
TTL Time-to-Live
(8 bits)
Total Length (in bytes)
(16 bits)
ECN
Protocol
(8 bits)
Fragment Offset (13 bits)
Header Checksum (16 bits)
Source IP address (32 bits)
Destination IP address (32 bits)
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
70
Encapsulation and Demultiplexing:
IP Header
32 bits
0x4
0x5
0x0
0x0
9d08
12810
4410
0102
00000000000002
0x06
8bff
128.143.137.144
128.143.71.21
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
71
Encapsulation and Demultiplexing:
TCP Header
32 bits
Source Port Number
Destination Port Number
Sequence number (32 bits)
Acknowledgement number (32 bits)
header
length
0
Flags
TCP checksum
option
type
length
window size
urgent pointer
Max. segment size
Option:
maximum
segment size
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
72
Encapsulation and Demultiplexing:
TCP Header
32 bits
162710
8010
60783510
010
610
0000002
0000102
0x598e
210
Ethernet Header
IP Header
819210
00002
410
TCP Header
146010
Application data
Ethernet Trailer
Ethernet frame
73
Encapsulation and Demultiplexing:
Application data
No Application Data
in this frame
Ethernet Header
IP Header
TCP Header
Application data
Ethernet Trailer
Ethernet frame
74
Different Views of Networking

Different Layers of the protocol stack have a
different view of the network. This is HTTP’s and
TCP’s view of the network.
Argon
128.143.137.144
Neon
128.143.71.21
HTTP client
HTTP
server
HTTP
server
TCP client
TCP server
TCP server
IP Network
75
Network View of IP Protocol
76
Network View of Ethernet

Ethernet’s view of the network
77
What a router chassis looks like
Cisco CRS-1
Juniper M320
19”
17”
Capacity: 1.2 Tb/s
Power: 10.92 KWh
Weight: 0.5 Ton
Cost: $500K
6ft
Capacity: 320 Gb/s
Power: 3.1 kWh
3ft
2ft
2ft
78
Cisco CRS-1
79
Next week
Lab 1 & 2
 Submit prelab 1 & 2 through courseworks
 Apply for swipe access
 Form a group
 Bring a USB drive


Reading


Chapter 0, p1-25, 45-71
Optional: IBM red book, chapter 1.
80