Ethernetový rámec
Ethernetový rámec je v informatice protokolová datová jednotka linkové vrstvy v síti Ethernet. Na fyzické vrstvě mu předchází preambule a oddělovač začátku rámce (SFD), které s ethernetovým rámcem tvoří paket[1].
Ethernetový rámec začíná ethernetovou hlavičkou, která obsahuje cílovou a zdrojovou MAC adresu (anglicky Destination MAC Address, Source MAC Address) a pole Délka/Typ (anglicky Length/Type). Dále obsahuje datové pole (anglicky Payload) a kontrolní posloupnost rámce (anglicky Frame Check Sequence, FCS), což je 32bitový cyklický redundantní součet používaný pro detekci poškození dat při přenosu. Datové pole začíná v ethernetovém rámci hlavičkou protokolu (například internetový protokol).
Struktura
Datový paket na fyzickém médiu a rámec jako jeho datové pole obsahuje binární data. Data se na Ethernetu vysílají od nejvýznamnějšího bytu. Bity jednotlivých bytů se však vysílají od nejméně významného bitu[2].
Níže uvedená tabulka ukazuje strukturu ethernetového rámce, jak je vysílán, pro délku datového pole až MTU max. 1500 oktetů. Některé implementace Gigabitového Ethernetu a rychlejších variant Ethernetu podporují větší rámce nazývané jumbo rámce.
Vnitřní struktura ethernetového rámce je definována v IEEE 802.3-2012[1].
Layer | Preambule | Oddělovač začátku rámce | MAC cíle | MAC zdroje | 802.1Q tag (volitelný) | Délka/Typ | Datové pole | Kontrolní posloupnost rámce (32bitový CRC) | Mezera mezi pakety |
---|---|---|---|---|---|---|---|---|---|
7 oktetů | 1 oktet | 6 oktetů | 6 oktetů | (4 oktety) | 2 oktety | 46(42)[3]–1500 oktetů | 4 oktety | 12 oktetů | |
Ethernetový rámec (linková vrstva) | ← 64–1518(1522) oktetů → | ||||||||
Ethernetový paket (fyzická vrstva) | ← 72–1526(1530) oktetů → |
Preambule a oddělovač začátku rámce
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Ethernet_frame.svg/400px-Ethernet_frame.svg.png)
Ethernetovému rámci předchází sedmibytová preambule a jednobytový oddělovač začátku rámce (SFD), které umožňují zařízením na síti snadno rozpoznat začátek přicházejícího rámce. SFD signalizuje začátek rámce[4]. jsou oba součástí ethernetového paketu, v němž je zapouzdřen rámec. Před Fast Ethernet bitový vzorek vysílaný sítí pro tuto část rámce je 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011[4]. Protože oktety se vysílají od nejméně významného bitu, odpovídajícím šestnáctková reprezentace je 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5.
SFD je 8bitové (jednobytové) pole označující konec preambule, která je prvním polem ethernetového paketu a indikuje začátek ethernetového rámce. Za SFD následuje cílová MAC adresa, která je prvním polem v ethernetovém rámci. SFD má hodnotu 171 (10101011 v binární notaci), což je při vysílání nejméně významného bitu jako prvního 213 (0xD5)[4].
Preambule ethernetového paketu obsahuje 56bitový (7bytový) vzorek střídajících se bitů 1 a 0, který umožňuje zařízením na síti snadno rozpoznat začátek přicházejícího rámce. SFD signalizuje začátek rámce[4].
Pro připojení Ethernet MAC k fyzickému mediu slouží obvody transceiveru fyzické vrstvy označované zkratkou PHY. Spojení mezi PHY a MAC je nezávislé na fyzickém mediu a používá některou sběrnici z rodiny rozhraní nezávislých na mediu (MII, GMII, RGMII, SGMII, XGMII).
Obvody transceiverů pro Fast Ethernet používají sběrnici MII, která je čtyřbitová, proto je preambule reprezentována čtrnácti hodnotami 0x5 a oddělovač začátku rámce dvěma hodnotami 0x5 0xD. Transceivery pro Gigabit Ethernet používají sběrnici GMII, která je osmibitová, takže preambule a oddělovač začátku rámce má tvar posloupnosti bytů 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5.
Hlavička
Hlavička obsahuje cílovou a zdrojovou MAC adresu (každá o délce šest oktetů), pole Délka/Typ a volitelně IEEE 802.1Q tag.
Pole Délka/Typ je dlouhé dva oktety a může být použito dvěma způsoby. Hodnoty 1500 a menší znamenají, že se jedná o délku datového pole v oktetech, zatímco hodnoty 1536 a větší znamenají, že se jedná o EtherType, který indikuje, jaký protokol je zapouzdřený v datovém poli rámce. Pokud je pole používáno jako EtherType, délka rámce se zjistí podle mezery mezi pakety a podle správné hodnoty kontrolní posloupnosti rámce (FCS).
Nepovinný IEEE 802.1Q tag je čtyřbytové pole, které indikuje příslušnost k VLAN a prioritu podle IEEE 802.1p.
Datové pole
Datové pole (anglicky Payload) slouží k přenosu dat vyšší vrstvy. jeho maximální délka je 1500 oktetů. Nestandardní jumbo rámce umožňují větší maximální délku datového pole. Požadavek na minimální délku rámce (512 bitů = 64 oktetů) si vynucuje i minimální délku datového pole (Payload), která je normálně 46 oktetů; je-li je přítomný 802.1Q tag, 42 oktetů[3].
Kontrolní posloupnost rámce
Kontrolní posloupnost rámce (anglicky Frame check sequence, FCS) je čtyřbytový cyklický redundantní součet, který umožňuje detekci poškozených rámců. Provedení FCS algoritmu na data přijatého rámce včetně přeneseného FCS musí dávat magické číslo neboli CRC32 residue s hodnotou 0xC704DD7B. Díky tomu lze přijmout rámec a validovat FCS bez znalosti, kde pole FCS začíná[5].
Konec rámce
Konec rámce je obvykle indikován koncem datového proudu na fyzické vrstvě nebo ztrátou nosného signálu; tato metoda se používá například pro 10BASE-T, kde přijímací stanice detekuje konec vysílaného rámce ztrátou nosné. Některé realizace fyzické vrstvy používají explicitní symbol nebo posloupnost konec dat nebo konec proudu, aby se zabránilo nejednoznačnosti; například Gigabitový Ethernet používá kódovací schéma 8b/10b, ve kterém je začátek a konec rámce vyznačen speciálními symboly[6][7].
Mezera mezi pakety
Mezera mezi pakety(anglicky interpacket gap) je časový interval mezi pakety, po který nesmí žádná stanice vysílat. Po odeslání každého paketu se vysílače musí odmlčet minimálně na dobu potřebnou pro přenos 96 bitů (12 oktetů) před přenosem dalšího paketu.
Typy ethernetových rámců
Typ rámce | Délka/Typ | První 2 byty datového pole |
---|---|---|
Ethernet II | ≥ 1536 | Libovolné |
Novell IEEE 802.3 | ≤ 1500 | 0xFFFF |
IEEE 802.2 SNAP | ≤ 1500 | 0xAAAA |
IEEE 802.2 LLC | ≤ 1500 | Jiné |
Z historických důvodů existuje několik typů ethernetových rámců:
- Rámce Ethernet II nebo Ethernet Version 2, neboli DIX rámce je nejobvyklejší dnes používaný typ rámců v sítích Ethernet, protože se často používá pro internetový protokol.
- Nestandardní rámce Novell raw IEEE 802.3
- Rámce IEEE 802.2 Logical Link Control (LLC)
- Rámce IEEE 802.2 Subnetwork Access Protocol (SNAP)
Různé typy rámců mají různé formáty a hodnoty MTU, ale mohou koexistovat na stejném fyzickém mediu. Rozlišování typů rámců se provádí podle tabulky vpravo.
Všechny čtyři typy ethernetových rámce mohou navíc obsahovat IEEE 802.1Q tag, který identifikuje, do které VLAN patří a prioritu (Quality of Service). Toto zapouzdření je definované ve standardu IEEE 802.3ac a zvětšuje maximální délku rámce o 4 oktety.
IEEE 802.1Q tag, jestliže přítomný, je umístěn mezi Zdrojový Adresa a EtherType nebo Délka pole. První dva oktety tagu je Tag Protokol Identifier (TPID) 0x8100, který je umístěn ve stejném místě jako pole Délka/Typ v netagovaných rámcích. Hodnota EtherType 0x8100 znamená, že rámec je tagovaný a skutečné pole Délka/Typ je až za Q-tagem. Za TPID jsou dva oktety obsahující Tag Control Information (TCI) tvořenou IEEE 802.1p prioritou (Quality of Service) a VLAN id a zbytek rámce počínaje původní hodnotou pole Délka/Typ.
Ethernet II
Rámce Ethernet II (neboli DIX Ethernet podle firem DEC, Intel a Xerox, které vytvořily tzv. průmyslový standard pro Ethernet[8]) mají v ethernetovém rámci za cílovou a zdrojovou MAC adresou dvoubytové pole EtherType, které identifikuje protokol vyšší vrstvy zapouzdřený v datovém poli rámce. Například hodnota EtherType 0x0800 signalizuje, že rámec obsahuje IPv4 datagram; EtherType 0x0806 indikuje rámec obsahující ARP, 0x8100 indikuje IEEE 802.1Q rámec a 0x86DD indikuje IPv6 rámec.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Ethernet_Type_II_Frame_format.svg/700px-Ethernet_Type_II_Frame_format.svg.png)
Když průmyslový standard prošel formálním standardizačním procesem IEEE, bylo pole EtherType nahrazeno polem udávajícím délku datového pole. Protože příjemce stále potřebuje vědět, jak interpretovat data v rámci, musí i norma IEEE 802.2 umožnit rozlišení, jaká data jsou umístěna v rámci. K tomu slouží pole SSAP a DSAP, případně type v SNAP rozšíření. Norma IEEE 802.3 zpočátku formát rámců Ethernet II neuváděla, ale od verze IEEE 802.3x-1997 je i tento formát normou IEEE 802.3 oficiálně uznáván. V praxi se oba formáty široce používají, přičemž původní formát ethernetových rámců převládá v lokálních sítích, kvůli své jednoduchosti a nižší režii.
Aby se po jednom síťovém segmentu mohly přenášet rámce typu Ethernet II současně s rámci IEEE 802.3, musí být hodnoty EtherType větší nebo rovné 1536 (0x0600). Tato hodnota byla zvolena, protože maximální délka datového pole rámce IEEE 802.3 je 1500 oktetů (0x05DC). Jestliže hodnota pole je větší nebo rovná 1536, rámec je typu Ethernet II, a pole obsahuje EtherType[9]. Jestliže je menší nebo rovné 1500, jedná se o IEEE 802.3 rámec, a pole má význam délky. Hodnoty mezi 1500 a 1536 nejsou definované[10]. Tato konvence umožňuje softwarově určit, zda rámec je typu Ethernet II nebo IEEE 802.3, což umožňuje koexistenci obou standardů na stejném fyzickém mediu.
Novell raw IEEE 802.3
„Syrové“ rámce IEEE 802.3 mají za MAC adresami pole délka, za kterým však nenásleduje hlavička IEEE 802.2 LLC, ale přímo data síťové vrstvy. Tento formát byl původním formátem rámců používaným firmou Novell pro přenos protokolu IPX sítí Ethernet. Pravděpodobně byl převzatý z prvních pracovních verzí standardu IEEE 802.3. IPX data začínají dvoubytovým polem kontrolního součtu, které je vždy nastaveno na hodnotu FFFF na znamení, že kontrolní součet není použit. Díky tomu lze tyto rámce odlišit od IEEE 802.2 LLC, které mají na stejném místě pole DSAP a SSAP, a SSAP nemůže mít nikdy hodnotu FF. S výjimkou raných implementací sítě DECnet nezpůsobovalo používání těchto rámců s jinými formáty rámců žádné problémy.
Tento typ rámců používal Novell NetWare implicitně do poloviny 90. let 20. století, a protože NetWare byl rozšířenější než IP, lze předpokládat, že v té době většina ethernetového provozu ve světě používala „syrové“ rámce 802.3 nesoucí IPX. Od NetWare verze 4.10 je pro IPX implicitním formátem rámců IEEE 802.2 s LLC (v terminologii NetWare typ Ethernet_802.2), ale jeho rozšíření postupně klesá s nástupem protokolu IP obvykle přenášeném v rámcích Ethernet II[11].
IEEE 802.2 LLC
OSI protokoly, případně i některé další, fungují přímo nad IEEE 802.2 LLC, které poskytuje spojované i nespojované linkové služby.
Rámce typu IEEE 802.2 LLC se v současných sítích příliš nepoužívají, s výjimkou rozsáhlých firemních instalací Novell NetWare, které zatím nebyly migrovány na protokol IP. V minulosti mnoho firemních sítí používalo rámce IEEE 802.2 kvůli podpoře transparentních bridgí mezi sítěmi Ethernet a Token Ring nebo FDDI.
Zapouzdřování IP provozu do IEEE 802.2 LLC rámců bez SNAP rozšíření se používalo minimálně, přestože existuje hodnota SAP (6) rezervovaná pro IP a 0x98 pro ARP, který je pro fungování IP nezbytný.
IEEE 802.2 SNAP
Prohlédnutím 802.2 LLC hlavičky je možné určit, zda za ním následuje SNAP hlavička. LLC hlavička začíná dvěma osmibitovými přístupovými body služby (SAP); pokud zdrojové i cílové pole SAP má hodnotu 0xAA, je použito SNAP rozšíření. SNAP hlavička umožňuje použití EtherType hodnot pro všechny protokoly IEEE 802, a podporu soukromých prostorů pro pole Protocol ID.
Na Ethernetu se Internetový standard[12] pro zapouzdřování IPv4 provozu do IEEE 802.2 LLC SAP/SNAP rámců téměř nepoužívá, přestože je standardní metodou používanou v sítích FDDI, Token Ring, IEEE 802.11 a jiných lokálních sítích podle IEEE 802. IPv6 může také být přenášené po Ethernetu pomocí rámců IEEE 802.2 LLC SAP/SNAP, ale také se používá minimálně.
Mac OS používá IEEE 802.2 LLC SAP/SNAP zapouzdření pro AppleTalk v2 sada protokolů na Ethernetu („EtherTalk“).
Maximální propustnost
Režii protokolu Ethernet v procentech můžeme vypočítat (délka paketu včetně IPG) podle vztahu:
Pro efektivitu protokolu platí:
Maximální efektivity je dosaženo při největší povolené délce datového pole a je:
pro netagované rámce, protože maximální délka datového pole paketu je 1500 oktet + 8 oktetů preambule + 14 oktetů hlavička + 4 oktety trailer + minimální mezera mezi pakety odpovídající 12 oktetům = 1538 oktetů. Maximální efektivita je:
když je použito VLAN tagování podle 802.1Q.
Propustnost lze spočítat z efektivity
- ,
kde čistá přenosová rychlost fyzické vrstvy závisí na standardu Ethernet fyzické vrstvy a může být 10 Mbit/s, 100 Mbit/s, 1 Gbit/s nebo 10 Gbit/s. Maximální propustnost pro 100BASE-TX Ethernet je následně 97.53 Mbit/s bez 802.1Q a 97.28 Mbit/s s 802.1Q.
Využití kanálu je koncept často zaměňovaný s efektivitou protokolu. Uvažuje pouze využití kanálu bez ohledu na povahu vysílaných dat – buď datové pole anebo režie. Na fyzické vrstvě linkový kanál a zařízení nerozlišuje rozdíl mezi datovými a řídicími rámci. Využití kanálu lze spočítat jako
Celkový čas uvažuje dobu přenosu kanálem tam i zpět, čas zpracování v uzlu a čas přenosu dat a potvrzení. Čas strávený přenosem dat zahrnuje data i potvrzení.
Zakrslé rámce
Zakrslý rámec (anglicky runt frame) je ethernetový rámec s délkou menší než 64 oktetů, což je minimální délka podle IEEE 802.3. Zakrslé rámce jsou obvykle způsobeny kolizemi; dalšími příčinami může být předeběh dat (anglicky underrun), vadná síťová karta nebo softwarové chyby[13].
Reference
V tomto článku byl použit překlad textu z článku Ethernet frame na anglické Wikipedii.
- ↑ a b 3.1.1 Packet format [PDF]. 2012-12-28 [cit. 2014-07-06]. Dostupné online.
- ↑ Ethernet frame [online]. [cit. 2012-03-20]. Při přenosu Ethernetového rámce se přenášejí bity od nejméně významného (little-endian), ale oktety od nejvýznamnějšího (big-endian).. Dostupné v archivu pořízeném dne 2012-03-03.
- ↑ a b IEEE 802.3-2005 Clause 3.5
- ↑ a b c d e 802.3-2012 - IEEE Standard for Ethernet [PDF]. IEEE Standards Association, 2012-12-28 [cit. 2014-02-09]. Dostupné online.
- ↑ Nanditha Jayarajan. Configurable LocalLink CRC Reference Design [PDF]. xilinx.com, 2007-04-20 [cit. 2014-06-30]. Dostupné online.
- ↑ Charles E. Spurgeon. Ethernet: The Definitive Guide [online]. O'Reilly, February 2000 [cit. 2014-06-30]. Dostupné online.
- ↑ 40.1.3.1 Podvrstva fyzického kódování (Physical Coding Sublayer, PCS) [PDF]. 2012-12-28 [cit. 2014-07-06]. Dostupné v archivu pořízeném dne 2016-03-04.
- ↑ Drew Heywood. Drew Heywood's Windows 2000 Síťový Services. [s.l.]: Sams, 2001. ISBN 0-672-31741-9.
- ↑ LAN MAN Standards Committee of IEEE Počítač Society. IEEE Std 802.3x-1997 a IEEE Std 802.3y-1997. [s.l.]: Institute of Electrical a Electronics Engineers, Inc., 20 March 1997.
- ↑ IEEE Std 802.3-2005, 3.2.6
- ↑ (formátovaná verze Archivováno 18. 4. 2015 na Wayback Machine.) — klasická řada Usenet článků od Dona Provana z firmy Novell, které byly převzaty do mnoha FAQ, a jsou obecně považovány za základní informace o používání formátů rámců v sítích Novell NetWare
- ↑ RFC1042: A Standard for the Transmission of IP Datagrams over IEEE 802 Networks [online]. Networking Working Group of IETF, February 1988. Dostupné online.
- ↑ Troubleshooting Ethernet [online]. Cisco Systems. Dostupné online.
Literatura
- Video, které vysvětluje, jak se vytváří ethernetové rámce
- Vysvětlení minimální délky rámce v Ethernetu