Hodiaŭ, ni komencos per fokuso sur TCP. Pli frue en la ĉapitro pri tavoligado, ni menciis gravan punkton. Ĉe la reta tavolo kaj sube, temas pli pri konektoj inter gastigantoj, kio signifas, ke via komputilo bezonas scii kie estas alia komputilo por konektiĝi al ĝi. Tamen, komunikado en reto ofte estas interproceza komunikado anstataŭ intermaŝina komunikado. Tial, la TCP-protokolo enkondukas la koncepton de haveno. Haveno povas esti okupita de nur unu procezo, kiu provizas rektan komunikadon inter aplikaĵaj procezoj funkciantaj sur malsamaj gastigantoj.
La tasko de la transporttavolo estas kiel provizi rektajn komunikajn servojn inter aplikaĵaj procezoj funkciantaj sur malsamaj gastigantoj, do ĝi ankaŭ estas konata kiel fin-al-fina protokolo. La transporttavolo kaŝas la kernajn detalojn de la reto, permesante al la aplikaĵa procezo vidi kvazaŭ ekzistus logika fin-al-fina komunikada kanalo inter la du transporttavolaj unuoj.
TCP signifas Transmission Control Protocol (Protokolo de Transmisia Kontrolo) kaj estas konata kiel konekt-orientita protokolo. Tio signifas, ke antaŭ ol unu aplikaĵo povas komenci sendi datumojn al la alia, la du procezoj devas fari manpremon. Manpremo estas logike konektita procezo, kiu certigas fidindan transdonon kaj bonordan ricevon de datumoj. Dum la manpremo, konekto estas establita inter la fonta kaj cela gastigantoj per interŝanĝo de serio da kontrolpakaĵetoj kaj konsento pri iuj parametroj kaj reguloj por certigi sukcesan datumtransdonon.
Kio estas TCP? (Mia ligiloReta FrapetokajReta Pakaĵa Perantopovus prilabori kaj TCP- aŭ UDP-pakaĵojn)
TCP (Transmission Control Protocol) estas konektorientita, fidinda, bajtflu-bazita transporttavola komunikprotokolo.
Konekto-orientitaKonekto-orientita signifas, ke TCP-komunikado estas unu-al-unu, tio estas, punkto-al-punkta fin-al-fina komunikado, male al UDP, kiu povas sendi mesaĝojn al pluraj gastigantoj samtempe, do unu-al-multaj komunikadoj ne povas esti atingitaj.
FidindaLa fidindeco de TCP certigas, ke pakaĵoj estas fidinde liverataj al la ricevilo sendepende de ŝanĝoj en la retligo, kio igas la protokolan pakaĵformaton de TCP pli kompleksa ol tiu de UDP.
Bajtofluo-bazitaLa bajtflu-bazita naturo de TCP ebligas la transdonon de mesaĝoj de ajna grandeco kaj garantias mesaĝordon: eĉ se la antaŭa mesaĝo ne estis plene ricevita, kaj eĉ se la postaj bajtoj estis ricevitaj, TCP ne transdonos ilin al la aplikaĵa tavolo por prilaborado kaj aŭtomate forigos duplikatajn pakaĵetojn.
Post kiam la gastiganto A kaj gastiganto B establis konekton, la aplikaĵo nur bezonas uzi la virtualan komunikadan linion por sendi kaj ricevi datumojn, tiel certigante datumtransdonon. La TCP-protokolo respondecas pri kontrolado de taskoj kiel konekt-establado, malkonektiĝo kaj tenado. Notindas, ke ĉi tie ni diras, ke la virtuala linio nur signifas establi konekton, la TCP-protokola konekto nur indikas, ke la du flankoj povas komenci datumtransdonon kaj certigi la fidindecon de la datumoj. La vojigaj kaj transportaj nodoj estas pritraktitaj de la retaj aparatoj; la TCP-protokolo mem ne zorgas pri ĉi tiuj detaloj.
TCP-konekto estas plen-dupleksa servo, kio signifas, ke gastiganto A kaj gastiganto B povas sendi datumojn en ambaŭ direktoj en TCP-konekto. Tio estas, datumoj povas esti transdonitaj inter gastiganto A kaj gastiganto B en dudirekta fluo.
TCP provizore stokas datumojn en la sendobufro de la konekto. Ĉi tiu sendobufro estas unu el la kaŝmemoroj starigitaj dum la tridirekta manpremo. Poste, TCP sendos la datumojn en la sendokaŝmemoro al la riceva kaŝmemoro de la cela gastiganto en la ĝusta tempo. En praktiko, ĉiu samtavolano havos sendokaŝmemoron kaj ricevan kaŝmemoron, kiel montrite ĉi tie:
La sendo-bufro estas areo de memoro konservata de la TCP-efektivigo ĉe la sendinto, kiu estas uzata por provizore stoki datumojn sendotajn. Kiam la tridirekta manpremo estas plenumata por establi konekton, la sendo-kaŝmemoro estas starigita kaj uzata por stoki datumojn. La sendo-bufro estas dinamike adaptita laŭ la retoŝtopiĝo kaj la respondo de la ricevilo.
Riceva bufro estas areo de memoro konservata de la TCP-efektivigo ĉe la ricevanta flanko, kiu estas uzata por provizore konservi ricevitajn datumojn. TCP konservas la ricevitajn datumojn en la riceva kaŝmemoro kaj atendas, ke la supra aplikaĵo legu ilin.
Notu, ke la grandeco de la senda kaj riceva kaŝmemoroj estas limigita. Kiam la kaŝmemoro estas plena, TCP povas adopti iujn strategiojn, kiel ekzemple obstrukciĝkontrolon, fluokontrolon, ktp., por certigi fidindan datumtransdonon kaj retstabilecon.
En komputilaj retoj, datumtransdono inter komputiloj efektiviĝas per segmentoj. Do kio estas pakaĵsegmento?
TCP kreas TCP-segmenton, aŭ pakaĵsegmenton, dividante la alvenantan fluon en blokojn kaj aldonante TCP-kapliniojn al ĉiu bloko. Ĉiu segmento povas esti sendita nur dum limigita tempo kaj ne povas superi la Maksimuman Segmentan Grandecon (MSS). Survoje malsupren, pakaĵsegmento pasas tra la ligtavolo. La ligtavolo havas Maksimuman Transmisian Unuon (MTU), kiu estas la maksimuma pakaĵgrandeco kiu povas pasi tra la datenliga tavolo. La maksimuma transmisia unuo kutime rilatas al la komunikada interfaco.
Do kio estas la diferenco inter MSS kaj MTU?
En komputilaj retoj, la hierarkia arkitekturo estas tre grava ĉar ĝi konsideras la diferencojn inter la diversaj niveloj. Ĉiu tavolo havas malsaman nomon; en la transporttavolo, la datumoj nomiĝas segmento, kaj en la retavolo, la datumoj nomiĝas IP-pakaĵeto. Tial, la Maksimuma Transmisia Unuo (MTU) povas esti konsiderata kiel la Maksimuma IP-pakaĵeta Grandeco, kiun povas transdoni la retavolo, dum la Maksimuma Segmenta Grandeco (MSS) estas transporttavola koncepto, kiu rilatas al la maksimuma kvanto da datumoj, kiujn povas transdoni TCP-pakaĵeto samtempe.
Notu, ke kiam la Maksimuma Segmenta Grandeco (MSS) estas pli granda ol la Maksimuma Transmisia Unuo (MTU), IP-fragmentiĝo estos farita ĉe la reta tavolo, kaj TCP ne dividos la pli grandajn datumojn en segmentojn taŭgajn por la MTU-grandeco. Estos sekcio sur la reta tavolo dediĉita al la IP-tavolo.
TCP-pakaĵsegmenta strukturo
Ni esploru la formaton kaj enhavon de TCP-kaplinioj.
SekvencnumeroHazarda nombro generita de la komputilo kiam la konekto estas establita kiel ĝia komenca valoro kiam la TCP-konekto estas establita, kaj la sekvencnumero estas sendita al la ricevilo per la SYN-pakaĵo. Dum datumtranssendo, la sendinto pliigas la sekvencnumeron laŭ la kvanto de senditaj datumoj. La ricevilo juĝas la ordon de la datumoj laŭ la ricevita sekvencnumero. Se la datumoj estas trovitaj malordaj, la ricevilo reordigos la datumojn por certigi la ordon de la datumoj.
Agnoska numeroĈi tiu estas sekvencnumero uzata en TCP por agnoski la ricevon de datumoj. Ĝi indikas la sekvencnumeron de la sekvaj datumoj, kiujn la sendinto atendas ricevi. En TCP-konekto, la ricevilo determinas, kiuj datumoj estis sukcese ricevitaj surbaze de la sekvencnumero de la ricevita datenpakaĵsegmento. Kiam la ricevilo sukcese ricevas la datumojn, ĝi sendas ACK-pakaĵon al la sendinto, kiu enhavas la agnosknumeron. Post ricevo de la ACK-pakaĵo, la sendinto povas konfirmi, ke la datumoj estis sukcese ricevitaj antaŭ ol agnoski la respondnumeron.
La kontrolbitoj de TCP-segmento inkluzivas la jenajn:
ACK-bitoKiam ĉi tiu bito estas 1, ĝi signifas, ke la kampo de respondo-konfirmo estas valida. TCP specifas, ke ĉi tiu bito devas esti agordita al 1 krom por SYN-pakaĵetoj kiam la konekto estas komence establita.
RST-pecoKiam ĉi tiu bito estas 1, ĝi indikas, ke ekzistas escepto en la TCP-konekto kaj la konekto devas esti devigita esti malkonektita.
SYN-bitoKiam ĉi tiu bito estas agordita al 1, ĝi signifas, ke la konekto estas establonta kaj la komenca valoro de la sekvencnumero estas agordita en la kampo por sekvencnumero.
FIN-pecoKiam ĉi tiu bito estas 1, ĝi signifas, ke neniuj pluaj datumoj estos senditaj estontece kaj la konekto estas dezirata.
La diversaj funkcioj kaj karakterizaĵoj de TCP estas enkorpigitaj per la strukturo de TCP-pakaĵsegmentoj.
Kio estas UDP? (Mia ligado)Reta FrapetokajReta Pakaĵa Perantopovus prilabori kaj TCP- aŭ UDP-pakaĵojn)
UDP (User Datagram Protocol) estas senkonekta komunikada protokolo. Kompare kun TCP, UDP ne provizas kompleksajn kontrolmekanismojn. La UDP-protokolo permesas al aplikaĵoj rekte sendi enkapsuligitajn IP-pakaĵetojn sen establi konekton. Kiam la programisto elektas uzi UDP anstataŭ TCP, la aplikaĵo komunikas rekte kun la IP-adreso.
La plena nomo de la UDP-Protokolo estas Uzanto-Datagrama Protokolo, kaj ĝia kaplinio estas nur ok bajtoj (64 bitoj), kio estas tre konciza. La formato de la UDP-kaplinio estas jena:
Celloko- kaj fonthavenojIlia ĉefa celo estas indiki al kiu procezo UDP sendu pakaĵetojn.
PakaĵgrandecoLa kampo "pakaĵa grandeco" enhavas la grandecon de la UDP-kaplinio plus la grandecon de la datumoj.
KontrolsumoCelante certigi fidindan liveradon de UDP-kaplinioj kaj datumoj. La rolo de la ĉeksumo estas detekti ĉu eraro aŭ korupto okazis dum la dissendo de UDP-pakaĵo por certigi la integrecon de la datumoj.
Diferencoj inter TCP kaj UDP en MylinkingReta FrapetokajReta Pakaĵa Perantopovus prilabori kaj TCP- aŭ UDP-pakaĵojn
TCP kaj UDP diferencas laŭ la jenaj aspektoj:
KonektoTCP estas konekt-orientita transportprotokolo, kiu postulas, ke konekto estu establita antaŭ ol datumoj povas esti transdonitaj. UDP, aliflanke, ne postulas konekton kaj povas transdoni datumojn tuj.
ServobjektoTCP estas unu-al-unu du-punkta servo, tio estas, konekto havas nur du finpunktojn por komuniki unu kun la alia. Tamen, UDP subtenas unu-al-unu, unu-al-multaj, kaj multaj-al-multaj interagan komunikadon, kiu povas komuniki kun pluraj gastigantoj samtempe.
FidindecoTCP provizas la servon de fidinda liverado de datumoj, certigante ke datumoj estas sen eraroj, sen perdoj, ne duobligitaj, kaj alvenas laŭpete. UDP, aliflanke, faras sian plej bonan klopodon kaj ne garantias fidindan liveradon. UDP povas suferi pro datenperdo kaj aliaj situacioj dum dissendo.
Obstrukciĝkontrolo, fluokontroloTCP havas mekanismojn por kontroli obstrukciĝon kaj flukontrolon, kiuj povas ĝustigi la datumtranssendorapidecon laŭ la retkondiĉoj por certigi la sekurecon kaj stabilecon de la datumtranssendo. UDP ne havas mekanismojn por kontroli obstrukciĝon kaj flukontrolon, eĉ se la reto estas tre obstrukcita, ĝi ne faros alĝustigojn al la UDP-sendorapideco.
KapkostoTCP havas longan kaplinion, tipe 20 bajtojn, kiu pligrandiĝas kiam opciaj kampoj estas uzataj. UDP, aliflanke, havas fiksan kaplinion de nur 8 bajtoj, do UDP havas pli malaltan kapliniokoston.
TCP kaj UDP Aplikaĵaj Scenaroj:
TCP kaj UDP estas du malsamaj transporttavolaj protokoloj, kaj ili havas kelkajn diferencojn en aplikaĵaj scenaroj.
Ĉar TCP estas konekt-orientita protokolo, ĝi estas ĉefe uzata en scenaroj kie fidinda datenliverado estas necesa. Jen kelkaj komunaj uzkazoj:
FTP-dosiertransigoTCP povas certigi, ke dosieroj ne perdiĝos kaj koruptiĝos dum translokigo.
HTTP/HTTPSTCP certigas la integrecon kaj korektecon de TTT-enhavo.
Ĉar UDP estas senkonekta protokolo, ĝi ne provizas fidindecan garantion, sed ĝi havas la karakterizaĵojn de efikeco kaj realtempa funkciado. UDP taŭgas por la jenaj scenaroj:
Malalt-pakaĵa trafiko, kiel ekzemple DNS (Domajna Nomsistemo)DNS-petoj estas kutime mallongaj pakaĵetoj, kaj UDP povas kompletigi ilin pli rapide.
Multmedia komunikado kiel ekzemple video kaj aŭdioPor multmedia dissendo kun altaj realtempaj postuloj, UDP povas provizi pli malaltan latentecon por certigi, ke datumoj povas esti senditaj ĝustatempe.
Elsenda komunikadoUDP subtenas unu-al-multajn kaj multajn-al-multajn komunikadojn kaj povas esti uzata por la dissendo de elsenditaj mesaĝoj.
Resumo
Hodiaŭ ni lernis pri TCP. TCP estas konektorientita, fidinda, bajtflua transporttavola komunikada protokolo. Ĝi certigas la fidindan transdonon kaj bonordan ricevon de datumoj per establado de konekto, manpremo kaj agnosko. La protokolo TCP uzas pordojn por realigi la komunikadon inter procezoj, kaj provizas rektajn komunikajn servojn por aplikaĵaj procezoj funkciantaj sur malsamaj gastigantoj. TCP-konektoj estas plen-dupleksaj, permesante samtempajn dudirektajn datumtransigojn. Kontraste, UDP estas senkonektorientita komunikada protokolo, kiu ne provizas fidindecajn garantiojn kaj taŭgas por iuj scenaroj kun altaj realtempaj postuloj. TCP kaj UDP malsamas laŭ konektoreĝimo, serva objekto, fidindeco, obstrukciĝokontrolo, fluokontrolo kaj aliaj aspektoj, kaj iliaj aplikaĵaj scenaroj ankaŭ malsamas.
Afiŝtempo: Dec-03-2024