Hálózati architektúrák laborgyakorlat

Hasonló dokumentumok
Dr. Varga Imre Debreceni Egyetem, Informatikai Kar. Socket-programozás. C nyelven, Linux alatt

Dr. Varga Imre. Socket-programozás. C nyelven

Számítógépes hálózatok I.

Számítógépes hálózatok

TCP szerver készítése

Számítógépes Hálózatok. 9. gyakorlat

Socket programozás Példák

TCP/IP SOCKET INTERFACE

Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:

Bevezetés a SOCKET programozásba UDP kliens

SOCKET használata UDP kliens

Beej útmutatója a hálózati programozáshoz

Számítógépes Hálózatok GY 3-4.hét

Számítógépes Hálózatok. 3. gyakorlat

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes hálózatok

Socketek programozása

FTP: Elkülönített kontroll- és adatkapcsolat. FTP: File Transfer Protocol

Számítógépes Hálózatok. 3. gyakorlat

Számítógépes Hálózatok 2012

UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása

TCP ÉS UDP. Médiakommunikációs hálózatok (VIHIM161) Médiatechnológiák és -kommunikáció szakirány. Dr. Lencse Gábor

TCP szerver. TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton

Kommunikáció. 3. előadás

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Gyorstalpaló hálózatprogramozás C nyelven UNIX. környezetben

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok ősz 2006

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

Kommunikáció Androidon Mobilinternet Wifi

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

Hálózati architektúrák laborgyakorlat

Hálózati Architektúrák és Protokollok GI BSc. 10. laborgyakorlat

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

Számítógépes Hálózatok GY 7.hét

Hálózati architektúrák és Protokollok PTI 6. Kocsis Gergely

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

UNIX: folyamatok kommunikációja

Számítógépes Hálózatok GY 3.hét

Operációs rendszerek. 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor)

Számítógépes Hálózatok. 4. gyakorlat

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok GY 4.hét

Modla Ferenc augusztus Port szkennelés

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Kommunikáció - Wi-Fi, Mobil internet - Bluetooth - GSM / GPRS és SMS - NFC

Hálózati beállítások Készítette: Jámbor Zoltán 2016

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Hálózati architektúrák és Protokollok Levelező II. Kocsis Gergely

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

SzIP kompatibilis sávszélesség mérések

Számítógépes Hálózatok. 7. gyakorlat

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE

TCP/IP szállítási réteg ( socket programozási interfész )

Hálózati alapismeretek

DHCP. Dinamikus IP-cím kiosztás DHCP szerver telepítése Debian-Etch GNU linuxra. Készítette: Csökmei István Péter 2008

Hálózatos adatbázis-kapcsolódási problémák és azok javítása

IPv6 általános jellemzés

Számítógépes Hálózatok GY 8.hét

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

Adatátviteli rendszerek Mobil IP. Dr. habil Wührl Tibor Óbudai Egyetem, KVK Híradástechnika Intézet

Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez

UNIX / Linux rendszeradminisztráció III. előadás

1. Bevezető. 2. IP cím és szolgáltatások felderítése

Segédlet a Hálózati architektúrák és protokollok laborgyakorlathoz v0.6

Fábián Zoltán Hálózatok elmélet

Fábián Zoltán Hálózatok elmélet

Információ és kommunikáció

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

Alkalmazás rétegbeli protokollok:

A PET-adatgy informatikai háttereh. Nagy Ferenc Elektronikai osztály, ATOMKI

Számítógépes hálózatok

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Hálózati architektúrák laborgyakorlat

A Wireshark program használata Capture Analyze Capture Analyze Capture Options Interface

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

1. A számítógép-hálózatok ISO-OSI hivatkozási modelljének hálózati rétege 1.a Funkciói, szervezése

ELTE SAP Excellence Center Oktatóanyag 1

Hálózati architektúrák és Protokollok MI 7,8. Kocsis Gergely

1/13. RL osztály Hálózati alapismeretek I. gyakorlat c. tantárgy Osztályozóvizsga tematika

III. Felzárkóztató mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Tisztelt Telepítő! A központ és az alkalmazás összehangolását a következőképpen hajthatja végre:

HÁLÓZATI BEÁLLÍTÁS. Videorögzítőkhöz

Információ és kommunikáció

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Kelenföldi Szilárd

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Hálózati ismeretek. Az együttműködés szükségessége:

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Tisztelt Telepítő! 2. Ellenőrizze, hogy a modul engedélyezve van-e: Szekció [382] Opció 5 (alternatív kommunikátor) BE.

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Kiskapu Kft. Minden jog fenntartva

Gyakorló feladatok a 2. ZH témakörének egyes részeihez. Számítógép-hálózatok. Dr. Lencse Gábor

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

Az RSVP szolgáltatást az R1 és R3 routereken fogjuk engedélyezni.

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

VIII. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Átírás:

Hálózati architektúrák laborgyakorlat 10. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember

A Unix (C) socket A kommunikációt lehetővé tevő programozási eszköz UNIX fájlleíró (ld. minden egy fájl filozófia) Passzív és aktív socketek használata read() és write() vs. send() és recv() Socket típusok (ld. szállítási réteg!): TCP-hez: stream (SOCK_STREAM) UDP-hez: datagram (SOCK_DGRAM)

Példaprogramok Socket programozási példák: http://irh.inf.unideb.hu/user/oroszp/node/98 tcpsrv.c: TCP példa - szerveroldali program fordítás: # gcc -o tcpsrv tcpsrv.c tcpclt.c: TCP példa - kliensoldali program fordítás: # gcc -o tcpclt tcpclt.c futtatás: #./tcpsrv #./tcpclt 127.0.0.1 # netstat -lp

A kapcsolat felépítése int socket(int domain, int type, int protocol): socket létrehozása domain: kommunikáció tartománya, protokoll család kiválasztása (ld. sys/socket.h) AF_INET: IPV4 végpont type: a kommunikáció szemantikájának kiválasztása SOCK_STREAM: szekvenciális, kétirányú, megbízható, kapcsolat alapú összeköttetés (TCP) SOCK_DGRAM: összeköttetés mentes kapcsolat (UDP) protocol: nem biztos, hogy implementálva van, most 0, a kommunikáció során alkalmazott szállítási réteg protokollt lehet meghatározni visszatérési érték: sikeres végrehajtáskor socket leíró (pozitív egész), hiba esetén -1, errno megfelelő hibakódra beállítva

Adatstruktúrák struct sockaddr { ( ) sa_family; // címcsalád, AF_xxx ( ) sa_data[14]; // a protocol cím 14 bájtja }; struct sockaddr_in { ( ) sin_family; // címcsalád in_port_t sin_port; // portszám struct in_addr sin_addr; // internet (IP) cím ( ) } struct in_addr { in_addr_t s_addr; // címet ír le, mérete architektúra függő };

A kapcsolat felépítése int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen): socket paraméterek beállítása sockfd: socket leíró level: SOL_SOCKET: socket API szintű konfiguráció optname: a beállítandó paraméter neve (ld. sys/socket.h) SO_REUSEADDR: kapcsolat bontása után a port újrahasznosítása (Port already in use üzenet elkerülése) SO_KEEPALIVE: kapcsolat életben tartása optval: a beállítandó érték optlen: a érték paraméter mérete visszatérési érték: 0: sikeres végrehajtás, egyébként -1, errno beállítva a megfelelő hibakódra

A kapcsolat felépítése int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen): socket hozzárendelése a névtérhez (jelen esetben IPcímhez, portszámhoz) sockfd: socket leíró addr: a hozzárendelendő névtér leírása (ld. netinet/in.h) addrlen: az előbbi adattípus hossz visszatérési érték: ld. mint előbb

A kapcsolat felépítése int listen(int sockfd, int backlog): "hallgatózás" a socketen, a sockfd passzív socketként várja a kapcsolódási kérelmeket. Passzív socket Aktív socket sockfd: socket leíró backlog: sorhossz - a várakozó kapcsolatok maximális száma visszatérési érték: mint előbb

A kapcsolat felépítése int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen): (szerverhez) kapcsolódás kezdeményezése a socketen keresztül sockfd: socket leíró addr: mutató a kapcsolat túloldali végpontját leíró adatstruktúrára addrlen: az előbbi adatstruktúra hossza visszatérési érték: siker esetén 0, egyébként -1, errno megfelelően beállítva

A kapcsolat felépítése int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen): (kliens) kapcsolódás elfogadása az adott socketen Új aktív socket Aktív socket sockfd: socket leíró addr: mutató az elfogadott kapcsolatot meghatározó adatstruktúrára addrlen: mutató az előbbi adatstruktúra hosszának eltárolásához visszatérési érték: nem neagatív egész, az elfogadott kapcsolat socket leírója, egyébként - 1, errno megfelelően beállítva Blokkolás: a végrehajtás áll, amíg nem jelentkezik kliens!

Üzenetváltás ssize_t send(int sockfd, const void *buf, size_t len, int flags): üzenet küldése a socketen keresztül sockfd: socket leíró buf: mutató az üzenetet tartalmazó memóriaterületre len: az üzenet hossza flags: most nem térünk ki rá, így 0 visszatérési érték: az átküldött karakterek száma, hiba esetén -1, errno megfelelően beállítva

Üzenetváltás ssize_t recv(int sockfd, void *buf, size_t len, int flags): üzenet beolvasása a socketen keresztül sockfd: socket leíró buf: mutató az üzenetet tartalmazó memóriaterületre len: az üzenet tárolására szolgáló memóriaterület hossza (max. ekkora üzenetet olvasunk be) flags: most nem térünk ki rá visszatérési érték: a beolvasott karakterek száma, hiba esetén -1, errno megfelelően beállítva Blokkolás!

Segédfüggvények endianness - milyen segédfüggvények állnak rendelkezésünkre az architektúrák közti konverzió kézben tartására? htons(): host to network short htonl(): host to network long ntohs(): network to host short ntohl(): network to host long

A kapcsolat bontása int close(int fd): megadott kezelőszámú fájl lezárása fd: socket leíró visszatérési érték: siker esetén 0, hiba esetén - 1, errno megfelelően beállítva Ki bontson előbb?

További hasznos tudnivalók Az utasítások részletes szintaxisa lekérhető a man parancs segítségével (pl. man connect) Blokkolás elkerülése: fcntl(sockfd, F_SETFL, O_NONBLOCK) nem jó ötlet (CPU-idő pazarlás) select() használata Parciális send: sendall() A távoli oldal lezárta a kommunikációt? recv()==0 Hálózati kapcsolatok listázása: ld. netstat parancs, LISTEN állapot