Áttekintés az aljzat programozásáról a számítógépes hálózatokhoz

A foglalat a számítógépes hálózati programozás egyik legfontosabb technológiája. A csatlakozók lehetővé teszik a hálózati szoftveralkalmazások számára a hálózati hardver és operációs rendszerekbe é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 között (ún. Pont-pont összeköttetés). 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 is használhatók helyi ( interprocess ) kommunikációra egyetlen számítógépen. A foglalatok kétirányúak , vagyis a kapcsolat mindkét oldala képes adat küldésére és fogadására. 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ájlbeírási / kimeneti rutinokban, mint a read () , a write () és close () . 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:

  • A legelterjedtebb típusú stream- csatlakozóknak megköveteli, hogy a két kommunikáló fél először csatlakozást létesítsen, majd az adott kapcsolaton áthaladó összes adat garantáltan ugyanabban a sorrendben érkezik, amelyben elküldte - úgynevezett kapcsolatorientált programozással modell.
  • A datagram- 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ását a szabványos protokollokhoz, például a TCP és az UDP számára . 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 név nélkül ( pl .: "thiscomputer.wireless.about.com") számítógéppel együtt dolgozhatnak a cím helyett ( pl . 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.