Šodien mēs sāksim, pievēršoties TCP. Iepriekš nodaļā par slāņošanu mēs pieminējām svarīgu punktu. Tīkla slānī un tālāk tas vairāk attiecas uz resursdatora un resursdatora savienojumiem, kas nozīmē, ka jūsu datoram ir jāzina, kur atrodas cits dators, lai izveidotu savienojumu ar to. Tomēr saziņa tīklā bieži vien ir starpprocesu saziņa, nevis starpmašīnu saziņa. Tāpēc TCP protokols ievieš porta jēdzienu. Portu var aizņemt tikai viens process, kas nodrošina tiešu saziņu starp lietojumprogrammu procesiem, kas darbojas dažādos resursdatoros.
Transporta slāņa uzdevums ir nodrošināt tiešus saziņas pakalpojumus starp lietojumprogrammu procesiem, kas darbojas dažādos resursdatoros, tāpēc to sauc arī par pilnīgu protokolu. Transporta slānis slēpj tīkla pamatinformāciju, ļaujot lietojumprogrammu procesam redzēt, ka starp divām transporta slāņa entītijām pastāv loģisks pilnīgas saziņas kanāls.
TCP apzīmē pārraides vadības protokolu un ir pazīstams kā savienojumam orientēts protokols. Tas nozīmē, ka pirms viena lietojumprogramma var sākt sūtīt datus otrai, abiem procesiem ir jāveic apmaiņa. Apmaiņa ir loģiski saistīts process, kas nodrošina uzticamu datu pārraidi un sakārtotu saņemšanu. Apmaiņas laikā tiek izveidots savienojums starp avota un mērķa resursdatoriem, apmainoties ar virkni vadības pakešu un vienojoties par dažiem parametriem un noteikumiem, lai nodrošinātu veiksmīgu datu pārraidi.
Kas ir TCP? (Mylinking'sTīkla pieskāriensunTīkla pakešu brokerisvarēja apstrādāt gan TCP, gan UDP paketes)
TCP (Transmission Control Protocol) ir uz savienojumiem orientēts, uzticams, uz baitu plūsmu balstīts transporta slāņa komunikācijas protokols.
Savienojuma orientētsSavienojuma orientēts nozīmē, ka TCP komunikācija ir viens pret vienu, tas ir, no punkta uz punktu no gala līdz galam komunikācija, atšķirībā no UDP, kas var sūtīt ziņojumus vairākiem resursdatoriem vienlaikus, tāpēc nevar panākt viens pret daudziem komunikāciju.
UzticamsTCP uzticamība nodrošina, ka paketes tiek droši piegādātas saņēmējam neatkarīgi no izmaiņām tīkla saitē, kas padara TCP protokola pakešu formātu sarežģītāku nekā UDP.
Baitu plūsmas bāzesTCP protokola baitplūsmas būtība ļauj pārraidīt jebkura izmēra ziņojumus un garantē ziņojumu secību: pat ja iepriekšējais ziņojums nav pilnībā saņemts un pat ja nākamie baiti ir saņemti, TCP tos nepiegādās lietojumprogrammu slānim apstrādei un automātiski atmetīs dublētās paketes.
Kad resursdators A un resursdators B ir izveidojuši savienojumu, lietojumprogrammai datu nosūtīšanai un saņemšanai ir jāizmanto tikai virtuālā sakaru līnija, tādējādi nodrošinot datu pārraidi. TCP protokols ir atbildīgs par tādu uzdevumu kā savienojuma izveides, atvienošanas un turēšanas kontroli. Jāatzīmē, ka šeit mēs sakām, ka virtuālā līnija nozīmē tikai savienojuma izveidi, TCP protokola savienojums norāda tikai to, ka abas puses var sākt datu pārraidi, un lai nodrošinātu datu uzticamību. Maršrutēšanas un transporta mezglus apstrādā tīkla ierīces; pats TCP protokols par šīm detaļām nerūp.
TCP savienojums ir pilna dupleksa pakalpojums, kas nozīmē, ka resursdators A un resursdators B var pārraidīt datus abos virzienos TCP savienojumā. Tas nozīmē, ka datus var pārsūtīt starp resursdatoru A un resursdatoru B divvirzienu plūsmā.
TCP īslaicīgi saglabā datus savienojuma sūtīšanas buferī. Šis sūtīšanas buferis ir viena no kešatmiņām, kas tiek iestatīta trīspusējas saziņas laikā. Pēc tam TCP nosūtīs datus no sūtīšanas kešatmiņas uz mērķa resursdatora saņemšanas kešatmiņu atbilstošā laikā. Praksē katram partnerim būs sūtīšanas kešatmiņa un saņemšanas kešatmiņa, kā parādīts šeit:
Sūtīšanas buferis ir atmiņas apgabals, ko uztur TCP ieviešana sūtītāja pusē un kas tiek izmantots nosūtāmo datu īslaicīgai glabāšanai. Kad tiek veikta trīspusēja saziņa, lai izveidotu savienojumu, tiek iestatīta sūtīšanas kešatmiņa un izmantota datu glabāšanai. Sūtīšanas buferis tiek dinamiski pielāgots atbilstoši tīkla noslodzei un saņēmēja atsauksmēm.
Saņemšanas buferis ir atmiņas apgabals, ko uztur TCP ieviešana saņēmēja pusē un kas tiek izmantots saņemto datu īslaicīgai glabāšanai. TCP saglabā saņemtos datus saņemšanas kešatmiņā un gaida, kamēr augšējā lietojumprogramma tos nolasīs.
Ņemiet vērā, ka sūtīšanas un saņemšanas kešatmiņas lielums ir ierobežots, un, kad kešatmiņa ir pilna, TCP var izmantot dažādas stratēģijas, piemēram, sastrēgumu kontroli, plūsmas kontroli utt., lai nodrošinātu uzticamu datu pārraidi un tīkla stabilitāti.
Datortīklos datu pārraide starp resursdatoriem tiek veikta, izmantojot segmentus. Tātad, kas ir pakešu segments?
TCP izveido TCP segmentu jeb pakešu segmentu, sadalot ienākošo plūsmu fragmentos un pievienojot katram fragmentam TCP galvenes. Katru segmentu var pārraidīt tikai ierobežotu laiku un tas nedrīkst pārsniegt maksimālo segmenta izmēru (MSS). Pa ceļam uz leju pakešu segments iziet cauri saites slānim. Saites slānim ir maksimālā pārraides vienība (MTU), kas ir maksimālais pakešu izmērs, ko var iziet cauri datu saites slānim. Maksimālā pārraides vienība parasti ir saistīta ar komunikācijas saskarni.
Tātad, kāda ir atšķirība starp MSS un MTU?
Datortīklos hierarhiskā arhitektūra ir ļoti svarīga, jo tā ņem vērā atšķirības starp dažādiem līmeņiem. Katram slānim ir atšķirīgs nosaukums; transporta slānī datus sauc par segmentu, bet tīkla slānī datus sauc par IP paketi. Tāpēc maksimālo pārraides vienību (MTU) var uzskatīt par maksimālo IP paketes izmēru, ko var pārraidīt tīkla slānis, savukārt maksimālais segmenta izmērs (MSS) ir transporta slāņa jēdziens, kas attiecas uz maksimālo datu apjomu, ko vienlaikus var pārraidīt TCP pakete.
Ņemiet vērā, ka, ja maksimālais segmenta izmērs (MSS) ir lielāks par maksimālo pārraides vienību (MTU), tīkla slānī tiks veikta IP fragmentācija, un TCP nesadalīs lielākos datus segmentos, kas piemēroti MTU izmēram. Tīkla slānī būs sadaļa, kas veltīta IP slānim.
TCP pakešu segmentu struktūra
Izpētīsim TCP galvenes formātu un saturu.
Secības numursNejaušs skaitlis, ko dators ģenerē savienojuma izveides laikā kā sākotnējo vērtību TCP savienojuma izveides brīdī, un secības numurs tiek nosūtīts saņēmējam, izmantojot SYN paketi. Datu pārraides laikā sūtītājs palielina secības numuru atbilstoši nosūtīto datu apjomam. Uztvērējs novērtē datu secību atbilstoši saņemtajam secības numuram. Ja dati tiek konstatēti nepareizā secībā, saņēmējs tos pārkārtos, lai nodrošinātu datu secību.
Apstiprinājuma numursŠis ir secības numurs, ko TCP protokolā izmanto, lai apstiprinātu datu saņemšanu. Tas norāda nākamo datu secības numuru, ko sūtītājs sagaida saņemt. TCP savienojumā saņēmējs nosaka, kuri dati ir veiksmīgi saņemti, pamatojoties uz saņemtā datu paketes segmenta secības numuru. Kad saņēmējs veiksmīgi saņem datus, tas nosūta sūtītājam ACK paketi, kurā ir ietverts apstiprinājuma apstiprinājuma numurs. Pēc ACK paketes saņemšanas sūtītājs var apstiprināt, ka dati pirms atbildes numura apstiprināšanas ir veiksmīgi saņemti.
TCP segmenta vadības biti ietver sekojošo:
ACK bitsJa šī bita vērtība ir 1, tas nozīmē, ka apstiprinājuma atbildes lauks ir derīgs. TCP norāda, ka šim bitam jābūt iestatītam uz 1, izņemot SYN paketes, kad sākotnēji tiek izveidots savienojums.
RST bits: Kad šī bita vērtība ir 1, tas norāda, ka TCP savienojumā ir izņēmums un savienojums ir jāpiespiež pārtraukt.
SYN bits: Ja šis bits ir iestatīts uz 1, tas nozīmē, ka ir jāizveido savienojums, un secības numura laukā ir iestatīta secības numura sākotnējā vērtība.
FIN uzgalis: Ja šī bita vērtība ir 1, tas nozīmē, ka nākotnē dati vairs netiks sūtīti un savienojums ir vēlams.
TCP dažādās funkcijas un raksturlielumi ir ietverti TCP pakešu segmentu struktūrā.
Kas ir UDP? (MylinkingTīkla pieskāriensunTīkla pakešu brokerisvar apstrādāt gan TCP, gan UDP paketes)
Lietotāja datagrammu protokols (UDP) ir bezsavienojuma saziņas protokols. Salīdzinot ar TCP, UDP nenodrošina sarežģītus vadības mehānismus. UDP protokols ļauj lietojumprogrammām tieši sūtīt iekapsulētas IP paketes, neizveidojot savienojumu. Kad izstrādātājs izvēlas izmantot UDP TCP vietā, lietojumprogramma sazinās tieši ar IP.
UDP protokola pilns nosaukums ir lietotāja datagrammas protokols (User Datagram Protocol), un tā galvenes garums ir tikai astoņi baiti (64 biti), kas ir ļoti kodolīgi. UDP galvenes formāts ir šāds:
Galamērķa un avota ostasTo galvenais mērķis ir norādīt, kuram procesam UDP jānosūta paketes.
Paketes lielumsPaketes lieluma laukā ir norādīts UDP galvenes lielums plus datu lielums.
KontrolsummaKontrolsummas uzdevums ir noteikt, vai UDP paketes pārraides laikā ir notikusi kļūda vai bojājums, lai nodrošinātu datu integritāti.
Atšķirības starp TCP un UDP Mylinking protokolosTīkla pieskāriensunTīkla pakešu brokerisvarēja apstrādāt gan TCP, gan UDP paketes
TCP un UDP atšķiras šādos aspektos:
SavienojumsTCP ir uz savienojumiem orientēts transporta protokols, kam nepieciešams izveidot savienojumu, pirms var pārsūtīt datus. Savukārt UDP neprasa savienojumu un var nekavējoties pārsūtīt datus.
Pakalpojuma objektsTCP ir divpunktu pakalpojums “viens pret vienu”, tas ir, savienojumam ir tikai divi galapunkti, lai sazinātos savā starpā. Tomēr UDP atbalsta interaktīvu saziņu “viens pret vienu”, “viens pret daudziem” un “daudzi pret daudziem”, kas var vienlaikus sazināties ar vairākiem resursdatoriem.
UzticamībaTCP nodrošina datu uzticamas piegādes pakalpojumu, garantējot, ka dati ir bez kļūdām, bez zudumiem, bez dublikātiem un tiek piegādāti pēc pieprasījuma. Savukārt UDP dara visu iespējamo un negarantē uzticamu piegādi. UDP pārraides laikā var rasties datu zudumi un citas problēmas.
Sastrēgumu kontrole, plūsmas kontroleTCP protokolam ir pārslodzes kontroles un plūsmas kontroles mehānismi, kas var pielāgot datu pārraides ātrumu atbilstoši tīkla apstākļiem, lai nodrošinātu datu pārraides drošību un stabilitāti. UDP protokolam nav pārslodzes kontroles un plūsmas kontroles mehānismu, pat ja tīkls ir ļoti pārslogots, tas neveiks korekcijas UDP sūtīšanas ātrumā.
Galvenes virsizmērsTCP protokolam ir garš galvenes garums, parasti 20 baiti, kas palielinās, izmantojot opciju laukus. Savukārt UDP protokolam ir fiksēts galvenes garums — tikai 8 baiti, tāpēc UDP protokolam ir mazāks galvenes pieskaitāmais apjoms.
TCP un UDP lietojumprogrammu scenāriji:
TCP un UDP ir divi dažādi transporta slāņa protokoli, un tiem ir dažas atšķirības lietojumprogrammu scenārijos.
Tā kā TCP ir uz savienojumiem orientēts protokols, to galvenokārt izmanto situācijās, kad nepieciešama uzticama datu piegāde. Daži izplatīti lietošanas gadījumi ir šādi:
FTP failu pārsūtīšanaTCP var nodrošināt, ka pārsūtīšanas laikā faili netiek pazaudēti un bojāti.
HTTP/HTTPSTCP nodrošina tīmekļa satura integritāti un pareizību.
Tā kā UDP ir bezsavienojuma protokols, tas negarantē uzticamību, taču tam piemīt efektivitātes un reāllaika īpašības. UDP ir piemērots šādiem scenārijiem:
Zema pakešu apjoma datplūsma, piemēram, DNS (domēna vārdu sistēma)DNS vaicājumi parasti ir īsas paketes, un UDP tos var izpildīt ātrāk.
Multimediju komunikācija, piemēram, video un audioMultivides pārraidei ar augstām reāllaika prasībām UDP var nodrošināt zemāku latentumu, lai nodrošinātu datu savlaicīgu pārraidi.
Apraides komunikācijaUDP atbalsta saziņu starp vairākiem lietotājiem un daudziem lietotājiem, un to var izmantot apraides ziņojumu pārraidīšanai.
Kopsavilkums
Šodien mēs uzzinājām par TCP. TCP ir uz savienojumiem orientēts, uzticams, uz baitu plūsmu balstīts transporta slāņa saziņas protokols. Tas nodrošina datu uzticamu pārraidi un sakārtotu saņemšanu, izveidojot savienojumu, sazinoties ar citiem un apstiprinot to. TCP protokols izmanto portus, lai realizētu saziņu starp procesiem, un nodrošina tiešus saziņas pakalpojumus lietojumprogrammu procesiem, kas darbojas dažādos resursdatoros. TCP savienojumi ir pilna dupleksa savienojumi, kas ļauj vienlaikus veikt divvirzienu datu pārraidi. Turpretī UDP ir bezsavienojumu saziņas protokols, kas negarantē uzticamību un ir piemērots dažiem scenārijiem ar augstām reāllaika prasībām. TCP un UDP atšķiras pēc savienojuma režīma, pakalpojuma objekta, uzticamības, pārslodzes kontroles, plūsmas kontroles un citiem aspektiem, un arī to lietojumprogrammu scenāriji ir atšķirīgi.
Publicēšanas laiks: 2024. gada 3. decembris