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



Hasonló dokumentumok
SOCKET használata UDP kliens

Bevezetés a SOCKET programozásba UDP kliens

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

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

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

Hálózati architektúrák laborgyakorlat

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

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

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

Hálózati architektúrák laborgyakorlat

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

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

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

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

Socket programozás Példák

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

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

4. Hivatkozási modellek

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

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

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

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

Tájékoztató. Használható segédeszköz: -

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

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

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

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

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

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

Hálózati architektúrák laborgyakorlat

TCP szerver készítése

[SZÁMÍTÓGÉP-HÁLÓZATOK]

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

Internet Protokoll 4 verzió

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

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

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

Az Internet működésének alapjai


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

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

PROGRAMOZÓI MÓD SZERVIZ MÓD ÁLTALÁNOS BEÁLLÍTÁSOK

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

Tűzfalak működése és összehasonlításuk

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

2. fejezet Hálózati szoftver

Hálózati réteg. Feladata: a csomag eljusson a célig Több útválasztó Ez a legalacsonyabb rétek, mely a két végpont

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

Általános fiók beállítási útmutató

Tartalom. Router és routing. A 2. réteg és a 3. réteg működése. Forgalomirányító (router) A forgalomirányító összetevői

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

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

Alkalmazás rétegbeli protokollok:

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

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

RPC Remote Procedure Call Távoli eljárás hívás

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

Mobiline -sms gateway

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

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

G Data MasterAdmin 9 0 _ 09 _ _ # r_ e p a P ch e T 1

Számítógép hálózatok gyakorlat

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

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

OpenBSD hálózat és NAT64. Répás Sándor

UNIX: folyamatok kommunikációja

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

Socketek programozása

Elektronikus levelek. Az informatikai biztonság alapjai II.

Hálózati architektúrák laborgyakorlat

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

Szállítási réteg (L4)

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

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

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

WS 2013 elődöntő ICND 1+ teszt

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

[SZÁMÍTÓGÉP-HÁLÓZATOK]

Kommunikációs rendszerek programozása. Voice over IP (VoIP)

Hálózati architektúrák laborgyakorlat

Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban

SEGÉDLET. A TTMER102 - FPGA-alapú hálózati eszközfejlesztés című méréshez

Kiszolgálók üzemeltetése. Iványi Péter

ARP ÉS DHCP. Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült. Dr. Lencse Gábor

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Az Internet. avagy a hálózatok hálózata

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Internet Protokoll 6-os verzió. Varga Tamás

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

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

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

Ethernet/IP címzés - gyakorlat

Konkurens TCP Szerver

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

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

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Adatbiztonság PPZH május 20.

KKK2.0 Regisztráció. A regisztráció teljes folyamata: 1. Ügyfél kommunikációs jogosultságának regisztrálása a NAV vámszerveinél.

Hálózati alapismeretek

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

Átírás:

UDP idő szerver A gyakorlat célja: UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása Elméleti bevezető: UDP Protokoll föbb tulajdonságai: Az Internet összeköttetés nélküli szállítási protokollja az UDP. Létezik megbízhatatlan és nyugtázott formája is, általában a nyugtázott formát használják. Csomagformátuma az 1 ábrán található. 1. ábra: Az UDP csomag szerkezete Összekötetés nélküli kommunikációs protokoll azt jelenti, hogy üzenet váltás elött nincs szükség kommunikációs csatorna kiépítésére. Legjobban a levelezésre hasonlít, ahol elégséges ismerni a cél pontos címét. Az üzenetet betehetjük egy borítékba, amelyen megadjuk a címzett elérhetőségét. Nem megbízható. Alapértelmezés szerint az UDP protokoll nem rendelkezik arról, hogy a fogadó fél értesítést küldjön az küldemény sikeres megérkezéséről. Ezért nem tudjuk biztosan hogy a csomag megérkezett vagy sem. Vannak viszont olyan megvalósítások, ahol nyugtát küldenek minden egyes megkapott UDP csomagról. Van maximális mérete. Egyszeri küldéssel nem tudunk bármekkora méretű adatot elküldeni. Ezt egyrészt meghatározza az UDP mező hossza (16 bit) valamint az IP csomagok hossza. Az egy csomagban elküldött üzenet egy csomagban érkezik meg. Abban az esetben ha a csomag nem haladja meg az UDP csomag maximális méretét ha megérkezik akkor egyszerre kerül kézbesítésre. UDP Szerver Az UDP szervernek a szerkezete nagyon hasonló az UPD klienséhez. Az egyetlen eltérést a címzett státusz képezi.

Egy UDP vagy TCP alkalmazás megcímzése négy összetevővel rendelkezik: MAC cím: fizikai szinten címzi meg a hálózati intefészt. Programozási szemponból nem érint. IP cím: hálózati szinten címzi meg a hélózati interfészt (kártyát). Protokoll típusa. A hálózati csomag jelen esetben az IP csomag fejrészében egy mezőben van meghatározzva hogy milyen tipusú csomagot szállít az adott csomag Port: meghatározza, az alkalmazás kommunikációs csatornáját SOCKET végponttal. Szállítási réteg protokolljainak a fejrészében találjuk meg a portra vonatkozó mezőt. A címzett státusz nem azt jelenti, hogy a kliens nem rendelkezi ugyanugy sajat címmel, mint a szerver, hanem azt hogy a szerver címét mindenki jól ismeri. Ez azt is jelenti, hogy a szerver bármikor újraindul az alkalmazás ugyanazzal a címmel kell rendelkezzen. A címzés egyedüli kérdéses összetevőjét, a port képezzi. Léteznek ugynevezet rövid életű portok, amelyeket az operációs rendszer automatikusan hozzárendel minden létrehozott végponthoz (SOCKET), minden induláskor változhat a port. A másik oldalon vannak az ugynevezett hosszúéletű portok, amelyet egy rendszerhívással lehet csak hozzárendelni az adott sockethez. Ez biztosítja, hogy minden újrainduláskor az alkalmazás ugyan azon a porton várja a beérkéző kéréseket. A hosszúéletű végpontok hozzárendelését a következő rndszerhívással lehet elvégezni: int bind( in SOCKET s, in const struct sockaddr *name, in int namelen ); s [in] name [in] namelen [in] Egy szoket azonosító amelyhez még nem volt cím hozzárendelve. Sockethez hozzárendelt sockaddr cím struktura. name paraméter hossza, bájtban. A függvény viszatérítési értéke 0 ha sikeres, ellenben SOCKET_ERROR amelyet WSAGetLastError lehet lekérdezni. Leggyakoribb hiba az alkalmazásánál, amikor egy létrenem hozott sockethez probálok hozzárendelni egy címet, a második leggyakoribb hiba, amikor egy olyan sockethez probálok hozzárendelni egy címet, amelyhez már hozzárendeltem egyszer. NETSTAT ezköz Jelenlegi TCP(UDP)/IP hálózati kapcsolatok protokoll statisztikákat jelenít meg

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] -a Megjeleníti az összes kapcsolatot és portokat amelyek bejövő kéréseket vár. -b Megjeleníti a kapcsolatokhoz tartozó alkalmazásokat. Nem működik ha nincsen elég joga a felhasználónak. -e Ethernet statisztikákat jelenít meg. Lehet az s opcióval kombinálni. -f Megjeleníti az idegen címek Fully Qualified Domain Names (FQDN) -n Megjeleníti a cimeket és a portokat a numerikus formában. -o Megjeleníti az összes kapcsolat a tulajdonos folyamatjának az ID-ját. -p proto Megjeleníti azokat a kapcsolatokat amelyeket proto meghatároz; proto a kovetkező tipusú protokoll lehet: TCP, UDP, TCPv6, or UDPv6. -r Megjeleníti a forgalomírányitási táblát. -s Megjelenít a per-protocol statisztikát. Alpabol a közetkező statisztikákat jeleníti meg IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, és UDPv6; 1. ábra UDP szerver kliens alkalmazások szerkezete

Feladat: 1. Írjatok egy UDP időszerver alkalmazást, amely minden egyes kérésre függetlenül a kérés tartalmától visszaküldi a pontos időt. Az alkalmazás szerkezetét lásd 1.ábrán. 2. Használva a Netstat ezközt kövesd figyelemmel a szerver és a kliens állapotait Példaprogram: #include <stdio.h> #include "winsock2.h" void main() { WSADATA wsadata; SOCKET SendSocket; sockaddr_in RecvAddr; int Port = 27015; char SendBuf[1024]; int BufLen = 1024; // Initialize Winsock WSAStartup(MAKEWORD(2,2), &wsadata); // Create a socket for sending data SendSocket = socket(af_inet, SOCK_DGRAM, IPPROTO_UDP); // Set up the RecvAddr structure with the IP address of // the receiver (in this example case "123.456.789.1") // and the specified port number. RecvAddr.sin_family = AF_INET; RecvAddr.sin_port = htons(port); RecvAddr.sin_addr.s_addr = inet_addr("123.456.789.1"); //---------------------- // Bind the socket. if (bind( ListenSocket, (SOCKADDR*) & RecvAddr, sizeof(service)) == SOCKET_ERROR) { printf("bind() failed.\n"); closesocket(listensocket); return; } -- // Call the recvfrom function to receive datagrams // on the bound socket. printf("receiving datagrams...\n");

recvfrom(recvsocket, RecvBuf, BufLen, 0, (SOCKADDR *)&SenderAddr, &SenderAddrSize); // ido lekerese es elkuldese // Send a datagram to the receiver printf("sending a datagram to the receiver...\n"); sendto(sendsocket, SendBuf, BufLen, 0, (SOCKADDR *) &RecvAddr, sizeof(recvaddr)); // When the application is finished sending, close the socket. printf("finished sending. Closing socket.\n"); closesocket(sendsocket); } // Clean up and quit. printf("exiting.\n"); WSACleanup(); return; Kérdések: 1. A szervernél és a kliensnél milyen állapotokat sikerült azonósítani a netstat segítségével? 2. Megkorra a legnagyobb csomag, amit el tudsz küldeni egy UDP csomagban? 3. Mi történik ha egyidejüleg több kliens probálja lekérdezni a pontos időt. Könyvészet: [1]. A. Tanenbaum : Számítógéphálózatok. Bp., Panem Könyvkiadó, 2004. [2]. Buraga, S. - Ciobanu, G.: Atelier de programare în reţele de calculatoare. Iaşi, Polirom, 2001 [3]. http://www.iana.org/assignments/port-numbers [4]. http://msdn.microsoft.com/en-us/library/ms741416(vs.85).aspx