Telnet, FTP e NFS. Applicazioni. Protocolli Applicativi: Telnet. Il protocollo TELNET



Documenti analoghi
Reti di Telecomunicazione Lezione 7

FTP. Appunti a cura del prof. ing. Mario Catalano

Protocolli applicativi: FTP

Inizializzazione degli Host. BOOTP e DHCP

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Reti di Calcolatori PROTOCOLLO FTP

Transmission Control Protocol

12.5 UDP (User Datagram Protocol)

Reti di Calcolatori PROTOCOLLO FTP. File. File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati

Reti di Telecomunicazione Lezione 6

il trasferimento di file

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Dal protocollo IP ai livelli superiori

SISTEMI OPERATIVI DISTRIBUITI

Standard di comunicazione

Programmazione in Rete

Introduzione alle applicazioni di rete

Reti di Telecomunicazione Lezione 8

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Le Reti Informatiche

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Reti di calcolatori. Reti di calcolatori

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Lo scenario: la definizione di Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

URI. Introduzione. Pag. 1

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Reti e Internet: introduzione

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Servizio di Posta elettronica Certificata (PEC)

Informatica per la comunicazione" - lezione 8 -

Indice. Prefazione XIII

ARCHITETTURA DI RETE FOLEGNANI ANDREA

LABORATORIO DI TELEMATICA

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA Paola Zamperlin. Internet. Parte prima

Introduzione alla rete Internet

ARP (Address Resolution Protocol)

Protocolli di Comunicazione

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Cenni di programmazione distribuita in C++ Mauro Piccolo

OSOR. Applicazioni di Rete

Il Sistema Operativo (1)

Esercitazioni - 2. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Parte II: Reti di calcolatori Lezione 9

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

P2-11: BOOTP e DHCP (Capitolo 23)

Esercizio 2. Client e server comunicano attraverso socket TCP

Corso di Informatica

SMSPortal. SMS-Gateway interfaccia SMTP. Versione , 2005, 2006 SMSPortal. Digitel Mobile Srl Via Raffaello, Pescara (Italy)

MODELLI ISO/OSI e TCP/IP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Bibliografia: Utenti e sessioni

I canali di comunicazione

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

HTTP adaptation layer per generico protocollo di scambio dati

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.

Talento LAB UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Siti web centrati sui dati (Data-centric web applications)

appunti delle lezioni Architetture client/server: applicazioni client

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Servizio di Posta elettronica Certificata (PEC)

Servizio di Posta elettronica Certificata (PEC)

ftp://ftp.bluegold.it

19. LA PROGRAMMAZIONE LATO SERVER

Introduzione alla rete Internet

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Informatica per la comunicazione" - lezione 9 -

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

TCP/IP: INDIRIZZI IP SIMBOLICI

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Introduzione alla rete Internet

Fasi di creazione di un programma

Livello di Applicazione in Internet

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Modulo 1.3 Reti e servizi

Programmazione dei socket con TCP #2

Registratori di Cassa

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Il Web Server e il protocollo HTTP

Elementi sull uso dei firewall

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Altro esempio di HTML

1) GESTIONE DELLE POSTAZIONI REMOTE

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Reti di Calcolatori. Il Livello delle Applicazioni

Servizio di Posta elettronica Certificata (PEC)

Transcript:

a.a. 2002/03 Telnet, FTP e NFS Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 2 Applicazioni L Internet Society ha definito una serie di servizi utilizzabili sull interrete e standardizzato i protocolli che li implementano Fanno parte integrante della suite TCP/IP Servizi disponibili su qualunque host supporti la suite di protocolli Principali servizi Terminali remoti (TELNET, RLOGIN) Trasferimento file (FTP, TFTP, NFS) Posta elettronica (SMTP, POP, IMAP, MIME) WWW (HTTP) Altri servizi (DHCP, VPN, VoIP, DNS) 3 Protocolli Applicativi: Telnet Telnet è un protocollo di terminale remoto Formisce un servizio trasparente di elaborazione interattiva remota E basato su un trasporto affidabile il server Telnet opera sulla porta 23 TCP ogni carattere digitato dall utente viene inviato al server e rispedito in echo al client Definisce un "terminale virtuale di rete" che fornisce un interfaccia standard a sistemi remoti non è necessario che un endpoint conosca tutti i dettagli riguardanti l altro endpoint Si può accedere a tutti gli host usando la stessa interfaccia (minimale) 4 Il protocollo TELNET Consente di collegarsi ad un host remoto ed operare come se si fosse in locale L input è gestito dalla tastiera locale L output è visualizzato sul monitor locale La computazione è effettuata sull host remoto basato sull astrazione di pseudo-terminale implementabile solo se il S.O. supporta questa astazione

5 Astrazione di Pseudo-Terminale Punto di ingresso al sistema operativo che emula un terminale reale consente al server Telnet di trasferire al sistema operativo caratteri come se provenissero da una tastiera e ricevere caratteri come se fosse un monitor Il sistema operativo assume che tutti gli input ad un processo vengano forniti dalla tastiera (standard input) e che tutti gli output siano inviati al monitor (standard output) lo pseudoterminale collega lo standard input e lo standard output di un processo al server Telnet 6 Inefficienza di Telnet Sull host A è stato lanciato telnet B Ogni carattere digitato dall utente viene passato dal sistema operativo di A al client Telnet passato dal client al sistema operativo per inviarlo sulla connessione TCP passato dal sistema operativo di B al server Telnet passato dal server al sistema operativo per inviarlo allo pseudoterminale e rispedito al client per l echo passato dallo pseudoterminale al sistema operativo per inviarlo ad un processo in esecuzione l inefficienza è bilanciata dalla lentezza dell operatore umano Caratteristiche di Telnet Gestione dell Eterogeneità 7 Telnet permette al client e al server di negoziare le opzioni di trasmissione es: decidere se usare ASCII a 7 o 8 bit Telnet fornisce un insieme di opzioni standard gli endopoint le possono modificare o aggiungere altre opzioni TELNET tratta entrambi gli endpoint simmetricamente ogni endpoint può iniziare la negoziazione di un gruppo di opzioni 8 Sistemi diversi possono utilizzare regole diverse per rappresentare i dati Codice per l endline (CR, LF, CR-LF) Interruzione di un processo (Ctrl-C, ESC) TELNET definisce uno standard per rappresentare comandi e dati nella trasmissione Network Virtual Terminal (NVT) basato su US-ASCII (endline = CR-LF) client e server possono decidere di usare estensioni di NVT il client ed il server devono provvedere a convertire tutti i caratteri che viaggiano sulla connessione da/a formato locale a formato NVT

9 Esempio di Trasmissione L utente digita INVIO sulla tastiera il s.o. passa al client il carattere CR Il client converte CR in CR-LF e lo invia sulla connessione TCP il server riceve CR-LF, lo converte in LF e lo passa allo pseudoterminale lo pseduoterminale passa all applicazione LF l applicazione esegue l operazione di INVIO 10 Comandi di Controllo Telnet utilizza la stessa connessione per trasmettere sia dati che comandi serve un meccanismo per distinguere i comandi NVT codifica i comandi come sequenze di escape (2 caratteri) il carattere di escape è IAC (codifica 0xFF) il carattere successivo ad un IAC è un comando per spedire il byte 0xFF si invia IAC 0xFF Le sequenze di escape sono usate per inviare comandi per controllare il processo remoto interrupt, abort, are you there, erase char, erase line, synch Controllo dei Processi Locale e Remoto Trasmissione Fuori Banda 11 L utente deve poter interagire sia con il processo locale (client FTP) sia con il processo remoto non si possono utilizzare le stesse combinazioni di tasti per controllare i due processi Es. in ambiente Linux Ctrl-C stoppa un processo se l utente digita Ctrl-C stoppa il processo remoto e non quello locale Il protocollo Telnet stabilisce che tutte le combinazioni di tasti siano inviate al processo remoto tranne una (in genere Ctrl ]) Ctrl ] serve a sospendere la connessione e passare al controllo del processo locale la connessione viene ripresa con???? 12 Telnet utilizza una segnalazione in banda i comandi fanno parte del flusso di byte e vengono letti solo dopo aver letto i dati che li precedono In alcuni casi i comandi devono essere letti immediatamente es. comando di interruzione del processo I comandi di controllo urgenti sono spediti fuori banda utilizzando l URGENT POINTER di TCP il client invia un segmento TCP con URG settato spedito anche se WINDOW = 0 il server esamina tutti i byte ricevuti scartando i dati e leggendo i comandi fino a quando non legge un carattere DM (synch)

13 Negoziazione delle Opzioni All inizio della comunicazione client e server devono negoziare una serie di opzioni La negoziazione è basata sullo scambio di 4 tipi di messaggi WILL, DO, WONT, DONT Richiesta: WILL X (richiesta di un endpoint di usare opzione X) Risposta: DO X (OK), DONT X (rifiuto) Richiesta: DO X (richiesta di un endpoint perché l altro usi l opzione X) WILL X (OK), WONT X (rifiuto) 14 Principali Opzioni transmit binary echo suppress GA status timing mark terminal type window size terminal speed linemode usa codifica ASCII a 8 bit consente ad un endpoint di replicare tutti i dati che riceve passa alla modalità full duplex richiede lo stato ci un opzione richiede inserimento di informazioni di sincronizzazione tipo del terminale dimensione della finestra di output velocità del terminale modalità di trasmissione a linee Rlogin Remote Shell 15 I sistemi UNIX forniscono un servizio di remote login (rlogin) Client e server girano sullo stesso sistema e si sincronizzano più facilmente il client può esportare alcune variabili di ambiente al server Consente di scegliere gli indirizzi IP e le login ai quali è consentito collegarsi Identificare gli host e le login a cui consentire il collegamento senza password (pericoloso) Standard input, standard output, redirezione, pipe, ecc. 16 rsh (remote shell) attiva un interprete di comandi ed esegue un comando su un host remoto Supporta concetti standard di UNIX Standard input, standard output, redirezione, pipe, ecc. Es. rsh udsab ls > elencofile scrive in elencofile i nomi dei file della directory home su udsab.dia.unisa.it

17 Accesso e Trasferimento di File Uno dei principali servizi utilizzati su reti TCP/IP Utilizzato per Condivisione di file Archivio di backup Storage Area Network 18 Modalità di Condivisione L accesso condiviso ai file può essere gestito in due modi Accesso in linea trasparente (NFS) più programmi accedono agli stessi file ed ogni cambiamento è immediatamente disponibile a tutti servizio integrato nel file system che non richiede l utilizzo di un client specifico nessuna differenza tra accesso locale e remoto Copia di file (FTP) ogni programma si crea una copia locale del file ed opera solo su quella utilizza un client specifico non è soggetto ai ritardi dovuti al traffico sulla rete ed al carico di lavoro sul server 19 File Transfer Protocol FTP è lo standard per il trasferimento di file in reti TCP/IP Negli anni passati la maggior parte del traffico su Internet era prodotto da ftp (superato da http) FTP fornisce altre funzionalità oltre al semplice trasferimento file accesso interattivo È possibile navigare nel file system remoto scelta del formato dei dati da trasferire File di testo o file binari Controllo di autenticazione Il client deve specificare login e password 20 Architettura del Protocollo FTP crea due connessioni TCP (se possibile) Una per il controllo del trasferimento (porta 21 TCP) avviata dal client e mantenuta per tutta la sessione L altra per la trasmissione dei dati (porta 20 TCP) avviata dal server per ogni singolo file

21 Connessione di Controllo La connessione di controllo è creata dal client e dura per tutta la sessione Usata per inviare i comandi e le informazioni di controllo necessarie a gestire il trasferimento dei dati Il client ottiene una porta effimera sul suo host ed esegue una open attiva alla porta 21 Il server ottiene una porta effimera sul suo host e la comunica al client genera un processo figlio che gestirà tutta la comunicazione con uno specifico client La rappresentazione è basata su NVT senza negoziazione di opzioni e/o estensioni Connessione Dati Le connessioni dati sono controllate dal client Una connessione dati per ogni file trasferito Il client sceglie una porta effimera sul suo host ed esegue una open passiva manda il numero di porta al server sulla connessione di controllo Il server riceve il numero di porta e fa una open attiva alla porta del client usando come porta locale la porta 20 genera un processo figlio che si occuperà del trasferimento del singolo file 22 Tipi di Dati FTP può gestire differenti tipi di dati File di tipo ASCII (default) Il sender converte il file in formato NVT ASCII e lo spedisce sulla connessione di traferimento dati Il receiver converte il file dal formato NVT ASCII al formato locale File di tipo IMAGE (o anche binario) il file viene trasferito così come è Il protocollo prevede anche diversi tipi di file e di modalità di trasferimento quasi tutte le implementazioni non supportano 23 queste alternative 24 Principali Comandi FTP differiscono dai comandi dell interfaccia utente USER PASS NLST RETR STOR TYPE SYST PORT ABOR QUIT ls get put A, I quit richiesta della username richiesta della password richiede elenco file e directory legge il contenuto di un file scrive il contenuto di un file specifica il tipo di file il server restituisce il tipo di sistema indirizzo e numero di porta del client interrompe l ultimo comando ed i trasferimenti in corso chiude la connessione

Risposte del Server Codici di Risposta 25 Il server risponde ad ogni comando con un codice di 3 cifre decimali ed una stringa il protocollo utilizza solo il codice decimale La prima cifra specifica il tipo di risposta positiva o negativa intermedia o completa La seconda cifra specifica l ambito messaggi di errore, messaggi di informazione, messaggi riguardanti lo stato della connessione o l autenticazione L ultima cifra specifica ulteriormente il messaggio di errore 26 1yz 2yz 3yz 4yz 5yz risposta positiva preliminare; non si può proseguire risposta positiva; si può proseguire risposta positiva intermedia; si può proseguire ma il client deve inviare un altro comando risposta negativa provvisoria; il comando può essere rispedito risposta negativa definitiva x0z x1z x2z x3z x4z x5z errori di sintassi messaggi informativi risposte riguardanti la connessione risposte riguardanti l autenticazione non usato risposte riguardanti lo stato del file system 27 Esempio di Sessione FTP 1 ~ [12:29] > ftp -d libeccio.dia.unisa.it Connected to libeccio.dia.unisa.it. 220-Hello dia.unisa.it, there are 6 (max unlimited) users logged in at 220-the moment. 220-Local time is: Wed Nov 13 13:54:58 2002 Name (libeccio.dia.unisa.it:auletta): auletta ---> USER auletta 331 Password required for auletta. Password: ---> PASS XXXX 230 User auletta logged in. ---> SYST 215 UNIX Type: L8 ftp> cd Mail ---> CWD Mail 250 CWD command successful. 28 Esempio di Sessione FTP 2 ftp> ls ---> PORT 192,41,218,10,19,61 200 PORT command successful. ---> NLST 150 Opening ASCII mode data connection for file list. sent-mail 226 Transfer complete. ftp> get sent-mail ---> TYPE I 200 Type set to I. ---> PORT 192,41,218,10,19,92 200 PORT command successful. ---> RETR sent-mail 150 Opening BINARY mode data connection for sent-mail (2119 bytes). 226 Transfer complete. 2119 bytes received in 0.0092 seconds (2.3e+02 Kbytes/s)

29 Anonymous FTP Molti server supportano connessioni FTP senza autenticazione Consentono di accedere solo ad una parte del file system solo directory /pub pongono restrizioni alle operazioni possibili (es. no upload) La procedura di autenticazione per un FTP anonimo prevede login anonymous password guest (o propria e-mail) 30 Trivial FTP TFTP è un protocollo di trasferimento file semplificato Non gestisce autenticazione Fornisce poca interazione Utilizzato su sistemi diskless o con poca memoria TFTP è basato su UDP L applicazione gestisce un proprio meccanismo di riscontro e ritrasmissione Tutti i datagram hanno dimensione fissa di 512 byte 31 Network File System Sviluppato dalla Sun NFS implementa l accesso in linea trasparente usato per interconnettere i file system di vari computer NFS è trasparente all utente un programma può accedere contemporaneamente e allo stesso modo a file locali e remoti il sistema operativo riconosce se il file è locale o remoto ed utilizza le funzioni di accesso opprtune Le prestazioni del programma possono dipendere dallo stato della rete 32 Architettura di NFS sostituire con figura in cap. 27 di Stevens e riscrivere Imita la chiamata di una procedura locale tutti i dettagli relativi alla gestione della connessione sono nascosti nel package RPC l applicazione invoca un operazione su un file senza sapere se sarà implementata in locale o in remoto

Struttura di NFS Il protocollo NFS si suddivide in tre componenti indipendenti: Il protocollo NFS propriamente detto Il protocollo RPC (Remote Procedure Call) Il protocollo XDR (external Data Rappresentation) Remote Procedure Call SUN RPC è un package che implementa un paradigma di programmazione distribuita di tipo client-server sviluppato da SUN esistono altri package per implementare Remote Procedure Call 33 34 un programma (client stub) chiama una funzione in un programma (server stub) la comunicazione tra client stub e server stub è realizzata dal package Architettura di Programmi RPC Caratteristiche di RPC 35 L applicazione invoca una funzione di un programma locale (client stub) Il client stub invia un messaggio al server stub eventualmente stabilisce una connessione il messaggio è formattato per contenere i parametri della chiamata a funzione da eseguire Il server stub spacchetta il messaggio ed invoca una funzione locale passandogli i parametri ricevuti il server stub riceve il risultato della funzione e lo inserisce in un messaggio che manda al client stub il client stub passa il risultato all applicazione 36 RPC non fa ipotesi sul modello di concorrenza in cui operano client e server possono operare sia sincrono che asincrono Rispetto alle chiamate a procedure locali RPC si differenzia per: gestione degli errori, prestazioni e meccanismi di autenticazione RPC è indipendente dal protocollo di trasporto può appoggiarsi su TCP, UDP o altri RPC non fornisce affidabilità L applicazione deve sapere se sta utilizzando TCP o UDP

XDR: external Data Representation È uno standard utilizzato per rappresentare i valori trasmessi nei messaggi scambiati dai programmi RPC svolge un ruolo simile a NVT XDR definisce diversi tipi di dati e codifica come devono essere rappresentati interi, interi senza segno, numeri floating point, ecc. XDR permette anche di descrivere formati di dati molto complessi in modo conciso e non ambiguo Port Mapper I programmi server che contengono procedure remote usano porte effimere è necessario mantenere in un registro quali programmi RPC usano quali porte effimere SUN RPC utilizza il programma portmapper per tenere traccia di tutti i programmi RPC server portmapper è un programma RPC che opera sulla porta 111 (sia UDP che TCP) 37 38 Ruolo di Portmapper I programmi RPC server devono registrarsi al portmapper I programmi client interrogano il portmapper per sapere su che porta opera un certo programma 39