2. díl - Sítě - Ethernet a rozbočovače

Sítě Sítě - Ethernet a rozbočovače

Ethernet a sítě mezi více počítači

Minulý díl byl věnován především přenosu jedniček a nul po kabelu a síťovým kartám. Dnes to bude o posílání dat mezi dvěma (a více) počítači. Zodpovíme si, jak se sestavuje takový datový rámec, aby cílový PC věděl následující: jestli je pro něj, odkud je, jaký typ dat nese, a jestli nebyl po cestě poškozen.

Posílání dat

Ať už posíláme přes síť cokoliv (textový dokument, obrázek, nebo třeba to, co napíšeme do Skypu), nemůžeme to prostě začít odesílat jako souvislý proud bitů. Proč? Takový datový proud není snadné přenést z jednoho místa na druhé bez poškození (např. v důsledku elektromagnetického záření se signál přeruší, nebo se zamění některé bity). U malých souborů to není nic tragického, ale pokud byste takhle poslali třeba film, tak na cílovém PC jej velmi pravděpodobně nedáte dohromady.

Jednoduše řečeno, většina souborů se v praxi "rozkouskuje" na menší díly, každý z nich se zabalí do samostatného balíčku, a pošle nezávisle na ostatních. O tom, jak přesně to funguje, si povíme v příštích dílech.

Ethernet

Ethernet je jedním z internetových protokolů, který definuje způsob, jak posílat data na lokální síti (tzn. mezi počítači doma, nebo ve firmě). Pro adresování (komu, od koho) používá již zmíněné MAC adresy (adresy konkrétních zařízení).

Dle tohoto protokolu se tedy data posílají v Ethernetových rámcích (Ethernet frame):

Ethernet frame

Rámec proto, že jsou v něm „zarámované“ veškeré další informace. Kromě rámce ještě uslyšíte o paketu a datagramu, ale to až později. Pojďme si nyní rozebrat rámec po částech:

Preambule

Pokud nikdo nic neposílá, na síti je „ticho“ – napětí na kabelu je nulové. Preambule (kromě jiného) slouží k tomu, aby informovala cílový počítač, že se začíná posílat Ethernetový rámec. Vypadá takto:

10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011

Preambule je tedy 64 bitů dlouhá, a prvních 62 bitů jsou střídající se jedničky a nuly. Poslední dva bity (dvě jedničky) jsou signálem pro cílovou NIC, že hned za nimi následuje Ethernetový rámec.

Občas se preambulí myslí jenom prvních sedm bytů, a poslední byte (ten se dvěma jedničkami na konci) se označuje jako SFD (Start of Frame Delimiter – oddělovač začátku rámce).

Cílová a zdrojová MAC

Tohle je snad jasné – cílová MAC označuje síťovou kartu PC, kterému je rámec určený, zdrojová značí odesílatele. Pole jsou stejně dlouhé jako MAC adresa - tedy 48 bitů.

Typ/délka

Dalších 16 bitů je použito buď pro typ paketu v poli "Data", a nebo (pokud je hodnota v tomot poli nižší než 1500) pro specifikaci délky pole "Data". Oba způsoby jsou dnes využívány.

Data

Pole dat má délku od 46 bytů do 1500 bytů. Podrobně bude rozebíráno v průběhu seriálu.

Kontrolní součet

Nebo také FCS (Frame Check Sequence). Díky němu můžeme odhalit poškození rámce. Algoritmus pro výpočet FCS je schopný pro každý ethernetový rámec vygenerovat unikátní 32 bitové číslo, i kdyby se rámce lišily třeba jen o jediný bit.

Probíhá to tak, že na odesílající NIC se sestaví rámec, spočítá se kontrolní součet, a připojí se na konec rámce. Jakmile paket dorazí na cílovou NIC, ta znovu spočítá kontrolní součet a porovná svůj FCS s tím, který dorazil. Pokud jsou si FCS rovny, rámec je přijat. Pokud ne, rámec je zahozen (tzn. PC si o něj musí znovu říct, jinak by nemohl soubor korektně seskládat)

Posílání více rámců za sebou

Aby NIC mohla snadno odlišit jednotlivé rámce, vloží se mezi ně mezery. U Ethernetu je to mezera, která by odpovídala 96 bitům. (např. u 100 Mb/s Ethernetu se 1 bit odešle za sto-miliontinu sekundy, což je 10 nanosekund. Mezera je tedy 960 ns dlouhá)

Síť mezi více počítači

Prozatím jsme pro jednoduchost mluvili pouze o případech se dvěma PC (dvě NIC), které jsou přímo propojené, a mohou komunikovat pouze mezi sebou. Tato situace je však velmi neobvyklá. V typické domácí nebo firemní síti je několik počítačů (případně tiskárna), které jsou mezi sebou navzájem propojené, každý z nich může komunikovat se všemi ostatními. Všechny bývají ještě připojeny k routeru, který zajistí připojení k Internetu.

Samozřejmě nemůžeme propojit každý PC s každým, protože síťové karty mají jen jeden port, a i kdyby to šlo, představte si, že máte 20 zařízení – to dělá dohromady 190 kabelů! Řešením jsou zařízení zvané rozbočovače (hub) nebo přepínač (switch):

princip rozbocovace

Uvnitř takového zařízení je každý jeho port (takže každé zařízení) propojen se všemi ostatními.

Rozbočovač - hub

Dnes se již nepoužívá. Jeho chování je velice primitivní – cokoliv do něj přijde, to rozešle na všechny ostatní porty. To znamená, že každá NIC, která je připojená do Hubu, přijme tento signál a každá se podívá do hlavičky Ethernetového rámce na cílovou MAC. Pokud je rámec pro ni, přijme jej. Pokud ne, zahodí jej. Nevýhody jsou tedy jasné (jedinou výhodou hubu je nižší cena):

  1. Zbytečně se zatěžují síťové karty (když máte síť s 5 PC a tiskárnou, tak jakmile jeden z nich chce tisknout, tak příkazy na tisk obdrží ostatní 4 PC a tiskárna, ale jenom tiskárna je přijme, zbytek je musí zahodit)
  2. Často dochází ke kolizím – 2 zařízení nemohou posílat signál zároveň po stejném kabelu (na kabelu vznikne přepětí a signál přestane dávat smysl). Příklad: PC 1 chce tisknout, ale v tu chvíli se PC 2 snaží připojit k routeru a dostat se na internet – na PC 1 tedy dojdou signály z PC 2, které musí zahazovat, a nemůže v tuto chvíli vysílat. Pokud PC 1 a PC 2 vyšlou signály v naprosto stejný moment, tak se signály „srazí“.
Přepínač - switch

Inteligentní nástupce Hubu. Switch a hub od sebe na první pohled nepoznáte, liší se tím, že switch místo bezhlavého rozesílání rámců na všechny porty dokáže rámec odeslat přesně na ten port, kde se nachází cílový PC. Switch ma v paměti uloženou tabulku, kam si zapisuje, která NIC je připojená na který port. Pomocí ní také rámce přeposílá. Tato tabulka se jmenuje MAC Address Table:

MAC address table
Jak si switch zapisuje MAC adresy do tabulky?

Když si pořídíte switch, jeho MAC Address Table bude prázdná. Jak tam tedy ty záznamy dostane?

Když do switche připojíte zařízení, nic se neděje do doby, než začne některý počítač vysílat. Vysvětlím na příkladu: Do switche zapojíme dva PC a router (ten zajistí připojení k Internetu). PC 1 se nyní chce připojit na server facebook.com (což znamená, že požadavek půjde do routeru). Vyšle tedy rámec s žádostí. Rámec přijde na switch (která má momentálně prázdnou MAC Address Table), a v tu chvíli se switch podívá na zdrojovou MAC adresu v rámci, a na port, kterým do ní rámec přišel. Má tedy port a MAC, které může zapsat do tabulky. Switch se právě naučila, že na portu 1 se nachází PC 1.

Ale co má udělat se samotným rámcem? Protože v její MAC Address Table nemá MAC adresu a port routeru, musí se zachovat jako hub, a odeslat rámec na všechny ostatní porty. Router rámec přijme, a odešle požadavek na facebook.com.

O několik milisekund později přijde na router odpověď od serveru facebook.com s webovou stránkou. Router ví, že o tuto stránku si požádal PC 1. Přepošle tedy rámec s webovou stránkou na switch. A proces učení se opakuje – switch se podívá do zdrojové MAC v rámci, a naučí se, že router je na portu 3. A protože už ví, že PC 1 je připojený na portu 1, nemusí rámec posílat všem, ale přepošle jej pouze na port 1.

Tady je ilustrace takové komunikace (MAC adresy jsou pro jednoduchost zkrácené):

princip switch

Příští díl se budu věnovat IP adresám (doteď jsem pro jednoduchost tajil, že pro komunikaci potřebuje zařízení jak MAC adresy, tak IP adresy), a protokolu ARP.


 

  Aktivity (3)

Článek pro vás napsal Lukas C#
Avatar
Věnuji se IT spíše co se týče SW, baví mě programování v C#. Nejvíc mě však těší, když můžu pomáhat a učit ostatní :-)

Jak se ti líbí článek?
Celkem (27 hlasů) :
4.925914.925914.925914.925914.92591


 


Miniatura
Všechny články v sekci
Síťové technologie
Miniatura
Následující článek
Sítě - Address Resolution Protocol

 

 

Komentáře

Avatar
kdojinemujamukopa:

Řešením jsou zařízení zvané rozbočovače (hub) nebo směrovače (switch)

Směrovač - router
Switch - přepínač

Díky za článek, chápu, že se to může stát každému, obzvlášť, když užívání českých názvů v praxi příliš běžnou záležitostí není, přesto to může kazit dojem z fajn článku.

 
Odpovědět 18. května 13:44
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na kdojinemujamukopa
Lukas C#:

Tady se to obvykle takhle neokecává - není nutné vyjadřovat nějaký soucit. Prostě stačí "toto a toto máš blbě", no a autor (já) ti poděkuju a chybu opravím (a dám článek ke schválení) :-)

 
Odpovědět  +2 18. května 18:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.