CCNA Podle knihy VÝUKOVÝ PRŮVODCE Přípravou NA ZKOUŠKU 640-802
Úvod do protokolů TCP/IP - TCP a UDP
Klíčové koncepce protokolů hostitelské vrstvy
Vzhledem k tomu, že už jste získali představu o fungování spojovaného (TCP) i nespojovaného (UDP) protokolu, můžeme nyní shrnout jejich vlastnosti. Tabulka 2. 1 zdůrazňuje některé klíčové aspekty, které byste u těchto protokolů měli mít na paměti. Obsah tabulky byste si měli zapamatovat.
Tabulka 2.1: Klíčové vlastnosti protokolů TCP a UDP
TCP UDP
Řazený Neřazený
Spolehlivý Nespolehlivý
Spojovaný Nespojovaný
Virtuální okruh Nízká režie
Potvrzení Bez potvrzení
Řízení toku dat pomocí oken Bez oken či řízení toku dat
Fungování protokolu TCP lze dobře osvětlit pomocí analogie s telefonními službami. Chcete-Ii s někým mluvit po telefonu, musíte nejdříve s touto osobou navázat spojení, ať už se nachází kdekoli. To je obdobou virtuálního okruhu u protokolu TCP. Když někomu při hovoru sdělujete důležité informace, můžete říci "Představ si" nebo "Rozumíš tomu?". Tyto fráze, které druhou stranu pobízejí, aby zareagovala, velmi připomínají potvrzení u protokolu TCP. Čas od času (zejména při mobilním telefonování) se lidé také ptají "Jsi tam ještě"? Konverzaci ukončují např. pozdravem "Ahoj", aby dali najevo, že telefonát končí. Protokol TCP rovněž poskytuje obdobné funkce.
Oproti tomu použití protokolu UDP se podobá odeslání pohlednice. Jestliže chcete někomu napsat, nemusíte jej nejdříve kontaktovat. Stačí vymyslet zprávu, uvést adresu a hodit lístek do schránky. Můžeme to přirovnat k nespojovanému charakteru protokolu UDP. Zpráva na pohlednici pravděpodobně není životně důležitá, takže nepotřebujete potvrzení jejího příjmu. Ani protokol UDP neposkytuje potvrzení. Podívejte se nyní na další obrázek 2.5, který znázorňuje protokoly TCP a UDP a aplikace, které jsou k jednotlivým protokolům přidruženy.
Čísla portů
Protokoly TCP a UDP musí při komunikaci s vyššími vrstvami používat čísla portů. Tato čísla totiž dovolují rozlišovat různé komunikace, které jsou v síti aktivní ve stejnou dobu. Zdrojový hostitel dynamicky na zdrojové straně přiděluje čísla portů s hodnotou 1 024 a vyšší. Čísla portů do hodnoty 1 023 jsou definována ve standardu RFC 3232 (případně navštivte web www . i ana . o rg), který se zabývá tzv. dobře známými čísly portů. Virtuální okruhy, které nepoužívají aplikaci s dobře známým číslem portu, mají místo toho přidělena náhodná čísla portů z určitého rozsahu. Tato čísla portů identifikují v segmentu TCP zdrojovou a cílovou aplikaci nebo proces.
Dále jsou vysvětlena různá čísla portů, které lze použít:
• Čísla nižší než 1 024 se považují za dobře známá čísla portů a jejich definici naleznete v dokumentu RFC 3232.
• Čísla 1 024 a vyšší slouží horním vrstvám k navázání relací s jinými hostiteli a protokol TCP je používá jako zdrojové a cílové adresy v segmentu TCP.
V následujících sekcích si rozebereme výstup analyzátoru s ukázkou relace TCP.
Relace TCP: Zdrojový port
Následující výpis dokumentuje relaci TCP zaznamenanou analytickým softwarem OmniPeek:
TCP - Transport Control Protocol
Source Port : 5973
Destinati on Port : 23
Sequence Number: 1 4 56389907
Ack Number: 1 2 42056456
Offset : 5
Re s e rved : %000000
Code : % 0 110 00
Ack is valid
Push Request
Window : 6 1 320
Checksum: Ox61a6
Urgent Pointer : 0
No TCP Options
TCP Data Area :
vL.5.+.5.+.5.+.5 76 4c 19 35 II 2b 19 35 II 2b 19 35 II
2 b 1 9 3 5 +. II 2b 19
Frame Check Sequence : OxOdOOOOOf
Všimněte si, že zdrojový hostitel určuje hodnotu zdrojového portu, která se v tomto případě rovná 5973. Cílový port má hodnotu 23, která sděluje přijímajícímu hostiteli účel zamýšleného spojení (Telnet). Při pohledu na tuto relaci vidíte, že zdrojový hostitel nastavuje zdrojový port na číslo od 1 024 do 65535. Proč však zdroj pokaždé volí jiná čísla portů? Díky tomu lze totiž rozlišit relace s různými hostiteli. Pokud by server neměl od odesílajícího hostitele jedinečné číslo, jak by věděl, odkud informace pochází? Protokol TCP a protokoly vyšších vrstev nerozlišují odesílajícího hostitele podle hardwarové a logické adresy jako protokoly linkové a síťové vrstvy. Místo toho používají čísla portů. Snadno si můžete představit, jaký zmatek by nastal na straně přijímajícího hostitele, kdyby všichni hostitelé požadovali připojení k FTP pomocí stejného čísla zdrojového portu!
Relace TCP: cílový port
Ve výstupu analyzátoru někdy pouze zjistíte, že zdrojový port má číslo vyšší než 1 024 a cílový port patří mezi dobře známé porty, jak je patrné v následujícím sledování:
TCP - T ransport Control P rotocol
Source Port : 1 1 44
Destinati on Port : 80 Wo rld Wide Web HTTP
Sequence Number: 9356570
Ack Numbe r: O
Offset : 7
Rese rved : %000000
Code : %00 0010
Sy nch Sequence
Window : 8192
Checksum O x 57E7
Urgent Pointer: 0
TCP Options :
O p tio n Type : 2 Maximum Segment Size
Length : 4
MSS : 536
Opti on Type : 1 No Opera t i o n
Option Type : 1 No Opera t i o n
Option Type : 4
Length : 2
Opt Value:
No More HTTP Data
Frame Check Seque nce : Ox4369 7363
Je zřejmé, že zdrojový port má číslo vyšší než 1 024, ale cílový port se rovná 80. Jedná se tedy o službu HTTP. Server (přijímající hostitel) může cílový port v případě potřeby změnit. V předchozím sledování je na cílové zařízení odeslán paket "syn". Sekvence syn sděluje vzdálenému cílovému zařízení, že zdroj požaduje vytvoření relace.
Relace TCP: Potvrzení paketu Syn
Další sledování ukazuje potvrzení paketu syn:
Všimněte si údaje Ack is valid, který znamená, že zdrojový port byl přijat a zařízení souhlasilo s tím, že s výchozím hostitelem vytvoří virtuální okruh. Na tomto místě se opět můžete přesvědčit, že odpověď serveru obsahuje zdrojový port 80 a cílový port 1 144 odeslaný z původního hostitele. Vše je tedy v pořádku. Tabulka 2.2 uvádí seznam běžných aplikací založených na sadě protokolů TCP/IP, jejich dobře známá čísla portů a rovněž protokoly transportní vrstvy, které každá aplikace či proces používá. Je důležité, abyste si tuto tabulku osvojili. Všimněte si, že systém DNS pracuje s protokoly TCP i UDP. Konkrétní zvolený protokol závisí na požadované operaci. Aplikací, které mohou používat oba protokoly, je sice více, ale tento příklad byste si rozhodně měli pamatovat.
Tabulka 2.2: Klíčové protokoly založené na protokolech TCP a UDP
Poznámka Protokoly TCP/IP a model ministerstva obrany 117 Protokol TCP je spolehlivý díky řazení, potvrzení a řízení toku dat (posunu oken). Protokol UDP spolehlivost neposkytuje