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