600 likes | 685 Views
Data-link layer Functions. CSE524: Lecture 15. Administrative. No office hours next Wednesday Demos 12/9 See web site for available slots Sign up for a slot after class or via e-mail Read e-mail message for instructions on what to submit before demo. Where we’re at….
E N D
Data-link layer Functions CSE524: Lecture 15
Administrative • No office hours next Wednesday • Demos 12/9 • See web site for available slots • Sign up for a slot after class or via e-mail • Read e-mail message for instructions on what to submit before demo
Where we’re at… • Internet architecture and history • Internet protocols in practice • Application layer • Transport layer • Network layer • Data-link layer • Functions • Specific link layer examples and devices • Physical layer
application transport network link physical M H M t H H M n t H H H H H H M M n t l n t l 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 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 • Error detection and correction • Flow control • Reliable delivery • Security • Media access and quality of service
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) • Biggest issue • 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
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: 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: 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 …. Goal: detect bit errors in transmitted segment DL: Checksums 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 • Subtraction equivalent to XOR • Weak definition of magnitude • X >= Y iff position of highest 1 bit of X is the same or greater than the highest 1 bit of Y • Record remainder after division and send after data • Result divisible by generator polynomial
DL: CRC example Data: 101110 Generator Polynomial: x3 + 1 (1001) Send: 101110011
DL: CRC example Data: 10000 Generator Polynomial: x2 + 1 (101) Send: 1000001 G 10101 101 1000000 101 010 000 100 101 010 000 100 101 01 D R
DL: Cyclic Redundancy Check (CRC) • CRC-16 implementation • Shift register and XOR gates
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: 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: Flow control • Pacing between sender and receiver • Sender prevented from overrunning receiver • Ready-To-Send, Clear-To-Send
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: Security • Mainly for broadcast data-link layers • Encrypt payload of higher layers • Hide IP source/destination from eavesdroppers • Important for wireless LANs especially • Parking lot attacks • 802.11b and WEP • If time permits, security will be covered at the end of the course….
DL: Media access and quality of service • How and when can a node transmit? • Directly controls per-hop quality-of-service • Three types of links • point-to-point (single wire, e.g. PPP, SLIP) • broadcast (shared wire or medium; e.g, Ethernet, Wavelan, etc.) • switched (e.g., switched Ethernet, ATM etc)
DL: Media access • Point-to-point link and switched media no problem • Broadcast links? • Network arbitration • Give everyone a fixed time/freq slot? • Ok for fixed bandwidth (e.g., voice) • What if traffic is bursty? • Centralized arbiter • Ex: cell phone base station • Single point of failure • Distributed arbitration • Aloha/Ethernet • Humans use multiple access protocols all the time
DL: Media access protocols • single shared communication channel • two or more simultaneous transmissions by nodes: interference • only one node can send successfully at a time • multiple access protocol: • distributed algorithm that determines how stations share channel, i.e., determine when station can transmit • communication about channel sharing uses channel itself! • what to look for in multiple access protocols: • synchronous or asynchronous • information needed about other stations • robustness (e.g., to channel errors) • performance
DL: Media access protocols Three broad classes: • Channel Partitioning • divide channel into smaller “pieces” (time slots, frequency) • allocate piece to node for exclusive use • Random Access • allow collisions • “recover” from collisions • “Taking turns” • tightly coordinate shared access to avoid collisions Goal: efficient, fair, simple, decentralized