Hálózati architektúrák laborgyakorlat 6. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember
Szállítási réteg (L4) Szolgáltatások Rétegprotokollok: TCP, UDP Port azonosítók TCP kapcsolatállapotok Alkalmazási (L7) Application Prezentációs (L6) Presentation Viszony (L5) Session Szállítási réteg (L4) TCP, UDP, RTP Parancsok: netstat, ps Szállítási (L4) Transport Hálózati (L3) Network Adatkapcsolati (L2) Datalink Fizikai (L1) Physical
A szállítási réteg szolgáltatásai Végponttól végpontig terjedő (end-to-end), az alkalmazások számára transzparens bájtfolyam átvitel megvalósítása. Kapcsolat típusa: Összeköttetés alapú (kapcsolat orientált - TCP) Összeköttetés mentes (kapcsolat nélküli - UDP) Alkalmazások A B C Szállítási réteg (L4) Alkalmazás azonosítása: port Hálózati réteg (L3) Csomópont azonosítása: IP cím
A portazonosító hossza 16 bit: 0-65535 Portazonosítók TCP 80-as port!= UDP 80-as port (mindkét protokoll saját 16 bites azonosító tartománnyal rendelkezik) Egy kapcsolat azonosítása: Protokoll + IP A + PORT A + IP B + PORT B Jól ismert és regisztrált szolgáltatások listája: /etc/services Írassuk ki az állomány tartalmát és keressük meg néhány jól ismert szolgáltatás alapértelmezett portazonosítóját: # less /etc/services FTP, Telnet, SSH, SMTP, DNS, TFTP, HTTP, NTP, SNMP, POP3, IMAP, HTTPs <= 1024 (well known ports)
TCP alapú kommunikáció Átvitel jellemzői: Összeköttetés alapú Megbízható Sorrendtartó Összeköttetés alapú kapcsolat: Kapcsolat felépítési fázis Adatátvitel Kapcsolat bontási fázis
TCP kapcsolatfelépítés 3 lépéses kézfogás algoritmus (3-way handshake) 1. SYN (synchronize) 2. SYN, ACK (acknowledgement) 3. ACK Host1 SYN SYN, ACK Host2 ACK
TCP kapcsolatbontás 4 lépéses kapcsolatbontás (4-way handshake) 1. FIN 2. ACK 3. FIN 4. ACK Host1 FIN ACK Host2 FIN ACK
TCP kapcsolatállapotok Forrás: wikipedia.org
Hálózati kapcsolatok lekérdezése Számítógépünk aktuális hálózati kapcsolatainak lekérdezése: # netstat A parancs kimenetének listázása lapozással: # netstat more Fontosabb parancssori kapcsolók: -a : minden kapcsolat listázása a kapcsolat állapotától függetlenül (listening socketeket is listáz) -c : kimenet frissítése másodpercenként -n : numberikus formában listázza a csomópontok IP címét és port azonosítóit -p : a kapcsolathoz tartozó program PID-jét és nevét is listázza -r : a gép routing táblájának listázása = route parancs -s : protokoll szintű statisztika -v : részletesebb kimenet
Hálózati kapcsolatok lekérdezése Feladat: Adjuk ki az alábbi parancsot, majd részletesen értelmezzük a kimentet! # netstat -anp more Active Internet connections (TCP, UDP, raw) Proto Recv-Q Send-Q Local Address Foreign Address State (LISTEN, SYN_SENT, SYN_RECV, ESTABLISHED, FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_ACK, CLOSED) PID/Program name
Hálózati kapcsolatok lekérdezése Feladat: Nyissunk meg egy termiálablakot, majd pedig egy böngésző programot. A böngészőbe gépeljük be egy tetszőleges weboldal nevét, pl. www.bbc.co.uk Közvetlenül utána adjuk ki az alábbi parancsot: # netstat -anp more Milyen kapcsolatállapotokat lehet megfigyelni a kimeneten? Meg lehet-e határozni a kimenet alapján, hogy melyik fél kezdeményezte egy TCP kapcsolat bontását? (lásd kapcsolatállapot diagram)
Hálózati forgalom elemzése Feladat: Adjuk ki az alábbi parancsot: # wireshark Nézzük át az alábbi funkciókat! Capture menüpont Interfaces Options Capture filters Display filter + Expressions