logo

Co je protokol TCP (Transmission Control Protocol)?

Zkratka TCP znamená protokol kontroly přenosu . Jedná se o protokol transportní vrstvy, který usnadňuje přenos paketů ze zdroje do cíle. Jedná se o protokol orientovaný na spojení, což znamená, že naváže spojení před komunikací, ke které dochází mezi počítačovými zařízeními v síti. Tento protokol se používá s protokolem IP, takže společně se označují jako TCP/IP.

Hlavní funkcí TCP je přebírat data z aplikační vrstvy. Poté rozdělí data do několika paketů, tyto pakety očísluje a nakonec tyto pakety odešle do cíle. TCP na druhé straně pakety znovu sestaví a přenese je do aplikační vrstvy. Protože víme, že TCP je protokol orientovaný na spojení, spojení zůstane navázáno, dokud není komunikace mezi odesílatelem a příjemcem dokončena.

funkce java8

Vlastnosti protokolu TCP

Níže jsou uvedeny vlastnosti protokolu TCP:

    Protokol transportní vrstvy

TCP je protokol transportní vrstvy, protože se používá při přenosu dat od odesílatele k přijímači.

    Spolehlivý

TCP je spolehlivý protokol, protože se řídí mechanismem řízení toku a chyb. Podporuje také potvrzovací mechanismus, který kontroluje stav a správný příchod dat. V potvrzovacím mechanismu příjemce posílá buď kladné nebo záporné potvrzení odesílateli, takže odesílatel může zjistit, zda datový paket byl přijat nebo zda potřebuje znovu odeslat.

    Pořadí dat je zachováno

Tento protokol zajišťuje, že data dorazí k zamýšlenému příjemci ve stejném pořadí, v jakém jsou odesílána. Uspořádá a očísluje každý segment, aby je vrstva TCP na cílové straně mohla znovu sestavit na základě jejich uspořádání.

    Orientovaný na připojení

Jedná se o službu orientovanou na spojení, což znamená, že k výměně dat dochází až po navázání spojení. Po dokončení přenosu dat bude připojení ukončeno.

    Plny Duplex

Jedná se o plně duplexní, což znamená, že data se mohou přenášet oběma směry současně.

    Streamově orientované

TCP je proudově orientovaný protokol, protože umožňuje odesílateli odesílat data ve formě proudu bajtů a také umožňuje příjemci přijímat data ve formě proudu bajtů. TCP vytváří prostředí, ve kterém jsou odesílatel i přijímač propojeny pomyslnou trubicí známou jako virtuální okruh. Tento virtuální okruh přenáší proud bajtů přes internet.

Need for Transport Control Protocol

Ve vrstvené architektuře síťového modelu je celá úloha rozdělena na menší úlohy. Každý úkol je přiřazen k určité vrstvě, která úkol zpracovává. V TCP/IP model , pět vrstev je aplikační vrstva , transportní vrstva , síťová vrstva , vrstva datového spojení a fyzická vrstva. Transportní vrstva má kritickou roli při poskytování end-to-end komunikace přímo aplikačním procesům. Vytváří 65 000 portů, aby bylo možné přistupovat k více aplikacím současně. Přebírá data z horní vrstvy a rozděluje data do menších paketů a poté je přenáší do síťové vrstvy.

typ v jazyce Java
TCP

Práce s TCP

V TCP je spojení navázáno pomocí třícestného handshakingu. Klient odešle segment s jeho pořadovým číslem. Server na oplátku odešle svůj segment se svým vlastním pořadovým číslem a také potvrzovací sekvencí, která je o jedno větší než pořadové číslo klienta. Když klient obdrží potvrzení svého segmentu, odešle potvrzení na server. Tímto způsobem je navázáno spojení mezi klientem a serverem.

TCP

Výhody TCP

  • Poskytuje spolehlivou službu orientovanou na připojení, což znamená, že zaručuje doručení datových paketů. Pokud dojde ke ztrátě datového paketu v síti, TCP znovu odešle ztracené pakety.
  • Poskytuje mechanismus řízení toku pomocí protokolu posuvného okna.
  • Poskytuje detekci chyb pomocí kontrolního součtu a kontrolu chyb pomocí protokolu Go Back nebo ARP.
  • Odstraňuje zahlcení pomocí algoritmu pro zamezení zahlcení sítě, který zahrnuje různá schémata, jako je aditivní zvýšení/multiplikativní snížení (AIMD), pomalý start a okno zahlcení.

Nevýhoda TCP

Zvyšuje velké množství režie, protože každý segment získává svou vlastní hlavičku TCP, takže fragmentace směrovačem zvyšuje režii.

Formát záhlaví TCP

TCP
    Zdrojový port:Definuje port aplikace, která odesílá data. Toto pole tedy obsahuje adresu zdrojového portu, která je 16 bitů.Cílový přístav:Definuje port aplikace na přijímací straně. Toto pole tedy obsahuje adresu cílového portu, která je 16 bitů.pořadové číslo:Toto pole obsahuje pořadové číslo datových bytů v konkrétní relaci.Číslo potvrzení:Když je nastaven příznak ACK, pak toto obsahuje další pořadové číslo datového bytu a funguje jako potvrzení pro předchozí přijatá data. Pokud například přijímač přijme číslo segmentu „x“, odpoví „x+1“ jako číslo potvrzení.HLEN:Určuje délku hlavičky indikovanou 4bajtovými slovy v hlavičce. Velikost záhlaví se pohybuje mezi 20 a 60 bajty. Hodnota tohoto pole by tedy ležela mezi 5 a 15.Rezervováno:Jedná se o 4bitové pole vyhrazené pro budoucí použití a ve výchozím nastavení jsou všechny nastaveny na nulu.Vlajky
    Existuje šest řídicích bitů nebo příznaků:
      URG:Představuje naléhavý ukazatel. Pokud je nastaveno, jsou data zpracována urgentně.ACK:Pokud je ACK nastaveno na 0, znamená to, že datový paket neobsahuje potvrzení.PSH:Pokud je toto pole nastaveno, vyžaduje přijímající zařízení, aby odeslalo data do přijímající aplikace, aniž by je ukládalo do vyrovnávací paměti.RST:Pokud je nastaveno, požaduje restartování připojení.SYN:Používá se k navázání spojení mezi hostiteli.KONEC:Používá se k uvolnění spojení a nedojde k žádné další výměně dat.
    Velikost okna
    Jedná se o 16bitové pole. Obsahuje velikost dat, kterou může přijímač přijmout. Toto pole se používá pro řízení toku mezi odesílatelem a přijímačem a také určuje množství vyrovnávací paměti přidělené přijímačem pro segment. Hodnotu tohoto pole určuje přijímač.Kontrolní součet
    Jedná se o 16bitové pole. Toto pole je v UDP volitelné, ale v případě TCP/IP je toto pole povinné.Naléhavý ukazatel
    Je to ukazatel, který ukazuje na urgentní datový bajt, pokud je příznak URG nastaven na 1. Definuje hodnotu, která bude přidána k pořadovému číslu, aby se získalo pořadové číslo posledního urgentního bajtu.Možnosti
    Poskytuje další možnosti. Nepovinné pole je reprezentováno 32 bity. Pokud toto pole obsahuje data menší než 32 bitů, je k získání zbývajících bitů vyžadováno vyplnění.