300 likes | 641 Views
Layer 2 Data Framing for Fun and Profit. Eric L. Michelsen. Where In the Stack Are We?. OSI. 7. Application. 6. Presentation. 5. Session. Link Layer Sublayers. 4. Transport. PPP. 1490. AAL2. AAL5. Ether-net II. 802.2 (LLC). SNAP. Novell IPX. 3. Network. Frame Relay. 2. Link.
E N D
Layer 2 Data Framing for Fun and Profit Eric L. Michelsen
Where In the Stack Are We? OSI 7. Application 6. Presentation 5. Session Link Layer Sublayers 4. Transport PPP 1490 AAL2 AAL5 Ether-net II 802.2 (LLC) SNAP Novell IPX 3. Network Frame Relay 2. Link HDLC ATM 1. Physical Bit serial (V.35, HSSI, DS1, DS3, etc.) Ethernet
Layers Upon Layers • Synchronous HDLC (SDLC) • RFC 1662 (Asynchronous HDLC) • Frame Relay • RFC 1490 (Multiprotocol in Frame Relay) • Four Flavors of Ethernet • ATM (cells, AAL5 packets) • RFC 1483 (Multiprotocol in AAL5) • FUNI • Reference formats: DSL, Frame Relay, ATM, DS1, DS3, SONET
Synchronous HDLC (aka SDLC) 1 octet 2 or 4 • Sends frames (packets) over a serial (synchronous) bit stream • Frames are delimited by flags (8 bits: 01111110) • Shared flag closes one frame and opens the next • Idle is usually flags, but may be 1s (mark idle) • Shared zero flag is deprecated, and often banned: opening flag data CRC closing flag flag flag 01111110 ... idle ... 01111110 flag 0111111011111101111110 flag flag
HDLC Bit Stuffing bit stuffed 0 • Transparency is by “bit stuffing” everything between the flags: any sequence of five 1s has a 0 bit stuffed after it • Stuffed frame length need not be a multiple of 8 bits • Stuffing makes the “effective data rate” pattern sensitive • 3 kinds of CRC: CRC-SDLC (aka CRC-CCITT), CRC-16, and CRC-32 (used by CCITT). • CRC-16 detects errors better, but wasn’t known when CRC-SDLC was chosen. Rarely used. • Hardware sends/detects flags, bit stuffing, CRC 01111110 . . . 111110 . . . . 01111110 opening flag user data:five 1s closing flag
RFC 1662(Asynchronous HDLC) • Sends frames over a synchronous or asynchronous octet stream (e.g., modem, X.25, SONET) • Based on ISO/IEC 3309:1991 (HDLC framing) • Frames delimited by flag octets: 01111110 (0x7E) • Byte stuffing: escape = 0x7D,Following byte = (user data XOR 0x20) • Flag and Escape bytes in user data MUST be escaped • PPP Async Control Character Map (ACCM) specifies other values from 0 - 0x1F to escape (Tx), and ignore (Rx) • Byte stuffing is often done in software 1 octet 2 or 4 opening flag data CRC closing flag idle... 01111110 01111110
Frame Relay • Uses synchronous HDLC framing sublayer • Data Link Control Identifier (DLCI) multiplexes virtual circuits. Usually only local significance. • Uses Q.922 header: Usually 2-octet address (1024 DLCIs), extensions for 3 or 4 (EA=1 on last address octet) • Max information length is configurable, 4096 max 1 octet 2 to 4 1 to max-length 2 1 opening flag frame address information CRC closing flag CR EA =0 DE EA =1 F E C N B E C N DLCI[9:4] DLCI[3:0] 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Frame Relay (cont.) • Link Management Interface (LMI) on fixed DLCI • Forward Explicit Congestion Notification (FECN) set by Frame Relay network if frame experienced congestion • Backward ECN set if reverse direction is congested • FECN & BECN set by network only • Q.922 is not clear if user equipment can set them or not • Discard Eligible, set by network for overcommitted, or user for low priority, frames • C/R bit carried transparently by Frame Relay network frame address CR EA =0 DE EA =1 F E C N B E C N DLCI[9:4] DLCI[3:0] 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
RFC 1490Multiprotocol Encapsulation in FR • Allows a SNAP-like header in data field to encapsulate raw LAN frames (“bridged” mode) • Bridging header (OUI = 0x00-80-C2 for 802.1) encapsulates LAN frame • PID specifies with or without LAN FCS 1 1 1 3 2 6 0 or 4 Ctl =3 pad =0 NLPID =0x80 OUI PID optional LAN FCS dest MAC ... LAN data LAN frame Frame Relay information field • Also allows direct IP encapsulation (“routed” mode) Ctl = 3 NLPID = 0xCC IP packet Frame Relay information field
Four Flavors of Ethernet • Ethernet II • IEEE 802.2 • IEEE 802.2 SNAP • Novell IPX (“raw 802.3”) • All use a common hardware sublayer: • This is the basis of the “64-byte” minimum frame size • Finally recognized by IEEE 802.3-1998 as the “MAC” layer frame size 64 to 1518 8 octets 6 6 48 (min) to 1502 (max) 4 preamble S F D destination MAC source MAC PID + data pad (if needed) FCS CRC-32 1010 ... 1011 Ethernet Common HW sublayer
Ethernet II • First widespread Ethernet standard • PIDs administered by IEEE • All IP on Ethernet is required to support this (RFC 1122), and almost all use it. • All PIDs are >= 1536 (decimal) • Exact packet length is not available from frame data alone, because of padding 8 octets 6 6 2 4 46 (min) to 1500 (max) S F D destination MAC source MAC PID data FCS pad (if needed) preamble Common HW sublayer Ethernet II Common HW sublayer
Ethernet IEEE 802.2 • Destination and Source Service Access Points (DSAP and SSAP) are essentially protocol IDs • Used by IPX since Netware 3.12 (SAP=0xE0) • Not used for IP • Exact length available because ‘length’ specifies valid data, not including padding • Don’t confuse Service Access Point (SAP) with Service Advertising Protocol (SAP) 43 to 1497 8 octets 6 6 2 1 1 1 4 preamble dest MAC source MAC length DSAP SSAP Ctl data FCS pad (if needed) length
IEEE 802.2 SNAP • SubNetwork Access Protocol (SNAP) • OUI + PID allows vendors to define globally unique protocol identifiers • OUI = Organizationally Unique Identifier • OUI = 0 implies PID is an Ethernet II PID • Optional support in IP (RFC 1042) 38 to 1492 8 octets 6 6 2 4 1 1 1 3 2 preamble dest MAC source MAC length DSAP SSAP Ctl OUI PID FCS pad (if needed) data length
Novell IPX (“raw 802.3”) • Defined by Novell before 802.3 was complete • Phased out by Novell in Netware 3.12 • “Checksum” is forced to 0xFFFF (=> none), takes place of DSAP/SSAP • Does not allow a real IPX checksum 46 (min) to 1500 (max) 8 octets 6 6 2 4 2 preamble destination MAC source MAC length IPX checksum = FFFF FCS pad (if needed) data IEEE 802.3 IPX header
How Can I Tell? • Check PID/length first, then DSAP/SSAP preamble dest MAC source MAC PID >= 1536 FCS FCS data/pad Ethernet II preamble dest MAC source MAC length 3-1535 DSAP SSAP Ctl FCS 802.2 data/pad preamble dest MAC source MAC length 8-1535 DSAP = AA SSAP = AA Ctl OUI PID FCS 802.2 SNAP data/pad preamble dest MAC source MAC length 2-1535 FFFF FCS Novell old IPX data/pad
ATM Cells ¬ 8 bits ® GFC/ VPI... • Synchronous bit stream • Bit stream may be framed (DS3, OC3) • Cells are 53 bytes: 5 header + 48 payload • Idle with null or unassigned cells • Cell delineation usually by Header Error Check (HEC) • ATM switches operate primarily on cells, ignoring payload type (PT) • VPI/VCI is virtual circuit identifier • VPI is 8 bits (UNI) or 12 bits (NNI) • VCI is 16 bits • CLP is like Frame Relay DE 1 2 3 4 5 6 : : 53 VPI... ...VPI VCI... ...VCI... ...VCI PT CLP HEC (8-bit CRC) Payload 48 octets
ATM AAL5 (Packets) • Packet framing above cell layer • ATM Adaptation Layer 5 (AAL5) includes Segmentation and Reassembly (SAR) of packets • User-user bit in cell header payload-type (PTI) indicates last cell in packet packet layer packets SAR (AAL5) cells ATM layer cell header AAL5 packet cell cell cell cell cell cell PTI = last cell last cell
ATM AAL5 (Packets), cont. • Control, length, and CRC-32 at end of last cell • Control field currently unused • ‘data length’ provides precise length • Length in trailer allows starting to send packet before length is known • (cut through switches, e.g. frame to ATM) N x 48 0 to 65,535 octets 0 to 47 2 4 1 1 data pad UU ctl data length CRC-32 data length
RFC 1483Multiprotocol Encapsulation in ATM • Requires an 802.2 SNAP-like header in data field • Allows for raw LAN frames (“bridged” mode) • Header (OUI = 0x00-80-C2 for 802.1) encapsulates LAN frames • PID specifies with or without LAN FCS 1 1 1 3 2 2 6 ... 0 or 4 optional LAN FCS dest MAC DSAP =AA SSAP =AA Ctl =3 OUI PID 00 80 C2 00 xx pad00-00 ... LAN data LAN frame AAL5 or FUNI data field • Also allows direct IP encapsulation (“routed” mode) DSAP AA SSAP AA Ctl 03 OUI PID 00 00 00 08 00 IP packet
Classical IP Over ATM • RFC 1577 (Classical IP and ARP over ATM) • Specifies RFC 1483 Routed IP format (802.2 SNAP) • Defines Inverse-ARP for identifying your IP peer • Defines a bunch of LAN Emulation (LANE) SVC stuff that no one uses
Q.922 CRC FUNI • ATM standard for Frame User-Network Interface • Q.922 HDLC frames to ATM AAL5 interworking • Fully supports ILMI, OAM, SVCs: all ATM management FUNI Interworking Device cells Premise Premise format ATM Network HDLC flag VC payload HDLC flag ATM format variable VC payload pad AAL5 trailer
AA AA 03 AA AA 03 03 00 80 00 80 C2 00 00 00 00 80 C2 00 07 00 07 00 00 08 00 CRC CRC CRC 03 CC CRC Adrs CtlFF 03 CRC CRC CRC Q.922 CRC Q.922 DLCI 528 Q.922 Q.922 DLCI 528 Q.922 DLCI 16 Q.922 DLCI 16 03 NL-PID Some Common Encapsulations 1483 FUNI (Ethernet) HDLC flag Ethernet frame HDLC flag 1483 FUNI (IP) HDLC flag IP packet HDLC flag 1490 (Ethernet) HDLC flag Ethernet frame HDLC flag 1490 (IP) HDLC flag IP packet HDLC flag HDLC flag VC payload HDLC flag Q.922 Q.922 +1490 HDLC flag ISO protocol packet HDLC flag HDLC flag HDLC payload HDLC flag HDLC Optional 1 or 2 HDLC + PPP HDLC flag PPP information PPP-PID HDLC flag
03 00 80 AA AA 03 AA AA 03 00 80 C2 00 00 00 00 80 C2 00 07 00 07 08 00 00 00 CRC Q.922 Q.922 Q.922 Q.922 CRC CRC 03 PPP-PID CRC Q.922 Q.922 03 CC CRC CRC Q.922 Frame Relay Encapsulations 1483 FUNI (Ethernet) HDLC flag Ethernet frame HDLC flag 1483 FUNI (IP) HDLC flag IP packet HDLC flag 1490 (Ethernet) HDLC flag Ethernet frame HDLC flag 1490 (IP) HDLC flag IP packet HDLC flag HDLC flag VC payload HDLC flag “None” v a r i a b l e HDLC flag NL-PID PPP information HDLC flag PPP-RFC1973
AA AA 03 AA AA 03 00 80 C2 00 00 00 08 00 00 00 00 07 Q.922 Adrs CtlFF 03 FE FE 03 CF ATM Encapsulations variable “None”(AAL5) VC payload pad AAL5 trailer variable 1483 (Ethernet) Ethernet frame pad AAL5 trailer variable 1483 IP(ATM) IP packet pad AAL5 trailer variable FRF.5 VC payload pad AAL5 trailer Optional 1 or 2 variable Cisco-PPP PPP-PID PPP information pad AAL5 trailer 1 or 2 variable PPP-2364-NULL PPP-PID PPP information pad AAL5 trailer 1 or 2 variable PPP-2364-LLC PPP-PID PPP information pad AAL5 trailer
192-bit Payload DS1 ESF Framing 193-bit frame DS1-ESF (unchannelized) M1 C1 M2 F1=0 M3 C2 M4 F2=0 M5 C3 M6 F3=1 Reference T1.107 4 x 6 = 24 frames = 1 superframe M7 C4 M8 F4=0 M9 C5 M10 F5=1 M11 C6 M12 F6=1 6-bit CRC Frame Alignment Signal (FAS) 4 kbps Facility Data Link (FDL) Framing is bit-oriented (rather than octet-oriented) 8k frames/s x 193 = 1.544 Mbps line rate (exactly) 8k frames/s x 192 = 1.536 Mbps payload rate (exactly) 8k frames/s 24 333 superframes/s Note: SF (aka D4) framing is not usable for data transport
DS3 Framing 680-bit M-subframe X1 84-bit Payload F1=1 C1=1 F2=0 C2=1 F3=0 FEAC F4=1 X2 F1=1 C1=1 F2=0 C2=1 F3=0 C3=1 F4=1 P1 F1=1 CP F2=0 CP F3=0 CP F4=1 P2 F1=1 FEBE F2=0 FEBE F3=0 FEBE F4=1 M1=0 F1=1 DL F2=0 DL F3=0 DL F4=1 M2=1 F1=1 C1=1 F2=0 C2=1 F3=0 C3=1 F4=1 M3=0 F1=1 C1=1 F2=0 C2=1 F3=0 C3=1 F4=1 M-Frame Alignment 7 M-subframes = 1 M-frame M-subframe Alignment Reference T1.107 FEAC = Far End Alaram & Control FEBE = Far End Block Error DL = Data Link: HDLC EOC Framing is bit-oriented. C-bit-parity shown. M23 mode sets C1 in subframe-1 randomly, other C-bits per stuffing X1 = X2 = not Remote Alarm Indication (RAI) P1 = P2 = CP = XOR of previous M-frame payload bits CP are end-to-end parity bits 44.736 Mbps line rate (exact) 44.736 x (84 / 85) 44.210 Mbps payload rate
STS-1 (component of OCn) 90 Columns Reference GR-253, chap 3. A1 A2 J0/Z0 Section overhead B1 E1 F1 STS-1 Payload Capacity (84 useable columns) 8000 x 84 x 9 x 8 = 48.384 Mbps D1 D2 D3 H1/H2 point to the Synchronous Payload Envelope (SPE) at arbitrary byte offset J1 J1 H1 H2 H3 B3 9 Rows B2 K1 K2 C2 STS-1 Envelope Capacity 87 Columns ATM cells, etc. D4 D5 D6 G1 Line overhead D7 D8 D9 F2 Fixed Stuff Fixed Stuff D10 D11 D12 H4 S1/Z1 M0 | M1/Z2 E2 Z3 810 Byte Frame Z4 Transport overhead Z5 Framing is byte-oriented. Line rate = 8000 frames/s x 90 x 9 x 8 bits= 51.840 Mbps Path Overhead (POH)
1040 Columns 260 Columns STS-Nc SPE STS-3c SPE: 3 x 87 = 261 Columns STS-12c SPE: 12 x 87 = 1044 Columns J1 STS-3c Payload Capacity: 8000 x 260 x 9 x 8 = 149.760 Mbps J1 STS-12c Payload Capacity: 8000 x 1040 x 9 x 8 = 599.040 Mbps B3 B3 C2 C2 G1 G1 F2 F2 Fixed Stuff Fixed Stuff Fixed Stuff H4 H4 Z3 Z3 Z4 Z4 Z5 Z5 9 Rows 9 Rows Path Overhead (POH) Path Overhead (POH) Line Rate = N x 51.840 Mbps Framing chosen to match STM-N STS-48c (not shown) is exactly 4 times STS-12c (POH + 15 Stuff) Reference GR-253, chap 3.