This shows you the differences between two versions of the page.
rl:labs:07:contents:04 [2013/11/13 21:44] razvan.deaconescu removed |
rl:labs:07:contents:04 [2023/11/05 12:43] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 05. Tabela ARP ==== | + | ==== 4. [10p] Copiere fișiere cu diverse protocoale: durată și consum de resurse ==== |
- | ARP (//Address Resolution Protocol//) este protocol care face intern fiecărui sistem de operare asocierea între adresele IP și adresele MAC ale stațiile cu care comunică. De multe ori stațiile cunosc adresele IP ale vecinilor dar nu știu adresele MAC; protocolul ARP completează o tabelă ARP locală sistemului cu intrările necesare. Protocolul ARP este rulat implicit de sistemul de operare atunci când se comunică cu o stație a cărei adresă MAC nu este cunoscută. | + | Ne propunem să măsurăm timpul de copiere și consumul de resurse pentru un transfer realizat între două stații folosind, pe rând, transfer direct, FTP și SSH. În directorul home al utilizatorului ''student'' de pe stația ''green'' există un fișier ''file-100M.dat''. Vom transfera acest fișier în directorul home al utilizatorului ''student'' de pe stația ''host''. Vom folosi transfer direct, transfer FTP și transfer SSH. Pentru fiecare caz, stația ''host'' va rula server-ul, iar stația ''green'' clientul. |
- | Ne propunem să urmărim tabela ARP a unui sistem Linux. | + | <note tip> |
+ | Dați copy-paste la comenzile de mai jos ca să vă asigurați că le scrieți corect. Pentru paste folosiți, în terminal, combinația de taste ''Shift+Insert''. | ||
+ | </note> | ||
- | Pe stația ''host'' urmăriți tabela ARP folosind comanda:<code> | + | **Transfer direct** |
- | TODO | + | |
- | </code> | + | |
- | Este posibil ca tabela să fie vidă (neexistând comunicație recentă) sau să aibă unele intrări (cele mai recente comunicații). | + | |
- | Pentru a popula tabela ARP inițiați comunicație cu celelalte stații folosind comanda ''ping'':<code> | + | Pentru transfer direct vom porni un server simplu TCP pe stația ''host'' și un client pe stația ''green''; vom folosi utilitarul ''netcat'', prescurtat și ''nc''. Rulați pe stația ''host'', în contul utilizatorului ''student'', comanda<code bash> |
- | TODO | + | student@host:~$ nc -l 12345 > file-100M-nc.dat |
+ | </code> Comanda deschide un server TCP care ascultă conexiuni pe portul ''12345''. Comanda rămâne activă în așteptarea unei conexiuni de la un client. | ||
+ | |||
+ | De pe stația ''green'', din contul utilizatorului ''student'', transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea comenzii((În cazul unui transfer prin rețea folosind ''netcat'' nu se face verificare de integritate (//integrity check//). Există riscul (mic, dar există) ca fișierul să nu fie transferat corespunzător. De aceea e bine să verificați integritatea acestuia prin calcularea sumei de control (//checksum//) folosind, de exemplu, utilitarul ''sha512sum''.))<code bash> | ||
+ | student@green:~$ time cat file-100M.dat | nc -q0 host 12345 | ||
</code> | </code> | ||
- | Urmăriți din nou tabela ARP:<code> | + | Comanda de mai sus trimite un fișier comenzii ''nc'', iar comanda ''nc'' are rolul unui client TCP care se conectează la stația ''host'' pe portul ''12345''. |
- | TODO | + | |
+ | **Transfer FTP** | ||
+ | |||
+ | Pentru transfer FTP, serverul de FTP este deja pornit pe stația ''host''. De pe stația ''green'', din contul utilizatorului ''student'', transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea comenzii<code bash> | ||
+ | student@green:~$ time curl -T file-100M.dat -u student:student ftp://host/file-100M-ftp.dat | ||
</code> | </code> | ||
- | Observați că fiecare stație (''red'', ''green'' și ''blue'') are câte o intrare aferentă în tabela ARP. | ||
- | Realizați pașii de mai sus pentru fiecare dintre stațiile ''red'', ''green'' și ''blue'': | + | **Transfer SSH** |
- | - Urmăriți tabela ARP. | + | |
- | - Inițiați comunicație cu celelalte stații pentru a popula tabela ARP. | + | Pentru transfer SSH, serverul de SSH este deja pornit și configurat pe stația ''host''. De pe stația ''green'', în contul utilizatorului ''student'', transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea comenzii<code bash> |
- | - Urmăriți din nou tabela ARP. | + | student@green:~$ time scp file-100M.dat student@host:file-100M-scp.dat |
+ | </code> | ||
- | Observați că în tabela ARP a fiecăreia dintre stațiile ''red'', ''green'' și ''blue'' se găsește câte o intrare ARP, corespunzătoare stației ''host''. Aceasta se întâmplă întrucât comunicațiile trec prin //default gateway// (adică prin stația ''host'') iar fiecare stație trebuie să cunoască doar adresa MAC a gateway-ului. | + | Urmăriți timpii de rulare și consumul de memorie și de procesor pentru cele trei cazuri de mai sus. Observați valorile ridicate pentru SSH pentru timpul utilizator (//User time//) și procentul de procesor (//Percent of CPU//). Acesta valori ridicate se datorează componentei de criptare a SSH: această componentă asigură securizarea datelor cu un cost de reducere de performanță. |