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.
Shift+Insert
.
Transfer direct
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
student@host:~$ nc -l 12345 > file-100M-nc.dat
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 comenzii1)
student@green:~$ time cat file-100M.dat | nc -q0 host 12345
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
.
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
student@green:~$ time curl -T file-100M.dat -u student:student ftp://host/file-100M-ftp.dat
Transfer SSH
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
student@green:~$ time scp file-100M.dat student@host:file-100M-scp.dat
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ță.
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
.