710 likes | 865 Views
Spring 2006 EE 5304/EETS 7304 Internet Protocols. 1-24-2006. Tom Oh Dept of Electrical Engineering taehwan@engr.smu.edu. Administrative Issues. Course Website: www.engr.smu.edu/eets/7304 Obtain lectures, video clip, syllabus, homework and homework solutions
E N D
Spring 2006 EE 5304/EETS 7304 Internet Protocols 1-24-2006 Tom Oh Dept of Electrical Engineering taehwan@engr.smu.edu
Administrative Issues • Course Website: www.engr.smu.edu/eets/7304 • Obtain lectures, video clip, syllabus, homework and homework solutions • Please fill out the Student Information Sheet and email it to me as soon as possible. • If you have any question regarding DVD delivery and other adminstrative issues, please contact Gary McClesky (garym@engr.smu.edu, 214-768-3108). • TA: Mr. Poonawala will be my TA for this semester.
Grade • Because of huge enrollment in this class, I will not include final report as a part of your semester grade. So final grade will consists of three test grades only. • Grade distribution: • Test 1: 30% • Test 2: 30% • Test 3: 40% • Homework will not be part of your grade. • All tests will be close notes and books.
Grade (cont) • Test Dates • Test 1 : Feb. 28 (Materials from week 1, 2, 3, 4, 5) • Test 2 : Apr. 4 (Materials from week 6, 7, 8, 10 and 11) • Week 9 is Spring Break • Test 3: Final week (May 5- 11) (Materials from week 12, 13, 14, 15 and 16)
DVD and Distance Learning Students • DVD and DLS students will have additional week to finish the test. For example, DVD students must take Test 1 by Mar. 7. • For DVD and DLS students: If you don’t have proctor at your site, please ask Gary McClesky about test proctor in your area.
Outline • Types of networks • History • Standards • Terminology • OSI protocol reference model • Text Book (Comer): Ch. 16 Protocols and Layering: pg. 251-pg. 269 • Protocol layering principles • Text Book (Comer): Ch. 16 Protocols and Layering: pg. 251-pg. 269
Outline (cont) • TCP/IP protocol architecture • Text Book (Comer): Ch. 17 Internetworking: Concepts, Architecture, and Protocols: pg. 273-283) • B-ISDN protocol reference model
OSI Protocol Reference Model (cont) • 7 layers: 7. Application layer • User program that generates or uses data • What the user sees 6. Presentation layer • Changes syntax (data format) of information, as necessary 5. Session layer • Establishes and synchronizes sessions (dialogues) between applications
OSI Protocol Reference Model (cont) 4. Transport layer • Reliable end-to-end transfer of information between users • Establishes and manages connections between users • Segments and reassembles information to/from subnet • End-to-end error recovery and flow control
OSI Protocol Reference Model (cont) 3. Network layer • Establishes and manages connections through network • Carries packets from source to destination by routing between nodes • Congestion control
OSI Protocol Reference Model (cont) 2. Data link layer • Reliable error-free transmission on link, with flow control and synchronization • Organizes bits into frames, adds acknowledgements and retransmissions • MAC sublayer: controls access to shared medium (ie, in LANs) 1. Physical layer • Point-to-point transmission of unstructured bitstream • Depends on physical medium
OSI Layering Principles • Layers are independent and strictly vertical • Each layer provides services to next higher layer and use services from next lower layer • “Protocol entities" are active in each layer • “Peer entities" in same layer communicate with each other • To send, data is passed down the layers, each layer adds protocol information (eg, header)
OSI Layering Principles (cont) • To receive, data is passed up the layers, each layer removes protocol information • Protocol defines how the information is used between peer entities in same layer
Difficulties with OSI Model • Not best or only way to divide layers • Session and presentation layers are often minor, network layer is complex • Not followed exactly in practice, more useful as reference • Error control and flow control are repeated in different layers • Not obvious which layer is responsible for encryption, network management, internetworking • OSI model is strictly vertical: all networks conform to single standard protocol in each layer
TCP/IP Protocol Architecture • 1974 DoD standardized protocol suite for connecting other networks to ARPAnet • Internetworking is very important design consideration
TCP/IP Protocol Architecture (cont) • 4 layers: 4. Application layer • Telnet, ftp, SMTP, SNMP, HTTP • Corresponds to OSI layers 6-7, some 5 3. Transport (host-host) layer • Allows end-to-end communication • Connection establishment, error control, flow control • Transmission control protocol (TCP), user datagram protocol (UDP) • Corresponds to OSI layers 4, some 5
TCP/IP Protocol Architecture (cont) 2. Internet layer • Route data between different networks • Includes addressing, segmentation/reassembly, error control • Implemented in gateways and routers • Internet protocol (IP) • IP packet is basic data unit in Internet • Roughly corresponds to OSI layer 3
TCP/IP Protocol Architecture (cont) 1. Network access (host-to-network) layer • Lets host pass data to network with flow control, error control, priority, security • Corresponds to OSI layers 1-2, some 3 • Can be any protocol (eg, Ethernet, ATM, X.25) to carry IP packets
OSI vs TCP/IP Models • OSI model can be generally applied to most protocol suites, TCP/IP model is specific to Internet • Hierarchy versus layering • OSI does not allow different protocols in same layer • OSI allows interactions only between adjacent layers
OSI vs TCP/IP Models (cont) • TCP/IP recognizes importance of internetworking different networks • Internetworking was inserted into OSI model as sublayer in layer 3 • TCP/IP recognizes importance of connectionless service • OSI model recognizes only connection-oriented transport layer
B-ISDN Protocol Reference Model • 3 planes: • User plane: protocols for user data • Control plane: protocols for control (signaling) data • Management plane: protocols for management data (e.g., OAM)
B-ISDN Protocol Reference Model (cont) • 4 layers in user plane: 4. Services • Originally Class A, B, C, D (obsolete) • Now CBR, real-time and nonreal-time VBR, ABR, UBR 3. ATM adaptation layer (AAL) • Originally AAL 1, 2, 3, 4 corresponding to services classes A, B, C, D • Now AAL1, AAL2, AAL3/4, AAL5 • Translate user data into ATM cells
B-ISDN Protocol Reference Model (cont) • 2 sublayers: • Convergence sublayer (CS): service-specific • Segmentation and reassembly (SAR): divides user messages into 48-byte cell payloads and recombines at receiver 2. ATM layer • Connection-oriented transfer of ATM cells (53-byte packets) across network • Establish, maintain, and terminate virtual connections • Routing and congestion control
B-ISDN Protocol Reference Model (cont) • 1. physical (transmission) layer • Physical signal and framing, e.g., SONET • Assumed to be digital, highly reliable, low bit errors
Wrap Up • Protocol layering is a central design principle in all modern networks, although approaches may differ in some aspects • Examples: OSI reference model, TCP/IP protocol suite • While TCP/IP is prevalent in practice, OSI reference model provides a common conceptual understanding and terminology
Spring 2006 EE 5304/EETS 7304 Internet Protocols Data Link Layer, Error Detection, ARQ Tom Oh Dept of Electrical Engineering taehwan@engr.smu.edu
Outline • Data link layer • Error detection • Stop-and-wait ARQ • Go-back-N ARQ • Selective repeat ARQ
Data Link Layer (OSI Layer 2) Layer 3 Network - Routing, congestion control - Hides details of physical layer from network - Adds reliability, synchronization, flow control Data link Layer 2 - Unguaranteed, unstructured bitstream transmission on physical channel - Electrical/optical/radio Physical Layer 1
Data Link Layer (cont) • Adds synchronization (framing), reliability (error control), and flow control • Depends on quality of physical layer • Eg, wireless links are unreliable needing strong error control, optical fiber links are very reliable needing little error control • Framing • Break bitstream into identifiable frames • Frame = block of data + control info. (frame header/trailer)
Framing • Break bitstream into identifiable frames = block of data + control info. (frame header/trailer) • Commonly use special byte pattern (eg, 01111110) to mark beginning and end of frame • Same byte can mark end of one frame and start of next Frame Frame B E B E Node Node
Framing (cont) • What if this byte pattern appears in data? • Bit stuffing: insert 0 bit after every 5 consecutive 1's • Receiver recognizes this pattern and deletes the stuffed 0 bit • Pattern of 6 consecutive 1's can only mean frame beginning/end • More than 6 consecutive 1's is illegal condition
Error Control • To detect random bit errors and possibly correct them • Bit errors can cause lost frame (unrecognizable frame) or errored frame (certain bits are wrong) • Commonly handled by ARQ (automatic repeat request) schemes involving error detection + acknowledgements + retransmissions per frame • Stop-and-wait ARQ • Go-back-N ARQ • Selective-reject (selective repeat) ARQ
Error Control (cont) • Error control = error detection or error correction • Typically only detection -- more efficient to retransmit (ARQ- automatic repeat request) than correct (FEC- forward error correction) if bit error rate is low • ARQ involves overhead cost per packet + costs for ACKs + costs for retransmissions, but retransmissions will be rare if bit error rate is low • FEC requires more code bits per frame → more overhead cost for every packet even if no errors • Error correction must be used when retransmissions cannot be requested, e.g., simplex links, deep space, audio CDs
Error Control (cont) • In ARQ schemes, acknowledgements can be positive or negative • Positive acknowledgement: ACK only frames received error-free • No ACK means need to retransmit • Sender will retransmit frame after time-out • Could be slow to respond to lost frame • Lost ACKS → unnecessary retransmissions
Error Control (cont) • Negative acknowledgement (NACK): NACK only errored frames • NACK means need to retransmit • Saves bandwidth if errors are rare • What if NACK is lost? • Possible complications • Or both positive + negative acks • Sender will retransmit for NACK or lost ACK/NACK
Error Detection • For data of m bits, add an error check of r bits • Error check includes some redundancy of data enough to detect errors but not which error • n-bit codeword = m data bits + r error check bits m data bits r check bits 2m “legal” codewords
Hamming Distance • Hamming distance = minimum number of bit errors to change legal codeword into another legal codeword • To detect d errors, need distance (d+1) code • Takes d+1 or more bit errors to receive legal codeword that was another codeword originally • To correct d errors, need distance (2d+1) code • With d or fewer errors, can always look for closest legal codeword
Hamming Distance (cont) • Eg, codewords: 0000000000, 0000011111, 1111100000, 1111111111 • Distance = 5 → detect up to 4 bit errors C1 C2 5 Up to 4 bit errors are detectable as illegal codewords 4 distance = 5 C3 C4 Codewords 5
Hamming Distance (cont) • Codewords: 0000000000, 0000011111, 1111100000, 1111111111 • Distance = 5 → correct up to 2 bit errors C1 C2 2 2 Up to 2 bit errors are correctable to nearest legal codeword distance = 5 5 C3 C4 Codewords 5
Single (even) Parity Bit • Parity=0 if number of 1 bits in data is even, parity=1 if number is odd (ie, parity bit = binary addition of data bits modulo 2) • Valid codewords should always have even number of 1’s • Distance = 2 code → can detect single bit errors (or odd number of bit errors), no error correction • For long frames or bursty errors, even or odd number of bit errors are equally likely → about equally likely to detect errors as not
Received codewords: Example: legal illegal 0000 0001 0011 0010 transmission 0101 0100 3 bits parity bit 0110 0111 1001 1000 1010 1011 1100 1101 → 23 legal codewords out of 24 possible codewords 1111 1110 Single bit error will change valid word into an invalid word (detectable); double bit error will change valid word into another valid word (undetectable)
Bit-Interleaved Parity (BIP-N) • 1st error check bit = parity bit over 1st bits of all N-bit sequences • 2nd error check bit = parity bit over 2nd bits of all N-bit sequences, etc. • Better for detecting bursts, eg, an error burst of length up to N is easily detected
Horizontal/Vertical Parity Checks • Arrange data in M x N array, calculate parity bits for M rows and N columns • Lower right corner can be parity check over column or row parity bits
Horizontal/Vertical Parity Checks (cont) • Distance = 4 code • Can detect odd number of bit errors in any row or column • Can detect up to 3 bit errors and correct any single bit error • But any rectangular pattern of 4 bit errors is undetectable
IP Example • Internet protocol (IP) checksum • Checksum field is included in IP packet header for error detection • View packet as sequence of 16-bit words, add up all words using ones complement arithmetic • Errors are detected if checksum in header does not match with calculated checksum • Relatively weak error detection but simple implementation • eg, misordering of 16-bit words is not detectable
Cyclic Redundancy Check (CRC) or Polynomial Codes • k-bit string is viewed as coefficients of (k-1)-degree polynomial, eg, 1011 represents 3rd-degree 1x3 + 0x2 + 1x + 1 • All arithmetic is modulo 2, ie, XOR (binary addition/subtraction without carries/borrows) • Modulo 2 long division is like binary except subtraction is modulo 2 • Sender and receiver agree on r-degree generator polynomial G(x) • Both highest order bit and last bit are 1
CRC (cont) • Compute r-bit checksum and append to m-bit data string such that resulting n-bit codeword is exactly divisible by G(x) • (1) append r zeros to end of m-bit data string M(x) to get (m+r) bits representing xrM(x) • (2) divide (modulo 2) xrM(x) by G(x) • (3) r-bit remainder is checksum • Resulting n-bit codeword C(x) is exactly divisible by G(x) with no remainder
Example: M(x)=10011010, G(x)=1101 1. Append temp. 000 to M(x) x3M(x) = 10011010000 11111001 2. Divide by G(x) 1101 10011010000 1101 1001 1101 1000 1101 1011 1101 1100 1101 1000 1101 101 3. Append remainder to M(x) C(x) = 10011010101
CRC (cont) • Receiver divides codeword by G(x), assumes no error only if remainder is 0 • Consider error pattern as polynomial E(x) • Received frame = transmitted codeword C(x) + E(x) • C(x)/G(x) has no remainder -> any remainder is due to E(x)/G(x) • Errors undetectable only if E(x) is exactly divisible by G(x)