Socket

“Soket” predstavlja krajnju tačku za slanje ili primanje podataka u mreži. Drugim rečima, to je interfejs između aplikacije i mrežne komunikacije na operativnom sistemu. Kroz sokete, aplikacije mogu komunicirati međusobno preko mreže.

Soketi su osnova za mnoge mrežne aplikacije i usluge, uključujući veb pretraživače, e-mail klijente, chat aplikacije i mnoge druge. Oni omogućavaju komunikaciju između računara u lokalnoj mreži ili preko Interneta.

Vrsta Komunikacije:

  • Stream soketi: Koriste TCP (Transmission Control Protocol) za komunikaciju. Ovi soketi su pouzdani, orijentisani su na vezu i garantuju da će podaci koji se šalju stići na odredište u redosledu u kojem su poslati.
  • Datagram soketi: Koriste UDP (User Datagram Protocol) za komunikaciju. Oni su orijentisani bez veze i ne garantuju isporuku ili redosled paketa.

socet udp

Adresa soketa

Svaki soket na Internetu karakteriše IP adresa i broj porta. Na primer, kada pristupate veb sajtu, vaš računar uspostavlja vezu sa IP adresom veb servera na određenom portu (najčešće port 80 za HTTP ili 443 za HTTPS).

Primena

“Soket” se koristi kao sredstvo za komunikaciju između dva sistema preko mreže. Evo nekoliko situacija i scenarija kada se soketi tipično koriste:

Komunikacija u Realnom Vremenu

Kada aplikacije zahtevaju interakciju u realnom vremenu između klijenta i servera, soketi su često prvi izbor. Primeri uključuju chat aplikacije, online igre, i aplikacije za deljenje dokumenata u realnom vremenu.

VoIP i Strimovanje

Aplikacije za Voice over IP (VoIP) poput Skype-a koriste sokete za prenos glasa i video podataka. Slično tome, servisi za strimovanje medija, poput YouTube-a i Netflix-a, koriste sokete za prenos podataka.

Monitoring i Nadzor

Soketi omogućavaju administracijama sistema da prate i nadziru resurse i performanse sistema u realnom vremenu.

Finansijski Terminali i Trgovanje

U finansijskoj industriji, brzina i pouzdanost su ključni. Soketi se koriste u platformama za trgovanje kako bi se obezbedila brza i efikasna komunikacija između trgovaca i berzi.

Mrežne Aplikacije

Većina mrežnih aplikacija, kao što su web serveri, e-mail serveri i klijenti, koristi sokete za komunikaciju.

Distribuirani Sistemi

U scenarijima gde se podaci moraju deliti ili sinhronizovati između više sistema, soketi pružaju osnovu za komunikaciju.

IoT (Internet of Things)

Uređaji povezani sa internetom koriste sokete za slanje i primanje podataka. Na primer, pametni termostati mogu koristiti sokete da bi poslali podatke o temperaturi na centralni server.

P2P Komunikacija

Protokoli kao što su BitTorrent koriste sokete kako bi omogućili peer-to-peer komunikaciju između korisnika.

Ovo su samo neki od mnogih slučajeva kada se koriste soketi. S obzirom na njihovu svestranost i osnovnu ulogu u komunikaciji preko mreže, soketi su integralni deo mnogih različitih sistema i aplikacija.

Primeri korišćenja TCP protokola i socket-a

1) Korišćenje osnovne node biblioteke “net”

Jednostavni primer kako možete koristiti TCP soket za komunikaciju između klijenta (napisanog u JavaScript-u) i servera (koji koristi Node.js).

Server se pokreće koristeći: node server.js

Za klijentsku stranu koristićemo takodje “net” modul iz Node.js (pošto čist JavaScript koji se izvršava u web pregledaču ne podržava direktno korišćenje TCP soketa).

2) Korišćenje “socket.io” biblioteke

Za klijentsku stranu u Node.js okruženju postoji mnogo biblioteka koje omogućavaju komunikaciju preko TCP protokola i pružaju razne dodatne funkcionalnosti. Jedna od popularnih biblioteka je socket.io. Dok je net modul osnovni TCP modul koji dolazi uz Node.js, socket.io pruža event-driven API koji omogućava komunikaciju u realnom vremenu između servera i klijenta. Iako se socket.io najčešće koristi za websockets, takođe se može koristiti za TCP komunikaciju.

Prvo je potrebno instalirati socket.io i socket.io-client:

Serverski deo:

a klijentski deo:

Ovo je samo osnovni primer. socket.io pruža mnoge dodatne funkcionalnosti, uključujući rad sa sobama, broadcasting, middleware, i mnogo više. Ako želite da radite sa čistim TCP soketima (bez WebSockets) u Node.js okruženju, net modul je najosnovniji i najdirektniji pristup. Međutim, za komplikovanije aplikacije i kada treba raditi sa web klijentima, socket.io je odličan izbor.

Transmission Control Protocol (TCP)

TCP je jedan od glavnih protokola u skupu Internet protokola (IP) i definiše način na koji se podaci šalju i primaju preko Internet mreža. On je orijentisan na vezu, što znači da prvo uspostavlja pouzdanu vezu između dva računara pre prenosa podataka i zatim održava tu vezu dok svi podaci ne budu preneseni.

Evo nekoliko ključnih karakteristika i funkcija TCP:

  1. Pouzdanost: TCP garantuje isporuku podataka iz izvora na odredište. Ako neki deo podataka ne stigne do odredišta, TCP će prepoznati taj problem i poslati te podatke ponovo.
  2. Orijentisan na vezu: Pre nego što se podaci prenesu između dva računara, TCP uspostavlja vezu između njih. Ova veza se održava dok svi podaci ne budu preneseni i potvrđeni.
  3. Kontrola protoka: TCP kontroliše količinu podataka koja se šalje tako da primalac ne bude preopterećen, tj. sprečava preplavljivanje mrežnih resursa.
  4. Održavanje redosleda: Ako se paketi podataka (segmenti) šalju mrežom i stignu na odredište u pogrešnom redosledu, TCP će ih ponovo složiti u ispravnom redosledu pre nego što ih prosledi aplikaciji.
  5. Detelekcija i ispravka grešaka: Kada se podaci šalju, TCP dodaje kontrolnu sumu svakom segmentu podataka. Na odredištu, kontrolna suma se koristi za proveru integriteta svakog primljenog segmenta.

TCP je osnova za mnoge aplikacije koje koriste internet, uključujući veb pretraživače i e-mail programe. Kada, na primer, otvorite veb stranicu, vaš veb pretraživač koristi TCP da preuzme HTML i druge sadržaje stranice s veb servera.

U suštini, TCP je ključan za garantovanje pouzdane, usklađene i bezbedne komunikacije između računara na internetu.

Više o mrežnim protokolima možete pročitati u članku “Mrežni protokoli”

Podelite:

Ostavite komentar