Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Számítógépes Hálózatok
3. gyakorlat
2
Számítógépes Hálózatok Gyakorlat
Áramkörkapcsolt hálózatok Órai feladat (1 pont) Számítógépes Hálózatok Gyakorlat
3
Számítógépes Hálózatok Gyakorlat
Topológia – cs1.json S1 S2 S3 S4 A B D C 10 Mbps Irányítatlan legyen a gráf!!! Számítógépes Hálózatok Gyakorlat
4
Lehetséges áramkörök – cs1.json
B D C 10 Mbps Irányítatlan legyen a gráf!!! Számítógépes Hálózatok Gyakorlat
5
Számítógépes Hálózatok Gyakorlat
Igények – cs1.json S1 S2 S3 S4 A B D C 10 Mbps Irányítatlan legyen a gráf!!! Számítógépes Hálózatok Gyakorlat
6
Számítógépes Hálózatok Gyakorlat
Feladat Adott a cs1.json, ami tartalmazza egy irányítatlan gráf leírását. A gráf végpont (end-points) és switch (switches) csomópontokat tartalmaz. Az élek (links) kapacitással rendelkeznek (valós szám). Tegyük fel, hogy egy áramkörkapcsolt hálózatban vagyunk és valamilyen RRP-szerű erőforrás foglaló protokollt használunk. Feltesszük, hogy csak a linkek megosztandó és szűk erőforrások. A json tartalmazza a kialakítható lehetséges útvonalakat (possible-cicuits), továbbá a rendszerbe beérkező, két végpontot összekötő áramkörigényeket kezdő és vég időponttal. A szimuláció a t=1 időpillanatban kezdődik és t=duration időpillanatban ér véget. Készíts programot, ami leszimulálja az erőforrások lefoglalását és felszabadítását a JSON fájlban megadott topológia, kapacitások és igények alapján! A program bemenete: cs1.json A program kimenete: Minden igény lefoglalását és felszabadítását írassuk ki a stdout-ra. Foglalás esetén jelezzük, hogy sikeres vagy sikertelen volt-e. Megj.: sikertelen esetben az igénnyel más teendőnk nincs, azt eldobhatjuk. Pl.: 1. igény foglalás: A<->C st:1 – sikeres 2. igény foglalás: B<->C st:2 – sikeres 3. igény felszabadítás: A<->C st:5 4. igény foglalás: D<->C st:6 – sikeres 5. igény foglalás: A<->C st:7 – sikertelen … Számítógépes Hálózatok Gyakorlat
7
Pyton socket, host név feloldás
Socket csomag használata gethostname() gethostbyname() gethostbyname_ex() gethostbyaddr() import socket hostname = socket.gethostname() hostname = socket.gethostbyname(‚ hostname, aliases, addresses = socket.gethostbyname_ex(host) hostname, aliases, addrs = socket.gethostbyaddr(' ') Számítógépes Hálózatok Gyakorlat
8
Számítógépes Hálózatok Gyakorlat
Feladat1 Irassuk ki a gethosname() fv. eredményét! Következő hostnevekre futtassuk meg a gethostbyname() és a gethostbyname_ex() fv-eket: 'homer', 'www', ' inf.elte.hu‚ Kérdezzük le a gethostbyaddr() fv segítségével a következő IP címek hostneveit: ‚ ’, ‚ ’ Számítógépes Hálózatok Gyakorlat
9
Port számok és protokollok
Bizonyos protokolokhoz tartoznak fix portszámok, konstansok (szállítási protokolok)! getservbyname() getservbyport() getprotobyname() import urlparse parsed_url = urlparse.urlparse(url) port = socket.getservbyname(parsed_url.scheme) print urlparse.urlunparse( (socket.getservbyport(port), 'example.com', '/', '', '', '') ) print socket.getprotobyname(‚icmp’) Számítógépes Hálózatok Gyakorlat
10
Számítógépes Hálózatok Gyakorlat
Példa url=' o = urlparse(url) print o.scheme print o.netloc print o.hostname print o.port print o.path print o.params print o.query print o.fragment print o.username print o.password Számítógépes Hálózatok Gyakorlat
11
Számítógépes Hálózatok Gyakorlat
Feladat2.a. Kérdezzük le a portszámot a követekző URL-ekhez: ' example.com', ' example.com', 'ftp://example.com', 'gopher://gopher. example.com', 'smtp://mail.example.com', 'imap://mail.example.com', 'imaps://mail.example.com', 'pop3://pop.example.com', 'pop3s://pop.example.com', Számítógépes Hálózatok Gyakorlat
12
Számítógépes Hálózatok Gyakorlat
Feladat2.b. Készítsük el a következő portokhoz az urleket: 80, 443, 21, 70, 25, 143, 993, 110, 995 Kérdezzük le ig a fentartott portokat! Kérdezzük le a szállítói réteghez tartozó konstanst a következő protokolokhoz: ‚icmp’, ‚tcp’, ‚udp’ Számítógépes Hálózatok Gyakorlat
13
Számítógépes Hálózatok Gyakorlat
Feladat3 Kérdezzük le a ‚ ‚http’ szerverének az információit! Kérdezzük le a ‚ oldal ‚http’ servernevét, ahol meg van adva a név flag (AI_CANNONNAME) Számítógépes Hálózatok Gyakorlat
14
Little endian, big endian
16 és 32 bites pozitív számok kódolása htons(), htonl() – host to network short / long ntohs(), ntohl() – network to host short / long Számítógépes Hálózatok Gyakorlat
15
Számítógépes Hálózatok Gyakorlat
TCP Számítógépes Hálózatok Gyakorlat
16
Számítógépes Hálózatok Gyakorlat
TCP socket() bind() listen() accept() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = ('localhost', 10000) sock.bind(server_address) sock.listen(1) connection, client_address = sock.accept() Számítógépes Hálózatok Gyakorlat
17
Számítógépes Hálózatok Gyakorlat
TCP send(), sendall() recv() close() connect() connection.sendall(data) data = connection.recv(16) connection.close() server_address = (‚localhost’, 10000) sock.connect(server_address) Számítógépes Hálózatok Gyakorlat
18
Számítógépes Hálózatok Gyakorlat
Házi feladat I. (1 pont) Számítógépes Hálózatok Gyakorlat
19
Számítógépes Hálózatok Gyakorlat
Feladat Készítsünk egy olyan server-kliens alkalmazást, amely a getaddrinfo() alapján visszaad mindent egy adott hostról. A kliens küldjön egy hostnevet kérésnek és a szerver válaszolja meg azt! Számítógépes Hálózatok Gyakorlat
20
Számítógépes Hálózatok Gyakorlat
Vége Számítógépes Hálózatok Gyakorlat
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.