Passa ai contenuti principali

Reti: Il TCP-IP Parte 12


FTP - File Transfer Protocol
L'FTP é un protocollo che garantisce il trasferimento di file tra due host, in maniera affidabile ed efficiente.
Esso si appoggia ai protocolli TCP e Telnet per le connessioni, aggiungendo una interfaccia più complessa, ma decisamente più affidabile.




FTP è uno dei primi protocolli definiti ed ha subito una lunga evoluzione negli anni. La prima specifica, sviluppata presso il MIT, risale al 1971 - RFC-114 (http://www.networksorcery.com/enp/protocol/ftp.htm).
L'attuale specifica fa riferimento all'RFC-959 (http://www.faqs.org/rfcs/rfc959.html).

Gli obiettivi principali di FTP descritti nella sua RFC ufficiale sono:
  • Promuovere la condivisione di file (programmi o dati)
  • Incoraggiare l'uso indiretto o implicito di computer remoti.
  • Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra host.
  • Trasferire dati in maniera affidabile ed efficiente.


Il modello


Dove:
  • PI (protocol interpreter) è l'interprete del protocollo, utilizzato da client (User-PI) e server (Server-PI) per lo scambio di comandi e risposte. In gergo comune ci si riferisce ad esso come "canale comandi".
  • DTP (data transfer process) è il processo di trasferimento dati, utilizzato da client (User-DTP) e server (Server-DTP) per lo scambio di dati. In gergo comune ci si riferisce ad esso come "canale dati".

FTP, a differenza di altri protocolli come ad esempio HTTP, utilizza due connessioni separate per gestire comandi e dati. Un server FTP rimane tipicamente in ascolto sulla porta 21 TCP a cui si connette il client. La connessione da parte del client determinerà l'inizializzazione del canale comandi attraverso il quale client e server si scambieranno comandi e risposte. Lo scambio effettivo di dati (come ad esempio file) richiederà l'apertura del canale dati il quale può essere di due tipi.
  • In un canale dati di tipo attivo il client apre una porta tipicamente random, tramite il canale comandi rende noto il numero di tale porta al server e attende che esso si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP. A tale scopo possono venire impiegati i comandi PORT o EPRT, a seconda del protocollo di rete utilizzato (tipicamente IPv4IPv6).
  • In un canale dati di tipo passivo il server apre una porta tipicamente random (> 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che esso si connetta. A tale scopo possono venire impiegati i comandi PASV o EPSV, a seconda del protocollo di rete utilizzato (tipicamente IPv4 o IPv6).

Sia il canale comandi sia il canale dati sono delle connessioni TCP; FTP crea un nuovo canale dati per ogni file trasferito all'interno della sessione utente, mentre il canale comandi rimane aperto per l'intera durata dellasessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente.
Un server FTP offre svariate funzioni che permettono al client di interagire con il suo filesystem e i file che lo popolano, tra cui:
  • Download/upload di file.
  • Resume di trasferimenti interrotti.
  • Rimozione e rinomina di file.
  • Creazione di directory.
  • Navigazione tra directory.

FTP fornisce inoltre un sistema di autenticazione (N.B. in chiaro) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazione cosiddetta "anonima" prevede che il client non specifichi nessuna password di accesso e che lo stesso abbia privilegi che sono tipicamente di "sola lettura".

Problemi relativi alla sicurezza
La specifica originale di FTP non prevede alcuna cifratura per i dati scambiati tra client e server. Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali possono essere "sniffati"visionati da malintenzionati in determinate situazioni (esempio: ambienti intranet).
Il problema è comune a diversi altri protocolli utilizzati prima della diffusione di SSL quali HTTP, TELNETSMTP. Per ovviare al problema è stata definita una nuova specifica che aggiunge al protocollo FTP originale un layer di cifratura SSL/TLS più una nuova serie di comandi e codici di risposta. Il protocollo prende il nome di FTPS ed è definito nella RFC-4217 (http://www.faqs.org/rfcs/rfc4217.html) . Da non confondersi con SFTP che comunque una valida alternativa per ovviare al problema descritto.


HTTP - Hyper Text Transfer Protocol
L'HTTP é uno dei protocolli più recenti (l'RFC 1945 di Tim Berners-Lee é datata 1996), che ha notevolmente agevolato l'espansione a livello mondiale di Internet. La sua funzione principale é quella di permettere interfacciamento con il WWW (World Wide Web) e di conseguenza con l'HTML (Hyper-Text Markup Language), il linguaggio che sta alla base dei documenti ipertestuali.
Proprio per agevolare l'ipertestualità delle pagine, con link che permettono di passare da una pagina all'altra tramite un semplice clic del mouse, l'HTTP é stato progettato come un protocollo state-less. Ciò significa che il procedimento di ricezione dati non é vincolato a quelli appena ricevuti.


Quando richiediamo la visualizzazione di una pagina HTML, infatti, il nostro browser non fa altro che connettersi al server dove essa è memorizzata, richiederla attraverso semplici stringhe ASCII di testo (chiamate "method"), riceverla e chiudere immediatamente la connessione. L'unico inconveniente di questo protocollo si riscontra quando l'utente ha problemi a connettersi al server HTTP. Può infatti capitare di riuscire a vedere qualche pagina, senza però essere in grado di visualizzare quelle successive.


DNS - Domain Name Service


Il DNS è un particolare servizio che consente la risoluzione del nome di un host nell'indirizzo IP corrispondente. questa funzione viene assolta da un server locale (server DNS); nell'ambito di Internet, invece, il server DNS non è locale, ma messo a disposizione in remoto dal provider che fornisce l'accesso al Web. Sostanzialmente, il server DNS é un database, contenente un elenco di nomi di host e corrispettivi indirizzi IP. L'HTTP si appoggia pesantemente al DNS. Ciò permette di collegarsi ad un server web utilizzando un nome facile da ricordare (ad esempio http://atreides.altervista.org) invece che il corrispettivo IP (ad esempio 188.234.321.45).



  1. Il browser richiede l'IP del sito comunica.net (è un esempio) al DNS
  2. Il DNS non ha l'IP richiesto e quindi si rivolge ad un Root Server
  3. Il Root Server conosce il DNS dei domini .net e gira ad esso la richiesta
  4. Il DNS .net gira la richiesta al dns dei domini .net che cominciano con la lettera "c"
  5. Il DNS finalmente risponde alla richiesta formendo l'IP address di www.comunica.net 


Fine degli articoli sul TCP-IP


Commenti

Post popolari in questo blog

EDVAC

EDVAC (Electronic Discrete Variable Automatic Computer) L' E lectronic D iscrete V ariable A utomatic C omputer ( EDVAC ) è uno dei primi computer elettronici digitali della storia, uno dei primi computer della storia basato sull'architettura di Von Neumann e uno dei primi computer a programma memorizzato della storia. L' ENIAC era veloce, ma disponeva di pochissimo spazio di archiviazione . Inoltre, per la programmazione doveva essere ricablato , un'operazione che richiedeva da poche ore a giorni interi; era, inoltre, poco affidabile, a causa delle molte valvole tubolari utilizzate, che richiedevano, tra l'altro, moltissima energia e molto spazio per funzionare e generavano molto calore. Il che faceva lievitare costi di gestione.

Colossus

Colossus " Colossus fu il primo elaboratore elettronico al mondo: fu realizzato in Gran Bretagna nel 1943, alla fine della seconda guerra mondiale, dall’intuizione del Dott. Thomas Flowers. Operativo dal 1944 a Bletchley Park, sostituì Heath Robinson, un macchinario più semplice, nel decifrare le comunicazioni criptate della Germania nazista. Entro la fine del conflitto furono costruiti dieci esemplari di Colossus, un “gigante” da 1.600 valvole termoioniche. Il Dott. Flowers aveva concepito il progetto prima della guerra, però il centro di ricerca britannico non era convinto che fosse davvero realizzabile: la tenacia dell’ingegnere, alla lunga, s’è rivelata determinante. " Citazione - Tratta da:   http://www.downloadblog.it/post/16765/colossus-il-primo-elaboratore-elettronico-a-essere-stato-realizzato

MANIAC

Verso la fine della guerra, gli scienziati di Los Alamos stavano utilizzando il primo computer elettronico . John Von Neumann fu il protagonista principale di questo cambiamento, che condusse, poi, allo sviluppo del programma per calcolare il comportamento degli esplosivi nucleari. I calcoli iniziali concernenti la diffusione dei neutroni in un montaggio critico di uranio furono effettuati da Eldred Nelson e da Stanley Frankel , che erano membri del gruppo di Robert Serber presso il Radiation Laboratory dell' università di Berkeley , California, nel 1942.  A Los Alamos  ordinarono lo stesso tipo di macchine che avevano utilizzato in California.