V tomto pokračování našeho seriálu o sítích dokončíme stručný úvod do
problematiky architektury TCP/IP, jíž jsme se začali zabývat v minulém dílu. V
závěru článku najdete doporučení pro další zdroj informací moderní, kompaktní
původní českou publikaci o sítích s TCP/IP.
Mapování adres
Při práci s adresami používá IP služby dalších protokolů síťové vrstvy (na
hranici mezi spojovou a síťovou vrstvou) pro zjištění mapování síťových adres a
fyzických (spojové vrstvy):
- Address Resolution Protocol (ARP) se používá při znalosti cílové IP adresy
stanice (rozhraní) pro nalezení příslušné fyzické adresy rozhraní (MAC). Každá
stanice, pokud chce komunikovat se vzdálenou stanicí a zná její síťovou adresu,
potřebuje zjistit její adresu fyzickou, aby se mohl datagram zapouzdřit do
rámce s cílovou adresou MAC. Zdrojová stanice prozkoumá svoji paměť s
informacemi o mapování fyzických a síťových adres (ARP cache), a pokud nenajde
informaci odpovídající hledané síťové adrese, musí použít protokol ARP. Vyšle
žádost (paket) protokolu ARP s informacemi o zdrojové dvojici adres (fyzické a
síťové) a s cílovou IP adresou, kterou adresuje všem stanicím v síti (na
všeobecnou adresu MAC).
Očekává zpět odpověď s "vyplněným" polem cílové fyzické adresy. Pokud je cílová
stanice připojena na stejný segment, reaguje odpovědí zaslanou na adresu
zdrojové stanice s doplněnou informací a současně zkontroluje obsah své paměti
ARP, zda ji nemůže doplnit o dvojici adres obdržených v žádosti ARP. Pokud
cílová stanice není lokální, ale je připojena k jinému segmentu intersítě,
potom odpoví místo ní svou fyzickou adresou směrovač, připojený ke stejnému
segmentu jako zdrojová stanice, pokud o cílové stanici ví (zná cestu do
příslušné sítě). Chová se jako zástupce cílové stanice (proxy ARP).
Aby se však minimalizovalo vysílání zpráv protokolu ARP na všeobecnou adresu,
každá stanice musí (podle RFC 1122/1123) mít zkonfigurovanou podsíťovou masku,
podle níž pozná, zda cílová stanice leží na stejné podsíti, a současně má
nakonfigurovanou implicitní adresu směrovače (případně několika směrovačů)
připojeného k podsíti, jemuž posílají všechny pakety určené mimo lokální
segment (na adresu MAC rozhraní směrovače připojenému k témuž segmentu jako
zdrojová stanice). Současně musí stanice pro komunikaci s jinými (pod)sítěmi
mít mechanismus, jak zjistit a reagovat na selhání implicitního směrovače,
případně jak reagovat na informaci o lepší cestě k cílové (pod)síti.
- Reverse Address Resolution Protocol (RARP) se používá při znalosti vlastní
fyzické adresy pro získání vlastní IP adresy; nejčastěji pro zjištění vlastní
IP adresy při startu systému (v případě bezdiskových stanic, které potřebují
zjistit svoji IP adresu od serveru v síti). Stanice vygeneruje žádost RARP na
všeobecnou adresu se svou adresou fyzickou a očekává odpověď s informací o
přidělené IP adrese. RARP server obsahuje databázi hardwarových adres (např.
MAC) s přiřazenými IP adresami. RARP žádost obsahuje pouze vlastní hardwarovou
adresu a RARP server vrací odpověď s vyplněnou korespondující IP adresou
žadatele. Vzhledem k tomu, že vlastní IP adresa je nedostatečná informace pro
plnou komunikaci v IP sítích, je protokol RARP používán zřídka a častěji se
používá komplexnější aplikační protokol BootP nebo DHCP.
Řízení
Protokol řídicích hlášení (Internet Control Message Protocol, ICMP) není
primárně řídicím protokolem, ale pouze slouží k přenosu specifických zpráv
týkajících se chyb a zvláštních okolností při přenosu datagramů.
ICMP zprávy se často vysílají v situaci, kdy je síť zahlcená nebo má nějaký
problém, proto jsou koncipovány tak, aby samy nepřispívaly k dalšímu
zkomplikování situace např. zbytečně vysokým počtem datagramů. ICMP zprávy se
proto negenerují v souvislosti s problémy datagramů na všeobecnou nebo
skupinovou adresu, zpráv se zdrojovou adresou neidentifikující konkrétní
stanici (např. 127.0.0.1 nebo 0.0.0.0), nebo směrováním a doručením ICMP zpráv.
ICMP není pouze protokol pro informaci o chybách v datagramech a jejich
směrování, ale slouží ke zjišťování doplňujících informací a také k ověření
komunikace mezi stanicemi. Právě posledně jmenované možnosti využívá tzv. Ping
(Packet Internet Groper) pro nejjednodušší způsob zjištění dosažitelnosti
cílové stanice/sítě (ve srovnání s jinými obdobnými možnostmi, jako Telnet nebo
traceroute, ping pracuje na nejnižší možné vrstvě, u cílové stanice je
implementován v jádru operačního systému). Na základě vyslání zprávy ICMP typu
Echo request s adresou IP cílové stanice (případně s všeobecnou adresou pro
danou síť) se očekává od cíle odpověď, potvrzující funkčnost a dosažitelnost
stanice (pro budoucí komunikaci).
Směrování
Směrování IP datagramů podporují následující směrovací protokoly:
- Routing Information Protocol, RIP,
- Open Shortest Path First, OSPF,
- Interior Gateway Routing Protocol, IGRP,
- Enhanced Interior Gateway Routing Protocol, E-IGRP,
- Exterior Gateway Protocol, EGP,
- Border Gateway Protocol, BGP.
Kromě vlastního směrování (propojování sítí se budeme věnovat podrobněji v
následující části seriálu) se směrovačů v IP světě týkají ještě další
specifické protokoly:
- protokol virtuálního směrovače pro zálohování (Virtual Router Redundancy
Protocol, VRRP),
- protokol Hot Standby Router Protocol (HSRP).
Komunikace ve skupině stanic
Komunikace ve skupině (multicasting ) využívá nejen specifických skupinových
adres, ale musí být podporována protokolem síťové vrstvy, který umožňuje
stanicím se do skupiny přihlásit nebo se z ní odhlásit, a také protokolem pro
směrování datagramů adresovaných na skupinovou adresu.
Protokol správy skupin (Internet Group Management Protocol, IGMP) tuto funkci
vykonává v síťové vrstvě a používá IP datagramy (číslo protokolu je 2). Druhá
verze protokolu IGMP je specifikovaná v RFC 2236.
Mezi skupinové směrovací protokoly patří:
- skupinový směrovací protokol na bázi vektorů vzdáleností (Distance Vector
Multicast Routing Protocol, DVMRP)
- skupinový protokol OSPF (Multicast OSPF, MOSPF)
- skupinové vysílání nezávislé na protokolu (Protocol Independent Multicast,
PIM).
Transportní vrstva
Transportní vrstva odpovídá transportní vrstvě podle referenčního modelu OSI,
protože poskytuje mechanismus pro koncový přenos dat mezi dvěma stanicemi.
Nabízí transportní službu se spojením nebo bez spojení za použití jednoho ze
dvou protokolů: TCP nebo UDP.
Transmission Control Protocol (TCP) poskytuje transportní službu se spojením,
tedy spolehlivý přenos dat, který nebyl zajištěn datagramově orientovaným IP.
Vykonává další funkce transportní vrstvy, jako řízení koncového zabezpečení a
datového toku, řízení koncového spojení.
Vlastnosti podporované transportním protokolem TCP:
- spolehlivá transportní služba doručí adresátovi všechna přenášená data tak,
jak je odesílatel vyslal (tzn. bez ztráty nebo zkreslení dat či duplicitních
paketů) s využitím pozitivního potvrzování a opětovných přenosů (Positive
Acknowledgement with Retransmission, PAR),
- služba se spojením fáze navázání spojení mezi dvěma procesy, přenos dat a
ukončení spojení,
- efektivní využití přenosových kanálů vysílání s využitím vyrovnávacích
pamětí, kdy odesílatel začne vysílat, až se nashromáždí dostatek dat, nebo po
vypršení časového limitu,
- transparentní přenos libovolných dat,
- plně duplexní spojení (současný obousměrný přenos dat) potvrzení o správném
příjmu TCP segmentu je součástí datového TCP segmentu vysílaného opačným směrem
(piggybacking),
- rozlišení mezi více potenciálními adresáty (procesy) na daném počítači pomocí
portů.
User Datagram Protocol (UDP) poskytuje nespolehlivou transportní službu
(nezaručuje doručení zpráv do cíle) pro ty aplikace, které nepožadují
zabezpečení přenosu v takovém rozsahu, jako je poskytuje TCP (ověření doručení
v pořadí, zajištění opakovaného přenosu), nebo pro transakčně orientované
aplikace (dotaz-odpověď), pro něž může být navazování spojení příliš zdlouhavé.
UDP neposkytuje spolehlivý koncový přenos dat, nemá fáze navazování a ukončení
spojení, proto hned první segment UDP obsahuje uživatelská data. Zprávy
zpracovává obdobným způsobem jako TCP, pouze záhlaví je kratší, protože
neobsahuje pole pro informace o velikosti okna, číslech segmentů a potvrzení.
Aplikační vrstva
Vrstva aplikací a procesů (Process/Application Layer) je nejvyšší vrstvou
síťové architektury Internetu a obsahuje všechny protokoly poskytující
uživatelům konkrétní aplikace. Na obrázku Hlavní protokoly síťové architektury
je kromě příslušných RFC uvedena rovněž závislost jednotlivých aplikačních
protokolů na transportní službě a protokolu. Některé aplikační protokoly jsou
přísně závislé na typu transportní služby, proto vyžadují buď protokol TCP
(např. FTP, Telnet, HTTP apod.), nebo protokol UDP (např. SNMP, DHCP, BOOTP,
TFTP). Některé z protokolů však mohou používat kterýkoli z transportních
protokolů. Výběr protokolu se pak konkretizuje v rámci implementace (např. DNS).
Mezi nejpoužívanější aplikační protokoly patří následující (podrobnější popis
jednotlivých protokolů je mimo možnosti tohoto článku):
- TELNET protokol virtuálního terminálu (pro vzdálený přístup);
- protokol přenosu souborů (File Transfer Protocol, FTP);
- jednoduchý protokol přenosu souborů (Trivial File Transfer Protocol, TFTP);
- jednoduchý protokol transferu pošty (Simple Mail Transfer Protocol, SMTP);
- služba jmen (Domain Name System, DNS) protokol pro mapování jmen a adres
stanic IP;
- síťový systém souborů (Network File System, NFS) protokol umožňující přístup
k souborům v síti, navržený firmou Sun Microsystems (informační RFC 1813);
- jednoduchý protokol pro management sítě (Simple Network Management Protocol,
SNMP);
- poštovní protokol (Post Office Protocol, POP) protokol pro přístup a získání
elektronické pošty z poštovního serveru;
- protokol transferu hypertextových informací (Hypertext Transfer Protocol,
HTTP) aplikační protokol vyvinutý pro distribuované, spolupracující informační
systémy používající hypermedia;
- protokol při startu (BOOTP) protokol aplikační vrstvy sloužící pro získání
základních informací o konfiguraci při startu systému, především IP adresy;
- protokol dynamické konfigurace stanice (Dynamic Host Configuration Protocol,
DHCP);
- rezervační protokol (Resource ReSerVation Protocol, RSVP) signalizační
protokol umožňující přijímající stanici rezervovat šířku pásma v síti pro
přenos dat citlivých na zpoždění (především hlasu a obrazu);
- přenosový protokol v reálném čase (Real-time Transport Protocol, RTP)
podporuje přenos interaktivního videa, zakládá se na synchronizaci časového
přenosu a zjištění ztráty nebo nesprávného pořadí dat;
-volání vzdálených procedur (Remote Procedure Call, RPC) umožňuje komunikaci
mezi klientem a serverem na základě požadavku ze strany klienta, specifikující
proceduru a její vstupní parametry, vykonání procedury serverem a odpovědi
serveru (při úspěšném vykonání procedury odpověď obsahuje výstupní parametry).
Závěrem
V tomto článku bylo možné pouze nastínit základní prvky architektury TCP/IP,
protokoly a jejich vazby, nikoli podrobnosti, které jsou pro samotné
implementace stejně důležité. Pokusila jsem se podrobněji zaměřit na způsob
adresace v IP a vysvětlit jeho principy, protože s adresami se v dnešní době
setkáváme neustále při elektronické komunikaci.
Pro kompletní informace o architektuře TCP/IP a jednotlivých protokolech,
možnostech směrování, a také managementu a bezpečnosti v IP doporučuji
publikaci:
Propojování sítí s TCP/IP, Rita Pužmanová, Pavel Šmrha (Kopp, ISBN
80-7232-080-7)
Autorkou seriálu o sítích je Ing. Rita Pužmanová, CSc., specialista na
propojování komunikačních sítí (rita@ieee.org)
Seznam použitých zkratek
APNIC - Asia Pacific Network Information Center
ARIN - American Registry for Internet Numbers
ARP - Address Resolution Protocol
ARPA - Advanced Research Projects Agency
BGP - Border Gateway Protocol
BOOTP - Bootstrap Protocol
DARPA - Defense Advanced Research Projects Agency
DHCP - Dynamic Host Configuration Protocol
DNS - Domain Name System
DoD - Department of Defense
DVMRP Distance Vector Multicast Routing Protocol
EGP - Exterior Gateway Protocol
E-IGRP - Enhanced Interior Gateway Routing Protocol
FTP - File Transfer Protocol
HSRP - Hot Standby Router Protocol
HTTP - Hypertext Transfer Protocol
IAB - Internet Architecture Board
ICMP - Internet Control Message Protocol
IETF -Internet Engineering Task Force
IGMP - Internet Group Management Protocol
IGRP - Interior Gateway Routing Protocol
IP - Internet Protocol
MAC - Medium Access Control
MOSPF - Multicast Open Shortest Path First
NFS - Network File System
OSPF - Open Shortest Path First
PAR - Positive Acknowledgement with Retransmission
PIM - Protocol Independent Multicast
Ping - Packet Internet Groper
RARP - Reverse Address Resolution Protocol
RFC - Request for Comments
RIP - Routing Information Protocol
RIPE - Réseau IP Européenne
RPC - Remote Procedure Call
RSVP - Resource ReSerVation Protocol
RTP - Real-time Transport Protocol
SMTP - Simple Mail Transfer Protocol
SNMP - Simple Network Management Protocol
TCP - Transmission Control Protocol
TFTP - Trivial File Transfer Protocol
UDP - User Datagram Protocol
VRRP - Virtual Router Redundancy Protocol