Layer 2 Data Framing for Fun and Profit Eric L. Michelsen Inductive Logic Where In the Stack Are We? OSI 7. Application 6. Presentation 5. Session Link Layer Sublayers 4. Transport 3. Network 2. Link 1. Physical 4/27/2001 1490 PPP Frame AAL2 AAL5 Relay HDLC Ether- 802.2 Novell SNAP net II (LLC) IPX ATM Bit serial (V.35, HSSI, DS1, DS3, etc.) Inductive Logic Ethernet 2 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 4/27/2001 Inductive Logic 3 Synchronous HDLC (aka SDLC) 1 octet opening flag 2 or 4 CRC closing flag data flag flag 01111110 ... idle ... 01111110 • 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: flag flag 0111111011111101111110 flag 4/27/2001 Inductive Logic 4 HDLC Bit Stuffing bit stuffed 0 01111110 . . . 111110 . . . . 01111110 opening flag user data: five 1s closing flag • 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 4/27/2001 Inductive Logic 5 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 opening flag 01111110 4/27/2001 2 or 4 data Inductive Logic CRC closing flag idle... 01111110 6 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 opening frame flag address 1 to max-length information 2 CRC closing flag F E DLCI[9:4] DLCI[3:0] C N 7 6 5 4 3 2 1 0 7 6 5 4 3 EA CR =0 4/27/2001 1 B E DE EA C =1 N 2 1 0 Inductive Logic 7 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 F E DLCI[9:4] DLCI[3:0] C N 7 6 5 4 3 2 1 0 7 6 5 4 3 EA CR =0 4/27/2001 B E DE EA C =1 N 2 1 0 Inductive Logic 8 RFC 1490 Multiprotocol Encapsulation in FR • Allows a SNAP-like header in data field to encapsulate raw LAN frames (“bridged” mode) 1 Bridging header (OUI = 0x00-80-C2 for 802.1) encapsulates LAN frame PID specifies with or without LAN FCS 1 1 3 2 6 0 or 4 Ctl pad NLPID OUI PID dest ... =3 =0 =0x80 MAC LAN data optional LAN FCS LAN frame Frame Relay information field • Also allows direct IP encapsulation (“routed” mode) Ctl NLPID = 3 = 0xCC IP packet Frame Relay information field 4/27/2001 Inductive Logic 9 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 S preamble F D destination MAC source MAC 48 (min) to 1502 (max) PID + data pad (if needed) 4 FCS CRC-32 1010 ... 1011 Ethernet Common HW sublayer 4/27/2001 Inductive Logic 10 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 preamble 6 S destination F MAC D 6 source MAC Common HW sublayer 4/27/2001 2 46 (min) to 1500 (max) PID data Ethernet II Inductive Logic pad (if needed) 4 FCS Common HW sublayer 11 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) 8 octets preamble 6 6 2 1 1 1 dest source length DSAP SSAP Ctl MAC MAC 43 to 1497 data 4 pad (if FCS needed) length 4/27/2001 Inductive Logic 12 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) 8 octets preamble 6 6 2 1 1 1 3 2 dest source length DSAP SSAP Ctl OUI PID MAC MAC 38 to 1492 data 4 pad (if FCS needed) length 4/27/2001 Inductive Logic 13 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 8 octets 6 6 2 46 (min) to 1500 (max) 2 IPX destination source preamble length checksum MAC MAC = FFFF IEEE 802.3 4/27/2001 data pad (if needed) 4 FCS IPX header Inductive Logic 14 How Can I Tell? • Check PID/length first, then DSAP/SSAP dest source PID >= preamble MAC MAC data/pad 1536 dest source length DSAP SSAP Ctl preamble MAC MAC 3-1535 data/pad dest source length DSAP SSAP Ctl OUI PID preamble MAC MAC 8-1535 = AA = AA dest source length preamble MAC MAC 2-1535 4/27/2001 FFFF Inductive Logic FCS Ethernet II data/pad data/pad FCS 802.2 FCS 802.2 SNAP FCS Novell old IPX 15 ATM Cells • 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 4/27/2001 Inductive Logic 8 bits GFC/ VPI... VPI... 2 ...VPI VCI... 1 3 ...VCI... 4 ...VCI 5 PT CLP HEC (8-bit CRC) 6 : : Payload 48 octets 53 16 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 PTI = last cell 4/27/2001 cell cell cell cell cell last cell Inductive Logic 17 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 data 0 to 47 pad 1 1 UU ctl 2 4 data length CRC-32 data length 4/27/2001 Inductive Logic 18 RFC 1483 Multiprotocol Encapsulation in ATM • Requires an 802.2 SNAP-like header in data field • Allows for raw LAN frames (“bridged” mode) 1 Header (OUI = 0x00-80-C2 for 802.1) encapsulates LAN frames PID specifies with or without LAN FCS 1 1 3 2 2 6 ... DSAP SSAP Ctl OUI PID pad dest ... =AA =AA =3 00 80 C2 00 xx 00-00 MAC LAN data 0 or 4 optional LAN FCS LAN frame AAL5 or FUNI data field • Also allows direct IP encapsulation (“routed” mode) DSAP SSAP Ctl OUI PID AA 4/27/2001 AA 03 00 00 00 08 00 IP packet Inductive Logic 19 Classical IP Over ATM • RFC 1577 (Classical IP and ARP over ATM) 4/27/2001 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 Inductive Logic 20 FUNI • ATM standard for Frame User-Network Interface • Q.922 HDLC frames to ATM AAL5 interworking • Fully supports ILMI, OAM, SVCs: all ATM management Premise FUNI Interworking cells Device ATM Network Premise format HDLC flag Q.922 VC payload CRC HDLC flag variable VC payload 4/27/2001 Inductive Logic pad ATM format AAL5 trailer 21 Some Common Encapsulations 1483 FUNI (Ethernet) HDLC Q.922 flag DLCI 528 AA AA 03 00 80 C2 00 07 00 00 Ethernet frame CRC HDLC flag 1483 FUNI (IP) HDLC Q.922 flag DLCI 528 AA AA 03 00 00 00 08 00 IP packet CRC HDLC flag 1490 (Ethernet) HDLC Q.922 flag DLCI 16 03 00 80 00 80 C2 00 07 Ethernet frame CRC HDLC flag CRC HDLC flag VC payload CRC HDLC flag ISO protocol packet CRC HDLC flag CRC HDLC flag CRC HDLC flag 1490 (IP) HDLC Q.922 flag DLCI 16 03 CC Q.922 HDLC flag Q.922 Q.922 +1490 HDLC flag Q.922 03 HDLC HDLC flag HDLC + PPP 4/27/2001 NLPID Optional 1 or 2 HDLC Adrs Ctl PPP-PID flag FF 03 IP packet HDLC payload PPP information Inductive Logic 22 Frame Relay Encapsulations 1483 FUNI (Ethernet) HDLC flag Q.922 AA AA 03 00 80 C2 00 07 00 00 Ethernet frame CRC HDLC flag 1483 FUNI (IP) HDLC flag Q.922 AA AA 03 00 00 00 08 00 IP packet CRC HDLC flag 1490 (Ethernet) HDLC flag Q.922 03 00 80 00 80 C2 00 07 Ethernet frame CRC HDLC flag 1490 (IP) HDLC flag Q.922 03 CC CRC HDLC flag “None” HDLC flag Q.922 CRC HDLC flag CRC HDLC flag PPP- HDLC Q.922 RFC1973 flag 4/27/2001 IP packet VC payload variable NL03 PPP-PID PID PPP information Inductive Logic 23 ATM Encapsulations variable “None” (AAL5) pad VC payload AAL5 trailer variable 1483 AA AA 03 00 80 C2 00 07 00 00 (Ethernet) Ethernet frame pad AAL5 trailer variable 1483 IP AA AA 03 00 00 00 08 00 (ATM) IP packet pad AAL5 trailer variable FRF.5 CiscoPPP Q.922 VC payload Optional 1 or 2 Adrs Ctl PPP-PID FF 03 PPP information PPP information PPP-PID 4/27/2001 FE FE pad AAL5 trailer variable 1 or 2 PPP-2364LLC AAL5 trailer variable 1 or 2 PPP-2364NULL pad 03 CF PPP-PID pad AAL5 trailer variable PPP information Inductive Logic pad AAL5 trailer 24 DS1 ESF Framing 193-bit frame M1 DS1-ESF (unchannelized) Reference T1.107 192-bit Payload C1 M2 F1=0 M3 C2 M4 F2=0 M5 C3 M6 F3=1 M7 C4 M8 F4=0 M9 C5 M10 F5=1 M11 C6 M12 F6=1 6-bit CRC 4 x 6 = 24 frames = 1 superframe 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 4/27/2001 Inductive Logic Note: SF (aka D4) framing is not usable for data transport 25 DS3 Framing 680-bit M-subframe X1 84-bit F1=1 Payload C1=1 F2=0 C2=1 F3=0 FE AC 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 FE BE F2=0 FE BE F3=0 FE BE 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 M-subframe Alignment Framing is bit-oriented. C-bit-parity shown. 7 M-subframes = 1 M-frame Reference T1.107 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 Inductive Logic 4/27/2001 FEAC = Far End Alaram & Control FEBE = Far End Block Error DL = Data Link: HDLC EOC 26 STS-1 (component of OCn) 90 Columns Reference GR-253, chap 3. A1 A2 J0/Z 0 STS-1 Payload Capacity (84 useable columns) 8000 x 84 x 9 x 8 = 48.384 Mbps Section overhead B1 E1 F1 J1 J1 H1 H2 H3 B3 B2 K1 K2 C2 STS-1 Envelope Capacity Line D4 D5 D6 overhead ATM cells, etc. G1 87 Columns D7 D8 D9 F2 D10 D11 D12 H4 | S1/ M0 M1/ E2 Z1 Z2 Z3 Transport overhead 810 Byte Frame Fixed Stuff 9 Rows H1/H2 point to the Synchronous Payload Envelope (SPE) at arbitrary byte offset Fixed Stuff D1 D2 D3 Z4 Z5 Framing is byte-oriented. Line rate = 8000 frames/s x 90 x 9 x 8 bits= 51.840 Mbps 4/27/2001 Path Overhead (POH) Inductive Logic 27 STS-Nc SPE STS-12c SPE: 12 x 87 = 1044 Columns J1 J1 B3 B3 C2 C2 G1 G1 F2 STS-3c Payload Capacity: 8000 x 260 x 9 x 8 = 149.760 Mbps F2 H4 260 Columns H4 Z3 Z3 Z4 Z4 Z5 Z5 Path Overhead (POH) 4/27/2001 9 Rows Fixed Stuff Fixed Stuff Fixed Stuff STS-3c SPE: 3 x 87 = 261 Columns 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) Inductive Logic STS-12c Payload Capacity: 8000 x 1040 x 9 x 8 = 599.040 Mbps 1040 Columns 9 Rows Reference GR-253, chap 3. 28 This slide intentionally left blank 4/27/2001 Inductive Logic 29