PROTOCOL HEADERS
I protocolli di rete sono delle regole che definiscono il formato, e l’ordine, la semantica e la sintassi dei ”messaggi” mandati e ricevuti tra entità interconnesse tramite la rete, ovvero le azioni per un servizio. Garantire che i protocolli vengano utilizzati dai dispositivi è una condizione necessaria per permetterne la comunicazione.
Un protocollo serve a risolvere i problemi.
SEGNALI
-Trasmissione del segnale
Quando si trasmette un segnale ne arriva un altro. A livello fisico si genera un segnale elettrico/elettromagnetico ma a destinazione arriva un qualcosa di diverso, avviene una distorsione. Ciò che arri
va a destinazione dipende dalla distanza (attenuazione).
È molto vantaggioso passare ai bit ( da 0 a 1 perchè si passa per forza dal mezzo) perchè il sistema diventa “comprensibile”.
- Assenza di comunicazione: rispetto alla sequenza di bit, se il segnale non cambia mai il sistema capisce che c’è un’interruzione nella comunicazione.
- Cause di degradazione: Oltre alla distanza, il segnale è influenzato da interferenze elettromagnetiche, rumore termico e attenuazione del mezzo.
- Codifica Binaria: Un esempio semplice di interpretazione è associare un segnale alto al valore logico 1 e un segnale basso al valore 0.
PROBLEMI
Per ridurre al minimo gli errori di comunicazione, è necessario istituire almeno due canali distinti e separati: uno per la trasmissione in uscita e uno per la ricezione in entrata. Non è fisicamente possibile trasmettere e ricevere contemporaneamente sullo stesso canale senza che i segnali si sovrappongano e interferiscano tra loro.
L’obiettivo è offrire un canale virtuale che sia affidabile e senza errori, questo nella realtà viene costruito su un canali fisici che però presentano limiti e problemi.
Tipi di canali:
- Simplex: La comunicazione è unidirezionale. (Si ha un’informazione ma non il feedback di ritorno). ES: telecomando e proiettore, uno trasmette e l’latro riceve senza feedback.
- Half-duplex:La comunicazione è bidirezionale, ma uno alla volta. ES: le radio che trasmettono o ricevono.
- Full-duplex: Si può trasmettere e ricevere contemporaneamente.
Gestione della trasmissione e del flusso
- Si deve regolare il flusso dei dati attraverso un protocollo; (CONTROLLO DEI FLUSSI)
- Bisogna determinare il percorso migliore per far arrivare il messaggio a destinazione; (ROUTING)
- L’ordine di arrivo dei messaggi deve essere uguale all’invio. Se i messaggi seguono strade diverse potrebbero arrivare in ordine diverso, in questo caso è necessario ordinarli in seguito, si dovrebbe assegnare un numero di sequenza anche se occupa spazio. (SEQUENZIAMENTO)
- I messaggi non possono avere una lunghezza arbitraria: se uso un sistema a dimensione fissa potrei sprecare spazio anche se più semplice da gestire, se non è a dimensione fissa è più efficiente ma devo trovare un modo per avvisare che la comunicazione è terminata.
Ci sono due modi per avvisare che la comunicazione è terminata:
- Si usano sequenza di bit o variazioni elettriche per far capire che non c’è più segnali.
- Si inserisce un campo all’inizio del messaggio che dichiara quanti byte seguono. Per trasmettere grandi quantità di dati, i protocolli non inviano un unico blocco monolitico, ma scompongono l’informazione in unità elementari chiamate pacchetti.
- Divisione informazioni: Ogni pacchetto è composto da una porzione di dati reali (payload) e da un’intestazione (header) che contiene le informazioni di controllo e routing.
- Vantaggi della suddivisione:
- Condivisione della banda: Più flussi di dati possono coesistere contemporaneamente senza che uno solo monopolizzi la rete.
- Eliminazione delle dipendenze: Ogni pacchetto può percorrere strade diverse; se uno viene perso, si ritrasmette solo quello e non l’intera comunicazione.
- Riduzione della latenza: Il destinatario può iniziare a elaborare i primi pacchetti mentre gli altri sono ancora in transito.
TIPI DI COMUNICAZIONE
La comunicazione può essere divisa in due categorie principali basate sulle modalità di connessione e sulla garanzia di consegna:
- CONNECTIONLESS E CONNECTION-ORIENTED
- Connectionless: Non richiede una fase preliminare, ogni messaggio è indipendente e non serve una connessione potente per mandare un messaggio.
- Connection-Oriented: Serve stabilire una connessione potente. Si sviluppa in tre fasi: Apertura, Comunicazione e Chiusura.
- Apertura: si stabilisce la connessione.
- Comunicazione: scambio dei dati.
- Chiusura: il protocollo deve gestire la fine della sessione. Meccanismo di Acknowledgment (ACK): In questi sistemi, il mittente si aspetta una risposta di conferma per ogni pacchetto inviato. Rimane in attesa finché non riceve l’ACK o finché non scade un timeout che segnala la perdita del pacchetto.
- AFFIDABILE E NON AFFIDABILE
- Affidabile: Si implementano dei meccanismi per garantire la consegna corretta.
- Non Affidabile: Il trasmettitore invia i dati “contro un muro”, ma non sa se l’informazione è arrivata o è andata persa, il ricevente non ha modo di segnalare le anomalie. Se si scambia la stessa informazione si deve fare in modo di riconoscere e capire che si tratta dello stesso tipo di informazione:
- Cronometro: io mando un messaggio, attivo un cronometro e se non arriva in tempo la risposta rimando la stessa informazione. Se il tempo del cronometro è troppo breve rischio di trasmettere inutilmente ,se troppo lungo resto bloccato in attesa di risposta.
- Riconoscimento dei duplicati: Si deve associare la risposta al messaggio, per poter distinguere se un messaggio ricevuto è un’informazione nuova o una copia di una precedente già arrivata. Ogni risposta deve essere legata univocamente al suo messaggio tramite numeri di sequenza. Senza questa si rischia di scambiare le risposte. RFC (request for comment): serve per standardizzare un protocollo, tutto ciò che riguarda con la comunicazione ha un RFC, ogni RFC ha un codice numerico associato. TIPI DI SERVIZI abbiamo 4 combinazioni:
| TIPO | AFFIDABILE | NON AFFIDABILE |
|---|---|---|
| Orientata alla connessione | È il massimo della sicurezza | Connessione senza garanzie. Si stabilisce un canale ma se si perde un pezzo non si recupera |
| Non Orientata | Si ha una “ricevuta” di ritorno per ogni messaggio. | Non si ha una conferma di arrivo. |
Modello OSI e TCP/IP
- Modello OSI: Composto da 7 livelli. È importante notare che alcuni dispositivi (come i ripetitori fisici) operano solo al livello fisico e non “vedono” i bit, ma solo i segnali elettromagnetici.
- Stack TCP/IP: Si concentra su 4 livelli principali: Application, Transport, Internet e Network Interface.
TYPES OF NETWORKS
ci sono diversi tipi di reti:
- Point to point :
- Simplex: Uno parla, l’altro ascolta (es. telecomando).
- Half-duplex: Uno alla volta (serve un protocollo per i turni).
- Full-duplex: Ognuno trasmette quando vuole su canali separati.
- Broadcast (shared bus): esiste un unico canale di comunicazione che viene condiviso da tutte le macchine connesse alla rete.
- Shared bus: Tutti ascoltano e tutti possono parlare. Il problema principale è la collisione del segnale, dove i segnali si sovrappongono e diventano indistinguibili.
- Ring: Le macchine sono separate; ognuna legge, elabora e riscrive il segnale per la successiva (ormai non si usa più).
- Star: C’è un concentratore centrale che riceve e riproduce i segnali per le macchine ai capi.
la differenza tra gli ultimi due è di affidabilità.
Il problema del broadcast è la collisione del segnale.
La tabella è ordinata dalla più piccola alla più grande:
- PAN (Personal area network): rete locale
- MAN (Metropolitan area network): raggiungono velocità elevate.
- WAN (Wide area network): reti ad ampia area.