Introduzione
Physical e Data Link Layer (Ethernet e Token Ring)
Protocolli Network Layer
Protocolli Transport Layer (TCP, UDP)
Introduzione(Indice)
Questo modello definisce 7 livelli (logici). Ogni livello e' rappresentato da un modulo software in ogni host del network. Il piu' basso e' il livello di comunicazione fisica, il piu' alto e' il programma applicativo. Non tutti sono effettivamente necessari, spesso ne sono implementati solo 4 o 5, ma comunque servono da riferimento.
figura 10.1
Si tratta in pratica di una macchina astratta in cui ogni livello mette
a disposizione del livello precende un insieme di funzionalita'. Ogni livello
rielabora il messaggio inziale aggiungendo un header contenente informazioni
per il livello successivo corrispondente del ricevente. Un messaggio puo'
essere diviso in pacchetti piu' corti, che sono poi ricostruiti dal destinatario.
Ogni livello ha anche un indirizzo per il destinatario, che completa
quelli contenuti negli altri livelli.
Physical e Data Link Layer (Indice)
Due modelli standard di protocolli per il physical layer e parte del data layer sono:
Topologia Branching Bus
Singolo cavo o insieme di cavi connessi con ripetitori (semplici unita'
di connessione per ricostruire e rafforzare il segnale) Il cavo e' un elemento
passivo
a differenza del bus per il collegamento della CPU con le memorie.
|
|
|
|
|
L'uso del cavo e' schedulato in modo distribuito dai vari host. Possono avvenire delle contese d'accesso, non essendoci un arbitro.
Protocollo Ethernet (IEEE 802.3)
Protocollo sviluppato da Xerox nel 1970. Standard DIX (Digital Intel,
Xerox) dal 1980.
Metcalfe e' stato il primo progettista di Ethernet. Nel 1973 gli diede
questo nome, scegliendo come base la parola "ether" per descrivere la caratteristica
principale del sistema: il mezzo fisico (cavo) porta i bit alle varie W.S.
come il vecchio "etere" (inesistente) supportavano la propagazione delle
onde elettromagnetiche.
Consiste in 3 livelli:

Meccanismo carrier sensing: ogni host ascolta il bus e preleva
solo i messaggi a lui destinati.
Le collisioni non sono prevenute, vanno controllate dagli host.

Velocita' di trasmissione.
Il cavo oscilla fra 2 tensioni limite, formando onde quadre, con un intervallo di temporizzazione per la trasmissione. Un fronte di discesa identifica il bit 0, un fronte di salita il bit 1.

C'e' poi anche da considerare la velocita' di diffusione del campo elettrico nel cavo (velocita' della luce in quel mezzo, circa 3 * 10**8 m/sec, ). Una tensione applicata in un punto del cavo impieghera' un certo tempo a distribuirsi su tutto il cavo. Indichiamo con T il tempo per la formazione sul bus del segnale. Per un cavo lungo 1 Km avremo ad esempio T circa = 5 microsec.
ESEMPIO
L'host A vuole trasmettere un messaggio ad un altro host. Anche B vuole
fare altrettanto. Entrambi ascoltano il bus finche' sentono il "silenzio".
A questo punto ciascuno comincia a inviare il messaggio. A causa del tempoT
di ritardo nfatti, e' possibile che i due host sentano il silenzio
anche se un altro host ha in effetti gia' iniziato a spedire un messaggio.
A inizia a trasmettere al tempo t0 e B al tempo
t1.
C'e' una collisione se |t1-t0| <= T.

Riconoscimento della collisione: ogni'host che invia legge quanto
invia. Se non e' la stessa cosa che ha inviato, vuol dire che c'e' stata
una collisione. In questo caso c'e' un jamming signal e i riceventi scartano
il messaggio. I frame collisi sono ritrasmessi dopo un tempo random = n*T.
Vengono ripetuti al massimo 10 volte, poi il messaggio e' scartato. Per
poter capire che c'e' stata collisione occorre che la durata del messaggio
trasmesso sia sufficientemente lunga, per questo c'e' una dimensione minima
del messaggio.
|
|
|
|
| Twisted pair cable |
|
|
| Cavo coassiale |
|
|
| Fibbre ottiche |
|
|
Efficienza di Ethernet
L'utilizzazione del bus arriva all'80-95%, ma oltre al 50% aumentano
i problemi dovuti a collisioni.
Topologia Ring
Il link e' fatto per ogni 2 host. Un host passa i messaggi che riceve (se non sono destinati a lui) all'host successivo. In alcuni ring il messaggio completa comunque l'anello ed e' poi rimosso dal sender anziche' dal receiver.
Nella rete configurata a ring un host assume il compito di monitor station: il suo compito e' di eliminare dati che non sono stati cancellati (perche' magari l'indirizzo era sbagliato o perche' il processo sender o il receiver sono falliti).
Protocollo Token Ring
E' stato uno dei primi protocolli. IBM l'ha usato nella forma IEEE 802.5 standard. Trasmette messaggi di lunghezza qualunque come singolo pacchetto. La trasmissione e' fatta utilizzando un token packet che ha diverso formato. Lo schema e' quello di una locomotiva (il token) he trascina un treno (il messaggio). Se il token e' libero, l'host che lo riceve puo' attaccarci un messaggio, assegnando al token un indirizzo di destinazione. Il ricevente libera il token e legge il messaggio. Il token circola continuamente, anche se vuoto. La monitor station controlla che il token non vada perso, e nel caso lo rigenera.

Questo protocollo non e' fair, qualche host potrebbe non riuscire a spedire un messaggio. in questo caso possono essere assegnate priorita' e prenotazioni. Oppure il token viene bloccato dal sender (che spedisce ugualmente il suo messaggo) e rilasciato all'host successiovo solo quando il messaggio inviato ha compiuto tutto il giro.
Il meccanismo di ring puo' essere anche utilizzato in qltro modo, ad esempio come e' stato fatto nel protocollo Cambridge Ring, detto anche lotted ring (sempre 10Mhz). Il circuito e' formato da due doppini telefonici, ed e' stato usato in Inghilterra dal 1970.

Sul ring circola uno slot ("treno") di 3 o 4 pacchetti. Quando ce n'e' uno vuoto si puo' riempire (1 control bit se "empty"). Quando il bit di controllo e' "full", si controlla il destination address. Se e' ricevuto, i response bit sono alternati di conseguenza, per indicare al sender che il pacchetto e' stato letto. Il sender azzera allora il pacchetto quando lo riceve nuovamente, mettendo il bit a "empty". Se c'e' stato un problema, ritrasmette.
Confronto fra i vari protocolli.
C'e' una certa similitudine con metodi di schedulazione della CPU: ethernet e token ring fanno passare un messaggio alla volta senza interruzioni, a meno di "deadlock" per ethernet (risolto con la detection e il recovery), mentre Cambbridge ring assomiglia alla schedulazione RR. La performance e' comunque simile. E. e' migliore per le trasmissioni lunghe a basso carico di rete. L'uso di token sui ring richiede la circolazione continua del token.
NOTA: Si possono fare comunicare anche LAN diverse fra loro. In questo caso e' necessario avere dell W.S. che funzionino da bridge per consentire la conversione fra protocolli. Poiche' gli indirizzi del livello fisico dipendono dal protocollo, un bridge avra' un indirizzo diverso per ogni rete a cui appartiene.

Glossario
Protocolli
Network Layer (Indice)

I protocolli di rete e di trasporto coprono i livelli 3 e 4 del modello OSI. I protocolli piu' noti sono:
X.25
Orientato alla connessione, utilizzato soprattutto su WAN, reti pubbliche telefoniche e poste elettroniche europee.
In effetti la tipologia di collegamento e' quella classica del telefono.
E' connectionless, ed assomiglia al sistema delle poste.
L'indirizzo di network po' essere decomposto in indirizzi di subnetwork in modo gerarchico. Per rendere piu' leggibile all'utente umano un indirizzo IP, si utilizza la dotted notation: una serie di numeri decimali separati dal punto ad esempio 251.30.0.3. Si legge da sinistra a destra: il primo campo indica la rete, poi la sottorete, la sottosottorete e infine l'identificatore dell'host.
Ci sono 4 classi di indirizzi, indicate con una lettera da A a D, con diverso numero di bit per i vari identificatore. Le reti o sottoreti vengono assegnate dal NIC (Network Information Center) della SRI International, a cui bisogna fare richiesta. Ad esempio, all'Ateneo di Genova e' stato assegnato un identificatore di rete, poi la responsabilita' di suddividere le sottoreti e' stata affidata ad un gestore, infine ogni Dipartimento decide ulteriori suddivisioni e assegna gli identificatori dei singoli host.
Infine, per rendere ancora piu' leggibile l'indirizzo IP si ricorre al Domain Name Service (DNS). Informazioni sul DNS e un esempio sulla conversione DNS -> IP -> ethernet degli indirizzi si trova nella Sezione 11.
Livello Trasporto (Indice)
I protocoli ISO/OSI prevedono per questo livello 5 varianti, da TP0 a TP4. TCP e' simile a TP4. E' usato normalmente in associazione a IP in quanto fornisce la comunicazione connection oriented, con controllo dell'ordinamento dei messaggi e degli eventuali errori.
Indirizzo TCP/UDP
I protocolli a livello di trasporto devono specificare a quale porta
(dell'host individuato dall'indirizzo IP) va rilasciato il messaggio e
a chi deve essere riportato. L'indirizzamento e' unico per TCP e UDP (cioe'
lo stesso numero puo' essere utilizzato da entrambi i protocolli, perche'
e' "associato" al protocollo stesso), ed e' un 16 bit unsigned integer.
Alcune porte sono dette well-known (numeri da 1 a 255) e sono state
assegnate da un apposito ente ad uno specifico servizio. Gli host che attivano
un certo servizio lo devono quindi rendere disponibile a quella porta.
Ad esempio FTP ha la porta 21, mentre TFTP ha il 69. Vedere
Sezione 11. In questo
modo e' sempre possinbile concoscere la porta di un servizio "standard"
su qualunque host.
Gli altri port number (superiori a 255, ma di solito il S.O. se ne riserva una parte per uso proprio) sono detti effimeri, e durano solo per il tempo di sopravvivenza del processo che li ha richiesti. Un processo puo' quindi avere piu' porte di input e/o di output, su diversi protocolli.
Un canale di comunicazione fra due porte e' allora identificato da una quintupla:
( transport-protocol, source-host-addr, source-port-number, dest-host-addr, dest-port-number )che individua in modo univoco la comunicazione.
Gli header del protocollo TCP sono dello stesso tipo, ma l'header del
livello TCP e' di 20 byte.
L'altro processo (client) stabilisce una connessione effettuando una "connect" (bloccante). Se accettata, si inizia lo scambio di messaggi, usando lo stesso canale virtuale, in entrambi le direzioni.
Questo sistema e' come la comunicazione telefonica: una volta stabilita la comunicazione, non occorre ripetere il numeroogni volta che si parla. Si possono quindi usare le normalifunzioni read e write oppure, per ragioni di efficienza, send e receive


Il protocollo IP divide, se il caso, i messaggi in frame. Se
un messaggio e frammentato, utti i suoi header sono replicati su ogni frame.
Ogni gestore di un layer OSI accetta un messaggio da quello precedente
e gli aggiunge un header (in qualche caso anche una coda) che sara' tolto
dal gestore corrispondente del receiver.
Server concorrenti
Un server puo' generare un figlio per gestire una richiesta di servizio. In questo modo e' libero di accettare altre richieste (vedere implementazioni server ditribuiti modello cluster.
Vediamo una connessione TCP:

Il server e' sull'host orange e risponde alla well-known port number 21. La notazione {TCP, *, 21} dice al S.O.di orange che sta aspettando alla porta 21 una richiesta di collegamento con protocollo TCP. Il server e' presente su tutti gli host del network.

Ovviamente apple e orange sono nomi che corrispondono a indirizzi Internet.Il server crea un figlio che gestira' la richiesta di apple:

Lo stesso viene fatto se arrivano altre richieste. Nell'esempio sopra ci sono 2 associazioni per la richiesta di connessione, cioe' due quintuple:
{ TCP, orange, 21, apple, 1500 }
{ TCP, orange, 21, apple, 1501 }
Le comunicazioni possono quindi essere distinte.
Demultiplexing di richieste in arrivo
In funzione del tipo di protocollo indicato dall'header del pacchetto

| Livello concettuale | Oggetti passati |
| Application | messaggi o stream |
| Transport | Transport Protocol Packets |
| Internet network
interface |
IP Datagram |
| Hardware | Network specific frame |