Počítačové sítě základy
Základy topologie a komunikace
Počítačové sítě lze dělit podle několika kritérií. Těmito kritérii mohou být např.:
Základními topologiemi počítačových sítí LAN (Local Area Network) jsou:
sběrnice (bus) – tuto topologii používá Ethernet realizovaný koaxiálním kabelem. Existují dvě specifikace, 10Base-2 a 10Base-5, rozdíl je dán typem použitého kabelu a jeho délkou. Protože jde o přežitek nehodný dnešní doby, spokojíme se s konstatováním, že tato topologie má několik nevýhod (např. obtížnou identifikaci příčin závad, topologickou omezenost počtu uzlů i vzdáleností mezi nimi, striktní sdílení pásma bez možnosti významněji ovlivnit tuto vlastnost použitím aktivních prvků atd.) a jedinou výhodu, kterou je cena řešení.
kruh (ring) – tato topologie je založena na tom, že vysílací část jednoho uzlu je zapojena do přijímací části uzlu následujícího; typickými technologiemi používajícími topologii kruhu jsou Token Ring a FDDI. Jak Token Ring tak FDDI používají kruh logicky, ale fyzicky je topologie tvořena hvězdou s centrálním prvkem.
hvězda (star) – tato topologie představuje současný trend vytváření počítačových sítí. Spoje od koncových přípojných uzlů jsou vedeny do centrálního uzlu, kde je prvek realizující propojení koncových uzlů. Podíváme-li se na topologii obecně, vidíme, že struktura je vhodná nejen pro sítě (Ethernet, Token Ring, FDDI, ATM), ale i pro telefonní ústředny; prvek spojující uzly je pak v místě s označením Star (viz. obr.).
V případě počítačových sítí bývá centrální prvek označen jako aktivní prvek; paradoxem je, že aktivní prvek pro Token Ring může být pasivní :-).
Charakterem komunikace mohou být sítě spojové a nespojové (správněji nazývané jako sítě s navazováním spojení a bez navazování spojení – v angl. terminologii with connection a connectionless). U spojových sítí je před zahájením přenosu nutné navázat spojení, tzn. uzly se musí domluvit s aktivními prvky a koncovými uzly, které následně vytvoří virtuální kanál, prostřednictvím něhož jsou přenášena data. U nespojových sítí se žádné spojení nenavazuje.
Nespojové
Příkladem nespojových technologií jsou technologie založené na broadcastu, tzn. všesměrovém vysílání – např. Ethernet, Token Ring, FDDI. Rámec se dostane ke všem uzlům a příslušný uzel rozhoduje, zda je adresátem nebo ne.
Spojové
Příkladem spojových technologií je ATM. Zde musí před komunikací příslušných uzlů dojít k vytvoření trvalého spojení (PVC) nebo dočasného spojení (SVC). Pro stávající aplikace, které byly připraveny pro nespojové technologie, je nutné řešit komunikační princip prostřednictvím přidaných mechanismů typu Broadcast and Unknown Server (BUS).
Určitým hybridem obou technologií může být přepínání nespojových technologií, kde sice nedochází k vytváření virtuálních spojů, ale zároveň jsou unicastové pakety posílány pouze příslušnému uzlu.
Principy komunikace, média, rozsah
Principy komunikace počítačových sítí, používaná přenosová média, rozsah sítí.
Základní tochastický a deterministický.
Stochastické metody jsou založeny na náhodném přístupu k médiu. Typickým představitelem technologie používající stochastickou metodu je Ethernet. Zde si ve stručnosti uvedeme pouze to, že při stochastickém přístupu se jednotlivé uzly pokoušejí komunikovat bez jakéhokoliv pořadí. Žádný uzel tak nemá garantováno, že se mu podaří přenést určité množství dat za určitou dobu.
Deterministické metody jsou založeny na řízení přístupu k médiu. K řízení je používána metoda předávání speciálního paketu - peška (token). Typickým představitelem technologie používající deterministickou metodu je Token Ring. Velice zjednodušený náhled na funkci Token Ringu lze popsat následovně : po síti je přenášen paket nazývaný token. Uzel, který potřebuje komunikovat, musí počkat až k němu token dorazí. Pak má příležitost změnit příznak, doplnit hlavičku, naplnit datové pole a odeslat data cílovému uzlu. Ten po obdržení datového paketu zkontroluje kontrolní součty, nastaví příslušné příznakové bity a pošle paket dále. Paket posléze dorazí k tomu uzlu, který data poslal. Tento uzel si prohlédne příznaky a předá je vyšším vrstvám. Vygeneruje prázdný paket (token) a odešle jej. Token je pak předáván mezi uzly na síti až dorazí k prvnímu uzlu, který má připravena data – a zde se historie opakuje. Ze znalosti maximální velikosti paketu a počtu uzlů na kruhu lze vypočítat maximální dobu, za kterou se uzlu podaří odeslat příslušné množství dat. Fungování Token Ringu je však o dost složitější než jsme si zde v několika větách popsali (např. někdo musí hlídat zda se na síti vyskytuje token). Technologie je tedy logicky složitější a tím i dražší než Ethernet a jsou dva zásadní důvody proč Token Ring nedoznal takového rozšíření a dokonce byl zastaven jeho další rozvoj.
V současné době je v LAN nejpoužívanějším přenosovým médiem kroucený dvoupár označovaný jako UTP (Unshelded Twisted Pair). Základním parametrem tohoto kabelu je impedance 100 ohmů. V Evropě je ovšem používanější stíněná modifikace tohoto kabelu – stínění je prováděno na úrovni celého svazku, jedná se tedy o ochrannou fólii pod plastovým obalem kabelu. Označení je pro tuto modifikaci do jisté míry závislé na výrobci. Někteří výrobci jej označují jako STP (Shielded Twisted Pair) nebo FTP (Foiled Twisted Pair). Napříč označení je nutné si uvědomit, že tyto moderní kabely mají impedanci stejnou jako UTP kabely – tedy 100 ohm. Tyto kabely nejsou shodné s klasickými STP kabely, které mají impedanci 150 ohm a mají zpravidla stíněné jednotlivé páry (viz. obrázek) ! UTP kabely lze používat pro celé spektrum současně používaných technologií – Ethernet Fast Ethernet, Gigabit Ethernet, Token Ring i ATM. Topologií, která je krouceným dvoupárem vytvořena je hvězda. Běžné označení pro sítě tvořené krouceným dvoupárem je strukturovaná kabeláž. Jako perličku bych ještě uvedl, že základy standardu 10Base-T, jenž je modifikací Ethernetu pro UTP kabely, položila společnost SynOptics, dnes součást Nortel Networks.
Ještě před nedávnou dobou byl nejpoužívanějším přenosovým médiem v Ethernet LAN sítích koaxiální kabel (v Token Ring sítích s modifikací twinax). Výhodou byla cena a jednoduchost provedení. Nevýhodami jsou náchylnost k poruchovosti a technologická omezení (počet uzlů, rychlost). Typickou topologií tvořenou koaxiálním kabelem je sběrnice.
V LAN sítích se pro překlenutí delších vzdáleností používají optické kabely. Pro kratší vzdálenosti (cca 260 m až 2 km v závislosti na technologii) multimodové (neboli mnohovidové) pro větší vzdálenosti singlemodové (neboli jednovidové). Stejně tak jako UTP kabely, lze i optické kabely použít pro celé spektrum aktuálních technologií. Optické kabely se používají i pro spojování budov tam, kde je nutné realizovat spoj venkovním prostředím a to i na poměrně krátké vzdálenosti. Optické kabely totiž zajistí galvanické oddělení potenciálů a nezpůsobí zničení infrastruktury při náhodném úderu blesku. Typickou topologií tvořenou optickým kabelem je hvězda.
Jsou místa kde nelze použít spojení optikou. Důvodem může být např. přílišná nákladnost položení kabelu nebo dokonce nemožnost položení kabelů. V tom případě jsou používány bezdrátové technologie. Ty byly časem rozvinuté tak, že jsou používány jako alternativa lokálních sítí založených na kabelových systémech. Nevýhodou jsou prozatím cena a relativně nízká rychlost. To ale naopak nečiní překážky pro použití bezdrátových sítí pro připojování k Internetu – zde se daří dosahovat více než zajímavého poměru cena/výkon.
Pro velké vzdálenosti se používají pronajaté datové okruhy jejichž provoz zajišťuje některý z poskytovatelů připojení (běžně telekomunikační operátor).
Sítě mohou být rozličně rozsáhlé. Od těch, které mají pouze několik uzlů v jedné místnosti až po ty, které mají velké skupiny rozmístěné po celém světě.
Pro sítě se podle rozsahu používá několik označení :
Local Area Network – LAN – běžně síť v jedné nebo několika sousedních budovách. V rámci budovy se používá strukturovaná kabeláž kombinují UTP kabely a optické kabely. Pro spojování budov se používají optické kabely nebo bezdrátové spoje.
Metropolitan Area Network – MAN – je označení pro síť většího rozsahu pokrývající např. území velkého podniku nebo města. Velmi zjednodušeně lze říci, že MAN je LAN s velkým počtem budov nebo několik LAN spojených vysokorychlostní páteří.
Widea Area Network – WAN – je síť tvořená větším či menším počtem vzájemně vzdálených LAN. LAN jsou spojovány většinou pronajatými datovými okruhy. Použité aktivní prvky (dnes již téměř výhradně směrovače) umožňují nejen přenos dat, ale ve stále větší míře i spojování telefonních ústředen.
Fyzická a linková vrstva ISO OSI
Sedmivrstvý referenční model ISO OSI - fyzická a linková vrstva. Referenční model ISO OSI je pravděpodobně nejznámější metodou popisu komunikačních systémů. Znalost této architektury je základním předpokladem pro pochopení funkce počítačových sítí, přenosu dat a návazných technologií.
Pravděpodobně nejznámější metodu popisu komunikačních systémů představuje sedmivrstvá architektonická struktura, nazývaná referenční model OSI. Znalost této architektury je základním předpokladem pro pochopení funkce počítačových sítí, přenosu dat a návazných technologií.
Existují určité příměry usnadňující pochopení funkce datových přenosů. Tím nejoblíbenějším je srovnání s poštou. Srovnání s poštou dělí vrstvy na dvě části :
· 5 až 7 - uživatelská část
· 1 až 3 - síťová část
Uživatelská část odpovídá v poštovní analogii psaní dopisu a splnění konvencí používaným pro doručení dopisů.
Síťová část je v poštovní analogii přirovnávána ke službám zajišťujícím přenos dopisu mezi sběrnou schránkou do schránky domovní.
Mezi těmito částmi je 4. vrstva, která je chápána jako interfejs mezi uživatelskou částí a síťovými službami. Lze ji přirovnat k přepážkové službě, kde se rozhoduje zda dopis půjde standardní službou, expres, letecky, jako balíček, stylem dopisu v láhvi, ...
7. aplikační |
6. presentační |
5. spojová |
4. transportní |
3. síťová |
2. linková |
1. fyzická |
Zatímco první čtyři vrstvy jsou poměrně exaktně definovány, zbylé tři vrstvy nemusí být striktně použity tak, jak jsou definovány podle tohoto modelu. (Příkladem kdy nejsou v modelu použity všechny vrstvy je např. IP protokol).
Teoreticky každá vrstva přidává zepředu k balíku dat vlastní hlavičku s údaji této vrstvy a na závěr kontrolní součet nebo informaci o ukončení dat vrstvy. Paket si pak lze představit např. následovně:
Velikost celého balíku i jeho režijní části je značně závislá na použité přenosové technologii, použitých protokolech a typu aplikace. Např. Ethernet umožňuje variabilitu v délce rámce 64 až 1518 byte, samotná hlavička tohoto protokolu je min. xy byte. Pokud je pro přenos použit protokol IP, představuje IP hlavička velikost min. 20 byte. Hlavička protokolu TCP má velikost min. 24 byte.
Fyzická vrstva (Physical Layer)
Tato vrstva specifikuje bitový přenos z jednoho zařízení na druhé prostřednictvím fyzického média. Samotné fyzické médium není součástí vrstvy, v OSI modelu je pod touto vrstvou.
Fyzická vrstva zajišťuje synchronizaci (synchronní vs. asynchronní komunikace) a multiplexing – několik logických spojení lze realizovat jedním fyzickým médiem.
Datové jednotky přenášené fyzickou vrstvou jsou bity.
Tato vrstva je závislá technologicky (Ethernet, Token Ring, ATM, FDDI, ...), ale protokolově (IP, IPX, Vines IP, XNS, ...) je nezávislá! Prvky pracující na této vrstvě jsou opakovače a rozbočovače. Tyto prvky rozšiřují kolizní i broadcastovou doménu!
Linková vrstva (Data Link Layer)
Zajišťuje přístup ke sdílenému médiu a adresaci na fyzickém spojení – tj. v jednom síťovém segmentu. K adresaci jsou používány fyzické neboli MAC (Media Access Control) adresy. MAC adresa je 48 bitová adresa a je svázána se síťovým adaptérem připojujícím zařízení do sítě (např. 00-00-64-65-73-74). První tři oktety znamenají výrobce, další oktety zajišťují unikátnost MAC adresy. Výrobce je v tomto případě Xircom. Relaci mezi ostatními registrovanými výrobci a přidělenými čísly lze nalézt např. v RFC 1700.
Formát hlavičky linkové vrstvy je většinou ve formátu podle obrázku.
Úvodní sekvence | cílová adresa | zdrojová adresa | ... |
Úvodní sekvence (preamble) je často řazena do informace fyzické vrstvy. Cílová adresa (destination address) a zdrojová adresa (source address) jsou velmi významné součásti hlavičky linkové vrtsvy. Lze je nalézt téměř u všech síťových technologií (např. ArcNet, Ethernet, Token Ring, FDDI). Další části paketu jsou tvořeny zbývajícími údaji hlavičky, hlavičkami vyšších vrstev, přenášenými daty a údaji o ukončení příslušné vrstvy.
V závislosti na hodnotě prvního bitu prvního oktetu adresy určení se adresy (a tím i pakety) dělí na Unicastové a NonUnicastové. Unicastové adresy slouží pro komunikaci s konkrétním uzlem, adresa určení odpovídá MAC adrese tohoto uzlu sítě (nebo MAC adrese směrovače).NonUnicastové adresy slouží pro komunikaci s určitou skupinou uzlů (je-li adresa ve tvaru ff-ff-ff-ff-ff-ff-ff-ff, jde o tzv. Broadcast a příjemci jsou všechny uzly sítě; všechny ostatní jsou nazývané Multicastové adresy). Pokud binární adresa určení začíná číslem 1 jedná se vždy o NonUnicast adresu. Význam Broadcastů je např. pro vyhledávání specifických zařízení nebo zjišťování např. IP adresy. Význam Multicastových adres je v komunikaci určitých specifických aplikací (např. video stream) nebo protokolů (RIPv2, OSPF, ...).
Bylo řečeno, že MAC adresa je provázána s konkrétním adaptérem. Některé drivery umožňují náhradu pevně dané adresy adresou libovolnou (obvzlášťpovedený šprým je identifikovat svoji stanici MAC adresou 00-00-00-0a-ba-ba-da), jenom pozor aby si stejnou adresu nezvolilo víc uživatelů. MAC adresa musí být v rámci broadcastové domény unikátní!.
Datové jednotky přenášené linkovou vrstvou jsou rámce (frame).
Tato vrstva je závislá technologicky (Ethernet, Token Ring, ATM, FDDI, ...), ale protokolově (IP, IPX, Vines IP, XNS, ...) je nezávislá ! Prvky pracující na této vrstvě jsou můstky a přepínače. Tyto prvky rozšiřují broadcastovou doménu, ale rozdělují kolizní domény!
Síťová a vyšší vrstvy referenčního modelu ISO OSI
Síťová, transportní, spojová, presentační a aplikační vrstva referenčního modelu ISO OSI.
Síťová vrstva (Network Layer)
Zajišťuje adresaci v rámci síťového prostředí s více fyzickými segmenty. Používá logické adresy a prostřednictvím nich přenos dat z jednoho zařízení na druhé i z jedné sítě do jiné. Adresa zařízení má dvě části – část označující síť do níž zařízení patří (poštovní analogie – město + PSČ) a část označující konkrétní uzel (poštovní analogie např. ulice + číslo popisné).
Představme si, že kompletní adresa je interpretována dvěma čísly oddělenými tečkou ve formátu síť.uzel (např. 040.001). Část sítě musí být unikátní z globálního hlediska tzv. intersítě (neboli propojení několika lokálních sítí - subsítí). Pokud bude mít pardubická síť logickou adresu 040, žádná jiná lokalita spojená s Pardubicemi nemůže tuto adresu použít. Libovolný prvek může použít adresu uzlu 001, pak však tuto adresu uzlu nesmí použít žádný jiný prvek v dané lokalitě, ale v jiné lokalitě ji může použít bez problému – celková adresa 040.001 je totiž jiná než 02.001 !
Konkrétním příkladem protokolu třetí vrstvy OSI je protokol IP. Dalším příkladem je IPX.
Sítě jsou spojeny zařízeními pracujícími na této vrstvě. Jsou nazývány směrovače (routery) a mají přehled o okolních částech sítě. Síťová vrstva pak používá nejlepší cestu z jedné sítě do druhé – to je dáno buď konfigurací cest nebo použitím směrovacích protokolů (např. RIP – Routing Information Protocol).
Znalost logických a fyzických adres je bezpodmínenčně nutná – údaje všech vrstev musí být korektně vyplněny (viz. např. komunikace mezi dvěma uzli popsaná při vysvětlení pojmu odchozí brána). Protokoly 3. vrstvy musí tedy zajistit mechanismus vytvářející relaci mezi logickými a fyzickými adresami. U nejznámějších protokolů je to rozdílné. IPX má tuto relaci zajištěnu přímo - adresa uzlu na 3. vrstvě odpovídá MAC adrese. Protokol IP používá mechanismus nazývaný ARP.
Datové jednotky přenášené síťovou vrstvou jsou pakety (packet).
Síťová vrstva je technologicky (Ethernet, Token Ring, ATM, FDDI, …) nezávislá, ale je závislá protokolově (IP, IPX, Vines IP, XNS, ...) ! Technologická nezávislost je dána tím, že pro každou požadovanou technologii je ve směrovači příslušný adaptér.
Transportní (přenosová) vrstva (Transport Layer)
Účelem této vrstvy je zajistit spolehlivost a kvalitu přenosu jakou požadují vyšší vrstvy. Principielně nabízí tato vrstva dva typy služeb :
· spojově orientované (connection-oriented) služby
· nespojové (connectionless) služby
Spojově orientované služby zajišťují spolehlivý přenos navázáním virtuálního spojení, výměnou informací o průběhu přenosu (potvrzováním příjmu rámců) a ukončení spojení. Na základě potvrzování je vysílající uzel schopen zopakovat ztracené nebo opožděné rámce. Konkrétním představitelem tohoto typu protokolů jsou SPX nebo TCP.
Nespojové služby slouží k jednoduchému odeslání dat. Na této vrstvě neexistuje mechanismus kontroly spolehlivosti. Je ji nutno zajistit mechanismy vyšších vrstev. Typickým představitelem tohoto typu protokolů je UDP.
Datové jednotky přenášené přenosovou vrstvou jsou TPDU (Transport Layer Protocol Data Unit). U TCP protokolu je běžné označení TPDU segment, u UDP protokolu jde o user datagram.
Spojová vrstva (Session Layer)
Zajišťuje pravidla pro navazování a ukončování datových přenosů mezi uzly na síti. Dále zajišťuje služby typu překlad jmen na adresy nebo bezpečnost přístupu.
Poměrně zajímavou funkcí této vrstvy je synchronizace datových přenosů. Asi máte zkušenost se stahováním velkých objemů dat z Internetu. Uprostřed přenosu se rozpojí modem a nezbude než zanadávat na telekom a zkusit to znovu. Pak jsou dvě možnosti – buď používáte software, který je schopen navázat na již staženou část (samozřejmě umí-li to i server) nebo začínáte od začátku. Navazování je zajištěno pomocí značek, které vytváří právě spojová vrstva.
Příkladem protokolů spojové vrstvy jsou :
· Network File System NFS)
· Structured Query Language (SQL)
· Remote Procedure Call (RPC)
· AppleTalk Session Protocol (ASP)
· Digital Network Architecture Session Control Protocol (DNA SCP)
Datové jednotky přenášené spojovou vrstvou jsou TPDU (Session Layer Protocol Data Unit).
Presentační vrstva (Presentation Layer)
Presentační vrstva je zodpovědná za formátování a syntaxi dat. Různé systémy používají různé kódy pro presentaci znakových řetězců, čísel s plovoucí čárkou, apod. Presentační vrstva tedy zajišťuje převod datových struktur mezi syntaxí používanou na příslušném systému a syntaxí obecnou. Další funkcí presentační vrstvy je konverze přenášených dat do formátu srozumitelného pro přijímající zařízení. Příkladem pro tyto operace jsou např. šifrování /dešifrování a komprese/dekomprese dat, které mohou být realizovány touto vrstvou.
Shrnutí vlastností a funkcí presentační vrstvy :
· formát datové struktury (např. kódování znaků – EBCDIC, ASCII; formát obrázku – TIFF, JPEG; formát multimediálního souboru – AVI, MPEG, MIDI; struktura pro zobrazování webových stránek - HTML)
· šifrování dat
· komprimace
Datové jednotky přenášené presentační vrstvou jsou PPDU (Presentation Layer Protocol Data Unit).
Aplikační vrstva (Application Layer)
Aplikační vrstva představuje okno, prostřednictvím kterého mohou uživatelé nebo aplikace vidět výsledky služeb zajišťovaných všemi předcházejícími vrstvami. Jde o vrstvu nejbližší uživateli, která na rozdíl od ostatních nezajišťuje služby pro vyšší vrstvu (žádnou již nemá). Příklady funkcí zajišťovaných touto vrstvou jsou souborové přenosy, sdílení zdrojů, přístup k databázím, prohlížení webových stránek, ovládání programů, apod.
Datové jednotky přenášené aplikační vrstvou jsou APDU (Application Layer Protocol Data Unit).
Další informace o OSI modelu lze najít v dnes již poměrně hojně dostupné literatuře nebo na Internetu, např. na stránce RAD University (http://www.rad.com/networks/1994/osi/intro.htm) nebohttp://www.acm.org/sigcomm/sos.html.
Ethernet
V současné době je nejpoužívanější síťovou technologií Ethernet. Tato technologie je, nezávisle na tom zda jde klasický 10 Megabitový Ethernet nebo jeho rychlejší mutace (Fast a Gigabit Ethernet), založena na velice jednoduchém principu, nazývaném CSMA/CD.
Na strukturovaném kabelovém systému lze používat rozličné síťové technologie založené na rozdílných přenosových metodách - např. Ethernet, Token Ring, CDDI, ATM, ...
V současné době je nejpoužívanější síťovou technologií Ethernet. Tato technologie je, nezávisle na tom zda jde klasický 10 Megabitový Ethernet nebo jeho rychlejší mutace (Fast a Gigabit Ethernet), založena na velice jednoduchém principu, nazývaném CSMA/CD.
CSMA (Carrier Sense Multiple Access) - stanice připravená vysílat data si "poslechne" zda přenosové médium (kabel) nepoužívá jiná stanice. V případě, že ano, stanice zkouší přístup později až do té doby dokud není médium volné. V okamžiku kdy se médium uvolní začne stanice vysílat svá data.
CD (Collision Detection) - stanice během vysílání sleduje zda je na médiu signál odpovídající vysílaným úrovním (tedy aby se např. v okamžiku kdy vysílá signál 0 nevyskytl signál 1). Případ kdy dojde k interakci signálů více stanic se nazývá kolize. V případě detekce kolize stanice generuje signál JAM a obě (všechny) stanice které v daném okamžiku vysílaly generují náhodnou hodnotu času po níž se pokusí vysílání zopakovat.
K obrázku:
fáze 1 - stanice vlevo si poslechla na drátu zda někdo vysílá, zjistila, že ne a začala sama posílat data; v okamžiku kdy ještě signál nedorazil ke stanici vpravo si tato stanice ověřila stav média, zjistila, že je možnost zahájit vysílání
fáze 2 – obě stanice posílají data
fáze 3 – stanice vpravo zjistila kolizi a generuje signál JAM, všechny vysílající stanice zastavují vysílání a generují náhodné číslo
Díky této jednoduchosti bylo dosaženo nízké ceny síťových adaptérů a aktivních prvků a tím i značného rozšíření Ethernetu. Jednoduchost řešení ovšem přináší i jednu významnou nevýhodu – s narůstajícím počtem uzlů narůstá počet kolizí a tím klesá teoretická propustnost sítě. Soubor uzlů jejichž vzájemná činnost může vygenerovat kolizi se nazývá kolizní doména. Logicky lze odvodit, že kolizní doména by měla být co nejmenší. Používané aktivní prvky mají ke kolizní doméně rozdílný vztah. Některé kolizní doménu rozšiřují, některé kolizní domény oddělují. Jejich volbou lze proto propustnost sítě ovlivnit.
Vedle pojmu kolizní doména existuje pojem broadcastová doména. Na počítačové síti se vyskytují principielně dva typy paketů – tzv. unicasty a nonunicasty. Unicasty jsou pakety které mají konkrétního adresáta vyjádřeného regulérní síťovou adresou. Nonunicasty používají skupinovou adresu a jsou určené buď všem uživatelům sítě (broadcasty) nebo vybrané skupině uživatelů (multicasty). Problém je v tom, že nonunicastu se musí počítač věnovat i když není určen pro něj. S nárůstem počtu uzlů v broadcastové doméně narůstá i množství nonunicastů. Z tohoto důvodu je nutné udržet velikost broadcastové domény v rozumné velikosti. Používané aktivní prvky mají k broadcastové doméně rozdílný vztah a proto lze jejich volbou propustnost sítě ovlivnit.
Formát paketu
Již bylo řečeno, že všechny rychlostní modifikace Ethernetu používají stejnou komunikační metodu CSMA/CD. Používají však i stejný formát a velikost paketu. Ethernetový paket je definován na 1. a 2. vrstvě OSI.
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
· Ethernet_802.3
· Ethernet_802.2
· Ethernet_SNAP
Podrobnosti ponecháme na odbornou literaturu. Zde si představíme ten nejjednodušší formát – Ethernet_II.
Preamble | adresa určení (DA) | zdrojová adresa (SA) | typ paketu | data | CRC |
8 byte | 6 byte | 6 byte | 2 byte | 46 až 1500 byte | 4 byte |
Každý paket je uvozen preambulí, která slouží k synchronizaci vysílající stanice a přijímajících stanic. Následuje adresa určení (MAC) a zdrojová adresa (MAC), číslo označující typ paketu, datová část a kontrolní součet.
Typ paketu obsahuje číslo větší než 0x05DC. Jako příklad může být použit např. číslo 0800 označují IP paket nebo 8137 označují Novell IPX paket. Ostatní čísla lze najít např. v RFC např. 1700.
Ethernet je dnes standardizován v těchto verzích:
1. "Klasický" Ethernet s přenosovou kapacitou 10 Mbit/s:
10Base-2
– používá jako přenosové médium dvakrát stíněný koaxiální kabel označovaný jako Thin Ethernet (v jednodušší verzi Cheapernet) s impedancí 50 ohm
- délka segmentu kabelu může být maximálně 185 m (i když existují i varianty karet umožňující délku až 300 m)
- na jednom segmentu může být maximálně 25 stanic
- segment musí být na obou koncích ukončen pomocí tzv. terminátorů
10Base-5
– používá jako přenosové médium pětkrát stíněný koaxiální kabel ozn. jako Thick Ethernet neboli Yellow Cable s impedancí 50 ohm
- délka segmentu může být maximálně 500 m; na kabel jsou připevňovány transceivery, stanice může být max. 50 m od transceiveru
- transceivery musí být připevňovány ve vzdálenostech násobku 2,5 m (na kabelech bývá označení)
- segment musí být na obou koncích ukončen pomocí tzv. terminátorů
10Base-T
– používá jako přenosové médium kroucený dvoudrát (stíněný nebo nestíněný) s impedancí 100 ohm (min. Cat 3)
- délka kabelu mezi uzlem a aktivním prvkem může být max. 100 m
10Base-FL - používá jako přenosové médium multimodový optický kabel
- délka kabelu mezi uzly může být max. 2 km
- existuje i modifikace používající singlemodový optický kabel
2. Fast Ethernet s přenosovou kapacitou 100 Mbit/s:
100Base-TX
– používá jako přenosové médium kroucený dvoudrát (stíněný nebo nestíněný) s impedancí 100 ohm (min. Cat 5)
- délka kabelu mezi uzlem a aktivním prvkem může být max. 100 m
100Base-T4
– používá jako přenosové médium kroucený dvoudrát (stíněný nebo nestíněný) s impedancí 100 ohm (min. Cat 3)
- délka kabelu mezi uzlem a aktivním prvkem může být max. 100 m
- používá všechny 4 páry kabelu
- technologie není příliš rozšířena
100Base-FX
- používá jako přenosové médium multimodový optický kabel
- délka kabelu mezi uzly může být v případě plně duplexního provozu max. 2 km; v příp. polovičního duplexu je vzdálenost ovlivněna zapojením sítě
- existuje i modifikace používající singlemodový optický kabel
3. Gigabit Ethernet s přenosovou kapacitou 1000 Mbit/s:
1000Base-SX
– používá jako přenosové médium multimodový optický kabel
- délka kabelu mezi uzlem aaktivním prvkem je ovlivněna parametry kabelu
1000Base-LX
– používá jako přenosové médium ultimodový nebo singlemodový optický kabel
- délka kabelu mezi uzlem a aktivním prvkem je ovlivněna typem a parametry kabelu
Standard, typ vlákna | průměr | modální šířka vlákna | min. rozsah délek |
1000BASE-SX MM | 62,5 | 160 | 2 až 220* |
1000BASE-SX MM | 62,5 | 200 | 2 až 275** |
1000BASE-SX MM | 50 | 400 | 2 až 500 |
1000BASE-SX MM | 50 | 500 | 2 až 550*** |
1000BASE-LX MM | 62,5 | 500 | 2 až 550 |
1000BASE-LX MM | 50 | 400 | 2 až 550 |
1000BASE-LX MM | 50 | 500 | 2 až 550 |
1000BASE-LX SM | 9 | N/A | 2 až 5000 |
Pozn: * Standard TIA 568 pro kabeláže budov specifikuje mnohavidové vlákno 160/500 MHz*km MHz*km ... jednotka pro měření přenosové kapacity vlákna. Hodnota ukazuje omezení kapacity vlákna, čímž je určena max. vzdálenost v závislosti na přenosové rychlosti. |
Aktivní prvky, fyzická a linková vrstva
Podle počtu uzlů použitých v počítačové síti a v závislosti na její topologii by měly být voleny aktivní prvky. Protože je zřejmý celosvětový příklon k technologii Ethernet a tato technologie je v mnoha společnostech zvolena za standard, bude popis prvků zaměřen převážně na ni (i když v některých případech je popis obecný).
Podle počtu uzlů použitých v počítačové síti a v závislosti na její topologii by měly být voleny aktivní prvky. Protože je zřejmý celosvětový příklon k technologii Ethernet a tato technologie je v mnoha společnostech zvolena za standard, bude popis prvků zaměřen převážně na ni (i když v některých případech je popis obecný). V LAN sítích jsou používány následující typy aktivních prvků. V tomto přehledu jsou rozděleny z pohledu sedmivrstvého modelu OSI.
1. vrstva – fyzická vrstva
Opakovač (repeater) – aktivní prvek zajišťující spojení dvou a více segmentů sítě tím, že signál obdržený na jednom portu zopakuje do ostatních portů přičemž signál přečasuje, tj. obnoví ostré vzestupné a sestupné hrany; opakovač rozšiřuje kolizní i broadcastovou doménu.
Rozbočovač (hub, koncentrátor) – multiportový opakovač vybavený UTP porty typu RJ45 nebo Telco, případně rozšiřujícím portem jiného typu (coax, FO, AUI); rozbočovač rozšiřuje kolizní i broadcastovou doménu; vedle klasických rozbočovačů používajících jednu rychlost (ať již 10 Mbit/s nebo 100 Mbit/s) existují dvojrychlostní rozbočovače (dual speed hub) – ty mají dvě sběrnice a port se automaticky přepne na jednu z nich v závislosti na tom jakou rychlost používá připojované zařízení; dvourychlostní rozbočovače se dnes již vyrábějí převážně v provedení s integrovaným přepínačem zajišťujícím spojení obou sběrnic, starší modely však mohou překvapit tím, že jsou obě sběrnice oddělené a je nutno je propojit externím prvkem!
Počet opakovačů nebo rozbočovačů spojených za sebou je omezen. U technologie 100Base-X se vyskytují dva typy Class I a Class II. Typ Class I umožňuje vzájemné spojení maximálně dvou rozbočovačů, Class II spojování rozbočovačů dokonce neumožňuje ! Pravidlo je naštěstí eliminováno přepínači takže je potřeba se pouze vyvarovat propojování rozbočovačů a volit vhodný návrh sítě.
U technologie 10Base-X existují buď zjednodušená pravidla pro určení množství opakovačů zapojených za sebou nebo exaktní výpočet. Přestože se dnes již používají přepínače, které omezení eliminují, je dobré si pamatovat, že by neměly být za sebe zapojeny více než 4 opakovače.
Převodník (Media Converter) – je poměrně oblíbené zařízení, které zajišťuje konverzi (převod) signálu z jednoho typu média do jiného. Rozdíl mezi opakovačem a převodníkem je v tom, že převodník na rozdíl od opakovače neprovádí přečasování signálu. Převodníky jsou dostupné v pevné konfiguraci nebo modulární, spravovatelné i nespravovatelné, připravené pro určitou technologii nebo universální. Jsou používány tam, kde je potřeba určitý počet portů definovaného typu a řešení na primárních aktivních prvcích je příliš nákladné (např. konverze z Multimodové optiky na Singlemodovou optiku nebo z UPT na optiku). Jedněmi z nejoblíbenějších převodníků jsou produkty společnosti IMC.
2. vrstva – linková vrstva
Můstek (bridge) – dvouportové zařízení které odděluje provoz dvou segmentů sítě na základě učení se fyzických (MAC) adres uzlů na obou portech, na základě těchto adres můstek buď data na druhou stranu propouští nebo nepropouští; můstek pracuje na druhé vrstvě modelu OSI (linková vrstva) a proto je protokolově nezávislý, je však závislý na používané síťové technologii (přenosové metodě); můstek odděluje kolizní domény, ale rozšiřuje broadcastovou doménu; filtrační schopnost platí s jedním omezením – vztahuje se pouze na Unicast pakety, NonUnicast pakety (Multicast, Broadcast) jsou propouštěny.
Princip můstku:
1. A posílá paket stanici B, můstek se dívá do tabulky zda má zavedenu MAC adresu vysílajícího, tedy A. V této fázi nemá, proto zavede MAC adresu A do tabulky s portem 2. Další krok můstku je pohled do tabulky zda je zavedena adresa stanice B. V případě, že není (a to v první fázi není) provede můstek tzv. flooding, tj. zkopíruje paket na všechny porty kromě toho na němž paket přijal.
2. B odpovídá A. Můstek se dívá do tabulky zda má B zaveden - nemá, zavádí jej tedy do tabulky s portem 2. Dále se dívá do tabulky na adresu A. Tuto adresu nachází na portu 2, tj. na stejném portu jako je vysílající stanice B. Paket tedy není kopírován do zbývajících portů.
Při vysílání stanic C a D je princip stejný.
Důležitým parametrem je timeout po němž je adresa stanice vypuštěna z tabulky. Počitadlo je aktivní vždy od posledního výskytu adresy.
Přepínač (switch) – vysokorychlostní multiportový můstek který přináší nové významné vlastnosti:
– umožňuje paralelní komunikace mezi různými porty (tzn. např. dvojice portů 2-3, 5-9, 6-4, … mohou komunikovat současně);
- umožňuje aplikaci vysokorychlostních portů a pomocí inteligentního používání vyrovnávacích pamětí rozdělit provoz vysokorychlostního portu do několika portů s nižší rychlostí/;
- vedle standardního polovičně duplexního provozu přináší teoreticky dvakrát rychlejší plně duplexní provoz;
přepínač odděluje kolizní domény, ale rozšiřuje broadcastovou doménu (v případě nonunicatového paketu se chová jako rozbočovač – tj. pošle tento paket na všechny porty).
Na základě obrázku si jistě dokážete představit, že teoreticky stačí jeden NonUnicast k tomu aby zahltil síť. Přijde např. na některý z přípojných portů přepínače P1. Ten jej pošle na všechny ostatní porty včetně těch na něž jsou připojeny P2 i P3. P2 jej pošle na všechny porty mimo toho, na kterém jej přijal. Tím se paket dostává na P3 – ten jej posílá na P1, odtud jde na P2 a zase na P3, atd. Nekonečné kolečko je hotové. Původní paket od stanice připojené na P1 je ovšem šířen i druhou stranou, tj. z P1 na P3, z P3 na P2 a z P2 na P1, atd. Jedinou cestou na druhé vrstvě OSI jak těmto nekonečným přeposíláním paketů zábranit je zabránit vytváření smyček. Toho se dá dosáhnout pečlivým návrhem, realizací a rozvojem sítě nebo automatizovaným mechanismem nazývaným Spanning Tree Protocol (STP). Můstky a přepínače tento protokol používají.
Hlavní význam STP je v tom, že uzavře redundantní cesty, ale zároveň umožní jejich opětovné otevření při selhání primární trasy (např. přerušením kabelu nebo výpadkem některého prvku po cestě).
Topologie je řízena prostřednictvím priorit. Každé zařízení může teoreticky být tzv. root od kterého je topologie stavěna. Jako root je voleno zařízení s nejnižší prioritou, případně s nižší MAC adresou. V závislosti na cenách (prioritách) jednotlivých linek jsou některé z nich vybrány jako funkční, ostatní jsou v záložním stavu.
Určitou nevýhodou STP je poměrně dlouhá konvergence sítě v případě výpadku primární trasy nebo prvku, který je aktuálně zvolen jako root.
Lze doporučit následující věci:
1. zvolit root tak aby bylo jasné který prvek tuto funkci vykonává
2. root by měl být zároveň nejstabilnější zařízení sítě (např. redundantně vybavený centrální přepínač)
3. vypnout STP na všech portech na které jsou připojeny stanice (důvodem jsou problémy při přihlašování k Netware a problémy s DHCP).
Aktivní prvky, síťová vrstva
Aktivní prvky podle vrstev OSI - 2. část, síťová vrstva
Směrovač (router) – dvou nebo více portové zařízení které pracuje na podobném principu jako můstek; rozdíl je v tom, že směrovač pracuje na třetí vrstvě modelu OSI (síťová vrstva) – pracuje tedy s logickými adresami a je protokolově závislý, ale relativně nezávislý na použité síťové technologii (pro každou technologii musí mít patřičný adaptér); směrovače jsou v LAN sítích používány převážně pro spojení rozdílných technologií (např. Ethernet a Token Ring) a pro oddělení broadcastových domén (samozřejmě oddělují i kolizní domény) – tuto oblast však opouštějí neboť jsou zda nahrazovány směrovacími přepínači; vedle použití v sítích LAN našly směrovače důležité uplatnění ve WAN sítích, kde jsou používány pro připojování vzdálených lokalit
Můstek (přepínač) pracuje s jednou tabulkou a to s tabulkou kde jsou relace mezi MAC adresou a portem zařízení. Směrovač pracuje se dvěmi tabulkami. V první je relace mezi MAC adresou, logickou adresou a portem (tabulka obsahuje údaje pouze o přímo připojených uzlech). V druhé tabulce je seznam sítí (částí logických adres) s portem kudy je na danou síť nejlepší cesta.
Představme si, že kompletní adresa je interpretována dvěma čísly oddělenými tečkou ve formátu síť.uzel (např. 040.001). Část sítě musí být unikátní z globálního hlediska tzv. intersítě (neboli propojení několika lokálních sítí - subsítí). Pokud bude mít pardubická síť logickou adresu 040, žádná jiná lokalita spojená s Pardubicemi nemůže tuto adresu použít. Libovolný prvek může použít adresu uzlu 001, pak však tuto adresu uzlu nesmí použít žádný jiný prvek v dané lokalitě, ale v jiné lokalitě ji může použít bez problému – celková adresa 040.001 je totiž jiná než 02.001 !
Směrovač Router 1 ví, že se k prvku D dostane dvěma cestami. Jedna z nich je výhodnější a proto používá ji. Existují však i mechanismy pro rozložení zátěže a používání všech dostupných cest (např. ECMP – Equal Cost Mlti Path).
Směrovací přepínač (routing switch) – jde o relativně nový typ zařízení pracující s rychlostmi obvyklými pro druhou vrstvu i s informacemi třetí vrstvy, zajišťuje tedy směrování při rychlosti přepínání – tím nahrazuje pomalé směrovače v oddělení broadcastových domén; směrovače vytlačuje do použití pro spojení rozdílných technologií, do prostředí se speciálními protokoly (Banyan Vines, DECNet, …) a do WAN komunikací
Výhody směrovacích přepínačů
Nejmodernějším trendem pro centra počítačových sítí je tzv. přepínání na 3 vrstvě OSI (Layer 3 Switching). Jedná se o vlastně o směrování prováděné hardwarově. Důvod pro zavádění této technologie je následující - před několika lety se pro rozdělení sítí do více skupin používaly směrovače (tzv. colapsed backbone architektura). Při stále narůstajícím zatížení sítí přestaly směrovače vyhovovat (nízký výkon za vysoké ceny, velké zpoždění paketů při průchodu směrovačem – viz. tabulka). V té době přišly na svět výkonné přepínače. Začaly jimi být nahrazovány centrální směrovače, ale správci sítí si společně s dodavateli velice záhy ověřili slabinu přepínačů – přenášejí broadcasty a tudíž se sítě s vysokým počtem stanic začínají zahlcovat. Směrovače proto znovu našly uplatnění v propojování segmentů sítí postavených na přepínačích (tzv. virtuálních sítí). Protože jsou však směrovače drahé a technologický rozvoj postoupil značně dopředu, začali výrobci hledat cesty jak řešení maximálně zlevnit. Jako jedna z nejschůdnějších se ukázala cesta integrace směrování do přepínačů, tedy tzv. Layer 3 Switching. V podstatě se jedná o obdobu přepínání na druhé vrstvě – zde je přepínání na základě tabulky MAC adres; na třetí vrstvě je přepínání také řešeno hardwarově a rozhodovací algoritmy jsou rozšířeny o další tabulku – tabulku logických adres (převážně IP, časem i IPX). Definice směrovacího přepínače (Routing Switch), tak jak jej zavedla firma která tento pojem začala používat jako první, tedy Bay Networks, hovoří o několika základních atributech:
· přepínání na 3. vrstvě je implementováno v hardware;
· směrování a přepínání jsou stejně rychlé;
· zařízení zajišťuje libovolnou kombinaci přepínání i směrování na každém portu;
· průchodnost při zvýšeném zatížení, implementaci filtrů nebo použití QoS zůstane zachována;
· zařízení rozhoduje o každém paketu;
· zařízení umožňuje provozovánív standardních směrovacích protokolů (RIP, OSPF);
V následující tabulce je porovnání technologií přepínání na druhé vrstvě OSI, směrování a přepínání na třetí vrstvě OSI.
|
| IP routing |
|
| |
komponenta | propustnost přepínání (Kpps) | zpoždění při průchodu paketu (µs) | propustnost (Kpps) | cena za 100Mbit port (USD) | cena za výkon (USD/Mpps) |
High-end switch | 1000 - 5000 | - | - | 500 | 0.03 |
High-end router | 1000 | > 1000 | 1000 | 5000 | 0.25 |
Accelar Routing Switch * | 7000 | < 6 | 7000 | 700 | 0.01 |
* parametry produktu Accelar uvedené v tabulce ověřily Bradner Test Labs (Harvard University)
Obecné podmínky použití aktivních prvků
Jak bylo již zmíněno, volbou aktivních prvků lze ovlivnit chování a propustnost sítě. Použití by samozřejmě mělo být smysluplné, nicméně určitá doporučení lze aplikovat obecně:
· kolizní doména by měla být co nejmenší => je vhodnější používat dvanáctiportové rozbočovače spojené přepínačem, případně desktopové přepínače; volba je samozřejmě závislá na prostředí a používaných aplikacích;
· servery by měly být připojené řádově vyšší rychlostí než stanice, zároveň by však měla být dodržena určitá granularita systému tak, aby bylo dostupné přenosové pásmo využito efektivně;
· používat adresní rozsahy třídy C, v případě vyššího počtu stanic použít spojení adresních rozsahů směrovacím přepínačem;
· zařízení pro HQ a lokality připojené k HQ by měla být snadno modifikovatelná a přizpůsobitelná měnicím se požadavkům;
· rozbočovače, přepínače i směrovače by měly být vybavené SNMP agentem, v případě rozbočovačů a přepínačů se základní RMON sondou;
· všechna zařízení by měla být připojena na UPS, zajistí se tím ochrana proti výpadku napájení, ale i ochrana proti poruchám napájecí sítě (např. přepětí) a tím i možné poruše.
IPv4 protokoly a model OSI, MTU fragmentace
Petr Odvárka Tutoriály 16. října 2000
Popis IP protokolu ve vztahu k referenčnímu modelu OSI, MTU fragmentace.
Protokoly třídy TCP/IP byly vyvinuty na začátku 70-tých let pro potřeby amerického ministerstva obrany (DoD – Department of Defense) a jeho síť ARPANET (Advanced Research Project Agency´s NET). Tato síť byla navržena jako experimentální WAN s přepínáním paketů. Protože byl experiment úspěšný, došlo v dalších letech k rozvoji a vylaďování protokolového stacku a jeho adaptaci pro použitelnost i v LAN.
Začátkem 80-tých let byl TCP/IP implementován jako integrální součást Berkley UNIXu verze 4.2. V roce 1983 byl protokol TCP/IP přijat americkou armádou jako standard pro síťové komunikace.
Proč právě IP protokol získal takovou oblibu a je v něm spatřována budoucnost ? Důvodů je hned několik:
· IP protokol není proprietární (na rozdíl od např. IPX, DecNET, SNA, …) a není uzavřený, je vyvíjen a rozvíjen na základě široké spolupráce výrobců a uživatelů;
· není monolitický, ale je definovatelný na základě modelu OSI;
· zajišťuje interoperabilitu mezi různými platformami (PC, Workstation, Mini, Mainframe; Unix, Windows, Mac) a výrobci (IBM, HP, Sun, PC, …);
· jsou na něm založeny aplikace typu klient/server (např. SAP R/3);
· jsou na něm založeny webové technologie a Internet.
Dominaci protokolu IP je vidět na grafu.
Poněkud matoucí může být to, že občas je o protokolu psáno jako o protokolu IP a někdy jako o TCP/IP. Tuto záležitost pochopíte z dalšího textu.
Popis IP protokolu ve vztahu k referenčnímu modelu OSI
|
|
OSI IP
Vrstva Interface není tímto modelem popsána. Zajišťuje protokolům IP funkčnost pro enkapsulaci datagramů a jejich přenos specifickým médiem (včetně relace mezi IP a MAC adresou).
Vrstva Internet používá protokol nazývaný Internetwork Protocol – zkratka IP a jeho prostřednictvím zajišťuje :
· služby doručení datagramů bez závislosti na fyzické médium (vrstvu Interface);
· adresní mechanismus;
· směrovací schéma pro přenos dat.
Vrstva Transport zajišťuje spolehlivý přenos dat mezi dvěma koncovými uzly. Míra spolehlivosti odpovídá požadavkům aplikace. Pro přenos dat jsou používány dva typy protokolů – Trasmission Control Protocol známý zkratkou jako TCP a User Datagram Protocol - UDP.
Vrstva Application zahrnuje protokoly specifikující procedury pro uživatele (přihlašování se k serverům, přenos souborů, …). Procedury (aplikace) jsou rozděleny podle použitého protokolu vrstvy Transport. Jsou jimi protokoly UDP a TCP.
Část protokolového stacku podle 3. vrstvy OSI
Jak již bylo řečeno v předchozí části, protokol 3. vrstvy OSI (síťové) je Internetwork Protocol (IP) a jeho úkolem je zajistit adresaci a bezspojovou přepravu datagramů v rámci síťového prostředí; IP protokol má jako všechny ostatní protokoly 3. vrstvy OSI přesně definovanou adresní strukturu, kde každá adresa musí být unikátní.
V současné době je používána verze IPv4. Ta byla připravena pro přenos dat a má v moderních sítích řadu omezení, které je nutno řešit podpůrnými mechanismy a protokoly. Je připravena nová verze nazývaná IPng (IP new generation) nebo IPv6 IP version 6. I když má řadu výhod a integrované důležité mechanismy (např. podporu QoS 4 bitovým polem pro priority) k jeho masovému rozšíření zatím nedošlo a zdá se, že jen tak hned nedojde.
Datové komunikace používají výraz, který se nazývá MTU. Je to zkratka pojmu Maximum Transmission Unit a identifikuje maximální velikost paketu, kterou je prvek v daném prostředí schopen přenášet. Pokud dorazí na směrovač paket o velikosti větší, než kterou je přenosová trasa schopna přenést (např. při přechodu z Token Ringu používajícího 4 kByte pakety na Ethernet používajícího maximálně 1,5 kByte pakety), musí směrovač zajistit tzv. fragmentaci, neboli rozebrání paketu na menší části a cílový uzel musí zajistit opětovné složení, neboli defragmentaci.
Fragmenty procházejí přes síť jako samostatné datagramy. Aby byl koncový uzel schopen fragmenty složit do originálního datagramu, musí být fragmenty příslušně označeny. Toto označování se provádí v příslušných polích IP hlavičky.
Pokud nesmí být datagram fragmentován, je označen v příslušném místě IP hlavičky příznakem "Don`t Fragment". Jestliže takto označený paket dorazí na směrovač, který by jej měl poslat prostředím s nižším MTU a tudíž je nutnost provést fragmentaci, provede směrovač jeho zrušení a informuje odesílatele chybovou zprávou ICMP.
Příklad fragmentu včetně odpovídajících polí hlavičky (viz dále) za předpokladu, že směrovač musí originální datagram fragmentovat na MTU 280 oktetů.
originální datagram
Identification 12345
Total Lenght 500 (20 IPhlavička, + 480 data)
Fragment Offset 0
More Data Flag False
Směrovač rozdělí tento datagram na dva fragmenty:
první fragment
Identification 12345
Total Lenght 276 (20 IPhlavička, + 256 data)
Fragment Offset 0
More Data Flag True
druhý fragment
Identification 12345
Total Lenght 244 (20 IPhlavička, + 224 data)
Fragment Offset 32
More Data Flag False
Aby byl cílový uzel schopen složit originální datagram, musí mít dostatečný buffer do něhož jsou jednotlivé fragmenty ukládány na příslušnou pozici danou offsetem. Složení je dokončeno v okamžiku, kdy je vyplněn celý datagram začínající fragmentem s nulovým offsetem a končící segmentem s příznakem "More Data Flag" nastaveným na False.
Formát hlavičky IPv4 protokolu, ARP protokol
Popis formátu hlavičky IPv4 protokolu, ARP protokol (mechanismus zjišťování MAC adresy pro IP protokol).
Formát hlavičky IPv4 protokolu
Vers | IHL | TOS | Total Length | |
Identification | Flags | Fragment Offset | ||
Time | Protocol | Header Checksum | ||
Source IP Address | ||||
Destination IP Address | ||||
Otions | Padding | |||
Data | ||||
... |
délka význam
Version 4 bity verze IP protokolu
IHL (Internet Header Length) 4 bity délka hlavičky v 32 bitových slovech
TOS (Type of Service) 8 bitů indikuje prioritu datagramu
Total Length 16 bitů celková délka datagramu, včetně IP hlavičky (všechny uzly musí podporovat minimální velikost 576 byte)
Identification 16 bitů číslo typu Integer identifikující fragment
Flags 3 bity příznaky pro fragmentaci
Fragment Offset 13 bitů identifikuje pozici fragmentu
v originálním paketu
TTL (Time to Life) 8 bitů používáno pro prevenci nekonečného používání paketu
Protocol 16 bitů protokol přenášený datagramem (1 – ICMP, 6 – TCP, 8 – EGP, 17 - UDP, 89 - OSPF, ...) viz. RFC 1700
Header Checksum 16 bitů kontrolní součet zajišťující integritu hlavičky
Source IP Address 32 bitů zdrojová IP adresa
Destination IP Address 32 bitů cílová IP adresa
Options proměnná délka pole určené pro debuging, měřící účely a bezpečnostní vlastnosti
Padding proměnná délka nuly doplněné tak, aby bylo dosaženo zarovnání na 32 bitů
Ve stručnosti doplňující k informace k vybraným částem hlavičky:
TOS - osmibitové pole je používáno jako sada příznaků; mělo by znamenat kvalitu služby (QoS), kterou si zdrojový uzel pro příslušný datagram přeje. Jednotlivé příznaky jsou popsány v dalším textu.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Precedence | D | T | R | nepoužito |
Precedence bity znamenají prioritu jakou byl měl datagram mít; 3 bity jsou schopny vyjádřit 8 úrovní 0 (nízká) až 8 (vysoká)
D-bit (Delay) používají uzly, které požadují nízké zpoždění (1) nebo jim stačí normální zpoždění (0)
T-bit (Throughput) používáno uzly, které požadují vysokou propustnost (1) nebo jim stačí normální propustnost (0)
R-bit (Reliability) používáno uzly, které požadují vysokou spolehlivost (1) nebo jim stačí normální spolehlivost (0)
Některé mechanismy TOS bity ignorují, ale např. OSPF je schopen zajistit směrování na základě požadavků definovaných v hlavičce.
Identification - unikátní integer, který identifikuje fragmenty datagramu. Toto číslo vyplňuje v hlavičce odesílající uzel. Pokud dojde k fragmentaci, kopíruje směrovač provádějící fragmentaci toto číslo do příslušného pole všech fragmentů.
Flags - je složen ze 3 bitů :
bit 0 je rezervován, musí být vždy 0
bit 1 označuje možnost fragmentace; 0 – možno fragmentovat, 1 – nelze fragmentovat
bit 3 označuje zda je fragment poslední nebo ne; 0 – poslední fragment, 1 – ještě bude následovat další fragment
Fragment offset - indikuje do které části originálního datagramu fragment patří. Hodnota je násobkem 8 oktetů od začátku originálního datagramu. Offset prvního fragmentu je nula (0).
TTL - je použit k tomu aby paket nebloudil do nekonečna sítí, při každém průchodu směrovačem je od výchozí hodnoty TTL odečtena hodnota 1, jakmile hodnota TTL dosáhne čísla 0 směrovač jej již dál neposílá, ale pošle zpět k odesílateli zprávu o tom, že došlo k překročení TTL; k informování o této události je používán protokol ICMP
ARP – protokol a mechanismus zjišťování MAC adresy
Komunikační mechanismus podle referenčního modelu OSI vyžaduje vyplnění údajů hlaviček všech vrstev. Z tohoto důvodu potřebujeme k IP adrese zjistit MAC adresu. Mechanismus zjišťování MAC adresy pro IP protokol se nazývá ARP (Address Resolution Protocol). Předpokládejme, že stanice A má IP adresu 192.168.1.21 a chce komunikovat s adresou 192.168.1.1. Mohou nastat dva případy. Stanice spolu nedávno komunikovali a uzel má MAC adresu uloženu v tzv. ARP Cache. ARP Cache je paměťový segment v němž je držena tabulka s relacemi IP adresa, MAC adresa. Důvodem je snížení množství požadavků na zjišťování MAC adres. Údaj je v ARP Cache je však držen omezenou dobu. Hodnoty ARP Cache vypíšeme na většině systémů pomocí příkazu arp –a. Konkrétní výpis pak vypadá např. takto:
00-00-64-65-73-74 192.168.1.21
Stanice si tedy v první fázi zkontroluje zda má v ARP Cache MAC adresu dané IP adresy. Pokud ne, musí si MAC adresu zjistit.
1. stanice A odesílá ARP Request, zdrojovou adresou je její MAC adresa a adresou určení je broadcast; zdrojová adresa i adresa určení protokolu IP odpovídají konkrétním hodnotám
2. všechny uzly se musí broadcastu věnovat a porovnat svoji IP adresu s adresou určení, ten uzel jehož IP adresa odpovídá adrese z požadavku posílá tzv. ARP Response, tedy odpověď s vyplněnou svojí MAC adresou. Další vzájemné komunikace obou uzlů probíhají prostřednictvím Unicastů.
ARP není IP protokol v pravém slova smyslu protože nemá IP hlavičku – tím nemůže ani opustit logickou síť neboť nemůže projít přes směrovač.
ARP lze v ethernetovém paketu poznat tak, že v poli Type má vyplněna čísla:
0x0806 ARP request (požadavek)
0x0835 ARP response (odpověď)
Základy směrování v IP prostředí
Petr Odvárka Tutoriály 4. listopadu 2000
Stanice v rámci jedné logické sítě komunikují přímo (s použitím mechanismu ARP). Pokud však chce komunikovat stanice z jedné sítě s uzlem z jiné sítě, je potřeba sítě propojit zařízením pracujícím na 3. vrstvě OSI, tzv směrovačem.
Stanice v rámci jedné logické sítě komunikují přímo (s použitím mechanismu ARP). Pokud však chce komunikovat stanice z jedné sítě (např. 192.168.1.x) s uzlem z jiné sítě (např. 192.168.2.x), je potřeba sítě propojit zařízením pracujícím na 3. vrstvě OSI, tzv směrovačem.
Směrovače si udržují přehled o tom, za kterým interfejsem je jaká síť. Tyto informace jsou do zařízení zadány staticky nebo je používán určitý mechanismus pro jejich dynamickou výměnu (to znamená, že směrovače si vzájemně předávají informace o sítích o kterých vědí). Dynamických směrovacích protokolů poměrně široká škála. Jejich použití je vhodné pro různé velikosti sítí a aplikace je rozdílně komplikovaná. Jedná se např. o protokoly RIP, OSPF, BGP, EGP, IGRP...
Příklad směrovací tabulky (routing table):
Cílová síť následující směrovač metrika
Destination Network Next Hop Router Metric (Hops)
192.168.1.0 Direct Port 1 0
192.168.2.0 Direct Port 2 0
192.168.3.0 192.168.2.3; 1
192.168.4.0 192.168.2.3 2
V závislosti na implemenatci mohou být součástí směrovací tabulky i masky cílových sítí a typ protokolu pomocí něhož směrovač o síti ví. Speciálním typem statické cesty je tzv. Default Route, používaná pro všechny neznámé sítě. Ta má tvar samých nul, tedy adresa 0.0.0.0 s maskou 0.0.0.0. U standardních pracovních stanic, které si nedrží tabulky s cestami do jiných sítí je potřeba zajistit mechanismus podobný mechanismu Default Route. Tento mechanismus se nazýváodchozí brána; neboli Default Gateway.
Popišme si mechanismus, kterým je realizován přenos dat mezi uzly v různých sítích (tedy z jedné logické sítě do druhé). Předpokládejme, že stanice A, která je v síti 192.168.1.x potřebuje komunikovat s uzlem B umístěným v síti 192.168.2.x. Mezi sítěmi jsou dva směrovače R1 aR2. Uzel A ví, že má poslat paket do jiné sítě. K tomu má nastavenu tzv. odchozí bránu - směrovač R1. Paket tedy vyplní následujícím způsobem:
L2 - zdrojová adresa – vlastní MAC (A), cílová adresa – MAC směrovače R1
L3 - zdrojová adresa – vlastní IP adresa (A), cílová adresa – IP adresa uzlu B
Paket přijde na směrovač R1. Ten z IP adresy určí adresu sítě pro kterou je paket určen a na základě znalosti cest jej pošle na příslušný směrovač (v tomto případě R2). Směrovač R2 připraví a odešle paket s následujícími parametry:
L2 - zdrojová adresa – vlastní MAC (R2), cílová adresa – MAC uzlu B
L3 - zdrojová adresa – IP adresa A, cílová adresa – IP adresa uzlu B
Vidíme, že při průchodu paketu se mění údaje 2. vrstvy, ale údaje 3. vrstvy jsou beze změny!
Pokud se má paket vrátit, musí mít i druhá strana správně vyplněnu Default Gateway. Mechanismus je analogický.
I zde fungují standardní mechanismy komunikace prostřednictvím MAC adresy a její případné zjišťovaní pomocí ARP.
Hlavička TCP protokolu
Petr Odvárka Tutoriály 8. listopadu 2000
TCP jen spojově orientovaný protokol používaný pro spolehlivou přepravu dat přes síť.
Protokoly 4. vrstvy OSI jsou v rodině protokolů IP dva – TCP a UDP
Transmission Control Protocol (TCP)
TCP je spojově orientovaný protokol používaný pro spolehlivou přepravu dat přes síť, zajišťuje:
· proudový přenos dat – není potvrzován každý paket, ale skupina (window); každý byte je identifikován sekvenčním číslem; pokud TCP dostane od vyšších vrstev balík dat, rozdělí je do segmentů, označí sekvenčním číslem a pošle 3. vrtsvě (IP) k přenosu;
· spolehlivost – zajištěna potvrzováním příjmu skupiny paketů; ztracené nebo opožděné pakety příjemce nepotvrdí a odesílatel je pošle znovu;
· efektivní řízení toku – příjemce nepotvrzuje každý paket, ale skupinu (příjemce informuje odesílatele jaké množství paketů je schopen přijmout čímž je zamezeno přetečení jeho interních bufferů);
· plně duplexní operaci – TCP umožňuje přijímat i odesílat data současně;
· multiplexing – možnost datových toků různých aplikací vyšších vrstev najednou prostřednictvím jednoho spojení.
TCP je definován v RFC 793.
aplikace používající TCP jako přenosový protokol – např. FTP, SMTP, http, SAP, SMB, …
Hlavička TCP protokolu
Source Port | Destination Port | ||
Sequence Number | |||
Acknowledgement Number | |||
Data Offset | Reserved | Control Bits | Window |
Checksum | Urgent Pointer | ||
Options | Padding | ||
Data octets | |||
|
|
|
|
Source port - port procesu generujícího datagram
Destination port - určuje kterému procesu na cílovém uzlu jsou data určena
Sequence Number - sekvenční číslo prvního datového oktetu v segmentu (pokud není nastaven příznak SYN). Pokud je nastaven příznak SYN, jedná se o tzv. initial sequence number – ISN a první datový oktet má číslo ISN + 1
Acknowledgement Number - má význam pouze když je nastaven kontrolní bit ACK. Toto číslo je nastaveno na hodnotu, kterou odesílatel očekává v poli Sequence Number v následujícím paketu. Je-li ustaveno spojení, je toto číslo vždy posíláno.
Data Offset - specifikuje číslo vyjádřené 32bitovým slovem. Indikuje kde data v segmentu začínají data přenášená tímto datagramem.
Reserved - toto 6ti bitové pole je rezervované a mělo by vždy být nulové
Control Bits - kontrolní bity (příznaky) zajišťující "handshaking" a ostatní specifické procesy
· URG - Urgent Pointer
· ACK - Acknowledgement
· PSH - Push funkce
· RST - Reset spojení
· SYN - synchronizace sekvenčních čísel
· FIN - oznámení, že odesílající nemá žádná další data
Window - množství dat oktetech, které je potvrzováno najednou
Checksum - kontrolní součet, není povinný a v tom případě je 0
Urgent Pointer - údaj je platný pouze pokud je nastaven příznak URG
Options - pole proměnné délky určené pro volitelné parametry TCP, parametr je používán např. pro indikaci maximální velikosti segmentu, kterou je přijímají strana schopna zpracovat
Padding - specifické množství nulových bitů doplňujících hlavičku tak, aby měla 32 bitovou hranici (tj. aby byla beze zbytku dělitelná 32)
Informace tvořená dvojicí IP adresa, číslo portu je nazývána socket. Socket představuje definitivní informaci o cíli TCP komunikace.
Port je číslo, které rozlišuje proces v rámci uzlu. Při navazování spojení nejsou důležité pouze IP adresy, ale i čísla portů. Port na serverové straně jednoznačně identifikuje některé z procesů. Pro některé z procesů byla definována konkrétní čísla portů (známa jako well known ports). Některá z čísel jsou uvedena na konci kapitoly, ostatní lze najít např. v RFC 1700.
Spolehlivost přenosu a řízení toku požaduje aby protokol TCP inicializoval a spravoval stavové informace o každém datovém přenosu. Kombinace těchto informací se nazývá connection. Zahrnuje čísla socketů, sekvenční čísla a podstatnou část informací o window. Každé spojení (connection) je jednoznačně definované párem socketů, které identifikují obě strany virtuálního spojení. Spojení je tedy plně definováno čtyřmi čísly - internetovou adresou obou stran a TCP portem obou stran. Internetové adresy jsou součástí IP hlavičky, čísla portů jsou součástí TCP hlavičky.
Když chtějí dva procesy komunikovat, TCP musí nejdříve na každém uzlu navázat spojení. Po ukončení přenosu je toto spojení ukončeno a tím uvolněny zdroje dalším uživatelům. Během datového přenosu zajišťuje TCP na každém z uzlů kontrolní mechanismus zda byla data přijata bez chyb nebo bez ztrát. Pokud dojde k přerušení přenosu např. díky problémům se sítí, oba uzly tento problém detekují a oznámí jej aplikačnímu programu.
Sekvenční čísla a ustavení spojení TCP protokolu
TCP chápe datový tok jako sekvenci oktetů (bytes), které jsou pro transport seskupovány do segmentů.
Sekvenční čísla
TCP chápe datový tok jako sekvenci oktetů (bytes), které jsou pro transport seskupovány do segmentů. Každý datový oktet má své sekvenční číslo. Sekvenční číslo prvního oktetu je určeno při ustavení spojení (je vygenerováno náhodně). Příslušné sekvenční číslo pak zvyšováno podle počtu oktetů, které byly po ustavení spojení odeslány. Rozsah sekvenčního čísla je mezi 0 a 231.
Sekvenční číslo, které je v TCP hlavičce odpovídá prvnímu oktetu v příslušném segmentu. Protože je číslován každý oktet, nabízí se potvrzování přijetí každého oktetu. Nicméně TCP (logicky) používá kumulativní metodu potvrzování. Potvrzení přijetí čísla X znamená, že uzel přijal všechny oktety až do čísla o jedno menšího než X. Výhodou tohoto potvrzovacího mechanismu je to, že přijaté oktety není nutné posílat znovu.
Každá strana plně duplexního spojení začíná od svého náhodně vygenerovaného sekvenčního čísla.
Ustavení spojení
Pokus o navázání spojení prováděný aplikačním procesem specifikuje zda jde aktivní nebo pasivní požadavek.
Pasivní otevření (passive open) spojení je jakousi obdobou zpětného volání. Je iniciován procesem nabízejícím službu ostatním volajícím. Znamená to, že prostřednictvím služby pasivního otevření upozorní uzly na to, že pokud si to přejí, mohou aktivně navázat proces na známém TCP portu.
Aktivní otevření (active open) je prováděno klientem, který se chce spojit s procesem na vzdáleném serveru. Na základě přijetí požadavku aktivního otevření vytváří server TCP proces pro správu kontrolních informací datového toku. Spojení je vytvořeno po úspěšné výměně synchronizačních paketů (SYN). Synchronizační pakety zajišťují výměnu počátečních sekvenčních čísel a základních kontrolních informací, na kterých se obě komunikující strany musí shodnout před zahájením přenosu dat.
Proces ustavení spojení má 4 základní funkce :
· výměnou požadavku a odpovědi ujišťuje obě strany procesu, že ta druhá existuje;
· zajišťuje výměnu volitelných parametrů jako jsou velikost paketu, velikost okna (window) a úroveň služeb (QoS);
· alokuje transportní zdroje jako je např. velikost bufferu;
· vytváří vstupní informace do tabulky spojení.
Three-Way Handshake je název procesu, který je používán pro ustavení spojení. Tato procedura je normálně vyvolána zdrojovou (aktivní) částí TCP software a je směrována na cílový (pasivní) TCP software. Zdrojovou část TCP software lze také označit za klientskou a cílovou část za serverovou.
Handshake je navržen tak, aby fungoval i v případě, že oba uzly mají jak klientskou i serverovou část a pokoušejí se navázat spojení najednou.
Prvním krokem, který klientský proces provádí při vytváření nového spojení je definování datové struktury známé jako Transport Connection Block (TCB). Lokální TCB musí vytvořit aktivní i pasivní konec spojení.
TCB obsahuje tyto informace:
· typ spojení (aktivní, pasivní);
· číslo vzdáleného a místního TCP portu;
· vzdálenou a místní IP adresu;
· stav spojení;
· ukazatel do vstupního bufferu na místo kde začíná počáteční SYN paket (pouze pasivní strana spojení).
Ve své vlastní inicializační proceduře TCP vytváří dvě schránky – jednu pro data přijímaná od klientské aplikace a druhou data přijímaná od sítě. Potom navazuje socket s IP, alokuje paměť a generuje sekvenčí číslo a velikost okna.
TCP handshake krok za krokem
Petr Odvárka Tutoriály 3. prosince 2000
Three-Way Handshake je název procesu, který je používán pro ustavení spojení.
Handshake krok č. 1
Nový TCP proces otevírá socket a používá při tom lokální a vzdálené číslo portu, specifikované v TCB. Jestliže TCP proces na aktivní straně přiřadí číslu lokálního portu hodnotu nula, IP zajistí socketu unikátní číslo lokálního portu. Pasivní strana odpovídá aktivní straně s použitím čísel portů, které byly zajištěny aktivní stranou.
Je-li lokální socket vytvořen, TCP posílá vzdálenému socketu inicializační paket SYN, nastavuje časovač pro opětovné poslání (retransmission timer) a čeká na návrat odpovědi od vzdáleného soketu. Nejdéle však po dobu danou časovačem. SYN paket obsahuje prázdný TCP segment a má nastavený příznak SYNv TCP hlavičce.
Na obrázku č. 1 posílá aktivní strana požadavek na spojení se sekvenčním číslem 350.
Handshake krok č. 2
Když dorazí SYN paket na serverovou stranu procesu, IP proces zjišťuje zda je socket možné přijmout. Je-li vše v pořádku, postoupí paket poslouchajícímu procesu, který verifikuje nastavení příznaku SYN a kontrolní součet. Pokud je paket vhodný k přijetí požadavku, naslouchající proces zajišťuje vytvoření TCP procesu na této (pasivní) straně. Je vytvořen TCB, TCP software z paketu vybere IP adresu odesílatele a čísla TCP portů a zajistí vytvoření bufferu. Nově vytvořený proces odesílá aktivní straně SYN-ACK paket. Při tom nastavuje časovač pro opětovné poslání (retransmission timer) za stejným účelem jako první strana.
Pasivní strana generuje vlastní sekvenční číslo (např. 500) a dává na vědomí aktivní straně, že další paket očekává pod sekvenčním číslem 351.
Handshake krok č. 3
Když TCP proces, který vyvolal spojení obdrží ze serverové (pasivní) strany paket potvrzení synchronizace (SYN-ACK), posílá zpět paket potvrzující přijetí potvrzení. Mezi tímto paketem a paketem, který jako potvrzení obdržel sám je rozdíl v tom, že tento paket má nastaven pouze příznak ACK, nikoliv SYN.
Pokud serverový proces obdrží ACK paket, je spojení ustaveno a může být zahájen přenos dat.
Důležité poznámky
Pro všechny kroky platí, že po pokud nepřijde odpověď do vypršení časovače, je provedeno opětovné odeslání paketu. Počet možných opakování je uživatelsky ovlivnitelný a dojde-li k jeho překročení je pro vyšší vrstvy generována chyba.
Asi jste si všimli, že v kroku č. 1 je nastaven příznak SYN a v kroku č. 2 jsou společně nastaveny příznaky SYN a ACK. Jde o stavy uvedených příznaků, které jsou jedinečné pro proces ustavení spojení – nikdy jindy se v TCP procesu nevyskytují. Této znalosti lze použít pro zamezení jednosměrného navázání TCP spojení (např. povolit z intranetu do Internetu, ale zakázat z Internetu do intranetu) a tvoří jeden ze základních principů filtračních firewallů.
TCP přenos dat a potvrzovací proces
Každý oktet v rámci segmentu je potvrzen tím, že je potvrzeno přijetí segmentu, který oktet obsahuje. Potvrzování je podobné potvrzování u navazování spojení (handshaking). Používá příznak ACK a sekvenční čísla.
Každý oktet v rámci segmentu je potvrzen tím, že je potvrzeno přijetí segmentu, který oktet obsahuje. Potvrzování je podobné potvrzování u navazování spojení (handshaking). Používá příznak ACK a sekvenční čísla.
Zdrojový proces musí uchovávat všechna odeslaná data dokud neobdrží potvrzení jejich převzetí. Jestliže potvrzení nepřijde do určité doby (uživatelsky ovlivnitelná veličina), proces považuje data za ztracená nebo poškozená a odešle je znovu – všechna počínaje prvním nepotvrzeným bytem. Pokud nepřijde odpověď do vypršení časovače, je provedeno opětovné odeslání všech nepotvrzených dat. Počet možných opakování je uživatelsky ovlivnitelný a dojde-li k jeho překročení je pro vyšší vrstvy generována chyba a přerušeno TCP spojení.
TCP proces má dvě fronty – frontu pro odesílaná data a frontu pro přijímaná data. Již bylo řečeno, že data v odesílací frontě jsou držena dokud nepřijde potvrzení jejich přijetí. Poté je fronta uvolněna a od vyšší vrstvy jsou přijata nová data k odeslání.
Cílový proces si podle sekvenčních čísel ukládá přijímané segmenty do přijímací fronty (bufferu) a tím dochází ke skládání přijímané informace. Tato data postupuje ke zpracování vyšší vrstvě.
Potvrzovací proces
Již bylo řečeno, že potvrzovací proces je založen na sekvenčních číslech. Sekvenční čísla jsou generována v první chvíli náhodně a v průběhu procesu komunikace jsou postupně zvyšována o příslušný počet již odeslaných (obdržených) oktetů (bytů). Protože potvrzování každého segmentu je neefektivní, byl zvolen specifický model řízení toku dat založený na tzv. okně (window). Tento model zefektivňuje proces potvrzování přijatých paketů. Jenom pro zajímavost si zkuste spočítat jak dlouho by trval přenos 1 MB dat po internetu za předpokladu, že by byl potvrzován každý paket, zpoždění průchodu paketu od jednoho uzlu k druhému a zpět je 100 ms a MTU je 500 byte. Uvažujme ideální síť kde nedochází ke ztrátám paketů. Pro zjednodušení nebudeme počítat skutečnou dobu, ale pouze navýšení doby přenosu. Při uvedených hodnotách by došlo k cca 2.000 potvrzením, při každém čekáme 100 ms, takže potvrzovací mechanismus zabere 200 sekund navíc. Přínos okna je v tom, že významně redukuje počet potvrzování.
Okno má určitou velikost, která představuje objem dat přenesený do potvrzení. Počáteční velikost okna je určena v procesu ustavení spojení a může být v průběhu přenosu měněna.
Na obrázku jsou vidět data a způsob implementace okna. Úplně vlevo jsou data, která byla již odeslána a potvrzena, dále je okno a data, která teprve čekají na zařazení do procesu. Okno má dvě části – odeslaná (ale ještě nepotvrzená data) a neodeslaná data a tři významné body:
levá strana – všechna data vlevo byla odeslána a potvrzena; data vpravo jsou obsažena v okně;
pravá stana – data vlevo jsou obsažena v okně, data vpravo čekají na další posun okna; nejvyšší oktet v okně je posledním, který bude v rámci tohoto okna odeslán před potvrzením z cílového uzlu;
hranice – je významný bod uvnitř okna, data vlevo byla odeslána a čekají na potvrzení, data vpravo budou odeslána ještě před přijetím potvrzení.
Všechny referenční body se dynamicky posunují. Hranice se posunuje v rámci okna dokud nedojde k pravé straně. Poté proces čeká na přijetí potvrzení. Jakmile potvrzení dorazí je přesunuto celé okno a proces se opakuje. V případě, že nedorazí potvrzení v době dané časovačem, je odesláno celé okno.
TCP - uzavření a reset spojení
Přizpůsobování velikosti okna, uzavření a reset spojení
Přizpůsobování velikosti okna
TCP proces je schopen se přizpůsobit kvalitě spojení. Velikost okna může být v závislosti na spolehlivosti doručení celého okna – může být zvětšována i zmenšována. Zvětšování i zmenšování zajišťuje přijímající strana, vysílající strana se na základě požadavků přizpůsobuje.
Pokud přijímající proces není schopen přijímat další data, inzeruje to vysílající straně prostřednictvím tzv. „zero receive window“ neboli okna s nulovou velikostí. Data, která jsou v tu chvíli na cestě nejsou přijímajícím procesem potvrzena.
Vysílající proces si nastaví nulovou velikost okna a dokud není přijímajícím procesem velikost okna změněna (tento TCP proces není opět schopen přijímat data), musí vysílat pakety s neplatným sekvenčním číslem a potvrzovacím číslem a jedním bytem nesmyslných dat. Přijímající proces posílá potvrzení jejich příjmu. Důvodem těchto paketů je udržení TCP spojení.
Uzavření spojení
TCP spojení je plně dulexní. To znamená, že spoejní má dva nezávislé datové toky. Pro ukončení spojení musí být uzavřeny oba toky.
Strana, která vyvolává ukončení spojení posílá druhé straně paket obsahující příznak FIN. Musí však s pokračovat s přijímáním dat dokud druhá strana neodpoví s paketem s příznakem FIN. Jakmile tento paket přijde, TCP proces informuje vyšší vrstvu, uzavře buffery, uvolní zdroje a ukončí se. Příznak FIN je posílán do dobu kdy uzel přijme potvrzení ukončení buď v samostatných paketech nebo v datových paketech.
Strana, která požadavek na ukončení procesu přijímá, informuje vyšší vrstvu o přijetí požadavku na ukončení (paket s příznakem FIN) a pokračuje ve vysílání zbytku připravených dat. Poté potvrdí ukončení procesu a ukončí jej.
Reset spojení (Connection Reset)
V případě, že poslané pakety nejsou během určité doby potvrzeny TCP proces provede několik dalších pokusů o doručení dat. V případě, že ani během těchto pokusů nedojde potvrzující odpověď, TCP provede reset (vymazání) spojení. To je zajištěno paketem s příznakem RST. Pokud druhá strana přijme paket s tímto příznakem, musí také zrušit spojení. TCP vrstva pak informuje vyšší vrtsvu (klientskou část programu) a zrušení spojení a uvolňuje zdroje. <p>Namátkově si vyjmenujme nejznámější TCP porty :</p
· echo 7
· FTP (data) 20
· FTP (ctrl) 21
· SMTP 25
· BGP 179
UDP protokol
Petr Odvárka Tutoriály 4. ledna 2001
UDP je nespojový (connectionless) protokol, jednoduchý interfejs mezi protokoly vyšší vrstvy a IP protokolem.
UDP je nespojový (connectionless) protokol, nepřináší vlastnosti spolehlivosti přenosu, řízení toku nebo funkcí opravy chyb; jde o jednoduchý interfejs mezi protokoly vyšší vrstvy a IP protokolem
· hlavička protokolu UDP obsahu menší množství informací než hlavička TCP a tím má tento protokol menší režii;
· protože UDP nemá žádné mechanismy pro dorozumívání se obou komunikujících stran je přenos rychlejší než v případě TCP.
UDP je definován v RFC 768.
Aplikace používající UDP jako přenosový protokol – např. SNMP, NFS, TFTP, protokoly pro VoIP (např. RTP), …
Hlavička UDP protokolu:
Source port | Destination port |
Length | Checksum |
Data octets |
· Source port - port procesu generujícího datagram; pokud proces nepodporuje zdrojový port, může toto pole zůstat 0.
· Destination port - určuje kterému procesu na cílovém uzlu jsou data určena.
· Length - vyjadřuje délku UDP hlavičky a dat vyjádřenou v oktetech.
· Checksum - kontrolní součet, není povinný a v tom případě je 0.
Namátkově si vyjmenujme nejznámější UDP porty:
echo 7
BOOTP 67
TFTP 69
SNMP 161
RIP 520
ICMP - Internet Control Message Protocol
Petr Odvárka Tutoriály 10. ledna 2001
Tento protokol je vyžadovanou součástí IP protokolu. Každý uzel, který má implementovaný IP protokol jej musí podporovat.
Tento protokol je vyžadovanou součástí IP protokolu. Každý uzel, který má implementovaný IP protokol jej musí podporovat. ICMP je definován v RFC 792.
Základním účelem ICPM je informování zdrojového uzlu o chybách při přenosu datagramů. Tyto chyby vznikají např. tím, že
· směrovač musí zrušit paket při překročení TTL;
· směrovač nemá dostatečný buffer pro přeposlání datagramu;
· směrovač musí fragmentovat datagram, ale ten má nastaven příznak "Don´t Fragment";
· směrovač nebo uzel zjistí chybu v syntaxi IP hlavičky;
· směrovač nemá v tabulce záznam o cílové síti.
ICMP zpráva je umístěna v datové části IP datagramu. Výsledkem je to, že datagram je směrován stejným způsobem jako přenášel data. S ohledem na to, že není použit mechanismus potvrzení převzetí zprávy, není garantováno, že ICMP zpráva dorazí k adresátovi. Aby bylo zamezeno komplikacím pramenících z informací o ztrátě nebo zrušení ICMP zprávy, nejsou o nich informace předávány. Pro další zjednodušení jsou ICMP zprávy odesílány pouze v případě, že se vyskytl problém s nefragmentovaným datagramem nebo v případě fragmentace pouze u prvního fragmentu.
Formát ICMP je následující:
Type | Code | Checksum | |||||
Message Dependant | |||||||
|
|
|
|
|
|
|
|
Information | |||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Type - specifikuje význam zprávy a formát zbytku paketu; je definováno 13 typů ICMP zpráv
0 - odpověď na echo (Echo Reply)
3 - adresát nenalezen (Destination Unreachable)
4 - žádosti o zpomalení (Source Quench) - tento parametr zajišťuje základní mechanismus pro řízení toku; pokud datagramy přicházejí na směrovač příliš rychle a směrovač je nestíhá zpracovávat, musí je rušit. Při tom posílá zdrojovému uzlu ICMP zprávy Source Quench, jimiž žádá uzel o zpomalení.
5 - přesměrování (Redirect) - ICMP redirect je mechanismus, kterým může směrovač upozornit na to, že jiný směrovač v síti umí lepší cestu k cíli; je to zejména v případě, že v síti jsou dva směrovače, přičemž jeden z nich je pro určité uzly odchozí bránou a pakety pro určité sítě přehazuje na ten druhý; potom může upozornit uzel na to, že může pro použít ten druhý směrovač přímo
8 - požadavek na echo (Echo Request)
11 - překročení času (time exceeded) - generováno směrovačem v případě překročení TTL, generováno uzlem v případě, že se nepodaří defragmentace (některý z fragmentů je ztracen)
12 - problém s parametrem (Parameter Problem) - směrovač nebo uzel zjistí problém s některým z parametrů hlavičky; zpráva obsahuje číslo oktetu ve kterém byl problém zjištěn
13 - požadavek na timestamp (Timestamp Request)
14 - odpověď timestamp (Timestamp Reply)
15 - požadavek na informaci o síti (Information Request)
16 - odpověď informace (Information Reply)
17 - požadavek na masku (Address Mask Request)
18 - odpověď masky (Address Mask Reply)
Kombinace ICMP zpráv 0 a 8 (Echo Request a Echo Reply) je známa jako Ping. Jde o jednoduchý testovací mechanismus pro zkoušení dostupnosti uzlu.
Kombinace ICMP zpráv 13 a 14 (Timestamp Request a Timestamp Reply) zajišťuje jednoduchý mechanismus pro zjišťování charakteristik zpoždění při průchodu paketu sítí. Zdrojový uzel vloží do datagramu časovou značku a odešle jej jako Request. Cílový uzel vloží časovou značku při přijetí datagramu i při jeho odesílání a odešle jej jako Reply.
Kombinace ICMP zpráv 15 a 16 (Information Request a Information Reply) zajišťuje jednoduchý mechanismus pro zjišťování adresy sítě do níž je uzel připojen. Požadavek odchází s nulami ve zdrojovém i cílovém adresním poli. Odpověď přichází se specifikovanou adresou.
Kombinace ICMP zpráv 17 a 18 (Address Mask Request a Address Mask Reply) zajišťuje jednoduchý mechanismus pro zjišťování masky sítě do níž je uzel připojen.
Code - rozšiřuje informaci nesenou v poli Type; uvádím příklad pro typ 3 (Destination Unreachable)
0 – nedosažitelná síť (network unreachable)
1 - nedosažitelný uzel (host unreachable)
2 - nedosažitelný protokol (protocol unreachable)
3 – nedosažitelný port (port unreachable)
4 - nedosažitelná síť (network unreachable)
5 – nutná fragmentace, ale není povolena
6 – neznámá cílová síť (destination network unknown)
Checksum - kontrolní součet celé ICMP zprávy
Message Dependant- u většiny typů ICMP zpráv není použito, je určeno pro budoucí rozšíření a musí být vyplněno nulami
Information - pole je proměnné délky; pro většinu ICMP zpráv obsahuje IP hlavičku a prvních 64 bitů datového pole datagramu, který ICMP zprávu vyvolal.
Adresace v IP sítích, základní principy
Petr Odvárka Tutoriály 17. ledna 2001
Protokol IP je protokol 3. vrstvy OSI (síťové) a jeho úkolem je zajistit adresaci a bezspojovou přepravu datagramů v rámci síťového prostředí.
Adresace v počítačových sítích, nezávisle na typu protokolu, musí zajistit unikátnost adresy uzlu v rámci celé sítě. Tento problém je řešen logickým rozdělením adres na část adresy sítě a adresy uzlu (jde o jakousi analogii telefonních čísel, kde je koncový uzel jednoznačně určen dvojicí číslo předvolby a číslo koncové stanice).
Nejdůležitějším protokolem se společně s rozvojem Internetu stal protokol IP. Nejde pouze o jeden protokol, ale o celou sadu protokolů. Tato sadu lze popsat na základě sedmivrstvého modely OS. Z plejády protokolů se v této části budeme věnovat právě tomu jenž dal celé sadě jméno – Internetwork Protokolu (IP). Jde o protokol 3. vrstvy OSI (síťové) a jeho úkolem je zajistit adresaci a bezspojovou přepravu datagramů v rámci síťového prostředí.
V IP prostředí je konkrétní vyjádření adresy ve formátu 4 jednobytových čísel oddělených tečkami. Vypadá tedy následovně – x.x.x.x (např. 192.168.1.3). Rozdělení na část adresy sítě a adresy uzlu není úplně triviální jako u některých jiných protokolů (např. IPX, DECNet, Vines IP, …). Východiskem jsou nejvyšší bity prvního oktetu. Podle nich se adresy dělí do několika tříd z nichž nejvýznamnější jsou A, B a C. V následující tabulce znamená s část sítě a u část uzlů.
třída nejvyšší bity formát rozsah počet sítí počet uzlů
A 0 s.u.u.u 1..x.x.x až 126.x.x.x 126 16.777.214
B 10 s.s.u.u 128.0.x.x až 191.254.x.x 16.384 65.534
C 110 s.s.s.u 192.0.0.x až 223.254.254.x 2.097.150 254
D 111 s.s.s.u 224.0.0.x až 239.254.254.254 pro multicast aplikace
přičemž nuly v adrese sítí sice nejsou striktně zakázány, ale jejich použití se nedoporučuje – na síti se může vyskytnou zařízení, které je nepodporuje. V adrese uzlu se nula stejně tak jako číslo 255 vyskytnout nesmí. Adresní prostor 127 je rezervován pro loopback.
Aby situace nebyla tak jednoduchá byl definován pojem maska IP sítě, který problematiku lehce komplikuje.
Příklad IP sítě máme na obrázku. Máme 4 lokální sítě spojené pomocí směrovačů. V každé LAN musí být unikátní adresní rozsah. V příkladu je část sítě zvýrazněna :
i když označení uzlů souhlasí s označením tříd, jde skutečně, ale opravdu skutečně o souhru náhod :-)
uzel adresa
A 192.168.1.2
B 192.168.2.2
C 192.168.3.5
D 192.168.4.6
Zařízení spojující jednotlivé sítě, nazývané směrovače (router) vědí za kterým interfejsem je příslušná síť. Znalost je dána buď prostřednictvím staticky konfigurovaných informací nebo prostřednictvím dynamických informací předávaných některým ze směrovacích protokolů – např. RIP, OSPF, BGP, …. Unikátnost adresy pak zajišťuje správné doručení paketu od A k D. Pokud by došlo k chybné konfiguraci a např. síť s uzlem C měla nastavenu shodný rozsah se sítí s uzlem D, bude docházet ke zmatení směrovačů a síť nebude fungovat korektně.
To co platí v malé WAN síti se projevuje i v globální síti Internetu. Musí být zajištěna unikátnost adres. To ovšem vede k tomu, že všechny sítě k Internetu připojené by měly mít vlastní rozsah. S kalkulačkou lze velice rychle dojít ke konečnému počtu sítí a uzlů, které mohou být připojené. Východiska z této situace jsou dvě. Tím prvním byla definice IP protokolu v 6, která přináší kromě mnoha vylepšení především v oblasti bezpečnosti a priorit i významné zvětšení počtu sítí a uzlů. Jde ale o významný zásah spojený s rozsáhlými investicemi. Zejména z tohoto důvodu získalo větší význam druhé východisko řešící problematika podstatně levněji – jde o privátní adresní rozsahy.
Adresace v IP sítích, masky sítě
Masky sítě zajišťují mechanismus jak jednu síť rozdělit do logických podsítí.
Masky zajišťují mechanismus (popsaný v RFC 950) jak jednu síť rozdělit do logických podsítí. Vezměme si třídu A – je připravena pro 126 sítí, každá s 16.777.214 uzly. Co by si asi některý z těch prvních šťastných na něž se Áčko dostalo bez maskování počal? Bez maskování má k dispozici jednu ohromnou broadcastovou doménu. S použitím masek si může síť rozdělit do mnoha podsítí. Část sítě přidaná maskou se nazývá subnet.
Princip masek vychází z předpokladu, že tam, kde je v binárním vyjádření masky jednička, tam je síť. Tam kde je nula, je uzel. Podívejme se nejprve na přirozené masky jednotlivých rozsahů:
přirozená maska binární vyjádření masky
třída A 255.0.0.0 11111111.00000000. 00000000. 00000000
(má rozsah sítí dán prvním oktetem)
třída B 255.255.0.0 11111111. 11111111. 00000000. 00000000
(má rozsah dán prvními dvěmi oktety)
třída C 255.255.255.0 11111111. 11111111. 11111111. 00000000
(má rozsah dán prvními třemi oktety)
Každý bit masky má hodnotu, která se podle počtu bitů načítá (ještě jednou upozorňuji na kontinuitu zleva!):
bit 7 6 5 4 3 2 1 0
hodnota 128 64 32 16 8 4 2 1
maska 128 192 224 240 248 252 254 255
Pomocí masek jsme schopni se oblast sítě roztáhnout na úkor oblasti uzlů. Viz. další příklad:
dekadické vyjádření binární vyjádření
adresa 10.1.1.1 00001010.00000001.00000001.00000001
maska 255.255.0.0 11111111.11111111.00000000.00000000
Jedná se o nejjednodušší typ maskování, tedy maskování vyšší třídy přirozenou maskou nižší třídy. V tomto případě Áčko Béčkem. Adresa sítě je v tomto případě 10.1, adresa uzlu je 1.1.
Vedle přirozených masek existují masky nepřirozené. To jsou ty které nemají v oktetu samé jedničky, ale jsou zprava doplněny nulami. Jedničky musí být v masce zleva bez přerušení!
Základní pravidla pro použití masek jsou:
a) jedničky musí být v masce zleva bez přerušení;
b) subnet čísla složená ze samých nul nejsou doporučena (ale lze je použít – pozor u některých prostředků se musí povolit!);
c) subnet čísla složená ze samých jedniček nejsou povolena;
d) síťové adresy složené ze samých jedniček nebo samých nul nejsou povoleny;
e) adresy uzlů složené ze samých jedniček nebo samých nul nejsou povoleny.
Vždy je potřeba zvážit zda je přirozené maskování dostatečné nebo zda je lepší se pustit do poměrně náročných vod „nekontinuálního“ maskování.
Adresace v IP sítích, masky sítě - pokračování
Při použití masek dochází nejen ke ztrátám použitelných adres jak pro uzly tak pro sítě a tím i k možným komplikacím neznalých administrátorů.
Zopakujme si základní pravidla pro použití masek:
a) jedničky musí být v masce zleva bez přerušení;
b) subnet čísla složená ze samých nul nejsou doporučena (ale lze je použít – pozor u některých prostředků se musí povolit!);
c) subnet čísla složená ze samých jedniček nejsou povolena;
d) síťové adresy složené ze samých jedniček nebo samých nul nejsou povoleny;
e) adresy uzlů složené ze samých jedniček nebo samých nul nejsou povoleny.
Při použití masek dochází nejen ke ztrátám použitelných adres jak pro uzly tak pro sítě a tím i k možným komplikacím neznalých administrátorů.
Vezměme si příklad masky, která má v sekci subnetu pouze jeden bit. Tato maska může mít toto vyjádření:
255.255.255.128 11111111. 11111111. 11111111. 10000000
Nebudu to protahovat. Aplikujeme-li na tuto masku pravidla b a c, zjistíme, že tato maska je vlastně nepoužitelná – teoreticky nám vyjdou dva subnety:
0
a
1
z nichž první je nedoporučený a druhý nepřípustný!
Takže minimální možná maska musí mít dva bity. Tj. např :
255.255.255.192 11111111. 11111111. 11111111. 11000000
Vyjdou nám tyto adresní prostory:
00
01
10
11
Analogicky platí i zde a bude platit i pro další masky, že první subnet je nedoporučený a poslední nepřípustný. Dvoubitová maska tedy umožňuje dva až tři subnety. Potřebujeme-li 4 subnety, musíme použít masku tříbitovou. Se zvětšováním počtu subnetů se snižuje počet adres použitelných pro uzly!
Použijeme-li předešlé subnety, dojdeme k následujícímu poznání:
· pro subnet 00 jsou limitní prostory 00000000 až 0011111111, což jsou dekadicky čísla 0 až 63. Aplikací pravidla d eliminujeme okrajové hodnoty a dojdeme k možným adresám 1 až 62;
analogicky pro další subnety:
· pro subnet 01 jsou limitní prostory 01000000 až 0111111111, což jsou dekadicky čísla 64 až 127. Aplikací pravidla d eliminujeme okrajové hodnoty a dojdeme k možným adresám 65 až 126;
· pro subnet 10 jsou limitní prostory 10000000 až 1011111111, což jsou dekadicky čísla 128 až 191. Aplikací pravidla d eliminujeme okrajové hodnoty a dojdeme k možným adresám 129 až 190.
Vidíme, že kromě celého posledního subnetu jsou nepoužitelné adresy 0 (logicky – ta není použitelná ani mimo subnet), 63, 64, 127, 128 a 191.
Další rozsahy subnetů vynecháme a budeme se věnovat těm posledním.
Čistě jedničkový subnet, tj. dekadicky 255 a binárně 11111111 je použitelný logicky pouze mimo poslední oktet. Předposlední teoreticky použitelný oktet, který má na posledním místě 0 vypadá následovně:
255.255.255.254 11111111. 11111111. 11111111. 11111110
V subnetech není problém, ale zato je v číslech uzlů – zbývají nám vždy pouze 0 a 1. Aplikací pravidla e je vyloučíme a vidíme, že tato maska je nepoužitelná.
Největší použitelná maska je tedy :
255.255.255.252 11111111. 11111111. 11111111. 11111100
Dojdeme k pravidlu, že počet sítí a uzlů se dá vypočítat podle vzorce
2n – 2
Tj. pro subnety představuje n počet jedniček a pro uzly představuje n počet nul.
Abychom se nedrželi striktně masek přesahujících třídu C, podíváme se na masku přesahující třídu B:
255.255.252.0 11111111. 11111111. 11111100. 00000000
Ta umožňuje pomocí subnetingu dodatečnou segmentaci na 26 – 2 = 62 sítí se 210 – 2 = 1024 uzly.
V následující tabulce jsou uvedeny masky a z nich vyplývající počty uzlů a adres použitelné pro třídu C. Použitelné jsou pouze ty tučně vyznačené.
maskovací bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
číslo bitu | 128 | 64 | 32 | 16 | 8 | 4 | 2 |
maska | 128 | 192 | 224 | 240 | 248 | 252 | 254 |
počet sítí | 0 | 2 | 6 | 14 | 30 | 62 | 126 |
počet uzlů v každé síti | 126 | 62 | 30 | 14 | 6 | 2 | 0 |
No a kdyby vám to nestačilo a chtěli jste si usnadnit život nástrojem pro výpočet, je dostupný program IP subnet kalkulátor .
Adresace v IP sítích, privátní adresní rozsahy
Síť připojená k Internetu nemusí nutně být přímo adresovatelná z Internetu. Ve většině případů je to dokonce nežádoucí.
Síť připojená k Internetu nemusí nutně být přímo adresovatelná z Internetu. Ve většině případů je to dokonce nežádoucí neboť přímá adresovatelnost znamená i možnost přímé dosažitelnosti. Řešením je tedy to, že vnitřní síť (intranet) používá určitý rozsah, který je skrytý pomocí Proxy nebo NAT služby.
V březnu 1994 vytvořen dokument RFC 1597 (který byl nahrazen dokumenty RFC 1627 a posléze RFC 1918) upravující privátní adresní prostory. V každé třídě (A, B i C) je pro tyto účely vyhrazena část adres. Zmíněný dokument dělí sítě podle požadovaných komunikací do tří kategorií, které dále dělí na privátní (private) a veřejné (public). Základním rozdílem je možnost přímé komunikace ven ze sítě a naopak (tj. z venku do sítě).
Tyto rozsahy jsou:
třída rozsah množství adresních prostorů
C 192.168.0.x až 192.168.254.x 254
B 172.16.x.x až 172.31.x.x 16
A 10.x.x.x 1
Rizika vyplývající z použití registrovaných adres přidělených někomu jinému jsou v podstatě dvě :
1. duplicitní adresace - síť již má někdo zaregistrovanou, tomto případě je (nejen) na ISP (Internet Service Provider – tj. organizace poskytující připojení) aby statickými cestami zamezil šíření adres (případně směrovacími filtry odstínil síť a zamezil problémům vznikajícím duplicitou adres na Internetu). Každý uživatel Internetu musí mít přidělenu minimálně jednu unikátní IP adresu z registrovaného prostoru. Tyto veřejné adresy jsou pak používány pro komunikaci vnitřní sítě. Možnost používat pouze omezený počet adres podstatně větší množstvím adres z vnitřní sítě řeší prostředky závisející na požadovaném směru komunikací - např. kombinace Proxy nebo NAT a veřejných serverů umístěných v tzv. demilitarizované zóně – ftp, www, …; nebo filtrační FireWall s překladem adres. Tato záležitost je tedy řešitelná, ale neodstraňuje druhý problém – adresní stín.
2. adresní stín – uživatelé vnitřní sítě používající náhodně zvolené public adresy např. 192.1.1.x až 192.1.9.x jsou od Internetu filtrováni např. MS Proxy nebo Checkpoint Firewall-1 s překladem adres, tím mají zajištěn bezproblémový přístup do téměř celého Internetu. Pokud chtějí komunikovat s WWW (nebo jiným typem) serverem na adrese 192.1.4.45, mají smůlu – tato adresa bude vyhledávána ve vnitřní části sítě. V uvedeném příkladu tak uživatelé přichází o možnost komunikovat s Internetovými zařízeními na sítích 192.1.1.x až 192.1.9.x. Adresní stín lze řešit pouze použitím přidělených registrovaných adres (kterých může být a pravděpodobně bude nedostatek) nebo lépe jejich kombinací s adresami rezervovanými pro privátní sítě.