Mikä on pistorasia?

Voisiko joku selittää minulle mikä on pistorasia? Näen sen monissa lyhenteissä esimerkiksi SSL: n yhteydessä.

Miksi sitä kutsutaan myös socketiksi? Onko se puhtaasti sen takia, minkä nimen he keksivät? Vai oliko se ensimmäinen nimi, jonka he keksivät?

Kommentit

  • Maallikon ’ sanalla: pistorasia on puhelin. ’ on asia, jota pidät kädessäsi ja jonka avulla voit keskustella toisen puhelimen kanssa. Vastaavuus hajoaa hieman: Useimmat puhelinkeskustelut ovat vertaisverkkoa. Socket-yhteydet ovat asiakas-palvelin. Asiakas (kuten, mutta ei rajoittuen, työasemaohjelmistot, kuten selaimet), muodostaa yhteyden palvelimeen (kuten web-palvelimeen, tiedostopalvelimeen, todennuspalvelimeen tai muuhun). Toinen virhe analogiassa: kun suljet pistorasiayhteyden, pistorasia tuhoutuu, ja sinun on luotava uusi liitäntä, ennen kuin voit muodostaa uuden yhteyden.
  • Se ’ s ei ole niin huono analogia. Palvelin on vain puhelinkeskus ja sillä voi olla useita satoja aktiivisia puheluita kerralla.

Vastaa

Liitäntä on vain looginen päätepiste viestinnälle. Ne ovat olemassa kuljetuskerroksessa. Voit lähettää ja vastaanottaa asioita pistorasiassa, voit sitoa ja kuunnella pistorasiaa. Liitäntä on ominainen protokollalle, koneelle ja portille, ja se osoitetaan sellaisenaan paketin otsikossa.

Beej opastaa verkkoon Ohjelmoinnilla ja prosessien välisellä viestinnällä on molemmilla hyviä tietoja pistorasioiden käytöstä ja jopa vastaa tähän tarkkaan kysymykseen .

Vastaa

Yksinkertaisesti sanottuna socket on näennäistiedosto, joka edustaa Kun liitäntä on luotu (käyttäen oikeita primitiivejä ja asianmukaisia parametreja toisen isännän tunnistamiseksi), pistorasiaan kirjoitetut tiedostot muutetaan verkkopaketeiksi, jotka lähetetään, ja verkosta vastaanotetut tiedot voidaan lukea liitännästä.

Yhdessä suhteessa pistorasiat ovat hyvin samanlaisia kuin putket: ne näyttävät aivan kuten tiedostot niitä käyttäviltä ohjelmilta, mutta eivät johda lukemiseen tai kirjoittamiseen levylle; pikemminkin ne mahdollistavat kommunikoinnin toisen ohjelman kanssa (putkien tapauksessa paikallinen ja po kaukana pistorasioiden tapauksessa). Ne tarjoavat myös, kuten mainitset, kaksisuuntaisen viestinnän (aivan kuten pari oikein kytkettyä putkiparia voisi olla).

Lopuksi on tavallista, että yhden koneen ohjelmat kommunikoivat tavallisten verkkoprotokollien, kuten TCP, avulla. ; olisi tuhlaavaa mennä aina verkkolaitteistoon (jos sellainen on!), tarkistussummien laskemiseen jne., vain palata samaan isäntään: Unix-verkkotunnusten pistorasiat tulevat sisään. Ne muistuttavat tavallisia pistorasioita. , paitsi että ne yhdistävät prosessit samalla isännällä etätietojen sijasta eivätkä yritä käyttää mitään verkkoresursseja lainkaan. Tällä tavoin ne ovat prosessien välisen viestinnän väline.

Kuten tripleee mainitsi , BSD: n historian aikana putket otettiin käyttöön aikaisemmin kuin pistorasiat, ja ne uudistettiin uudelleen pistorasioiden avulla, kun ne olivat olemassa. Samassa viitteessä The Design and Implementation of the FreeBSD Operating System mainitaan, että putket sitten palattiin muuhun kuin pistorasiaan suorituskyvyn vuoksi: tämä varmasti korostaa sitä, että putkilla on yhtäläisyyksiä.

Kommentit

  • Ehkä mainitaan myös se putket ovat aikaisempia kuin pistorasiat, mutta kun liitäntärajapinta lisättiin Unixiin, sillä oli paljon järkeä o toteuttaa putket uudelleen paikallisilla pistorasioilla.
  • @tripleee: Se ’ on hieno historiallinen asia. Haluatko antaa viitteen?
  • Nopea Google-haku tekee sivun 40 FreeBSD-käyttöjärjestelmän suunnittelu ja toteutus ; tekstissä mainitaan tämä muutos 4.2BSD: ssä, mutta siinä selvennetään myös, että näin ei enää suoriteta ’ suorituskykysyistä.
  • Erinomainen, I ’ Lisää tämä vastaukseeni.
  • Paras teknovaste kaikissa

Vastaa

Mikä se on?

Liitäntä tai ”liitäntä” voi olla useita asioita:

Ensinnäkin se on ajatus malli ja sovelluksen ohjelmointirajapinta (API) . Tämä tarkoittaa, että sinulla on joukko sääntöjä, joita sinun on noudatettava, ja joukko toimintoja, joiden avulla voit kirjoittaa ohjelmia, jotka tekevät jotain tarkalleen määritellyn sopimuksen mukaisesti. Tässä nimenomaisessa tapauksessa jotain tarkoittaa tietojen vaihtoa toisen ohjelman kanssa.

Socket-sovellusliittymä tiivistää laajasti ”viestinnän” yksityiskohdat yleensä. Se kertoo kenen kanssa puhut ja miten kaikki yhden (melkein) yhdenmukaisen ja identtisen evästeiden leikkausmuodon kautta.
Voit luoda pistorasioita eri ”verkkotunnuksilla” (kuten esim.”unix-liitäntä” tai ”Internet-liitäntä”) ja erityyppistä viestintää (esim. ”datagrammi” -liitäntä tai ”virta” -liitäntä) ja puhu eri vastaanottajien kanssa, ja kaikki toimii täsmälleen samalla tavalla (hyvin, 99%, tietenkin on pieniä eroja, jotka sinun on otettava huomioon).

Sinun ei tarvitse tietää (ja et edes halua tietää!) Puhutko toisen ohjelman kanssa samalla tietokoneella vai toisella tietokoneella, onko näiden tietokoneiden välillä IPv4- tai IPv6-verkko, tai ehkä jokin muu protokolla, josta et ole koskaan kuullut.

socket on myös kirjastofunktion (tai syscall) nimi, joka luo ”socket ”, joka on erityinen tiedosto (kaikki Unixissa on tiedosto).

Kuinka se vertaa …

pistorasiat kuuluvat samaan luokkaan kuin putket ja nimiputket

Putki on o -väline ei tapa viestintä lukijan ja kirjoittajan välillä (molemmat ovat ohjelmia) samalla tietokoneella. Se simuloi tietovirtaa (aivan kuten esim. TCP).
Eli putken näkökulmasta ei ole yksittäisiä ”viestejä” tai ”tietolohkoja”. Voit kopioida mikä tahansa määrä tietoja ”yhteen päähän”, ja joku muu voi lukea minkä tahansa määrän tietoja (ei välttämättä samoja eikä välttämättä yhdellä kertaa) ”toisessa päässä” samassa tavujärjestyksessä kuin olet työntänyt sen sisään .

Nimetty putki on hyvin, yksinkertaisesti putki joka omistaa nimen tiedostojärjestelmässä . Toisin sanoen se on jotain, joka näyttää ja käyttäytyy aivan kuten tiedosto, se näkyy hakemistoluettelossa ja voit avata sen, kirjoittaa siihen jne. Huomaa, että voit myös luoda socket-erikoistiedostoja (jotka olisivat nimettyjä Sitä vastoin liitäntä on keino kaksisuuntaiselle (” duplex ”) -yhteys tarkoittaa, että voit kirjoittaa ja lukea samasta liitännästä, etkä tarvitse kahta erillistä liitäntää kaksisuuntaiseen viestintään.
Liitäntä voi toimia myös virtana (identtinen putken kanssa) ), tai se voi lähettää erillisiä, epäluotettavia viestejä tai lähettää erillisiä, järjestettyjä viestejä (kaksi ensimmäistä toimivat missä tahansa verkkotunnuksessa, viimeiset vain ”unix-toimialueella”). Se voi lähettää viestejä (tai simuloida virtaa) jollekin pistorasia voi jopa muodostaa yhden tai useamman viestinnän (ryhmälähetys) tietyissä olosuhteissa.

Tässä mielessä on selvää, että pistorasiat tekevät jotain paljon monimutkaisempaa ja yleensä : llä on enemmän yläpuolta kuin putkilla (jotka eivät periaatteessa ole muuta kuin yksinkertainen memcpy puskuriin ja sieltä!), mutta jos luot paikallisia pistorasioita (ts. samassa tietokoneessa), käyttöjärjestelmä käyttää yleensä voimakkaasti optimoitua nopeaa polkua, joten eroa ei todellakaan ole paljon.

prosessien välinen viestintä joskus mainittu verkkojen suhteen

Kyllä, pistorasiat ovat yksi mahdollinen tapa prosessienväliseen viestintään (jaettu muisti ja putket ovat esimerkkejä vaihtoehdoista). Samanaikaisesti niitä käytetään ”verkostoitumiseen”, kuten edellä on selitetty.

Vastaa

Liitäntä abstraktio . Se tarjoaa käyttöliittymän sovelluksille järjestelmän resurssin (tässä tapauksessa verkkoyhteyden) hyödyntämiseksi tavalla, joka sallii käyttöjärjestelmän välittää ja järjestää rajoitetun resurssin käytön millä tahansa sovelluksella.

Jos pistorasian kautta lähetettäviä tietoja voidaan ajatella kirjekuorina, pistorasia olisi postilaatikkosi. Liität postilaatikon (pistorasian) taloon (ohjelma) ja laitat lähtevän postisi (tiedot) siihen. Määritettyyn aikaan postilaatikko (käyttöjärjestelmä) tulee mukaan, hakee lähtevän postisi ja pudottaa kaikki saapuvat postit samaan postilaatikkoon. Lähtevä postisi välitetään puolestasi vastaanottajalle postilaatikon kuorma-autolla (verkkoyhteys) yhdessä kaikkien naapureidesi postien kanssa. Näin voit olla yhteydessä kaukana oleviin ihmisiin ilman, että sinun tarvitsee maksaa itse kirjeen toimittamisesta aiheutuvia kustannuksia, aikaa, vaikeuksia jne.

Miksi he ”kutsuvat hyvin” pistorasioita ”, ajatus, että keksijät saavat kutsua sitä millä haluavat, sillä on todennäköisesti suuri rooli. Vaikka se ei mielestäni ole huono nimi 🙂

Vastaa

Jos kyseessä on udp tai tcp IP: n kautta,

Socket-osoite on IP-osoitteen ja portin numeron yhdistelmä.

IP-osoite on kone Internetissä esim unix.stackexchange.com has address 198.252.206.140

Jokaisen koneen on kuitenkin pystyttävä tarjoamaan useampi kuin yksi palvelu, joten useimmat koneet tarjoavat http (verkkosivut) portissa 80 ja ssh portissa 22 ja niin edelleen.

Joten unix.stackexchange.com div unix.stackexchange.com:80 portti 80 > (pistorasia) on tämän verkkosivuston tukiasema.

Kuitenkin on muitakin pistorasioita, katso alla olevat kommentit.

Kommentit

  • tcp / ip on vain yhden tyyppinen pistorasiaan. On muitakin, joilla ei ole mitään tekemistä TCP / IP: n kanssa.
  • kuinka monta erilaista pistorasiaa on?
  • @AbdulAlHazred, tiedän neljä yleistä tyyppiä, joita käytetään IP-verkkojen kanssa sama ip6: n kanssa, kaksi unixin kanssa ja kaksi IPX: n kanssa. En ole katsonut ax25: tä, atm: ää tai appletalkia. On muitakin linuxilla tuettuja protokollia, ja on protokollia, joita linux ei tue. Useimmissa tapauksissa kullakin protokollalla on virta (tcp) ja datagrammi (udp). Raakapistorasiat ovat myös yleisiä, ja imcp: llä voi olla myös pistorasiarajapinta.
  • Tämä vastaus on kuitenkin epätäydellinen, koska se kattaa vain yhden tyyppisen pistorasian ja on harhaanjohtava, koska se edustaa pistorasioita yleensä kuten jos ne olisivat aina olleet verkkopistokkeita ja erityisesti IP (AF_INET) -liitäntöjä.

Vastaa

Uskon, että kysyit verkostoitumisesta. Joten TCP-palvelut käyttävät pistorasioita tiedonsiirtoon ja muodostuvat IP-osoitteesta, protokollasta ja portin numerosta.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *