Socket (szoftver interfész)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. szeptember 2-án felülvizsgált verziótól ; az ellenőrzésekhez 10 szerkesztés szükséges .

Socket ( angolul  socket  - connector) - a folyamatok közötti adatcserét biztosító szoftver interfész neve . Az ilyen cserefolyamatok egy számítógépen és különböző számítógépeken is végrehajthatók, amelyek csak hálózaton keresztül kapcsolódnak össze . A socket egy absztrakt objektum, amely a kapcsolat végpontját képviseli.

Különbséget kell tenni a kliens és a szerver socketek között . A kliens aljzatok nagyjából a telefonhálózat végberendezéseivel, a kapcsolós szerveraljzatok pedig összehasonlíthatók . Az ügyfélalkalmazások (például a böngészők ) csak kliens socketeket, a szerveralkalmazások (például egy webszerver , amelyhez a böngésző kéréseket küld) pedig kliens- és kiszolgáló socketeket is használnak.

A socket interfész először a BSD Unixban jelent meg . A socket API-t a POSIX.1 szabvány határozza meg, és bizonyos mértékig minden modern operációs rendszer támogatja .

Socket elvek

A címek és portok a TCP/IP protokoll verem segítségével kommunikálnak a gépek között . A cím egy 32 bites struktúra az IPv4 protokollnál , 128 bites az IPv6 protokollnál . A portszám egy 0 és 65535 közötti egész szám (a TCP protokoll esetében ).

Ez a pár egy socketet határoz meg (egy címnek és portnak megfelelő "socket" ).

A cserefolyamat során általában két aljzatot használnak - a küldő aljzatát és a címzett aljzatát. Például, amikor a kiszolgálót a HTTP - porton éri el, a socket így fog kinézni: 194.106.118.30:80, és a válasz a következő címre érkezik: mmm.nnn.ppp.qqq:xxxxx.

Mindegyik folyamat létrehozhat egy "hallgató" socketet (szerver socket), és hozzákötheti azt valamilyen operációs rendszer porthoz ( UNIX -ban a nem jogosult folyamatok nem használhatnak 1024-nél kisebb portokat).

A hallgatás folyamata általában várakozási ciklusban zajlik, azaz felébred, amikor új kapcsolat jön létre. Ugyanakkor továbbra is lehetséges a csatlakozások pillanatnyi ellenőrzése, a művelet időtúllépésének beállítása stb.

Minden aljzatnak saját címe van. A UNIX család operációs rendszerei sokféle címet támogathatnak, de az INET-cím és a UNIX-cím szükséges . Ha UNIX címhez kötünk egy socketet, akkor a megadott elérési úton egy speciális fájl ( socket file ) jön létre, amelyen keresztül bármely helyi folyamat kommunikálhat belőle olvasva/írva (lásd Unix domain socket ). Az INET - aljzatok elérhetők a hálózatról, és portszámot kell hozzárendelni.

Általában a kliens kifejezetten "csatlakozik" a figyelőhöz, majd a fájlleíró bármely olvasása vagy írása adatokat továbbít közte és a szerver között.

Lásd még

Jegyzetek