A LAN/MAN interfészek adatkapcsolati (DLC) rétege

A DLC két alrétegből áll: MAC és LLC.

Az interfészt leíró ajánlás, szabvány elemei:

Szolgálatok

A MAC alréteg fő funkciói a következőkben foglalhatók össze:

Az LLC alréteg a következő három szolgálatot nyújthatja a hálózati réteg felé:

Rokon adatkapcsolati protokollok:

ARP, BSC, FR, FDDI, GPRS, LAPB, LAPD, LCP, PPP, Spanning tree, SNAP, V5

Keretformátumok

Az alap keretet az idők folyamán sokféleképpen egészítették ki különféle alkalmazásokhoz.

802.3/Ethernet basic MAC frame (IEEE 802.3 section 3.1) (untagged frame)
          bytes            Ethernet
              +================|===============+
            6 | DA Destination address         |   pl: 000a5e-49ef33 MAC address:
              | network order: első byte msb   |   az első elküldött byte: 00
              |                                |   legfelsó bit: 0 - közönsßges cím
              |                                |                 1 - csoportcím
              +--------------------------------+
            6 | SA Source address              |   pl: 000a5e-49f1ff
              +--------------------------------+
              |                                |   pl: 0500 < 0600- length
            2 | PT Payload type (Length/Type)  |   pl: 0800 - IP frame
              |    Frame type is:              |
              | Ethernet II. frame if PT=Type  |
              |    802.3 frame if PT=Length    |
              |                                |
              +================================+
            | |                                |   pl: IP frame
            | | C-data MAC client data field   |
       46-1500|        (IPv4 frame)            |
            | +--------------------------------+
            | | PAD                            |   töltelék a rövid adatmező kiegészítésére
              +==============|=================+
                            FCS

              minimális kerethossz: a célcím kezdetétől az FCS végéig: 64 byte
              többes küldés: multicast
              üzenetszórás: broadcast -> cím: csupa egyes
Egy példa, ahogy a protokollteszter látja:
DLC:  ----- DLC Header -----
      DLC:
      DLC:  Frame 1 arrived at  13:33:50.8135; frame size is 1514 (05EA hex) bytes.
      DLC:  Destination = Station 000A5E4D7A1C
      DLC:  Source      = Station 000A5E49EF33
      DLC:  Ethertype   = 0800 (IP)
      DLC:

ADDR  HEX                                               ASCII
0000: 00 0a 5e 4d 7a 1c | 00 0a 5e 49 ef 33 | 08 00    14 byte

802.3/Ethernet tagged MAC frame (IEEE 802.3 section 3.5) (tagged frame)

VLAN kialakításakor ezt a kerettípust használjuk.

          bytes            Ethernet header
              +================|===============+
            6 | DA Destination address         |   pl: 000a5e-49ef33 MAC address:
              | network order: első byte msb   |   az első elküldött byte: 00
              |                                |   legfelsó bit: 0 - közönsßges cím
              |                                |                 1 - csoportcím
              +--------------------------------+
            6 | SA Source address              |   pl: 000a5e-49f1ff
              +--------------------------------+
            4 | QTag Prefix                    |   IEEE 802.1Q  VLAN Tag
              +--------------------------------+
            2 | PT Lenght/Type                 |   pl: 0800 - IP frame
              +================================+
            | |                                |   pl: IP frame
            | | C-data MAC client data field   |
       46-1500|        (IP frame)              |
            | +--------------------------------+
            | | PAD                            |   töltelék a rövid adatmező kiegészítésére
              +==============|=================+
                            FCS

Egy példa, ahogy a protokollteszter látja:
DLC:  ----- DLC Header -----
      DLC:
      DLC:  Frame 1 arrived at  17:24:04.5255; frame size is 77 (004D hex) bytes.
      DLC:  Destination = Station 000E0CBBE136
      DLC:  Source      = Station Fujtsu5AE149
      DLC:
8021Q: ----- 802.1Q Packet -----     QTag prefix
      8021Q:
      8021Q: Tag Protocol Type       = 8100
      8021Q: Tag Control Information = 0002
      8021Q:    User Priority        = 0
      8021Q:    Tunnel Type          = 0 (Ethernet frame)
      8021Q:    VLAN ID              = 2
      8021Q: Ethertype   = 0800 (IP)
      8021Q:

ADDR  HEX                                               ASCII
0000: 00 0e 0c bb e1 36 | 00 e0 00 5a e1 49 | 81 00 00 02  | ...ťá6.ŕ.ZáI...
0010: 08 00 | 45 00 00 3b 26 56 00 00 80 11 7a 9c 0a 0a | ..E..;&V..€.zœ..
0020: 01 69 98 42 f6 0a 04 17 00 35 00 27 cd 03 6b e6 | .i˜Bö....5.'Í.kć
0030: 01 00 00 01 00 00 00 00 00 00 03 77 77 77 06 67 | ...........www.g
0040: 6f 6f 67 6c 65 02 68 75 00 00 01 00 01          | oogle.hu.....
A QTag prefix két paramétert tartalmaz VLAN-ok kialakításához:

A VLAN-ok világában három kerettípus létezik:

802.3/Ethernet frame with LLC header (Bridged Ethernet) (RFC 2684 old RFC 1483)

Ezt a kerettípust használják Ethernet keretek egységbe zárásához és ezután ATM AAL5 keretekben történő továbbításához.

          bytes
              +================================+ -----  LLC header (8 byte)
            1 | DSAP                           |             AA
              +--------------------------------+ 802.2 LLC
            1 | SSAP                           |             AA
              +--------------------------------+
            1 | CONTROL                        |             03
              +--------------------------------+ -----
            3 | org code                       |             00-80-C2
              +--------------------------------+ 802.2 SNAP
            2 | Type                           |             00-01
              +================================+ ------ Ethernet payload
            6 | DA Destination address         |
              +--------------------------------+
            6 | SA Source      address         |
              +--------------------------------+
            2 | PT Type                        |
            | +--------------------------------+
            | |                                |
            | | MAC client data field          |
       38-1500|                                |
              +--------------------------------+
            | | PAD                            |   töltelék a rövid adatmező kiegészítésére
              +--------------------------------+
              | LAN  FCS                       |
              +==============|=================+
                          AAL5 frame trailer

    SNAP - (Sub Network Access Protokoll)
PPPoE Ethernet frame (IETF RFC 2516)

A PPP üzeneteinek továbbítására használt Ethernet keret.
(A method for encapsulating multi-protocol datagrams.)

          bytes            Ethernet
              +=================|==============+
            6 | DA Destination address         |
              +--------------------------------+
            6 | SA Source      address         |
              +--------------------------------+
            2 | PT Type                        |        0x8863  (PPPoE Discovery)
              |                                |        0x8864  (PPPoE Session)
              +================================+
            1 | PPPoE  VER/TYPE                |        1/1
              +--------------------------------+
            1 | PPPoE  CODE                    |        PADI, PADO, PADR, PADS (Discovery)
              |                                |        DATA -> PPP
              +--------------------------------+
            2 | PPPoE  SESSION_ID              |
              +--------------------------------+
            2 | PPPoE  LENGTH                  |
              +================================+
            | |                                |
            | | MAC client data field          |
       46-1500| (PPPoE payload = PPP, IPCP, IP |
            | +--------------------------------+
            | | PAD                            |
              +==============|=================+
                            FCS

A PPPoE Discovery üzenetei (PPPoE Server keresése):

A PPPoE Session üzenetei:

Egy példa, ahogy a protokollteszter látja:

No.     Time        Source                Destination           Protocol Info
     19 305.883184  ZyxelCom_a0:b4:cf     Broadcast             PPPoED   Active Discovery Initiation (PADI)

Frame 19 (64 bytes on wire, 64 bytes captured)
    Arrival Time: Jun 26, 2009 10:18:59.185764000
    [Time delta from previous captured frame: 16.444866000 seconds]
    [Time delta from previous displayed frame: 16.444866000 seconds]
    [Time since reference or first frame: 305.883184000 seconds]
    Frame Number: 19
    Frame Length: 64 bytes
    Capture Length: 64 bytes
    [Frame is marked: True]
    [Protocols in frame: eth:pppoed]
    [Coloring Rule Name: Broadcast]
    [Coloring Rule String: eth[0] & 1]
Ethernet II, Src: ZyxelCom_a0:b4:cf (00:13:49:a0:b4:cf), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Destination: Broadcast (ff:ff:ff:ff:ff:ff)
        Address: Broadcast (ff:ff:ff:ff:ff:ff)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
        .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
    Source: ZyxelCom_a0:b4:cf (00:13:49:a0:b4:cf)
        Address: ZyxelCom_a0:b4:cf (00:13:49:a0:b4:cf)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
    Type: PPPoE Discovery (0x8863)
PPP-over-Ethernet Discovery
    0001 .... = Version: 1
    .... 0001 = Type: 1
    Code: Active Discovery Initiation (PADI) (0x09)
    Session ID: 0x0000
    Payload Length: 20
    PPPoE Tags
        Service-Name: TVLPPPoE
        Host-Uniq: 31303032

0000  ff ff ff ff ff ff 00 13 49 a0 b4 cf 88 63 11 09   ........I....c..
0010  00 00 00 14 01 01 00 08 54 56 4c 50 50 50 6f 45   ........TVLPPPoE
0020  01 03 00 04 31 30 30 32 01 1a 0d 2f 01 1a 0e 2f   ....1002.../.../
0030  01 1a 0f 2f 01 1a 10 2f 01 1a 11 2f 01 1a 12 2f   .../.../.../.../

PPP/HDLC frame: (IETF RFC 1662)
                        HDLC
              +--------------|-----------------+
              | Address                        |      0xFF (Broadcast)
              +--------------------------------+
              | Control                        |      0x03 (Unnumbered information)
              +--------------------------------+----
              | PPP type                       |  |
              +--------------------------------+  |
              | PPP Protocol                   |  PPP frame
              +--------------------------------+  |
              | PPP information                |  |
              +--------------------------------+----
              | PAD                            |
              +-----------|--------------------+
                         FCS

A PPP (Point-to-Point Protocol) (IETF RFC 1661)

Két hálózati csomópont közti közvetlen kapcsolat felépítésére használható protokoll. Számos fizikai hálózaton: soros vonal, vezetékes és mobil telefon vonal és trönk, optikai link használható. Leggyakoribb alkalmazása: Internet szolgáltató és felhasználó összekapcsolása ADSL hálózaton.

Szolgálatok:

A protokoll részei

A PPP állapotai:

A PPP továbbítására használt keretek (encapsulation):

Az ARP (Address Resolution Protocol) (IETF RFC 826)

Az ARP az adatkapcsolati réteg egy protokollja. Elsődleges funkciója, hogy a hierarchikus kiosztású, hálózatfüggő IP-címet flat címzési struktúrájú, hordozható MAC-címre oldja fel, hiszen az Ethernet-frame-eket eszerint címezzük meg.

A hálózati interface-ek alapértelmezés szerint ugyanis csak azokat a kereteket dolgozzák fel és továbbítják a felsőbb rétegbe a benne található PDU-t, amelyben a cél MAC-címe megegyezik a sajátjukkal. Így nem elegendo tudnunk az adott hálózati csomópont IP-címét, hogy csomagot küldjünk neki, mert csak akkor fogja megkapni, ha a saját MAC-címét találja a keretben.

Egy ismeretlen MAC-cím megszerzésére szolgál az ARP. Ha a legegyszerubb
esetet vesszük, ahol az A host csomagot szeretne küldeni a vele azonos
alhálózaton lévo B hostnak, akkor a muködési módja a következo:
1. Az A host üzenetszórásban lekérdezést típusú ARP csomagot küld ki a
hálózati interface-én. Az üzenetszóráshoz az FF:FF:FF:FF:FF:FF MAC-címet
használja. Az ARP csomagban megadja a saját IP és MAC címeit, illetve
beleteszi B IP-címét, B MAC-címének helye üres marad. Az Operation mezo értéke 1.
2. Az alhálózaton az összes hálózati interface veszi az elozo csomagot, de csak B lesz az, amelyik feldolgozza: ugyanabban a csomagstruktúrában válaszol, kitölti a rendelkezésre álló mezoben a saját MAC-címét. A válaszcsomag unicastban megy a kérdezonek.
Az Operation mezo értéke 2.
3. A lekérdezo az eredményt az ún. ARP-táblában tárolja (ARP-cache). A tárolt információ az IP-cím, MAC-cím párok mellett egy TTL (Time-to-Live) mezo is, amelynek lejárta után törlodhet a bejegyzés. Ennek tipikus értéke 20 perc.

Bonyolultabb helyzet, ha A és B más alhálózaton találhatóak. Ekkor a közöttük található R router közvetít kettejük között, vagyis a másik ha A-ból a B-be szeretnénk csomagot küldeni, akkor az Ethernet-cím az R routeré lesz, azonban a csomagban az IP-cím a
 B-é. Az R a csomag feldolgozása során érzékeli, hogy az IP-szám nem hozzá tartozik, tehát a routing táblához fordul feloldásért.

Az ARP csomag szerkezete (ARP kérés vagy válasz esetén, Ethernet és IPv4 adatkapcsolati és hálózati protokoll)
Ethernet transmission layer:
  48 bit: Ethernet address of destination
  48 bit: Ethernet address of sender
  16 bit: Protocol type = 0x0806
Ethernet packet data:
  16 bit: Hardware address space (e.g., Ethernet = 1)
  16 bit: Protocol address space.  IPv4 = 0x0800.
   8 bit: Byte length of each hardware address (Ethernet esetén  = 6).
   8 bit: Byte length of each protocol address (IPv4 esetén = 4).
  16 bit: Operation code (REQUEST = 1| REPLY = 2)
   6 bytes: Hardware address of sender of this packet.
   4 bytes: Protocol address of sender of this packet.
   6 bytes: Hardware address of target of this packet (if known).
   4 bytes: Protocol address of target.

Az Inverse ARP (RFC 2390) arra szolgál, hogy egy másik node-nak a második rétegbeli címe ismeretében a harmadik rétegbeli címét megkapjuk. Elsosorban Frame Relay vagy ATM hálózatokban használatos. Az ARP kiegészítéseként muködik, a csomagstruktúrában az O
peration mezo különbözik (kérés esetén 8, válasz esetén 9 az értéke).

A Reverse ARP (RFC 903) arra szolgál, hogy egy csomópont a SAJÁT 3. rétegbeli címét megkapja a 2. rétegbeli cím ismeretében. Ugyanazzal a csomagstruktúrával muködött, mint az ARP, az Operation mezo értékei 3 illetve 4 (kérdés, illetve válasz esetén). Hasz
nálatát elobb a BOOTP, majd a DHCP váltotta ki.

Az ARP egyéb kiterjesztéseit itt most nem részletezzük, de érdekességként megjegyezzük, hogy például az IP-szám konfliktusok felderítésére is ezt használjuk (ld. RFC 5227).