610 likes | 743 Views
ECE544: Communication Networks-II Spring 2009. H. Liu Lecture I. Includes teaching materials from D. Raychaudhuri, L. Peterson & L. Govidan. Today’s Lecture. Administrative matters Course Overview topics covered design & prototyping projects
E N D
ECE544: Communication Networks-II Spring 2009 H. Liu Lecture I Includes teaching materials from D. Raychaudhuri, L. Peterson & L. Govidan
Today’s Lecture • Administrative matters • Course Overview • topics covered • design & prototyping projects • Introduction to networking and network principles
Class Structure • Friday 4:45-7:30pm • Lecture format • Slides, Board, … • Interactive • Two 80 min sessions • with a 10 min break in between
Contact Information • Instructor: Dr. Hang Liu • Email: hliu@winlab.rutgers.edu • Office Hours: by appt, CoRE 510 • TA (for project): KC Huang • Email: therom@winlab.rutgers.edu • Office hours: tbd • 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 ed • Research papers in networking • to be distributed either online or in class • collection of classical and topical research • ~10 papers and standards documents • required reading to supplement text book overview
Course Grading • Class participation & homework: (10%) • Brief in-class presentations • Assigned homework from textbook • Midterm (20%) and Final (30%) • Open book, 1 page of notes permitted; includes both descriptive and numerical problems • Design & Prototyping Assignments: (40%) • Network architecture paper (10%) • Protocol/software projects & reports (3 projects) 30% • No makeup exams, no extra credit work
Student Commitments • Keep up with your reading • read applicable text book chapter and distributed papers/standards/RFC’s before and after each class • Sharpen your programming skills • study C/C++ & Unix programming as needed and work on simple programming exercises early in the semester • Work independently • no “collaboration” of any sort • Turn in assignments on time • Make sure assignments are gradable • follow project and program submission rules
Prerequisites • Curricular prerequisites • Computer Networks I or equivalent • General communications and computer architecture/OS background • Skills • C/C++ programming • significant programming project • use of design and analysis tools
Introduction Shared Media/MAC Switched Networks (ATM) IP Basics IP Advanced IP Multicast Network Hardware & Software -- mid-term (3/13) Mobility Protocols Transport Layer Quality of Service Network Security Case studies and research topics (TBD) Optical IP network Content distribution network and P2P network Future Internet Course Topics
Network architecture paper (10%) - top-down design - requirements - specifications - system analysis Projects • 2 Warm-up Software Projects (each 5%) - C/C++ programming exercises - Unix sockets, etc. - simple link protocols • Network software project (20%) - new routing protocol - student teams will write competing protocol specs - meeting to select “standard” - system integration & demo - software platform provided
What is the problem? Applications The Global Network Scale Technology Robustness
Connectivity/Channel Application Application Applications <=> Networks • Application programmer: application needs • Network designer: cost-effective design • meet the needs efficiently and fairly • Network provider: easy to administrate and manage
Back in the old days.. bw Time
mux demux Then came TDM..
Packet Switching Interleave packets from different sources • Efficient: resources used on demand • statistical multiplexing • General • multiple types of applications • Accommodates bursty traffic
Characteristics of Packet Switching • Store and forward • packets are self contained units • can use alternate paths - reordering • Contention • congestion • delay
Statistical Multiplexing Gain 1 Mbps link; users require 0.1 Mbps when transmitting; users active only 10% of the time. • Circuit switching: can support 10 users • Packet switching: with 35 users, probability that >=10 are transmitting at the same time = 0.0004.
What is…. The Global Network • Architecture • Layering and Protocols • OSI Architecture vs. Internet Architecture • Implementing Network Software • Performance
Support Common Communications Services • Internet is a general global network • support a wide and ever growing range of applications (video, voice, data) Host Application Host Server Host Logical Channel Host Application Host Client
Network Structure Backbones Regionals Campus LANs
Layering Teleconferencing User A User B Peers Application Transport Network Link Host Host Layering: technique to simplify complex systems
Layering General Issues • Reliability • Flow control • Fragmentation • Multiplexing • Connection setup (handshaking) • Addressing/naming (locating peers)
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)
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 • Term “protocol” is overloaded • specification of peer-to-peer interface • module that implements this interface
Interfaces Host1 Host2 High-level High-level object object Service interface Service interface Protocol Protocol Peer-to-peer interface
Host Host Application Host Channel Application Host Host Inter-Process Communication • Turn host-to-host connectivity into process-to-process communication. • Fill gap between what applications expect and what the underlying technology provides.
IPC Abstractions • 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 • Request/Reply • distributed file systems • digital libraries (web)
Host 2 Host 1 Digital Digital Video Video File File library library application application application application application application Application programs RRP MSP RRP MSP Request/reply channel Message stream channel HHP HHP Host-to-host connectivity Hardware Protocol Machinery • Protocol Graph • most peer-to-peer communication is indirect • peer-to-peer is direct only at hardware level
Machinery (cont) • Multiplexing and Demultiplexing (demux key) • Encapsulation (header/body) Host 1 Host 2 Application Application program program Data Data RRP RRP RRP Data RRP Data HHP HHP HHP RRP Data
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 One or more nodes within the network
FTP HTTP NV TFTP UDP TCP IP … NET NET NET 2 1 n Internet Architecture • Defined by Internet Engineering Task Force (IETF) • Hourglass design • Not strict layering, cross-layer design Application TCP UDP IP Network
Example: Network Layer • Point-to-point communication • Network and host addressing • Routing
Example: Transport layer • First end-to-end layer • End-to-end state • May provide reliability, flow and congestion control
Implementing Network Software • Open and modular design • Application programming interface (API)
Sockets • Server • int socket(int domain, int type, int protocol) • int bind(int socket, struct sockaddr *address, int addr_len) • int listen (int socket, int backlog) • int accept(int socket, struct sockaddr *address, int *addr_len) • Client • int connect(int socket, struct sockaddr *address, int addr_len) • Send and Receive • int send (int socket, char *message, int msg_len, int flags) • int recv (int socket, char *buffer, int buf_len, int flags)
Protocol Implementation • Performance is critical • OS networking subsystem
Process-per-protocol vs. Procecess-per-message Procedure n+1 Process n+1 Procedure Calls Inter-process messages Process n Procedure n Procedure Calls Inter-process messages Process n-1 Procedure n-1 Process per message Process per protocol
Message Buffers Application process • Message data structure: linked list send() deliver() Topmost protocol Data structure pointer passing No buffer copying Lower layer protocol Lower layer protocol
Network Performance Metrics • Bandwidth • transmission capacity • Delay • queuing delay • transmission delay • propagation delay (limited by c) • Delay-Bandwidth product • important for control algorithms
Bandwidth versus Latency • Relative importance • 1-byte: 1ms vs 100ms dominates 1Mbps vs 100Mbps • 25MB: 1Mbps vs 100Mbps dominates 1ms vs 100ms • Infinite bandwidth • RTT dominates • Throughput = TransferSize / TransferTime • TransferTime = RTT + 1/Bandwidth x TransferSize • 1-MB file to 1-Gbps link as 1-KB packet to 1-Mbps link
10,000 5000 2000 1000 500 1-MB object, 1.5-Mbps link 200 1-MB object, 10-Mbps link Perceived latency (ms) 2-KB object, 1.5-Mbps link 100 2-KB object, 10-Mbps link 50 1-byte object, 1.5-Mbps link 1-byte object, 10-Mbps link 20 10 5 2 1 10 100 R TT (ms) Perceived Latency vs. Round-Trip Time
Delay x Bandwidth Product • Amount of data “in flight” or “in the pipe” • Example: 100ms x 45Mbps = 560KB
Network Failures • Packet loss • queue overflows • line noise • Node or link failures • Routing transients or failures
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) • Network service delivered to application • delay sensitivity • loss sensitivity
Reliable File Transfer • Loss sensitive • Not delay sensitive relative to round trip times • Point-to-point or multipoint • Bursty
Remote Login • Loss sensitive • Delay sensitive • subject to interactive constraints • can tolerate up to several hundreds of milliseconds • Bursty • Point to point