Logo lt.artbmxmagazine.com

Perdavimo perdavimo valdymo protokolas tcp

Turinys:

Anonim

TCP yra į ryšį orientuotas transportavimo protokolas. Tai užtikrina, kad duomenys bus pateikiami be klaidų, be praleidimo ir seka.

Jis turi šias savybes:

  • Į ryšį orientuotas protokolas. Tai yra, programos prašo prisijungti prie tikslo ir tada naudoja šį ryšį duomenims pateikti, užtikrindamos, kad jie bus pristatyti be problemų, nuo vieno taško iki kito. TCP ryšys turi du galus: siuntėją ir gavėją. TCP garantuoja, kad perduoti duomenys bus pristatyti be jokių praradimų, dubliavimo ar perdavimo klaidų. Galiniai taškai, dalyvaujantys TCP ryšyje, gali keistis duomenimis abiem kryptimis vienu metu. Trijų krypčių rankos paspaudimas užtikrina patikimą ir sinchronizuotą pradžios ryšį tarp abiejų jungties galų. TCP garantuoja visų duomenų pateikimą iki ryšio pabaigos.
informacijos sistema-tcp-1

TCP yra 4 lygio protokolas (perdavimas) OSI sluoksnyje, todėl norint naudoti segmentus ar pranešimus, jis turi naudoti IP. Tokiu būdu IP traktuoja TCP pranešimą kaip informaciją, kurią turi pateikti, ir niekada nebando aiškinti jo turinio, kaip paprastai daroma perduodant pranešimą iš vieno apatinio sluoksnio į kitą. Dėl šios priežasties maršrutizatorius ar bet kuris OSI 3 lygio įrenginys gali stebėti tik IP antraštes, kad galėtų persiųsti duomenų schemas. Asmuo, atsakingas už TCP pranešimų aiškinimą, gavęs juos iš tinklo sluoksnio, yra paskirties mašinos TCP.

1.1. TCP funkcija

TCP yra nemažo dydžio protokolas, atliekantis daugybę funkcijų:

  • Susieti uostai su jungtimis Užmegzkite ryšius naudodamiesi trijų etapų sutartimi. Lėtai paleiskite, kad išvengtumėte perkrovos. Padalinkite duomenis į segmentus perdavimui. Skaičiaus duomenys Tvarkykite gaunamų segmentų dublikatus Skaičiuokite kontrolines sumas Reguliuokite srautą duomenys naudojant „siųsti ir gauti“ langus Tvarkingai nutraukite ryšius. Nutraukti ryšius Pažymėti skubius duomenis Teigiami retransliavimo patvirtinimai Retransliavimo laiko skaičiavimas Sumažinkite srautą, kai tinklas tampa perpildytas. Nurodykite segmentus, kurie išeina iš užsakymo.Patikrinkite, ar priėmimo langai uždaryti.

1.2. KONCEPCIJOS

1.2.1. Įleidimo ir išleidimo srautai

Koncepcinis ryšio modelis yra tas, kad viena programa siunčia duomenų srautą kitai kolegai. Tuo pačiu metu jis gauna duomenų srautą iš kitų. TCP teikia dvipusio ryšio paslaugą, kuri vienu metu tvarko du duomenų srautus.

1.2.2. Segmentai

TCP turi konvertuoti iš programos išeinančius duomenų srautus, kad juos būtų galima pateikti kaip duomenų schemas. Taikomoji programa perkelia duomenis į TCP, o TCP juos įdeda į siuntimo buferį. Paimkite duomenų dalį, pridėkite prie jos antraštę, sukurdami segmentą.

TCP segmentą paverčia IP, kad pateiktų jį kaip vieną duomenų diagramą. Duomenų pakavimas į tinkamo dydžio dalis leidžia efektyviau naudotis srautinio perdavimo paslaugomis, todėl TCP turėtų laukti, kol surinks pagrįstą duomenų kiekį prieš sukurdama segmentą.

1.2.3. Stumti

Kartais kliento programai reikia TCP, kad ji kuo greičiau pristatytų duomenis į nuotolinio serverio programą, tam ji naudoja {push} funkciją. Įsivaizduokime, kad kliento programa pradėjo interaktyvią sesiją su nuotoliniu serveriu ir vartotojas įvedė komandą ir paspaudė vežimo grįžimą. Kliento programa pasinaudos šia funkcija, kad lieptų TCP kuo greičiau pateikti minėtus duomenis.

1.2.4. Programų prievadai

Sąsaja tarp TCP ir vietinio proceso vadinama prievadu. Kad programa galėtų prisijungti prie tinklo ir per jį siųsti duomenis, ji turi tai padaryti per prievadą. Programa duomenų srautui siųsti naudoja prievado numerį, o kitas ryšio galas jį priima per kitą prievado numerį.

Uostai žymimi dešimtainiu skaičiumi nuo 0 iki 65,535, tiek TCP, tiek UDP. Gamintojai, diegiantys TCP, turi didelę laisvę priskirti prievadų numerius procesams, nors interneto priskirtų skaičių tarnyba (IANA) skyrė diapazoną nuo 0 iki 1 023 daugeliui įprastų procesų (RFC 1700).), pvz., telnet, ftp, pop3, smtp ir kt.

Kiekvieną kartą, kai klientas nori prisijungti, jis prašo operacinės sistemos priskirti jam nebenaudojamo prievado numerį be rezervavimo. Ryšio pabaigoje klientas grąžina prievadą į sistemą ir gali būti naudojamas kitam klientui.

Uosto programos aprašymas

9 Išmesti Išmeskite visus gaunamus duomenis

19 „Chargen Swap“ simbolių srautų

20 FTP-duomenų duomenų perdavimo prievadas failams perduoti

21 FTP dialogo prievadas duomenų perdavimui

23 „Telnet“ nuotolinio ryšio prievadas naudojant „Telnet“

25 SMTP paprasto pašto perdavimo protokolo prievadas

110 POP3 el. Pašto gavimo tarnyba

119 NNTP tinklo naujienų leidybos tarnyba

Standartizuotų TCP prievadų sąrašas.

Norėdami visiškai nurodyti ryšį, pagrindinio kompiuterio IP adresas pridedamas prie prievado numerio. Šis derinys vadinamas lizdu. Todėl lizdo numeris yra unikalus visame internete. Ryšį tarp dviejų pagrindinių įrenginių išsamiai apibūdina lizdai, skirti kiekvienam jungties gnybtui. Ryšys tarp dviejų lizdų suteikia dvikryptį (visiško dvipusio ryšio) ryšio kelią tarp dviejų procesų.

TCP naudoja dviejų tipų lizdus:

  • Maitinimo lizdai. Naudojamas kartu su TCP patikimiems, nuosekliems ir dvikrypčiams duomenų mainų „Datagram“ lizdams. Jie naudojami kartu su UDP, norint pasiekti nepatikimą, dvikryptį duomenų perdavimą.

Lizdai yra programų programos sąsaja (API) tarp TCP, procesų ir programų. Ši API suteikia programuotojams prieigą prie programų TCP.

TCP suformuoja kiekvieno į IP perduodamo segmento antraštę. Kai IP sukuria IP duomenų diagramą, TCP antraštė seka IP antraštę.

IP segmentai yra išdėstyti 16 bitų žodžiais. Jei segmente yra nelyginis skaičius oktetų, jis užpildomas galutiniu oktetu, sudarytu iš visų nulių.

TCP antraštės laukai yra šie:

  • Šaltinio prievadas (16 bitų). Nurodo šaltinio TCP modulio prievadą Paskirties prievadas (16 bitų). Nurodo paskirties TCP modulio prievadą Eilės numeris (32 bitai). Nurodo sekos pirmojo duomenų okteto vietą segmente. Kai segmentas atidaro ryšį (SYN bitų rinkinys), sekos numeris yra pradinis eilės numeris (ISN), o pirmasis duomenų lauko oktetas yra numeris ISN + 1 patvirtinimo numeris (32 bitai). Nurodo sekos numerį, kurio tikisi segmento siuntėjas. TCP rodo, kad šis laukas suaktyvinamas nustatant ACK bitą, kuris įvyksta, kai užmezgamas ryšys. Antraštės dydis (4 bitai). Nurodo 32 bitų žodžių, kurie sudaro TCP antraštę, skaičių.Laukas „Parinktys“ užpildytas nuliais, kad prireikus būtų suformuotas visas 32 bitų žodis. Rezervuota (6 bitai). Jo vertė turi būti lygi nuliui. Rezervuotas naudoti ateityje Kontroliniai bitai (6 bitai). Yra 6:

AUKŠTAS. Jei jis yra 1, tai rodo, kad lauko patvirtinimo numeris yra reikšmingas.

OURG. Jei jis yra 0, tai reiškia, kad jo reikia nepaisyti. Jei jis yra 1, tai reiškia, kad duomenys yra skubūs.

oPSH. Paleidžia {push} funkciją. Nurodo, ar TCP turėtų nedelsdamas pateikti duomenis programai.

oRST. Nurodo klaidą, ji taip pat naudojama nutraukti sesiją.

oSYN. Sinchronizuoja ryšio sekų skaitiklius. Šis bitas bus nustatytas (1), kai segmentas paprašys atidaryti ryšį.

Arba pabaiga. Perdavimo pabaiga ir ryšio uždarymas. Sėkmingo baigimo metu jis yra nustatytas 1.

  • Langas (16 bitų). Nurodo oktetų, kuriuos segmento gavėjas gali priimti, skaičių, pradedant oktetu, nurodytu patvirtinimo laukelyje. Kontrolinė suma (16 bitų). Kontrolinė suma, pagrįsta antraštės ir duomenų laukais. Tai neapima segmento, naudojamo segmentui, kad jame būtų lyginis skaičius oktetų. Kontrolinė suma taip pat pagrįsta 96 bitų pseudo antraštėmis „Urgent Pointer“ (16 bitų). Nurodo okteto, einančio po skubiais duomenimis, eilės numerį. Skubus rodyklė yra teigiamas pokytis nuo segmento eilės numerio. Pasirinkimai (kintamasis). Parinktys gali atlikti keletą funkcijų: parinkčių sąrašo pabaiga, maksimalus segmento dydis, pasirenkami maksimalaus segmento dydžio duomenys ir tt, ir tt. Užpildykite (kintama).Prie nulinės vertės pridedami oktetai, pridedami prie antraštės, kad jos ilgis būtų suapvalintas iki 32 bitų.

12 pikselių TCP pseudo antraštė apima šaltinio ir paskirties adresą, protokolą ir segmento ilgį. Ši informacija kartu su segmentu siunčiama IP, siekiant apsaugoti TCP nuo klaidingai nukreiptų segmentų. Į ilgio lauko vertę įeina antraštė ir TCP duomenys, tačiau neatsižvelgiama į pseudo antraštę.

1.3.1 Maksimalaus segmento dydžio parinktys

Didžiausio segmento dydžio (MSS) parinktis naudojama nurodyti didžiausią duomenų, kuriuos galima gauti (ir vėl surinkti) iš duomenų srauto, dalį. Didžiausias sistemos segmento dydis yra apibrėžiamas taip:

Didžiausios duomenų diagramos, kurią galima gauti, dydis - 40

Kitaip tariant, MSS praneša apie didžiausią imtuvo duomenų apkrovos dydį, kai IP ir TCP antraštės yra 20 baitų. Jei yra bet koks antraštės variantų skaičius, atimkite jų dydį. T. y. Norint apskaičiuoti duomenų, kuriuos galima sudėti į segmentą, dydį, TCP turi apskaičiuoti:

MSS reklamuojama + 40 - (IP ir TCP antraščių dydis)

Paprastai užmezgant ryšį, galiniai taškai keičiasi atitinkamomis MSS reikšmėmis kartu su pradiniu pranešimu {SYN}. Jei sistema nenurodo savo segmento dydžio, daroma prielaida, kad numatytoji MSS vertė yra 536 baitai ir ne didesnė kaip 65 535 baitai.

MSS nustato maksimalaus dydžio, kurį gali siųsti TCP, apribojimą, imtuvas negali valdyti nieko didesnio. Bet siunčiantis TCP galėtų siųsti mažesnius segmentus dėl MTV dydžio ryšio kelio.

1.3.2. Ryšio užklausos antraštė

Pirmajame segmente, kuris yra siunčiamas prisijungti, yra {SYN} vėliava ties 1 ir {ACK} vėliava esant 0. Pradinis {SYN} segmentas yra vienintelis segmentas, kurio lauke {ACK} yra 0. Ugniasienės tai daro. Jie naudojami norint kontroliuoti gaunamas TCP sesijų užklausas.

Lauke {eilės numeris} yra pradinis eilės numeris. Lauke {Window} (Window) pateikiamas pradinis priėmimo lango dydis.

Vienintelė šiuo metu nustatyta TCP parinktis yra maksimalus segmento dydis, kurį TCP galėtų gauti. Didžiausias jo dydis yra 32 bitai. Paprastai jis įtraukiamas į ryšio užklausą, lauke {options} (jei MSS nenurodyta, numatytoji vertė yra 536). TCP {SYN} antraštės, kurioje yra MSS parinktis, dydis yra 24 baitai.

1.3.3. Ryšio atsakymo antraštė

Ryšio priėmimo atsakyme dvi vėliavos {SYN} ir {ACK} nustatomos ties 1. Pradinis respondento eilės numeris yra lauke {eilės numeris}, o priimančiojo lango eilutė yra lauke. laukas {langas}. Maksimalus segmento dydis, kurį respondentas nori gauti, paprastai yra įtrauktas į ryšio atsakymą, lauke {options}. Tai gali būti skirtingo dydžio nei tai, kas inicijuoja ryšį, jie nebūtinai turi būti vienodi.

Ryšio užklausą galima atmesti, atsakyme pažymėjus {RST} vėliavėlę į 1.

1.3.4. Pradinio eilės numerio pasirinkimas

Ryšio metu TCP taisyklė nurodo, kad kiekvienas ryšio galas turėtų pasirinkti {pradžios sekos numerį} iš vidinio 32 bitų laikrodžio. Kodėl? Įsivaizduokite, kas nutinka, kai sistema nustoja veikti. Tarkime, kad vartotojas atidarė ryšį prieš jam nustojus veikti ir jau atsiuntė nedidelį kiekį duomenų. Atkūrusi sistema nieko neprisimena apie tai, ką darė prieš nustodama veikti, įskaitant užmegztus ryšius ir priskirtus prievadų numerius. Vartotojai turi vėl pradėti ryšius. Prievadų numeriai pradedami priskirti tokiu būdu, kad pirmasis, kuris jo prašo, būtų pirmas, kuriam jis yra suteiktas, o kai kuriuos iš šių prievadų kelias sekundes galėjo naudoti kiti ryšiai.Per tą laiką toli nuo vieno iš jungčių esanti sistema galėjo nesuprasti, kad kitas galas nustojo veikti ir vėl nustojo veikti, gali kilti didžiulė painiava, jei seni duomenys, kuriems reikia tinklo prisijungimo, būtų susimaišę su duomenimis iš naujas ryšys. Turint naujus pradedant nuo tam tikros laikrodžio vertės, ši problema bus išvengta. Seni duomenys greičiausiai bus sunumeruoti ir reikšmės, nepatenkančios į naują {eilės numeris} intervaląTurint naujus pradedant nuo tam tikros laikrodžio vertės, ši problema bus išvengta. Seni duomenys greičiausiai bus sunumeruoti ir reikšmės, nepatenkančios į naują {eilės numeris} intervaląTurint naujus pradedant nuo tam tikros laikrodžio vertės, ši problema bus išvengta. Seni duomenys greičiausiai bus sunumeruoti ir reikšmės, nepatenkančios į naują {eilės numeris} intervalą

1.3.5. Bendras laukų naudojimas

Norint paruošti TCP antraštės perdavimą, į lauką {eilės numeris} įtraukiamas pirmojo okteto eilės numeris.

Laukas {patvirtinimo numeris} užpildytas kito okteto numeriu, kurio tikimasi iš kito galo, ir bitui {ack} nustatyta 1.

Lauke {langas} yra dabartinis priėmimo lango dydis, tai yra: baitų skaičius, pradedant nuo {patvirtinimo numeris}, kurį galima gauti. Tokiu būdu pasiekiamas labai tikslus srauto valdymas. Tiksli priėmimo lango būsena nurodoma kitam susitikimo metu.

Jei programa siunčia {push} TCP, {push} vėliava nustatoma į 1. Manoma, kad gaunantis TCP turi reaguoti į {push} vėliavą pateikdamas duomenis į savo programą taip greitai, kaip programa nori..

Jei žyma {skubus} yra 1, tai rodo, kad laukiama skubių duomenų, o žymeklis {skubus} nurodo paskutinį skubių duomenų oktetą.

{Reset} vėliava nustatyta į 1, kad nutrauktumėte ryšį. Jis taip pat gali būti pateiktas kaip segmentas, kuris neturi prasmės dabartiniame TCP tvarkomuose ryšiuose.

{End} vėliava yra nustatyta 1 pranešimuose, naudojamuose ryšiui uždaryti.

1.3.6. Kontrolinė suma

IP kontrolinė suma taikoma tik IP antraštėms. TCP kontrolinė suma taikoma visam segmentui, taip pat ir pseudo antraštėms, kurios sudaromos iš informacijos, išgautos iš IP antraštės.

TCP dydis apskaičiuojamas pridedant TCP antraštės dydį ir duomenų dydį. TCP suma yra privaloma, neprivaloma, kaip UDP. Įeinančiame segmente apskaičiuojama TCP antraštės kontrolinė suma. Jei vertės nesutampa, segmentas atmetamas.

1.4. JUNGTYS

Prieš pradėdama ryšį, kiekviena šalis paskambina paprogramei, kuri sukuria atminties bloką, kad prisijungimo metu būtų išsaugoti TCP ir IP parametrai, pavyzdžiui, lizdų adresai, dabartiniai sekų numeriai, pradinė reikšmė. IP visą gyvenimą ir kiti. Kai klientas nori pasiekti serverį, jis paleidžia prisijungimo užklausą naudodamas serverio IP adresą ir prievadą. Prisijungimo procedūra vadinama trijų žingsnių sutartimi: SYN, SYN ir ACK.

Ryšių užmezgimo metu keičiamasi svarbia informacija. Kiekviena šalis praneša kitai šaliai:

  • Vietos, esančios duomenų saugykloje duomenims priimti. Didžiausias duomenų kiekis, kurį segmentas gali nešioti. Pradinis eilės numeris, kuris bus naudojamas išvesties duomenims sunumeruoti.

1.5. DUOMENŲ PERDAVIMAS

Duomenų perdavimas prasideda baigus įsteigimą trimis etapais.

KLIENTAS

TCP

SERVERIS

TCP

Duomenų srautas ir jo ACK.

Aukščiau pateiktas pavyzdys rodo tiesioginį keitimąsi duomenimis. Paprastam numeravimui naudojami 1000 baitų pranešimai.

Visose TCP segmentų antraštėse yra ACK laukas, kuris identifikuoja kito baito eilės numerį, kurio tikimasi iš kito galo. Pirmame kliento siunčiamame segmente yra 1001–2000 baitų. Jo ACK laukelyje nurodoma, kad kito baito, kurio jis tikisi iš serverio, eilės numeris yra 3001. Serveris reaguoja su segmentu, kuriame yra 1000 baitų duomenų, pradedant nuo 3001. ACK laukas TCP antraštėje rodo, kad sėkmingai buvo priimti 1001–2000 baitų, todėl tikimasi, kad kito kliento baito eilės numeris yra 2001. Klientas siunčia segmentus, kurie prasideda nuo baitai 2001, 3001 ir 4001. Atminkite, kad klientui nereikia laukti, kol atvyks kiekvieno segmento ACK.Duomenis galite siųsti į kitą galą, jei buferyje nepanaudota vietos. Tokiu būdu serveris taupo pralaidumą, jei naudojamas vienas ACK, nurodantis, kad visi segmentai buvo priimti tinkamai.

1.6. SRAUTŲ KONTROLĖ

TCP, kuris gauna duomenis, tvarko gaunamų duomenų srautą. Gavėjas nusprendžia, kiek duomenų jis nori priimti, ir siuntėjas privalo veikti laikydamasis šių ribų. Ryšio užmezgimo metu kiekviena šalis skiria vietos to ryšio gavimo buferiams ir perduoda juos ryšiui (tai yra baitų skaičius, kurį jos gali man siųsti). Šis skaičius paprastai yra didžiausio segmento dydžio sveikasis skaičius.

Duomenų srautas pasiekia gavimo buferį ir išlieka ten, kol jo neparenka programa, susieta su tuo TCP prievadu.

Programa renka duomenis

Gavimo langas tęsiasi nuo paskutinio įsipareigoto baito iki buferio pabaigos. Ankstesniame pavyzdyje visas buferis yra nemokamas, taigi yra 4K priėmimo langas. Gaunama 1 K. duomenų ir priėmimo langas sumažinamas iki 3 K. Atvyksta dar du 1K segmentai, o tai reiškia, kad langas sumažinamas iki 1 K. Galiausiai programa sugeria 3K duomenų iš buferio, su kuriuo padidėja laisva vieta duomenims (galite pamatyti, kaip langas juda į dešinę. Realioje sesijoje tokio dydžio priėmimo langas skiriasi priklausomai nuo programos poreikių

1.6.1. Priėmimo langas

Priėmimo langas yra bet kokia neužimta vietos priėmimo buferyje. Duomenys lieka priėmimo buferyje, kol numatoma programa juos surenka.

Imtuve {ACKs} yra atnaujinta priėmimo lango būsena. Duomenų srautas iš siuntėjo yra reguliuojamas pagal šiuos langų atnaujinimus.

Dažniausiai ryšio buvimo metu sukuriamas priėmimo buferis palaikomas ryšio metu, nors jis gali augti arba trauktis tol, kol gavėjas neatsilieka nuo to, ką suteikė siuntėjui.

1.6.2. Pateikti langą

Duomenų siųstuvas kontroliuoja du dalykus; kiek duomenų buvo išsiųsta ir jau patvirtinta, ir dabartinis priėmimo lango dydis kitoje pusėje. Aktyvi siuntimo erdvė eina nuo pirmojo okteto, nesidairant į dešinę dabartinio priėmimo lango pusę. Šios vietos gavimo lango dalis nurodo, kiek papildomų duomenų galima nusiųsti į kitą pusę.

Pradinis priėmimo numeris ir pradinis lango dydis gaunami ryšio užmezgimo metu.

Aukščiau pateiktame pavyzdyje:

1.Emitter prasideda nuo 4K siuntimo lango.

2. Siuntėjas perduoda 1K ir saugo tokių duomenų kopijas, kol atvyks atsiskaitymas, nes gali prireikti juos perduoti dar kartą.

3. {ACK} atvyksta už pirmąjį 1K, o siunčiami kiti 2K duomenys ir saugo jo kopiją.

4. Galiausiai atvyksta {ACK}, nurodantis, kad visi perduoti baitai buvo priimti. {ACK} taip pat atnaujina imtuvo langą į 4K.

Tačiau turime pabrėžti kai kurias savybes:

  • Siuntėjui nereikia laukti {ACK} už kiekvieną perduotų duomenų segmentą. Vienintelis perdavimo apribojimas yra priėmimo lango dydis. Įsivaizduokime, kad siuntėjui turite perduoti duomenis, kurie buvo išsiųsti naudojant labai mažus segmentus (pvz., 80 baitų). Duomenys gali būti perpakuoti efektyviau, pavyzdžiui, į vieną segmentą.

1.7. SESIJOS PRIEŽIŪRA

1.7.1. „Windows“ zondas

Jei yra aktyvus siuntėjas ir tingus gavėjas, priėmimo langas gali būti 0 baitų. Tai vadinama {uždarytas langas}. Kai atidaromas tarpas, siunčiamas {ACK}, kuris atnaujina lango dydį. Bet kas nutiktų, jei {ACK} būtų pamestas ?, nes abu galai gali laukti neribotą laiką. Kad taip neatsitiktų, siuntėjas siunčia nuolatinius laikmačius, kai uždaromas priėmimo langas. Pasibaigus laikmačio laikui, segmentas, vadinamas {window probe}, siunčiamas į kitą galą. Kai kuriais atvejais zondas apima duomenis. Zondas verčia kitą galą nusiųsti {ACK} su dabartine lango būsena. Jei langas tęsiasi iki nulio, nuolatinė laikmačio vertė yra dvigubai didesnė.Šis procesas kartojamas tol, kol laikmačio vertė pasieks ne daugiau kaip 60 sekundžių. TCP ir toliau siųs zondus neribotą laiką kas 60 sekundžių arba kol atsidarys langas ar vartotojas pertrauks procesą arba pasibaigs programos laikmatis.

1.7.2. Sesijos palaikymas

Kas atsitiks su ryšiu, kai nė viena šalis neturi duomenų, kurį galėtų siųsti ilgą laiką? Laisvu laikotarpiu tinklas gali nustoti veikti arba kabeliai gali būti supjaustyti ir vėl prijungti. Pakanka, kad tinklo tinklas veiktų, kai abi šalys grįžta keistis duomenimis, sesija neprarandama. Žinoma, problema yra ta, kad bet koks ryšys užima daug atminties kompiuteryje, todėl daugelis TCP diegimų siunčia pranešimus {palaikyk gyvus}, kad patikrintų, ar ryšys neveikia. TCP periodiškai siunčia šį pranešimą, kad patikrintų, ar ryšys vis dar egzistuoja. Šis pranešimas grąžina {ACK} atsakymą. Pranešimų naudojimas yra neprivalomas; jei sistema tai turi,programa gali ją išjungti savo ryšiams (numatytasis numatytasis laikas yra dvi valandos). Be to, programos gali siųsti savo programų lygmenų laikmačius lygiais, kurie yra prasmingi programai ir kad programa gali nutraukti nenaudojamas sesijas.

1.8. SESIJOS NUTRAUKIMAS

Įprastas ryšio nutraukimas atliekamas naudojant trijų etapų procesą, panašų į užmezgimo procesą. Bet kuri šalis gali pradėti sutarties nutraukimo procesą.

A. {Aš baigiau. Neturiu daugiau duomenų siųsti}

B. {Gerai} arba {Bet aš turiu duomenų…..}

  1. {Aš taip pat baigiau} {Gerai} FIN SEQ # 4001

KLIENTO PARAIŠKA

  1. Vartotojas atsisako

TCP

Serverio programa

TCP

Ryšio uždarymas

ACK # 8001

2.SEQ # 8001

ACK # 4002

KLIENTO PARAIŠKA

TCP

Ryšio uždarymas

Serverio programa

TCP

Ryšio uždarymas

3.END SEQ # 8001

ACK # 4002

4.SEQ # 4002

ACK # 8002

1. Serverio programa nurodo TCP nutraukti ryšį.

2. TCP serveris siunčia galutinį segmentą {FIN}, pranešdamas kitai šaliai, kad daugiau duomenų nesiųs.

3.T TCP klientas siunčia {FIN} segmento ACK

4. TCP klientas praneša jūsų programai, kad serveris nori nutraukti savo veiklą.

5.Kliento programa nurodo TCP baigti.

6.The TCP klientas siunčia pranešimą {FIN}

7. TCP serveris gauna {FIN} iš kliento ir atsako su {ACK} 8. TCP serveris praneša jūsų programai, kad ryšys nutrauktas.

Gali būti, kad pasirodo tinklo gedimas ir staigus nutraukimas. Bet kuri šalis gali kreiptis dėl staigaus sutarties nutraukimo. Tai gali būti padaryta, jei programa nori nutraukti ryšį arba jei TCP aptiko rimtą ryšių problemą, kurios negalima išspręsti. Norėdami paprašyti staigaus nutraukimo, vienas ar keli {reset} siunčiami į kitą galą. {Reset} TCP antraštėje pažymėta vėliava.

1.8.1. Terminas

Kitame gale esanti sistema gali būti neveikianti arba kelias į kitą galą gali būti nutrauktas arba prarastas dėl šliuzo ar jungties. Kaip TCP žino, kad neturėtų perduoti duomenų amžinai? Yra keli mechanizmai.

Pasiekęs pirmąjį pakartotinių perdavimų skaičiaus slenkstį, TCP perspėja IP, kad patikrintų, ar problema yra maršrutizatorius, kuris nebeveikia, ir praneša programai, kad iškilo problema. TCP retransliuoja tol, kol pasiekiama antra riba, tada ryšys nutrūksta.

Taip pat gali atvykti ICMP pranešimas, kuriame nurodoma, kad dėl tam tikrų priežasčių nepavyko pasiekti tikslo. Kai kuriais atvejais TCP bandys pasiekti tikslą tol, kol galutiniai terminai nepavyks, galų gale, problema gali būti išspręsta. Tada programa pateikia {paskirties nepasiekiama} būseną.

Programa taip pat gali nustatyti savo duomenų pateikimo laiko apribojimą kartu su veiksmais, kurių reikia imtis pasibaigus laikui. Paprastai veiksmas yra nutraukti ryšį.

1.9. KLAIDŲ KONTROLĖ

TCP yra į ryšį orientuotas ir patikimas protokolas. Štai kodėl jis naudoja įvairius metodus, kad patikimai pateiktų duomenis. Šios technologijos leidžia TCP atsigauti po tokių klaidų, kaip prarasti paketai, dublikatai, vėlavimai, skirtingi perdavimo greičiai tarp mazgų ir perkrova.

  • Pamestos pakuotės. TCP naudoja teigiamą patvirtinimą su pakartotiniu perdavimu, kad būtų užtikrintas patikimas duomenų pateikimas. Tokiu būdu imtuvas siunčia patvirtinimo valdymo pranešimus {ACK} siuntėjui, kad patikrintų, ar informacija sėkmingai priimta. Savo ruožtu siuntėjas inicijuoja {laikmatį}, kai perduoda informaciją. Jei {laikmatis} pasibaigia dar prieš gaunant patvirtinimą, siuntėjas turi perduoti informaciją iš naujo, paleisdamas naują laikmatį. Jei gavėjas gauna dublikatą paketą, jis į tai neatsižvelgia ir imasi jo išmesti, nes jis bus paimtas ir pažymėtas kaip gautas. Jei vienas paketas negaunamas, o kitas yra, imtuvas stumiamo lango nejudina, kol negauna trūkstamo segmento.Tokiu būdu imtuvas, negavęs {ACK}, persiunčia pamestą ar atidėtą paketą. Skirtingi perdavimo greičiai. Užmezgant TCP ryšį, tiek siuntėjas, tiek gavėjas nurodo savo tarpinę atminties talpą, kad susitartų dėl perdavimo greičio. TCP įgyvendina strategiją, pagal kurią išlaikomas langas spūstims matuoti. Kiekvieną kartą pasibaigus laikmačiui šis langas sumažinamas. Priimdamas sprendimą siųsti duomenis, siuntėjas atsižvelgia į šio lango dydį, kad sukurtų stumdomų duomenų lango dydį.Tiek siuntėjas, tiek gavėjas nurodo savo tarpinę atminties talpą, kad susitartų dėl perdavimo greičio. TCP įgyvendina strategiją, pagal kurią išlaikomas langas spūstims matuoti. Kiekvieną kartą pasibaigus laikmačiui šis langas sumažinamas. Priimdamas sprendimą siųsti duomenis, siuntėjas atsižvelgia į šio lango dydį, kad sukurtų stumdomų duomenų lango dydį.Tiek siuntėjas, tiek gavėjas nurodo savo tarpinę atminties talpą, kad susitartų dėl perdavimo greičio. TCP įgyvendina strategiją, pagal kurią išlaikomas langas spūstims matuoti. Kiekvieną kartą pasibaigus laikmačiui šis langas sumažinamas. Priimdamas sprendimą siųsti duomenis, siuntėjas atsižvelgia į šio lango dydį, kad sukurtų stumdomų duomenų lango dydį.

Kiekviena programa savavališkai pateikia visą informaciją kaip duomenų srautą, tada TCP pasirūpina, kad ši informacija būtų padalyta į segmentus, kurių kiekvienas yra daugiausia IP paketo dydis. Programos pateiktas srautas yra sunumeruotas iš perkeltų baitų skaičiaus ir kiekviename iš šių segmentų yra informacijos baitų eilės numeris. Taigi imtuvas siunčia segmentą su patvirtintos informacijos eilės numeriu, o ne segmentus. {ACK} yra kaupiamieji, todėl {ACK} gali būti kelių segmentų patvirtinimas.

Viena iš priežasčių, dėl kurios paketai gali būti pamesti, yra per didelis srautas. Tačiau kai kurie protokolai, pavyzdžiui, TCP, retransliaciją naudoja kaip mechanizmą, užtikrinantį paketų atvykimą. Šis mechanizmas yra dviejų kraštų, nes per didelis retransliavimas gali prisidėti prie spūsčių.

TCP paketo praradimą aiškina kaip perkrovos rodiklį. Siunčiamasis mazgas naudoja TCP valdymo mechanizmą, norėdamas aptikti perkrovos lygį, ir jei jis viršija tam tikrą slenksčio lygį, kuris laikomas maksimaliu priimtinu, paketų retransliacija sumažėja. Taikomas mechanizmas yra tas, kad pagrindinis kompiuteris siunčia paketą, o jei patvirtinimas ateina be nuostolių, siuntėjas išsiunčia du paketus ir pradeda didinti langą dviem galiomis. Kai TCP siunčia paketų skaičių, lygų pusei lango dydžio, padidėjimo greitis sumažėja, kol jis gauna išsiųstų paketų patvirtinimus.

1.10. SPEKTAKLIS

Našumui įtakos turi daugybė veiksnių. Pagrindai yra tokie ištekliai kaip atmintis ir tinklo pralaidumas.

Pralaidumas ir pagrindiniai tinklo vėlavimai riboja našumą. Prasta perdavimo kokybė reiškia daugybę atmestų duomenų schemų. Atmetimas suaktyvina retransliacijas, sumažindamas efektyvų pralaidumą.

Imtuvas su dideliu įvesties buferiu leidžia siuntėjui tęsti siuntimą be trikdžių. Tai ypač svarbu tinkluose, kuriuose vėluojama ilgai, kur yra daug laiko tarp duomenų siuntimo ir gavimo bei lango atnaujinimo. Norint pasiekti nuolatinį duomenų srautą iš siuntėjo į gavėją, tikslui reikia gavimo lango, kurio dydis yra bent:

Pralaidumo X pralaidumas

Pavyzdys, jei per sekundę gali būti išsiųsta 10 000 baitų, o {ACK} atvykti reikia 2 sekundes, imtuvas privalo turėti bent 20 000 baitų buferį, kad galėtų palaikyti nenutrūkstamą duomenų srautą. Naudojant buferį, kuriame telpa tik 10 000 baitų, našumas sumažinamas per pusę.

Kitas veiksnys, turintis įtakos našumui, yra pagrindinio kompiuterio gebėjimas reaguoti į labai svarbius įvykius ir greitai atlikti {kontekstinius jungiklius}, tai yra, nustoti daryti vieną dalyką ir pereiti prie kito. Pagrindinis kompiuteris gali aptarnauti daug interaktyvių vietinių vartotojų, pagrindinius procesus ir daugybę ryšių jungčių. Įdiegimas, integruojantis TCP / IP su operacinės sistemos branduoliu, gali žymiai sumažinti konteksto perjungimo išlaidas. Norint greitai atlikti veiksmus, reikalingus apdoroti TCP antraštę, reikia pakankamai procesoriaus išteklių.

CPU, kuris negali greitai apskaičiuoti kontrolinės sumos verčių, gali sulėtinti duomenų perdavimą.

Programinė įranga taip pat daro įtaką našumui, jei rašote programas, kurios nereikalauja mažų nereikalingų siuntimo ir priėmimo funkcijų, ir su laikmačiais, kurie atlaisvina tinklo išteklius, kai neatliekate jokio naudingo darbo, tai taip pat pagerins našumą.

TCP efektyvumo veiksniai.

Taikymas

Siųskite ir gaukite duomenis efektyviai.

Sistemos administratorius

Parametrų nustatymas.

Makeris

Efektyvi ir suderinama TCP / IP programinė įranga.

Operacinė sistema ir aparatinė įranga

Atminties prieinamumas, procesoriaus galia, konteksto jungikliai.

Neto

Pralaidumas, vėlavimas, kokybė ir talpa.

1.10.1. Lėta pradžia

{Lėta pradžia} neleidžia sesijai pridėti didelio srauto į tinklą, kuris jau gali būti perpildytas. Įsivaizduokite įmonę, kurioje yra 500 darbuotojų, kurie atvyksta 8:00 ryto ir visi pradeda tvirtinti tinkle tuo pačiu metu. {Lėtas startas} idėja yra, kad naujas ryšys prasidėtų lėtai, palaipsniui didinant perdavimo greitį, atsižvelgiant į tinklo sąlygas. Ryšio užmezgimo metu kitas galas nurodo jo priėmimo langą. Antrojo {perkrovos lango} dydis yra apskaičiuojamas siekiant modeliuoti perdavimą pagal tinklo sąlygas. Siuntėją riboja spūsčių langas, o ne (didesnis) priėmimo langas.

Spūsties langas prasideda segmentu. Kiekvienam segmentui, iš kurio jis sėkmingai gauna {ACK}, perkrovos langas padidėja vienu segmentu, jei jis yra mažesnis nei {gauti langą}. Jei tinklas nėra perkrautas, spūsčių langas greitai pasieks priėmimo lango dydį. Esant normaliai perdavimo būsenai, perkrovos lango dydis yra identiškas gaunamo lango dydžiui.

Atminkite, kad lėtas įkrovimas nėra lėtas. Po pirmojo {ACK} grūsties langas yra dviejų segmentų. Jei {ACK} atvyksta į du segmentus, langas padidėja iki keturių segmentų. Jei tai taip pat patvirtinta teisingai, langas auga eksponentiškai.

1.10.2. Kvailo lango sindromas

Pirmaisiais TCP / IP diegimais gana dažnai pasireiškė reiškinys, vadinamas {kvailo lango sindromu (SWS)}. Pavyzdys:

1.Programa greitai siunčia duomenis.

2. Priimančioji programa atsargiai skaito baitus baitais iš priėmimo buferio.

3.Bufferis yra pilnas

4. Priimančioji programa skaito baitą, o TCP išsiunčia {ACK}, kuriame sakoma: {Turiu vietos duomenų baitui}.

5. Siunčiantis TCP supakuoja baitą ir jį perduoda.

6.Gaminantis TCP siunčia {ACK}, kuris sako {ačiū, aš jį turiu ir daugiau neturiu}.

7. Priimanti programa skaito baitą ir išsiunčia {ACK}, pakartodama procesą.

Lėtai gaunančiai programai jau laukia daug duomenų, o skubėjimas įterpti baitus dešinėje lango dalyje nėra naudingas, tačiau prideda nereikalingą tinklo srautą.

Ši situacija nebūtinai turi būti tokia ekstremali, kad kiltų problemų. Tai gali įvykti naudojant greitą siuntėją, programą, kuri lėtai gauna ir nuskaito didžiausio segmento dydžio duomenų fragmentus ir beveik visą buferį gauna. Pavyzdys:

Sprendimas yra paprastas. Kai langas sumažinamas iki mažesnio nei tam tikras dydis, TCP pradeda meluoti. TCP neturėtų pasakyti kitam galui, kad yra papildomų langų vietos, kai priimančioji programa atlieka nedidelį skaitymą. Vietoj to, TCP privalo laikyti papildomus išteklius paslaptyje, kol nebus laisvas tikslinės buferio dydis. Rekomenduojamas dydis yra vienas segmentas, išskyrus atvejus, kai tik vienas segmentas telpa į visą buferį, tokiu atveju tai darys pusė segmento. Tikslinis dydis, kurį vėl sako TCP, yra:

Mažiausias (1/2 priėmimo buferio dydis, maksimalus segmento dydis)

TCP pradeda meluoti, kai lango dydis yra mažesnis už tą sumą, ir sako tiesą, kai lango dydis yra bent jau toks. Atminkite, kad palaikyti pateikimus nėra ko blogo, nes priimančioji programa nėra surinkusi daugumos duomenų, kurių tikisi. Sprendimas yra paprastas, tarkime, kad priėmimo buferis gali laikyti kelis segmentus. Greitasis siuntėjas užpildys priėmimo buferį, o siuntėjui bus nurodyta, kad nėra laisvos vietos, kol jis nėra laisvas, pakanka vietos priimti visą segmentą.

1.10.3. ACK delsimas

{ACK} atidėliojimas yra dar vienas mechanizmas, galintis pagerinti našumą. Sumažindami siunčiamų {ACKs} skaičių, sutaupote pralaidumą, kurį galima naudoti kitam srautui. Jei kitas galas šiek tiek palaukia prieš siunčiant {ACK}, yra galimybė, kad:

  • Galite patvirtinti kelis segmentus vienu {ACK} pranešimu. Kita pabaigos programa gali rinkti duomenis, kuriuos reikia išsiųsti per laikmačio laikotarpį, tokiu atveju {ACK} gali pereiti išeinančio pranešimo antraštėje ir pranešimas nebus reikalingas. atskirtas.

Norint išvengti visų segmentų delsimo, pavyzdžiui, atliekant failų perkėlimą, {ACK} turėtų būti siunčiamas bent jau kiekvienam segmentui. Daugeliui įdiegimų naudojamas 200 milisekundžių laiko limitas. Atminkite, kad atidėdami „{ACKs}“, sulėtėja perdavimas. Jei atvyks maži segmentai, buferyje bus daug vietos ir siųstuvas gali toliau siųsti, net jei retransliacija yra lėta. Jei gausite visus segmentus, kas antras segmentas iškart suaktyvins {ACK}.

1.10.4. Retransliacijos laikotarpis

Išsiuntęs segmentą, TCP pradeda laikmatį ir laukia {ACK}. Jei {ACK} neatvyksta per nurodytą laiką, TCP segmentą persiunčia iš naujo. Koks tas laukimo laikotarpis? Jei retransliavimo laikas yra per trumpas, siuntėjas apkrauna tinklą nereikalingais segmentais ir įkelia imtuvą su jo kopijomis. Bet jei pristatymo laikas yra per ilgas, prarandate galimybę greitai atsigauti, kai faktiškai prarandate segmentą ir sumažinate našumą. Kaip jūs pasirenkate geriausią terminą? Kadangi parametrai, kurie gerai veikia greitaeigiame vietiniame tinkle (LAN), gali pasirodyti pražūtingi tolimų atstumų ryšyje su daugybe apynių, todėl fiksuotas laiko tarpas negali būti išeitis. Štai kodėl yra tokie algoritmai kaip Jacobsono,„Karn“ ir „Partridge“ leidžia TCP prisitaikyti prie kintančių sąlygų ir taip pasirinkti tinkamą pakartotinio perdavimo laiką.

1.10.5. Spektaklio kliūtys

TCP pasirodė esąs labai lankstus, veikiantis tinkluose, pernešančiuose šimtus ar milijonus bitų per sekundę. Protokolas gerai veikė naudojant Ethernet LANS, „Token-Ring“ ar „Fiber Distributed Data Interface“ (FDDI), taip pat su mažo pralaidumo nuorodomis ir su ilgą vėlavimą turinčiomis nuorodomis, tokiomis kaip palydovinės nuorodos.

TCP yra pritaikytas reaguoti į neįprastas sąlygas, tokias kaip grūstys. Tačiau jis turi keletą savybių, ribojančių TCP greitį, naudojant technologijas, siūlančias šimtų ar tūkstančių megabaitų per sekundę pralaidumą.

Tarkime, kad jūs perkeliate failą iš dviejų sistemų ir norite duomenis siųsti efektyviausiu įmanomu būdu. Įsivaizduokime:

  • Maksimalus segmento dydis yra 4KB. Priėmimo langas yra 4KB. Yra pakankamai pralaidumo, norint perduoti 2 segmentus per sekundę. Priimančioji programa renka duomenis, kai tik ji atvyksta. {ACK} atvyksta po dviejų sekundžių.

Siuntėjas galės siųsti duomenis greitai, nes kai tik bus baigta priskyrimas langui, pasirodys {ACK}, kuris leidžia siųsti kitą segmentą:

PRISTATYMO SEGMENTAS 1.

2 PRISTATYMO SEGMENTAS.

3 PRISTATYMO SEGMENTAS.

PRISTATYMO SEGMENTAS 4.

Praėjo dvi sekundės:

GALI BŪTI PATEIKTAS 1 SEGMENTO {ACK}, 5 SEGMENTAS

GALI BŪTINAS 2 SEGMENTO {ACK} GALI BŪTI SIUNTAS

GALI BŪTI 3 SEGMENTO {ACK}, GALI BŪTI IŠSiųstas 7 SEGMENTAS

GALI BŪTINAS 4 SEGMENTO AKTAS, GALI BŪTI IŠSiųstas 8 SEGMENTAS

Praėjo dar dvi sekundės:

GALI BŪTINAS 5 SEGMENTO AKTAS, GALI BŪTI SIUNTAS 9 SEGMENTAS

…………………………………….

Jei priėmimo langas būtų buvęs tik 2 KB, siuntėjas būtų buvęs priverstas palaukti vieną sekundę iš dviejų, kad galėtų išsiųsti daugiau duomenų. Tiesą sakant, norint išlaikyti nenutrūkstamą srautą, priėmimo lango dydis turi būti bent:

Langas = juostos plotis X kelionės laikas

Nors pavyzdys buvo perdėtas, jis rodo, kad mažas langas gali sukelti problemų dėl ilgai atidėtų palydovinių ryšių. Kitas pavyzdys yra tai, kas atsitinka su didelio pralaidumo jungtimis. Jei pralaidumas ir perdavimo greitis yra 10 milijonų bitų per sekundę, tačiau važiavimo į abi puses laikas yra 100 milisekundžių (1/10 sekundžių), priėmimo langas, palaikantis nenutrūkstamą srautą, turi išlaikyti mažiausiai 1 000 000 bitų, tai yra 125 000 baitų. Bet didžiausias skaičius, kurį galima parašyti TCP antraštės priėmimo lango lauke, yra 65 536 baitai.

1.11. TCP VALSTYBĖS

TCP ryšys eina per tam tikrą skaičių būsenų. Ryšys pirmiausia užmezgamas keičiantis pranešimais, tada perduodami duomenys, o tada ryšys uždaromas keičiantis pranešimais. Kiekvienas ryšio etapas atitinka ryšio būseną. Kiekviename ryšio gale esanti TCP programinė įranga visada stebi savo pusės būklę.

Serverio būsenos įvykio aprašymas

UŽDARYTA

Pasyvus atidarymas naudojant serverio programą „Dummy“ būsena prieš prisijungiant.

IŠKLAUSA Serveris laukia ryšio užklausos iš kliento.

TCP serveris gauna {SYN}, siunčia

{SYN / ACK} Serveris gavo {SYN} ir atsiuntė {SYN / ACK}. Palaukite {ACK}.

SINUOJA

TCP serveris gauna {ACK}

ĮRENGTAS {ACK} buvo gautas ir ryšys atviras.

Serverio būsenos perėjimai

Serverio būsenos įvykio aprašymas

UŽDARYTA

Klientas prašo prisijungti. TCP klientas siunčia SYN. Manekeno būsena prieš ryšį.

SYN-SEN TCP klientas išsiuntė {SYN} į serverį.

ĮDIEGTA TCP serveris gauna {SYN / ACK}, siunčia

{ACK}

Klientas gavo {SYN / ACK} iš serverio ir atsiuntė {ACK} atgal.

Galite pradėti duomenų perdavimą.

Kliento būsenos perėjimai.

Serverio būsenos įvykio aprašymas

ĮDIEGTA Vietinė programa reikalauja uždaryti. TCP siunčia {FIN / ACK}.

FIN-WAIT-1

TCP gauna {ACK} Kas uždaro, laukia atsakymo iš kito galo. Atminkite, kad šiuo metu duomenys vis tiek gali būti gaunami iš kito galo.

FIN-WAIT-2

TCP gauna {FIN / ACK}. Siųsti {ACK}. Kas uždaro, gavo {ACK} iš kito galo, bet ne {END}. Jis laukia {END}, kol priims gautus duomenis.

LAIKAS PALAUKITE Ryšys palaikomas visiškai, kad būtų galima gauti dubliuotų arba {FIN} kopijų duomenų, kurie gali būti tinkle. Laukimo laikotarpis yra dvigubai didesnis nei numatytas maksimalus segmento eksploatavimo laikas.

UŽDARYTA Visa informacija apie ryšį pašalinta.

Kas uždaro valstybės perėjimus.

Serverio būsenos įvykio aprašymas

ĮSTEIGTAS TCP gauna {FIN / ACK}.

UŽDARYTI-PALAUKITE-1

TCP siunčia {ACK} {FIN} atvyksta

FIN-WAIT-2

Vietinė programa nurodo išjungimą.

TCP siunčia {FIN / ACK}. TCP laukia, kol jūsų programa nurodys, kad uždaroma. Pasirinktinai programa gali siųsti daugiau duomenų.

PASKUTINĖS

TCP gauna {ACK} TCP laukia paskutinio {ACK}

UŽDARYTA Visa informacija apie ryšį pašalinta.

Uždarojo būsenos perėjimai.

Komanda „netstat –an“ gali būti naudojama dabartinei jungčių būklei ištirti. Šis įrankis teikia statistinę informaciją apie TCP / IP jungtis ir aktyvius protokolus.

„Netstat“ pateikia šią informaciją apie kiekvieną ryšį:

  • Protas. Transporto prototipas, naudojamas ryšiui užmegzti Vietinis adresas. Vietinio kompiuterio pavadinimas arba IP adresas ir prievado numeris, naudojamas tuo ryšiu. Su jungtimi susijęs išorinis adresas ir prievado numeris arba pavadinimas. Rodo ryšio būseną, tik TCP

„netstat“ yra tokia sintaksė:

netstat

Sintaksės aprašymas

-a rodo visus klausymo prievadus ir jungtis. (Paprastai serverio jungčių pabaiga nerodoma.)

-e rodo Ethernet statistiką. Jį galima derinti su galimybe -s.

-n Rodo adresų ir prievadų numerius skaitmeniniu formatu.

-o Rodo su kiekvienu ryšiu susijusį proceso ID.

-p proto Rodyti proto nurodyto protokolo jungtis; tai gali būti TCP, UDP, TCPv6 arba UDPv6. Jei naudojamas kartu su galimybe -s statistikos rodymui pagal protokolą, „proto“ gali būti TCP, UDP, TCPv6 arba UDPv6.

-r Parodo maršruto lentelės turinį.

-s Rodyti statistiką pagal protokolą. Pagal numatytuosius nustatymus jie rodomi IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP ir UDPv; galite naudoti parinktį p, norėdami nurodyti numatytųjų reikšmių pogrupį.

intervalas Iš naujo parodo pasirinktą statistiką, nustatytu sekundžių intervalu padarydamas tarp kiekvieno mėginio. Norėdami sustabdyti statistikos atnaujinimą, paspauskite „Ctrl“ + C. Jei praleistas, „netstat“ vieną kartą atspausdins konfigūracijos informaciją.

„Netstat“ be argumentų pateikia pagrindinę ryšių būseną.

C: \ netstat

Aktyvūs ryšiai

Proto Vietinis adresas Nuotolinio adreso būsena

TCP cia: 3012 baym-cs186.msgr.hotmail.com:1863 ĮSTEIGTA

TCP cia: 3032 194.224.100.71:http CLOSE_WAIT

TCP cia: 3048 a217-75-98-16.deploy.akamaitechnologies.com:http UŽDARYTI

Pasirinkus –s, rodoma IP, ICMP, TCP ir UDP protokolų statistika.

C: \ netstat -s

IPv4 statistika

Pakuotės gautos = 5963

Gautos antraštės klaidos = 0

Gautos adreso klaidos = 6

Persiųstos duomenų diagramos = 0

Gauta nežinomų protokolų = 0

Išmestos gautos pakuotės = 2395

Gauti paketai apdoroti = 3568

Siunčiamos užklausos = 3771

Maršruto išmetimas = 0

Siunčiamų paketų sumažėjo = 0

Siunčiami paketai be kelio = 0

Reikalingas surinkimas = 0

Teisingas surinkimas = 0

Netinkamas surinkimas = 0

Teisingai suskaidytos duomenų diagramos = 0

Blogai suskaidytos duomenų diagramos = 0

Sukurti fragmentai = 0

ICMPv4 statistika

Gauta išsiųsta

Žinutės

Klaidos

Paskirties vieta neprieinama

Laikas baigėsi

Parametrų problemos

Srauto reguliavimo paketai

Peradresavimai

Echos

Echo atsakymai

Datos

Atsakymų data

TCP statistika „IPv4“

Neaktyvus turtas = 221

Neapmokėti įsipareigojimai = 0

Nepavyko prisijungti = 8

Ryšiai atkurti = 78

Dabartinės jungtys = 5

Gauti segmentai = 2288

Išsiųsti segmentai = 2404

Perduoti segmentai = 10

UDP IPv4 statistika

Gautos duomenų diagramos = 1270

Nėra uosto = 2

Gauti klaidų = 16

Išsiųstos duomenų diagramos = 1353

Pasirinkus –an, jis parodo visų jungčių adresus ir būseną, taip pat jų prievadus.

C: \ netstat -an

Aktyvūs ryšiai

Proto Vietinis adresas Nuotolinio adreso būsena

TCP 0.0.0.0:135 0.0.0.0:07 KLAUSYMAS TCP 0.0.0.0:445 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:1026 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3012 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3023 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3024 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3032 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3040 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3048 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3056 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0.3057 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3067 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3201 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3220 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3227 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3228 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3229 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3231 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3236 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:3237 0.0.0.0:07 KLAUSYMAS

TCP 0.0.0.0:5000 0.0.0.0:07 KLAUSYMAS

TCP 127.0.0.1:3001 0.0.0.0:07 KLAUSYMAS

TCP 127.0.0.1:3002 0.0.0.0:07 KLAUSYMAS

TCP 127.0.0.1:3003 0.0.0.0:07 KLAUSYMAS

TCP 213.102.64.17:3012 207.46.4.54:1863 ĮSTEIGTAS

TCP 213.102.64.17:3032 194.224.100.71:80 UŽDARYTI

TCP 213.102.64.17:3048 217.75.98.16:80 ĮSTEIGTA

TCP 213.102.64.17:3187 216.12.215.207:80 TIME_WAIT

TCP 213.102.64.17:3201 217.75.98.7:80 ĮSTEIGTA

TCP 213.102.64.17:3220 130.94.72.189:80 PASTABA

TCP 213.102.64.17:3227 217.75.98.7:80 ĮSTEIGTA

TCP 213.102.64.17:3228 62.37.226.86:80 ĮSTEIGTA

TCP 213.102.64.17:3229 62.37.226.86:80 ĮSTEIGTA

TCP 213.102.64.17:3231 161.58.186.225:80 ĮSTEIGTA

TCP 213.102.64.17:3236 62.37.236.78:80 ĮSTEIGTA

TCP 213.102.64.17:3237 62.37.236.78:80 ĮSTEIGTA

UDP 0.0.0.0:135 *: *

UDP 0.0.0.0:445 *: *

UDP 0.0.0.0:500 *: *

UDP 0.0.0.0:1025 *: *

UDP 0.0.0.0.3010 *: *

UDP 0.0.0.0.3022 *: *

UDP 0.0.0.0.3031 *: *

UDP 0.0.0.0.3064 *: *

UDP 0.0.0.0.3065 *: *

UDP 127.0.0.1:123 *: *

UDP 127.0.0.1:1900 *: * UDP 127.0.0.1:2234 *: *

2 skyrius Vartotojo duomenų diagramos protokolas (UDP).

ĮVADAS

UDP yra belaidis 4 lygmens transporto protokolas (OSI). UDP yra duomenų diagramos protokolas, negarantuojantis duomenų pateikimo. Jei programa išsiunčia užklausą UDP duomenų schemoje ir atsakymas nepateikiamas per pagrįstą laiką, prašymą perduoti turi pati programa. UDP tiesiog siunčia datagramą ir visiškai nesvarbu, ar ji atvyks, ar ne. Negarantuodamas pristatymo, jis tampa daug spartesniu ir lengvesniu protokolu nei TCP, siūlant alternatyvų transportavimą tiems procesams, kuriems nereikia patikimo pristatymo.

Daugelis programų UDP naudoja pranešimus viena kitai arba greitas užklausas duomenų bazėms ar DNS (domenų vardų sistemai) serveriams. UDP yra puikus pastato stebėjimo, derinimo, valdymo ir testavimo funkcijų gabalas.

SERVERIS

KLIENTAS

Kuris yra adresas

IP….

Atsakyk

Bendravimas su UDP.

Nors UDP kai kuriais atvejais yra mažiau patikimas nei TCP, jis yra labiau rekomenduojamas nei TCP, nes tam tikrose situacijose jis teikia pranašumų:

  • Žinutės tarp šeimininkų yra atsitiktinės. SNMP (paprastas tinklo valdymo protokolas) vėl yra geras pavyzdys. Jūsų pranešimai siunčiami nereguliariais intervalais. Darbo krūvis, reikalingas atidaryti ir uždaryti TCP ryšį kiekvienam pranešimui, atidėtų perdavimą ir sumažintų jo vykdymą. Žinutės, kurioms nereikia patvirtinimo. UDP padeda sumažinti tinklo srautą. SNMP perspėjimai patenka į šią kategoriją. Dideliame tinkle sukuriama daugybė SNMP įspėjimų, kai SNMP įrenginiai perduoda savo būsenos atnaujinimus. Tačiau SNMP pranešimo praradimas paprastai nėra kritinis ir tinklas atleidžiamas nuo didelio darbo krūvio naudojant SNDP UDP. Patikimumas įgyvendinamas proceso lygiu.Tinklo failų sistema (NFS) yra geras proceso, kuris įgyvendina savo patikimumo funkciją ir vykdomas per UDP, tinklo gerinimo pavyzdys. Jį gali naudoti programos, kurioms reikia siųsti transliavimo ar daugialypės terpės pranešimus, pvz. BOOTP klientas.

2.1. TAIKYMO UOSTAI

UDP ir vietinio proceso sąsaja vadinama vartais. Kad programa galėtų prisijungti prie tinklo ir per jį siųsti duomenis, ji turi tai padaryti per prievadą.

1. Vartotojas iškviečia kliento programą, tokią kaip „nslookup“

2.Kliento procesas vykdo sistemos rutiną, kurioje sakoma: {Noriu UDP ryšio. Duok man uostą.}

3. Sistemos rutina priskiria nemokamą 16 bitų identifikatorių, vadinamą {port number}.

Uostai žymimi dešimtainiu skaičiumi nuo 0 iki 65,535. Gamintojai, įgyvendinantys UDP, turi didelę laisvę priskirti prievadų numerius procesams, nors interneto priskirtų skaičių tarnyba (IANA) standartinėms paslaugoms rezervavo prievadų diapazoną nuo 0 iki 1 023 (Žinomas), pvz., DNS, SNMP ar „Netbios“.

Uosto programos aprašymas

7 Echo Vartotojo duomenų diagramos aidas atgal į siuntėją.

9 Išmesti Išmeskite vartotojo duomenų diagramą.

13 DayTime lengvai nurodo laiką vartotojui.

17 Citata Grąžina {dienos citata}.

19 „Chargen Swap“ simbolių srautų

53 DNS domeno vardo serveris.

67 „Bootps“ serverio prievadas, skirtas atsisiųsti konfigūracijos informaciją.

68 „Bootpc Client“ prievadas, skirtas konfigūracijos informacijai gauti.

69 TFTP trivialus failų perdavimo protokolo prievadas.

161 SNMP naudojamas tinklo valdymo užklausoms gauti.

162 SNMP gaudyklė naudojama pranešimams apie tinklo problemas gauti.

Kai kurių viešųjų UDP prievadų sąrašas.

Kai kurios iš šių paslaugų teikia blokus testavimui, derinimui ir matavimui, pvz., „{Echo}“ paslauga 7 uoste, kur ji grąžina visas jam atsiųstas duomenų schemas. Kitas uostas, pvz., 9 (Atmesti), meta gautas duomenų schemas. 19 prievadas yra simbolių generatorius, kuriame jis reaguoja į bet kurį pranešimą su datagrama, kurioje yra nuo 0 iki 512 baitų. Skaičius pasirinktas atsitiktinai. Paskyrus dienos tarnybą, kuri klausosi 17 prievado, atsakoma į bet kokią duomenų schemą, siųsdama pranešimą su istorine ar populiaria išminties fraze uždarant sesiją ar vykdant likimo komandą. 13 prievadas („DayTime“) į bet kurią duomenų schemą reaguoja pranešimu, kuriame dabartinė data ir laikas yra skaitomi ASCII formatu. „BOOTP“ serveris ir klientas naudojami įrenginiams inicijuoti be konfigūracijos (nemandagūs terminalai).Darbo vieta gali sužinoti savo IP adresą, „Netmask“, numatytojo maršrutizatoriaus vietą, svarbių serverių adresą ir net programinės įrangos atsisiuntimo failo pavadinimą ir vietą iš įkrovos serverio. Darbo vietos programinė įranga atsisiųsta naudojant „Trivial File Transfer Protocol“ (TFTP; UDP 69).

TCP ir UDP prievadai yra vienas nuo kito nepriklausomi. Vienas procesas gali siųsti pranešimus per UDP 1700 prievadą, o kitas palaiko sesiją TCP 1700 prievade. Kai kurioms paslaugoms reikia prieigos prie TCP ir UDP, todėl IANA bando priskirti tą patį prievado numerį toms paslaugoms, kurioms reikalingas UDP, kaip TCP, pavyzdžiui, DNS, kurios klausosi TCP ir UDP 53 prievaduose.

IP ir prievado adreso derinys komunikacijai vadinamas {socket address} arba {socket}. Lizdas pateikia visą informaciją, kurios klientui ar serveriui reikia norint identifikuoti kitą galą.

UDP antraštė sudaryta iš dviejų 32 bitų žodžių ir turi šiuos laukus:

  • Šaltinio prievadas (16 bitų). Šis laukas yra neprivalomas ir jame nurodomas šaltinio prievadas, kai reikia leisti datagramos gavėjui siųsti atsakymą. Paskirties prievadas (16 bitų). Paskirties IP pagrindinio kompiuterio prievadas Ilgis (16 bitų). Datagramos ilgis oktetais, įskaitant antraštę ir duomenis. Mažiausia vertė yra 8, kad būtų galima naudoti antraštę. Todėl maksimalus UDP datagramos ilgis yra 65 535 oktatai, iš kurių 65 527 gali būti skirta duomenims. UDP kontrolinės sumos tikslas yra patvirtinti UDP pranešimo {turinį}. UDP kontrolinė suma apskaičiuojama derinant specialiai sukonstruotą pseudo antraštę su tam tikra IP informacija, UDP antraštė ir pranešimo duomenimis.Visų pirma UDP kontrolinės sumos naudojimas yra neprivalomas. Jei jo nenaudojate, lauko vertė yra 0. Jei buvo apskaičiuota kontrolinė suma, o jo vertė pasiekė 0, jį parodo laukas.

2.3. UDP PERŽIŪRA

Kai programa įsigyja uostą iš UDP, tinklo programinė įranga rezervuos kai kuriuos buferius, kad galėtų išlaikyti į tą uostą atvykstančių vartotojo duomenų schemų eilę. UDP tarnyba neturi galimybės nuspėti ar kontroliuoti, kiek duomenų schemų bus išsiųsta vienu metu.

Jei paslauga yra bombarduojama daugiau duomenų schemų, nei ji gali tvarkyti, šis perteklius tiesiog išmetamas.

Pavyzdys:

> netstat -a

……………….

0 neišsamių antraščių

0 blogų duomenų ilgio laukų

0 blogų kontrolinių sumų

17 lizdų perpildyta

2.4. Skirtumai tarp TCP ir UDP

Transporto sluoksnio esmė yra ta, kad jis leidžia programų kūrėjams pasirinkti patikimumą (TCP) arba efektyvumą (UDP).

Didelis TCP susidomėjimas yra jo galimybė atskirti viršutinio sluoksnio procesus nuo tinklo. Procesams nereikia žinoti pranešimų dydžio, nes TCP rūpinasi jų suskaidymu ir pakartotiniu surinkimu. Be to, procesams nerūpi tinklo patikimumas, nes TCP visiškai garantuoja jo nešamų pranešimų vientisumą.

Iš UDP pusės tai yra labiau nerūpestingas protokolas atliekant savo darbą. Skirtingai nuo TCP, UDP nereikia nustatyti virtualių grandinių tarp kompiuterių, tai leidžia judresnį ir efektyvesnį ryšį, todėl UDP palaiko transliavimo ir daugialypės terpės pranešimus.

Atsisiųskite originalų failą

Perdavimo perdavimo valdymo protokolas tcp