Tcp / Ip parte 3
25 Marzo 2020Tcp / Ip parte 5
26 Marzo 2020
Tcp / Ip parte 4
Lo standard internet prevede che gli interi vengano trasmessi a partire dal byte più significativo, secondo lo stile del Big Endian.
Così in un pacchetto, un intero ha il byte più significativo verso la testa del pacchetto e quello meno significativo verso la coda dello stesso.
A questo punto i sistemi sono in grado di scambiarsi i dati in modo non equivoco.
Come avviene l’associazione tra l’IP address e l’indirizzo fisico di rete?
Ogni rete fisica ha un suo formato per gli indirizzi fisici assegnati alle connessioni di rete.
Generalmente esistono due modi di assegnare indirizzi fisici alle macchine connesse in rete.
In una rete piccola, come può essere una Token Ring, cioè un anello di un paio di centinaia di macchine al massimo, a ogni connessione può essere assegnato un intero basso, per esempio compreso tra 1 e 254.
Il vantaggio di associare l’indirizzo fisico alla connessione piuttosto che alla scheda che permette la stessa. è dato dal fatto che se la scheda si rompe, l’utente può cambiarla senza dover tuttavia modificare l’indirizzo fisico di rete, (purché imposti sulla nuova scheda lo stesso indirizzo di quella vecchia)
Lo svantaggio è che non esiste alcun controllo che impedisca a due utenti sulla stessa rete di impostare lo stesso indirizzo fisico, creando così una collisione.
In altri tipi di reti, come per esempio Ethernet, ogni scheda ha già preimpostato da parte del costruttore un indirizzo fisico fisso ( MAC = Media Access Control), per cui non c’è alcun rischio di collisione, Inoltre, dato che questo indirizzo è unico non solo fra le schede installate su una certa rete, ma in assoluto fra tutte le schede costruite, esso è generalmente molto lungo. Nel caso di Ethernet è di ben 48 bit.
Associare un IP address a un sistema con indirizzi formati da piccoli numeri e per giunta tali che a parità di connessione l’indirizzo non cambia mai, come nel caso di una rete proNET-10, è molto semplice.
Esempio, per un IP address di classe C, si può usare l’indirizzo fisico come host identifier. Così, se la rete ha IP address del tipo 10.214.32.x, l’host con indirizzo fisico 16 avrà IP address 10.214.32.16.
Un altro paio di maniche è gestire indirizzi molto più lunghi dei 32 bit utilizzati per gli indirizzi internet.
Il problema è stato risolto efficacemente utilizzando un meccanismo di risoluzione dinamica implementato dal protocollo ARP, o Address Resolution Protocol.
ARP funziona più o meno così. Quando un host deve spedire un pacchetto a un certo destinatario, spedisce a tutti gli host nella stessa rete fisica un messaggio in cui chiede chi è l’host con quel ben preciso IP address. Nello stesso messaggio mette anche i propri indirizzi, sia quello fisico che quello IP. Si adopera cioè una tecnica di broadcasting. L’host il cui IP è quello cercato, rimanda indietro al richiedente il proprio indirizzo fisico, permettendo così l’associazione tra i due. Ciò è possibile in quanto esso ha comunque ricevuto anche l’indirizzo fisico del mittente.
Capite che se fossimo in una rete molto estesa rischieremo di congestionarla, ma fortunatamente ARP cii viene in aiuto all’interno del router viene creata una tabella che associa gli Host agli indirizzi Ip e che periodicamente viene aggiornata automaticamente.
Un’ulteriore tecnica che si usa per assicurarsi che tali tabelle siano sempre aggiornate, è quella di far distribuire la propria
coppia di indirizzi, fisico ed IP, ogni qual volta un sistema si connette alla rete, per esempio al reboot.
ARP non è un protocollo internet, è un meccanismo della rete fisica. Su ARP si basa il protocollo IP per far comunicare fra loro le varie macchine quando non è possibile risolvere in altro modo gli indirizzi IP in indirizzi fisici.
Un protocollo analogo è il RARP, o Reverse Address Resolution Protocol, con il quale una macchina senza disco fisso (diskless) è in grado di conoscere il proprio indirizzo IP a partire da quello fisico. Per far ciò la rete deve avere uno o più RARP Server, i quali contengono una tabella di associazione fra gli indirizzi IP e quelli fisici di tutte le macchine diskless.
E veniamo ora al TCP/IP vero e proprio. Come detto prima l’architettura internet è basata su tre livelli.
L’Application Services è il livello più alto, cioè quello delle applicazioni. I programmi che utilizzate quando usate internet ricadono in questo livello.
Il Reliable Stream Transport Service è il livello intermedio. Esso si occupa dell’affidabilità della comunicazione, gestendo gli errori di trasmissione e la perdita di eventuali dati. Esso inoltre fornisce una visione della comunicazione ad alto livello, in cui esiste una connessione tra i due host che si trasmettono grandi volumi di dati.
Connectionless Packet Delivery Service è quello che effettua la spedizione vera e propria dei singoli pacchetti, senza garantire l’affidabilità sulla singola trasmissione, nella modalità detta connectionless.
Il protocollo su cui si basa il livello più basso della torre internet è appunto l’Internet Protocol, o IP. Tale protocollo si basa su alcuni concetti fondamentali. Innanzi tutto il servizio che fornisce è detto unreliable, cioè inaffidabile,
L’ Ip non dà alcun garanzia che il singolo pacchetto arrivi effettivamente a destinazione., è detto connectionless, cioè senza connessione diretta, in quanto la trasmissione non avviene direttamente verso il destinatario, ma il messaggio è lanciato nella rete lasciando poi a questa il compito di portarlo a destinazione utilizzando l’indirizzo IP dell’host destinatario
Infine si parla di best-effort delivery, cioè spedizione al meglio delle possibilità, in quanto la rete fa tutto il possibile per portare comunque a destinazione il pacchetto.
Per fare un esempio pratico e come se lanciamo una bottiglia con un messaggio in acqua NON ABBIAMO NESSUNA GARANZIA CHE IL MESSAGGIO RAGGIUNGA L’EFFETTIVO DESTINATARIO Detta così c’è quasi da stupirsi che internet funzioni così bene.
Non dimentichiamoci che sopra al livello più basso ce n’è un altro che garantisce appunto l’affidabilità della comunicazione.
Torniamo comunque all’IP. Esso è formato da tre regole base:
Come è fatto il pacchetto da trasmettere, detto IP datagram,
Come avviene la scelta del cammino che il pacchetto segue per raggiungere il destinatario,
Come gli host e i gateway devono trattare i pacchetti e in particolare le modalità per l’emissione dei messaggi di errore e quelle per la soppressione dei pacchetti.
Prima però di entrare nel dettaglio dei singoli campi, vediamo come si comporta l’IP nella gestione dei pacchetti di dati. Questo ci permetterà più avanti di comprendere meglio il significato di alcuni campi dell’IP datagram.
Rammentate che l’IP è un protocollo unreliable?,ed inoltre è di tipo best-effort delivery, in quanto la rete fa tutto il possibile per portare comunque a destinazione il pacchetto.
Detto questo, vediamo come avviene la trasmissione vera e propria dei dati.
L’unità fisica di trasferimento dei dati in una rete è la frame. Questa è composta di due parti: l’intestazione (header) e l’area dati (data area).
L’unità di misura è invece l’ottetto, formato da otto bit, cioè un byte. Ogni rete fisica ha un limite massimo di capacità di trasferimento per un singolo frame, detto Maximum Transfer Unit (MTU). L’MTU è cioè il massimo numero di ottetti di dati che può essere trasferito in un singolo frame. Per esempio, Ethernet ha generalmente una MTU di 1.500 ottetti (1492 secondo lo standard IEEE 802.3).
Se si devono spedire 2.000 byte di dati via Ethernet, è necessario spezzarli in due blocchi tali che ogni blocco sia minore o uguale a 1.500. A ogni blocco si aggiunge poi l’intestazione del frame.
Per chi dovesse essersi perso le puntate precedenti
Prossima puntata:
