E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Midterm Review
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
 (modified by Cheung for EE586; based on K&R original)
2
Learning Outcomes
To understand the layer architecture
To design simple networking applications
To compare and contrast TCP and UDP
To understand routing algorithms
To compare different link layer protocols
To understand the challenges of mobility
To use simple analytical models and networksimulations in performance study
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 1
what’s the Internet?
Network of networks
what’s a protocol?
Format, Order of messages and Action taken by end systems incommunication
network edge; hosts, access net, physical media
Dialup, DSL, HFC, Ethernet, WiFi
Twisted Pair, Coaxial, Optical fiber, Radio link
network core: packet/circuit switching, Internet structure
Circuit switching: dedicated resource, need reservation,resources wasted if not used. Examples: FDM, TDM
Packet switching: resources used as needed, statisticalmultiplexing (more users, allow bursty data)
Internet structure: Hierarchical
 (modified by Cheung for EE586; based on K&R original)
3
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 1
performance: loss, delay, throughput
Loss caused by physical media, buffer overflow at router
Delay: (1) nodal processing, (2) queuing, (3) transmission delay,(4) Propagation delay
Calculation of delay for store-and-forward
traffic intensity vs delay using simple queuing theory
throughput
traceroute
protocol layers, service models
Good and bad
5-layer IP; 7-layer ISO model
 (modified by Cheung for EE586; based on K&R original)
4
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 2
Application arhitectures: client-server, P2P, Hybrid
Client-server: always-on well-known and costly central server,initiated by dynamic client
P2P: no centralized server, self-scalable, difficult to maintain andsecure
Process engineering
client and server process
Protocol: types, syntax, semantics, rules
Sockets, identifier: address & port
Characterized by data loss, timing, throughput, security
Map applications to characteristics
Transport layer model: TCP and UDP
 (modified by Cheung for EE586; based on K&R original)
5
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 2
Well-known application protocols
HTTP: uses TCP, request, response, stateless (stateful w/cookies), persistent vs. non-persistent, format (POST & GET),web caches, conditional get
DNS: map name to IP address, distributed and hierarchicaldatabases (rootTLD  Authoritative Local), iterated vs.recursive query, DNS records, insertion
P2P File distribution
server-client vs P2P in terms of time to distribute data,
Bit-Torrent: tracker and torrent, chunking, tit-for-tat,optimistically uncoke
P2P Searching
Distributed Hash Table (DHT). Hierarchical Overlay: SuperNode. Skype: relay node for NAT
 (modified by Cheung for EE586; based on K&R original)
6
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 2
Socket programming
Common, cross-platform, intuitive
Stream (TCP) vs. Datagram (UDP) sockets
Server function calls and why
Client function calls and why
 (modified by Cheung for EE586; based on K&R original)
7
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 3
Transport-layer service
Different from network layer, segments
Multiplexing and Demultiplexing
Port+Address to differentiate different processes
Demux (into different sockets):
UDP: use only destination port only
TCP: use source IP and port also
UDP: connectionless, no guarantee, why?, format,checksum
 (modified by Cheung for EE586; based on K&R original)
8
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 3
Principles of Reliable Data Transfer
FSM and timing diagram
rdt 1.0: perfect network
rdt 2.0: bit loss (checksum + ACK/NACK + retransmission), stop-and-go
rdt 2.1: sequence number (duplicate pkts)
rdt 2.2: no NAK (Add seq # to ACK)
rdt 3.0: pkt loss, timeout
Pipelining protocols
Why better than stop-and-go?
Sliding window (need longer seq number)
Go-back-N: cumulative ack, single timer, no buffering at receiver(retransmit all pkts at timeout)
Selective Repeat: ack individual pkts, multiple timers, receiver canreceiver out-of-order pkts, seq # range twice that of the window
 (modified by Cheung for EE586; based on K&R original)
9
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 3
TCP Segment structure
Address, Ports, different flags, checksum, etc
RTT Estimation
Exponentially weighted average and standard deviation
Reliable data transfer
Cumulative ACK
Single Timer
Retransmit with 3 duplicate ACK
Flow control
Receiver buffer communicated in header
Connection management
Three-way handshake
 (modified by Cheung for EE586; based on K&R original)
10
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Chapter 3
Congestion Control
Efficiency criterion to prevent congestion collapse
Fairness criterion to prevent starvation of individualflows
Achieved by
Binary (loss/no loss) feedback
Additive Increase Multiplicative Decrease
3 states of TCP
Slow Start – multiplicative ramp up (+1 MSS/ack)
Congestion Avoidance – additive increase (+1MSS/RTT)
Fast Retransmit – multiplicative decrease (0.5 *cwnd)in case of 3 consecutive duplicative ACK
 (modified by Cheung for EE586; based on K&R original)
11
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Reno TCP Congestion Control
when cwnd < ssthresh, sender in slow-start phase,window grows exponentially.
when cwnd >= ssthresh, sender is in congestion-avoidance phase, window grows linearly.
when triple duplicate ACK occurs, enter fast recoveryphase with ssthresh set to cwnd/2, cwnd set to ~ssthresh
when timeout occurs, enter slow-start phase withssthresh set to cwnd/2, cwnd set to 1 MSS.
underline_base
 (modified by Cheung for EE586; based on K&R original)
1212