next up previous contents
Next: Egy összeköttetés-alapú kliens-szerver Up: Hálózatok Previous: A transzport szint

A Berkeley socketok

A socketok a UNIX-ban a hálózati (és helyi ...) kommunikáció végpontjai, ezeken keresztül lehet a helyi transzport- és más hálózati rétegekhez hozzáférni. Lényegében postaládaként viselkednek: hozzájuk rendelhetünk bizonyos címeket, és fogadhatjuk róluk az oda érkezett adatokat, illetve adatokat küldhetünk el onnan másoknak. A socketokat eredetileg a BSD UNIX-ban készítették el, és az oket manipuláló eljárások ott rendszerhívásokként érhetoek el, de késobb az AT&T UNIX-hoz is készítettek egy socket-emulációs könyvtárat, amely az AT&T kernel más lehetoségeire épül.

A socket könyvtárak lehetové teszi hálózati szoftverek készítését úgy, hogy a program készítése során nem a program alatt levo protokoll lehetoségeire kell a figyelmet összpontosítani. A socketok létrehozásakor meg kell adni azt, hogy a socket milyen kommunikációs domainbe tartozik (például TCP/IP Internet vagy X25). Késobb ha majd a sockethoz "címet" rendelünk, akkor a címet az adott domain-nek megfelelo formátumban kell az operációs rendszerrel közölni. Ezen kívül meg kell adni a kommunikáció módját is (pl. összeköttetés alapú byte-folyam jellegu vagy datagram jellegu ...). Ez alapján a rendszer kiválasztja az adott domain-en belül azt a kommunikációs protokollt, amely az adott módú kommunikáció megvalósítására képes. Ha több protokollt is ismer a rendszer, amely a (domain,mód) párnak megfelel, akkor explicit módon meg lehet adni azt, hogy azok közül melyiket akarom használni (ha ez eltér a rendszerben ismert default értéktol). Például ha az Internet domain-en belül byte-folyam jellegu kommunikációt akarok végezni, akkor a rendszer automatikusan a TCP protokollt választja ki, mert az Internet domain-en belül ez az alapértelmezés szerinti (bytefolyam-jellegu kommunikáció esetén). Ha az Internet domain-en belül datagram jellegu kommunikációt akarok, akkor a rendszer az UDP-t választja ki, mert az Internet domain-en belül mindig az az alapértelmezés szerinti protokoll datagram jellegu kommunikáció esetén (arrol még lesz szó részletesebben, hogy mikor mi az alapértelmezés szerinti protokoll ...). Ezután a program visszakap egy egész típusú ún. socket-leírót, amivel a socketra hivatkozhat. Amennyire ez lehetséges, a socketok úgy viselkednek, mint a fájlok, tehát ha van értelme, akkor meg vannak rájuk engedve a szokásos read, write, close, ... fájlmuveletek.





next up previous contents
Next: Egy összeköttetés-alapú kliens-szerver Up: Hálózatok Previous: A transzport szint



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996