Presentazione di PowerPoint
Transcript
Presentazione di PowerPoint
TCP IP Un po’ di storia Nella prima metà degli anni '70, la Defence Advanced Research Project Agency (DARPA) dimostrò interesse per lo sviluppo di una rete a commutazione di pacchetto per l'interconnessione di calcolatori eterogenei, da utilizzarsi come mezzo di comunicazione tra le istituzioni di ricerca degli Stati Uniti. DARPA finanziò a tal scopo l'Università di Stanford e la BBN (Bolt, Beranek and Newman) affinché sviluppassero un insieme di protocolli di comunicazione. Verso la fine degli anni '70, tale sforzo portò al completamento dell'Internet Protocol Suite, di cui i due protocolli più noti sono il TCP (Transmission Control Protocol) e l'IP (Internet Protocol). Questi protocolli furono utilizzati da un gruppo di ricercatori per la rete ARPAnet e ottennero un elevato successo, anche perché posti sin dall'inizio nel dominio pubblico e quindi utilizzabili gratuitamente da tutti. Il nome più accurato per l'architettura di rete rimane quello di Internet Protocol Corrispondenza tra OSI e TCP/IP Il TCP/IP è un protocollo a 4 livelli, ecco l’analogia con OSI: Livelli 5/6/7 Il trasferimento di dati tra host si basa sull’architettura clientserver Esisterà pertanto un software client (su un host) e un software server (sull’altro host) I livelli 5 6 e 7 OSI nel tcp/ip sono fusi assieme in un unico livello application In questo livello risiedono gli applicativi client server Porte Quando un applicativo vuole trasmettere dati ad un altro applicativo su un altro host deve specificare al livello inferiore (TCP o UDP) un numero di PORTA che identifica univocamente l’applicativo nell’host destinatario e uno per l’applicativo dell’host mittente. Le porte sono interi a 16 bit. Porte Ad esempio la porta standard per richiedere una connessione con un server per il trasferimento di file (FTP) è la 21 Quindi i numeri di porta vanno da 1 a 65535 I numeri minori di 1024 sono riservati ai well known port (porte ben conosciute) e sono correlate biunivocamente a un applicativo. I numeri maggiori di 1024 vengono assegnati dinamicamente agli altri applicativi per i quali non sia stata assegnata una well known port. Vediamo alcuni esempi: Porte “ben conosciute” 21 FTP 23 Telnet 25 SMTP (posta in uscita) 53 DNS 80 HTTP 110 POP3 (posta in ingresso) 143 IMAP Protocolli connessi e non Per tutti i livelli superiori al livello fisico sono definite due modalità operative: una modalità connessa (CONS: Connection Oriented Network Service) una modalità non connessa (CLNS: ConnectionLess Network Service). Connectionless In un servizio non connesso la spedizione di un pacchetto è simile alla spedizione di una lettera ordinaria con il sistema postale. Tutto avviene in una sola fase lasciando cadere la lettera nella buca delle lettere. La lettera deve contenere sulla busta l'indirizzo completo del destinatario. Non vi è alcun riscontro diretto che la lettera giunga a destinazione correttamente. Connection oriented In un servizio connesso lo scambio di dati tramite pacchetti ricorda le frasi scambiate tra due interlocutori al telefono. Vi sono tre momenti principali: - creazione della connessione (il comporre il numero telefonico e il "pronto" alla risposta); - trasferimento dei dati (la conversazione telefonica); - chiusura della connessione (i saluti finali e il posare il microtelefono). TCP e UDP (Livello 4 Trasporto) Le applicazioni (livelli 5/6/7) che vogliono trasferire dai dati da un host a un altro in modalità client-server si appoggiano al TCP o al UDP. Ad esempio quando spediamo la posta il nostro client di posta (Ad es. outlook) utilizza l’SMTP per connettersi al server (Ad es. mercury) attraverso TCP TCP e UDP (Livello 4 Trasporto) Il livello Trasporto consta di due protocolli TCP e UDP:si occupa di fornire un trasferimento dati affidabile e di ottimizzare l'uso delle risorse di rete. Compiti del livello saranno quindi tipicamente la frammentazione, la divisione di messaggi in pacchetti più piccoli o la riunione di messaggi di piccole dimensioni in pacchetti più grandi, la correzione degli errori e la prevenzione della congestione della rete TCP (Transfer Control Protocol) Il TCP è un protocollo di trasporto di tipo connection-oriented che fornisce un servizio di tipo full-duplex (bidirezionalecontemporaneo) E' in grado di identificare il destinatario, aprire o chiudere una connessione col sistema corrispondente, frammentare e riassemblare i dati, controllare e ripristinare gli errori, controllare la velocità con cui fluiscono le informazioni. Il TCP è utilizzato dalle applicazioni di rete (a livello superiore) che richiedono una trasmissione affidabile dell'informazione. Suo compito prelevare i dati farli trasportare e consegnare nell’ordine cui sono stati spediti I dati TCP vengono trasmessi in segmenti. TCP Il TCP è affidabile in quanto gestisce meccanismi di time-out e ritrasmissione: La ricezione dei dati deve essere confermata dall'applicazione remota (ACK). Se entro un tempo fissato (time-out) non viene data conferma dal ricevente dell’avvenuto arrivo del pacchetto il pacchetto viene ritrasmesso Il livello di trasporto gestisce la trasmissione dei pacchetti da emittente a destinatario. Header TCP La source port e la destination port sono i numeri delle porte cui sono associati gli applicativi che usano la connessione - Il sequence number è il numero di sequenza del primo byte del campo dati del messaggio. È utilizzato anche come identificatore della sliding window. - Lo acknowledge number è il campo di acknowledge con tecnica di piggybacking della trasmissione nella direzione opposta. Contiene il numero di sequenza del primo byte che il mittente si aspetta di ricevere. - Il campo data offset indica il numero di parole da 32 bit che compongono l'header TCP, variabile in funzione del campo option. - Il campo flag contiene informazioni varie. - Il campo window contiene la dimensione della receiving window del TCP mittente e quindi lo spazio disponibile nei buffer per il traffico entrante. - Il campo urgent pointer punta al primo byte urgente nel pacchetto. UDP (User Datagram Protocol) Lo User Datagram Protocol (UDP) è un protocollo di trasporto, alternativo a TCP, di tipo connectionless. UDP è un protocollo molto più semplice di TCP ed è utilizzato quando l'affidabilità di TCP non è richiesta. I campi hanno significati simili a quelli di TCP, e la checksum è opzionale. Lo utilizzano applicativi che trafersicono piccole quantità di dati. Header UDP IP:Internet Protocol (livello 3) Il pacchetto contenente le informazioni sulla porta di destinazione (e dunque sul programma che nell’altro host dovrà ricevere il dato) passa al livello inferiore il quale provvederà a inviare il pacchetto al destinatario apponendovi l’indirizzo sia del mittente che del destinatario. Responsabile di questa operazione è l’IP IP:Internet Protocol (livello 3) Il livello 3 si scinde in altri 3 protocolli: IP, ARP, ICMP. ICMP È il livello Network di TCP/IP Offre un servizio non connesso Un protocollo datato ... ... ma non obsoleto IP: funzionalità Frammentazione (nel mittente) e riassemblaggio (nel ricevente) dei pacchetti Gestione indirizzi a 32 bit a livello di rete e di host Routing Monitoring della connessione IP: Routing E’ responsabile dell’indirizzamento dei pacchetti su host. L’IP è in grado di capire se il pacchetto è indirizzato a un nodo della rete locale. Come sono strutturati gli indirizzi IP? Indirizzi IP Sono ampi 32 bit (4 byte) Si scrivono come 4 numeri decimali separati dal carattere “.” Ogni numero rappresenta il contenuto di un byte ed è quindi compreso tra 0 e 255 Esempi 131.190.0.2 1.1.2.17 200.70.27.33 Sono univoci e vengono assegnati da enti appositi (NIC) www.nic.it Classi di indirizzi Numero Reti Host per rete Intervallo ID rete Classe A 126 16777214 1-126 Classe B 16384 65534 128-191 Classe C 2097152 254 192-223 Subnetting e Subnet Mask E’ possibile partizionare gli indirizzi degli host a disposizione per creare delle sottoreti si utilizza una Subnet Mask Ad esempio una Subnet Mask 111111111111111111111111000 00000, più comunemente scritta come indirizzo IP 255.255.255.0 indica che il campo host coincide con l'ultimo byte dell'indirizzo. L’header IP (V4) L’header in dettaglio Il significato dei campi del pacchetto IP è il seguente: - Version: è il numero di versione del protocollo IP che ha generato il pacchetto; attualmente questo campo vale sempre 4; - HLEN (Header LENgth): è la lunghezza dell'header IP, variabile in funzione del campo option, espressa come numero di parole da 32 bit;. - service type: specifica come un protocollo di livello superiore vuole che il pacchetto sia trattato; è possibile assegnare vari livelli di priorità utilizzando questo campo; - total length: è la lunghezza del pacchetto IP (header più dati) in byte; - identification: questo campo contiene un numero intero che identifica il pacchetto; è usato per permettere il riassemblaggio di un pacchetto frammentato; - flags: specificano se un pacchetto può essere frammentato e se si tratta dell'ultimo frammento di un pacchetto; - fragment offset: è l'offset del frammento in multipli di 8 byte; - time to live: è un contatore che viene decrementato con il passaggio del tempo; quando il contatore arriva a zero il pacchetto viene scartato. Permette di eliminare i pacchetti che, a causa di un malfunzionamento, sono entrati in loop; - protocol: identifica il protocollo di livello superiore contenuto nel campo dati del pacchetto; - header checksum: è un campo utilizzato per controllare che l'header IP sia corretto; - source e destination address: sono gli indirizzi IP di mittente e destinatario, entrambi su 32 bit; - option: è un campo usato dall'IP per fornire varie opzioni, quali la sicurezza e il source routing, che può essere di tipo loose o strict. Schede di rete La funzione della scheda di rete è di costituire un’interfaccia tra il PC e il mezzo trasmissivo utilizzato. Ogni scheda di rete possiede un indirizzo univoco (MAC address) fornito dal costruttore costituito da una sequenza esadecimale del tipo 00-00-0C-00-4D-10 ARP (livello 3) Affinché i due host possano comunicare è necessario che ogni indirizzo IP venga associato al Mac address corrispondente. Il protocollo ARP viene usato tutte le volte che una stazione collegata ad una LAN deve inviare un messaggio ad un nodo sulla stessa LAN di cui conosce unicamente l'indirizzo di livello 3 (l’indirizzo IP). I protocolli Address Resolution Protocol (ARP) e Reverse Address Resolution Protocol (RARP) sono utilizzati per scoprire in modo automatico le corrispondenze tra gli indirizzi di livello 3 e gli indirizzi di livello 2 e viceversa. Questo è importante nelle LAN dove occorre creare una relazione tra gli indirizzi IP e gli indirizzi MAC. ARP (livello 3) I protocolli ARP e RARP si appoggiano direttamente sulle reti locali e non su IP. Essi operano inviando le loro richieste in broadcast a tutte le stazioni della rete, anche quelle che non utilizzano TCP/IP. La richiesta in broadcast di ARP contiene l'indirizzo IP del nodo di cui si vuole scoprire l'indirizzo di livello 2. Il nodo avente l'indirizzo IP specificato risponde alla richiesta fornendo il suo indirizzo di livello 2. Per aumentare l'efficienza, i nodi mantengono in una cache locale le risposte ricevute alle richieste di ARP. Il contenuto della cache di ARP può essere visualizzato, in molte realizzazioni, tramite il comando: arp -a Header Arp ICMP Il protocollo Internet Control Message Protocol (ICMP) è stato progettato per riportare anomalie che accadono nel routing di pacchetti IP e verificare lo stato della rete. Come viaggia un pacchetto indirizzato a un IP locale Affinché i due host possano comunicare è necessario che ogni indirizzo IP venga associato al Mac address corrispondente. L’IP identifica che il pacchetto è diretto alla rete locale, l’host di origine cerca nella propria cache ARP il Mac address del destinatario. Se non viene trovata corrispondenza, ARP crea la richiesta broadcast:”a che Mac address corrisponde l’host con questo IP address?” Se l’host che riceve la richiesta trova corrispondenza invia all’host di origine la risposta ARP con relativo Mac address L’host di origine aggiorna la propria cache e trasmette i pacchetti. Come viaggia un pacchetto indirizzato a un IP remoto Se l’indirizzo IP viene identificato come remoto, l’host di origine provvede a inviare a una entità che instraderà il pacchetto verso la via più opportuna esterna alla LAN :il router Architettura del Router Gli IP router effettuano l'instradamento sulla base di tabelle di instradamento che possono essere scritte manualmente dal gestore della rete o calcolate automaticamente tramite una serie di algoritmi Semplice esempio La rete è di classe A (primo byte uguale a 11) e ha una netmask 255.255.0.0. 256 subnet con 256*256 host indirizzabili ognuna I router hanno tanti indirizzi quante sono le interfacce e quindi le subnet (le LAN) che collegano. Il Router in questione ha due indirizzi: 11.2.0.254 e 11.1.0.253 il router collega reti Ethernet appartenenti a subnet diverse (11.1 e 11.2). Livelli (OSI) 1 e 2 L’architettura TCP/IP è concepita come un mezzo per fare internetworking tra reti (locali o geografiche) È in grado di operare su tutte le reti: Ethernet, token-ring, FDDI, ATM, SMDS, Frame Relay X.25 SLIP, PPP, Dialup Esistono realizzazioni di TCP/IP anche per reti non standard Esercitazione: Creazione di una LAN Installazione dell’hub Assegnazione degli IP alle macchine Test con IPCONFIG, e PING