CZ 
06.10.2024 Hanuš VÍTEJTE V MÉM SVĚTĚ

An English translation is available for this article. Pro tento článek je dostupný anglický překlad.
TCP/IP - connection establishment and termination

TCP/IP - navázání a ukončení spojení

| Petr Bouška - Samuraj |
Devátá část seriálu o počítačových sítích je opět stručná a krátká. Je zde krátce popsán způsob, jakým TCP protokol navazuje a ukončuje spojení.
zobrazeno: 51 936x (51 915 CZ, 21 EN) | Komentáře [8]

Navázání spojení v TCP

Aby se mohla vysílat data pomocí TCP protokolu, je nejprve třeba vytvořit spojení. Pro navázání spojení se používá třícestný handshake (potřesení ruky). V průběhu navazování spojení se obě strany dohodnou na čísle sekvence (sequence number). Číslo sekvence a odpovědi (sequence, acknowledgement number) jsou 32bitové hodnoty uváděné v TCP hlavičce. Pro navázání spojení se posílá TCP segment, který má nastaveny příznaky (flags) v TCP hlavičce. Jedná se o 8 bitových hodnot CWR (Congestion Window Reduced), ECE (ECN-Echo), URG (Urgent), ACK (Acknowledgement), PSH (Push), RST (Reset), SYN (Synchronize), FIN.

Navázání spojení probíhá ve třech krocích:

  1. klient pošle SYN packet s uvedeným číslem sekvence (x), číslo odpovědi 0
  2. druhá strana si uloží číslo sekvence (x) a odpoví SYN-ACK, jako číslo sekvence nastaví svoje číslo (y) a do čísla odpovědi vloží (x+1) - další očekávanou hodnotu
  3. klient odpoví ACK, číslo sekvence (x+1), číslo odpovědi (y+1)
Navázání spojení v TCP

Ukončení spojení v TCP

Principy při ukončení spojení jsou podobné jako při jeho navazování. Nejčastěji se používá čtyřcestný handshake, kdy každá strana samostatně uzavře spojení. Zde se používá sekvence FIN s odpovědí ACK.

Ukončení spojení v TCP

Související články:

Počítačové sítě - Computer networks

Tento seriál se věnuje základům počítačových sítí. Jsou zde stručně popsány důležité praktické aspekty, které by měl znát každý, kdo se o sítě zajímá. Obsahuje jedny z nejčtenějších článků na tomto webu. Je využíváno pro výuku na školách.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře
  1. [1] Marki

    Clanok fajn, ale prilis strucny.

    Co by som privital:

    1) Popis jednotlivych stavov spojenia - t.j. to co mi vypise netstat - TIME_WAIT, FIN_WAIT, SYN_SENT, SYN_RECV a pod. To by sa mohlo pridat k tym obrazkom.

    2) Zacal si so sekvencnymi cislami... tak by sa mohlo doplnit nieco o syn food a ochrane syn cookies...

    Čtvrtek, 13.09.2007 16:27 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Marki: Děkuji za připomínky. Já se však pokouším sepsat základní informace o sítích, aby člověk získal obecný přehled a neodradilo ho to od čtení. Podrobných informací se dá na netu dohledat spousta, když už člověk ví co chce.

    Bezpečnosti a útokům se také nevěnuji, jestli jsem pochopil dobře bod 2 a jedná se o Syn Flood.

    Možná někdy později ;-) ...

    Pátek, 14.09.2007 14:19 | odpovědět
  3. [3] Vencour

    odpověď na [2]Samuraj: Komu by to nestačilo najít přes Google, tak synflood je útok na paměť daného stroje, jelikož pro každé navázané spojení se vytváří v paměti místo, pamatuje se. Tedy až se paměť stroje vyčerpá, nemůže vůbec komunikovat.

    Obrana proti tomu je více úrovňová, teď z hlavu mne napadá počet spojení (omezení) za daný časový interval a z dané ajpiny. Případně se předřazuje firewall, který je kapacitně odolnější.

    Sobota, 01.12.2007 23:05 | odpovědět
  4. [4] Ccx

    Syncookies jsou efektivni ochrana proti syn floodu.

    cr.yp.to/syncookies.html

    btw pri takovejch utocich bejva vetsinou zdrojova ip nahodne generovana, tou se ridit nemuzes.

    Čtvrtek, 07.02.2008 03:23 | odpovědět
  5. [5] trivate

    a co třeba :

    - jak fungují sekvenční čísla a jaký k nim má vztah Acknowledge number

    - změny Window size

    - Jaké příznakové bity jsou nastaveny

    diky moc..

    Úterý, 16.06.2009 19:27 | odpovědět
  6. [6] jonathan

    @trivate napis ked vies... Su to pomerne zakladne veci aj ked sa musim priznat, ze ked som nasiel tuto stranku nemal som o nich ani sajn

    Středa, 17.06.2009 22:36 | odpovědět
  7. [7] sec

    zdravim, po jake dobe necinnosti mohu zjistit za jak dlouho se ukonci TCP spojeni? Ma to kazdy server jinak nastaven? Pokud ano tak jak a kde to zjistim?

    Dekuji secik

    Úterý, 25.11.2014 20:08 | odpovědět
  8. [8] Retriever

    Uvítal by som aj nejaké praktické ukážky, napríklad skript na ukladanie výpisu TCP spojení a ukončení.

    Středa, 22.05.2019 22:11 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách