Inductive Logic Layer 2 Data Framing for Fun and Profit Eric L. Michelsen
Inductive Logic 4/27/20012 Where In the Stack Are We? 1. Physical 3. Network 5. Session 4. Transport 6. Presentation 7. Application 2. Link OSI Bit serial (V.35, HSSI, DS1, DS3, etc.) HDLC ATM AAL2 Frame Relay AAL5PPP Ethernet Ether- net II (LLC) SNAP Novell IPX 1490 Link Layer Sublayers
Inductive Logic 4/27/20013 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
Inductive Logic 4/27/20014 Synchronous HDLC (aka SDLC) Sends frames (packets) over a serial (synchronous) bit stream Frames are delimited by flags (8 bits: ) 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: idle flag 2 or 4 opening flag 1 octet closing flag flag CRC data
Inductive Logic 4/27/20015 HDLC Bit Stuffing 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 opening flagclosing flaguser data: five 1s bit stuffed 0
Inductive Logic 4/27/20016 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: (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 idle... opening flag 2 or 4 1 octet closing flag CRC data
Inductive Logic 4/27/20017 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 2 1 octet frame address 1 to max-length2 to DLCI[9:4]DLCI[3:0] CR EA =0 FECNFECN BECNBECN DE EA =1 1 opening flag closing flag CRC information
Inductive Logic 4/27/20018 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 DLCI[9:4]DLCI[3:0] CR EA =0 FECNFECN BECNBECN DE EA =1
Inductive Logic 4/27/20019 RFC 1490 Multiprotocol 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 or 4 LAN frame 6 Frame Relay information field 11 Also allows direct IP encapsulation (“routed” mode) Ctl = 3 Frame Relay information field NLPID = 0xCC dest MAC LAN data optional LAN FCS Ctl =3 OUI PID... pad =0 NLPID =0x80 IP packet
Inductive Logic 4/27/ Four Flavors of Ethernet Ethernet II IEEE IEEE 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 as the “MAC” layer preamble source MAC PID + data FCS octets66 48 (min) to 1502 (max) 4 CRC-32 frame size 64 to 1518 pad (if needed) SFDSFD Ethernet Common HW sublayer destination MAC
Inductive Logic 4/27/ 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 preamble data 8 octets6642 pad (if needed) SFDSFD Ethernet IICommon HW sublayer 46 (min) to 1500 (max) Common HW sublayer source MAC destination MAC PIDFCS
Inductive Logic 4/27/ Ethernet IEEE 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) data 2 43 to length pad (if needed) preamble 8 octets 4 FCS dest MAC source MAC 6 length DSAPSSAPCtl
Inductive Logic 4/27/ IEEE 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) data 66 length pad (if needed) 38 to 1492 preamble 8 octets 4 FCS dest MAC source MAC 2 length DSAPSSAP 111 Ctl OUI PID 3 2
Inductive Logic 4/27/ Novell IPX (“raw 802.3”) Defined by Novell before 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 preamble destination MAC data 8 octets664 IPX header pad (if needed) 46 (min) to 1500 (max) 2 IPX checksum = FFFF IEEE FCS 2 source MAC length
Inductive Logic 4/27/ preamble source MAC dest MAC source MAC dest MAC source MAC dest MAC How Can I Tell? Check PID/length first, then DSAP/SSAP data/pad FCS data/pad SSAPCtl data/pad preamble source MAC length Ethernet II SNAP Novell old IPX length SSAP = AA length dest MAC DSAP FFFF DSAP = AA PID >= 1536 FCS Ctl OUI PID
Inductive Logic 4/27/ 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 GFC/ VPI... VCI......VCI......VCI VPI......VPI PT CLP HEC (8-bit CRC) Payload 48 octets : 53 8 bits
Inductive Logic 4/27/ 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 SAR (AAL5) cells ATM layer packet layer packets cell AAL5 packet last cell PTI = last cell cell header
Inductive Logic 4/27/ 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) CRC ctl 1 pad 0 to 65,535 octets0 to 47 N x 48 UU 1 data length data length
Inductive Logic 4/27/ dest MAC LAN data DSAP =AA SSAP =AA Ctl =3 pad LAN frame 6... AAL5 or FUNI data field... RFC 1483 Multiprotocol Encapsulation in ATM optional LAN FCS 0 or 4 Requires an 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 Also allows direct IP encapsulation (“routed” mode) DSAP AA SSAP AA Ctl 03 OUI PID OUI PID C2 00 xx IP packet
Inductive Logic 4/27/ 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
Inductive Logic 4/27/ FUNI ATM standard for Frame User-Network Interface Q.922 HDLC frames to ATM AAL5 interworking Fully supports ILMI, OAM, SVCs: all ATM management Interworking Device cells Premise VC payload padAAL5 trailer variable VC payload HDLC flag CRC HDLC flag Q.922 Premise format ATM format ATM Network FUNI
Inductive Logic 4/27/ VC payload HDLC flag CRC Q.922 Q ISO protocol packet HDLC flag CRC 1490 (IP) 1483 FUNI (IP) IP packet HDLC flag CRC03 CC IP packet HDLC flag CRC HDLC flag 1483 FUNI (Ethernet) Ethernet frame HDLC flag Q.922 DLCI 528 CRC AA AA C HDLC flag Q.922 DLCI 528 AA AA (Ethernet) Ethernet frame Q.922 DLCI C CRC HDLC flag Some Common Encapsulations HDLC flag Q.922 DLCI 16 Q NL- PID HDLC payload HDLC flag CRC HDLC HDLC flag HDLC + PPP PPP information HDLC flag Adrs Ctl FF 03 CRC HDLC flag Optional PPP-PID 1 or 2
Inductive Logic 4/27/ VC payload HDLC flag CRC “None” HDLC flag PPP information HDLC flag CRC PPP- RFC1973 HDLC flag 03 PPP-PID v a r i a b l e NL- PID Frame Relay Encapsulations 1490 (IP) 1483 FUNI (IP) IP packet HDLC flag CRC03 CC IP packet HDLC flag CRC HDLC flag 1483 FUNI (Ethernet) Ethernet frame HDLC flag CRC AA AA C HDLC flag AA AA (Ethernet) Ethernet frame C CRC HDLC flag Q.922
Inductive Logic 4/27/ VC payload “None” (AAL5) padAAL5 trailer 1483 IP (ATM) IP packet padAAL5 trailer variable 1483 (Ethernet) Ethernet frame AA AA C padAAL5 trailer variable ATM Encapsulations AA AA Cisco- PPP PPP information Adrs Ctl FF 03 Optional padAAL5 trailer variable PPP-PID 1 or 2 PPP NULL PPP information padAAL5 trailer variable PPP-PID 1 or 2 FE FE 03 CF PPP LLC PPP information padAAL5 trailer variable PPP-PID 1 or 2 VC payload Q.922 padAAL5 trailer variable FRF.5
Inductive Logic 4/27/ M11M12F6=1C6 DS1 ESF Framing DS1-ESF (unchannelized) M1C1M2F1=0 M3C2M4F2=0 M5C3M6F3=1 M7C4M8F4=0 M9C5M10F5=1 192-bit Payload Frame Alignment Signal (FAS) 6-bit CRC 4 kbps Facility Data Link (FDL) 193-bit frame 4 x 6 = 24 frames = 1 superframe Framing is bit-oriented (rather than octet-oriented) 8k frames/s x 193 = Mbps line rate (exactly) 8k frames/s x 192 = Mbps payload rate (exactly) 8k frames/s 24 333 superframes/s Reference T1.107 Note: SF (aka D4) framing is not usable for data transport
Inductive Logic 4/27/ C1=1C2=1C3=1 C1=1C2=1C3=1 FE BE C1=1F1=1C2=1F2=0 FE AC F3=0F4=1 C1=1F1=1C2=1F2=0C3=1F3=0F4=1 CPF1=1CPF2=0CPF3=0F4=1 FE BE F1=1F2=0F3=0F4=1 DLF1=1DLF2=0DLF3=0F4=1 F1=1F2=0F3=0F4=1 F1=1F2=0F3=0F4=1 M2 =1 DS3 Framing X1 X2 P1 P2 M1 =0 84-bit Payload M-subframe Alignment 680-bit M-subframe 7 M-subframes = 1 M-frame 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 Mbps line rate (exact) x (84 / 85) Mbps payload rate M3 =0 M-Frame Alignment Reference T1.107 FEAC = Far End Alaram & Control FEBE = Far End Block Error DL = Data Link: HDLC EOC
Inductive Logic 4/27/ STS-1 (component of OCn) 90 Columns 810 Byte Frame Framing is byte-oriented. Line rate = 8000 frames/s x 90 x 9 x 8 bits= Mbps Reference GR-253, chap 3. A1A2 J0/Z 0 B1E1F1 D1D2D3 H1H2H3 B2K1K2 D4D5D6 D7D8D9 D10D11D12 S1/ Z1 M0 | M1/ Z2 E2 9 Rows STS-1 Envelope Capacity 87 Columns Section overhead Line overhead Path Overhead (POH) STS-1 Payload Capacity (84 useable columns) 8000 x 84 x 9 x 8 = Mbps Fixed Stuff ATM cells, etc. H1/H2 point to the Synchronous Payload Envelope (SPE) at arbitrary byte offset J1 Transport overhead J1 B3 C2 G1 F2 H4 Z3 Z4 Z5
Inductive Logic 4/27/ STS-Nc SPE STS-3c Payload Capacity: 8000 x 260 x 9 x 8 = Mbps STS-3c SPE: 3 x 87 = 261 Columns Reference GR-253, chap 3. 9 Rows 260 Columns J1 B3 C2 G1 F2 H4 Z3 Z4 Z5 STS-12c Payload Capacity: 8000 x 1040 x 9 x 8 = Mbps STS-12c SPE: 12 x 87 = 1044 Columns 9 Rows 1040 Columns Path Overhead (POH) J1 B3 C2 G1 F2 H4 Z3 Z4 Z5 Fixed Stuff Path Overhead (POH) Line Rate = N x Mbps Framing chosen to match STM-N STS-48c (not shown) is exactly 4 times STS-12c (POH + 15 Stuff)
Inductive Logic 4/27/ This slide intentionally left blank