Todays Lecture
Administrative matters
Course Overview
topics covered
design & prototyping projects
Introduction to networking
Class Structure
Friday 3:45-6:30pm
Lecture format
Slides, Board,
Interactive
Contact Information
Instructors:
Prof. D. Raychaudhuri
Email: ray@winlab.rutgers.edu
Office Hours: by appt, WINLAB Tech Center or Core 501
Dr. D. Reininger
Email: dan@semandex.net
Office Hours: by appt
Class Resources
Web page:
http://www.winlab.rutgers.edu/comnet2
Mailing list: comnet2@winlab.rutgers.edu
Sign up for mailing list at:
http://lists.winlab.rutgers.edu/listinfo/comnet2
Course Readings
Textbook (required, to be used for
~60% material)
Peterson & Davie, Computer Networks: A
Systems Approach, Morgan Kaufman, 4th or
5th editions
Course Grading
Class participation & homework: 5%
Brief in-class presentations
Assigned homework from textbook
Student Commitments
Work independently
no collaboration of any sort
Prerequisites
Curricular prerequisites
Computer Networks I or equivalent
General communications and
computer architecture/OS background
Skills
C/C++ programming
significant programming project
Course Topics
Introduction
Network Principles
Shared Media/MAC
Pkt switching
IP Basics
IP Advanced
Mobility Protocols
-- mid-term
Software defined
networks
Network security
Transport layer
Higher-layer
protocols
Hardware issues
Case studies and
research topics
Content networks
Big data and networks
future Internet arch
Projects
Warm-up Projects
Network
architecture paper
- C/C++ programming
-
top-down design
requirements
specifications
system analysis
report
exercises
- Unix sockets, etc.
- simple link protocols
Network software
project
- new routing protocol
- software platform provided
- student teams will write
competing protocol specs
- meetings to specify
Scale
Application Considerations
Application input to network
traffic data rate
traffic pattern (bursty or constant bit
rate)
traffic target (multipoint or single
destination, mobile or fixed)
Application Considerations:
IoT
Application Considerations
(IoT)
Application Considerations
(Data Centers, Big Data)
A Multimedia Application
Remote Login
Loss sensitive
Delay sensitive
subject to interactive constraints
can tolerate up to several hundreds of
milliseconds
Bursty
Point to point
Network Audio
Relatively low bandwidth
Digitized samples, packetized
Network Video
High bandwidth
Compressed video, bursty
Loss tolerance function of
compression
Delay tolerance a function of
interactivity
Possibly multipoint
Larger number of simultaneous
sources
Web
Transactional traffic
short requests, possibly large
responses
Loss tolerant
Delay sensitive
human interactivity
Point-to-point (multipoint is
asynchronous)
What is.
The Global Network
Structure
Metrics
Failure modes
Functions
Network Structure
National/Global
Networks, Backbones
Regional
Networks, ISP
Local/Access
Networks
Nodes,
Hosts, CPE
Routers,
Switches
Links, LAN
Servers,
Data Centers
Network Topologies
Network Metrics
Bandwidth
transmission capacity
Delay
queueing delay
propagation delay (limited by c)
Delay-Bandwidth product
important for control algorithms
Infinite bandwidth
RTT dominates
10,000
5000
2000
1000
500
1-MB object, 1.5-Mbps link
1-MB object, 10-Mbps link
2-KB object, 1.5-Mbps link
2-KB object, 10-Mbps link
1-byte object, 1.5-Mbps link
1-byte object, 10-Mbps link
200
100
50
20
10
5
2
1
10
RTT (ms)
100
Network Failures
Packet loss
queue overflows
line noise
bw
Time
demux
Packet Switching
Interleave packets from different
sources
Efficient: resources used on
demand
statistical multiplexing
General
multiple types of applications
Characteristics of Packet
Switching
Store and forward
packets are self contained units
can use alternate paths - reordering
Contention
congestion
delay
Protocols
On top of a packet switched network,
need
Set of rules governing communication
between network elements
(applications, hosts, routers)
Protocols define:
format and order of messages
actions taken on receipt of a message
Protocols (contd.)
Building blocks of a network
architecture
Each protocol object has two different
interfaces
service interface: operations on this protocol
peer-to-peer interface: messages
exchanged with peer
Layering
User A
Teleconferencing
User B
Peers
Application
Transport
Network
Link
Host
Host
Layering
Layering Characteristics
Each layer relies on services from
layer below and exports services to
layer above
Interface defines interaction
Hides implementation - layers can
change without disturbing other
layers (black box)
Packet Headers
Packet Headers can contain:
- addresses, flow ID, pkt type, service type, error checks, QoS,
Layer 2 hdr
Layer 3 hdr
Trailer
Layer 4 hdr
Data
Encapsulation
ISO Architecture
End host
End host
Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Network
Network
Data link
Data link
Data link
Data link
Physical
Physical
Physical
Physical
Internet Architecture
Defined by Internet Engineering Task Force (IETF)
Hourglass Design
Application vs Application Protocol (FTP, HTTP)
FTP
HTTP
NV
TFTP
UDP
TCP
IP
NET1
NET2
NETn
Reliability
Flow control
Fragmentation
Multiplexing
Connection setup (handshaking)
Addressing/naming (locating
peers)
Inter-Process
Communication
Host
Application
Host
Channel
Application
Host
Host
IPC Abstractions
Request/Reply
distributed file
systems
digital libraries
(web)
Stream-Based
video: sequence of
frames
1/4 NTSC = 352x240
pixels
(352 x 240 x
24)/8=247.5KB
30 fps = 7500KBps =
60Mbps
video applications
on-demand video
video conferencing
Interfaces
Host 1
High-level
object
Protocol
Host 2
Service
interface
Peer-to-peer
interface
High-level
object
Protocol
Interfaces (contd.)
TCP
send(IP, message)
deliver(TCP, message)
IP
Interfaces (contd.)
Application process
send()
deliver()
Topmost protocol
Chapter 1, Figure 17
Protocol Machinery
Protocol Graph
Host 1
Digital
Video
File
library
application application application
RRP
MSP
HHP
Digital
Video
File
library
application application application
RRP
MSP
HHP
56
Machinery (cont)
Multiplexing and Demultiplexing (demux
key)
Encapsulation (header/body)
Host 1
Host 2
Application
program
Application
program
Data
Data
RRP
RRP
RRP Data
RRP Data
HHP
HHP
57
Network Architecture
Goal is to design a complete network
solution that meets service
requirements and cost constraints
Design space includes
Application platform & software
Network topology
Core technologies
Protocols
Traffic engineering
Cost estimation
Pervasive
Application
Agents
Relay Node
Sensor/
Actuator
Ad-Hoc Sensor Net B
ZigBee,
UWB, etc.
Internet
Mobile DTN Router
Opportunistic
High-Speed Link
(MB/s)
Ad-Hoc
Network
Roadway Sensors
Static DTN
Router
Designing a Network
Identify basic service requirements
transport service(s)
bit-rates to be supported
network API
# of users
terminal type (fixed, portable, etc.)
Requirements (contd.)
List additional service and network
features
QoS, video/audio, etc.
special routing (mcast, broadcast,..)
mobility
availability
reliability
security/authentication
Requirements Analysis
CBR, VBR-rt,..
Bit rate
0.1-10 Mbps
# of users
Terminal type
Topology
hierarchical, access/core
QoS features
Availability
99.9%
Reliability
Security features
Cost
99.99%
mobile authentication, on-air encryption
$0.1/MB or $50/mo/user
Network Components
Key hardware components of a
network
NIC ~10, 100, 155, 622, 1000 Mbps
shared media channels (Ethernet,
HFC, wireless, satellite, ..) ~Mbps
point-to-point links (DSL, CAT-5,
microwave, fiber,..)
switches (Ethernet, ATM, MPLS/IP) ~
Gbps -Tbps
routers (IP) ~Mbps - Gbps
Network Components
Key software components of a
network
CPE/Terminal OS & drivers
Application interface socket spec
Transport layer protocol
Network layer protocol (at client)
Network layer protocol (at network
elements)
Network management system
Any additional directories or network
services
High-Level Design
Select network topology based on
geographic, capacity, reliability, etc.
Partition into access network, core
network, etc. as required
Assign network hardware components
to each subnetwork based on service
and QoS requirements
Define service API and protocol stacks
Analyze network performance & cost
and iterate until requirements are met
Mbps needed?
Technology choice
(e.g. IP router)
Access Net
Physical
Span?
Technology choice
(e.g. Ethernet SW)
bps
Pkt size
Burst statistics
Stream parameters
Users
(#, density, mobility)
Technology choice
(e.g. 802.11n)
bps/sq-m for wireless access
OSI 4
OSI 3
OSI 2 & 1
Unit of Data
Application
Message
Transport
Segment
Network
Packet
Link
Frame
Physical
Bit
Protocol Stack
Physical
Physical
Link
Link
Network
Network
Link
Link
App
App
Transport
Transport
Network
Network
Link
Link
Router
Proxy or
Middlebox
(or gateway)
7 Application
4 Transport
3 Internet
2/1 Link
UDP
IP
Ethernet 3G
Cable
DSL 802.11
Instance of
Protocol X
Lower layer
Instance (of
Protocol Y)
Protocol X
Service provided
by Protocol Y
Y
Node 1
Y
Node 2
Peer
instance
HTTP
TCP
IP
802.11
Encapsulation
HTTP
HT
TP
TCP HTTP
TC
P
TC
P
I
P
I
P
802.
11
802.
11
IP TCP HTTP
802.
11
I T
P C
P
HT
TP
HT
TP
802.11
(Wire)
IP
TCP
HTTP
TCP HTTP
IP TCP HTTP
HTTP
802.
11
I T
P C
P
HT
TP
Demultiplexing
Incoming messages must be passed to the protocol it
uses.
Done with demultiplexing keys in the headers
SMTP
TCP port number
IP protocol field
HTTP
TCP
DNS
UDP
IP
Ethertype value
ARP
Ethernet
Etherne IP
t
TCP HTTP
Host
Incoming message
Network-Application Interface
Defines how apps use the network
Lets apps talk to each other via hosts;
hide the details of the network
Sockets let apps attach to the local network at different
ports
Ap
p
Ap
p
ISP
host
Ap
p
Socket,
Port #1
host
Ap
p
Socket,
Port #2
Network Interface
Encapsulation
Routing
Socket API
Primitive
Meaning
SOCKET
BIND
LISTEN
ACCEPT
CONNECT
SEND
RECEIVE
CLOSE
Using Sockets
Client (host 1)
(host 2)
Time
Server
connect
1: socket
2: bind
3: listen
4: accept*
request
6: receive*
8: receive*
reply
9: send
10: close
disconnect
10: close
*=call blocks
1: socket
5: connect*
7: send
Server
socket()
//make socket
socket()
//make a socket
getaddrinfo
()
getaddrinfo(
)
//www.example.com:
80
blind()
//connect to server
[block]
listen()
accept()
recv()
connect()
send()
//send request
recv()
send()
close()
//done, disconnect
close()
//eventually disconnect
Todays Homework
Peterson & Davie, Chap 1 (4th ed)
-1.3
-1.15
-1.17
-1.23
-1.28
83