Funkcioniranje tcp protokola. Koja je razlika između TCP-a i UDP-a, jednostavnim rječnikom rečeno. Identifikacija procesa na transportnom sloju

Prijenosni protokoli TCP i UDP skupa TCP/IP protokola omogućuju prijenos podataka između bilo kojeg para procesi primjene rade na mreži i pružaju sučelje za IP protokol demultipleksiranjem više procesa koristeći portove kao adrese prijenosnog sloja. Za svaki aplikacijski proces (AP) (aplikacija) koji se izvodi na računalu, a više ulaznih točaka, djelujući kao transportne adrese, nazvao luke (Slika 4.60).

Postoje dva načina za dodjelu porta aplikaciji:

· centralizirano(dodijeljeni ili dodijeljeni brojevi od 0 do 1023), korištenjem standardne sobe, dodijeljen javnim servisima (aplikacijama), na primjer: FTP – 21, telnet – 23, SMTP – 25, DNS – 53, HTTP – 80.

· lokalni(dinamički brojevi od 1024 do 65535), pružanje slučajnog broja s popisa besplatnih brojeva kada se primi zahtjev iz korisničke aplikacije.

Dinamički brojevi portova aplikacija jedinstveni su unutar svakog računala, ali mogu biti isti kao brojevi portova na drugim računalima. Razlika između njih određena je samo razlikom u sučeljima svakog računala, određenim IP adresama.

Dakle, par IP adresa; broj porta“, pozvao utičnica (utičnica), jedinstveno identificira aplikacijski proces na mreži.

Brojevi UDP i TCP priključaka unutar istog računala mogu biti isti, iako se identificiraju različite primjene. Stoga, kada pišete broj porta, tip protokola prijenosnog sloja mora biti naznačen, na primjer, 2345/TCP i 2345/UDP. U nekim slučajevima, kada aplikacija može odabrati pristup UDP-u ili TCP-u, mogu joj se dodijeliti isti brojevi UDP i TCP porta, na primjer, DNS aplikaciji se dodjeljuje broj 53 - 53/UDP i 53/TCP.

Transportni protokol UDP

UDP je transportni protokol koji omogućuje prijenos podataka u obliku datagram između bilo kojeg para procesi primjene izvršavanje na mreži, bez veze. Segmenti se sastoje od 8-bajtnog zaglavlja nakon kojeg slijedi podatkovno polje. Zaglavlje UDP segmenta prikazano je na slici 4.61.

UDP se najčešće koristi u izvršavanju klijent-poslužitelj aplikacije(vrsta zahtjev-odgovor).

Međutim, UDP ne čini:

· kontrola protoka,

· kontrola grešaka,

· ponovno slanje nakon primanja oštećenog segmenta.

Primjeri aplikacije koje koriste UDP protokol za prijenos podataka su DHCP, DNS, SNMP.

U nekim slučajevima, na jednom krajnji čvor Može biti pokrenuto više kopija iste aplikacije. Postavlja se pitanje: po čemu se te aplikacije razlikuju?

Da bismo to učinili, pogledajmo jednostavan primjer proces formiranja zahtjeva i postupak kontaktiranja DNS klijenta s DNS poslužiteljem, kada dva DNS poslužitelja rade na jednom računalu, a oba koriste UDP transportni protokol za prijenos svojih podataka (sl. 4.62). Kako bi se razlikovali DNS poslužitelji, dodijeljene su im različite IP adrese - IP1 i IP2, koje zajedno s brojem porta čine dva različita utičnica: “UDP port 53, IP1” i “UDP port 53, IP2”.

Slika 4.62, a) ilustrira proces DNS klijenta koji formira zahtjev prema DNS poslužitelju.

DNS zahtjev na transportnom sloju skupa protokola TCP/IP prenosi se na UDP protokol, koji ovaj zahtjev zatvara u UDP datagram i ukazuje na odredišni port 53/UDP u zaglavlju. UDP datagram se zatim prosljeđuje međumrežnom sloju, gdje se zatvara u IP paket čije zaglavlje sadrži "IP adresa: IP2". IP paket se, pak, prenosi na sloj pristupnika, gdje se postavlja u okvir sloja veze s odgovarajućim zaglavljem sloja veze (LLC). Ovaj se okvir prenosi preko mreže na računalo koje sadrži dva DNS poslužitelja (Slika 4.62b).

U ovom računalu, Link Layer Protocol (LLP) uklanja PLC zaglavlje i prosljeđuje sadržaj okvira internetskom sloju prema IP protokolu, koji zauzvrat ekstrahira sadržaj (UDP datagram) iz IP paketa. Daljnje manipulacije s prenesenim podacima razlikuju se od načela navedenih u višerazinski model hijerarhija protokola. Umjesto jednostavnog prosljeđivanja UDP datagrama koji se nalazi u podatkovnom polju IP paketa transportnom sloju, IP protokol se dodaje UDP datagramu takozvani pseudozaglavlje, koji između ostalog sadrži IP adrese pošiljatelja i primatelja. Dakle, UDP protokol, koji ima IP adresu i odredišni port, jedinstveno određuje da se sadržaj podatkovnog polja (odnosno DNS upit) treba prenijeti u DNS Server 2 aplikaciju.

Prijevoz TCP protokol

TCP protokol omogućuje pouzdan prijenos podataka između aplikacijskih procesa uspostavljanjem logičkih veza između komunikacijskih procesa.

Logička veza između dva aplikacijska procesa identificira se parom utičnica (IP adresa, broj porta), od kojih svaka opisuje jedan od procesa komunikacije.

Informacije koje dolaze u TCP protokol kao dio logičke veze iz protokola više razine TCP protokol smatra nestrukturirani tok bajtova i unosi se u međuspremnik. Za prijenos na mrežni sloj, izrezuje se iz međuspremnika segment, koji ne prelazi 64 KB (maksimalna veličina IP paketa). U praksi je duljina segmenta obično ograničena na 1460 bajtova, što omogućuje njegovo postavljanje u Ethernet okvir s TCP i IP zaglavljima.

TCP veza je usmjerena prema full duplex prijenos.

Kontrola protoka podataka u TCP protokolu provodi se pomoću mehanizma klizni prozor promjenjive veličine. Prilikom prijenosa segmenta, čvor koji šalje pokreće mjerač vremena i čeka potvrdu. Negativni računi se ne šalju, već se koriste mehanizam vremenskog ograničenja. Odredišni čvor koji je primio segment formira i šalje natrag segment (s podacima, ako ih ima, ili bez podataka) s brojem potvrde jednakim sljedećem serijskom broju broj očekivanog bajta. Za razliku od mnogih drugih protokola, TCP potvrđuje primitak ne paketi, nego bajtovi teći. Ako istekne vrijeme čekanja potvrde, pošiljatelj ponovno šalje segment.

Unatoč prividnoj jednostavnosti protokola, on ima niz nijansi koje mogu dovesti do nekih problema.

Prvo, budući da se segmenti mogu fragmentirati kada se prenose preko mreže, moguće je da će dio poslanog segmenta biti primljen, ali će se ostatak izgubiti.

Drugo, segmenti mogu stići do odredišnog čvora nasumičnim redoslijedom, što može dovesti do situacije u kojoj su bajtovi 2345 do 3456 već stigli, ali se potvrda za njih ne može poslati jer bajtovi 1234 do 2344 još nisu primljeni.

Treće, segmenti se mogu zadržati na mreži toliko dugo da pošiljatelj istekne i ponovno ih pošalje. Ponovno poslani segment može ići drugom rutom i može biti drugačije fragmentiran ili segment može slučajno završiti na zagušenoj mreži usput. Kao rezultat, bit će potrebna prilično složena obrada za vraćanje izvornog segmenta. Slika 4.63 prikazuje format zaglavlja TCP segmenta. Prvih 20 bajtova zaglavlja ima strogo fiksni format, nakon čega slijedi dodatna polja. Nakon dodatnih polja zaglavlja nalazi se podatkovno polje koje ne sadrži više od 65.495 bajtova, što će, zajedno s 20-bajtnim TCP i IP zaglavljima, dati najveću dopuštenu veličinu IP paketa od 65.535 bajtova.

Ne ulazeći u detalje, razmotrimo ukratko svrhu fiksnih polja zaglavlja TCP segmenta.

Polja "Priključak pošiljatelja" (2 bajta) i "Priključak primatelja" (2 bajta) identificiraju procesima, između kojih se uspostavlja logična veza.

Polje " Serijski broj"(4 bajta) sadrži broj prvog bajta podataka u segmentu, koji određuje pomak segmenta u odnosu na tok prenesenih podataka

Polje “Broj potvrde” (4 bajta) sadrži očekuje se sljedeći broj bajta, koji se koristi kao potvrda o primitku ispravna tehnika svi prethodni bajtovi.

Polje TCP Header Length (4 bita) navodi duljinu zaglavlja TCP segmenta, izmjerenu u 32-bitnim riječima.

6-bitno rezervno polje je rezervirano za budućnost.

Jednobitni zastave nose servisne informacije o vrsti segmenta i tumače se na sljedeći način:

URG=1 označava prisutnost hitni podaci, što znači korištenje polja "Pokazivač na hitne podatke". » ;

· ACK=1 znači da je segment priznanica na primljenom segmentu, a polje “Acknowledgment Number” sadrži značajne podatke. Inače, ovaj segment ne sadrži potvrdu i polje "Broj potvrde" jednostavno se zanemaruje.

· PSH=1 (PUSH zastavica) znači zahtjev za slanje podataka bez čekanja da se međuspremnik napuni;

RST=1 se koristi za resetiranje statusa veze kada se otkriju problemi, kao i za odbijanje nevažećeg segmenta ili pokušaja stvaranja veze;

· SYN=1 se koristi za postavljanje veze, a ako je ACK=0, to znači da se polje za potvrdu ne koristi;

FIN=1 se koristi za prekid veze.

Polje Veličina prozora (2 bajta) određuje koliko bajtova može biti poslano nakon bajta potvrde.

Polje Kontrolni zbroj (2 bajta) sadrži kontrolni zbroj koji pokriva zaglavlje, podatke i pseudonaslov.

Algoritam za izračun kontrolne sume kako slijedi.

Prije početka izračuna kontrolne sume postavlja se vrijednost ovog polja jednaka nuli. Ako podatkovno polje sadrži neparan broj bajtova, tada je dopunjeno nultim bajtom koji se koristi pri izračunavanju kontrolne sume, ali se ne umeće u segment za prijenos na mreži. Potreba za takvim dodatkom je zbog činjenice da se TCP segment, uključujući zaglavlje, podatke i pseudozaglavlje, smatra skupom 16-bitnih binarni brojevi, koji zbrajaju dodatni kod, a potom se izračunava dodatak za primljeni iznos koji se upisuje u polje “Checksum”.

Primatelj segmenta na sličan način izračunava kontrolni zbroj za cijeli segment, uključujući polje za kontrolni zbroj. Očito, tako dobiveni rezultat mora biti 0. Imajte na umu da dodatni nulti bajt polja pokazivača hitnih podataka (2 bajta) sadrži pomak u bajtovima od trenutnog sekvencijskog broja bajta do lokacije hitnih podataka koji se moraju hitno primiti, usprkos prekoračenju međuspremnika. Dakle, TCP protokol implementira poruke prekida. Sadržajem hitnih podataka upravlja aplikacijski sloj. TCP protokol samo osigurava njihovu isporuku i ne zanima ga razlog prekida.

Polje Parametri ima promjenjivu duljinu i možda nedostaje.

Primjeri Aplikacije koje koriste TCP protokol za prijenos podataka su FTP, TFTP, DNS, POP3, IMAP, TELNET.

TCP/IP protokol prvi put je kreiran ranih 1970-ih i korišten je za stvaranje ARPANET-a. Tehnologija je razvijena unutar istraživački projekt, koji je bio usmjeren na proučavanje potencijalne mogućnosti kombiniranja računala unutar jedne lokalne ili virtualne mrežne mreže.

Uspostavljanje veze u TCP-u obavlja se pomoću posebnog klijentskog programa, kao što je preglednik, program za e-poštu ili klijent za razmjenu poruka.

TCP struktura

TCP/IP struktura vam omogućuje kreiranje pristupa udaljena računala, kao i kombinirati pojedinačne uređaje za stvaranje lokalnih mreža koje rade odvojeno od općih. TCP je pouzdan protokol za prijenos podataka. Dakle, sve informacije koje će biti poslane mrežom zajamčeno će biti primljene od strane primatelja, tj. korisnik kojemu su podaci dostavljeni.

Alternativa TCP-u je UDP. Važna razlika između ovih mreža je u tome što TCP prvo mora uspostaviti pouzdanu vezu između pošiljatelja i primatelja informacija. Nakon što je veza uspostavljena, podaci se prenose, a zatim počinje procedura prekida veze. UDP odmah uspostavlja prijenos potrebnih paketa informacija korisniku bez prethodnog stvaranja kanala.

Slanje podataka putem TCP-a

Nakon instalacije TCP vezešalje podatke duž kreiranih ruta u skladu s IP adresama pošiljatelja i primatelja informacija. IP adresa je jedinstveni identifikator za svakoga mrežni uređaj na Internetu, te stoga paket poslan kroz stvoreni tunel ne može biti izgubljen ili greškom poslan drugom korisniku.

Na fizičkoj razini prijenosa podataka, informacije su u obliku frekvencija, amplituda i drugih oblika signala, koji su već obrađeni od strane mrežne kartice primatelja.

Odgovoran za obradu informacija od strane računala i njihov prijenos drugim komponentama protokoli kanala, među kojima možemo spomenuti Ethernet, ATM, SLIP, IEEE 802.11. Ovi kanali omogućuju ne samo prijenos podataka, već i oblik dostave do primatelja. Tako se u mrežama IEEE 802.11 informacije prenose bežičnim radijskim signalom. U ovom slučaju, signal se isporučuje s mrežne kartice računala, koja također ima vlastiti kod MAC. U slučaju Etherneta, sav prijenos podataka odvija se pomoću kabelska veza.

Video na temu

U suvremenim uvjetima djelovanje društva i civilizacije nemoguće je bez uporabe sredstava brza razmjena informacija. Ovaj problem pozvan da riješi globalno računalne mreže.

Globalna mreža (GCN) je mreža koja se sastoji od računala koja pokrivaju ogromne teritorije s neograničenim brojem uključenih u ovu mrežu računalni sustavi. Glavni uvjet za funkcioniranje slične mreže je trenutni prijenos informacija preko mreže, bez obzira na udaljenost odašiljačkog i primajućeg računala.

Globalna mreža se razlikuje od lokalne prvenstveno po nižim brzinama prijenosa podataka. Globalne mreže rade preko TCP/IP, MPLS, ATM i nekih drugih. Najpoznatiji od njih je TCP/IP protokol, koji uključuje podprotokole različite razine: aplikacija, transport, mreža, fizički i kanal.

Na aplikativnoj razini radi većina programa koji imaju svoje protokole koji su nadaleko poznati obični korisnici PC (HTTP, WWW, FTP, itd.). Ovi protokoli omogućuju vizualizaciju i prikaz zahtijeva korisnik informacija.

Prijenosni protokol odgovoran je za isporuku podataka točno onoj aplikaciji koja ih može obraditi. Zove se TCP.

Mrežni sloj zapravo prima informacije prilikom prijenosa i slanja zahtjeva za više niske razine za sve informacije. Naziva se IP protokol.

Fizički sloj i sloj veze odgovorni su za definiranje uvjeta i metoda prijenosa informacija.

Najpoznatiji globalna mreža je WWW (Svijet Wide Web), koji je zbirka poslužitelja na kojima su pohranjene informacije potrebne korisnicima i računala koja mogu primati informacije od poslužitelja i postavljati ih na njih. WWW se odlikuje praktičnošću i jednostavnošću korištenja, kao i malim zahtjevima za brzinom prijenosa podataka. To je ovoj mreži omogućilo razvoj u razdoblju od nešto više od desetljeća.

Video na temu

Uobičajeno je upućivati ​​na simboličku oznaku koja zamjenjuje numeričko adresiranje temeljeno na IP adresama na Internetu. Numeričko adresiranje koje se koristi u obradi tablice usmjeravanja idealno je za korištenje računala, ali korisniku predstavlja značajne poteškoće za pamćenje. Mnemonički smisleni nazivi domena dolaze u pomoć.

Internetske veze uspostavljaju se pomoću numeričkih skupina od 4 vrijednosti, odvojenih simbolom “.” i nazvane IP adrese. Simbolička imena kompleksa imena domene su usluga osmišljena da olakša pronalaženje tražene IP adrese na mreži. Tehnički indikator naziva domene je "." u e-mail adresu korisnika. Dakle, u adresi google.com naziv domene će biti com Ime nije u mogućnosti osigurati pristup potrebnom internetskom resursu. Procedura za korištenje mnemotehničkog imena sastoji se od dva koraka: - IP adrese po imenu u datoteka domaćina, koji sadrži tablice korespondencije između IP adrese i naziva računala; DNS usluga je dobivanje IP adrese za uspostavljanje veze, što ovu uslugu čini pomoćnom TCP/IP protokolu. je separator naziva domene, iako se u praktične svrhe obično odnosi na korijensku domenu koja nema vlastiti označitelj. Root - cijeli skup Internet hostova - podijeljen je na: - prvu razinu - gov, edu, com, net; kodovi zemalja- uk, jp, ch, itd.;- regionalne domene - msk;- korporativne domene- domene organizacija Očuvanje poznate stablaste strukture imena domena dovelo je do upotrebe ustaljene terminologije - korijen, čvorovi stabla, list. Izraz "domaćin" u ovoj hijerarhiji dodijeljen je listu koji nema niti jedan čvor ispod sebe. Puno ime host postaje sekvencijalni popis svih međučvorovi između korijena i lista, odvojene znakom "." s lijeva na desno: ivan.net.abcd.ru, gdje je ru korijen stabla, abcd je naziv organizacije, ivan je list stabla (domaćin).

Video na temu

Izvori:

  • Sustav naziva internetskih domena u 2018

Mnogima je poznata kratica TCP; puno manje ljudi zna da je to protokol za prijenos podataka. Ali gotovo nitko ne zna kako to funkcionira.

Pažnja! Ovaj materijal namijenjen je onima koji su stvarno zainteresirani za pitanje: "Kako mreža radi i što mogu učiniti ako to znam." Ako ste još uvijek zbunjeni riječima kao što su DNS, Telnet, Socket, onda možete odmah zaboraviti na ovaj materijal - takve "strašne" riječi sigurno se neće pojaviti ovdje, ali to neće učiniti sadržaj jasnijim...

Za one koji su ostali:

Vjerojatno su mnogi od vas čuli riječi kao što su SYN-flooding ili IP-spoofing. Sve su to tipovi napada - prvi D.O.S., drugi
sastoji se od lažiranja IP adrese. Na prvi pogled, nema ničeg zajedničkog između ovih primjera, ali u međuvremenu to nije tako - oba ova napada nisu moguća bez dubokog poznavanja TCP protokola, protokola na kojem
Internet.

Specifikacija TCP protokola opisana je u RFC793. Preporučam da pročitate ovaj dokument, jer iako ću vam pokušati prenijeti ono najvažnije, dodajući ovo važno relevantnim komentarima koje nećete naći u priručniku, ipak, zbog malog volumena i praktičnog kuta gledanja , možda ću propustiti neke suptilnosti .

Podaci se prenose u obliku paketa. Ovakva organizacija prijenosa znači da se podaci, koliko god veliki bili, dijele na zasebne fragmente koji se formiraju u pakete (formiranje paketa podrazumijeva da se podaci dodaju servisno zaglavlje), nakon čega se podaci prenose u obliku paketa preko mreže (a redoslijed prijenosa paketa može biti poremećen). Prijemni sustav "sastavlja" početni niz podataka iz paketa na temelju zaglavlja paketa. Ovo nije baš jasno, ali samo dok ne pogledamo strukturu paketa.

Struktura TCP paketa:

Objasnit ću samo najvažnije točke:

Adresa primatelja, luka primatelja i adresa pošiljatelja, luka pošiljatelja - nadam se da je ovo jasno.

Sequence Number (SYN) - queue number ili serijski broj, pokazuje redni broj paketa tijekom prijenosa, zbog čega primateljski sustav prikuplja pakete točno onako kako bi trebali, a ne redoslijedom kojim su stigli.

Acknowledgment Number (ACK) - broj potvrde, pokazuje na koji paket SYN odgovara daljinski sustav, pa imamo ideju da je udaljeni sustav primio naš paket s ovim podacima
SYN.

Kontrolni bitovi - 6 bita (u dijagramu između obrnutog i prozora). Bitne vrijednosti:

URG: hitno polje pokazivača omogućeno
ACK: omogućeno polje za potvrdu
PSH: push funkcija
RST: Ponovno pokrenite ovu vezu
SYN: sinkronizacija broja čekanja
FIN: nema više podataka za prijenos

PODACI su izravno podaci koje želimo prenijeti.

Mislim da je to sve što trebate početi da biste razumjeli kako protokol funkcionira. Više o značenju preostalih polja možete pročitati u RFC793. Pa, bolje ćemo razumjeti kako to funkcionira u praksi.

Kada želimo uspostaviti vezu, udaljenom sustavu šaljemo paket sljedeće strukture:

Klijent - SYN (856779) - Host

Gdje smo klijent mi, a domaćin udaljeni sustav. Kao što vidite, šaljemo paket koji samo označava SYN - to znači da je ovaj paket prvi, ne odgovaramo ni na što (nema ACK-a). Trenutni paket izgleda otprilike ovako:

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 47 04 07 00 17 00 0D 12 CB 00 00 00 00 60 02 20 00 D9 70 00 00 02 04 05 B4 2D

Zanimljivo je mjesto odakle dolazi SYN. SYN se izvodi iz početnog broja reda čekanja
(ISN) je 32-bitni broj od 1 do 4294967295 (2 na 32. potenciju). ISN kada se sustav ponovno pokrene je 1, zatim se svake sekunde povećava za 128000 (strogo govoreći, promjena se događa svake 4 mikrosekunde) + sa svakim uspostavljena veza povećava se za 64000. Ispada da ciklus jedinstvenosti ISN-a, uz pretpostavku da nisu uspostavljene veze, iznosi približno 4,55 sati. Budući da nijedan paket ne putuje tako dugo u mreži, možemo pretpostaviti da će SYN biti potpuno jedinstven.

Nakon što primi naš paket, udaljeni sustav odgovara da ga je primio i spreman je za uspostavljanje veze. Paket podataka izgleda ovako:

Domaćin - SYN (758684758) i ACK (856780) - Klijent

Kao što vidite, daljinski sustav jasno daje do znanja da je primio naš paket. Da bi to učinio, šalje nam ACK s brojem "naš SYN+1". Uz to, udaljeni sustav nam šalje svoj SYN (također ćemo odgovoriti). A naš odgovor će biti ovakav:

Klijent - SYN (856780) i ACK (758684759) - Host

Mislim da bi ti dosad sve trebalo biti jasno. Ako netko ne razumije, paket znači sljedeće: Vaš paket sa SYN (758684758) je primljen, veza je uspostavljena, naš SYN je 856780.

Taj se postupak naziva "trostruka potvrda" ili "trostruko rukovanje". Prva dva koraka potrebna su za sinkronizaciju SYN naših sustava, a treći je za potvrdu da je do sinkronizacije došlo.

Zatim imamo razmjenu podataka, tj. za to je veza uspostavljena. Štoviše, treba napomenuti da se u svim fazama osiguravanje sigurnosti podataka koji se prenose korištenjem TCP protokola provodi na sljedeći način: poslani paket se stavlja u međuspremnik i ako Određeno vrijeme paket potvrde (ACK) ne stigne od udaljenog sustava, paket se ponovno šalje; ako je stigla potvrda, tada se paket smatra uspješno poslanim i uklanja se iz međuspremnika.

Pa, veza nam više ne treba, možemo je zatvoriti. Ova faza će se ponoviti
sastoje se od nekoliko faza - nadam se da već možete sami čitati ove pakete.

Klijent - FIN(4894376) i ACK (1896955378) - Host

Host - ACK (4894377) - Klijent

Host - FIN (1896955378) i ACK (4894377) - Klijent

Klijent - ACK (1896955378) - Domaćin

Mislim da ovdje nema ništa komplicirano. Jedina stvar vrijedna pažnje je FIN zastavica, što znači želju za prekidom veze.

Rezimirajući gore navedeno, napomenimo u kojim se slučajevima serijski brojevi mijenjaju/ne mijenjaju:

Prijenos jednog FIN paketa = +1
Prijenos jednog SYN paketa = +1
Prijenos jednog ACK paketa = 0
Prijenos jednog SYN/ACK paketa = +1
Prijenos jednog FIN/ACK paketa = +1
Promjena u 1 sekundi = +128.000
Uspostava jedne veze = +64.000

Možda će netko pitati: "Što će se dogoditi ako stroj primi paket s ACK-om koji nije bio tamo?" (SYN=ACK-1, ali nismo poslali paket s takvim SYN-om). Nakon što smo dobili odgovor na nešto nejasno, mi ćemo zauzvrat odgovoriti udaljenom sustavu s NACK paketom (znači "Ne znam o čemu pričaš", veza nije uspostavljena), ali, nadam se, sljedeći put ćemo o tome detaljnije razgovarati.

Interakcija između računala na Internetu odvija se putem mrežni protokoli, koji su dogovoreni skup posebnih pravila prema kojima različite uređaje prijenos podataka razmjena informacija. Postoje protokoli za formate kontrole pogrešaka i druge vrste protokola. Globalno umrežavanje Najčešće korišteni protokol je TCP-IP.

Kakva je ovo tehnologija? Naziv TCP-IP dolazi od dva mrežna protokola: TCP i IP. Naravno, izgradnja mreža nije ograničena na ova dva protokola, ali oni su osnovni što se tiče organizacije prijenosa podataka. Zapravo, TCP-IP je skup protokola koji omogućuje pojedinačnim mrežama da se udruže i formiraju

TCP-IP protokol, koji se ne može opisati samo definicijama IP-a i TCP-a, također uključuje protokole UDP, SMTP, ICMP, FTP, telnet i druge. Ovi i drugi TCP-IP protokoli pružaju najviše puno radno vrijeme internetske mreže.

U nastavku donosimo detaljan opis svakog protokola uključenog u opći koncept TCP-IP.

. Internetski protokol(IP) je odgovoran za izravan prijenos informacija na mreži. Informacije se dijele na dijelove (drugim riječima, pakete) i prenose primatelju od pošiljatelja. Za točno adresiranje potrebno je navesti točnu adresu ili koordinate primatelja. Takve adrese sastoje se od četiri bajta, koji su međusobno odvojeni točkama. Adresa svakog računala je jedinstvena.

Međutim, samo korištenje IP protokola možda neće biti dovoljno za ispravan prijenos podataka, budući da je volumen većine prenesenih informacija veći od 1500 znakova, što više ne stane u jedan paket, a neki se paketi mogu izgubiti tijekom prijenosa ili poslati u pogrešan redoslijed, ono što je potrebno.

. Protokol kontrole prijenosa(TCP) koristi se na višoj razini od prethodne. Na temelju sposobnosti IP protokola da prenosi informacije s jednog glavnog računala na drugo, TCP protokol omogućuje slanje velikih količina informacija. TCP je također odgovoran za odvajanje prenesene informacije u zasebne dijelove - pakete - i pravilan oporavak podataka iz paketa primljenih nakon prijenosa. U tom slučaju ovaj protokol automatski ponavlja prijenos paketa koji sadrže pogreške.

Upravljanje organizacijom prijenosa podataka u velikim količinama može se provesti pomoću niza protokola koji imaju posebne funkcionalna namjena. Konkretno, postoje sljedeće vrste TCP protokola.

1. FTP (Prijenos podataka Protocol) organizira prijenos datoteka i koristi se za prijenos informacija između dva internetska čvora pomoću TCP veza u obliku binarne ili jednostavne tekstualne datoteke, kao imenovanog područja u memoriji računala. U ovom slučaju nije važno gdje se ti čvorovi nalaze i kako su međusobno povezani.

2. Protokol korisničkog datagrama, ili User Datagram Protocol, neovisan je o vezi i prenosi podatke u paketima koji se nazivaju UDP datagrami. Međutim, ovaj protokol nije tako pouzdan kao TCP jer pošiljatelj ne zna je li paket stvarno primljen.

3. ICMP(Internet Control Message Protocol) postoji za prijenos poruka o greškama koje se javljaju tijekom razmjene podataka na Internetu. Međutim, ICMP protokol samo prijavljuje greške, ali ne uklanja razloge koji su doveli do tih grešaka.

4. Telnet- koji se koristi za implementaciju tekstualnog sučelja na mreži korištenjem TCP prijenosa.

5. SMTP(Simple Mail Transfer Protocol) je poseban e-poštom, koji definira format poruka koje se šalju s jednog računala, zvanog SMTP klijent, na drugo računalo na kojem je pokrenut SMTP poslužitelj. pri čemu ovu pošiljku može biti odgođeno neko vrijeme dok se ne aktiviraju i klijent i poslužitelj.

Shema prijenosa podataka putem TCP-IP protokola

1. TCP protokol rastavlja cjelokupnu količinu podataka u pakete i numerira ih, pakirajući ih u TCP omotnice, što vam omogućuje vraćanje redoslijeda primanja dijelova informacija. Kada se podaci stave u takvu omotnicu, izračunava se kontrolni zbroj, koji se zatim upisuje u TCP zaglavlje.

3. TCP tada provjerava jesu li svi paketi primljeni. Ako se tijekom prijema novoizračunati ne poklapa s onim navedenim na omotnici, to znači da su neke informacije izgubljene ili iskrivljene tijekom prijenosa, TCP-IP protokol ponovno zahtijeva prosljeđivanje ovog paketa. Potrebna je i potvrda o primitku podataka od strane primatelja.

4. Nakon potvrde primitka svih paketa, TCP protokol ih na odgovarajući način raspoređuje i ponovno spaja u jedinstvenu cjelinu.

TCP protokol koristi ponovljene prijenose podataka i razdoblja čekanja (ili isteke vremena) kako bi osigurao pouzdanu isporuku informacija. Paketi se mogu prenositi u dva smjera istovremeno.

Dakle, TCP-IP eliminira potrebu za ponovnim slanjem i čekanjem na procese aplikacije (kao što su Telnet i FTP).

TCP (Transmission Control Protocol) je pouzdana alternativa protokolu usmjerenom na povezivanje UDP-u koji je odgovoran za većinu prijenosa korisničkih podataka preko TCP/IP mreža, a čak je i pridonio nazivu čitavog niza protokola. TCP protokol kako je definirano u RFC dokument 793, pruža aplikacijama cijeli niz transportnih usluga, uključujući potvrdu paketa, praćenje i ispravljanje pogrešaka te kontrolu protoka.

TCP protokol dizajniran je za relativan prijenos velike količine informacije koje se očito ne mogu spakirati u jedan paket. Informacije obično imaju oblik cijelih datoteka koje se moraju podijeliti u više datagrama za prijenos. Informacije koje se dostavljaju transportnom sloju, u terminologiji TCP protokola, smatraju se nizom, koji protokol rastavlja u segmente za prijenos preko mreže. Kao u slučaju UDP protokol, segmenti se zatim pakiraju u IP datagrame koji mogu preći rutu do svog odredišta različiti putevi. Stoga TCP daje svakom od segmenata redni broj tako da ih primateljski sustav može spojiti ispravnim redoslijedom.

Prije nego započne prijenos korisničkih podataka pomoću TCP-a, dva sustava razmjenjuju poruke za uspostavljanje veze. Time se osigurava da je prijemni sustav operativan i da može primati podatke. Nakon što je veza uspostavljena i proces prijenosa podataka započne, primateljski sustav povremeno šalje poruke koje potvrđuju primitak paketa. Ove poruke obavještavaju sustav pošiljatelja o izgubljenim paketima i također mu daju informacije koje se koriste za praćenje brzine prijenosa.

TCP format poruke

Funkcije TCP polja zaglavlja opisane su u nastavku.

Izvorni priključak (SourcePort), 2 bajta. Identificira broj priključka sustava za slanje koji koristi proces koji je stvorio informacije koje prenose TCP segmenti. U nekim slučajevima to može biti fiktivni broj port koji je klijent dodijelio posebno za ovu transakciju.

DestinationPort, 2 bajta. Označava broj porta odredišnog sustava na koji treba poslati informacije o TCP segmentu. Brojevi portova navedeni su u dokumentu "AssignedNumbers", kao iu SERVICES datoteci svakog TCP/1P sustava.

SequenceNumber, 4 bajta. Određuje položaj određenog segmenta u odnosu na cijeli niz podataka.

AcknowledgementNumber, 4 bajta. Određuje najveći broj bajtova u segmentu, uvećan za jedan, koji sustav za potvrdu očekuje primiti od pošiljatelja. Koristi se zajedno s ACK kontrolnim bitom.


Pomak podataka (DataOffset), 4 bita. Određuje duljinu, u riječima od 4 bajta, TCP zaglavlja (koje može sadržavati opcije koje povećavaju njegovu veličinu do 60 bajtova).

Rezervirano, 6 bita. Namijenjen za kasniju primjenu.

Kontrolni bitovi, 6 bita. Sadrži šest 1-bitnih zastavica koje obavljaju sljedeće funkcije:

URG - označava da niz sadrži hitne podatke i aktivira polje indikatora hitnosti;

ACK - napominje da je poruka potvrda prethodno primljenih podataka i aktivira polje broja potvrde;

PSH - naređuje prijemnom sustavu da odašilje sve informacije o trenutnom nizu primljene na ovaj trenutak, aplikacija identificirana poljem odredišne ​​luke, bez čekanja da stignu preostali fragmenti;

RST - naređuje prijemnom sustavu da odbaci sve do sada primljene segmente trenutne sekvence i ponovno započne uspostavljanje TCP veze;

SYN - koristi se tijekom postupka uspostave veze za sinkronizaciju broja prenesenih podataka između međusobno povezanih sustava;

FIN - obavještava drugi sustav da je prijenos podataka završen i vezu treba prekinuti.

Prozor, 2 bajta. Implementira TCP-ov mehanizam kontrole protoka (klizni prozor) deklariranjem broja bajtova koje odredišni sustav može prihvatiti od izvornog sustava.

Kontrolni zbroj, 2 bajta. Sadrži rezultat izračuna kontrolne sume uzimajući u obzir TCP zaglavlje, podatke, kao i pseudozaglavlje sastavljeno od polja izvorne IP adrese, protokola, odredišne ​​IP adrese iz IP zaglavlja plus duljinu cijele TCP poruke .

UrgentPointer, 2 bajta. Upotrebljava se zajedno s URG bitom, specificira niz podataka koje bi primatelj trebao smatrati hitnima.

Mogućnosti, varijabilna veličina. Može sadržavati dodatne konfiguracijski parametri za TCP vezu, zajedno s bitovima za poravnanje potrebnima za dovođenje veličine polja na najbliži višekratnik od 4 bajta. Moguće opcije su navedene u nastavku.

Maksimalna veličina segment (MaximumSegmentSize). Određuje veličinu maksimalnog segmenta koji trenutni sustav može primiti od drugog sustava koji je na njega povezan.

Faktor skale prozora. Koristi se za povećanje veličine polja prozora s 2 na 4 bajta.

Vremenska oznaka. Koristi se za pohranjivanje vremenskih oznaka paketa podataka koje primateljski sustav vraća pošiljatelju u svrhu potvrde. To omogućuje pošiljatelju da izmjeri vrijeme povratnog putovanja podataka.

Podaci, varijabilna veličina. Može uključivati ​​segmente podataka koji dolaze s vrha hrpe protokola, iz protokola Aplikacijski sloj. U SYN paketi, ACK i FIN ovo polje ostaje prazno.

IPX/SPX: Za pružanje transportnih usluga za operacijski sustav NovellNetWare, Novell je stvorio vlastiti skup protokola, koji je dobio uobičajeno ime po nazivu protokola mrežnog sloja - IPX (InternetworkPacketExchange, međumrežna razmjena paketa). Po analogiji s TCP/IP-om, ovaj se stog ponekad naziva i IPX/SPX. Drugi dio ove oznake odnosi se na SPX (SequencedPacketeXchange), protokol koji radi na transportnom sloju. Međutim, za razliku od kombinacije TCP-a i IP-a, koja je sveprisutna u TCP/IP mrežama i prvenstveno je namijenjena isporuci velika količina prometa, IPX/SPX kompleks se relativno rijetko može naći na NetWare mrežama.

IPX protokoli slični su TCP/IP-u u nekoliko aspekata. Oba niza protokola koriste Razina mreže nepouzdani protokoli bez povezivanja (IPX odnosno IP) za prijenos datagrama koji sadrže podatke iz više protokola gornje razine, koji pruža širok raspon usluga za različite primjene. Kao i IP, IPX je odgovoran za adresiranje datagrama i njihovo usmjeravanje na odredište na drugoj mreži.

Međutim, za razliku od TCP/IP-a, IPX protokoli su dizajnirani za korištenje u lokalne mreže, i ne podržavaju gotovo neograničenu skalabilnost svojstvenu internetskim protokolima. IPX nema isti nezavisni sustav adresiranja kao IP protokol. Sustavi u NetWare mreže identificirati druge sustave putem hardverskih adresa ožičenih na pločama mrežni adapteri u kombinaciji s mrežnom adresom koju je dodijelio administrator (ili OS) tijekom instalacije operativnog sustava.

IPX datagrami se prenose unutar standardnih okvira protokola Sloj veze baš kao i IP datagrami. IPX protokoli nemaju vlastite protokole sloja veze. Međutim, na većini mreža podaci su IPX enkapsulirani Ethernet okviri ili TokenRing.

IPX protokol

IPX se temelji na IDP (InternetworkDatagramPacket) protokolu, dizajniranom za mrežne usluge Xerox (XNS, XeroxNetworkServices). IPX pruža osnovne usluge prijevoza bez uspostavljanja veze između internetskih sustava tijekom emitiranja i jednosmjernog prijenosa. Većina normalnog prometa između NetWare poslužitelja ili između klijenata i poslužitelja prenosi se preko IPX datagrama.

Zaglavlje IPX datagrama dugo je 30 bajtova (za usporedbu, IP zaglavlje je 20 bajtova). Svrha polja zaglavlja navedena je u nastavku.

Kontrolni zbroj, 2 bajta. U izvornom IDP zaglavlju, ovo polje sadrži CRC vrijednost za datagram. Budući da sami protokoli sloja veze vrše provjeru kontrolni zbrojevi, To ovu funkciju pri obradi datagrama IPX se ne koristi i polje uvijek sadrži heksadecimalna vrijednost ffff.

Duljina, 2 bajta. Određuje veličinu datagrama u bajtovima, uključujući IPX zaglavlje i podatkovno polje.

Kontrola isporuke (TransportControl), 1 bajt. Ovo polje je također poznato kao broj skokova. Bilježi broj usmjerivača kroz koje je datagram prošao na svom putu do odredišta. Odašiljački sustav ga vraća na 0, a svaki od usmjerivača prilikom obrade datagrama povećava vrijednost brojača za 1. Čim broj tranzitnih usmjerivača dosegne 16, posljednji odbacuje datagram.

Vrsta paketa (Packet Type), 1 bajt. Identificira uslugu ili protokol višeg sloja koji je stvorio podatke koje nosi datagram. Su korišteni sljedeće vrijednosti:

0 - nije definirano;

1 - RoutingInformationProtocol (RIP, protokol informacija o usmjeravanju);

4 - ServiceAdvertisingProtocol (SAP, servisni protokol obavijesti);

5 - SequencedPacketExchange (SPX, sekvencijalna razmjena paketa);

17 - NetWare Core Protocol (NCP, glavni NetWare protokol).

Mrežna adresa odredišta, 4 bajta. Označava mrežu na kojoj se nalazi prijemni sustav, sadrži vrijednost koju je dodijelio administrator ili operacijski sustav tijekom instalacije NetWarea.

Adresa odredišnog čvora, 6 bajtova. Definira mrežno sučelje računala na koje se trebaju isporučiti podaci; to je hardverska adresa protokola Link Layer. Emitirane poruke prenose se s heksadecimalnom adresom ffffffffffff.

DestinationSocket, 2 bajta. Odgovoran za identifikaciju procesa koji se izvodi na prijemnom sustavu za koji su podaci unutar datagrama zapravo namijenjeni. Koristi se jedna od sljedećih vrijednosti:

0451 - NetWare Core Protocol;

0452 - Protokol za oglašavanje usluge;

0453 - Protokol informacija o usmjeravanju;

0455 - NetBIOS;

0456 - dijagnostički paket;

0457 - paket za serijalizaciju;

4000-6000 - utičnice dodijeljene procesima poslužitelja;

9000 - NetWareLinkServicesProtocol;

9004 - IPXWAN protokol.

Adresa izvorne mreže (SourceNetworkAddress), 4 bajta. Identificira mrežu na kojoj se nalazi sustav koji je poslao datagram. Koristi vrijednost koju je dodijelio administrator ili operativni sustav tijekom instalacije NetWarea.

Adresa izvornog čvora (SourceNodeAddress), 6 bajtova. Sadrži adresu protokola sloja veze hardvera za mrežno sučelje računalo koje je poslalo datagram.

Izvorna utičnica (SourceSocket), 2 bajta. Definira proces koji se izvodi lokalni sustav, koji je generirao paket podataka. Primjenjuju se iste vrijednosti kao za polje odredišne ​​utičnice.

Podaci promjenjive duljine. Informacije koje generira protokol višeg sloja.

Budući da je IPX protokol bez povezivanja, oslanja se na protokole gornjeg sloja za provjeru jesu li podaci ispravno isporučeni. Štoviše, NetWare klijenti aktivirati sistemski sat zahtjev za istekom vremena, nakon čega ih mjerač vremena prisiljava da ponovno pošalju IPX datagram ako odgovor nije primljen unutar određenog vremenskog perioda.