Ülevaade arvutivõrgu koostoimimisprogrammidest

Pistik on üks peamisi arvutivõrgu programmeerimise tehnoloogiaid. Pesad võimaldavad võrgutarkvara rakendustel sidepidamiseks kasutada võrguseadmetes ja operatsioonisüsteemides ehitatud standardseid mehhanisme.

Kuigi see võib tunduda lihtsalt veel ühe Interneti-tarkvaraarenduse tunnusjoonest, oli pika tehnoloogia olemas juba enne veebi. Ja paljud tänapäeva kõige populaarsemad võrgutarkvara rakendused toetuvad pistikupesadele.

Millised pistikupesad suudavad teie võrgus teha?

Socket esindab ühte ühendust täpselt kahe tarkvaraga (nn punkti-to-point ühendus). Rohkem kui kaks tarkvarat võivad suhelda kliendi / serveri või hajutatud süsteemidega, kasutades mitut pistikupesa. Näiteks võivad paljud veebibrauserid ühe serveriga suhelda ühe veebiserveriga üheaegselt.

Socket-põhine tarkvara töötab tavaliselt võrgus kahes eraldi arvutis, kuid pistikupesasid saab kasutada ka ühe arvutiga lokaalseks ( interprotsess ) edastamiseks. Pistikupesad on kahesuunalised , mis tähendab, et mõlemad ühenduse küljed on võimelised nii andmete saatmiseks kui ka vastuvõtmiseks. Mõnikord on üks rakendus, mis käivitab suhtlemist, nimetatakse "kliendiks" ja teise rakendusena "server", kuid see terminoloogia viib segadusse peer-to-peer võrkude loomiseks ja üldiselt tuleks seda vältida.

Socket API-liidesed ja raamatukogud

Internetis on olemas mitu raamatukogu, mis rakendavad standardset rakendusprogrammide liidest (API-sid) . Esimene mainstream pakett - Berkeley Socket Raamatukogu on endiselt laialdaselt kasutusel UNIX-süsteemides. Teine väga levinud API on Microsofti operatsioonisüsteemide Windowsi pistikprogrammide (WinSock) raamatukogu. Võrreldes teiste arvutitehnoloogiatega on socket API-sid üsna küpsed: WinSock on kasutusel alates 1993. aastast ja Berkeley pistikupesadest alates 1982. aastast.

Socket API-sid on suhteliselt väikesed ja lihtsad. Paljud funktsioonid on sarnased failide sisend- / väljundrünnakutega nagu read () , write () ja close () . Tegelike funktsionaalsete kõnede kasutamine sõltub valitud programmeerimiskeeltest ja pistikupaberist.

Pesa liidese tüübid

Pesa liideseid saab jagada kolme kategooriasse:

  • Kõige levinumat tüüpi voogude pistikupesad eeldavad, et kaks suhtlevad osapooled loovad esmalt pistikühenduse, mille järel kõik selle ühenduse kaudu läbitud andmed tagastatakse samas järjekorras, kus see saadeti - nn ühenduspõhine programmeerimine mudel.
  • Datagrami pistikupesad pakuvad sean -vähem semantikat. Datagrammidega on ühendused pigem kaudsed, mitte otsesed, nagu ka ojad. Mõlemad pooled lihtsalt saadavad datagrammid vastavalt vajadusele ja ootavad, et teine ​​vastaks; sõnumid võivad kaduda ülekandes või laekunud ebajärjekindlalt, kuid nende probleemide lahendamiseks on rakenduse vastutus ja mitte pistikupesad. Datagrami pistikprogrammide rakendamine võib anda mõnele rakendusele jõudluse tõuke ja täiendava paindlikkuse võrreldes oja pistikupesade kasutamisega, mis põhjendab nende kasutamist mõnes olukorras.
  • Kolmanda tüüpi pistik - toores pesa - mööda raamatukogu sisseehitatud tugi standardprotokollidele nagu TCP ja UDP . Raw pistikupesasid kasutatakse tavapärase madala taseme protokollide väljatöötamiseks.

Socket Support võrguprotokollides

Tänapäevaseid võrgupesasid kasutatakse tavaliselt koos Interneti-protokollidega - IP, TCP ja UDP. Interneti-protokolli pistikupesad kasutavad teekid kasutavad voogude jaoks TCP-d, datagrammide jaoks UDP-d ja tooriku pistikupesade jaoks IP-d.

Internetis suhtlemiseks kasutavad IP-pistikulahendused konkreetsete arvutite tuvastamiseks IP-aadressi . Paljud Interneti-osad töötavad nimeteenustega, nii et kasutajad ja pistikprogrammeerijad saaksid arvutitega nime järgi ( nt "thiscomputer.wireless.about.com") töötada aadressi asemel ( nt 208.185.127.40). Streami ja datagrammide pistikupesad kasutavad ka IP- pordinumbreid, et eristada mitu rakendust üksteisest. Näiteks Interneti veebibrauserid teavad, et veebiserverite pistikuteadete vaikimisi kasutatakse porti 80.