TCP IP

Page last edited 1 783 giorni 3 ore fa
Da wiki.betaingegneria.it.

TCP/IP[modifica]

Suite di protocolli al livello trasporto e rete (nello stack OSI) e trasporto e internet (nello stack omonimo)

  +----------------------------+--------------------+
  |  TCP/IP                    | OSI                |
  +----------------------------+--------------------+
  |                            | Applicazione       |    
  |  Applicazione              +--------------------+
  |                            | Presentazione      |
  |                            +--------------------+
  |                            | Sessione           |
  +----------------------------+--------------------+
  | Trasporto                  | Trasporto          |
  +----------------------------+--------------------+
  | Internet                   | Rete               |
  +----------------------------+--------------------+
  | Accesso rete               | Collegamento dati  |
  |                            +--------------------+
  |                            | Fisico             |
  +----------------------------+--------------------+

Questi sono alcuni esempi dei protocolli per ogni livello della pila (stack) di protocolli:

  +----------------------------+--------------------+
  |  TCP/IP                    | ESEMPIO            |
  +----------------------------+--------------------+
  |  Applicazione              | Telnet, FTP, HTTP, |    
  |                            | SMTP               |
  +----------------------------+--------------------+
  | Trasporto                  | TCP, UDP           |
  +----------------------------+--------------------+
  | Internet                   | IP, ICMP, DHCP,    |
  |                            | ARP, RARP          |
  +----------------------------+--------------------+
  | Accesso rete               | IEEE 802.3, 802.5  |
  |                            | 802.6, 802.11      |
  +----------------------------+--------------------+

Lo stack TCP/IP funziona grosso modo così: ogni livello prepara un messaggio e lo trasmette al livello inferiore che ci aggiunge a sua volta delle informazioni; via via che scende, il pacchetto perciò diventa sempre più grosso.

Il protocollo IP[modifica]

Si trova nel livello Internet ed ha queste caratteristiche:

  • inaffidabile
  • senza connessione
  • basato su datagrammi

Inaffidabile[modifica]

Significa che la consegna dei pacchetti preparati dal livello superiore avviene senza tener conto che:

  • il pacchetto non arrivi a destinazione;
  • se arriva, che sia integro, cioè esente da errori;
  • quale sia la numerazione del pacchetto.

L'eventuale ritrasmissione di pacchetti difettosi o persi viene controllata e richiesta dal livello superiore. Anche la ricostituzione del messaggio a partire dai pacchetti ordinati è compito del protocollo al livello sopra.

Senza connessione[modifica]

Non è nota la strada che che il singolo pacchetto fa per arrivare a destinazione. Ogni pacchetto può seguire una strada diversa a seconda dello stato della rete: ogni router può decidere di far percorrere ai pacchetti in ingresso, strade diverse in uscita. Si consideri sempre il processo di avvicinamento alla destinazione: alla fine l'obiettivo è che il pacchetto arrivi all'indirizzo IP di destinazione, indirizzo che viene scritto dalla sorgente e viene trascritto integralmente nei pacchetti durante i vari hop fino alla consegna.

Basato su datagrammi[modifica]

Significa che ogni messaggio viene inizialmente suddiviso in blocchi (datagrammi) contenenti:

  • l'indirizzo sorgente
  • l'indirizzo destinazione
  • il frammento di messaggio

Classi di indirizzi[modifica]

Nella pratica si utilizzano tre classi di indirizzi (ma ne sono definite cinque):

  • A (indirizzo in cui il primo bit è 0): 0xxxxxxx.yyyyyyyy.yyyyyyyy.yyyyyyyy. Questi indirizzi, in decimale, sono quelli che iniziano con il primo ottetto che va da 0 a 127.
  • B (indirizzo in cui i primi due bit sono 10): 10xxxxxx.xxxxxxxx.yyyyyyyy.yyyyyyyy. Il primo ottetto va da 128 a 191.
  • C (indirizzo in cui i primi tre bit sono 110): 110xxxxx.xxxxxxxx.xxxxxxxx.yyyyyyyy. Il primo due ottetti sono 192.168

Nella descrizione dei bit si sono usati con x i bit destinati a discriminare la rete e con y i bit dedicati invece all'inviduazione dell'host:

  • classe A: 7 network bit (2^7 = 128 reti) e 24 host bit (2^{24} = 16.777.216 computer)
  • classe B: 6+8 = 14 network bit (2^{14} = 16.384 reti) e 16 host bit (2^{16} = 65.536 computer)
  • classe C: 5+16 = 21 network bit (2^{21} = 2.097.152 reti) e 8 host bit (256 computer).

È d'uso calcolare i bit destinati all'individuazione della sottorete con le bitmask, che non fanno altro che distinguere le x dalle y:

  • classe A: la network mask prende il primo ottetto: 255.0.0.0;
  • classe B: la network mask prende i primi due ottetti: 255.255.0.0;
  • classe C: la network mask prende i primi tre ottetti: 255.255.255.0;

tramite un'operazione di AND logico.

Ad esempio: i bit di rete dell'indirizzo 172.16.234.67 sono 10101100.00010000.11101010.01000011 AND 11111111.11111111.00000000.00000000 = 10101100.00010000.00000000.00000000 = 172.16.

Per le Intranet l'IETF ha stabilito che per le reti private si possano usare le seguenti classi, a scelta:

  • una sottorete nella classe A (da 10.0.0.0 a 10.255.255.255) (bit del primo ottetto: 00001010)
  • 16 sottoreti (delle 16.384 totali) nella classe B (da 172.16.0.0 a 172.31.255.255) (primi due ottetti da 10101100.00010000 a 10101100.00011111): da 10000 a 11111 ci sono 16 configurazioni.
  • 255 sottoreti (delle 2.097.152 totali) nella classe C (da 192.168.0.0 a 192.168.255.255) (primi tre ottetti da 11000000.10101000.00000000 a 11000000.10101000.11111111): da 00000000 a 11111111 ci sono 255 configurazioni)

Il numero di host indirizzabili in ciascuna classe per una rete privata dunque sono:

  • per la classe A: 1 rete da 16.777.214 host;
  • per la classe B: 16 reti da 65.534 host;
  • per la classe C: 255 reti da 256 host.

Quindi le classi private sono solo un piccolo sottoinsieme delle classi A, B e C. Il bello è che lo stesso indirizzo può essere riutilizzato all'interno di molte reti private, l'importante è che quando si accede a internet l'indirizzo sia univoco. Per fare questo un singolo host può distinguersi dal suo gemello attraverso il Network Address Translation: ogni entità tradurrà in modo univoco l'IP address, in modo che a parlarsi siano due IP distinti.