Transportní rámec Ethernetu
Datové přenosy jsou dnes prakticky součástí každé firmy či organizace. Velmi často se setkáváme s problémy, které nelze často detekovat a jsou svalovány na špatný hardware, nekvalitní aktivní prvky či síťové adaptéry. Výsledkem je degradace přenosové rychlosti sítě, chybný přenos s častými výpadky nebo prakticky nepoužitelná počítačová síť. 



Tvorba paketu a princip datového přenosu

V tomto článku se zaměříme na teorii datového přenosu na standardu Ethernet. Vysvětlíme si nejdůležitější parametry přenosových rámců a složení datových paketů. A v závěru se podíváme na možnost jejich reálné analýzy. Zaměříme se pouze za globální - standardní velikosti rámců, nikoli na jumbo frames, které je nutné optimalizovat pro jednotlivé přenosové cesty samostatně.

preamble

adresa určení (DA)

zdrojová adresa (SA)

typ paketu

data

CRC

8 bytes

6 bytes

6 bytes

2 bytes

od 46 až 1500 bytes

4 bytes

Preamble (preamble)
je velká a 64-bit (8 byte) která slouží k synchronizaci vysílající stanice a přijímajících stanic. Toto synchronizační pole poskytuje signál, který umožní zasynchronizování generátoru hodin přijímací strany. Nenese žádnou informaci a je k rámci připojeno ve vysílacích obvodech. Do celkové délky rámce se nezahrnuje.

Destination Address (cílová adresa MAC)
je velká 48-bit (6 byte) obsahuje adresu nastavenou na desce adaptéru sítě stanice, které je rámec určen. Může být individuální fyzická nebo skupinová. Zvláštní postavení má všeobecná adresa (broadcast). Na ní vyslané rámce jsou přijaty na všech stanicích v síti (například vysílání detekce serveru).

Source Address (zdrojová adresa MAC)
je velká 48-bit (6 byte) a uvádí fyzickou individuální adresu desky připojení sítě, která rámec vyslala.

Type field (typ)
je velký 16-bit (2 byte) a typ zprávy je na této úrovni v podstatě nevyužit, jediný definovaný typ je určen pro diagnostické testování.

Data Field (vlastní data)
mají délku od 46 do 1500 bytes. Minimální délka je stanovena proto, aby byl zaručen čas vysílání potřebný pro bezpečnou detekci případné kolize. 

Poznámka: Ve starších sítích a internetu je považován za standard Data Field = 576 bytes. Tato hodnota je ovšem v dnešních sítích na standardu Fast Ethernet a Gigabit Ethernet neefektivní. Zpomaluje komunikaci v síti přibližně o 15 až 20% proti hodnotě 1500 bytes.

CRC Field (FCS pole)
má velikost 32-bit error checking field (4 byte). Kontrolní pole rámce FCS (Frame Check Status) je kódové označení obsahu rámce hodnotou CRC 
(Cyclic Redundancy Check). Při příjmu je hodnota CRC kontrolována a rámce, u kterých je zjištěn nesouhlas, jsou označeny za chybné.

Formát paketu (MTU)
Základní částí paketu je hlavička linkové vrstvy, která je následována daty (včetně hlaviček vyšších vrstev). Hlavičky jsou principielně 4 typů a jsou vzájemně nekompatibilní. Tyto typy jsou :

  • Ethernet_II - pro Novell IPX/SPX, TCP/IP, a AppleTalk Phase 1 protocols. Ethernet II rámce nepoužívá LLC hlavičku v oddílu pro data.
  • Ethernet_802.3 - pro Novell IPX/SPX.
  • Ethernet_802.2 - pro Novell IPX/SPX s podporou Logical Link Control (LLC) a FTAM (File Transfer, Access, and Management.
  • Ethernet_SNAP - Sub-Network Access Protocol (SNAP) je modernější podobou rámce Ethernet_802.2 s podporou IPX/SPX, TCP/IP, AppleTalk Phase 2 protocol a LLC.
Minimální velikost rámce: 64 bytes
Maximální velikost rámce: 1518 bytes (nezahrnuje 8 bytes preamble)


Protokol TCP/IP a IPX na datovém rámci Ethernet II

Je nejednodušším typem přenosu datových paketů protokolu TCP/IP nebo IPX na rámci Ethernet II.

preamble

adresa určení (DA)

zdrojová adresa (SA)

typ paketu

data

CRC

8 bytes

6 bytes

6 bytes

2 bytes

od 46 až 1500 bytes

4 bytes

 

celkem 14 bytes

hlavička
TCP/IP - 20/20 bytes
IPX - 30 bytes

vlastní data
data - hlavička

 

Hlavička pro TCP / IP je 20 / 20 bytes (celkem 40 bytes). Maximální velikost paketu uživatelských dat je 1460 bytes.
Hlavička pro IPX protokol je 30 bytes. Maximální velikost paketu uživatelských dat je 1470 bytes.

Pokud využijete rámec
Ethernet_802.2 nebo Ethernet_SNAP je oblast dat ještě z části obsazena údaji pro LLC.


Jak to vypadá v praxi pro TCP/IP na rámci Ethernet II (data nastavena na 1500 bytes)?

Pro analýzu lze využít celou řadu aplikací, my jsme využili BillSniff. Nezapomeňte si napřed nainstalovat WinPcap.

Jak to vypadá v praxi pro pakety IPX na rámci Ethernet II (ukázkově nastaveno na 1486 bytes, doporučujeme 1500 bytes)?



Závěr?
Dodejme již pouze to, že hodnoty lze upravit v registru Windows.

Pro IPX protokol:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NwlnkIpx\Parameters\Adapters\kód adaptéru, například: {16D5B8DC-180D-49B6-940C-645AB9E20E12}

Hodnota: MaxPktSize (standardně 0, autodetekce podle síťovky) - hodnota definuje velikost oblasti data a hlavičky rámce (celkem 1500 + 14 bytes).

Pro TCP/IP protokol:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

Hodnota: MTU - hodnota definuje pouze velikost oblasti data (celkem 1500 bytes). Právě tato hodnota je určující pro definici tzv. MSS (1500 - 40), která má kritický význam při optimalizaci TCP/IP protokolu. Nejvyššího výkonu obecně dosáhneme sudým násobkem MSS. Nám se nejvíc osvědčilo dlouhodobě 6 x MSS = 8760. Celý článek o problematice IP sítí si můžete přečíst zde. A co taková síť pak dokáže?