tcp protokolli toimimine. Mis vahe on TCP-l ja UDP-l lihtsas mõttes? Transpordikihi protsesside tuvastamine

TCP/IP-protokollivirna transpordiprotokollid TCP ja UDP pakuvad andmeedastust mis tahes paari vahel rakendusprotsessid töötavad võrgus ja pakuvad IP-protokollile liidest, demultipleksides mitu protsessi, kasutades transpordikihi aadressidena porte. Iga arvutis töötava rakendusprotsessi (AP) (rakenduse) puhul a mitu sisenemispunkti, tegutsedes transpordi aadressid, kutsus sadamad (Joon. 4.60).

Rakendusele pordi määramiseks on kaks võimalust:

· tsentraliseeritud(määratud või määratud numbrid vahemikus 0 kuni 1023), kasutades standardsed toad, määratud avalikele teenustele (rakendustele), näiteks: FTP – 21, telnet – 23, SMTP – 25, DNS – 53, HTTP – 80.

· kohalik(dünaamilised numbrid vahemikus 1024 kuni 65535), pakkudes kasutaja rakenduselt päringu saamisel juhuslikku numbrit tasuta numbrite loendist.

Dünaamilised rakenduse pordinumbrid on igas arvutis kordumatud, kuid võivad olla samad, mis teiste arvutite pordinumbrid. Nende erinevuse määrab ainult iga arvuti liideste erinevus, mis on määratud IP-aadressidega.

Seega paar " IP-aadress; pordi number", helistas pistikupesa (pesa), identifitseerib üheselt võrgus rakendusprotsessi.

UDP- ja TCP-pordi numbrid samas arvutis võivad olla samad, kuigi need tuvastavad erinevaid rakendusi. Seetõttu tuleb pordi numbri kirjutamisel märkida transpordikihi protokolli tüüp, näiteks 2345/TCP ja 2345/UDP. Mõnel juhul, kui rakendus saab valida juurdepääsu UDP-le või TCP-le, võidakse sellele määrata samad UDP- ja TCP-pordinumbrid, näiteks DNS-rakendusele on määratud numbrid 53–53/UDP ja 53/TCP.

Transpordiprotokoll UDP

UDP on transpordiprotokoll, mis pakub andmeedastust kujul datagramm mis tahes paari vahel rakendusprotsessid võrgus täitmine, ühenduseta. Segmendid koosnevad 8-baidisest päisest, millele järgneb andmeväli. UDP segmendi päis on näidatud joonisel 4.61.

UDP-d kasutatakse täitmisel kõige laialdasemalt klient-server rakendused(päringu-vastuse tüüp).

UDP aga ei tee:

· voolu reguleerimine,

· veakontroll,

· taasedastus pärast kahjustatud segmendi vastuvõtmist.

Näited Andmeedastuseks UDP-protokolli kasutavad rakendused on DHCP, DNS, SNMP.

Mõnel juhul ühel lõppsõlm Samast rakendusest võib töötada mitu koopiat. Tekib küsimus: mille poolest need rakendused erinevad?

Selleks vaatame lihtne näide päringu moodustamise protsess ja protseduur DNS-kliendi DNS-serveriga ühenduse võtmiseks, kui ühes arvutis töötab kaks DNS-serverit ja mõlemad kasutavad oma andmete edastamiseks UDP-transpordiprotokolli (joonis 4.62). DNS-serverite eristamiseks määratakse neile erinevad IP-aadressid - IP1 ja IP2, mis koos pordi numbriga moodustavad kaks erinevat pesa: “UDP port 53, IP1” ja “UDP port 53, IP2”.

Joonis 4.62, a) illustreerib protsessi, kus DNS-klient esitab DNS-serverile päringu.

DNS-i päring TCP/IP-protokolli virna transpordikihis edastatakse UDP-protokolli, mis sulgeb selle päringu UDP-datagrammi ja näitab päises sihtporti 53/UDP. Seejärel edastatakse UDP-datagramm Interneti-kihile, kus see on suletud IP-paketti, mille päis sisaldab "IP-aadress: IP2". IP-pakett omakorda edastatakse lüüsikihti, kus see paigutatakse vastava lingikihi päisega (LLC) lingikihi raami. See kaader edastatakse võrgu kaudu kahte DNS-serverit sisaldavasse arvutisse (joonis 4.62b).

Selles arvutis eemaldab Link Layer Protocol (LLP) PLC päise ja edastab kaadri sisu Interneti-kihile IP-protokolli, mis omakorda eraldab IP-paketist sisu (UDP datagrammi). Edasised manipulatsioonid edastatud andmetega erinevad punktis sätestatud põhimõtetest mitmetasandiline mudel protokolli hierarhia. Selle asemel, et lihtsalt edastada IP-paketi andmeväljalt leitud UDP-datagramm transpordikihile, IP-protokoll lisatakse UDP datagrammilepseudopäis, mis sisaldab muu hulgas saatja ja saaja IP-aadresse. Seega määrab UDP-protokoll, millel on IP-aadress ja sihtport, üheselt, et andmevälja sisu (st DNS-päring) tuleks üle kanda DNS-server 2 rakendusse.

Transport TCP protokoll

TCP-protokoll tagab usaldusväärse andmeedastuse rakendusprotsesside vahel, luues suhtlemisprotsesside vahel loogilisi ühendusi.

Loogiline ühendus Kahe rakendusprotsessi vahel identifitseeritakse pistikupesade paar (IP-aadress, pordi number), millest igaüks kirjeldab üht suhtlusprotsessi.

Kõrgema taseme protokollidest loogilise ühenduse osana TCP-protokolli saabuvat teavet käsitleb TCP-protokoll kui struktureerimata baitide voog ja sisestatakse puhvrisse. Võrgukihile edastamiseks lõigatakse see puhvrist välja segment, mitte üle 64 KB (maksimaalne IP-paketi suurus). Praktikas on segmendi pikkus tavaliselt piiratud 1460 baidiga, mis võimaldab selle paigutada TCP ja IP päistega Etherneti kaadrisse.

TCP-ühendus on suunatud täisdupleksedastus.

TCP-protokolli andmevoo juhtimine toimub mehhanismi abil muutuva suurusega lükandaken. Segmendi edastamisel käivitab saatesõlm taimeri ja ootab kinnitust. Negatiivseid laekumisi ei saadeta, vaid kasutatakse ajalõpu mehhanism. Segmendi vastu võtnud sihtsõlm moodustab ja saadab tagasi segmendi (koos andmetega, kui neid on, või ilma andmeteta), mille kinnitusnumber on võrdne järgmise seerianumbriga oodatud baidi number. Erinevalt paljudest teistest protokollidest kinnitab TCP kättesaamist mitte paketid, vaid baidid voolu. Kui kinnituse ajalõpp aegub, saadab saatja segmendi uuesti.

Vaatamata protokolli näilisele lihtsusele on sellel mitmeid nüansse, mis võivad põhjustada mõningaid probleeme.

Esiteks, kuna segmendid võivad võrgu kaudu edastamisel killuneda, on võimalik, et osa edastatud segmendist võetakse vastu, kuid ülejäänu läheb kaotsi.

Teiseks võivad segmendid jõuda sihtsõlme juhuslikus järjekorras, mis võib viia olukorrani, kus baidid 2345 kuni 3456 on juba saabunud, kuid nende kohta ei saa kinnitust saata, kuna baite 1234 kuni 2344 pole veel vastu võetud.

Kolmandaks võivad segmendid võrgus viibida nii kaua, et saatja aegub ja saadab need uuesti. Taasedatav segment võib kulgeda erineval marsruudil ja olla erinevalt killustatud või võib segment kogemata sattuda teel ülekoormatud võrku. Selle tulemusena on algse segmendi taastamiseks vaja üsna keerulist töötlust Joonis 4.63 näitab TCP segmendi päise vormingut. Päise esimesed 20 baiti on rangelt fikseeritud vormingus, millele järgneb täiendavad väljad. Täiendavate päiseväljade järel on andmeväli, mis ei sisalda rohkem kui 65 495 baiti, mis koos 20-baidiste TCP ja IP päistega annab IP paketi maksimaalseks lubatud suuruseks 65 535 baiti.

Detailidesse laskumata vaatleme lühidalt TCP segmendi päise fikseeritud väljade eesmärki.

Väljad "Saatja port" (2 baiti) ja "Receiver Port" (2 baiti) tuvastavad protsessid, mille vahel luuakse loogiline ühendus.

väli " Seerianumber"(4 baiti) sisaldab esimese baidi number segmendis olevad andmed, mis määrab segmendi nihke edastatud andmevoo suhtes

Väli "Kinnitusnumber" (4 baiti) sisaldab oodatakse järgmise baidi numbrit, mida kasutatakse kviitungina, mis kinnitab õige tehnika kõik eelmised baidid.

Väli TCP päise pikkus (4 bitti) määrab TCP segmendi päise pikkuse, mõõdetuna 32-bitistes sõnades.

6-bitine reservi väli on reserveeritud tuleviku jaoks.

Ühebitine lipud kannavad teenuseteavet segmendi tüübi kohta ja neid tõlgendatakse järgmiselt:

URG=1 näitab olemasolu kiireloomulised andmed, mis tähendab välja „Kiireliste andmete osutaja” kasutamist » ;

· ACK=1 tähendab, et segment on kviitung vastuvõetud segmendil ja väli „Kinnitusnumber” sisaldab sisukaid andmeid. Vastasel juhul ei sisalda see segment kinnitust ja välja „Kinnitusnumber” lihtsalt ignoreeritakse.

· PSH=1 (PUSH lipp) tähendab andmete saatmise taotlus ootamata puhvri täitumist;

RST=1 kasutatakse ühenduse oleku lähtestamine probleemide tuvastamisel, samuti kehtetu segmendi tagasilükkamiseks või ühenduse loomise katseks;

· SYN=1 kasutatakse ühenduse seadistamine, ja kui ACK=0, tähendab see, et kinnitusvälja ei kasutata;

FIN=1 kasutatakse lahtiühendamine.

Akna suuruse väli (2 baiti) määrab, mitu baiti saab pärast kinnitusbaiti saata.

Kontrollsumma väli (2 baiti) sisaldab kontrollsummat, mis katab päise, andmed ja pseudopealkiri.

Kontrollsumma arvutamise algoritm järgnevalt.

Enne kontrollsumma arvutamise algust määratakse selle välja väärtus võrdne nulliga. Kui andmeväli sisaldab paaritu arvu baite, siis on see polsterdatud nullbaidiga, mida kasutatakse kontrollsumma arvutamisel, kuid mida ei sisestata võrgus edastamiseks segmenti. Sellise lisamise vajadus tuleneb asjaolust, et TCP segmenti, sealhulgas päist, andmeid ja pseudopäist, käsitletakse 16-bitise komplektina. kahendarvud, mis kokku annavad lisakood, ja seejärel arvutatakse laekunud summale lisa, mis sisestatakse väljale “Kontrollsumma”.

Segmendi saaja arvutab samamoodi kogu segmendi kontrollsumma, sealhulgas välja Kontrollsumma. Ilmselgelt peab sel viisil saadud tulemus olema 0. Pange tähele, et kiirandmete osuti välja täiendav nullbait (2 baiti) sisaldab nihet baitides praegusest baidi järjekorranumbrist kiireloomuliste andmete asukohani, mis tuleb kiiresti vastu võtta, hoolimata puhvri ülevoolust. Seega rakendab TCP-protokoll katkestussõnumeid. Kiireloomuliste andmete sisuga tegeleb rakenduskiht. TCP-protokoll tagab ainult nende edastamise ja ei ole huvitatud katkestuse põhjusest.

Väljal Parameetrid on muutuv pikkus ja see võib puududa.

Näited Andmeedastuseks TCP-protokolli kasutavad rakendused on FTP, TFTP, DNS, POP3, IMAP, TELNET.

TCP/IP-protokoll loodi esmakordselt 1970. aastate alguses ja seda kasutati ARPANETi loomiseks. Tehnoloogia töötati välja sees uuringuprojekt, mille eesmärk oli uurida võimalikku võimalust arvutite kombineerimiseks ühes kohalikus või virtuaalses võrguvõrgus.

Ühenduse loomine TCP-s toimub spetsiaalse kliendiprogrammi, näiteks brauseri, meiliprogrammi või sõnumikliendi abil.

TCP struktuur

TCP/IP-struktuur võimaldab teil luua juurdepääsu kaugarvutid, samuti kombineerida üksikuid seadmeid, et luua kohalikke võrke, mis töötavad üldvõrkudest eraldi. TCP on usaldusväärne andmeedastusprotokoll. Seega on adressaadile tagatud kogu info, mis võrku saadetakse, kättesaamine, s.o. kasutaja, kellele andmed edastati.

TCP alternatiiviks on UDP. Nende võrkude oluline erinevus seisneb selles, et TCP peab esmalt looma usaldusväärse ühenduse teabe saatja ja saaja vahel. Kui ühendus on loodud, edastatakse andmed ja seejärel algab ühenduse katkestamise protseduur. UDP loob koheselt vajalike teabepakettide edastamise kasutajale ilma kanalit loomata.

Andmete saatmine TCP kaudu

Pärast paigaldamist TCP ühendused saadab andmeid mööda loodud marsruute vastavalt teabe saatja ja saaja IP-aadressidele. IP-aadress on kõigi jaoks ainulaadne identifikaator võrguseade Internetis ja seetõttu ei saa loodud tunneli kaudu saadetud paketti kaotsi minna ega eksikombel teisele kasutajale saata.

Andmeedastuse füüsilisel tasandil on teave sageduste, amplituudide ja muude signaalivormide kujul, mida saaja võrgukaart juba töötleb.

Vastutab teabe töötlemise eest arvutiga ja edastamise eest teistele komponentidele kanali protokollid, mille hulgas võib mainida Etherneti, ATM-i, SLIP-i, IEEE 802.11. Need kanalid ei paku mitte ainult andmeedastust, vaid ka adressaadile edastamise vormi. Seega edastatakse IEEE 802.11 võrkudes teavet traadita raadiosignaali abil. Sel juhul edastatakse signaal arvuti võrgukaardilt, millel on ka enda kood MAC. Etherneti puhul toimub kogu andmeedastus kasutades kaabliühendus.

Video teemal

Kaasaegsetes tingimustes on ühiskonna ja tsivilisatsiooni tegevus ilma vahendeid kasutamata võimatu kiire vahetus teavet. See probleem kutsutud lahendama globaalset arvutivõrgud.

Globaalne võrk (GCN) on võrk, mis koosneb arvutitest, mis katavad tohutuid territooriume ja millesse on kaasatud piiramatu arv see võrk arvutisüsteemid. Peamine tingimus toimimiseks sarnased võrgud on teabe kohene edastamine võrgu kaudu, sõltumata edastava ja vastuvõtva arvuti kaugusest.

Globaalne võrk erineb kohalikust esiteks madalama andmeedastuskiiruse poolest. Globaalsed võrgud töötavad TCP/IP, MPLS, ATM ja mõne muu protokolli kaudu. Tuntuim neist on TCP/IP-protokoll, mis sisaldab alamprotokolle erinevad tasemed: rakendus, transport, võrk, füüsiline ja kanal.

Rakenduse tasemel töötab enamik programme, millel on oma protokollid, mis on laialt tuntud tavakasutajatele PC (HTTP, WWW, FTP jne). Need protokollid pakuvad visualiseerimist ja kuvamist kasutaja poolt nõutud teavet.

Transpordiprotokoll vastutab andmete edastamise eest täpselt sellele rakendusele, mis suudab neid töödelda. Seda nimetatakse TCP-ks.

Võrgukiht võtab tegelikult vastu teavet lisataotluste edastamisel ja saatmisel madalad tasemed kogu teabe jaoks. Seda nimetatakse IP-protokolliks.

Füüsiline ja lingikiht vastutavad teabe edastamise tingimuste ja meetodite määratlemise eest.

Kõige kuulsam ülemaailmne võrk on WWW (maailm Lai Veeb), mis on kogum servereid, kus hoitakse kasutajatele vajalikku teavet, ja arvutitest, mis suudavad nii serveritelt infot vastu võtta kui ka nendesse üles laadida. WWW-d eristavad mugavus ja kasutuslihtsus ning madalad andmeedastuskiiruse nõuded. See võimaldas sellel võrgustikul areneda veidi üle kümne aasta.

Video teemal

Tavapärane on viidata sümboolsele tähistusele, mis asendab Internetis IP-aadresside põhjal numbrilist adresseerimist. Marsruutimistabeli töötlemisel kasutatav numbriline aadress on ideaalne arvuti kasutamine, kuid see tekitab kasutajal märkimisväärseid raskusi meelespidamisega. Appi tulevad mnemoonilise tähendusega domeeninimed.

Interneti-ühendused luuakse neljast väärtusest koosnevate numbrirühmadega, mis on eraldatud sümboliga "." ja kutsus IP-aadresse. Domeeninimekompleksi sümboolsed nimed on teenus, mis on loodud selleks, et hõlbustada võrgust vajaliku IP-aadressi leidmist. Domeeninime tehniline indikaator on "." kasutaja meiliaadressil. Seega on google.com-i aadressis domeeninimi com. Domeeninimi ise Nimi ei suuda pakkuda juurdepääsu nõutavale Interneti-ressursile. Mnemoonilise nime kasutamise protseduur koosneb kahest etapist: - IP-aadressid nime järgi hosts fail, mis sisaldab IP-aadressi ja arvuti nime vastavustabeleid - ühenduse loomine kaugveebiressursiga kindlal IP-aadressil Peamine ülesanne DNS-teenus on hankida ühenduse loomiseks IP-aadress, mis muudab selle teenuse TCP/IP-protokolli abistavaks. on domeeninime eraldaja, kuigi praktilistel eesmärkidel peetakse seda tavaliselt juurdomeeniks, millel pole oma tähist. Juur - kogu Interneti-hostide komplekt - jaguneb: - esimene tase - gov, edu, com, net; - riigikoodid- uk, jp, ch jne; - piirkondlikud domeenid - msk;- ettevõtte domeenid- organisatsioonide domeenid Domeeninimede tuttava puustruktuuri säilitamine tõi kaasa väljakujunenud terminoloogia - juur, puu sõlmed, leht - kasutamise. Mõiste "host" on selles hierarhias määratud lehele, mille all pole ühtegi sõlme. Täisnimi host muutub kõigi järjestikuseks loendiks vahepealsed sõlmed juure ja lehe vahel, eraldatuna märgiga "." vasakult paremale: ivan.net.abcd.ru, kus ru on puu juur, abcd on organisatsiooni nimi, ivan on puu leht (host).

Video teemal

Allikad:

  • Interneti-domeeninimede süsteem 2018. aastal

Paljud inimesed tunnevad lühendit TCP; palju vähem inimesi teab, et see on andmeedastusprotokoll. Kuid peaaegu keegi ei tea, kuidas see töötab.

Tähelepanu! See materjal on mõeldud neile, kes on tõesti huvitatud küsimusest: "Kuidas võrk töötab ja mida ma saan teha, kui ma seda tean." Kui teid segavad endiselt sõnad nagu DNS, Telnet, Socket, siis võite selle materjali kohe unustada - selliseid “hirmutavaid” sõnu siin kindlasti ei ilmu, kuid see ei tee sisu selgemaks...

Neile, kes jäid:

Tõenäoliselt on paljud teist kuulnud selliseid sõnu nagu SYN-üleujutus või IP-spoofing. Kõik need on rünnakute tüübid – esimene D.O.S., teine
koosneb IP-aadressi võltsimisest. Esmapilgul pole nendel näidetel midagi ühist, kuid vahepeal pole see nii – mõlemad rünnakud pole võimalikud ilma TCP-protokolli sügava tundmiseta, mille protokolli
Inet.

TCP-protokolli spetsifikatsiooni on kirjeldatud dokumendis RFC793. Soovitan teil seda dokumenti lugeda, sest kuigi ma püüan teile kõige olulisemat edastada, pakkudes seda olulist asjakohaste kommentaaridega, mida te juhendist ei leia, kuid siiski väikese mahu ja praktilise vaatenurga tõttu. , võin mõnedest nüanssidest puudust tunda.

Andmed edastatakse pakettide kujul. Selline edastamise korraldus tähendab, et andmed, olenemata sellest, kui suured need on, jagatakse eraldi fragmentideks, mis moodustatakse pakettidena (pakettide moodustamine eeldab andmete lisamist teenuse päis), misjärel edastatakse andmed pakettidena üle võrgu (ja pakettide edastamise järjekord võib olla häiritud). Vastuvõttev süsteem "monteerib" pakettide päiste alusel pakettidest esialgse andmemassiivi. See ei ole väga selge, kuid ainult seni, kuni me vaatame pakendite struktuuri.

TCP paketi struktuur:

Selgitan ainult kõige olulisemaid punkte:

Saaja aadress, saaja port ja saatja aadress, saatja port – loodan, et see on selge.

Järjestusnumber (SYN) - järjekorranumber või seerianumber, näitab edastamise ajal paketi järjekorranumbrit, mistõttu kogub vastuvõttev süsteem paketid täpselt nii nagu peab, mitte saabumise järjekorras.

Acknowledgement Number (ACK) – kinnituse number, näitab, millisele paketile SYN vastab kaugsüsteem, seega arvame, et kaugsüsteem võttis meie paketi nende andmetega vastu
SYN.

Juhtbitid - 6 bitti (skeemil tagurpidi ja akna vahel). Bitiväärtused:

URG: kiireloomuline kursoriväli on lubatud
ACK: kinnitusväli on lubatud
PSH: tõukefunktsioon
RST: taaskäivitage see ühendus
SYN: järjekorranumbrite sünkroonimine
FIN: enam andmeid üle kanda pole

ANDMED on otse andmed, mida tahame üle kanda.

Ma arvan, et see on kõik, mida peate alustama, et mõista, kuidas protokoll toimib. Ülejäänud väljade tähenduse kohta saate täpsemalt lugeda RFC793-st. Noh, me mõistame paremini, kuidas see praktikas töötab.

Kui tahame ühendust luua, saadame kaugsüsteemi järgmise struktuuriga paketi:

Klient – ​​SYN (856779) – host

Kus klient oleme meie ja host on kaugsüsteem. Nagu näete, saadame paketi, mis näitab ainult SYN-i - see tähendab, et see pakett on esimene, me ei reageeri millelegi (ACK-i pole). Praegune pakett näeb välja umbes selline:

20 53 52 43 00 00 44 45 53 54 00 00 08 00 45 00 00 2C C3 00 40 00 20 06 10 0C CB 5E FD BA CB 5E F3 071004CB 47004 0 00 00 60 02 20 00 D9 70 00 00 02 04 05 B4 2D

Huvitav on see, kust SYN pärineb. SYN tuletatakse esialgsest järjekorranumbrist
(ISN) on 32-bitine arv vahemikus 1 kuni 4294967295 (2 kuni 32. aste). Süsteemi taaskäivitamisel on ISN 1, siis iga sekundiga suureneb see 128000 võrra (rangelt võttes toimub muutus iga 4 mikrosekundi järel) + iga sekund loodud ühendus See suureneb 64 000 võrra. Selgub, et ISN unikaalsustsükkel, eeldades, et ühendusi ei loodud, on ligikaudu 4,55 tundi. Kuna ükski pakett ei liigu võrgus nii kaua, võime eeldada, et SYN on täiesti unikaalne.

Pärast meie paketi kättesaamist vastab kaugsüsteem, et on selle kätte saanud ja on ühenduse loomiseks valmis. Andmepakett näeb välja selline:

Host – SYN (758684758) ja ACK (856780) – klient

Nagu näete, annab kaugsüsteem selgelt teada, et on meie paketi kätte saanud. Selleks saadab see meile ACK-i numbriga “meie SYN+1”. Lisaks saadab kaugsüsteem meile oma SYN-i (vastame ka). Ja meie vastus on järgmine:

Klient – ​​SYN (856780) ja ACK (758684759) – host

Ma arvan, et nüüdseks peaks kõik selge olema. Kui keegi aru ei saa, tähendab pakett järgmist: teie pakett SYN-iga (758684758) on vastu võetud, ühendus on loodud, meie SYN on 856780.

Seda protseduuri nimetatakse "kolmekordseks kinnituseks" või "kolmekordseks käepigistuseks". Esimesed kaks sammu on vajalikud meie süsteemide SYN-i sünkroonimiseks ja kolmas on sünkroonimise toimumise kinnitamine.

Järgmiseks on meil andmevahetus, st. selleks ühendus loodi. Lisaks tuleb märkida, et kõikides etappides toimub TCP-protokolli abil edastatavate andmete ohutuse tagamine järgmiselt: saadetud pakett paigutatakse puhvrisse ja kui kindel aeg kaugsüsteemist ei saabu kinnituspakett (ACK), pakett saadetakse uuesti; kui kinnitus on saabunud, loetakse pakett edukaks ja eemaldatakse puhvrist.

Noh, me ei vaja enam ühendust, saame selle sulgeda. See etapp kordub
koosnevad mitmest etapist - loodan, et saate neid pakette juba ise lugeda.

Klient – ​​FIN(4894376) ja ACK (1896955378) – host

Host – ACK (4894377) – klient

Host – FIN (1896955378) ja ACK (4894377) – klient

Klient – ​​ACK (1896955378) – host

Ma arvan, et siin pole midagi keerulist. Tähelepanu väärib vaid FIN-lipp, mis tähendab soovi ühendus katkestada.

Ülaltoodut kokku võttes paneme tähele, millistel juhtudel seerianumbrid muutuvad/ei muutu:

Ühe FIN-paketi edastamine = +1
Ühe SYN-paketi edastamine = +1
Ühe ACK-paketi edastamine = 0
Ühe SYN/ACK paketi edastamine = +1
Ühe FIN/ACK paketi edastamine = +1
Muutus 1 sekundiga = +128 000
Ühe ühenduse loomine = +64 000

Võib-olla küsib keegi: "Mis juhtub, kui masin saab ACK-iga paketi, mida seal polnud?" (SYN=ACK-1, aga me ei saatnud sellise SYN-iga paketti). Olles saanud vastuse millelegi ebaselgele, vastame kaugsüsteemile omakorda NACK-paketiga (tähendab "ma ei tea, millest te räägite", ühendust ei looda), kuid ma loodan, et sellest räägime teiega järgmisel korral üksikasjalikumalt.

Internetis arvutitevaheline suhtlus toimub läbi võrguprotokollid, mis on kokkulepitud konkreetsete reeglite kogum, mille kohaselt erinevaid seadmeid andmeedastused vahetavad teavet. Veakontrollivormingute jaoks on olemas protokollid ja muud tüüpi protokollid. Globaalselt Interneti-töö Kõige sagedamini kasutatav protokoll on TCP-IP.

Mis tehnoloogia see on? Nimi TCP-IP pärineb kahest võrguprotokollist: TCP ja IP. Loomulikult ei piirdu võrkude ehitamine nende kahe protokolliga, vaid need on andmeedastuse korralduse osas elementaarsed. Tegelikult on TCP-IP protokollide komplekt, mis võimaldab üksikutel võrkudel moodustada kokku

TCP-IP protokoll, mida ei saa kirjeldada ainult IP ja TCP definitsioonidega, sisaldab ka protokolle UDP, SMTP, ICMP, FTP, telnet ja palju muud. Need ja teised TCP-IP-protokollid pakuvad kõige rohkem täiskohaga töö Interneti-võrgud.

Allpool anname üksikasjaliku kirjelduse iga lisatud protokolli kohta üldine kontseptsioon TCP-IP.

. Interneti protokoll(IP) vastutab teabe otsese edastamise eest võrgus. Teave jagatakse osadeks (teisisõnu pakettideks) ja edastatakse saatjalt adressaadile. Täpse adresseerimise jaoks peate määrama saaja täpse aadressi või koordinaadid. Sellised aadressid koosnevad neljast baidist, mis on üksteisest punktidega eraldatud. Iga arvuti aadress on kordumatu.

Samas ei pruugi korrektseks andmeedastuseks piisata ainult IP-protokolli kasutamisest, kuna enamuse edastatava info maht on üle 1500 tähemärgi, mis ei mahu enam ühte paketti ning osa pakette võib edastuse käigus kaduma minna või vale järjekord, mida vaja.

. Edastamise juhtimisprotokoll(TCP) kasutatakse eelmisest kõrgemal tasemel. Tuginedes IP-protokolli võimele edastada teavet ühest hostist teise, võimaldab TCP-protokoll suurel hulgal teavet saata. TCP vastutab ka eraldamise eest edastatud teave eraldi osadeks - pakenditeks - ja korralik taastumine pärast edastamist vastu võetud pakettide andmed. Sel juhul kordab see protokoll automaatselt vigu sisaldavate pakettide edastamist.

Suurte mahtude andmeedastuse korraldamist saab hallata mitmete spetsiaalsete protokollidega funktsionaalne eesmärk. Eelkõige on olemas järgmist tüüpi TCP-protokolle.

1. FTP (Faili edastus Protokoll) korraldab failiedastuse ja seda kasutatakse teabe edastamiseks kahe Interneti-sõlme vahel, kasutades TCP-ühendusi binaar- või lihtsa tekstifaili kujul, arvutimälus nimetatud alana. Sel juhul pole vahet, kus need sõlmed asuvad ja kuidas need omavahel ühendatud on.

2. Kasutaja Datagrammi protokoll, ehk User Datagram Protocol, on ühendusest sõltumatu ja edastab andmeid pakettidena, mida nimetatakse UDP datagrammideks. See protokoll ei ole aga nii usaldusväärne kui TCP, sest saatja ei tea, kas pakett ka tegelikult vastu võeti.

3. ICMP(Internet Control Message Protocol) on olemas Internetis andmevahetuse ajal ilmnevate veateadete edastamiseks. ICMP-protokoll teatab siiski ainult vigadest, kuid ei kõrvalda põhjusi, mis nende vigadeni viisid.

4. Telnet- mida kasutatakse tekstiliidese rakendamiseks võrgus, kasutades TCP transporti.

5. SMTP(Simple Mail Transfer Protocol) on eriline meili teel, mis määrab sõnumite vormingu, mis saadetakse ühest arvutist, mida nimetatakse SMTP-kliendiks, teise arvutisse, kus töötab SMTP-server. Kus see saadetis võib mõnda aega edasi lükata, kuni nii klient kui ka server on aktiveeritud.

Andmeedastusskeem TCP-IP protokolli kaudu

1. TCP-protokoll jagab kogu andmehulga pakettideks ja nummerdab need, pakkides need TCP-ümbrikutesse, mis võimaldab taastada teabe osade vastuvõtmise järjekorra. Andmete paigutamisel sellisesse ümbrikusse arvutatakse kontrollsumma, mis seejärel kirjutatakse TCP päisesse.

3. Seejärel kontrollib TCP, kas kõik paketid on vastu võetud. Kui vastuvõtmise ajal ei kattu äsja arvutatud ümbrikul märgituga, näitab see, et osa teabest läks edastuse ajal kaduma või moonutati, nõuab TCP-IP protokoll uuesti selle paketi edastamist. Samuti on vajalik andmete saaja kinnitus andmete kättesaamise kohta.

4. Pärast kõigi pakettide vastuvõtmise kinnitamist korraldab TCP-protokoll need vastavalt ja koondab need uuesti ühtseks tervikuks.

TCP-protokoll kasutab korduvaid andmeedastusi ja ooteperioode (või aegumistähtajaid), et tagada teabe usaldusväärne edastamine. Pakette saab korraga edastada kahes suunas.

Seega TCP-IP välistab vajaduse kordusedastuste järele ja ootab rakendusprotsesse (nt Telnet ja FTP).

TCP (Transmission Control Protocol) on usaldusväärne ühendusele orienteeritud protokolli alternatiiv UDP-le, mis vastutab enamiku kasutajaandmete edastamise eest TCP/IP-võrkude kaudu ja aitas isegi kaasa kogu protokollide komplekti nimele. TCP-protokoll, nagu on määratletud punktis RFC dokument 793, pakub rakendustele täielikku valikut transporditeenuseid, sealhulgas pakettide kinnitamist, vigade jälgimist ja parandamist ning voo juhtimist.

TCP-protokoll on loodud suhteliselt edastama suured mahud teave, mida ilmselt ei saa ühte pakendisse pakendada. Teave on tavaliselt tervete failide kujul, mis tuleb edastamiseks jagada mitmeks datagrammiks. Transpordikihile edastatavat teavet peetakse TCP-protokolli terminoloogias jadaks, mille protokoll jagab võrgu kaudu edastamiseks segmentideks. Nagu juhtumil UDP protokoll, pakitakse segmendid seejärel IP-andmegrammidesse, mis suudavad marsruudi sihtkohta jõuda erinevatel viisidel. Seetõttu annab TCP igale segmendile järjekorranumbri, et vastuvõttev süsteem saaks need õiges järjekorras kokku panna.

Enne TCP-ga kasutajaandmete edastamise alustamist vahetavad kaks süsteemi ühenduse loomiseks sõnumeid. See tagab, et vastuvõttev süsteem on töökorras ja võimeline andmeid vastu võtma. Kui ühendus on loodud ja andmeedastusprotsess algab, saadab vastuvõttev süsteem perioodiliselt sõnumeid, mis kinnitavad pakettide vastuvõtmist. Need teated teavitavad saatvat süsteemi kaotsiläinud pakettidest ja annavad talle ka teavet, mida kasutatakse edastuskiiruse jälgimisel.

TCP sõnumi vorming

TCP päiseväljade funktsioone kirjeldatakse allpool.

Lähteport (SourcePort), 2 baiti. Tuvastab saatva süsteemi pordi numbri, mida kasutab TCP segmentide kaudu edastatava teabe loonud protsess. Mõnel juhul võib see nii olla fiktiivne number port, mille klient on spetsiaalselt selle tehingu jaoks eraldanud.

DestinationPort, 2 baiti. Näitab sihtsüsteemi pordi numbrit, kuhu TCP segmendi teave tuleb saata. Pordinumbrid on loetletud dokumendis "AssignedNumbers" ja iga TCP/1P-süsteemi failis SERVICES.

SequenceNumber, 4 baiti. Määrab konkreetse segmendi asukoha kogu andmejada suhtes.

AcknowledgementNumber, 4 baiti. Määrab maksimaalse baitide arvu segmendis ühe võrra suurendatuna, mille kinnitav süsteem loodab saatjalt saada. Kasutatakse koos ACK juhtbitiga.


Andmete nihe (DataOffset), 4 bitti. Määrab 4-baidiste sõnadega TCP päise pikkuse (mis võib sisaldada suvandeid, mis suurendavad selle suurust kuni 60 baiti).

Reserveeritud, 6 bitti. Pühendatud hilisemateks rakendusteks.

Juhtbitid, 6 bitti. Sisaldab kuut 1-bitist lippu, mis täidavad järgmisi funktsioone:

URG - näitab, et jada sisaldab kiireloomulisi andmeid ja aktiveerib kiireloomulisuse indikaatori välja;

ACK – märgib, et teade on kinnitus eelnevalt saadud andmetele ja aktiveerib kinnitusnumbri välja;

PSH – annab vastuvõtvale süsteemile korralduse edastada kogu vastuvõetud jooksva jadateabe Sel hetkel, sihtpordi välja abil tuvastatud rakendus, ootamata ülejäänud fragmentide saabumist;

RST - annab vastuvõtvale süsteemile korralduse tühistada kõik seni vastuvõetud praeguse jada segmendid ja alustada uuesti TCP-ühenduse loomist;

SYN - kasutatakse ühenduse loomise protseduuri ajal edastatavate andmete arvu sünkroonimiseks interakteeruvate süsteemide vahel;

FIN - teavitab teist süsteemi, et andmeedastus on lõppenud ja ühendus tuleks katkestada.

Aken, 2 baiti. Rakendab TCP voojuhtimismehhanismi (libistatav aken), deklareerides baitide arvu, mida sihtsüsteem saab lähtesüsteemist vastu võtta.

Kontrollsumma, 2 baiti. Sisaldab kontrollsumma arvutamise tulemust, võttes arvesse TCP päist, andmeid ja pseudopäist, mis koosneb IP päise lähte IP-aadressi, protokolli, sihtkoha IP-aadressi väljadest ja kogu TCP-sõnumi pikkusest. .

UrgentPointer, 2 baiti. Kasutatuna koos URG-bitiga, määrab see jadaandmed, mida adressaat peaks pidama kiireloomuliseks.

Valikud, muutuv suurus. Võib sisaldada lisa konfiguratsiooniparameetrid TCP-ühenduse jaoks koos joondusbittidega, mis on vajalikud välja suuruse viimiseks lähima 4-baidise kordseni. Võimalikud valikud on loetletud allpool.

Maksimaalne suurus segment (MaximumSegmentSize). Määrab maksimaalse segmendi suuruse, mida praegune süsteem saab vastu võtta teiselt sellega ühendatud süsteemilt.

Akna mastaabitegur. Kasutatakse aknavälja suuruse suurendamiseks 2-lt 4-le baidile.

Ajatempel. Kasutatakse andmepakettide ajatemplite salvestamiseks, mille vastuvõttev süsteem saatjale kinnitamise eesmärgil tagastab. See võimaldab saatjal mõõta andmete edasi-tagasi reisimise aega.

Andmed, muutuv suurus. Võib sisaldada andmesegmente, mis pärinevad protokollivirna ülaosast, protokollidest Rakenduskiht. IN SYN paketid, ACK ja FIN see väli jäetakse tühjaks.

IPX/SPX: NovellNetWare operatsioonisüsteemi transporditeenuste pakkumiseks lõi Novell oma protokollivirnu, mis sai üldnimetus Võrgukihi protokolli nimega - IPX (InternetworkPacketExchange, Interneti-paketivahetus). Analoogiliselt TCP/IP-ga nimetatakse seda pinu mõnikord ka IPX/SPX-ks. Selle nimetuse teine ​​osa viitab SPX-ile (SequencedPacketeXchange), mis on transpordikihil töötav protokoll. Kuid erinevalt TCP ja IP kombinatsioonist, mis on TCP/IP-võrkudes üldlevinud ja mõeldud peamiselt edastamiseks suur kogus IPX/SPX kompleksi leidub NetWare'i võrkudes suhteliselt harva.

IPX-protokollid on mitmes aspektis sarnased TCP/IP-ga. Mõlemad protokollivirnad kasutavad Võrgu tase ebausaldusväärsed ühenduseta protokollid (vastavalt IPX ja IP) mitme protokolli andmeid sisaldavate andmegrammide transportimiseks ülemised tasemed, mis pakub laia valikut teenuseid erinevate rakenduste jaoks. Sarnaselt IP-ga vastutab IPX datagrammide adresseerimise ja nende teise võrgu sihtkohta suunamise eest.

Kuid erinevalt TCP/IP-st olid IPX-protokollid mõeldud kasutamiseks kohalikud võrgud, ja ei toeta Interneti-protokollidele omast peaaegu piiramatut mastaapsust. IPX-il pole sama sõltumatut adresseerimissüsteemi, mis IP-protokollil. Süsteemid sisse NetWare võrgud teiste süsteemide tuvastamine tahvlitesse ühendatud riistvaraaadresside kaudu Võrguadapterid koos võrguaadressiga, mille administraator (või OS) on määranud operatsioonisüsteemi installimise ajal.

IPX-andmegramme kantakse standardsete protokolliraamide sees Linkikiht täpselt nagu IP datagrammid. IPX-protokollidel pole oma lingikihi protokolle. Enamikus võrkudes on andmed siiski IPX-kapseldatud Etherneti raamid või TokenRing.

IPX protokoll

IPX põhineb IDP (InternetworkDatagramPacket) protokollil, mis on mõeldud võrguteenused Xerox (XNS, XeroxNetworkServices). IPX pakub põhilist transporditeenused ilma ringhäälingu ja ühesuunalise edastamise ajal Interneti-süsteemide vahel ühendust loomata. Enamik tavalist liiklust NetWare'i serverite või klientide ja serverite vahel kantakse üle IPX-i andmegrammide.

IPX datagrammi päis on 30 baiti pikk (võrdluseks IP päis 20 baiti). Päiseväljade eesmärk on loetletud allpool.

Kontrollsumma, 2 baiti. Algses IDP päises sisaldab see väli datagrammi CRC väärtust. Kuna lingikihi protokollid ise teostavad kontrolli kontrollsummad, See seda funktsiooni datagrammide töötlemisel IPX-i ei kasutata ja väli sisaldab alati kuueteistkümnendväärtus ffff.

Pikkus, 2 baiti. Määrab datagrammi suuruse baitides, sealhulgas IPX päise ja andmevälja.

Tarnekontroll (TransportControl), 1 bait. Seda välja tuntakse ka hüpete arvuna. See salvestab ruuterite arvu, millest datagramm teel sihtkohta läbis. Saatesüsteem lähtestab selle väärtuseks 0 ja iga ruuter suurendab datagrammi töötlemisel loenduri väärtust 1 võrra. Niipea kui transiitruuterite arv jõuab 16-ni, viskab viimane datagrammi ära.

Paketi tüüp (Packet Type), 1 bait. Tuvastab ülemise kihi teenuse või protokolli, mis lõi datagrammi kantud andmed. Kasutatakse järgmised väärtused:

0 - pole määratletud;

1 - RoutingInformationProtocol (RIP, marsruutimisteabe protokoll);

4 - ServiceAdvertisingProtocol (SAP, teenuse teavitusprotokoll);

5 - SequencedPacketExchange (SPX, järjestikune pakettvahetus);

17 - NetWare Core Protocol (NCP, NetWare'i põhiprotokoll).

Sihtvõrgu aadress, 4 baiti. Näitab võrku, kus vastuvõttev süsteem asub, sisaldab administraatori määratud väärtust või operatsioonisüsteem NetWare installimise ajal.

DestinationNodeAddress, 6 baiti. Määrab selle arvuti võrguliidese, kuhu andmed tuleb edastada; see on lingikihi protokolli riistvaraaadress. Edastada sõnumeid edastatakse kuueteistkümnendsüsteemi aadressiga ffffffffffffff.

DestinationSocket, 2 baiti. Vastutab vastuvõtvas süsteemis töötava protsessi tuvastamise eest, mille jaoks datagrammis olevad andmed on tegelikult mõeldud. Kasutatakse ühte järgmistest väärtustest:

0451 - NetWare'i põhiprotokoll;

0452 – teenuse reklaamiprotokoll;

0453 – marsruutimisteabe protokoll;

0455 - NetBIOS;

0456 - diagnostikapakett;

0457 - serialiseerimispakett;

4000-6000 - serveriprotsessidele eraldatud pistikupesad;

9000 - NetWareLinkServicesProtocol;

9004 – IPXWAN protokoll.

Võrgu lähteaadress (SourceNetworkAddress), 4 baiti. Tuvastab võrgu, milles datagrammi saatnud süsteem asub. Kasutab NetWare'i installimise ajal administraatori või operatsioonisüsteemi määratud väärtust.

Lähtesõlme aadress (SourceNodeAddress), 6 baiti. Sisaldab riistvara lingikihi protokolli aadressi võrguliides arvuti, mis saatis datagrammi.

Allika pesa (SourceSocket), 2 baiti. Määratleb käimasoleva protsessi kohalik süsteem, mis genereeris pakettandmed. Kehtivad samad väärtused, mis sihtkoha pesa väljal.

Andmed muutuva pikkusega. Kõrgema kihi protokolli genereeritud teave.

Kuna IPX on ühenduseta protokoll, tugineb see ülemise kihi protokollidele, et kontrollida, kas andmed on õigesti edastatud. Sellegipoolest NetWare'i kliendid aktiveerida süsteemi kell päringu ajalõpp, mille järel sunnib taimer neid IPX-i datagrammi uuesti saatma, kui vastust ei saada määratud aja jooksul.