Täna alustame TCP-le keskendumisest. Varem kihistamise peatükis mainisime olulist punkti. Võrgukihis ja sellest allpool on tegemist pigem host-host ühendustega, mis tähendab, et teie arvuti peab teadma, kus teine arvuti asub, et sellega ühenduse luua. Võrgusuhtlus on aga sageli pigem protsessidevaheline kui masinatevaheline suhtlus. Seetõttu tutvustab TCP protokoll pordi mõistet. Porti saab hõivata ainult üks protsess, mis tagab otsesuhtluse erinevatel hostidel töötavate rakendusprotsesside vahel.
Transpordikihi ülesanne on pakkuda otsesideteenuseid erinevatel hostidel töötavate rakendusprotsesside vahel, seega tuntakse seda ka otsast-otsa protokollina. Transpordikiht peidab võrgu põhiandmed, võimaldades rakendusprotsessil näha, nagu oleks kahe transpordikihi üksuse vahel loogiline otsast-otsa sidekanal.
TCP tähistab edastusjuhtimise protokolli ja on tuntud kui ühendusepõhine protokoll. See tähendab, et enne kui üks rakendus saab teisele andmeid saatma hakata, peavad need kaks protsessi tegema käepigistuse. Käepigistus on loogiliselt ühendatud protsess, mis tagab andmete usaldusväärse edastamise ja korrapärase vastuvõtmise. Käepigistuse ajal luuakse lähte- ja sihtmasina vahel ühendus, vahetades juhtpakette ja leppides kokku mõnedes parameetrites ja reeglites, et tagada edukas andmeedastus.
Mis on TCP? (Mylinking'sVõrgu puudutusjaVõrgupaketi vahendajasuudab töödelda nii TCP- kui ka UDP-pakette)
TCP (Transmission Control Protocol) on ühendusele orienteeritud, usaldusväärne, baitvoogudel põhinev transpordikihi sideprotokoll.
ÜhenduspõhineÜhenduspõhine tähendab, et TCP side on üks-ühele ehk punkt-punkti otsast-otsa side, erinevalt UDP-st, mis saab saata sõnumeid mitmele hostile korraga, seega üks-mitmele side saavutamine pole võimalik.
UsaldusväärneTCP usaldusväärsus tagab pakettide usaldusväärse kohaletoimetamise vastuvõtjale olenemata võrguühenduse muutustest, mis muudab TCP protokollipaketi vormingu keerukamaks kui UDP oma.
BaidivoopõhineTCP baidivoopõhine olemus võimaldab edastada mis tahes suurusega sõnumeid ja garanteerib sõnumite järjekorra: isegi kui eelmist sõnumit pole täielikult vastu võetud ja isegi kui järgmised baidid on vastu võetud, ei edasta TCP neid rakenduskihile töötlemiseks ja loobub automaatselt duplikaatpakettidest.
Kui host A ja host B on ühenduse loonud, peab rakendus andmete saatmiseks ja vastuvõtmiseks kasutama vaid virtuaalset sideliini, tagades seega andmeedastuse. TCP-protokoll vastutab selliste toimingute juhtimise eest nagu ühenduse loomine, katkestamine ja ootel hoidmine. Tuleb märkida, et siinkohal ütleme, et virtuaalne liin tähendab ainult ühenduse loomist, TCP-protokolli ühendus aga näitab ainult seda, et kaks poolt saavad alustada andmeedastust, ja andmete usaldusväärsuse tagamist. Marsruutimis- ja transpordisõlmede eest vastutavad võrguseadmed; TCP-protokoll ise nende üksikasjadega ei tegele.
TCP-ühendus on täisdupleksteenus, mis tähendab, et host A ja host B saavad TCP-ühenduse kaudu andmeid mõlemas suunas edastada. See tähendab, et andmeid saab hosti A ja hosti B vahel edastada kahesuunalises voos.
TCP salvestab andmeid ajutiselt ühenduse saatmispuhvrisse. See saatmispuhver on üks kolmepoolse käepigistuse ajal loodud vahemäludest. Seejärel saadab TCP saatmisvahemälus olevad andmed sobival ajal sihtmasina vastuvõtuvahemälusse. Praktikas on igal partneril saatmis- ja vastuvõtuvahemälu, nagu siin näidatud:
Saatmispuhver on saatja poolel TCP implementatsiooni poolt hallatav mäluala, mida kasutatakse saadetavate andmete ajutiseks salvestamiseks. Kui ühenduse loomiseks tehakse kolmepoolne käepigistus, seadistatakse saatmisvahemälu ja seda kasutatakse andmete salvestamiseks. Saatmispuhvrit reguleeritakse dünaamiliselt vastavalt võrgu ummikutele ja vastuvõtja tagasisidele.
Vastuvõtupuhver on TCP implementatsiooni poolt vastuvõtval poolel hallatav mäluala, mida kasutatakse vastuvõetud andmete ajutiseks salvestamiseks. TCP salvestab vastuvõetud andmed vastuvõtuvahemällu ja ootab, kuni ülemrakendus need loeb.
Pange tähele, et saatmis- ja vastuvõtuvahemälu suurus on piiratud. Kui vahemälu on täis, võib TCP usaldusväärse andmeedastuse ja võrgu stabiilsuse tagamiseks rakendada strateegiaid, näiteks ummikute kontrolli, voo juhtimist jne.
Arvutivõrkudes toimub andmeedastus hostide vahel segmentide abil. Mis on siis pakettsegment?
TCP loob TCP segmendi ehk paketisegmendi, jagades sissetuleva voo tükkideks ja lisades igale tükile TCP päised. Iga segmenti saab edastada ainult piiratud aja jooksul ja see ei tohi ületada segmendi maksimaalset suurust (MSS). Teel allapoole läbib paketisegment lingikihi. Lingikihil on maksimaalne edastusühik (MTU), mis on maksimaalne paketi suurus, mis saab läbida andmesidekihi. Maksimaalne edastusühik on tavaliselt seotud sideliidesega.
Mis vahe on siis MSS-il ja MTU-l?
Arvutivõrkudes on hierarhiline arhitektuur väga oluline, kuna see võtab arvesse eri tasemete erinevusi. Igal kihil on erinev nimi; transpordikihis nimetatakse andmeid segmendiks ja võrgukihis IP-paketiks. Seega võib maksimaalset edastusühikut (MTU) pidada võrgukihi poolt edastatava maksimaalse IP-paketi suuruseks, samas kui maksimaalne segmendi suurus (MSS) on transpordikihi mõiste, mis viitab maksimaalsele andmemahule, mida TCP-pakett saab korraga edastada.
Pane tähele, et kui maksimaalne segmendi suurus (MSS) on suurem kui maksimaalne edastusühik (MTU), siis IP fragmenteerimine toimub võrgukihis ja TCP ei jaga suuremaid andmeid MTU suurusele sobivateks segmentideks. Võrgukihis on IP-kihile pühendatud sektsioon.
TCP paketi segmendi struktuur
Uurime TCP päiste vormingut ja sisu.
Järjekorranumber: Arvuti poolt ühenduse loomisel genereeritud juhuslik arv, mis on selle algväärtus TCP-ühenduse loomisel, ja järjekorranumber saadetakse vastuvõtjale SYN-paketi kaudu. Andmeedastuse ajal suurendab saatja järjekorranumbrit vastavalt saadetud andmete hulgale. Vastuvõtja hindab andmete järjestust vastavalt vastuvõetud järjekorranumbrile. Kui andmed on järjekorrast kõrvale kaldunud, järjestab vastuvõtja andmed ümber, et tagada andmete järjestus.
Kinnitusnumber: See on järjekorranumber, mida TCP-s kasutatakse andmete vastuvõtmise kinnitamiseks. See näitab järgmiste andmete järjekorranumbrit, mida saatja ootab. TCP-ühenduses määrab vastuvõtja vastuvõetud andmepaketi segmendi järjekorranumbri põhjal, millised andmed on edukalt vastu võetud. Kui vastuvõtja andmed edukalt vastu võtab, saadab ta saatjale ACK-paketi, mis sisaldab kinnituse kinnitusnumbrit. Pärast ACK-paketi vastuvõtmist saab saatja enne vastusenumbri kinnitamist kinnitada, et andmed on edukalt vastu võetud.
TCP segmendi juhtbitid sisaldavad järgmist:
ACK-bittKui see bitt on 1, tähendab see, et kinnitusvastuse väli on kehtiv. TCP määrab, et see bitt peab olema seatud väärtusele 1, välja arvatud SYN-pakettide puhul, kui ühendus algselt luuakse.
RST-bittKui see bitt on 1, näitab see, et TCP-ühenduses on erand ja ühendus tuleb sunniviisiliselt katkestada.
SYN-bitt: Kui see bitt on seatud väärtusele 1, tähendab see, et ühendus luuakse ja järjekorranumbri väljale on määratud järjekorranumbri algväärtus.
FIN-bitt: Kui see bitt on 1, tähendab see, et tulevikus enam andmeid ei saadeta ja ühendust soovitakse.
TCP erinevad funktsioonid ja omadused on kehastatud TCP pakettide segmentide struktuuris.
Mis on UDP? (MylinkinguVõrgu puudutusjaVõrgupaketi vahendaja(võib töödelda nii TCP kui ka UDP pakette)
Kasutajadatagrammi protokoll (UDP) on ühenduseta sideprotokoll. Võrreldes TCP-ga ei paku UDP keerukaid juhtimismehhanisme. UDP protokoll võimaldab rakendustel otse saata kapseldatud IP-pakette ilma ühendust loomata. Kui arendaja otsustab TCP asemel kasutada UDP-d, suhtleb rakendus otse IP-aadressiga.
UDP protokolli täisnimi on User Datagram Protocol ja selle päis on vaid kaheksa baiti (64 bitti), mis on väga kokkuvõtlik. UDP päise vorming on järgmine:
Sihtkoha ja lähtekoha sadamadNende peamine eesmärk on näidata, millisele protsessile peaks UDP pakette saatma.
Paketi suurusPaketi suuruse väli sisaldab UDP päise suurust ja andmete suurust.
KontrollsummaKontrollsumma ülesanne on tuvastada, kas UDP paketi edastamisel on tekkinud viga või rikkumine, et tagada andmete terviklikkus.
TCP ja UDP erinevused MyLinkingisVõrgu puudutusjaVõrgupaketi vahendajasuudab töödelda nii TCP- kui ka UDP-pakette
TCP ja UDP erinevad järgmistes aspektides:
ÜhendusTCP on ühendusepõhine transpordiprotokoll, mis nõuab enne andmete edastamist ühenduse loomist. UDP seevastu ei vaja ühendust ja saab andmeid kohe edastada.
TeenuseobjektTCP on üks-ühele-kahepunkti teenus, see tähendab, et ühendusel on omavahel suhtlemiseks ainult kaks lõpp-punkti. UDP toetab aga üks-ühele, üks-mitmele ja mitu-mitmele interaktiivset suhtlust, mis võimaldab samaaegselt suhelda mitme hostiga.
UsaldusväärsusTCP pakub andmete usaldusväärset edastamise teenust, tagades, et andmed on veatud, kadudeta, dubleerivate koopiateta ja saabuvad nõudmisel. UDP seevastu teeb kõik endast oleneva ega garanteeri usaldusväärset edastust. UDP võib edastamise ajal kannatada andmete kadumise ja muude olukordade all.
Ummikute kontroll, vooluhulga kontrollTCP-l on ülekoormuse ja voo juhtimise mehhanismid, mis suudavad andmeedastuskiirust vastavalt võrgu tingimustele reguleerida, et tagada andmeedastuse turvalisus ja stabiilsus. UDP-l puuduvad ülekoormuse ja voo juhtimise mehhanismid, seega isegi väga ülekoormatud võrgu korral ei kohandata UDP saatmiskiirust.
Päise üldkuluTCP-l on pikk päise pikkus, tavaliselt 20 baiti, mis suureneb valikuväljade kasutamisel. UDP-l seevastu on fikseeritud päis, ainult 8 baiti, seega on UDP-l madalam päise üldkulu.
TCP ja UDP rakenduste stsenaariumid:
TCP ja UDP on kaks erinevat transpordikihi protokolli ning neil on rakendusstsenaariumides mõningaid erinevusi.
Kuna TCP on ühendusepõhine protokoll, kasutatakse seda peamiselt olukordades, kus on vaja usaldusväärset andmete edastamist. Mõned levinud kasutusjuhud on järgmised:
FTP-failiedastusTCP suudab tagada, et failid edastamise ajal kaotsi ei läheks ega rikutuks.
HTTP/HTTPSTCP tagab veebisisu terviklikkuse ja õigsuse.
Kuna UDP on ühenduseta protokoll, ei paku see usaldusväärsuse garantiid, kuid sellel on efektiivsuse ja reaalajas toimimise omadused. UDP sobib järgmisteks stsenaariumideks:
Madala paketimahuga liiklus, näiteks DNS (domeeninimede süsteem)DNS-päringud on tavaliselt lühikesed paketid ja UDP suudab neid kiiremini täita.
Multimeediakommunikatsioon, näiteks video ja heliReaalajas kõrgete nõuetega multimeediaedastuseks pakub UDP madalamat latentsusaega, et tagada andmete õigeaegne edastamine.
Ringhäälingu sideUDP toetab üks-mitmele ja paljude-mitmele suhtlust ning seda saab kasutada leviedastussõnumite edastamiseks.
Kokkuvõte
Täna õppisime TCP-d. TCP on ühendusepõhine, usaldusväärne ja baidivoogudel põhinev transpordikihi sideprotokoll. See tagab andmete usaldusväärse edastamise ja korrapärase vastuvõtmise ühenduse loomise, käepigistuse ja kinnituse abil. TCP protokoll kasutab protsessidevahelise suhtluse teostamiseks porte ja pakub otsesideteenuseid rakendusprotsessidele, mis töötavad erinevatel hostidel. TCP-ühendused on täisdupleksühendused, võimaldades samaaegset kahesuunalist andmeedastust. UDP seevastu on ühenduseta sideprotokoll, mis ei paku usaldusväärsuse garantiisid ja sobib teatud stsenaariumide jaoks, kus on kõrged reaalajas nõuded. TCP ja UDP erinevad ühendusrežiimi, teenuseobjekti, usaldusväärsuse, ummikute juhtimise, voo juhtimise ja muude aspektide poolest ning ka nende rakendusstsenaariumid on erinevad.
Postituse aeg: 03. dets 2024