Ťahák k počítačovým sieťam
source link: https://novotnyr.github.io/scrolls/tahak-k-pocitacovym-sietam/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Ťahák k počítačovým sieťam
2019/08/13
Prehľad
L | Vrstva | Kýblik dát | Adresácia | Relevantné zariadenie | Databáza |
---|---|---|---|---|---|
L5-L7 | Aplikačná | Správa | z nižších vrstiev | ||
L4 | Transportná | Segment | Port | Socket (softvérové) | - |
L3 | Sieťová / Network | Datagram | IP adresa | Router | Smerovacia tabuľka |
L2 | Spojová / Data Link | Rámec | MAC adresa | Switch | Prepínacia tabuľka |
L1 | Fyzická vrstva | Nuly a jednotky | - | Hub | - |
Internet
Internet je sieť sietí:
- postavená nad protokolom TCP/IP
- prepájaná metalickými káblami, optickými káblami a bezdrôtovo
- na okraji sú koncové zariadenia: počítače, mobily, smart televízory
- vo vnútri sú routery / smerovače, ktoré preposielajú dáta zo siete do siete
Vrstvy protokolov na internete
Internet komunikuje viacerými protokolmi na rozličných vrstvách:
- na najnižšej fyzickej vrstve je elektrický signál a kódovanie do núl a jednotiek
- až po najvyššiu vrstvu, kde sa vymieňajú správy medzi aplikáciami operačného systému
Modely
Dva modely vrstiev:
- ISO/OSI: teoretický model, 7 vrstiev
- TCP/IP: 4 vrstvy, inšpirované ISO/OSI
Model TCP/IP
Doručuje kýbliky dát: pakety. Každá vrstva deklaruje konkrétny formát paketu.
Vrstvy:
- aplikačná / application: komunikácia medzi druhmi programov
- webový prehliadač: protokol HTTP
- emaily: protokol SMTP
- transportná / transport: prepojenie dvoch procesov na rôznych
počítačoch
- uvažujú v paketoch
- protokoly:
- TCP: spoľahlivé doručenie, kontrola zahltenia, kontrola prietoku
- UDP: jednoduché doručovanie paketov
- sieťová / network: doručenie paketu na konkrétne miesto na
internete
- smerovanie paketov medzi sieťami
- sieťového rozhrania / network layer: doručenie paketu na
konkrétne fyzické zariadenie v danej sieti konkrétnym fyzickým
médiom
- Ethernet: klasický kábel medzi dvoma počítačmi
- Wireless LAN / WiFi: pakety šírené vzduchom
Niekde sa sieťového rozhrania delí:
- spojová / data link:
- identifikuje príjemcu, garantuje korektnosť paketu, rieši, kto kedy môže vysielať a prijímať
- fyzická / physical:
- identifikuje začiatok a koniec vysielania
- identifikuje nuly a jednotky v elektrickom signále
Aplikačná vrstva (L5-L7)
Ako dosiahnuť, aby dva druhy aplikácii komunikovali?
- prepravuje správy
- určené pre konkrétny typ aplikácie
- príklad: webový prehliadač s webovým serverom
- príklad: BitTorrent klienti
- vymieňajú si správy, ktorých formát závisí od protokolu
Črty aplikačných protokolov
- architektúra:
- klient-server:
- Server beží vždy
- Klienti sa pripájajú podľa potreby
- Klienti nekomunikujú medzi sebou
- Príklady: webserver, SSH pripojenie, DNS server
- peer-to-peer:
- všetci klienti sú rovnocenní, komunikujú vzájomne
- Príklady: Gnutella
- hybrid:
- server je registruje a vyhľadáva pripojených klientov
- ale peeri komunikujú medzi sebou
- Príklady: Skype, Torrent
- klient-server:
- protokol: na príklade HTTP
- typy správ: napr. HTTP GET, HTTP POST, HTTP Reply
- syntax: HTTP má textové správy s definovaným formátom
- sémantika: „HTTP GET sa používa na získanie obsahu na danej adrese“
- kedy poslať akú správu: „ak server nevie nájsť daný obsah, odpovie chybovou správou so stavovým kódom 404“
- adresácia:
- logickými cieľmi: pripoj sa na uzol
alpha
- ale v skutočnosti adresácia s použitím transportnej vrstvy: IP adresa a port
- logickými cieľmi: pripoj sa na uzol
Komunikácia
- využíva sa nižšia transportná vrstva
- vždy dva procesy operačného systému
- klient: inicializuje komunikáciu
- server: očakáva pripojenia klientov
- OS ponúka sieťové API v podobe socketu (viď nižšie)
- adresácia pomocou IP adresy a portu
Vzťah s ISO/OSI
ISO/OSI delí aplikačnú vrstvu na podvrstvy. Tie sa v TCP/IP často prelínaju!
- aplikačná / application (L7)
- komunikácia medzi druhmi aplikácií
- HTTP, DNS
- prezentačná / presentation (L6)
- preklad aplikačných dát do sieťového formátu
- niekde aj „syntaktická vrstva“: syntax layer
- šifrovanie: SSL/TLS
- serializácia dát do XML
- ale napr. REST/HTTP toto robí na L7
- session layer (L5)
- udržiava reláciu / sessions / trvalú konverzáciu medzi dvoma procesmi
- obnovuje relácie v prípade prerušenia
- ak relácia dlho spí, vie ju ukončiť
- príklad: SOCKS protokol pre proxy spojení
- kontrapríklad: HTTP to robí na L7 pomocou cookies
Transportná vrstva (L4)
Ako prepraviť dáta do iného počítača?
- prepravuje segmenty
- určené pre konkrétny port
- rozhranie pre výmenu správ: socket
protokoly:
Vlastnosti
-
transportná vrstva rozdelí obsah aplikačnej vrstvy (HTTP, SMTP) na segmenty
-
- segment obsahuje hlavičku s informáciami pre cieľ
-
segment obsahuje porty (0-65535):
- zdrojový port
- cieľový port
- maximálna veľkosť je cca 1,5 KB
-
adresácia:
- samotný segment obsahuje len čísla portov!
- ale pracujeme s adresami zdrojových a cieľových staníc
- IP adresy zo sieťovej vrstvy (L3)
Sockety a porty
- socket je API operačného systému pre sieťovú komunikáciu
- operácia: vyrob socket
- operácia: napoj ho
- operácia: čítaj dáta / zapisuj dáta
- proces operačného systému otvorí socket
- asociuje ho s číslom portu na niektorom sieťovom rozhraní (alebo na
viacerých rozhraniach)
- buď klientsky socket:
- povie IP adresu cieľovej stanice
- povie číslo portu cieľovej stanice
- povie číslo zdrojového portu, aby bolo kam posielať odpovede
- alebo serverový socket:
- povie číslo portu alebo požiada OS o voľný port
- segment určený pre tento socket musí uviesť tento port ako cieľ
- buď klientsky socket:
Protokoly
UDP: User Datagram Protocol
Pošlem pohľadnicu, snáď dôjde.
- bez spoľahlivého prenosu
- bez spojenia
- fire-and-forget
- žiadne quality control
- žiadne detekcie zahltenia siete
- žiadna kontrola prietoku
Hlavička
- zdrojový port (2 bajty)
- cieľový port (2b ajty)
- dĺžka: počet bajtov segmentu
- kontrolný súčet (2 bajty)
Protokoly bežiace nad UDP
- DNS: preklad IP adries na doménové mená
- RIP: konfigurácia smerovacích tabuliek na routeroch
- DHCP: prideľovanie IP adries
- streamovanie videí a audia
- najpoužívanejší protokol
- potvrdzovaný prenos
- „telefonát: Si tam? / Áno som tu.
- dáta zo zdrojového socketu doplávajú do cieľového socketu všetky
- preusporiada pakety z nižšej vrstvy do správneho poradia
- preveruje, či došli všetky a nepoškodené
- vynúti opakovaný prenos chybných paketov
- kontroluje prietok dát
- ak príjemca nestíha, zmenšíme prietok
- kontroluje zahltenie
- ak sa začnú strácať pakety, zmenšíme prietok
Základné princípy
Sekvenčné čísla
- každý bajt v prúde dát od socketu k socketu má svoje vlastné sekvenčné číslo
- každý odoslaný segment nesie sekvenčné číslo
- na začiatku spojenia vygenerované náhodný základ
- klient a server majú rozličné základy
- sekvenčné číslo pre nasledovný segment sa odvodí pripočítaním dĺžky predošlého segmentu
Kumulatívne potvrdenie
- príjemca odošle potvrdzovací segment, tvrdí v ňom, že spracoval segmenty so sekvenčným číslom menším než X
Okná odosielateľa a prijímateľa
- pipelining: posielanie viacerých segmentov bez nutnosti čakať na potvrdenia po jednom
- okno odosielateľa = LIFO buffer = queue
- drží odoslané, ale nepotvrdené segmenty
- obe stanice majú vlastné nezávislé buffery
- po doručení potvrdzovacieho segmentu sa z bufferu odstránia všetky segmenty s číslom menším než X
- okno príjemcu = buffer
- monitorovanie segmentov doručovaných mimo poradia
- ako prichádzajú segmenty, výpĺňajú sa bajty v bufferi
- súvisle vyplnený úsek na ľavej strane sa považuje za úspešne prijatý, čím vieme posunúť okno „doprava“
Nadviazanie spojenia - TCP Handshake
- tri fázy = tri segmenty
- SYN: klient si otvorí socket, nastaví sekvenčné čísla, otvorí okná, pripojí sa k socketu servera
- ACK/ACK: server otvorí nový soket pre klienta, nastaví si sekvenčné čísla, otvorí okná
- ACK: klient potvrdí prijatie
Garantovanie doručenia
Strata paketov znamená
- ak odosielateľ dostane 3x rovnaké číslo potvrdenia
- ak nastane timeout pri potvrdení najstaršieho segmentu v okne odosielateľa
Kontrola toku
- každý príjemca má dva buffery
- okno príjemcu
- buffer pre nespracované dáta
- ak príjemca nestíha spracovávať,
- začne zmenšovať svoje okno príjemcu
- informuje opačnú stranu o veľkosti okna (chlievik window v TCP pakete)
- odosielateľ si následne primerane zmenší okno odosielateľa
Kontrola zahltenia
- ak sa začnú strácať pakety, zrejme je zahltená sieť
- zmenšíme okno odosielateľa
- porekadlo: čím väčšie okno odosielateľa, tým väčšia rýchlosť odosielania
- okno odosielateľa sa dynamicky nafukuje a sfukuje
- jedna metóda: začínať zľahka a ak všetko ide dobre, pridáva plyn a zväčšuje okno
- druhá metóda: zväčšuje postupne a zmenšuje delením
Spravodlivosť TCP spojení
- prenosová rýchlosť sa delí medzi počet TCP spojení
- ak sa zahltí sieť, všetci účastníci v sieti si zmenšia okná
odosielateľa
- najrýchlejší odosielatelia sa spomalia najviac
- časom sa však situácia vybalansuje
- stanica môže otvárať viacero TCP spojení
- akcelerátor sťahovania: spustíme sťahovanie na X vláknach a X TCP spojeniach = máme väčšiu rýchlosť
Sieťová vrstva / Network Layer (L3)
- Sieťová vrstva prepravuje datagramy.
- Datagram je určený pre všetky routery po ceste
- správy aplikačnej vrstvy: pre cieľovú aplikáciu
- segment transportnej verstvy: pre cieľový počítač
- Adresácia: IP adresy (v TCP/IP)
- Bežné protokoly:
- IPv4 / IPv6
- ICMP: pingy a traceroutry
Router (smerovač)
- prijíma datagramy
- posiela ich správnym smerom
- používa smerovaciu tabuľku
- pre cieľovú adresu určuje, ktorému zariadeniu a ktorému rozhraniu sa majú doručiť
- využíva smerovacie algoritmy
- pre optimálne doručenie
Datagramy a riadenie datagramami
Na sieťovej vrstve internetu sa nevytvára spojenie.
- spoľahlivosť riešia koncové zariadenia
- odľahčujú sa routre a ich logika
- nemáme garanciu prenosovej rýchlosti ani spoľahlivosť prenosu
Sieťová vrstva na internete
Nasledovné protokoly:
- IPv4: súčasný protokol pre prenos
- IPv6: budúcnosť, adresuje nedostatky IPv4
- ICMP: podporný protokol pre riadenie siete
Datagram IPv4
Vybrané položky datagramu IPv4:
- verzia
- dĺžka
- maximálna veľkosť: MTU. Minimálne 576.
- router rozbije veľké datagramy na fragmenty
- protokol:
- nastavený po doručení do cieľovej stanice
- TCP, UDP, ICMP, …
- zdrojová adresa: IP adresa
- cieľová adresa: IP adresa
- datagramy môžu dôjsť do cieľa rozličnými spôsobmi
- TTL: cez koľko routerov môže datagram prejsť? (Každý router zníži o
1).
- zabraňuje bludným Holanďanom, ktorý sa donekonečna bezcieľne túlajú sieťami
- fragmentácia: info na poskladanie fragmentov segmentu
Adresovanie v IPv4
- IP adresa: 32 bitov
- každé sieťové rozhranie má vlastnú IP adresu
- obvykle 1 sieťové rozhranie = 1 fyzické pripojenie = 1 sieťová karta
- zariadenia z rôznych sietí komunikujú cez routery
- zariadenia v 1 sieti vedia bez routera
- ak majú IP adresy v rovnakej sieti
Bežné adresovanie
IP adresa má dve časti:
- časť pre sieť
- časť pre stanicu
Dva počítače v jednej sieti musia mať rovnakú sieťovú časť.
Triedy
- A: sieť = prvých 8 bitov, 24b stanica
- môže v nej byť 2^26 ~ 16 mil. staníc
- B: sieť = 16b sieť, 16 stanica
- 65 tisíc staníc
- C: sieť = 24b sieť, 8 stanica
- 254 staníc
- D: sieť = 32 b, 0 pre zariadenie. Pre multicasty
- maska udáva koľko bitov z IP adresy tvorí sieť. Zvyšok tvorí stanicu
Špeci adresy
0.0.0.0/32
zdrojová adresa stanice v lokálnej sieti pri žiadosti DHCP o pridelenie IP.255.255.255.255
: broadcast pre lokálnu sieť: cieľová adresa pre všetky rozhrania v lokálnej sieti.127.0.0.1
loopback. Datagram s cieľovou adresou z tohto rozsahu neopúšťajú počítač.- Privátne siete pre NAT routre alebo VPN:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Smerovacia tabuľka
- vďaka maskám sa redukuje zložitosť
Ukážkový dump routera ASUS:
Destination | Gateway | Mask | Metric | Iface |
---|---|---|---|---|
10.8.110.1 | 0.0.0.0 | 255.255.255.255 | 0 | eth0 |
192.168.1.0 | 0.0.0.0 | 255.255.255.0 | 0 | br0 |
10.8.110.0 | 0.0.0.0 | 255.255.255.0 | 0 | eth0 |
0.0.0.0 | 10.8.110.1 | 0.0.0.0 | 0 | eth0 |
- Destination: cieľová adresa siete
- Gateway (Brána): pre spojovú vrstvu / link layer (o úroveň nižšie)
0.0.0.0
znamená, že rozhranie je v rovnakej sieti ako cieľová IP adresa z datagramu.- konkrétna IP adresa udáva adresu najbližšieho routera
- Posledný riadok tabuľky je cieľ
0.0.0.0
a maska0.0.0.0
čiže sa vždy použije. Brána udáva IP adresu routera, ktorým sme pripojení do internetu.
- Maska: určuje adresu siete
- Metrika: Ak sa zhoduje viacero riadkov, najmenšia metrika vyhráva.
- Interface: sieťové rozhranie, kam sa pošle datagram v prípade zhody.
- Riadky sú usporiadané podľa počtu jednotkových bitov v maske
Vyhodnocovanie
Pre každý datagram sa zhora nadol vyhodnocuje tabuľka:
- Cieľová adresa z datagramu AND maska z tabuľky (= adresa siete).
- Porovná sa s hodnotou v cieľovej adresy siete.
- Ak zhoda, pošle sa na rozhranie (iface) z tabuľky.
NAT: Network Address Translation
Provider pridelí domácnosti jedinú IPv4 adresu. Čo ak chceme mať doma viacero notebookov, mobilov, tlačiarní, atď?
- Riešenie 1: žiadať viacero IP adries. Provider rád poskytne za poplatok!
- Riešenie 2: NAT
Konfigurácia routera
- každé rozhranie routera má svoju IP adresu
- sieťové rozhranie WAN (Wide Area Network): nastavíme na IP adresu providera.
- sieťové rozhranie LAN (Local Area Network): nastavíme neverejnú IP
adresu pre privátne siete (napr.
10.0.0.1/8
) - stanice v domácej sieti:
- buď im nastavíme IP adresy napevno
- alebo využijeme DHCP protokol na routeri na dynamické prideľovanie
Algoritmus prekladu
Router prekladá adresy paketov z lokálnej siete do providerovej siete a naopak.
Udržiava si prekladovú tabuľku Network Address Translation Table.
- Počítač
10.0.0.2/8
chce získať dáta zo158.197.31.35
a portu 80. Otvorí si port 3345 pre odpoveď.- Vytvorí TCP spojenie na cieľový počítač a port.
- Zdrojová adresa je
10.0.0.2
. - Lenže TCP SYNACK zlyhá: veď vzdialený server neuvidí počítač v domácej sieti!
- NAT Router s LAN
10.0.0.1/8
a WAN138.76.29.7
- otvorí si voľný port na WAN rozhraní, napr. 5001
- do tabuľky uvedie:
- WAN:
138.76.29.7
- WAN port: 5001
- LAN:
10.0.0.2
- LAN port: 3345
- WAN:
- prepíše paket:
- nastaví zdrojovú IP adresu na
138.76.29.7
- nastaví zdrojový port na 5001
- nastaví zdrojovú IP adresu na
- pošle ho do cieľa
- ak príde odpoveď do NAT routera:
- pristane na WAN rozhraní, na IP adrese
138.76.29.7
, na porte 5001 - prepíše paket:
- cieľová adresa na
10.0.0.2
- cieľovú port na 3345
- cieľová adresa na
- pristane na WAN rozhraní, na IP adrese
Vlastnosti
- Stanica v privátnej LAN sieti ani nevie, že je za NAT routerom.
- Máme limit na počet portov na NAT
- max. 65535 portov
- typický počítač má maximálne stovky nezávislých spojení
- štandardne okolo 100 počítačov v privátnej sieti
- vieme obchádzať limit na IPv4 adresy
Limitácie
- ak si v LAN sieti založíme server, klienti zvonku sa nevedia napájať
- neexistuje verejná IP adresa
- NAT Traversal Problem
- v privátnej sieti si neurobíme verejný HTTP server, ani P2P server
Manuálne nastavenie NAT tabuľky
- ručne určíme, kam preposielať pakety
- služba UPNP (Universal Plug and Play) / Internet Gateway Device (IGD)
- stanica v privátnej sieti vie pracovať s NAT routerom:
- zistiť verejnú IP adresu na WAN rozhraní
- meniť riadky prekladovej tabuľky
- zisťovať stav prekladovej tabuľky
Prostredník
- preposielať komunikáciu cez počítač s verejnou IP adresou
- Skype: účastníci sa napoja na stanicu s verejnou adresou
DHCP: Dynamic Host Configuration Protocol
- automatické prideľovanie IP adries staniciam
- protokol na aplikačnej vrstve
- využíva všetky tri vrstvy:
- aplikačnú: rozličné príkady
- transportnú: UDP a porty 67/68
- sieťovú: broadcastovú cieľovú adresu
Algoritmus
Zariadenie sa chce pripojiť do siete. Vie, že niekde v sieti je DHCP server na porte 67.
-
Požiadavka zariadenia: DHCP Discover
-
na sieťovej úrovni:
-
cieľová adresa: broadcastová adresa lokálnej siete
255.255.255.255
-
zdrojová adresa:
0.0.0.0
. Máme vajce-sliepka problém, takže zdroj nevieme.
-
-
na transportnej úrovni:
-
protokol UDP
-
port: 67
-
-
na aplikačnej úrovni:
-
jednoznačný identifikátor
-
údaje správy DHCP discover
-
-
-
Odpoveď DHCP Servera: DHCP Lease Offer s ponúknutou IP adresou
- na sieťovej úrovni: cieľová adresa:
255.255.255.255
- na transportnej úrovni: UDP, cieľový port 68
- na aplikačnej úrovni: jednoznačný identifikátor z Discovery
- Požiadavka klienta na pridelenie adresy: DHCP Request
- na sieťovej úrovni: cieľová adresa:
255.255.255.255
- na transportnej úrovni: UDP, cieľový port 67 (server)
- na aplikačnej úrovni: všetky parametre z DHCP Lease Offer
- Odpoveď DHCP Servera: DHCP Ack
- na sieťovej úrovni: cieľová adresa:
255.255.255.255
- na transportnej úrovni: UDP, cieľový port 67 (server)
- na aplikačnej úrovni: všetky parametre z DHCP Lease Offer
- Klient si nastaví ponúknutú IP adresu a komunikuje.
Vlastnosti
Životnosť
- pridelená IP adresa má životnosť
- pred vypršaním sa zopakujú DHCP Request a DHCP Lease.
- už netreba broadcastovať
- stačí priamo poslať na IP adresu DHCP servera
- DHCP server nemusí odpovedať broadcastom, keďže pozná IP adresu zariadenia
Relaying
- v danej sieti nemusí existovať DHCP server
- na routroch môže byť relay agent
- preposiela požiadavky a odpovede do siete, kde DHCP server je prítomný
Recyklácia
- vďaka DHCP môžeme dynamicky recyklovať IP adresy
- ak sa zamestnanci pripájajú do siete notebookmi a vieme, že nikdy neprídu do práce naraz, môžeme alokovať menej IP adries v sieti než je zamestnancov
- sieťový (nie aplikačný!) protokol pre zisťovanie stavu siete
- ping: dostupnosť stanice s IP adresou
- traceroute / tracert: diagnostika suete
- postupne posiela datagramy s narastajúcim TTL
- každý router zníži TTL o jedna
- odpovede sa s TTL o jedna nižším
- takto vieme zistiť, ktorý router už prestal odpovedať
Hlavička ICMP protokolu
Príklady:
- Ping Echo Request = type 8, code 0
- Ping Echo Reply = type 0, code 0
- Traceroute TTL Expired = type 11, code 0
- Destination Port Unreachable = type 3, code 3
- ak je v UDP segmente nedostupný port
- Destination Network Unreachable = type 3, coe 0
- niektorý router po ceste je vypnutý / nefunkčný
V tele odpovede sa môže nachádzať hlavička a 8 bajtov z tela chybového datagramu.
Smerovacie algoritmy
- ručné nastavenie smerovacej tabuľky
- ak vypadne cieľový router, smerovanie paketov prestane fungovať
- dynamické smerovanie
- cez niektorý algoritmus
- zistia optimálnu cestu k dostupným sieťam
- modifikuje smerovacie tabuľky
- administrátor viacerých sietí a routerov volí vhodný smerovací protokol vo svojom autonómnom systéme
- používajú sa rozličné grafové algoritmy
Komunikácia v systémoch
- routery v autonómnych systémoch vzájomne komunikujú
- aplikačné protokoly RIP (Routing Information Protocol) a
- OSPF (Open Shortest Path First)
- autonómne systémy vzájomne komunikujú
- BGP: border gateway protocol: štandard v Internete
Komunikácia si dynamicky vymieňa informácie o dostupnosti a vzdialenostiach.
Smerovacie schémy
- unicast: datagramy smerujú k presne určenej stanici
- vyžadované v TCP
- anycast: viacero potenciálnych príjemcov, doručí sa vždy len
jednému
- máme 13 koreňových DNS serverov
- ale jedna IP adresa je použitá pre viaceré stanice
- požiadavka môže prísť na jeden ľubovoľný server.
- broadcast: „amplión“: doručenie všetkým uzlom / podsieťam
- Príklady:
- komunikácia v smerovacích protokoloch
- ARP na spojovej vrstve
- peer-to-peer protokoly
- problímy:
- ako posielať správy, aby sme nespôsobili broadcastovú búrku, teda nekontrolované zahltenie routerov
- riešenie cez grafové algoritmy (minimálna kostra a pod.)
- Príklady:
- multicast: doručenie každému prihlásenému v multicastovej doméne
- stanice môžu povedať, že chcú/nechcú prijímať správy
- streamovanie televízie a rádií
- videokonferencie, gridy, sieťové hry
- protokol IGMP (Internet Group Management Protocol)
- sieťový protokol pre spravovanie členov multicastovej skupiny
Spojová vrstva / Data Link Layer (L2)
Ako preniesť datagram konkrétnym prenosovým médiom?
- drát kovový
- drát optikový
- vzduch
Vlastnosti
- rieši komunikáciu v rámci jednej siete
- adresácia cez MAC adresy
- datagram je obalený do rámca / frame
- finálna postupnosť 0 a 1, ktorá sa pošle do spoja
- podporuje sa odhaľovanie chýb
- overenie, že príjemca dostal to, čo odosielateľ poslal
- typické protokoly:
- Ethernet: viď nižšie
- PPP (Point-To-Point) pre vytáčané spojenia, sériové káble a optiku
Adresácia cez MAC Adresy
- fyzické adresy = hardvérové adresy = ethernetové adresy
- 6 bajtov:
AA:BB:CC:DD:EE.FF
- sú nezávislé od siete
- „napečené“ do sieťovej karty
- organizácia IEEE prideľuje výrobcom sieťových zariadení rozsahy MAC
adries
- napríklad WiFi adaptér na MacBook Pro má prefix
AC:BC:32
, čo je prefix pridelený Applu
- napríklad WiFi adaptér na MacBook Pro má prefix
- MAC adresa je nezávislá od siete! Metafora „rodné číslo“
Ethernet
- adresuje spojovú vrstvu L2 v ISO/OSI modelu, i najnižšiu fyzickú vrstvu L1
- v TCP/IP („Internet“) patrí do najnižšej vrstvy sieťového rozhrania (network layer)
- používa metódu CSMA/CD
- datagramy sieťovej vrstvy sú obalené do rámcov
- rámce sú pomocou spojovej metódy CSMA/CD posielané do spoja
Ethernetové rámce / Ethernet Frames
- preambula: 7 bajtov. Striedavé nuly a jednotky.
- start frame delimiter (SFD): 1 bajt. Striedavé 0/1 ukončené dvoma jednotkami.
- cieľová MAC adresa
- zdrojová MAC adresa
- protokol vyššej vrstvy (EtherType):
- 0x0800 = IPv4
- 0x86DD = IPv6
- 0x0806 = ARP
- payload: telo rámca. V drôtovom Ethernete podľa MTU maximálne 1500 bajtov
- kontrolný súčet: CRC pre 4 bajty
Topológia sietí
- star: hviezdica. Zariadenia pripojené na centrálne zariadenie. Najbežnejšie súčasné:
- bus (zbernica) pre stanice na tom istom drôte, token ring (kruh)
Centrálne zariadenia
Hub / Rozbočovač (L1)
- signál zo zásuvky vezme, zosilní a pošle do všetkých ostatných zásuviek
- funguje len na fyzickej vrstve (L1), hlúpy, chápe len 0/1, vie len rekonštruovať zašumený signál
- ak začnú vysielať viacerí, nastane kolízia. Všetci sú v jednej kolíznej doméne.
Repeater / Opakovač (L1)
- hub s 2 zásuvkami
Switch / Prepínač (L2)
- vníma MAC adresy
- ak vie, na ktorej zásuvke je napojená MAC príjemcu, signál posiela
len do nej
- zariadenia v jednej sieti si nesledujú komunikáciu
- predchádza sa kolíziám
- v kolíznej doméne je len switch a stanica
- ethernetové káble dokáže full-duplex (príjem a vysielanie separátnymi drôtikmi), takže kolízie nehrozia vôbec
- switche store-and-forward posielajú frame, až keď ho dostanú
celý
- vedia switchovať megabitovú a gigabitovú sieť
- udržiava si prepínaciu tabuľku / switching table
- je to transparentné zariadenie: stanice nevedia o jeho existencii
- manažovateľné switche majú obvykle aj MAC adresu, i webové rozhranie na konfiguráciu
Prepínacia tabuľka
- číslo zásuvky
- MAC adresa uzla napojeného na zásuvku
- timestamp aktualizácie záznamu
Switch tabuľku aktualizuje sám:
- Ak príde rámec do zásuvky:
- prečítaj zdrojovú MAC adresu a poznač si ich do tabuľky
- prečítaj cieľovú MAC, dohľadaj v tabuľke:
- ak si nič nedohľadal, funguj ako hub. Pošli rámec do všetkých ostatných zásuviek.
- ak sa dohľadaná zásuvka zhoduje zo zdrojovou zásuvkou, zahoď rámec
- inak pošli rámec do dohľadanej zásuvky
Pozor, broadcastové rámce (FF:FF:FF:FF:FF:FF
) sa posielajú v režime
hub.
Bridge / Most (L2)
- switch s dvoma zásuvkami
ARP: Preklad z IPv4 adries na MAC
Každé zariadenie (routre, počítače) obsahuje ARP tabuľku:
- IPv4 adresa
- MAC adresa
ARP tabuľka:
- nemusí obsahovať všetky uzly v siete
- pravidelne sa premazáva
Algoritmus
Počítač Lenovo chce pingovať adresu 192.168.1.1
vo svojej lokálnej
sieti. (ICMP protokol na sieťovej vrstve L2).
- Pozrie sa do svojej ARP tabuľky, či nemá záznam o MAC adrese.
- Ak nájde záznam, rovno ho použije. (ARP sa preskočí)
- Ak nenájde hodnotu, spustí sa ARP.
- Pošle ARP Request broadcastový rámec s otázkou „Kto je
192.168.1.1
? - Stanica s danou IP adresou odpovie ARP Response
unicastovým rámcom „Ja som
192.168.1.1
a moja MAC adresa je ___“ (pozná MAC adresu odosielateľa) - Lenovo si poznačí do svojej tabuľky dvojicu.
- Pošle ARP Request broadcastový rámec s otázkou „Kto je
Vytváranie rámca
Pri vytváraní rámca na spojovej vrstve:
- vieme IP adresu príjemcu
- vieme IP odosielateľa
- potrebujeme vyplniť
- MAC odosielateľa: to poznáme, lebo to sme my
- MAC príjemcu.
- Je IP adresa príjemcu z našej siete?
- Ak áno, ideme ARPovať.
- Ak nie, zistíme zo smerovacej tabuľky na routeri (L3) bránu a ideme ARPovať.
- Je IP adresa príjemcu z našej siete?
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK