Slevový týden - Březen C# týden
Využij náš slevový týden a získej až 30 % bodů navíc zdarma! Zároveň také probíhá C# týden se slevou na e-learning až 80 %
Hledáme fulltime programátora do ITnetwork týmu -100% homeoffice, 100% časově flexibilní #bezdeadlinu Mám zájem!

2. diel - Siete - Ethernet a rozbočovače

Ethernet a siete medzi viacerými počítačmi

Minulý diel bol venovaný predovšetkým prenosu jednotiek a núl po kábli a sieťovým kartám. Dnes to bude o posielanie dát medzi dvoma (a viac) počítačmi. Zodpovieme si, ako sa zostavuje taký dátový rámec, aby cieľový PC vedel nasledujúce: či je pre neho, odkiaľ je, aký typ dát nesie, a či nebol po ceste poškodený.

Posielanie dát

Či už posielame cez sieť čokoľvek (textový dokument, obrázok, alebo napríklad to, čo napíšeme do Skypu), nemôžeme to jednoducho začať odosielať ako súvislý prúd bitov. Prečo? Takýto dátový prúd nie je ľahké preniesť z jedného miesta na druhé bez poškodenia (napr. V dôsledku elektromagnetického žiarenia sa signál preruší, alebo sa zamenia niektoré bity). U malých súborov to nie je nič tragického, ale ak by ste takto poslali potrebné film, tak na cieľovom PC ho veľmi pravdepodobne nedáte dokopy.

Jednoducho povedané, väčšina súborov sa v praxi "rozkouskuje" na menšie diely, každý z nich sa zabalí do samostatného balíčka, a pošle nezávisle na ostatných. O tom, ako presne to funguje, si povieme v najbližších dieloch.

Ethernet

Ethernet je jedným z internetových protokolov, ktorý definuje spôsob, ako posielať dáta na lokálnej sieti (tzn. Medzi počítačmi doma, alebo vo firme). Pre adresovanie (komu, od koho) používa už spomínané MAC adresy (adresy konkrétnych zariadení).

Podľa tohto protokolu sa teda dáta posielajú v Ethernetových rámcoch (Ethernet frame):

Ethernet frame

Rámec preto, že sú v ňom "zarámované" všetky ďalšie informácie. Okrem rámca ešte budete počuť o paketu a datagramu, ale to až neskôr. Poďme si teraz rozobrať rámec po častiach:

Preambuly

Pokiaľ nikto nič neposiela, na sieti je "ticho" - napätie na kábli je nulové. Preambula (okrem iného) slúži na to, aby informovala cieľový počítač, že sa začína posielať Ethernetový rámec. Vyzerá takto:

10101010 10101010 10101010 10101010 10101010 10101010 10101010 101010 11

Preambula je teda 64 bitov dlhá, a prvých 62 bitov sú striedajúce sa jednotky a nuly. Posledné dva bity (dve jednotky) sú signálom pre cieľovú NIC, že hneď za nimi nasleduje Ethernetový rámec.

Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!

Občas sa preambulou myslí len prvých sedem bytov, a posledná byte (ten s dvoma jednotkami na konci) sa označuje ako SFD (Štart of Frame obmedzovač - oddeľovač začiatku rámca).

Cieľová a zdrojová MAC

Toto je snáď jasné - cieľová MAC označuje sieťovú kartu PC, ktorému je rámec určený, zdrojová značí odosielateľa. Polia sú rovnako dlhé ako MAC adresa - teda 48 bitov.

Typ / dĺžka

Ďalších 16 bitov je použité buď pre typ paketu v poli "Data", a alebo (ak je hodnota v tomoto poli nižšie ako 1500) pre špecifikáciu dĺžky poľa "Data". Oba spôsoby sú dnes využívané.

Dáta

Pole dát má dĺžku od 46 bytov do 1500 bytov. Podrobne bude demontovať v priebehu seriálu.

Kontrolný súčet

Alebo tiež FCS (Frame Check Sequence). Vďaka nemu môžeme odhaliť poškodenie rámca. Algoritmus pre výpočet FCS je schopný pre každý ethernetový rámec vygenerovať unikátne 32 bitové číslo, aj keby sa rámca líšili napríklad len o jediný bit.

Prebieha to tak, že na odosielajúci NIC sa zostaví rámec, spočíta sa kontrolný súčet, a pripojí sa na koniec rámca. Akonáhle paket dorazí na cieľovú NIC, tá znovu spočíta kontrolný súčet a porovná svoj FCS s tým, ktorý dorazil. Ak sú si FCS rovné, rámec je prijatý. Ak nie, rámec je zahodený (tzn. PC si o neho musí znovu povedať, inak by nemohol súbor korektne poskladať)

Posielanie viac rámcov za sebou

Aby NIC mohla ľahko odlíšiť jednotlivé rámce, vloží sa medzi ne medzery. U Ethernetu je to medzera, ktorá by zodpovedala 96 bitom. (Napr. U 100 Mb / s Ethernetu sa 1 bit odošle za sto-milióntinu sekundy, čo je 10 nanosekúnd. Medzera je teda 960 ns dlhá)

Sieť medzi viacerými počítačmi

Zatiaľ sme pre jednoduchosť hovorili iba o prípadoch s dvoma PC (dve NIC), ktoré sú priamo prepojené, a môžu komunikovať iba medzi sebou. Táto situácia je však veľmi neobvyklá. V typickej domácej alebo firemnej sieti je niekoľko počítačov (prípadne tlačiareň), ktoré sú medzi sebou navzájom prepojené, každý z nich môže komunikovať so všetkými ostatnými. Všetky bývajú ešte pripojené k routeru, ktorý zaistí pripojenie k Internetu.

Samozrejme nemôžeme prepojiť každý PC s každým, pretože sieťové karty majú len jeden port, a aj keby to šlo, predstavte si, že máte 20 zariadenia - to robí dohromady 190 káblov! Riešením sú zariadenie zvané rozbočovača (hub) alebo prepínač (switch):

princíp rozbocovaca

Vnútri takéhoto zariadenia je každý jeho port (takže každé zariadenie) prepojený so všetkými ostatnými.

Rozbočovač - húb

Dnes sa už nepoužíva. Jeho správanie je veľmi primitívne - čokoľvek doň príde, to rozošle na všetky ostatné porty. To znamená, že každá NIC, ktorá je pripojená do Hubu, prijme tento signál a každá sa pozrie do hlavičky Ethernetového rámca na cieľovú MAC. Ak je rámec pre ňu, prijme ho. Ak nie, zahodí ho. Nevýhody sú teda jasné (jedinou výhodou hubu je nižšia cena):

  1. Zbytočne sa zaťažujú sieťové karty (keď máte sieť s 5 PC a tlačiarňou, tak akonáhle jeden z nich chce tlačiť, tak príkazy na tlač dostane ostatné 4 PC a tlačiareň, ale len tlačiareň ich prijme, zvyšok je musí zahodiť)
  2. Často dochádza ku kolíziám - 2 zariadenia nemôžu posielať signál zároveň po rovnakom kábli (na kábli vznikne prepätie a signál prestane dávať zmysel). Príklad: PC 1 chce tlačiť, ale v tej chvíli sa PC 2 snaží pripojiť k routeru a dostať sa na internet - na PC 1 teda dôjdu signály z PC 2, ktoré musia zahadzovať, a nemôže v tejto chvíli vysielať. Ak PC 1 a PC 2 vyšlú signály v úplne rovnaký moment, tak sa signály "zrazí".

Prepínač - switch

Inteligentné nástupcu Hubu. Switch a húb od seba na prvý pohľad nespoznáte, líšia sa tým, že switch namiesto bezhlavého rozosielanie rámcov na všetky porty dokáže rámec odoslať presne na ten port, kde sa nachádza cieľový PC. Switch ma v pamäti uloženú tabuľku, kam si zapisuje, ktorá NIC je pripojená na ktorý port. Pomocou nej tiež rámca preposiela. Táto tabuľka sa volá MAC Address Table:

MAC address table
Ako si switch zapisuje MAC adresy do tabuľky?

Keď si zaobstaráte switch, jeho MAC Address Table bude prázdna. Ako tam teda tie záznamy dostane?

Keď do switche pripojíte zariadení, nič sa nedeje do doby, než začne niektorý počítač vysielať. Vysvetlím na príklade: Do switche zapojíme dva PC a router (ten zaistí pripojenie k Internetu). PC 1 sa teraz chce pripojiť na server facebook.com (čo znamená, že požiadavka pôjde do routeru). Vyšle teda rámec so žiadosťou. Rámec príde na switch (ktorá má momentálne prázdnu MAC Address Table), a v tej chvíli sa switch pozrie na zdrojovú MAC adresu v rámci, a na port, ktorým do nej rámec prišiel. Má teda port a MAC, ktoré môže zapísať do tabuľky. Switch sa práve naučila, že na porte 1 sa nachádza PC 1.

Ale čo má urobiť so samotným rámcom? Pretože v jej MAC Address Table nemá MAC adresu a port routera, musí sa zachovať ako húb, a odoslať rámec na všetky ostatné porty. Router rámec prijme, a odošle požiadavku na facebook.com.

O niekoľko milisekúnd neskôr príde na router odpoveď od servera facebook.com s webovou stránkou. Router vie, že o túto stránku si požiadal PC 1. Pošle ďalej teda rámec s webovou stránkou na switch. A proces učenia sa opakuje - switch sa pozrie do zdrojovej MAC v rámci, a naučia sa, že router je na porte 3. A pretože už vie, že PC 1 je pripojený na porte 1, nemusí rámec posielať všetkým, ale prepošle ho iba na port 1.

Tu je ilustrácie takejto komunikácie (MAC adresy sú pre jednoduchosť skrátené):

princíp switch

Budúci diel sa budem venovať IP adresám (doteraz som pre jednoduchosť tajil, že pre komunikáciu potrebuje zariadenie ako MAC adresy, tak IP adresy), a ARP.


 

 

Článok pre vás napísal Lukas C#
Avatar
Ako sa ti páči článok?
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje IT jako celku, primárně však .NET C#
Predchádzajúci článok
Siete - Fyzický prenos, MAC adresy a protokoly
Všetky články v sekcii
Sieťové technológie
Miniatúra
Nasledujúci článok
Siete - Address Resolution Protocol
Aktivity (1)

 

 

Komentáre

Avatar
kdojinemujamukopa:18.5.2016 13:44

Ř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.

 
Odpovedať
18.5.2016 13:44
Avatar
Lukas C#
Redaktor
Avatar
Odpovedá na kdojinemujamukopa
Lukas C#:18.5.2016 18:35

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í) :-)

 
Odpovedať
18.5.2016 18:35
Avatar
Hephaestus
Člen
Avatar
Hephaestus:23.12.2017 17:19

Super článok, díky.

 
Odpovedať
23.12.2017 17:19
Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!
Avatar
Patrik Pastor:9.7.2019 9:39

proc ma VSC 4 byty? kdyby byl kontrolni soucet vsechny bitu, tak se to nevejde (cely frame bude mit vic bitu), a kdyby to byl pocet v Bytech, tak je to zase moc (opravdu 4 miliardy nebude mit zadny frame/paket, navic by to bylo muselo by "zaokrouhlene" protoze kdyby mel paket necely byt, jenom bitech, tak by se to muselo zaokrouhlit). Co se tedy scita v Frame Check Sequence? Dik za odpoved

 
Odpovedať
9.7.2019 9:39
Avatar
Edmond
Člen
Avatar
Edmond:29.11.2019 8:30

Dotaz na příklad komunikace: Jak PC1 může znát MAC adresu routeru EF, pokud jde o první dotaz např. po zapnutí?

 
Odpovedať
29.11.2019 8:30
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 5 správy z 5.