Šiandien pradėsime nuo TCP. Ankstesniame skyriuje apie sluoksniavimą minėjome svarbų dalyką. Tinklo lygmenyje ir toliau daugiau kalbama apie ryšius tarp pagrindinių kompiuterių, o tai reiškia, kad jūsų kompiuteris turi žinoti, kur yra kitas kompiuteris, kad galėtų prie jo prisijungti. Tačiau ryšys tinkle dažnai yra tarpprocesinis, o ne tarpmašininis ryšys. Todėl TCP protokole įvedama prievado sąvoka. Prievadą gali užimti tik vienas procesas, kuris užtikrina tiesioginį ryšį tarp programų procesų, veikiančių skirtinguose pagrindiniuose kompiuteriuose.
Transporto sluoksnio užduotis – teikti tiesioginio ryšio paslaugas tarp skirtinguose pagrindiniuose kompiuteriuose veikiančių programų procesų, todėl jis dar vadinamas ištisiniu protokolu. Transporto sluoksnis paslepia pagrindines tinklo detales, leisdamas programos procesui matyti, tarsi tarp dviejų transporto sluoksnio objektų būtų loginis ištisinis ryšio kanalas.
TCP reiškia perdavimo valdymo protokolą ir yra žinomas kaip ryšio pagrindu veikiantis protokolas. Tai reiškia, kad prieš vienai programai pradedant siųsti duomenis kitai, abu procesai turi atlikti susitarimą. Susisiekimas yra logiškai susijęs procesas, užtikrinantis patikimą duomenų perdavimą ir tvarkingą priėmimą. Susisiekimo metu ryšys tarp šaltinio ir paskirties kompiuterių užmezgamas apsikeičiant valdymo paketų serija ir susitariant dėl kai kurių parametrų bei taisyklių, užtikrinančių sėkmingą duomenų perdavimą.
Kas yra TCP? (Mylinking'sTinklo bakstelėjimasirTinklo paketų tarpininkasgalėtų apdoroti tiek TCP, tiek UDP paketus)
TCP (perdavimo valdymo protokolas) yra į ryšį orientuotas, patikimas, baitų srautu pagrįstas transporto sluoksnio ryšio protokolas.
Ryšio orientuotasRyšio pagrindu veikiantis TCP ryšys yra „vienas su vienu“, t. y. „taškas-taškas“ ryšys ištisiniu ryšiu, kitaip nei UDP, kuris gali siųsti pranešimus keliems pagrindiniams kompiuteriams vienu metu, todėl „vienas su daugeliu“ ryšio pasiekti neįmanoma.
PatikimasTCP patikimumas užtikrina, kad paketai būtų patikimai pristatyti gavėjui, nepaisant tinklo ryšio pokyčių, todėl TCP protokolo paketų formatas yra sudėtingesnis nei UDP.
Baitų srauto pagrinduTCP protokolo veikimo principas, pagrįstas baitų srautu, leidžia perduoti bet kokio dydžio pranešimus ir garantuoja pranešimų eiliškumą: net jei ankstesnis pranešimas nebuvo visiškai gautas ir net jei vėlesni baitai buvo gauti, TCP jų neperduos apdorojimui taikomojoje programoje ir automatiškai pašalins pasikartojančius paketus.
Kai A ir B kompiuteriai užmezga ryšį, programai tereikia naudoti virtualią ryšio liniją duomenims siųsti ir gauti, taip užtikrinant duomenų perdavimą. TCP protokolas yra atsakingas už tokias užduotis kaip ryšio užmezgimas, atjungimas ir palaikymas. Reikėtų pažymėti, kad čia sakome, jog virtuali linija reiškia tik ryšio užmezgimą, o TCP protokolo ryšys rodo tik tai, kad abi pusės gali pradėti duomenų perdavimą, ir užtikrinti duomenų patikimumą. Maršruto parinkimo ir perdavimo mazgus tvarko tinklo įrenginiai; pats TCP protokolas šiomis detalėmis nesirūpina.
TCP ryšys yra pilno dvipusio perdavimo paslauga, o tai reiškia, kad pagrindinis kompiuteris A ir pagrindinis kompiuteris B gali perduoti duomenis abiem kryptimis TCP ryšiu. Tai reiškia, kad duomenys gali būti perduodami tarp pagrindinio kompiuterio A ir pagrindinio kompiuterio B dvikrypčiu srautu.
TCP laikinai saugo duomenis ryšio siuntimo buferyje. Šis siuntimo buferis yra viena iš talpyklų, nustatomų trišalio ryšio metu. Vėliau TCP tinkamu laiku nusiųs siuntimo talpykloje esančius duomenis į paskirties kompiuterio priėmimo talpyklą. Praktiškai kiekvienas mazgas turės siuntimo ir priėmimo talpyklas, kaip parodyta čia:
Siuntimo buferis yra TCP įgyvendinimo palaikoma atminties sritis siuntėjo pusėje, kuri naudojama laikinai saugoti siunčiamus duomenis. Kai atliekamas trišalis ryšys užmezgant, siuntimo talpykla nustatoma ir naudojama duomenims saugoti. Siuntimo buferis dinamiškai reguliuojamas atsižvelgiant į tinklo perkrovą ir atsiliepimus iš imtuvo.
Priėmimo buferis yra TCP įgyvendinimo palaikoma atminties sritis priimančiojoje pusėje, kuri naudojama laikinai saugoti gautus duomenis. TCP saugo gautus duomenis priėmimo talpykloje ir laukia, kol juos nuskaitys aukštesnė programa.
Atkreipkite dėmesį, kad siuntimo ir priėmimo talpyklos dydis yra ribotas, kai talpykla pilna, TCP gali imtis tam tikrų strategijų, pvz., perkrovos valdymo, srauto valdymo ir kt., kad užtikrintų patikimą duomenų perdavimą ir tinklo stabilumą.
Kompiuterių tinkluose duomenų perdavimas tarp pagrindinių kompiuterių atliekamas segmentų pagalba. Taigi, kas yra paketų segmentas?
TCP sukuria TCP segmentą arba paketų segmentą, padalijęs gaunamą srautą į dalis ir pridėdamas TCP antraštes prie kiekvienos dalies. Kiekvienas segmentas gali būti perduodamas tik ribotą laiką ir negali viršyti maksimalaus segmento dydžio (MSS). Pakeliui žemyn paketų segmentas praeina per ryšio sluoksnį. Ryšio sluoksnis turi maksimalų perdavimo vienetą (MTU), kuris yra maksimalus paketų dydis, galintis praeiti per duomenų ryšio sluoksnį. Maksimalus perdavimo vienetas paprastai yra susijęs su ryšio sąsaja.
Taigi, kuo skiriasi MSS ir MTU?
Kompiuterių tinkluose hierarchinė architektūra yra labai svarbi, nes ji atsižvelgia į skirtingų lygių skirtumus. Kiekvienas sluoksnis turi skirtingą pavadinimą; transportavimo sluoksnyje duomenys vadinami segmentu, o tinklo sluoksnyje – IP paketu. Todėl maksimalų perdavimo vienetą (MTU) galima laikyti maksimaliu IP paketo dydžiu, kurį gali perduoti tinklo sluoksnis, o maksimalų segmento dydį (MSS) – tai transportavimo sluoksnio sąvoka, nurodanti maksimalų duomenų kiekį, kurį vienu metu gali perduoti TCP paketas.
Atkreipkite dėmesį, kad kai maksimalus segmento dydis (MSS) yra didesnis nei maksimalus perdavimo vienetas (MTU), tinklo sluoksnyje bus atliekama IP fragmentacija, o TCP neskaidys didesnių duomenų į MTU dydžiui tinkamus segmentus. Tinklo sluoksnyje bus skirta IP sluoksniui skirta dalis.
TCP paketų segmentų struktūra
Panagrinėkime TCP antraščių formatą ir turinį.
Sekos numerisDuomenų perdavimo eilės numeris: Atsitiktinis skaičius, kurį kompiuteris sugeneruoja užmezgant ryšį ir kuris yra pradinė reikšmė užmezgant TCP ryšį, o sekos numeris siunčiamas gavėjui per SYN paketą. Duomenų perdavimo metu siuntėjas didina sekos numerį pagal išsiųstų duomenų kiekį. Imtuvas nustato duomenų tvarką pagal gautą sekos numerį. Jei duomenys nustatomi ne eilės tvarka, imtuvas juos pertvarko, kad užtikrintų tinkamą tvarką.
Patvirtinimo numerisTai sekos numeris, naudojamas TCP protokole duomenų gavimui patvirtinti. Jis nurodo kitų duomenų, kuriuos siuntėjas tikisi gauti, sekos numerį. TCP ryšyje imtuvas nustato, kurie duomenys buvo sėkmingai gauti, pagal gauto duomenų paketo segmento sekos numerį. Kai imtuvas sėkmingai gauna duomenis, jis siunčia siuntėjui ACK paketą, kuriame yra patvirtinimo numeris. Gavęs ACK paketą, siuntėjas gali patvirtinti, kad duomenys buvo sėkmingai gauti prieš patvirtindamas atsakymo numerį.
TCP segmento valdymo bitai apima:
ACK bitasKai šis bitas yra 1, tai reiškia, kad patvirtinimo atsakymo laukas yra galiojantis. TCP nurodo, kad šis bitas turi būti nustatytas į 1, išskyrus SYN paketus, kai iš pradžių užmezgamas ryšys.
RST bitasKai šis bitas yra 1, tai reiškia, kad TCP ryšyje yra išimtis ir ryšys turi būti priverstinai atjungtas.
SYN bitasKai šis bitas nustatytas į 1, tai reiškia, kad reikia užmegzti ryšį, o sekos numerio lauke nustatoma pradinė sekos numerio reikšmė.
FIN antgalisKai šis bitas yra 1, tai reiškia, kad ateityje daugiau duomenų nebus siunčiama ir ryšys yra pageidaujamas.
Įvairias TCP funkcijas ir charakteristikas įkūnija TCP paketų segmentų struktūra.
Kas yra UDP? („Mylinking“)Tinklo bakstelėjimasirTinklo paketų tarpininkasgalėtų apdoroti ir TCP, ir UDP paketus)
Vartotojo duomenų diagramos protokolas (UDP) yra be ryšio veikiantis ryšio protokolas. Palyginti su TCP, UDP nesuteikia sudėtingų valdymo mechanizmų. UDP protokolas leidžia programoms tiesiogiai siųsti įkapsuluotus IP paketus neužmezgant ryšio. Kai kūrėjas pasirenka naudoti UDP vietoj TCP, programa tiesiogiai bendrauja su IP adresu.
Pilnas UDP protokolo pavadinimas yra „User Datagram Protocol“, o jo antraštė yra tik aštuoni baitai (64 bitai), o tai labai glausta. UDP antraštės formatas yra toks:
Paskirties ir šaltinio uostaiJų pagrindinė paskirtis – nurodyti, kuriam procesui UDP turėtų siųsti paketus.
Paketo dydisPaketo dydžio lauke nurodomas UDP antraštės dydis ir duomenų dydis.
Kontrolinė sumaKontrolinė suma: skirta užtikrinti patikimą UDP antraščių ir duomenų perdavimą. Jos vaidmuo yra aptikti, ar perduodant UDP paketą įvyko klaida ar sugadinimas, siekiant užtikrinti duomenų vientisumą.
TCP ir UDP skirtumai „Mylinking“ sistemojeTinklo bakstelėjimasirTinklo paketų tarpininkasgalėtų apdoroti tiek TCP, tiek UDP paketus
TCP ir UDP skiriasi šiais aspektais:
RyšysTCP yra ryšio pagrindu veikiantis perdavimo protokolas, kuriam reikalingas ryšio užmezgimas prieš perduodant duomenis. Kita vertus, UDP nereikalauja ryšio ir gali perduoti duomenis nedelsiant.
Paslaugos objektasTCP yra „vienas su vienu“ dviejų taškų paslauga, t. y. ryšys turi tik du galinius taškus, skirtus bendrauti tarpusavyje. Tačiau UDP palaiko interaktyvų ryšį „vienas su vienu“, „vienas su daugeliu“ ir „daugelis su daugeliu“, kuris gali bendrauti su keliais pagrindiniais kompiuteriais vienu metu.
PatikimumasTCP teikia patikimo duomenų perdavimo paslaugą, užtikrindamas, kad duomenys būtų be klaidų, be nuostolių, be dublikatų ir pristatyti pagal pareikalavimą. Kita vertus, UDP deda visas pastangas ir negarantuoja patikimo pristatymo. UDP perdavimo metu gali būti prarasti duomenys ir kilti kitų problemų.
Spūsčių valdymas, srauto valdymasTCP protokolas turi perkrovos ir srauto valdymo mechanizmus, kurie gali reguliuoti duomenų perdavimo greitį pagal tinklo sąlygas, kad būtų užtikrintas duomenų perdavimo saugumas ir stabilumas. UDP protokolas neturi perkrovos ir srauto valdymo mechanizmų, todėl net ir labai perkrautas tinklas nekoregaus UDP siuntimo greičio.
Antraštės viršūnėTCP protokolas turi ilgą antraštės ilgį, paprastai 20 baitų, kuris padidėja, kai naudojami pasirinkimo laukai. Kita vertus, UDP protokolas turi fiksuotą antraštę, kuri yra tik 8 baitai, todėl UDP antraštės pridėtinės išlaidos yra mažesnės.
TCP ir UDP taikymo scenarijai:
TCP ir UDP yra du skirtingi transporto sluoksnio protokolai, ir jie turi tam tikrų skirtumų taikymo scenarijuose.
Kadangi TCP yra ryšio pagrindu veikiantis protokolas, jis daugiausia naudojamas tais atvejais, kai reikalingas patikimas duomenų perdavimas. Kai kurie dažniausiai naudojami atvejai:
FTP failų perdavimasTCP gali užtikrinti, kad perdavimo metu failai nebūtų prarasti ir sugadinti.
HTTP/HTTPSTCP užtikrina žiniatinklio turinio vientisumą ir teisingumą.
Kadangi UDP yra beribis protokolas, jis negarantuoja patikimumo, tačiau pasižymi efektyvumu ir veikimu realiuoju laiku. UDP tinka šiems atvejams:
Mažo paketo srautas, pvz., DNS (domenų vardų sistema)DNS užklausos paprastai yra trumpi paketai, o UDP gali jas įvykdyti greičiau.
Multimedijos komunikacija, pvz., vaizdo ir garsoUDP gali užtikrinti mažesnį delsos laiką multimedijos perdavimui, kai keliami aukšti realaus laiko reikalavimai, kad duomenys būtų perduoti laiku.
Transliuojamas ryšysUDP palaiko ryšį „vienas daugeliui“ ir „daugelis daugeliui“ ir gali būti naudojamas transliaciniams pranešimams perduoti.
Santrauka
Šiandien sužinojome apie TCP. TCP yra ryšiais pagrįstas, patikimas, baitų srautu pagrįstas transporto sluoksnio ryšio protokolas. Jis užtikrina patikimą duomenų perdavimą ir tvarkingą priėmimą užmezgant ryšį, pasisveikinant ir patvirtinant. TCP protokolas naudoja prievadus ryšiui tarp procesų įgyvendinti ir teikia tiesioginio ryšio paslaugas programų procesams, veikiantiems skirtinguose pagrindiniuose kompiuteriuose. TCP ryšiai yra pilno dvipusio ryšio, leidžiantys vienu metu dvikryptį duomenų perdavimą. Priešingai, UDP yra be ryšio pagrįstas ryšio protokolas, kuris nesuteikia patikimumo garantijų ir tinka kai kuriems scenarijams, kuriems keliami aukšti realaus laiko reikalavimai. TCP ir UDP skiriasi ryšio režimu, paslaugos objektu, patikimumu, perkrovos valdymu, srauto valdymu ir kitais aspektais, taip pat skiriasi jų taikymo scenarijai.
Įrašo laikas: 2024 m. gruodžio 3 d.