A foglalat a számítógépes hálózati programozás egyik legfontosabb technológiája. A zsebek lehetővé teszik a hálózati szoftveralkalmazások számára a hálózati hardver és operációs rendszerekbe beépített szabványos mechanizmusok használatát.
Bár az internetes szoftverfejlesztésnek csak egy másik vonása lehet, a socket technológia sokáig létezett a weben. És sok mai legnépszerűbb hálózati szoftveralkalmazás támaszkodik az aljzatokra.
Mire képesek a hálózatok a hálózathoz?
Az aljzat egyetlen kapcsolatot képvisel pontosan két szoftver (az ún pontról pontra kapcsolat). Több, mint két szoftverrel lehet kommunikálni az ügyfél / kiszolgálóval vagy az elosztott rendszerekkel többféle socket használatával. Például sok web böngésző egyidejűleg kommunikálhat egyetlen webkiszolgálóval a kiszolgálón lévő aljzatok csoportján keresztül.
Az aljzat alapú szoftverek általában két különálló számítógépen futnak a hálózaton, de a socketek helyi módon is kommunikálhatnak ( interprocess ) egyetlen számítógépen. Az aljzatok vannak kétirányú , ami azt jelenti, hogy a kapcsolat mindkét oldala képes adatküldésre és fogadásra. Néha az egyik alkalmazás, amely kezdeményezi a kommunikációt, az úgynevezett "kliens", a másik pedig a "szerver", de ez a terminológia zavart okoz a peer-to-peer hálózatokban, és általában kerülni kell őket.
Socket API-k és könyvtárak
Számos olyan könyvtára létezik, amely szabványos alkalmazásprogramozási interfészeket (API-kat) tartalmaz az interneten. Az első mainstream csomag - a Berkeley Socket Library még mindig széles körben használatos a UNIX rendszereken. Egy másik nagyon gyakori API a Windows operációs rendszerek Windows Sockets (WinSock) könyvtára. Más számítógépes technológiákhoz képest a socket API-k meglehetősen érettek: a WinSock 1993 óta működik, és a Berkeley csatlakozói 1982 óta.
A socket API viszonylag kicsi és egyszerű. A függvények többsége hasonló a fájlbeillesztés / kimenet rutinokban, mint például a olvas(), ír(), és Bezárás(). A használni kívánt függvény függ a programozási nyelvtől és a választott aljzat könyvtártól.
Socket interfész típusok
Az aljzat interfészek három kategóriába sorolhatók:
- Folyam A legelterjedtebb típusú aljzatok megkövetelik, hogy a két kommunikáló fél először csatlakozást létesítsen, majd az adott kapcsolaton áthaladt összes adat garantáltan ugyanabban a sorrendben érkezik, amelyben küldték - úgynevezett kapcsolatorientált programozási modell .
- datagram az aljzatok "kapcsolat nélküli" szemantikát kínálnak. A datagramokkal a kapcsolatok implicitek, nem explicitek, mint a patakok. Bármelyik fél egyszerűen csak elküldi a datagramokat, és vár a másikra, hogy válaszoljon; az üzenetek elveszhetnek az átvitel során vagy a megbízásból kifogásolva, de az alkalmazás felelőssége, és nem az ilyen problémák kezelésére szolgáló aljzatok. A datagram-aljzatok végrehajtása bizonyos alkalmazások számára növelheti a teljesítményt és további rugalmasságot az áramcsatlakozók használatához képest, ami igazolja azok használatát bizonyos helyzetekben.
- A harmadik típusú foglalat - a nyers aljzat - megkerüli a könyvtár beépített támogatást a szabványos protokollokhoz, például TCP és UDP. A nyers aljzatokat az egyéni alacsony szintű protokollok fejlesztésére használják.
Socket támogatás a hálózati protokollokban
A modern hálózati aljzatokat tipikusan az internet protokollokkal - IP, TCP és UDP - használják. Az IP protokollt használó könyvtárak a TCP protokollt, a UDP datagramokat és az IP-t használják nyers aljzatokhoz.
Az interneten keresztül történő kommunikációhoz az IP socket könyvtárak az IP-címet használják bizonyos számítógépek azonosítására. Az internet számos része elnevezési szolgáltatással működik, így a felhasználók és a socket programozók számítógéppel együtt név szerint ( például. , "thiscomputer.wireless.about.com") helyett cím ( például. , 208.185.127.40). A patak- és datagramcsatlakozók IP-portszámokat is használnak, hogy megkülönböztessék egymástól több alkalmazást. Például az interneten található webböngészők tudják, hogy a 80-as portot használják a webkiszolgálókkal történő socket kommunikáció alapértelmezésének megfelelően.