CS455 Syllabus & Progress
CS455 Syllabus & Progress
NS page: click here
-
Motivation and brief history of the Internet.
-
Introduction to computer communication
- Enabling communication in general:
- Storing information:
click here
- *** The genetic code and information found in DNA:
click here
- Enabling
communication between
computers:
- Infra-structure to relay electrical signals:
click here
- Information encoding in
computers:
click here
- Classifying (Types) of computer networks:
- Transmission Methods used in computer networks:
- Transmission Methods used in Broadcast Networks:
click here
- Transmission Methods used in Switched Networks:
- Intro:
click here
- Circuit switching:
- Properties of Circuit Switching:
click here
- Performance guarantee that can be provided
by circuit switching:
click here
- Message/Packet switching:
- Properties of Message/packet switching:
click here
- Difficulty to provide
performance guarantee in
message/packet switching:
click here
- The Open System Interconnection (OSI) Architecture of
computer networks:
click here
- Some examples of network applications:
click here
-
The Physical Layer:
- Intro:
- Physical layer:
click here
- Information, (analog/digital) data and (analog/digital) signals:
click here
- Transmitting analog data:
- Transmitting analog data
using analog signals:
click here
- Transmitting analog data
using digital signals:
- Converting analog data (signal) to digital data (signal):
click here
- Re-constructing the analog signal:
click here
- Sampling rate and accuracy --- the Nyquist rate:
click here
- Application of the Nyquist rate - digital CD audio:
click here
- Application of the Nyquist rate - digital telephone:
click here
- Transmitting digital data:
- Transmitting digital data
using digital signals:
- Encoding/decoding digital data (with digital signals):
click here
- Problem of clock drift:
click here
- Codes commonly used in digital transmissions:
- Transmitting digital data
using analog signals:
- The bandwidth ( = max transmission rate) of a transmission
medium:
- Intro:
click here
- Speed limitation in wireless transmissions:
click here
- Speed limitation in wired transmissions:
Homework 1:
click here
- Sharing a transmission medium:
- Error detection and error correction in the
Physical layer:
- Intro:
click here
- Principle of error detection/correction:
click here
- Parity-based schemes:
- Error-correcting encoding:
- Error-detection encoding --- the CRC methods:
Homework 2:
click here
-
The Data Link Layer for Point-to-Point
Networks:
- Introduction:
click here
Framing
- Intro to framing:
click here
- Byte-oriented framing protocols:
- Bit-oriented (framing) protocols:
Error control
- Switched and broadcast networks:
click here
- Intro to error control:
click here
- Intro to error perspective:
click here
- The Stop-and-Wait ARQ protocol:
- A basic reliable communication protocol (just ACK frames):
click here
- Adding sequence numbers to
identify
data frames:
click here
- Adding sequence numbers to
identify
ACK frames:
click here
- Performance of the Stop-and-Wait protocol:
- Intro:
click here
- Maximum channel utilization
of the Stop-and-Wait protocol:
click here
- Performance of the Stop-and-Wait on low and high
data rate (bandwidth) links:
click here
Homework 3:
click here
- The Sliding Window protocol:
- Towards a more efficient ARQ protocol:
click here
- First:
a simple (but impractical) reliable protocol:
click here
- Buffer requirements:
- Send buffer requirement and outstanding frames:
click here
- Receive buffer requirement and undeliverable frames:
click here
- Relationship between Send buffers and Receive buffers:
click here
- The Sliding Window method using
selective ACK:
- An very important property of sliding window method:
click here
- Acknowledgement schemes:
click here
- The Sliding Window protocol
using cumulative ACKs:
- Correctness proof for Sliding Window protocol
using infinite sequence numbers:
click here
- Sliding window using
finite sequence numbers:
- Problem caused by finite sequence numbers - ambiguity:
click here
- Finite sequence numbers do not always cause
ambiguity:
click here
- Condition for unambiguity with finite sequence numbers:
click here
- Go-back-N: recv window size = 1
click here
Homework 4:
click here
-
Data Link Layer for Broadcast Networks:
- Introduction:
click here
- Contention-based (multiple access) Protocols:
- Aloha:
- The CSMA protocols:
- Intro to the local area network:
click here
- Intro to the CSMA protocols:
click here
- The variants of the CSMA protocols:
- Performance Analysis of CSMA protocols:
click here
- The CSMA/CD protocols:
- Intro to Collision Detection:
click here
- Action taken after a positive collision detection
--- the CSMA/CD protocol:
click here
- Collision detection does not need to done forever:
click here
- Jamming to ensure collision detection:
click here
- The variants of CSMA/CD protocols:
click here
- The Ethernet (IEEE 802.3) protocol:
Homework 5:
click here
- Contention-free (Token based) Protocols:
- Introduction:
click here
- Token ring (802.5):
- Token bus (802.4):
- Wireless LAN (IEEE 802.11):
- Introduction to the 802.11 standard:
click here
- Properties of wireless communication
-- the hidden node and exposed node problem:
- Spread Spectrum communication:
- Basic communication techniques in the 802.11 MAC protocol:
- Uses channel sensing (collision avoidance) but no collision
detection:
click here
- Uses MAC-level ACK (like Aloha) --- with
prioritized ACK transmission:
click here
- Prioritizing different types of transmissions in IEEE 802.11:
click here
- IEEE 802.11 MAC overview:
click here
- The (Centralized) Point Coordinated Function (PCF):
- The Distributed Coordination Function (DCF):
- The collision detection method:
click here
- The back-off procedure:
click here
- The distributed MAC algorithm:
- The complete protocol:
click here
- The first transmission attempt (new frame):
click here
- The subsequent
transmission attempts (re-transmissions):
click here
- How IEEE 802.11 counts down a back off period:
click here
- Improving fairness in the binary back off algorithm:
click here
- The (optional)
CSMA/CA (collision avoidance)
protocol:
click here
- Roaming:
Homework 6:
click here
-
Interconnecting Homogeneous Networks:
- Introduction:
- Bridged Ethernet:
- Switched Ethernet:
- Ethernet switch:
click here
- Loop-free Ethernet switched networks:
click here
- Ethernet switched networks with loops:
The IEEE 802.1D Spanning Tree Algorithm:
Promiscuous Operation of Bridges and broadcasting:
click here
Homework 7:
click here
Interconnecting Heterogeneous Networks
(Internet)
:
- Introduction - problems that we need to solve:
click here
- Solving the identification problem:
- Solving the heterogeneity problem:
- Solving the scalability problem:
- Key to scalability -- minimize intrusion:
click here
- Difference between a bridge and a router:
click here
- Important omission in the discussion of routing:
click here
- The IP Protocol:
- Intro to the IP protocol:
click here
- The IP packet format:
click here
- The IP services (datagram and fragment/reassembly):
- IP addresses:
- Multi-homed nodes:
click here
- IP forwarding:
- Protocols used to support the IP protocol operation:
- The Address Resolution Protocol (ARP):
- The Dynamic Host Configuartion Protocol (DHCP):
- Internet management - the Internet Control Message Protocol (ICMP):
Homework 8:
click here
Network Programming using "sockets"
- Introduction:
- Programming with UDP sockets:
- Intro:
click here
- Creating an UDP socket:
click here
- Identifying a host UDP endpoint (IP-Addr,Port#):
click here
- Binding a UDP socket to a host UDP endpoint:
- Binding to a specific kernel UDP port#:
click here
- Binding to an available kernel UDP port#:
click here
- Binding a UDP socket in a
multi-homed host:
click here
- Client/server programming with UDP sockets:
click here
- Sending and receiving with UDP sockets:
- Sending/receiving binary numbers and structures in UDP:
click here
- Functions in support of Network Programming:
- Intro to the Network Support Library (nsl):
click here
- Converting "dotted-decimal-notation" to (binary) IP address:
click here
- Converting "symbolic name" to (binary) IP address:
click here
- Find host information using an IP address:
click here
- Timeout programming:
- Intro to timeout programming:
click here
- Timeout programming using select( ):
- Timeout programming using poll( ):
click here
- Programming with TCP sockets:
The IP tunneling technique
:
- Intro to IP Tunneling:
click here
- Operation of an IP-in-IP tunnel:
click here
- Implementing IP tunneling:
- Applications that uses IP Tunneling:
- Secure IP (IPsec - protocol code 50):
click here
- Initial Deployment of IPv6 (IPv6 over IPv4 -
protocol code 41):
click here
- Deploying IP multicasting (MBone):
click here
- Overlay networks:
click here
IP Route Construction Algorithms
:
- Introduction:
click here
- The Centralized (Link State) Algorithm:
- The Distance Vector Algorithm (Distributed Bellman-Ford):
- Intro:
click here
- Data structure maintained by a node:
click here
- Distance vector update message formats and use:
click here
- Example of execution of Distance Vector Algoithm:
- Effect of link/node failures on the routing algorithms:
- The Counting-to-infinity problem in Distance Vector:
click here
Route in "Ad Hoc" wireless networks
:
- Introduction (and overview):
click here
- The Dynamic Source Routing algorithm - basic operation:
- Intro:
click here
- The Basic Route Discovery procedure in DSR:
- Additional Route Discovery Features ("tricks"):
- Replying to ROUTE REQUEST messages using Cached Routes:
- Short-circuiting a route discovery operation:
click here
- Caveat of using cached routes:
click here
- Traffic problem caused by Short-circuit route reply:
click here
- Caching the forward fragment of the Source route:
click here
- Caching Overheard Routing Information:
click here
- The Basic Route Maintenance procedure in DSR:
click here
- Additional Route Maintenance Features ("tricks"):
- Increased Spreading of ROUTE ERROR Messages:
click here
- Caching Negative (= broken links) Information:
click here
- Packet Salvaging:
- Automatic Route Shortening:
click here
Transport Layers (UDP/TCP) for IP
- Introduction to the transport layer:
click here
- Hop-to-hop vs. End-to-end reliablity:
click here
- The User Datagram Protocol (UDP):
click here
- The Transmission Control Protocol (TCP) protocol:
- Intro:
click here
- TCP message format:
click here
- TCP's buffers and its data transmission algorithm:
click here
- TCP connections:
click here
- Establishing a TCP connection:
- Intro to TCP connection establishment:
click here
- Control messages used in connection establishment:
click here
- Preliminaries on the TCP client:
click here
- The TCP connection establishment protocol:
click here
- Error scenario 1 --- bogus connection request
without an established connection
- Error scenario 2 --- bogus connection request
with an established connection
- State transition diagram for TCP connection establishment:
- TCP data transfer operation:
click here
- TCP: closing a connection:
- Flow control in TCP:
click here
- Port Address Translation (Network Address Port Translation - NAPT):
click here
Mobile IP:
- Mobility support in the Datalink layer:
click here
- Mobility support in the Network layer
(mobile IP):
click here
- Mobile IP solution using Foreign Agent:
- The Foreign Agent solution:
click here
- Example operation -- routing messages to the mobile host:
click here
- Routing messages from the mobile host:
click here
- Weakness of the Foreign Agent solution:
click here
- Mobile IP solution using DHCP:
- Mobile IP hosts on multi-entry networks:
- Problem created by multiple routes to the home network:
click here
- Solving the multi-entry network problem:
click here
- Making mobile IP more efficient:
Congestion control on the Internet
- Introduction:
click here
- Signals used to detect congestion in network:
click here
- Congestion control methods (Raj Jain):
click here
- TCP's congestion control algorithm:
click here
- TCP Tahoe: the first TCP congestion control algorithm:
click here
- TCP Reno: the most commonly used TCP congestion control algorithm:
click here
- Problems with the TCP's congestion avoidance mechansim:
click here
(These problems are studied in detailed in the Graduate level
networking course)
The Tool Command Language (Tcl)
--- for reference only (to understand NS2)
Network Simulation using NS2: NS programming
- Intro to Simulation:
click here
- Intro to NS2 --- Event Scheduling in NS:
click here
- Writing NS Simulations:
- Making NS output data for the Network AniMation (NAM) tool:
click here
External resources to learn NS programming:
Studying the Performance of TCP through
Simulation
- Studying TCP's Congestion Window using NS:
click here
- Studying TCP's Throughput and Goodput using NS:
click here
- Brief Tutorial on GnuPlot:
click here
Homework 5: click here
The End (material below this line are old stuff)
Mobile IP:
- What's wrong with making your computer mobile by using
a cell-phone modem ?
- It's a very low bandwidth technology... (you will get
less than 14.4 Kbps and a lot of packet drops...)
- IEEE 802.11 used to operate at 1-2 Mbps and now at 11 Mbps.
- What's the problem with IP routing when applied to a mibile host:
click here,
- Conclusion: routing on network ID gained scalabililty, but
also creates serious routing problem for mobile IP.
- Design criteria for Mobile IP:
- Must work without having to change the IP software in existing
non-mobile hosts.
- Must work without having to change the IP software in most
IP routers (the Internet is huge & international, if the solution
can only work when most of the routers need to be upgraded,
you may as well toss the solution away - ain't gonna happen).
- There are 2 mobile IP solutions:
- Solution 1 uses 2 special agents: home & foreign agents
- Solution 2 uses the home agent and the DHCP protocol.
- Mobile IP support using Foreign Agent:
click here
- Mobile IP support using DHCP:
click here
- BUT... you are not done yet:
click here
- Making mobile IP more efficient:
click here
IP Multicast:
- Introduction:
click here
- Multicast Forwarding Infrastructure:
click here
- Multicast Forwarding:
click here
- Cost of Multicast Routes:
click here
- Core Base Tree Multicast Routing:
click here
- Extending the Link State routing algorithm for Multicast Routing:
click here
- Extending the Distance Vector routing algorithm for Multicast Routing:
- The Reverse Path Broadcasting Technique:
click here
- Distance Vector Multicast Routing Protocol (DVMRP):
click here
Virtual LANs (VLAN):
- Virtual LAN technique allows to partition a large Ethernet LAN
into multiple broadcast domains.
- VLAN standard - IEEE 802.1Q:
click here
- VLANs are usually set up manually by network administrator.
- Ports on an Ethernet Switch can be tagged with a VLAN ID.
- IEEE 802.10 protocol on faster back bone connecting
Ethernet Switches
(see more in:
VLAN Interoperability)
- What a VLAN looks like:
click here.
- How a VLAN works:
click here.
- More reading material:
Asynchronous Transfer Mode (ATM) - Telephone Standard
- ATM is a Virtual Circuit (connection oriented) switching technology.
- You already know exactly how ATM works if you understand VC switching
( click here).
- So what's the big deal ?
- It's an International Standard apporved by all TelCo's.
- It's the TelCo's plan to support voice and
data on their network (TelCo's own the world's WAN).
- Before ATM, voice and data networks are separate !!!
- Some facts about ATM:
- Signaling protocol is Q.2931 (two parts: UNI & NNI)
- Signaling establishes a VC, and may reserve bandwidth
(depending on the QoS).
- ATM host has unique ATM address (128 bits).
- ATM supports several Quality of Services (QoS):
- CBR: Constant Bit Rate (e.g., audio
- this is same as circuit switching !)
- VBR: Variable Bit Rate (e.g., video - sepcify min and max)
- ABR: Available Bit Rate (mostly for data -
uses remaining bandwith of the ATM pipe)
- Switches fixed size packets, called "cells":
- Switching hardware is easier to built
- Parallellization is easier
- ATM Cell Format:
- Fields:
click here.
- GPC: Generic Flow Control (Not widely used)
- VPI: Virtual Path Id
- VCI: Virtual Circuit Id
- VPI and VCI form a 2 level logical circuit hierarchy
for easier circuit management
- TT: Cell Type
- R: Reserved field. Used mainly by AAL5.
- P: Cell Loss Priority
- ATM Adaptation Layer:
- ATM header has only information for a VC and no
information for framing
(Ethernet packet has framing capability
by using the "length" field,
see click here).
- ATM uses an "encapsulation" layer to wrap a variable length
message for transmission: the Adaption Layer.
- Defines how certain traffic are to be transmitted in ATM cells
- Originally, 4 layers were proposed. AAL1 and AAL2 are for
real time multi-media traffic. AAL3 and AAL4 are for data.
Later, AAL3 and AAL4 were merged into AAL3/4.
- AAL3/4 has too much overhead, and AAL5 was proposed and
is now widely accepted for data.
- Overview Encapsulation scheme:
click here.
- AAL3/4:
- AAL3/4 Encapsulation scheme:
click here.
- Out of every 53 byte cell, AAL3/4 can use 44 bytes for data:
44/53 = 83% max. utilization.
- That's a loss of 17%, and quite unacceptable.
- AAL5:
- Is the preferred AAL of IETF (Internet Engineering Task Force)
for transmitting data over ATM networks.
- AAL5 Encapsulation scheme:
click here.
- Recall where the RESERVED field is in the ATM header:
click here.
- Virtual Paths and Virtual Circuits.
- VPI and VCI define a 2 level virtual circuit management.
- Suppose a corporation with offices in 2 locations
want to network their computers with ATM:
- Here's how 2 connection can be made with 2 separate
unrelated VC's:
click here.
- Here's how 2 connection can be made with 2 VC
in the same VP:
click here.
- Advantage: lot less entries - easier management.
- I am skipping the section on ATM in LAN.
Some LAN protocols are not known to students....