850 likes | 982 Views
CSE524: Lecture 4. Data-link Layer (Part 1). Administrative. Homework #1 due Reading assignment due by Mon. 10/8/2001 Chapter 5: Sections 5.1-5.4 CSE524 e-mail list E-mail TA if you still have not received any messages from the list. Last class. Physical layer Copper Fiber Wireless.
E N D
CSE524: Lecture 4 Data-link Layer (Part 1)
Administrative • Homework #1 due • Reading assignment due by Mon. 10/8/2001 • Chapter 5: Sections 5.1-5.4 • CSE524 e-mail list • E-mail TA if you still have not received any messages from the list
Last class • Physical layer • Copper • Fiber • Wireless
Next layer • Data-link layer • Functions • Specific link layer examples • Data-link layer devices
M H H H H H H H H H t n l t t n l t n M M application transport network link physical M Data-link layer • Two physically connected devices: • host-router, router-router, host-host, host-switch, host-hub • Implemented on network adapter card • typically includes: RAM, DSP chips, host bus interface, and link interface network link physical data link protocol M frame phys. link adapter card
Data-link layer functions • Moving datagrams between adjacent nodes • Digital to analog conversion • Framing • Physical addressing • Demux to upper protocol • Flow control • Error detection and correction • Reliable delivery • Security • Media access and quality of service
Data-link layer examples • Specific implementations • Ethernet 802.3 • Token ring 802.5 • WiFi 802.11b • PPP • FDDI • ATM • SONET/SDH
Data-link layer devices • Devices which operate at the data-link layer level • Hubs • Bridges • Switches
DL: Digital to analog conversion • Bits sent as analog signals • Photonic pulses of a given wavelength over optical fiber • Electronic signals of a given voltage
DL: Digital to analog conversion • Will cover electronic transmission (optical transmission left for you to research) • When to sample voltage? • Detecting sequences involves clocking with the same clock • How to synchronize sender and receiver clocks? • Need easily detectible event at both ends • Signal transitions help resync sender and receiver • Need frequent transitions to prevent clock skew • http://www.mouse.demon.nl/ckp/telco/encode.htm
DL: RZ • Return to Zero (RZ) • 1=pulse to high, dropping back to low • 0=no transition
DL: NRZ-L • Non-Return to Zero Level (NRZ-L) • 1=high signal, 0=lower signal • Long sequence of same bit causes difficulty • DC bias hard to detect – low and high detected by difference from average voltage • Clock recovery difficult • Used by Synchronous Optical Network (SONET) • SONET XOR’s bit sequence to ensure frequent transitions • Used in early magnetic tape storage
DL: NRZ-M • Non-Return to Zero Mark • Less power to transmit versus NRZ • 1=signal transition at start of bit, 0=no change • No problem with string of 1’s • NRZ-like problem with string of 0’s • Used in SDLC (Synchronous Data Link Control) • Used in modern magnetic tape storage
DL: NRZ-S • Non-Return to Zero Space • 1=no change, 0=signal transition at start of bit • No problem with string of 0’s • NRZ-like problem with string of 1’s
DL: Manchester (Bi-Phase-Level) coding • Used by Ethernet • 0=low to high transition, 1=high to low transition • Transition for every bit simplifies clock recovery • Not very efficient • Doubles the number of transitions • Circuitry must run twice as fast
DL: Manchester coding • Encoding for 110100 Bit stream 1 1 0 1 0 0 Manchester encoding
DL: Other coding schemes • Bi-Phase-Mark, Bi-Phase-Space • Level change at every bit period boundary • Mid-period transition determines bit • Bi-Phase-M: 0=no change, 1=signal transition • Bi-Phase-S: 0=signal transition, 1=no change
DL: Other coding schemes • Differential Bi-Phase-Space, Differential Bi-Phase-Mark • Level change at every mid-bit period boundary • Bit period boundary transition determines bit • Diff-Bi-Phase-M: 0=signal transition, 1=no change • Diff-Bi-Phase-S: 0=no change, 1=signal transition
DL: Framing • Data encapsulation for transmission over physical link • Data embedded within a link-layer frame before transmission • Data-link header and/or trailer added • Physical addresses used in frame headers to identify source and destination (not IP)
DL: Fixed length framing • Length delimited • Beginning of frame has length • Single corrupt length can cause problems • Must have start of frame character to resynchronize • Resynchronization can fail if start of frame character is inside packets as well
DL: Variable length framing • Byte stuffing • Special start of frame byte (e.g. 0xFF) • Special escape byte value (e.g. 0xFE) • Values actually in text are replaced (e.g. 0xFF by 0xFEFF and 0xFE by 0xFEFE) • Worst case – can double the size of frame • Bit stuffing • Special bit sequence (0x01111110) • 0 bit stuffed after any 11111 sequence
DL: Clock-Based Framing • Used by SONET • Fixed size frames (810 bytes) • Look for start of frame marker that appears every 810 bytes • Will eventually sync up
DL: Physical addressing • LAN (or MAC or physical) address • Used to get datagram from one interface to another physically-connected interface (same network) • IP address used to route between networks • 48 bit MAC address (for most LANs) burned in adapter ROM • ifconfig –a • arp -a • Address space assigned and managed by IEEE • Manufacturer buys portion of MAC address space to ensure uniqueness • Special LAN broadcast address • FF-FF-FF-FF-FF-FF
DL: Physical addressing • Why have separate IP and hardware addresses? • Assign adapters an IP address • Hardware only works for IP (no IPX, DECNET) • Must be reconfigured when moved • Use hardware address as network address • Need standardized fixed length hardware address • No route aggregation
DL: Physical addressing • Analogy: (a) MAC address: like Social Security Number (b) IP address: like postal address • MAC flat address => portability • can move LAN card from one LAN to another • IP hierarchical address NOT portable • depends on network to which one attaches
DL: Demux to upper protocol • Protocol type specification interfaces to network layer • Data-link layer can support any number of network layers • Type field in data-link header specifies network layer of packet • IP is one of many network layers • Each data-link layer defines its own protocol type numbering for network layer
DL: Demux to upper protocol • http://www.cavebear.com/CaveBear/Ethernet/type.html • Some Ethernet protocol types • 0800 DOD Internet Protocol (IP) • 0806 Address Resolution Protocol (ARP) • 8037 IPX (Novell Netware) • 80D5 IBM SNA Services • 809B EtherTalk (AppleTalk over Ethernet)
DL: LAN Addresses and ARP Each adapter on LAN has unique LAN address
223.1.1.1 223.1.2.1 E B A 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 223.1.3.27 223.1.1.3 223.1.3.2 223.1.3.1 DL: Recall earlier routing discussion Starting at A, given IP datagram addressed to B: • look up net. address of B, find B on same net. as A • link layer send datagram to B inside link-layer frame frame source, dest address datagram source, dest address A’s IP addr B’s IP addr B’s MAC addr A’s MAC addr IP payload datagram frame
Question: how to determine MAC address of B given B’s IP address? DL: ARP: Address Resolution Protocol • Each IP node (Host, Router) on LAN has ARP module, table • ARP Table: IP/MAC address mappings for some LAN nodes < IP address; MAC address; TTL> < ………………………….. > • TTL (Time To Live): time after which address mapping will be forgotten (typically 20 min)
DL: ARP protocol • A knows B's IP address, wants to learn physical address of B • A broadcasts ARP query pkt, containing B's IP address • all machines on LAN receive ARP query • B receives ARP packet, replies to A with its (B's) physical layer address • A caches (saves) IP-to-physical address pairs until information becomes old (times out) • soft state: information that times out (goes away) unless refreshed
DL: Routing to another LAN walkthrough: routing from A to B via R • In routing table at source Host, find router 111.111.111.110 • In ARP table at source, find MAC address E6-E9-00-17-BB-4B, etc A R B
A creates IP packet with source A, destination B • A uses ARP to get R’s physical layer address for 111.111.111.110 • A creates Ethernet frame with R's physical address as dest, Ethernet frame contains A-to-B IP datagram • A’s data link layer sends Ethernet frame • R’s data link layer receives Ethernet frame • R removes IP datagram from Ethernet frame, sees its destined to B • R uses ARP to get B’s physical layer address • R creates frame containing A-to-B IP datagram sends to B A R B
DL: RARP, BOOTP, DHCP ARP: Given an IP address, return a hardware address RARP: Given a hardware address, give me the IP address DHCP, BOOTP: Similar to RARP Hosts (host portion): • hard-coded by system admin in a file • DHCP:Dynamic Host Configuration Protocol: dynamically get address: “plug-and-play” • host broadcasts “DHCP discover” msg • DHCP server responds with “DHCP offer” msg • host requests IP address: “DHCP request” msg • DHCP server sends address: “DHCP ack” msg
DL: Flow control • Pacing between sender and receiver • Sender prevented from overrunning receiver • Ready-To-Send, Clear-To-Send
DL: Error detection/correction • Errors caused by signal attenuation, noise. • Receiver detects presence of errors • Possible actions • Signal sender for retransmission • Drops frame • Correct bit errors if possible and continue
DL: Error detection/correction • EDC= Error Detection and Correction bits (redundancy) • D = Data protected by error checking, may include header fields • Error detection not 100% reliable! • protocol may miss some errors, but rarely • larger EDC field yields better detection and correction
DL: Parity checking Two Dimensional Bit Parity: Detect and correct single bit errors Single Bit Parity: Detect single bit errors 0 0
Receiver: compute checksum of received segment check if computed checksum equals checksum field value: NO - error detected YES - no error detected. But maybe errors nonethless? More later …. DL: Checksums Goal: detect bit errors in transmitted segment Sender: • treat segment contents as sequence of 16-bit integers • checksum: addition (1’s complement sum) of segment contents • simple to implement, weak detection (easily tricked by common bit error patterns) • used by TCP, UDP, IP.. • sender puts checksum value into header
DL: Cyclic Redundancy Check (CRC) • Polynomial code • Treat packet bits a coefficients of n-bit polynomial • Choose r+1 bit generator polynomial (well known – chosen in advance) • Add r bits to packet such that message is divisible by generator polynomial • Better loss detection properties than checksums • All single bit errors, all double bit errors, all odd-numbered errors, burst errors less than r
DL: Cyclic Redundancy Check (CRC) • Calculate code using modulo 2 division of data by generator polynomial • Record remainder after division and send after data • Result divisible by generator polynomial
DL: CRC polynomials • CRC-16 = x16 + x15 + x2+ 1 (used in HDLC) • CRC-CCITT = x16 + x12 + x5 + 1 • CRC-32 = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (used in Ethernet)
DL: Cyclic Redundancy Check (CRC) • CRC-16 implementation • Shift register and XOR gates
DL: CRC example Data: 101110 Generator Polynomial: x3 + 1 (1001) Send: 101110011
DL: Forward error correction • FEC • Use error correcting codes to repair losses • Add redundant information which allows receiver to correct bit errors • Suggest looking at information and coding theory work.
DL: Reliable delivery • Reliability at the link layer • Handled in a similar manner to transport protocols • When and why should this be used? • Rarely done over twisted-pair or fiber optic links • Usually done over lossy links for performance improvement (versus correctness)
DL: ARQ • Automatic Repeat Request (ARQ) • Receiver sends acknowledgement (ACK) when it receives packet • Sender waits for ACK and timeouts if it does not arrive within some time period
Packet ACK DL: Stop and Wait • Simplest ARQ protocol • Send a packet, stop and wait until acknowledgement arrives Sender Receiver Time Timeout