Post on 21-Sep-2020
1
Autunno 2004Prof. Roberto De Prisco
Università degli studi di SalernoLaurea e Diploma in Informatica
Introduzione
TEORIA (Lez. 1)
Autunno 20042Telefonini
… o almeno
… e non rispondere
2
TEORIA (Lez. 1)
Autunno 20043Presentazione
Prof. Roberto De Priscostudio: L1-13robdep@unisa.it
Orario del corso:Lun 09:00-11:00 F1 (Fisciano)Mar 09:00-11:00 F1 (Fisciano)Gio 09:00-12:00 L12 (Lancusi)
Orario di ricevimento studentiLun 11:00-13:00Gio 12:00-13:00Email (risposta non garantita, dipende dalla domanda!)
Condizione necessaria: il messaggio deve essere firmatoAppuntamento
TEORIA (Lez. 1)
Autunno 20044Sito Web
Materiale didattico
SlideCodice
InformazioniDate esamiProgrammaLibri
Annunci
EsamiPrenotazioniRisultati
http://www.dia.unisa.it/robdep/Reti/
3
TEORIA (Lez. 1)
Autunno 20045Programma e libri
Parte generale: StallingsCanali di trasmissione CodificaControllo erroriMultiplexingReti a commutazione di pacchetto e di circuito
Internet: ComerIndirizzamentoTCP/IPRoutingDNSApplicazioni
Socket: StevensProgrammazione client-server (laboratorio)
TEORIA (Lez. 1)
Autunno 20046Esame
Prova scrittaDue compitini durante il corso, oppureUno scritto unico negli appelli dopo la fine del corsoSuperando lo scritto, si ottiene un voto da 18 a 30Contiene domande anche sulla parte pratica
Prova pratica, obbligatoriaSviluppo di un programma in laboratorio Può far variare il voto della prova scritta
Prova oraleLo studente ha la facoltà di confermare il voto acquisito oppure sostenere la prova orale, ma La prova orale è obbligatoria
se il docente ritiene di non aver acquisito abbastanza elementi per la valutazionePer i voti superiori a 27
Alla prova orale il voto può variare senza limiti
4
TEORIA (Lez. 1)
Autunno 20047Validità
Le prove scritte e pratiche possono essere fatte indipendentemente l’una dall’altra
La prova orale può essere fatta solo dopo avere sostenuto la prova scritta e quella pratica
I voti delle prove vengono mantenuti per un anno solare
Es. una prova fatta a febbraio 2005 è valida fino a febbraio 2006Es. una prova fatta nella sessione di giu-lug 2005 è valida fino alla sessione di giu-lug 2006
TEORIA (Lez. 1)
Autunno 20048Classe
Questo corso è per le matricole congrue a 0 modulo 3
Il resto della divisione per 3 è 0
Un modo semplice per vedere quale è il resto:556/0157821+5+7+8+2 = 232+3 = 5Il resto di 5 diviso 3 è 2Classe di appartenenza: 2
5
TEORIA (Lez. 1)
Autunno 20049Si comincia
RETI
Introduzione: panoramica sul corso
TEORIA (Lez. 1)
Autunno 200410Introduzione
Perché colleghiamo i computer in rete?
Migliore utilizzo delle risorse in comuneUna stampante può essere condivisa da tutti gli utenti di una reteUn dispositivo di backup può essere utilizzato da tutti gli utenti di una rete
Capacità di scambiare dati e di comunicareEmail, accesso ad un database remoto, meeting via rete, WWW, …
Computazione distribuitaProgrammi che girano su più calcolatori
6
TEORIA (Lez. 1)
Autunno 200411Canali
Collegamento direttoEsiste un mezzo fisico (canale) fra due computer
I computer alle due estremità spediscono e ricevono i dati (bit)
Vari tipi di canaliDoppini, cavi coassiali, fibre otticheSegnali, larghezza di banda, rumore, tasso di erroreCorrezione degli errori, capacità
Mezzo di trasmissione
TEORIA (Lez. 1)
Autunno 200412Introduzione
Ovviamente non è possibile collegare direttamente (cioè tramite un canale) ogni singola coppia di computer
Soluzione: Reti
(slide animata)
7
TEORIA (Lez. 1)
Autunno 200413Reti di calcolatori
GeografiaLAN Local Area NetworkMAN Metropolitan Area NetworkWAN Wide Area Network
TecnologiaCommutazione di circuito (reti telefoniche)Commutazione di pacchetto
Frame RelayATMInternet (con la I maiuscola)
In questo corsoCommutazione di pacchetto
TEORIA (Lez. 1)
Autunno 200414Protocolli
Regole per poter comunicare
Si occupano di problemi qualiIndirizzamentoSpedizione dei dati
Segmentazione e riassemblaggioControllo e correzione di erroriControllo del flussoTrasferimento ordinatoMultiplexing
Protocollo TCP/IP (Internet)
8
TEORIA (Lez. 1)
Autunno 200415Livelli
TEORIA (Lez. 1)
Autunno 200416Modello a tre livelli
Modello semplificato a tre stratiLivello applicazioneLivello di trasportoLivello fisico (accesso alla rete)
Applicazione
Trasporto
Accesso alla rete
Applicazione
Trasporto
Accesso alla reteRete di comunicazione
Protocollo dell’applicazione
Protocollo di trasporto
Protocollo accesso alla rete
Protocollo accesso alla rete
Sorgente Destinazione
9
TEORIA (Lez. 1)
Autunno 200417Modello a tre livelli
Ogni livello si occupa di determinati aspetti
Livello fisicoTrasmissione dei bit, consegna dei bit al canale e ricezione dei bit, identificazione della sorgente e del destinatario
Livello di trasportoCorrezione degli errori, richieste di ritrasmissione, controllo del flusso
Livello di applicazioneFornisce i servizi all’utente, email, WWW, ftp, etc.
TEORIA (Lez. 1)
Autunno 200418
Applicazione
Trasporto
Accesso alla rete
Applicazione
Trasporto
Accesso alla reteRete di comunicazione
Protocollo dell’applicazione
Protocollo di trasporto
Protocollo accesso alla rete
Protocollo accesso alla rete
Sorgente Destinazione
Percorso di un pacchetto
(slide animata)
10
TEORIA (Lez. 1)
Autunno 200419PDU
PDU: Protocol Data UnitBlocchi, pacchetti, trame (frame) … sinonimi, indicano una PDU nei vari livelli
Una PDU contieneintestazione (dati di controllo aggiunti dal protocollo)corpo (dati utente)coda (dati di controllo aggiunti dal protocollo)
La coda non è sempre presente
Intestazione e coda sono usate dal protocollo per controllare la comunicazione
TEORIA (Lez. 1)
Autunno 200420PDU
Ogni livello aggiunge i suoi dati di controllo
11
TEORIA (Lez. 1)
Autunno 200421Rete a pacchetti
= Pacchetto
TEORIA (Lez. 1)
Autunno 200422Multiplexing
Corrispondenza di più connessioni ad un livellocon una sola connessione al livello inferiore
consente di aggregare i dati e ottimizzare l'efficienzadella trasmissione
È necessario un meccanismo di disaggregazione(demultiplexing)
Canale
Canale 1Canale 2
Canale n
Canale 1Canale 2
Canale n
12
TEORIA (Lez. 1)
Autunno 200423Internet
Internet (con la I maiuscola)Rete di reti, copre tutto il globo
TEORIA (Lez. 1)
Autunno 200424Indirizzamento in Internet
Avere una rete che copre tutto il globo rende difficile dare un indirizzo univoco ad ogni singolo computer
Indirizzi IP e DNSSchema per l’assegnazione di indirizzi numerici (192.41.218.1)Uso di nomi mnemonici (www.dia.unisa.it)
Corrispondenza fra indirizzi IP e indirizzi fisici
13
TEORIA (Lez. 1)
Autunno 200425Protocollo TCP/IP
Stratificazione dei livelli TCP/IP5 livelli
Rete di comunicazione
Protocollo accesso alla rete
Protocollo accesso alla rete
Sorgente
Applicazione
TCP
IP
Accesso alla rete
Fisico
Applicazione
TCP
IP
Accesso alla rete
Fisico
Destinazione
TEORIA (Lez. 1)
Autunno 200426Suite TCP/IP
IP e TCP sono i due più importanti protocolli che danno il nome alla famiglia di protocolli detta appunto TCP/IP
IP = Internet ProtocolTCP = Transmission Control Protocol
Ci sono altri protocolliUDP, ICMP, …
Il funzionamento di Internet inoltre dipende da algoritmi di
Routing (istradamento dei pacchetti)Controllo della congestione
14
TEORIA (Lez. 1)
Autunno 200427Applicazioni
Tutto ciò che abbiamo descritto finora costituisce la struttura di base
Tale struttura ci permette di scrivere le applicazioni
ApplicazioniWWW (World Wide Web)
Internet Explorer, Netscape, MozillaEmailFTP (File Transfer Program)Login remotoChat
TEORIA (Lez. 1)
Autunno 200428Client-Server
Molte applicazioni usano il paradigma client-server
Il server è un programma/macchina che è sempre in funzione ed è in attesa di richieste da parte di client
Il client contatta il server per usufruire dei servizi offerti dal server
WWW è un’applicazione client-server
15
TEORIA (Lez. 1)
Autunno 200429Programmazione su rete
Un socket è l’astrazione (al livello del programmatore) di un canale di comunicazione
Per scrivere applicazioni su rete il programmatore ha a disposizione una interfaccia per i socket
Stabilire una connessioneSpedire datiRicevere datiAltre funzioni
Socket in ambiente Linux/Unix
TEORIA (Lez. 1)
Autunno 200430Server echo con UDP
int main(int argc, char **argv) {int sockfd;struct sockaddr_in servaddr, cliaddr;if( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 )
err_sys("socket error");bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(PORT);
if( bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0 )err_sys("bind error");
server_echo_udp(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));}
void server_echo_udp(int sockfd, struct sockaddr *p_cliaddr, socklen_t clilen) {int n;socklen_t len;char mesg[MAXLINE];for ( ; ; ) {
len = clilen;if( (n = recvfrom(sockfd, mesg, MAXLINE, 0, p_cliaddr, &len)) < 0)
err_sys("recvfrom error");if( sendto(sockfd, mesg, n, 0, p_cliaddr, len) != n )
err_sys("sendto error");}
}
echoudpsrv.c
16
TEORIA (Lez. 1)
Autunno 200431Riepilogo: Il programma
Parte Teorica
GENERALECanali di trasmissione CodificaControllo erroriMultiplexingReti a commutazione di pacchetto e di circuito
INTERNETIndirizzamentoTCP/IPRoutingDNSApplicazioni
Parte Pratica
Programmazione su rete Socket TCPSocket UDPI/O multiplexing (select)Applicazioni client-server
Programmazione in laboratorio
OTT
GEN