Soketët

## Soketet e Internetit
Në krijimin e rrjeteve kompjuterike, një **Internet soket** ose **soketi i rrjetit** është një pikë fundore të një rrjedhe multidirekcionale ndër-procesin e komunikimit sipas rrjeteve kompjuterike me bazë të Protokolit të Internetit(IP), të tilla si Interneti.

Termi soketi i internetit është përdorur edhe si një emër për një interfejsi për programimin e aplikacioneve (API) për stivën e protokollit TCP/IP,zakonisht furnizohet nga sistemi operativ. Soketët e internetit përbëhen nga një mekanizëm për dërgimin e paketave me të dhëna hyrëse në procesin e aplikacionit të duhur, duke u bazuar në një kombinim të IP adresave lokale dhe të largëta dhe numrave të porteve.
 
Një **adresë e soketit** është kombinimi i një IP adrese dhe një numri të portit të caktuar në një identitet të vetëm.

## Përmbledhje
Një soket të internetit është karakterizuar nga një kombinim të veçantë të: 
* **Adresës Lokale të soketit:** IP adresën lokale dhe numrin e portit lokal.
* **Adresa në distancë të soketit:** Vetëm për soketët të themeluara nga TCP. Siç është diskutuar në seksionin e mëposhtëm -Klient Server-, kjo është e nevojshme që një TCP server të mund të shërbejë disa klientë njëkohësisht. Serveri krijon një soket për çdo klient, dhe këta soketët ndajnë të njëjtën adresë të soketit lokal.
* **Protokoli:** Një protokol të transportit (psh., TCP, UDP), IP të nivelit të ulët etj. TCP porti 53 UDP porti 53 janë të ndryshme, soketët të dalluara. Termi soket i referohet një adresë të soketit lokal, pra një "kombinim i një IP adrese dhe një numri të portit". Në përkufizimin origjinal i soketit të dhënë nga RFC 147, pasi ajo ishte e lidhur me rrjetin ARPA në 1971, "soketi është përcaktuar si një numër 32 bitëshe madje me soketët e identifikojmë soketët pranues dhe soketët me numra tek identifikojnë soketin e dërguar."

## Tipet e soketëve
Ekzistojnë disa tipe të soketëve:

***Datagram soketët**,të njohura edhe si soketët që nuk mund të konektohen, të cilat i përdorin User Datagram Protocol (UDP).

***Stream soketët**, i njohur edhe si soketët lidhje të orientuar, të cilat i përdorin Transmission Control Protocol (TCP) ose Stream Control Transmission Protocol (SCTP).

***Soketët të niveleve të ulëta (ose soketët IP të nivelit të ulët)**, në mënyrë tipike janë në dispozicion në ruterët dhe pajisje të tjera të rrjetit. Këtu shtresa e transportit është anashkaluar, dhe titujt e pakove nuk janë të zhveshur, por janë të hapura për aplikacion. Shembuj të aplikacioneve janë Internet Control Message Protocol (ICMP, i njohur për suboperacionin e Pingut), Internet Group Management Protocol (IGMP), dhe Open Shortest Path First (OSPF).

Ka edhe jo-internet soketët, zbatohet mbi protokollet e tjera të transportit, të tilla si Systems Network Architecture (SNA).

## Gjendja e soketëve dhe modeli klient-server
Proceset kompjuterike që ofrojnë shërbime të aplikacioneve dhe krijimi i soketëve në fillim që janë në gjendje të dëgjimit mund të quhen servera. Këta soketë janë duke pritur për iniciativat e programit të klientit. Për një TCP soket që është duke u dëgjuar, në adresën e largët e paraqitur nga netstat mund të jetë 0.0.0.0 dhe numrin e portit të largët 0.

Një **TCP server** mund të shërbejë disa klientë njëkohësisht, duke krijuar një proces fëmijë për çdo klient dhe krijimin e një lidhje TCP në mes të procesit të fëmijës dhe të klientit. Unique kushtuar të dedikuara janë krijuar për çdo lidhje. Këto janë në gjendje të lidhura, kur një lidhje soket-me-soket lidhja virtuale apo qarku virtual (VC), gjithashtu i njohur si një seancë TCP, që është themeluar me soketin në largësi, duke siguruar një rrjedhë të dyfishtë të bajtave.

Gjendjet e tjera të mundshme të TCP soketëve paraqitur nga komandat e netstat janë Syn-sent, Syn-Recv, Fin-wait1, Fin-wait2, Time-wait, Close- wait dhe Close të cilët kanë të bëjnë me fillimin dhe mbylljen e hapave të ndryshme.

Një **server** mund të krijojë njëkohësisht disa lidhje me TCP soketat në të njëjtin numër të portit lokal dhe IP adresa lokale. Ata janë të trajtuara si soketë të ndryshëm nga sistemi operativ, që nga adresa e soketit në një pikë të largët (IP adresa e klientit dhe/ose numri i portit) janë të ndryshme.

Një** UDP soket** nuk mund të jetë në gjendje të lidhur, pasi që është jo-konektues. Prandaj, netstat nuk tregon gjendjen e një UDP soketi . Një UDP server nuk krijon procese fëmijë të reja për çdo klient njëkohësisht të shërbyer, por i njëjti proces trajton paketat e të dhënave hyrëse nga të gjithë klientët e largët njëra pas tjetrës me anë të njëjtit soket. Kjo nënkupton se UDP soketët nuk janë të identifikuara nga adresa e largët, por vetëm nga adresa lokale, edhe pse çdo mesazh e ka një adresë të largët të bashkuar.
## Çështjet e Zbatimit 
Soketët implementohen zakonisht nga një librari API të tilla si soketët e Berkeley, prezantuar për herë të parë më 1983. Shumica e implementimeve janë të bazuara në soketët e Berkeley, si shembull Winsock u prezantua më 1991. Ekzistojnë implementimi i soketëve të tjerë të API, të tilla si ndërfaqja shtresor transportues (TLI) të bazuar në STREAM.

## Soketët në pajisjet e rrjetave 
Soketi është një koncept i përdorur në shtresën e transportit të modelit të internetit. Pajisjet e rrjetëve të tilla si routerët dhe switchët nuk kërkojnë implementimin e shtresës së transportit, pasi që ata veprojnë në nivel të Link Layer (switch) ose në Internet Layer (routers).
Soketët e niveleve të ulëta janë zakonisht në dispozicion në pajisjet e rrjetit, dhe përdoret si udhëtregues për protokolet si IGMP dhe OSPF, si dhe në Internet Control Message Protocol (ICMP).

## Referimet
#^ Cisco Networking Academy Program, CCNA 1 and 2 Companion Guide Revised Third Edition, P.480, ISBN 1-58713-150-1
#^ books.google.com - UNIX Network Programming: The sockets networking API
#^ Stevens, Richard. UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets. ISBN 0-13-490012-X.
#^ Wikipedia: Berkeley sockets 2011-02-18
#^ Wikipedia: Transport Layer Interface 2011-02-18