Hodiaŭ ni komencos per fokuso sur TCP. Pli frue en la ĉapitro pri manteloj, ni menciis gravan punkton. Ĉe la reto -tavolo kaj sube temas pli pri gastigantoj al gastigaj ligoj, kio signifas, ke via komputilo bezonas scii, kie alia komputilo estas por konekti ĝin. Tamen, komunikado en reto ofte estas interprocesa komunikado anstataŭ intermaŝina komunikado. Tial TCP -protokolo enkondukas la koncepton de haveno. Haveno povas esti okupita per nur unu procezo, kiu provizas rektan komunikadon inter aplikaj procezoj funkciantaj sur malsamaj gastigantoj.
La tasko de la transporta tavolo estas kiel provizi rektajn komunikajn servojn inter aplikaj procezoj funkciantaj sur malsamaj gastigantoj, do ĝi ankaŭ estas konata kiel fino-al-fina protokolo. La transporta tavolo kaŝas la kernajn detalojn de la reto, permesante al la aplika procezo vidi kvazaŭ logika fino-al-fina komunikada kanalo inter la du transportaj tavolaj entoj.
TCP staras por protokolo pri transdono-kontrolo kaj estas konata kiel ligo-orientita protokolo. Ĉi tio signifas, ke antaŭ ol unu aplikaĵo povas komenci sendi datumojn al la alia, la du procezoj devas fari manplaton. Handshake estas logike konektita procezo, kiu certigas fidindan transdonon kaj ordan ricevon de datumoj. Dum la manplato, rilato estas establita inter la fontaj kaj cellokaj gastigantoj interŝanĝante serion de kontrolpakaĵoj kaj konsentante pri iuj parametroj kaj reguloj por certigi sukcesan transdonon de datumoj.
Kio estas TCP? (MylinkingReto FrapetoKajReto -paka makleristopovus prilabori ambaŭ TCP aŭ UDP -pakaĵojn)
TCP (Transdona Kontrolo-Protokolo) estas rilata orientita, fidinda, bajto-rivereta transporta tavolo-komunikada protokolo.
Konekto-orientita: Konekto-orientita signifas, ke TCP-komunikado estas unu-al-unu, tio estas, punkto-al-punkto-al-fina komunikado, male al UDP, kiu povas sendi mesaĝojn al multnombraj gastigantoj samtempe, do unu-al-multaj komunikadoj ne povas esti atingitaj.
Fidinda: La fidindeco de TCP certigas, ke pakaĵoj estas liveritaj fidinde al la ricevilo sendepende de ŝanĝoj en la reto -ligo, kio faras la protokolan paketan formaton de TCP pli kompleksa ol tiu de UDP.
Byte-Stream-bazita: La bajt-riveret-bazita naturo de TCP permesas la transdonon de mesaĝoj de iu ajn grandeco kaj garantias mesaĝan mendon: Eĉ se la antaŭa mesaĝo ne estis plene ricevita, kaj eĉ se la postaj bajtoj ricevis, TCP ne liveros ilin al la aplika tavolo por prilaborado kaj aŭtomate faligos duplikatajn pakaĵojn.
Post kiam gastiganto A kaj gastiganto B establis rilaton, la aplikaĵo nur bezonas uzi la virtualan komunikan linion por sendi kaj ricevi datumojn, tiel certigante transdonon de datumoj. La TCP -protokolo respondecas pri kontrolado de taskoj kiel konekto -establado, malkonekto kaj tenado. Oni devas rimarki, ke ĉi tie ni diras, ke la virtuala linio nur signifas establi rilaton, TCP -protokola konekto nur indikas, ke la du flankoj povas komenci datumtransdonadon kaj certigi la fidindecon de la datumoj. La retaj aparatoj estas pritraktitaj de la retaj aparatoj; La TCP -protokolo mem ne koncernas ĉi tiujn detalojn.
TCP-konekto estas plen-dupleksa servo, kio signifas, ke gastiganto A kaj gastiganto B povas transdoni datumojn en ambaŭ direktoj en TCP-konekto. Tio estas, datumoj povas esti translokigitaj inter gastiganto A kaj gastiganto B en dudirekta fluo.
TCP provizore stokas datumojn en la senda bufro de la konekto. Ĉi tiu senda bufro estas unu el la kaŝmemoroj starigitaj dum la triflanka manplato. Poste, TCP sendos la datumojn en la send -kaŝmemoron al la riceva kaŝmemoro de la celloko -gastiganto en la taŭga tempo. Praktike, ĉiu samulo havos sendi kaŝmemoron kaj ricevitan kaŝmemoron, kiel montras ĉi tie:
La send -bufro estas areo de memoro konservita de la TCP -efektivigo sur la senda flanko uzata por provizore stoki datumojn por esti senditaj. Kiam la tri-mana manplato estas farita por establi rilaton, la senda kaŝmemoro estas agordita kaj uzata por stoki datumojn. La senda bufro estas dinamike ĝustigita laŭ reta kongesto kaj retrosciigo de la ricevilo.
Riceva bufro estas areo de memoro konservita de la TCP -efektivigo sur la riceva flanko, kiu estas uzata por provizore stoki ricevitajn datumojn. TCP stokas la ricevitajn datumojn en la riceva kaŝmemoro kaj atendas la supran aplikon legi ĝin.
Notu, ke la grandeco de senda kaŝmemoro kaj ricevi kaŝmemoron estas limigita, kiam la kaŝmemoro estas plena, TCP povas adopti iujn strategiojn, kiel kontrolo de kongesto, fluo -kontrolo, ktp., Por certigi fidindan datumtransmision kaj retan stabilecon.
En komputilaj retoj, datuma transdono inter gastigantoj efektiviĝas per segmentoj. Kio do estas paka segmento?
TCP kreas TCP -segmenton, aŭ paketan segmenton, dividante la envenantan rivereton en pecojn kaj aldonante TCP -kaplokojn al ĉiu peceto. Ĉiu segmento nur povas esti transdonita dum limigita tempo kaj ne povas superi la maksimuman segmentan grandecon (MSS). Sur sia vojo malsupren, paka segmento trapasas la ligan tavolon. La liga tavolo havas maksimuman transdonan unuon (MTU), kiu estas la maksimuma paka grandeco, kiu povas trapasi la datuman ligan tavolon. La maksimuma transdona unuo kutime rilatas al la komunikinterfaco.
Kio do estas la diferenco inter MSS kaj MTU?
En komputilaj retoj, la hierarkia arkitekturo estas tre grava, ĉar ĝi konsideras la diferencojn inter la malsamaj niveloj. Ĉiu tavolo havas malsaman nomon; En la transporta tavolo, la datumoj estas nomataj segmento, kaj en la reto -tavolo, la datumoj nomiĝas IP -pakaĵo. Tial, la maksimuma transdona unuo (MTU) povas esti konsiderata kiel la maksimuma IP -paka grandeco, kiu povas esti transdonita de la reta tavolo, dum la maksimuma segmenta grandeco (MSS) estas transporta tavolo -koncepto, kiu rilatas al la maksimuma kvanto de datumoj, kiuj povas esti transdonitaj de TCP -pakaĵo samtempe.
Notu, ke kiam la maksimuma segmenta grandeco (MSS) estas pli granda ol la maksimuma transdona unuo (MTU), IP -fragmentiĝo estos farita ĉe la reto -tavolo, kaj TCP ne dividos la pli grandajn datumojn en segmentojn taŭgajn por MTU -grandeco. Estos sekcio en la reta tavolo dediĉita al la IP -tavolo.
TCP -paka segmenta strukturo
Ni esploru la formaton kaj enhavon de TCP -titoloj.
Sekvenca numero: Hazarda nombro generita de la komputilo kiam la konekto estas establita kiel ĝia komenca valoro kiam la TCP -konekto estas establita, kaj la sekvenca nombro estas sendita al la ricevilo tra la SYN -pakaĵo. Dum transdono de datumoj, la sendanto pliigas la sekvencan numeron laŭ la kvanto da datumoj senditaj. La ricevilo juĝas la ordon de la datumoj laŭ la ricevita sekvenca numero. Se la datumoj estas trovitaj de ordo, la ricevilo reordigos la datumojn por certigi la ordon de la datumoj.
Agnosko -Numero: Ĉi tio estas sekvenca nombro uzata en TCP por agnoski la ricevon de datumoj. Ĝi indikas la sekvencan numeron de la sekvaj datumoj, kiujn la sendanto atendas ricevi. En TCP -konekto, la ricevilo determinas kiuj datumoj estis sukcese ricevitaj surbaze de la sekvenca nombro de la ricevita datumpakaĵo. Kiam la ricevilo sukcese ricevas la datumojn, ĝi sendas ACK -pakaĵon al la sendanto, kiu enhavas la agnoskan agnoskon. Post ricevado de la ACK -pakaĵo, la sendanto povas konfirmi, ke la datumoj antaŭ agnoski la respondan numeron estis sukcese ricevitaj.
La kontrolaj bitoj de TCP -segmento inkluzivas jenajn:
Ack bit: Kiam ĉi tiu bito estas 1, tio signifas, ke la kampo de agnosko validas. TCP specifas, ke ĉi tiu bito devas esti agordita al 1 krom por SYN -pakaĵoj kiam la rilato estas komence establita.
Unua iom: Kiam ĉi tiu bito estas 1, ĝi indikas, ke estas escepto en la TCP -konekto kaj la rilato devas esti devigita esti malkonektita.
Syn Bit: Kiam ĉi tiu bito estas agordita al 1, ĝi signifas, ke la konekto devas esti establita kaj la komenca valoro de la sekvenca nombro estas agordita en la kampo de sekvenca nombro.
Fin Bito: Kiam ĉi tiu bito estas 1, tio signifas, ke ne plu estos senditaj datumoj en la estonteco kaj la rilato estos dezirata.
La diversaj funkcioj kaj karakterizaĵoj de TCP estas enkorpigitaj per la strukturo de TCP -paketaj segmentoj.
Kio estas UDP? (MylinkingReto FrapetoKajReto -paka makleristopovus prilabori ambaŭ TCP aŭ UDP -pakaĵojn)
Uzanto Datagram Protokolo (UDP) estas senkonekta komunikada protokolo. Kompare kun TCP, UDP ne provizas kompleksajn kontrolajn mekanismojn. La UDP -protokolo permesas al aplikoj sendi rekte enkapsuligitajn IP -pakaĵojn sen establi rilaton. Kiam la programisto elektas uzi UDP anstataŭ TCP, la aplikaĵo komunikas rekte kun la IP.
La plena nomo de la UDP -protokolo estas uzanto Datagram -protokolo, kaj ĝia kaplinio estas nur ok bajtoj (64 bitoj), kio estas tre konciza. La formato de la UDP -kaplinio estas kiel sekvas:
Celloko kaj fontaj havenoj: Ilia ĉefa celo estas indiki al kiu procezo UDP devas sendi pakaĵojn.
Paka grandeco: La kampo de paka grandeco tenas la grandecon de la UDP -kaplinio plus la grandeco de la datumoj
Checksum: Desegnita por certigi fidindan liveradon de UDP -titoloj kaj datumoj La rolo de la ĉeko estas detekti ĉu eraro aŭ korupteco okazis dum la transdono de UDP -pakaĵo por certigi la integrecon de la datumoj.
Diferencoj inter TCP kaj UDP en MyLinkingReto FrapetoKajReto -paka makleristopovus prilabori ambaŭ TCP aŭ UDP -pakaĵojn
TCP kaj UDP estas malsamaj en la sekvaj aspektoj:
Konekto: TCP estas ligo-orientita transporta protokolo, kiu postulas ke konekto estu establita antaŭ ol datumoj povas esti translokigitaj. UDP, aliflanke, ne bezonas rilaton kaj povas translokigi datumojn tuj.
Serva objekto: TCP estas unu-al-unu-du-punkta servo, tio estas rilato havas nur du finpunktojn por komuniki unu kun la alia. Tamen, UDP subtenas unu-al-unu, unu-al-multajn, kaj multajn-al-multajn interagajn komunikadojn, kiuj povas komuniki kun multnombraj gastigantoj samtempe.
Fidindeco: TCP disponigas la servon de liverado de datumoj fidinde, certigante, ke datumoj estas sen eraro, sendo-sendo, ne-duplikataj kaj alvenas laŭ peto. UDP, aliflanke, faras sian plej bonan penadon kaj ne garantias fidindan liveradon. UDP eble suferos de datumperdo kaj aliaj situacioj dum transdono.
Kontrolo de kongesto, fluo -kontrolo: TCP havas kongestajn kontrolajn kaj fluajn kontrolajn mekanismojn, kiuj povas ĝustigi la datumtransmision laŭ la retaj kondiĉoj por certigi la sekurecon kaj stabilecon de transdono de datumoj. UDP ne havas kongestokontrolon kaj fluajn kontrolajn mekanismojn, eĉ se la reto estas tre kongestita, ĝi ne faros alĝustigojn al la sendanta indico de UDP.
Kaplinio Supra: TCP havas longan kaplinian longon, tipe 20 bajtojn, kio pliiĝas kiam opciaj kampoj estas uzataj. UDP, aliflanke, havas fiksan kaplinion de nur 8 bajtoj, do UDP havas pli malaltan kaplinion.
TCP kaj UDP -Aplikaj Scenaroj:
TCP kaj UDP estas du malsamaj transportaj tavolaj protokoloj, kaj ili havas iujn diferencojn en aplikaj scenoj.
Ĉar TCP estas rilata-orientita protokolo, ĝi estas ĉefe uzata en scenaroj, kie necesas fidindaj datumaj liveraĵoj. Iuj oftaj uzokazoj inkluzivas:
FTP -dosiera translokigo: TCP povas certigi, ke dosieroj ne perdiĝas kaj koruptas dum translokado.
Http/https: TCP certigas la integrecon kaj korektecon de retejo -enhavo.
Ĉar UDP estas senkonekta protokolo, ĝi ne donas fidindan garantion, sed ĝi havas la karakterizaĵojn de efikeco kaj reala tempo. UDP taŭgas por la jenaj scenaroj:
Malalt-paka trafiko, kiel DNS (Domajna Nomo-Sistemo): DNS -konsultoj estas kutime mallongaj pakaĵoj, kaj UDP povas kompletigi ilin pli rapide.
Multmedia komunikado kiel filmetoj kaj audio: Por plurmedia transdono kun altaj realtempaj postuloj, UDP povas provizi pli malaltan latentecon por certigi, ke datumoj povas esti transdonitaj ĝustatempe.
Elsenda komunikado: UDP subtenas unu-al-multajn kaj multajn-al-multajn komunikadojn kaj uzeblas por transdono de elsendaj mesaĝoj.
Resumo
Hodiaŭ ni eksciis pri TCP. TCP estas rilato orientita, fidinda, bajto-rivereta transporta tavolo-komunikada protokolo. Ĝi certigas la fidindan transdonan kaj ordan ricevon de datumoj starigante ligon, manplaton kaj agnoskon. TCP -protokolo uzas havenojn por realigi la komunikadon inter procezoj, kaj provizas rektajn komunikajn servojn por aplikaj procezoj funkciantaj sur malsamaj gastigantoj. TCP-ligoj estas plen-dupleksaj, permesante samtempajn bidirektajn datumajn translokigojn. En kontrasto, UDP estas senkonstrua orientita komunikada protokolo, kiu ne donas fidindajn garantiojn kaj taŭgas por iuj scenaroj kun altaj realtempaj postuloj. TCP kaj UDP estas malsamaj en konekta reĝimo, servo -objekto, fidindeco, kongesta kontrolo, fluo -kontrolo kaj aliaj aspektoj, kaj iliaj aplikaj scenoj ankaŭ estas malsamaj.
Afiŝotempo: Dec-03-2024