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

Hasonló dokumentumok
Számítógépes Hálózatok GY 2.hét

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

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

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

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

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

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

Imperatív programozás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Számítógépes Hálózatok. 1. Gyakorlat

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

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

Szkriptnyelvek. 1. UNIX shell

PYTHON. Avagy hosszú az út a BioPythonig

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Delphi programozás I.

Imperatív programozás

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

Imperatív programozás

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

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

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

Szathmáry László Debreceni Egyetem Informatikai Kar

S z á m í t ó g é p e s a l a p i s m e r e t e k

Amennyiben argumentumként megadunk egy interfész nevet, úgy csak a megadott interfészt fogja kilistázni.

Python tanfolyam Python bevezető I. rész

Python I. Vincze Dávid Miskolci Egyetem, IIT

Hálózatok építése és üzemeltetése

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Programozási nyelvek JAVA EA+GY 1. gyakolat

Operációs Rendszerek II. labor alkalom

Hálózatok építése és üzemeltetése

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

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

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

(jegyzet) október 6-8-i óra anyaga A kezdetek Az ARPA project Okok és célok ISO OSI...

Ha a parancs argumentuma egy interfész, akkor csak a megadott interfészt beállításait jeleníti meg.

A Python programozási nyelv

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

Operációs Rendszerek II. labor. 2. alkalom

Java és web programozás

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

Hálózati architektúrák laborgyakorlat

A TCP/IP számos adatkapcsolati réteggel együtt tud működni:

Adatkapcsolati réteg. A TCP/IP számos adatkapcsolati réteggel együtt tud működni: Ethernet, token ring, FDDI, RS-232 soros vonal, stb.

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

AWK programozás, minták, vezérlési szerkezetek

BASH SCRIPT SHELL JEGYZETEK

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

chmod umask chown, chgrp

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

2008 II. 19. Internetes alkalmazások forgalmának mérése és osztályozása. Február 19

Programozási nyelv Java

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

A Python programozási nyelv

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

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

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

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

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

OOP: Java 4.Gy: Java osztályok

3D-s technológiák a játékfejlesztésben UDK bevezetés

OPERÁCIÓS RENDSZEREK II GYAKORLAT

AWK programozás, minták, vezérlési szerkezetek

HÁLÓZATI ISMERETEK GNS 3

Robot Operating System


2018, Diszkrét matematika

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

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

Cisco Catalyst 3500XL switch segédlet

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

2018, Funkcionális programozás

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Statisztikai alap kia.hu (2005)

Bevezetés a Modbus kommunikációba

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Az FMH weboldal megnyitásakor megjelenő angol nyelvű üzenetek eltüntetése

Elemi alkalmazások fejlesztése I.

Hálózati rendszerek adminisztrációja JunOS OS alapokon

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Python bevezető foglalkozás Python bevezető foglalkozás

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar január 4.

Konfigurálás és mérés IP hálózatokban. Varga Tamás

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

X. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK. Mérési utasítás

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

Programozás I. Első ZH segédlet

Átírás:

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

Teszt canvas.elte.hu 2

Mininet ellenőrzés / letöltés Nyissuk meg a Hyper-V kezelőt! Ellenőrizzük van-e virtuálsi gép! Ha nincs töltsük le: http://lakis.web.elte.hu/szh201819ii/mininet/readme.txt Hyper-V image 3

JSON, subprocess PYTHON ALAPOK II. 4

Kódolási hibák Hibaüzenet, ha ékezetes betűk vannak, akár a kommentben is! SyntaxError: Non-ASCII character '\xc3' in file gyak2.py on line 44, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details Megoldás a script első sorába, ezzel nincs hiba üzenet: # coding: utf-8 Szöveg kiíratása unicode-ként: print u áéűúóü 5

Parancssori paraméterek import sys print sys.argv[0] print sys.argv[1] print sys.argv[2] # a script neve # első paraméter # masodik paraméter 6

Osztályok class Hallgato: nev = '' ZHpont = 0 def init (self,_name,_point): self.nev = _nickname self.zhpont = _point def str (self): return self.nev+"("+str(self.zhpont)+")" def unicode (self): return self.nev+"("+str(self.zhpont)+")" def repr (self): return self.nev+"("+str(self.zhpont)+") p = Hallgato( Ford,20) 7

Import vs main() gyak2proba.py def main(): print( Ezt meg tudod hívni ha importalsz ) if name == " main ": print ( Ez fog lefutni ha scriptkent hívod meg! ) main() gyak2import.py import gyak2proba gyak2proba.main() vagy from gyak2proba import main main() $ python3 gyak2proba.py Ez fog lefutni ha scriptkent hívod meg! Ezt meg tudod hívni ha importalsz $ python3 gyak2import.py Ezt meg tudod hívni ha importalsz 8

JSON - JavaScript Object Notation Segédlet: https://realpython.com/python-json/ { } "firstname": "Jane", "lastname": "Doe", "hobbies": ["running", "sky diving", "singing"], "age": 35, "children": [ { "firstname": "Alice", "age": 6 }, { "firstname": "Bob", "age": 8 } ] 9

JSON & Python import json JSON objektum mentése JSON fájlba import json data = { "president": { "name": "Zaphod Beeblebrox", "species": "Betelgeusian" } } with open("data_file.json", "w") as write_file: json.dump(data, write_file) JSON string előállítása JSON objektumból json_string = json.dumps(data) 10

JSON & Python Típus megfeleltetés szerializáció során Python dict list, tuple str int, long, float True False None JSON object array string number true false null 11

JSON & Python Típus megfeleltetés deszerializáció során JSON object array string number (int) number (real) true false null Python dict list str int float True False None 12

JSON & Python JSON fájlok JSON objektum beolvasása JSON fájlból import json with open("data_file.json", "r") as read_file: data = json.load(read_file) print( data["president"]["name"] ) 13

JSON & Python JSON fájlok import json json_string = """ { "researcher": { "name": "Ford Prefect", "species": "Betelgeusian", "relatives": [ { "name": "Zaphod Beeblebrox", "species": "Betelgeusian" } ] } } """ data = json.loads(json_string) for rel in data["researcher"]["relatives"]: print('name: %s (%s)' % ( rel["name"], rel["species"] ) ) 14

Subprocess hívások és shell parancsok Ha nem érdekes az output: import subprocess subprocess.call(['df', '-h']) # új verziókban run( ) //linux subprocess.call(['dir', '/B'], shell=true) # új verziókban run( ) //windows Ha érdekes az output: import subprocess p = subprocess.popen(["echo", "hello world"], stdout=subprocess.pipe) print(p.communicate()) # eredménye egy tuple (stdout, stderr) # ('hello world', None) Néha a shell=true argumentum is kell, nézd meg a doksit!!! (pl. Windowson) Hasznos segédletek: https://docs.python.org/3/library/subprocess.html https://www.pythonforbeginners.com/os/subprocess-for-system-administrators 15

subprocess PIPE kezelés (linux) Elvárt kimenet: dmesg grep hda from subprocess import PIPE, Popen p1 = Popen(["dmesg"], stdout=pipe) p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=pipe) p1.stdout.close() # Allow p2 to receive a SIGPIPE if p1 exits. output = p2.communicate()[0] 16

subprocess várakozás a process végére A process állapotának lekérdezése: poll from subprocess import PIPE, Popen import time p1 = Popen(["ping", '-n', 5', 'berkeley.edu'], stdout=pipe) while p1.poll()==none: print(" még fut " ) time.sleep(1) A process végének megvárása: wait a communicate is megvárja a végét p1 = Popen(["ping", '-n', '20', 'berkeley.edu'], stdout=pipe) p1.wait() # várakozás a végére 17

subprocess - párhuzamosítás from subprocess import PIPE, Popen from time import sleep cmd = ["timeout","5"] #windows process = [] for i in range(4): p = Popen(cmd, stdout=pipe, stderr=pipe) process.append(p) ures = False while (not ures): fut = 0 for p in process: if p.poll() == None: fut +=1 else: print(p.communicate()) if (fut > 0): print("meg futnak") sleep(1) else: ures = True 18

traceroute, ping HÁLÓZATI ESZKÖZÖK I. 19

traceroute (linux) tracert (windows) Cél a hálózati útvonal meghatározása egy célállomás felé! lakis@dpdk-pktgen:~$ traceroute berkeley.edu traceroute to berkeley.edu (35.163.72.93), 30 hops max, 60 byte packets 1 192.168.0.192 (192.168.0.192) 0.292 ms 0.344 ms 0.390 ms 2 ikoktatok-gate.inf.elte.hu (157.181.167.254) 1.251 ms 1.250 ms 1.265 ms 3 taurus.centaur-taurus.elte.hu (157.181.126.134) 5.180 ms 5.267 ms 5.325 ms 4 fw1.firewall.elte.hu (157.181.141.145) 1.271 ms 1.358 ms 1.299 ms 5 taurus.fw1.fw.backbone.elte.hu (192.153.18.146) 5.626 ms 5.356 ms 5.395 ms 6 rtr.hbone-elte.elte.hu (157.181.141.9) 2.229 ms 1.245 ms 1.749 ms 7 tg0-0-0-14.rtr2.vh.hbone.hu (195.111.100.47) 2.377 ms 2.415 ms 2.407 ms 8 be1.rtr1.vh.hbone.hu (195.111.96.56) 1.945 ms 1.642 ms 1.877 ms 9 bpt-b4-link.telia.net (80.239.195.56) 1.626 ms 1.581 ms 1.097 ms 10 win-bb2-link.telia.net (62.115.143.116) 196.574 ms win-bb2-link.telia.net (213.155.137.38) 196.993 ms win-bb2-link.telia.net (213.155.135.222) 180.071 ms 11 ffm-bb4-link.telia.net (62.115.133.79) 199.425 ms 199.232 ms * 12 * * * 13 prs-bb3-link.telia.net (62.115.137.114) 180.494 ms 179.986 ms * 14 sjo-b21-link.telia.net (62.115.119.229) 197.252 ms 197.249 ms 197.264 ms 15 * a100row-ic-300117-sjo-b21.c.telia.net (213.248.87.118) 196.555 ms * 16 nyk-bb4-link.telia.net (62.115.142.222) 180.081 ms 54.240.242.148 (54.240.242.148) 200.986 ms 54.240.242.88 (54.240.242.88) 201.877 ms 17 54.240.242.161 (54.240.242.161) 200.935 ms * * 18 * * * 19 * * * Linuxon 20

traceroute (linux) tracert (windows) Cél a hálózati útvonal meghatározása egy célállomás felé! C:\Users\laki>tracert berkeley.edu Tracing route to berkeley.edu [35.163.72.93] over a maximum of 30 hops: Windowson 1 1 ms <1 ms <1 ms dlinkrouter [192.168.0.1] 2 24 ms 6 ms 60 ms 10.0.0.85 3 54 ms 18 ms 13 ms fibhost-66-110-33.fibernet.hu [85.66.110.33] 4 13 ms 14 ms 13 ms ae0.info-c1.invitech.hu [213.163.54.245] 5 13 ms 12 ms 17 ms te0-0-2-3.nr11.b020698-1.bud01.atlas.cogentco.com [149.6.182.13] 6 13 ms 13 ms 16 ms te0-0-2-1.agr11.bud01.atlas.cogentco.com [154.25.3.237] 7 15 ms 13 ms 12 ms be3272.ccr31.bud01.atlas.cogentco.com [154.54.59.197] 8 17 ms 16 ms 19 ms be3263.ccr22.bts01.atlas.cogentco.com [154.54.59.177] 9 22 ms 22 ms 21 ms be3045.ccr21.prg01.atlas.cogentco.com [154.54.59.105] 10 29 ms 30 ms 27 ms be3027.ccr41.ham01.atlas.cogentco.com [130.117.1.205] 11 41 ms 36 ms 41 ms be2815.ccr41.ams03.atlas.cogentco.com [154.54.38.205] 12 134 ms 136 ms 133 ms be12194.ccr41.lon13.atlas.cogentco.com [154.54.56.93] 13 133 ms 136 ms 132 ms be2982.ccr31.bos01.atlas.cogentco.com [154.54.1.117] 14 135 ms 134 ms 137 ms be3599.ccr21.alb02.atlas.cogentco.com [66.28.4.237] 15 134 ms 134 ms 135 ms be2878.ccr21.cle04.atlas.cogentco.com [154.54.26.129] 16 136 ms 136 ms 134 ms be2717.ccr41.ord01.atlas.cogentco.com [154.54.6.221] 17 148 ms 147 ms 146 ms be2831.ccr21.mci01.atlas.cogentco.com [154.54.42.165] 18 158 ms 159 ms 159 ms be3035.ccr21.den01.atlas.cogentco.com [154.54.5.89] 19 168 ms 169 ms 167 ms be3037.ccr21.slc01.atlas.cogentco.com [154.54.41.145] 20 183 ms 183 ms 183 ms be3109.ccr21.sfo01.atlas.cogentco.com [154.54.44.137] 21 186 ms 187 ms 184 ms be3669.ccr41.sjc03.atlas.cogentco.com [154.54.43.10] 22 184 ms 186 ms 185 ms 38.88.224.218 23 * * * Request timed out. 24 * * * Request timed out. 25 * * * Request timed Számítógépes out. Hálózatok Gyakorlat 21

Ping a hoszt elérhetőségének ellenőrzésére és a Round Trip Time (RTT) méréséhez Linuxon lakis@dpdk-pktgen:~$ ping -c 3 berkeley.edu PING berkeley.edu (35.163.72.93) 56(84) bytes of data. 64 bytes from ec2-35-163-72-93.us-west-2.compute.amazonaws.com (35.163.72.93): icmp_seq=1 ttl=23 time=194 ms 64 bytes from ec2-35-163-72-93.us-west-2.compute.amazonaws.com (35.163.72.93): icmp_seq=2 ttl=23 time=194 ms 64 bytes from ec2-35-163-72-93.us-west-2.compute.amazonaws.com (35.163.72.93): icmp_seq=3 ttl=23 time=193 ms --- berkeley.edu ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 193.093/193.937/194.428/0.786 ms 22

Ping a hoszt elérhetőségének ellenőrzésére és a Round Trip Time (RTT) méréséhez Windowson C:\Users\laki>ping -n 3 berkeley.edu Pinging berkeley.edu [35.163.72.93] with 32 bytes of data: Reply from 35.163.72.93: bytes=32 time=200ms TTL=39 Reply from 35.163.72.93: bytes=32 time=201ms TTL=39 Reply from 35.163.72.93: bytes=32 time=200ms TTL=39 Ping statistics for 35.163.72.93: Packets: Sent = 3, Received = 3, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 200ms, Maximum = 201ms, Average = 200ms 23

Mininet Nyissuk meg a Hyper-V kezelőjét Jobb klikk a számítógépen: Új virtuális gép létrehozása 1. generációs Hálózathoz: NAT switch Meglévő virtuális merevlemez használata: az átmásolt fájlt kiválasztása Duplaklikk indítás 24

Mininet Ubuntu 14 op. rendszer, felhasználó/jelszó: networks/networks Indítsunk egy terminált, váltsunk root-ra: networks@networks:~$ sudo su Listázzuk az alábbi könyvtárt: root@networks:/home/networks# ls ComputerNetworks/L2-switching test1 topológia két fájlból áll: test1.mn: meg lehet jeleníteni a miniedit segítségével test1.py: egyből elindítja a hálózat emulátort 25

Mininet Indítsuk el a miniedit-et: root@networks:/home/networks# mininet/examples/miniedit& a File menüben meg tudjuk nyitni a.mn kiterjesztésű fájlokat Nyissuk meg a test.mn fájlt A File menüben az Export Level 2 Script -tel lehet létrehozni python szkriptet 26

Mininet Nézzük meg a test1.py-t: root@networks:/home/networks/computernetworks/l2-switching# vim test1.py Egy LinuxBridge-et definiálunk, amellyel futtatni tudjuk a feszítőfa algoritmust (Spanning Tree Protocol, STP) hurkok kezelésére Hozzáadunk hosztokat is, privát IP címekkel Végül összekötjük ezeket a topológia alapján A h1 és s1 kapcsolat sávszélessége: (alapból elvileg nem limitált, a TCLink osztály azért kell, hogy limitálni tudjuk) Indítsuk el: root@networks:/home/networks/computernetworks/l2-switching# python test1.py mininet> 27

HÁZI FELADAT I. (2 PONT) 28

Alexa-top-1M Az Alexa-top-1M adathalmaz tartalmazza a legnépszerűbb 1 millió website domain nevét népszerűségi sorrendben: http://s3.amazonaws.com/alexa-static/top-1m.csv.zip Válasszuk ki az első és utolsó 10 nevet a listából, írjunk egy python programot, ami végig megy a leszűkített 20 elemű listán és minden címre lefuttatja a traceroute és ping toolokat, majd az eredményeket rendezett formában két fájlba írja! Ld. subprocess!!! Lehetőség szerint ne az egyetemi hálózaton futassuk az adatbegyűjtést! Script paraméterezése: python3 program.py <top-1m.csv> Traceroute paraméterek: max. 30 hopot vizsgáljunk Ping paraméterek: 10 próba legyen Kimeneti fájlok (ld. következő dia): traceroute.json ping.json A párhuzamos futtatás esetén vigyázzunk és limitáljuk a processek maximális számát!!! Leadás: A program leadása a BE-AD rendszeren.zip formátumban, amiben egy client.py szerepeljen! Határidő: 2018-03-03 23:59 29

traceroute.json traceroute.json: { } "date" : "20180916", "system" : "windows", "traces" : [ { "target" : "www.valami.com", "output" : "Tracing route to www... " }, ] 30

ping.json ping.json: { } "date" : "20180916", "system" : "linux", "pings" : [ { "target" : "www.valami.com", "output" : Pinging www... " }, ] 31

Áramkörkapcsolt hálózatok HÁZI FELADAT II. (4 PONT) 32

Topológia cs1.json D A S1 S4 C B S2 S3 Irányítatlan legyen a gráf!!! 33

Lehetséges áramkörök cs1.json D A S1 S4 C B S2 S3 Irányítatlan legyen a gráf!!! 34

Igények cs1.json D A S1 S4 C B S2 S3 Irányítatlan legyen a gráf!!! 35

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! Script paraméterezése: python3 program.py <cs1.json> A program kimenete: <esemény sorszám. <esemény név>: <node1><-><node2> st:<szimuálciós idő> [- <sikeres/sikertelen>] 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 Leadás: A program leadása a BE-AD rendszeren.zip formátumban, amiben egy client.py szerepeljen! Határidő: 2018-03-10 23:59 36

VÉGE KÖSZÖNÖM A FIGYELMET! 37