Skip to main content

Socket Programming for Computer Networking - Kopsavilkums

Anonim

Socket ir viena no fundamentālākajām datortīkla programmēšanas tehnoloģijām. Savienojumi ļauj tīkla programmatūras lietojumprogrammām sazināties, izmantojot tīkla aparatūras un operētājsistēmu iebūvēto standarta mehānismu.

Lai gan tas varētu izklausīties kā vēl viena interneta programmatūras izstrādes iezīme, socket-tehnoloģija pastāvēja ilgi pirms Web. Un daudzi mūsdienu populārākie tīkla programmatūras lietojumprogrammas balstās uz kontaktligzdām.

Ko ligzdas var darīt jūsu tīklā

Socket pārstāv vienu savienojumu starp tieši diviem programmatūras gabaliem (tā saukto punkts-punkts savienojums) Vairāk nekā divas programmatūras daļas var sazināties ar klientu / serveri vai izplatītajām sistēmām, izmantojot vairākas kontaktligzdas. Piemēram, daudzi tīmekļa pārlūkprogrammas vienlaikus var sazināties ar vienu tīmekļa serveri, izmantojot serverī izveidoto kontaktligzdu grupu.

Socket-based software parasti darbojas tīklā ar diviem atsevišķiem datoriem, taču kontaktligzdas var izmantot arī lokāli saziņai ( starpprocess ) vienā datorā. Slēdži ir divvirzienu , kas nozīmē, ka savienojuma abas puses var gan sūtīt, gan saņemt datus. Dažreiz viena lietojumprogramma, kas sāk komunikāciju, tiek dēvēta par "klientu", bet otru - par "serveri", taču šī terminoloģija rada neskaidrības vienādranga tīklā, un to parasti vajadzētu izvairīties.

Socket API un bibliotēkas

Internetā pastāv vairākas bibliotēkas, kas ievieš standarta lietojumprogrammu saskarnes (API). Pirmā galvenā pakete - Berkeley Socket Library joprojām plaši tiek izmantota UNIX sistēmās. Vēl viena ļoti izplatīta API ir Windows operētājsistēmu Windows Sockets (WinSock) bibliotēka. Salīdzinājumā ar citām datortehnoloģijām socket API ir diezgan nobriedis: WinSock ir izmantots kopš 1993. gada un Berkeley kontaktligzdas kopš 1982. gada.

Socket API ir salīdzinoši neliels un vienkāršs. Daudzas funkcijas ir līdzīgas tām, kas tiek izmantotas failu ievades / izvades kārtībā, piemēram, lasīt (), rakstīt (), un aizvērt (). Faktiskais funkciju izmantošanas aicinājums ir atkarīgs no izvēlētās programmēšanas valodas un ligzdas bibliotēkas.

Socket Interface Types

Socket interfeisi var iedalīt trīs kategorijās:

  • Plūsma ligzdām, visbiežāk sastopamajam veidam, ir nepieciešams, lai abas saziņas puses vispirms izveidotu kontaktligzdas savienojumu, pēc kura garantē, ka visi dati, kas notika caur šo savienojumu, tiks nogādāti tādā pašā secībā, kādā tā tika nosūtīta, - tā saucamais sakaru orientēts programmēšanas modelis .
  • Datagramma ligzdas piedāvā semantiku "bez savienojuma". Ar datagrammu savienojumi ir netieši, nevis skaidri, kā ar straumēm. Katra puse vienkārši nosūta datagrammas pēc nepieciešamības un gaida, kad otra puse atbildēs; ziņojumi var tikt pazaudēti pārsūtīšanā vai saņemti nepareizā kārtībā, bet pieteikuma atbildība ir tā, nevis socket, lai risinātu šīs problēmas. Datagrammas kontaktligzdas ieviešana dažām lietojumprogrammām var dot darbības spēju un papildu elastību salīdzinājumā ar plūsmas ligzdām, pamatojot to izmantošanu dažās situācijās.
  • Trešais ligzdu veids - neapstrādāts ligzda - apiet bibliotēkas iebūvēto atbalstu standarta protokoliem, piemēram, TCP un UDP. Neapstrādātas ligzdas tiek izmantotas pielāgotam zema līmeņa protokola izstrādei.

Socket Support tīkla protokolos

Mūsdienu tīkla ligzdas parasti izmanto kopā ar interneta protokoliem - IP, TCP un UDP. Bibliotēkas, kas ievieš Interneta protokolu ligzdas, izmanto TCP plūsmām, UDP datagramiem un pašu IP izejas ligzdām.

Lai sazinātos ar internetu, IP pieslēgvietu bibliotēkas izmanto IP adresi, lai noteiktu konkrētus datorus. Daudzas interneta daļas strādā ar nosaukumu pakalpojumiem, lai lietotāji un pieslēgvietu programmētāji varētu strādāt ar datoriem pēc nosaukuma ( piem., , "thiscomputer.wireless.about.com"), nevis pa adresi ( piem., , 208.185.127.40). Stream un datagrammas ligzdas arī izmanto IP portu numurus, lai atšķirtu vairākas programmas no cita. Piemēram, interneta pārlūkprogrammās internetā ir zināms, ka portam 80 kā noklusējuma kontaktligzdu saziņai ar Web serveriem ir zināma nozīme.