Sei sulla pagina 1di 16

Rete Internet

Rete Internet

La rete Internet è una rete WAN, quindi una rete dislocata in territorio mondiale. I terminali sono chiamati host, i nodi
di commutazione sono invece chiamati router. La rete internet è stata introdotta e gestita dall’organismo IETF
(Internet Engineering Task Force), un organismo internazionale che ha emanato gli standard della rete Internet.

Servizio di rete
La funzione di multiplazione è dinamica con l’assegnazione a domanda delle risorse, l’asse dei tempi è di tipo
unslotted. La rete ha un basso GII e GTT. La funzione di commutazione è con attraversamento ad immagazzinamento
e rilancio. L’architettura protocollare è complessa, poiché Internet è costituita da una tecnologia eterogenea visto che
sfrutta le capacità di trasferimento di reti di TLC già esistenti.

 Architettura Protocollare dei Router

 Sottosistema IP (Internet Protocol):


Le funzionalità svolte sono:
 Indirizzamento e Scheduling (Multiplazione)
 Instradamento e attraversamento
(Commutazione)
 Frammentazione (non viene sempre eseguita)
Il sottosistema IP consente di “armonizzare” delle reti
TLC già esistenti che altrimenti non potrebbero
comunicare fra loro.

 Sottosistema di sottoreti
La rete internet sfrutta le risorse di trasferimento di reti di TLC già esistenti, per poterlo fare nel router devono essere
implementati i sottosistemi dei terminali delle sottoreti a cui è collegato sulle interfacce. Quindi, per ogni interfaccia
del router si ha un sottosistema di sottorete diverso. Devono sempre essere presenti le c.f. di tx/rx e di Delimitazione.

 Sottosistema PPP (Point to Point Protocol)

Se l’operazione di delimitazione non è implementata è


importante aggiungere un sottosistema PPP. La PDU del
sottosistema IP viene imbustata nel campo Information
della PPP-SDU; i campi di flag sono necessari per
delimitare la trama.

Negli anni la struttura ha subito dei cambiamenti perché si è cercato di migliorare la connessione dei router tramite
mezzi trasmissivi diretti (ex. fibra ottica), garantendo delle capacità di trasferimento molto alte e inserendo nel
sottosistema di sottorete un sottosistema per TX-RX e uno per la delimitazione.

 Architettura Protocollare degli Host


 Sottosistema di Trasporto
Il sottosistema di trasporto è presente solo negli host.
Possono essere erogate due tipologie di servizio di strato:
- Servizio di strato TCP - Trasport Control
Protocol: è un servizio con connessione molto
sofisticato. Svolge le c.f. di Indirizzamento
Applicativo, di Controllo di errore (Rilevazione e
Recupero d’Errore), di Controllo di Flusso, di
Risequenziamento e di Controllo di Congestione.
 Servizio di strato UDP - User Datagram
Protocol, è un servizio senza connessione, svolge
le c.f. di Indirizzamento Applicativo e di
Rivelazione d’Errore.
Le applicazioni di host diversi comunicano utilizzando una delle due
tipologie di strato. Laddove non sia richiesta una particolare qualità di
servizio rispetto a quella garantita dalla rete si sceglie il servizio UDP.

 Sottosistema IP
Il sottosistema IP deve svolgere la funzionalità di Indirizzamento di
Terminale (indirizzo di 32 bit rappresentabile mediante 4 interi) e la
funzionalità di Frammentazione.

 Sottosistema di Sottorete
Il sottosistema sfrutta le risorse di trasferimento della rete di TLC a cui
è collegato l’host per trasferire le UI verso il router di accesso. Sono
sempre presenti le c.f. di tx/rx e di Delimitazione.

Sottosistema IP
 Formato del datagramma IP

Un datagramma IP può avere una lunghezza


massima di 65 mila byte, è suddiviso in
gruppi di 4 byte riportati in colonna. Nel
campo Data è riportata la PDU del
sottosistema superiore di trasporto; tutti gli
altri campi costituiscono la parte di controllo,
che può essere chiamata (IP)-PCI, Header
IP, Etichetta IP e Intestazione IP.

 Il campo Version (4 bit) riporta in codice binario il numero della versione del protocollo IP

 Nel campo HLEN (Header Lenght) (4 bit) è riportata la lunghezza della PCI, compresa tra 20 Byte e 60 Byte, di
cui 40 Byte sono opzionali. Il campo indica il numero di parole (gruppi) di 32 bit (4 byte) presenti nella PCI, il
numero di parole deve essere compreso tra 5 (0101) e 15 (1111)
 Il campo Service Type (8 bit) permette agli utenti di richiedere particolari servizi di trasferimento. I bit 1,2,3
costituiscono il campo Precedenza, 000 indica la massima priorità. I bit 4,5,6,7 possono essere settati come segue:
se

sono impostati come 1000 l’utente chiede un servizio in cui venga minimizzato il ritardo di trasferimento; se sono
impostati come 0100 si chiede di massimizzare il Thoughput, ovvero il GII; se sono impostati come 0010 l’utente
chiede di massimizzare l’affidabilità del trasferimento (es seguire percorsi che coinvolgano reti affidabili); se sono
impostati come 0001 si chiede di minimizzare il costo monetario. Il bit 8 è sempre posto al valore 0.

 Il campo Total Lenght (di 16 bit) riporta la lunghezza totale del datagramma IP, ovvero dell’Header e del Data.
La lunghezza massima, circa 65 mila byte, è indicata con un campo di bit tutti pari ad 1.

 I campi Identification, Flag e Fragment Offset consentono di svolgere la funzionalità di Frammentazione.


La lunghezza delle (IP)-PDU può arrivare fino a 55 KB, ma l’imbustamento di una (IP)-PDU potrebbe non essere
supportato a causa della lunghezza notevole. In questi casi il sottosistema dell’host o del router svolge la c.f. di
frammentazione. La (IP)-SDU viene frammentata e i frammenti vengono inviati separatamente, vengono
riassemblati dall’host di destinazione che ricostituisce il datagramma originale. La c.f. di frammentazione avviene
tramite i campi Identification (16 bit), Flag (3 bit) e Fragment Offset (13 bit).
L’host di destinazione deve autorizzare i router a frammentare il datagramma nel caso in cui sia necessario.
Nel campo Flag il primo bit è settato sempre a 0, il secondo bit chiamato Don’t Fragment (DF) se settato al valore 1
indica ai router di non frammentare l’UI, nel caso in cui dovesse essere necessario il router procede scartando il
frammento e segnalando l’evento all’host emittente. Se la frammentazione è autorizzata il bit DF è settato a 0 e
avviene nel seguente modo:
1. Viene estratta la parte PCI Identification Flag (3 bit) Fragment Offset
2. La (IP)-SDU viene divisa in parti più piccole e (16 bit) 0 DF MF (13 bit)
imbustabili (campo data multiplo di 8 byte)
1. Ad ogni frammento viene aggiunta la parte (IP)-PCI, alcuni campi di controllo vengono copiati dalla PCI
originale, mentre altri, come i campi Identification, Flag e Fragment Offset, vengono settati per consentire
all’host di destinazione di riassemblare i frammenti.
Per riassemblare i frammenti l’host di destinazione deve essere in grado di capire quali appartengano allo stesso
datagramma, quale sia il loro ordine e quale sia l’ultimo frammento, per poter cominciare il processo di
assemblaggio. Per fare ciò l’host sfrutta questi tre campi:
 Nel campo Identification è riportato un valore comune a tutti i frammenti che identifica un particolare
datagramma IP.
 Il terzo bit di Flag, chiamato More Fragment (MF), viene settato a 0 se è l’ultimo frammento, 1 altrimenti.
Quindi l’operazione di assemblaggio inizia quando viene ricevuto il frammento con MF settato a 0.
 Nel campo Fragment Offset viene riportata la numerazione dei frammenti (numerazione della prima parola a
a 64 bit del (IP)-SDU contenuta nel segmento)

 Il campo Time to Live (8 bit) serve a risolvere eventuali errori di instradamento. L’(IP)-PDU quando viene inviata
segue un percorso di rete per raggiungere l’host di destinazione, ma potrebbero esserci dei problemi
nell’instradamento (es: l’(IP)-PDU vaga in modo indefinito nella rete). L’(IP)-PDU oltre a non raggiungere l’host
di destinazione, consumerebbe risorse di trasferimento senza effettuare un trasferimento utile. Risulta necessario
rimuovere l’(IP)-PDU dalla rete: il campo Time to Live viene impostato dall’host ad un certo valore che
rappresenta il numero massimo di router che potranno instradare il datagramma nel percorso di rete. Ogni
volta che un router riceve l’(IP)-PDU decrementa il campo di una unità, se il valore viene azzerato il datagramma
viene scartato. Solitamente il campo Time to Live viene impostato a 255 router (campo di tutti 1)

 Il campo Protocol (8 bit) codifica il protocollo del sottosistema di trasporto che dove elaborare il datagramma, se
il campo riporta il valore 6 / 17 / 1 allora deve essere svolto il protocollo TCP / UDP / ICMP

 Il campo Header Checksum (16 bit) trasporta i bit necessari affinché venga svolta la rilevazione d’errore sui bit
dell’header

 Nei campi Destination IP Address (4 byte) e Source IP Address (4 byte) sono riportati gli indirizzi IP dell’host
destinatario, necessario a svolgere l’operazione di indirizzamento di terminale, e dell’host emittente
 Internet Control Message Protocol (ICMP)

Il sottosistema ICMP si trova al di sopra del sottosistema IP e agisce quando devono essere elaborati dei messaggi
di controllo da parte della rete che codificano una situazione d’errore. Il router quando riscontra un datagramma
oggetto di errore deve scartarlo e notificare il fatto all’host emittente. Gli errori codificati sono:
 Errore di instradamento: il router nella tabella di instradamento non contiene le informazioni per inoltrare il
datagramma, il router scarterà il datagramma e avviserà l’host emittente.
 Azzeramento del Time to Live: quando il campo Time to Live viene azzerato, il router scarterà il
datagramma e avviserà l’host emittente
 Congestione: porta allo scarto del datagramma e alla notifica inviando il codice di errore.
In presenza di errori di questo tipo il sottosistema ICMP genera un messaggio di controllo in cui è codificato uno degli
eventi di errore e sfrutta il sottosistema IP per trasportare i messaggi di controllo verso l’host emittente.

Indirizzamento in Reti Internet


Le tecniche di indirizzamento in Internet sono state più volte ridefinite a causa dei problemi di esaurimento di indirizzi
IP. A ciascun host e ad ogni interfaccia di ciascun router è assegnato in modo temporaneo un indirizzo IP,
costituito da una sequenza di 32 bit. Gli indirizzi IP
sono unici in tutta la rete e vengono rappresentati in
notazione Dotted: I 32 bit vengono divisi in 4 gruppi di
8 bit, al posto di ciascun gruppo viene riportato un intero
(per un gruppo di tutti 1 viene riportato l’intero 255).

Gli indirizzi IP di host o interfacce di una stessa


sottorete sono assegnati in modo che siano consecutivi. Per avere tabelle di instradamento più corte e più facilmente
elaborabili lo spazio di indirizzamento di Internet venne diviso in blocchi di indirizzi e ad ogni sottorete venne
assegnato un blocco. I blocchi contengono indirizzi IP consecutivi: tutti gli indirizzi di un blocco contengono una
stringa di k bit chiamata Net-id (Network Identifier) o prefisso, che identifica il blocco, e una seconda stringa di h
bit chiamata H-id (Host Identifier), che identifica un host o un’interfaccia di un router (k + h = 32).
K bit H bit
 Facendo variare il campo Net Id si possono ottenere 2k blocchi. Net_Id Host_Id
 Ogni blocco ha un numero di indirizzi pari a 2h . 32 bit
 Gli indirizzi complessivi presenti nel campo di indirizzamento sono 2h · 2k = 2h+ k = 232.

In realtà non è possibile assegnare tutti gli indirizzi esistenti perché la stringa con tutti i bit settati ad 1 porta all’invio
di un messaggio di tipo broadcast nella sottorete; la stringa con tutti i bit settati a 0 non può essere associata a degli
Host.

Nella tabella di instradamento invece di riportare gli indirizzi di ogni host, viene riportato il Net-id del blocco a
cui appartiene l’host. L’instradamento avviene in questo modo: il router esamina il campo Destination IP Address
del datagramma IP, determina il Net-id del blocco al quale appartiene l’indirizzo e decide verso quale interfaccia
inoltrare il datagramma. A più indirizzi IP che appartengono allo stesso blocco corrisponde dunque la stessa
informazione d’indirizzo e lo stesso interfaccia del router.

 Assegnazione degli IP ai blocchi e classificazione


I blocchi possono essere di
dimensioni diverse, in base alle
diverse esigenze delle sottoreti:
alcune hanno bisogno di un numero
di indirizzi maggiore, quindi blocchi
più grandi; altre un numero minore,
quindi blocchi più piccoli. È
importante assegnare ad una
sottorete un blocco di indirizzi
opportuno, in modo tale che non
vengano sprecati degli indirizzi IP
che rimarrebbero inutilizzati. Si
divide l’intero spazio di
indirizzamento in blocchi di tre
possibili dimensioni.

I primi bit del Net-id sono sempre codificati ad un certo


valore per poter identificare i blocchi: 0 se di classe A, 1 0 se
di classe B, 1 1 0 se di classe C.
Il fatto che siano presenti solo tre possibili dimensioni per i
blocchi comporta comunque uno spreco di indirizzi IP, perché
bisogna assegnare pacchetti di minimo 256 indirizzi.
Quindi, l’organizzazione in blocchi ha portato ad una
semplificazione della tabella di instradamento dei router, ma
conduce comunque ad uno spreco di indirizzi IP.

 Subnetting

La tecnica del Subnetting risolvere la questione dello spreco di indirizzi IP. I blocchi di indirizzi vengono divisi
in sottoblocchi, di dimensioni diverse in base alle esigenze, e vengono assegnati alle sottoreti (ad un blocco è
assegnato un gruppo di sottoreti, ad ogni sottorete è assegnato un sottoblocco). Gli indirizzi IP sono quindi costituiti
da:

 Net-id relativo al blocco e costituito da H bit (classe A H = 8; B H = 16, C H = 24)


 Sub-id (Subnetwork Identification) relativo al sottoblocco e costituito da L i bit
 Host-id costituito da pi bit. Variando i pi bit si ottengono tutti i possibili indirizzi che appartengono al
sottoblocco, che sono quindi pari a 2 p .
i

H bit Li bit Pi =32-(H+Li)


bit
Net_id Sub_id Host_id

Il prefisso del sottoblocco i-esimo è costituito


dal Net-id e dal Sub-id. Solo i router che si
trovano al livello di accesso nella loro
tabella riportano le informazioni di
raggiungibilità dei singoli sottoblocchi. I
router non di accesso riportano le
informazioni di raggiungibilità del blocco
per contenere nella tabella un’informazione
aggregata.

 Indirizzo e Maschera dei Sottoblocchi


Nelle tabelle di instradamento gli indirizzi vengono riportati con due parole a 32 bit che rappresentano in maniera
equivalente il prefisso, ciò permette al router di compiere l’operazione di instradamento più semplicemente. Le due
parole a 32 bit sono chiamate Indirizzo e Maschera del sottoblocco:

1. L’indirizzo del sottoblocco si ottiene aggiungendo al prefisso una stringa di 32−(H +Li) bit pari a 0 (il campo
Host-id viene posto pari ad una stringa con i bit settati tutti al valore 0).
2. La maschera è una stringa di H +Li bit pari a 1
(lunghezza prefisso) e una stringa di 32−(H +Li) bit pari
a 0.

La lunghezza del prefisso H + Li bit è detta anche lunghezza


della maschera.

Il motivo per cui non è possibile assegnare come Host-id una


stringa di bit settati a 0, è proprio per il fatto che tale indirizzo
coincide con quello del sottoblocco.

Modalità di rappresentazione degli indirizzi dei sottoblocchi:

*notazione mista numerica e dotted



H bit Li bit
Net_Id.Sub_Id.Host_Id

2° Indirizzo Maschera
H bit Li bit 32-(H+Li) bit H+Li bit 32-(H+Li) bit
Net_Id Sub_Id 00…00 11…11 00…00

3° Indirizzo / lunghezza Maschera


H bit Li bit 32-(H+Li) bit
Net_Id Sub_Id 00…00 /(H+Li)

 Verifica dell’appartenenza di un indirizzo ad un sottoblocco

Il router per svolgere l’operazione di instradamento legge nel campo Destination IP Address l’indirizzo dell’host di
destinazione, quindi cerca nella tabella la riga di instradamento relativa al sottoblocco a cui appartiene quell’indirizzo.
Il router verifica l’appartenenza di un indirizzo Ind(H) ad un sottoblocco ( Ind(S) , Mas(S) ) tramite un AND
logico:

Ind ( H ) ∈ Sb ↔ Ind ( H )∧Mas(Sb)=Ind (Sb)

Un’operazione di AND logico tra due bit equivale a calcolare il prodotto dei due bit, nel caso di due sequenze esso
equivale a calcolare l’AND logico tra i bit in corrispondenza delle due sequenze. Un AND logico con una sequenza di
soli bit pari a 0 restituisce come risultato una sequenza di bit pari a 0.

Dimostrazione: Ind ( H ) ∈ Sb ↔ Ind ( H )∧Mas(Sb)=Ind (Sb)

1. Ind ( H ) ∈ Sb → Ind ( H )∧Mas(Sb)=Ind (Sb)


Ind ( H ) ∈ Sb → Ind ( H )=Prefix ( Sb ) a⏟
1 , a2 , … , a p k + p=32
k p
Prefix ( Sb ) a1 ,a 2 , ... , a p
1⋯1 0⋯0
Ind ( H )∧Mas ( Sb ) → Prefix ( Sb ) 0 … 0=Ind (Sb)
( )
Prefix Sb 0 ⋯ 0

2. Ind ( H )∧Mas( Sb)=Ind ( Sb ) → Ind ( H) ∈ Sb ,per assurdo:


Ind ( H ) ∉ Sb → Ind ( H )=x⏟ a⏟
1 , a2 , … , a p con x ≠ Prefix ( Sb ) , k + p=32
k p

x a1 , a2 ,... , a p
1 ⋯1 0 ⋯0
Ind ( H )∧Mas ( Sb ) → x 0 ⋯ 0 ≠ Ind ( Sb ) → Ind (H ) ∈ Sb
x 0⋯0

Tecniche di Subnetting
Bisogna determinare in modo ottimale le dimensioni del blocco di indirizzi (la classe) e la lunghezza del Sub-id, in
modo tale che ciò non porti a uno spreco di indirizzi IP. Questo problema si chiama Problema di Indirizzamento.
Esistono due possibili tecniche di subnetting:
1. Subnetting statico
2. Subnetting con maschera a lunghezza variabile

Subnetting statico
In un subnetting statico tutti i sottoblocchi hanno esattamente la stessa dimensione. Al sottoblocco sono assegnati
p
2 indirizzi costituiti da:
 H bit del Net-id del blocco
 L bit del Sub-id del sottoblocco
 P bit dell’Host-id (H + L + P = 32)
Tutti i prefissi del blocco, a prescindere dal sottoblocco a cui appartengono, hanno una lunghezza di H + L bit e quindi
le maschere dei sottoblocchi sono esattamente le stesse.
Il subnetting statico non è una tecnica ottimale a causa del vincolo che tutti i sottoblocchi devono essere delle stesse
dimensioni. Per determinare la dimensione dei sottoblocchi bisogna stabilire la lunghezza di Sub-id e dell’Host-id in
modo tale da soddisfare la richiesta della sottorete più grande.

Subnetting con maschera a lunghezza variabile


Il subnetting con maschera a lunghezza variabile permette di ripartire un blocco in sottoblocchi di dimensioni
diverse.
La lunghezza del Sub-id è pari a Li bit, dipende dal blocco i-esimo, e quella dell’Host-id è di P i bit. Le lunghezze dei
prefissi sono pari a H + Li, quindi la lunghezza delle maschere è variabile tra i sottoblocchi. Ogni sottoblocco ha un
numero di indirizzi IP pari a 2 P .
i

Il subnetting con maschera a lunghezza variabile permette di minimizzare il numero di indirizzi IP sprecati.

 Problema di indirizzamento con Subnetting con maschera a lunghezza variabile

Risolvere un problema di indirizzamento vuol dire capire se sia possibile a partire da un blocco, identificare dei
sottoblocchi da assegnare alle sottoreti tali che ciascuno contenga un numero di indirizzi che soddisfi le esigenze di
quella sottorete; bisogna poi determinare le dimensioni e i prefissi dei sottoblocchi (determinare le lunghezze delle
Sub-id(i), ovvero le Li (i=1,...,M).
Dati:
 M : numero di sottoreti
 N i: numero di indirizzi IP di cui ha bisogno la sottorete i-esima,i=1 , ..., M
 H : lunghezza in bit del prefisso del blocco (Net-id)
- H = 8, blocco di classe A
- H = 16, blocco di classe B
- H = 24, blocco di classe C
Problema:
1. Determinare se l’indirizzamento sia possibile
2. Determinare Li(i=1 , ..., M )
3. Determinare i prefissi Net-id.Sub-id(i) dei sottoblocchi Sbi assegnati alle sottoreti #i (
i=1 , ..., M ). Ciascun prefisso è rappresentabile dalla coppia di parole a 32 bit
( Ind( Sbi), Mas( Sbi) )
Un sottoblocco di indirizzi ha complessivamente 2 P indirizzi, tuttavia, due di questi indirizzi IP sono riservati (Host-id
i

costituita da tutti bit pari a 1 o a 0). Quindi, gli indirizzi assegnabili alle sottoreti sono 2 P −2.
i

1. Si calcola il numero di IP di cui ciascuna sottorete ha bisogno, ovvero la lunghezza dell’Host-id di ogni
sottorete:
Pi
Ovvero, determinare: Pi ,min tc:2 ≥ N i +2 ∀ i=1 , ... , M  Pi=log2 N i +2

2. La dimensione di un blocco è pari a 232−H . Se allora l’indirizzamento è possibile;


altrimenti l’indirizzamento non è possibile.

3. Se l’indirizzamento è possibile, si possono determinare le lunghezze dei Sub-id dei sottoblocchi:


Li=32−H−Pi
4. Si possono calcolare le lunghezze dei prefissi dei sottoblocchi:
Li + H=32−P i
5. Bisogna identificare le stringhe dei prefissi dei sottoblocchi, ovvero le stringhe Net-id.Sub-id(i):

Si costruisce un albero binario. La radice dell’albero rappresenta il blocco originario e ha come prefisso il
Net-id, i nodi dell’albero rappresentano i sottoblocchi. L’etichetta di un nodo corrisponde al prefisso del
sottoblocco. I nodi figlio sx e figlio dx rappresentano due sottoblocchi il cui prefisso è pari al prefisso del
padre con l’aggiunta di un bit pari a 0 (→ Net Id.0 - sx) e pari a 1 (→Net Id.1 - dx). Per determinare i prefissi
dei successivi sottoblocchi si applica la procedura in modo ricorsivo finché non si raggiunge una lunghezza
del prefisso pari a quella calcolata precedentemente. La dimensione del sottoblocco nodo figlio è esattamente
la metà di quella del sottoblocco nodo padre. Di conseguenza, la somma del numero di indirizzi assegnati ai
nodi figli è pari al numero di indirizzi del nodo padre. Facendo variare i valori del campo Host-id degli
indirizzi IP dei nodi figli si ottengono tutti e soli gli indirizzi IP del nodo padre: l’unione dei sottoblocchi figli
costituisce il sottoblocco padre. I nodi figli non hanno indirizzi in comune. Per determinare un prefisso di
lunghezza pari a H + Li, bisogna prendere uno dei nodi in corrispondenza dell’Li-esimo livello dell’albero.

 Tecnica CIDR

Verso la metà degli anni 90 si stavano esaurendo gli IP: erano stati impegnati il 100% degli indirizzi di classe A, il 36
% degli indirizzi di classe C e il 61,95 % degli indirizzi di classe B. Si prevedeva che in poco tempo sarebbero stati
esauriti anche i blocchi di classe B. Il problema fu risolto con l’introduzione della tecnica di indirizzamento CIDR
(Classless Inter Domain Routing) o tecnica di Supernetting.
Internet è una rete in area geografica mondiale organizzata in domini gestiti da un’unica organizzazione. I domini
sono chiamati Autonomous System (AS), ovvero un insieme di sottoreti, di router e di host interconnessi fra loro e
gestiti da un unico ente amministrativo o da uno stesso operatore di rete. I domini sono connessi tra loro mediante i
router.
L’organizzazione gerarchica aveva permesso di semplificare molto l’operazione di instradamento assegnando un
blocchi di indirizzi ad ogni sottorete. Successivamente, verso la metà degli anni 80, per evitare uno spreco di indirizzi
IP, si pensò di assegnare un unico blocco di indirizzi di dimensione opportuna (quasi sempre blocchi di classe B)
all’intero dominio e di assegnare un sottoblocco ad ogni sottorete.
La tecnica di Supernetting permette di superare l’indirizzamento per classi, ovvero il vincolo di assegnare un blocco
di una certa classe ad un dominio, e permette di assegnare ad un dominio un insieme di blocchi con prefissi
consecutivi di dimensioni più piccole. L’insieme dei blocchi di un dominio costituisce un macroblocco di indirizzi
e tutti gli indirizzi del macroblocco hanno lo stesso prefisso.
Si può quindi pensare di assegnare invece di un blocco di classe B un certo numero di blocchi di classe C con dei
prefissi consecutivi.

Alla fine degli anni 90 vennero riassegnati gli indirizzi IP dei blocchi di
classe C alle varie regioni geografiche, in modo tale che fossero
consecutivi. Tutti gli indirizzi assegnati a una certa zona geografica sono
rappresentabili mediante un unico prefisso di 7 bit.

Instradamento in Reti Internet


Un router può effettuare un instradamento diretto o indiretto. Il router deve svolgere un instradamento diretto
quando l’host destinatario si trova in una sottorete a cui lui è direttamente connesso. Viceversa, deve svolgere
un instradamento indiretto quando l’host si trova in una sottorete che non è collegata direttamente al router e
deve inoltrare il datagramma verso un router intermedio (solo l’ultimo svolgerà l’instradamento diretto).

 Instradamento diretto
Il router estrae l’indirizzo IP dal datagramma dal campo
Destination IP Address, consulta la tabella di instradamento e
capisce verso quale interfaccia inoltrarlo. Per consegnare il
datagramma IP il router attuare tutti i meccanismi funzionali
propri della sottorete: deve imbustare l’(IP)-PDU in una (LLC)-
PDU, imbustata a sua volta in una (MAC)-PDU in cui viene
inserito l’indirizzo MAC del terminale di destinazione. Quindi
trasmette la trama MAC. L’host di destinazione riceve il
datagramma, estrae la (MAC)-PDU ottenendo l’(LLC)-PDU e
infine l’(IP)-PDU.
Quindi, il router deve conoscere l’indirizzo fisico del terminale, ovvero l’indirizzo del terminale nella specifica rete
di TLC (es: se è una rete LAN, l’indirizzo fisico coincide con l’indirizzo MAC di 48 bit).
L’indirizzo MAC si ottiene tramite il protocollo ARP (Address Resolution Protocol), esso permette di determinare
l’inidrizzo fisico di un elemento di rete presente nella sottorete conoscendone l’indirizzo IP. Per ogni sottorete
viene definito un particolare protocollo ARP. Se il router non conosce l’indirizzo MAC dell’host di destinazione invia
una (MAC)-PDU Broadcast nella sottorete, in cui indica a tutti i terminali che è alla ricerca dell’indirizzo MAC del
terminale a cui corrisponde quel particolare indirizzo IP. L’host di destinazione riceverà la trama e risponderà
fornendo al router il suo indirizzo MAC. L’informazione viene riportata nella tabella ARP, in cui viene memorizzata
la corrispondenza tra indirizzo IP e indirizzo MAC.
Router: (IP)-PDU  (LLC)- PDU  (MAC)-PDU _ ARP: Indirizzo Mac dell’host
Host di destinazione: (MAC)-PDU  (LLC)- PDU  IP)-PDU

 Instradamento indiretto
Il router deve inoltrare il datagramma a un router
intermedio, affinché il datagramma sia consegnato al
router intermedio occorre attuare tutti i meccanismi
funzionali propri della sottorete che collega i due router.

Nella tabella di instradamento del router nel campo Next


Hop Router sono presenti le informazioni di
instradamento relative al router intermedio al quale
deve essere consegnato il datagramma IP. In
particolare, nella linea di instradamento dell’host, viene
riportato in una colonna specifica l’indirizzo IP del router intermedio verso cui instradare il datagramma. Il router
imbusta l’(IP)-PDU nella (LLC)-PDU, a sua volta imbustata nella (MAC)-PDU e infine trasmessa. L’indirizzo fisico
del router intermedio si determina sempre eseguendo il protocollo ARP. Il router intermedio riceve il datagramma ed
estrae l’(IP)-PDU.
Router: (IP)-PDU  (LLC)- PDU  (MAC)-PDU _ ARP: Indirizzo Mac del router intermedio
Router Intermedio: (MAC)-PDU  (LLC)- PDU  IP)-PDU

 Tabella di instradamento del router

Le tabelle possono essere impostate via software oppure possono essere determinate in maniera automatica tramite dei
protocolli di Routing che prevedono lo scambio di informazioni di controllo tra i router.
Quando un router deve effettuare un
instradamento esamina il campo Destination IP
Address del datagramma IP e controlla a quale
sottoblocco/ blocco/ macroblocco l’indirizzo
appartenga. È presente una colonna aggiuntiva,
Next Hop Router, grazie al cui contenuto il
router capisce se l’instradamento sia di tipo
diretto o indiretto. Se l’instradamento è diretto
nel campo Next Hop Router è presente
l’indirizzo 0.0.0.0; altrimenti l’instradamento è
indiretto e viene riportato l’indirizzo IP del
router intermedio (nella sottorete comune).
Se un indirizzo IP non appartiene a nessuno dei
sottoblocchi/blocchi/macroblocchi presenti
nella tabella di instradamento, si sceglie come riga di instradamento la riga di default, che ha indirizzo e maschera
costituiti dalle parole a 32 bit 0.0.0.0; nel campo Next Hop Router è inserito l’indirizzo del default router (è il router
verso cui viene inviato il traffico diretto ad una destinazione
non presente nella tabella di routing).

Nel caso in cui un indirizzo IP appartenga a più di un


sottoblocco/blocco/macroblocco si applica la regola del
Longest Prefix Matching: si sceglie la riga di
instradamento che ha una maschera più lunga, ovvero
relativa al sottoblocco di dimensione inferiore. Se la
lunghezza della maschera è la stessa, si sceglie in maniera
randomica una riga.

Anche gli host hanno tabelle di routing seppur con poche righe di
instradamento. La tabella permette di specificare con quale interfaccia accedere
ad internet, nel caso in cui sia collegato a più di una sottorete; permette di
specificare se l’instradamento sia diretto o indiretto e permette di indicare un
default router.

Sottosistema di Trasporto
Il sottosistema di trasporto è presente solo nei terminali e indipendentemente dal servizio di strato che offre svolge
sempre la c.f. di indirizzamento di applicativo. L’UI del sottosistema è chiamata (SS-T)-PDU, suddivisa in (SS-T)-
PCI e (SS-T)- SDU. Lo strato di trasporto eroga due diversi servizi di strato:
 Servizio di strato UDP: è un servizio senza connessione e prevede l’esecuzione delle c.f. d’Indirizzamento di
Applicativo e di Rivelazione d’Errore.
 Servizio di strato TCP: è un servizio con connessione che prevede
l’esecuzione delle c.f. di Indirizzamento Applicativo, di Controllo d’Errore
(rivelazione e recupero d’errore), di Risequenziamento, di Controllo di Flusso e
di Controllo di Congestione.

 Indirizzamento Applicativo in TCP/UDP


Nella (SS-T)-PCI viene inserito un identificativo dell’applicazione di destinazione, esso è chiamato Port Number
(numero di porta) ed è un intero rappresentato con una stringa di 16 bit. Esistono due tipi di port number:
• Statico (Well known port): sono identificativi associati a delle particolari applicazioni di internet e assegnati
dall’IETF. Vengono utilizzati identificativi minori di 256
• Dinamico (Ephemeral): il sistema operativo assegna i port number alle applicazioni quando inizia la connessione. Si
utilizzano valori di port number maggiori di 1023.

User Datagram Protocol (UDP)

Il servizio UDP è un servizio di strato senza connessione. Svolge le c.f. di


Indirizzamento Applicativo e di Rivelazione d’Errore. Viene scelto per la
comunicazione di applicazioni di breve durata (perché è senza connessione), per il
supporto di transazioni semplici tra applicativi (interrogazioni di database,
risoluzione di indirizzi o messaggi di management). La PDU si compone di due
parti: la SDU, il campo Data, che riporta i dati generati dall’applicazione, e la
parte PCI con i campi di controllo. Il campo Destination Port trasporta il port
number dell’applicazione di destinazione. Nel campo Source Port è riportato il
port number dell’applicazione che ha generato i dati. Il campo Lenght riporta la
lunghezza della PDU. Il campo Checksum trasporta il codice per la Rilevazione
d’Errore. Il codice viene valutato con una funzione applicata sulla (SS-T)-PDU
con l’aggiunta di ulteriori campi di bit presenti nel datagramma IP, in particolare Source e Destination IP Address,
Protocol, Header Lenght. Questo va contro il principio della stratificazione perché la valutazione del codice porta a
rendere dipendenti i sottosistemi IP e di trasporto.
Transport Control Protocol (TCP)

Il servizio TCP offre un servizio di strato con connessione. Le c.f. eseguite sono:
 Indirizzamento Applicativo
 Controllo d’Errore
 Controllo di Flusso
 Risequenziamento
 Controllo di Congestione
La PDU, chiamata segmento TCP, si compone di due
parti: la SDU, il campo Data, che riporta i dati generati
dall’applicazione, e la parte PCI con i campi di controllo.

I campi di 16 bit Source Port e Destination Port


trasportano i port number dell’applicazione emittente e di quella di destinazione.
Il campo Sequence Number di 32 bit trasporta il numero di sequenza del primo byte trasportato nel segmento, è
fondamentale per poter svolgere le c.f. di Risequenziamento e di Controllo d’Errore.
Il campo Window serve a svolgere la c.f. di Controllo di Flusso.

 Fase di instaurazione e di abbattimento della comunicazione


Essendo un servizio con connessione sono presenti le fasi di instaurazione, trasferimento e abbattimento.
Fase di instaurazione
Avviene uno scambio di segmenti di controllo (è presente solo
la parte PCI) tra le entità mediante un trasferimento indiretto. La
procedura di sincronizzazione avviene con meccanismo detto
“three way handshaking” (3 segmenti di controllo):

1. Una delle applicazioni invia la richiesta di inizio della comunicazione: invio del SYN segment
- Nel campo Code Bits il bit di SYN è settato al valore 1
- Nel campo Sequence Number è riportato il numero di sequenza a partire dal quale l’entità inizierà a
numerare i propri byte (nell’esempio con numero di sequenza x)
2. Accettazione dell’inizio della comunicazione: invio del SYN segment
- Nel campo Code Bits il bit di SYN è settato al valore 1
- Nel campo Code Bits il bit di ACK è settato al valore 1
- Il campo Aknowledgment Number trasporta il valore x+1 per comunicare all’altro host che ha acquisito
che il numero da cui inizierà a numerare i segmenti è il valore x
- Nel campo Sequence Number è riportato il valore y
3. Riscontro del messaggio: invio dell’ACK segment
- Nel campo Code Bits il bit di ACK è settato al valore 1
- Il campo Aknowledgment Number trasporta il valore y+1

Fase di abbattimento
Nella fase di abbattimento
le due vie di comunicazione vengono chiuse in modo
indipendente: quando una delle entità ha finito di trasmettere i
suoi byte manda dei segmenti di controllo all’altra in cui la
avvisa che ha concluso la trasmissione; quando anche l’altra avrà
terminato di mandare i propri dati chiuderà la sua connessione
sempre inviando un segmento di controllo.

1. Rettifica della fine della comunicazione:


- invio del FIN segmentNel campo Code Bits il bit di FIN è settato al valore 1
- Nel campo Sequence Number è riportato il numero dell’ultimo byte emesso nella fase di trasferimento
(nell’esempio con numero di sequenza x)
2. Riscontro del messaggio: invio dell’ACK segment
- Nel campo Code Bits il bit di ACK è settato al valore 1
- Il campo Aknowledgment Number trasporta il valore x+1

L’altro host quando avrà anche lui terminato la comunicazione manderà a sua volta il segmento di FIN, inserendo nel
campo Sequence Number l’ultimo byte trasferito nella fase di trasferimento (y); l’host risponderà con un segmento di
ACK con bit di ACK pari a 1 e con valore y + 1 nel campo Aknowledgment Number.

 Risequenziamento
La c.f. di risequenziamento consente all’entità dello strato TCP dell’host di destinazione di riordinare i segmenti
nel caso in cui l’ordine sia stato alterato dalla rete. Il campo Sequence Number riporta la numerazione dei segmenti
nell’ambito di una stessa connessione TCP, viene riportato il numero di sequenza del primo byte trasportato nel campo
Data.

 Controllo d’errore
Il controllo d’errore avviene in maniera simile a quello del servizio di strato LLC di tipo 2, nell’ambito della rete
LAN. Per svolgere la funzionalità si sfruttano i campi Sequence Number e Ackowledgment Number, entrambi di 32
bit.
In presenza di un segmento TCP caratterizzato da errore si innesca un meccanismo di riemissione da parte dell’entità
emittente. La c.f. si basa su:
 Numerazione dei segmenti: vengono numerati i byte della comunicazione e il campo Sequence Number riporta
il numero di sequenza del primo byte della comunicazione trasportato nel campo Data
 Riscontro dei segmenti: il destinatario dei segmenti provvede a riscontrare, anche in modo cumulativo, la
ricezione dei segmenti con un ACK. Il riscontro è indicato nel campo Aknowledgment Number di 32 bit:
quando il destinatario riceve correttamente tutti i byte che hanno un numero di sequenza a x setta il campo al
valore x+1
 Utilizzo di un timer

Rivelazione d’Errore
L’host di destinazione applicando una certa funzione valuta il codice di 16 bit inserito dall’emittente nel campo
Checksum. La funzione ha come argomento una stringa di bit costituita da tutti i bit presenti nel segmento TCP
(sia Data sia nei campi di controllo), la stringa comprende anche alcuni bit presenti nell’intestazione del datagramma
IP, contro il principio di stratificazione. Il destinatario valuta la stessa funzione sulla stringa di bit ricevuta e
confronta il suo risultato con il codice presente nel campo Checksum. Se corrispondono ipotizza che non sono
avvenuti errori e riscontra il messaggio, altrimenti scarta il segmento TCP.

Recupero d’Errore
Viene introdotto l’utilizzo di un timer nei riscontri per evitare situazioni di stallo, che possono verificarsi quando dei
segmenti TCP vengono persi dalla rete o vengono scartati dal destinatario:

Si consideri il k-esimo segmento TCP inviato: nell’istante in cui viene inviato viene inizializzato un timer ad un valore
chiamato RTO (Retrasmission Time Out), alla scadenza dell’RTO se non è stato ricevuto un riscontro l’entità
emittente provvede a ritrasmettere il segmento k-esimo. L’RTO deve essere dimensionato in modo opportuno: il
suo valore dipende dal segmento k-esimo ed è calcolato in relazione all’RTT (Round Trip Time), ovvero “tempo di
andata e ritorno”. L’RTT è il tempo che intercorre dal momento in cui viene inviato un segmento a quello in cui
viene ricevuto il suo riscontro (ipotizzando che non sia possibile fare riscontri cumulativi). L’RTT di un segmento
non è quantità fissa, ma varia tra i segmenti di una stessa comunicazione perché include i ritardi di trasferimento della
rete, i quali possono variare essendo la multiplazione dinamica in Internet con contese di utilizzazione con ritardi
variabili.
L’RTO deve essere dimensionato in modo opportuno: se si dimensiona l’RTO troppo piccolo rispetto l’RTT si rischia
di non dare tempo al segmento e al suo riscontro di propagarsi; se si dimensiona l’RTO troppo grande rispetto l’RTT
si rischia di ritardare eccessivamente la trasmissione in presenza di un errore sul segmento originario.

Una procedura per calcolare l’RTO del k-esimo segmento prevede di fissarlo al valore RTO(k)=βSRTT (k ) ( β=2),
dove SRTT ( k ) è una stima dell’ RTT ( k ) . La stima si basa sugli RTT dei segmenti precedenti, ad esempio misurando
per la stima del segmento k-esimo gli RTT (1) , RTT (2) , ..., RTT (k−1).

PROCEDURA DI STIMA:

La media degli RTT non viene scelta come stima perché essa dà lo stesso peso agli RTT di tutti i segmenti, ma le
informazioni più affidabili sullo stato della rete riguardano gli ultimi segmenti inviati. Sul primo segmento non
possono essere effettuate stime dell’RTT. La seguente procedura permette di dare maggior peso agli RTT dei
segmenti inviati per ultimi: (α = 0, 9)

 SRTT ( 2 )=RTT (1)


 SRTT (3)=αSRTT (2)+(1−α ) RTT (2)=αRTT (1)+(1−α) RTT (2)
 SRTT (4 )=αSRTT (3)+(1−α ) RTT (3)=α 2 RTT (1)+α (1−α) RTT (2)+(1−α ) RTT (3)
 SRTT (5 )=αSRTT ( 4 )+ ( 1−α ) RTT ( 4 )=α 3 RTT (1)+ α 2(1−α) RTT (2)+(1−α )RTT (3)+(1−α ) RTT ( 4)
 …..
 SRTT ( k )=αSRTT ( k −1 )+ ( 1−α ) RTT ( k −1 )
Nella formula generale si ottiene:
k−2
RTT ( 1 ) +( 1−α) ∑ α
k−2 k−h−2
SRTT ( K )=α RTT ( h+1)
h=1

La procedura funziona quando non avvengono ritrasmissioni a causa di eventuali scadenze di timer. Quando viene
ritrasmesso un segmento, non si possono valutare RTT affidabili perché c’è un’ambiguità nell’interpretare a quale
segmento appartenga l’ACK ricevuto (quello originario o quello ritrasmesso). Potrebbero essersi verificati due eventi:
- Il segmento è stato perso, quindi l’ACK è relativo al segmento ritrasmesso.
- Il segmento ha subito un ritardo maggiore di quello che ci si aspettava, ovvero maggiore dell’RTO stimato
L’algoritmo di Karn stabilisce come aggiornare l’RTO quando si verificano delle ritrasmissioni. Per i segmenti
ritrasmessi il valore dell’RTO è aggiornato secondo la formula:
RT O i+1 ( k )=q × RT Oi (k )
dove l’ RT Oi+1 ( k ) rappresenta l’RTO associato alla i+1-esima copia di un segmento ritrasmesso. Ogni volta che il
segmento viene ritrasmesso si aumenta di q volte l’RTO della copia trasmessa precedentemente.

 Controllo di Congestione
La c.f. di Controllo di Congestione ha lo scopo di regolare il ritmo binario di emissione in accordo alle
potenzialità della rete, in particolare dei router. Si basa sull’applicazione di meccanismi di tipo proattivo, ovvero di
tipo preventivo in quanto i terminali devono far si che i router non raggiungano uno stato di congestione, e di tipo
reattivo: qualora un router dovesse essere in uno stato di congestione l’host abbassa il ritmo di emissione.

 Controllo di Flusso
La c.f. di controllo di flusso ha lo scopo di limitare il ritmo binario d’emissione dell’emittente in accordo alle
potenzialità di chi riceve. Un host emittente è vincolato ad emettere un numero massimo di byte, tale numero è
stabilito dall’host destinatario che attua la c.f. di controllo di flusso.
Il controllo di flusso viene attuato con il riscontro dei segmenti TCP ricevuti: l’host ricevente riscontra i byte ricevuti e
fornisce all’entità emittente l’autorizzazione a trasmetterne ulteriori. Per far ciò sfrutta il campo Window di 16 bit, che
riporta il numero massimo di byte che l’emittente può inviare.
Se il campo Aknowledgment Number = A e Window = W, l’host emittente è autorizzato a trasmettere tutti i byte con
numero di sequenza contenuto nell’intervallo [A, A + W − 1]. L’insieme dei numeri di sequenza dei byte che
l’emittente è autorizzato a trasmettere è chiamato finestra; W è detta dimensione della finestra. Maggiore è la
dimensione della finestra e più alto sarà il ritmo binario di emissione dell’host emittente. Il valore iniziale della
dimensione della finestra viene contrattato all’inizio nella fase di instaurazione della connessione TCP (per entrambe
le direzioni si stabilisce una dimensione di finestra).
Nel corso di una comunicazione il valore di W può cambiare: se il ricevente sta esaurendo la capacità di elaborazione
può abbassare il valore di W e quindi diminuire il ritmo binario d’emissione dell’emittente; viceversa, quando ha
maggiori capacità di elaborazione può incrementare W, aumentando il ritmo binario d’emissione dell’emittente.
Esempio:

Sul lato sinistro si trova l’host emittente e sul destro quello di destinazione. È stata instaurata una connessione TCP in cui l’host
emittente inizia a numerare i byte a partire del numero di sequenza 1001 ed è stata concordata una dimensione di finestra iniziale
pari a 1400 ottetti (W = 1400); quindi la finestra è pari all’intervallo [1001 ; 2400]. Quando l’entità emittente trasmette un
segmento non deve emettere per forza tutti i byte della finestra.
Nell’esempio l’emittente invia due segmenti di 200 (con SN = 1001) e 400 byte (con SN = 1201) e si ferma; quindi, sono state
utilizzate le autorizzazioni che vanno da 1001 a 1600. Successivamente riprende l’emissione, inviando due segmenti entrambi di
200 byte (SN [1601 ; 1800] e SN [1801 ; 2000] ); quindi, sono state utilizzate le autorizzazioni con numeri di sequenza da
1001 a 2000. L’emittente ha a disposizione ancora 400 autorizzazioni.
L’host ricevente riceve i primi due segmenti (da 1001 a 1600) e li riscontra in modo cumulativo inserendo AN = 1601. Inoltre,
concede delle ulteriori autorizzazioni con una dimensione di finestra pari a 1000. Se W = 1000, l’host emittente è autorizzato a
trasmettere tutti i byte che vanno da A = 1601 a A+W −1 = 2600 (l’host emittente ottiene ulteriori 200 autorizzazioni perché
l’estremo superiore della finestra si sposta da 2400 a 2600). Quindi l’host emittente ha a in totale 600 autorizzazioni non utilizzate,
con numeri di sequenza da 2001 a 2600.
L’host emittente manda 3 segmenti di 200 byte (con SN = 2001, 2201, 2401) e l’host di destinazione li riscontra con AN = 2601 e
con W = 1400, che porterà ad avere 1400 autorizzazioni che andranno da 2601 a 4000. (1400 ottetti).

Modello per la valutazione della portata normalizzata


I parametri in funzione dei quali si vuole esprimere la portata normalizzata sono:
 R: capacità di accesso dell’host alla rete internet (b/s) (ritmo binario di picco di emissione)
 RTT: Round Trip Time
 W: dimensione della finestra (byte)
Gli indici di prestazione che si vogliono valutare sono:
 P portata: ritmo binario medio di emissione (b/s); P ≤ R
 S portata normalizzata: S = P/R ≤ 1. La portata è normalizzata rispetto al valore della capacità di
trasferimento R del collegamento con cui l’host emittente accede alla rete Internet.
Ipotesi di studio:
 Assenza di errori e perdite di segmenti TCP e di ACK
 Invio di ACK immediato per ciascun segmento TCP ricevuto (no riscontri cumulativi)
 Segmenti TCP della stessa lunghezza pari a Z byte
 W è multipla di Z
L’host emittente invia W / Z segmenti ognuno di Z byte fino ad esaurire le sue autorizzazioni, ovvero fino ad aver
inviato W byte. Ogni volta che l’emittente riceve un messaggio di ACK può inviare ulteriori Z byte. Con queste
ipotesi di studio l’emissione risulta essere periodica: in ogni intervallo di tempo pari a RTT l’emittente invia W
byte.

{ {
8W 8W R × RTT 8W R × RTT
, per < R →W < ,W <
P ()
b
s
= RTT RTT
R , per W ≥
R × RTT
8 P
→ S= = R × RTT
R
1, W ≥
R × RTT
8

8 8

La portata normalizzata di una connessione dipende dalla dimensione della finestra, dal Round Trip Time e dal bit rate
(R). Per valori di finestra abbastanza bassi, la portata aumenta all’aumentare della finestra in modo lineare, quindi, in
queste circostanze viene attuato un controllo di flusso. Quando la portata raggiunge il valore della capacità R
(W = 65535 byte valore massimo della dimensione di finestra) l’emissione avviene alla velocità massima e non viene
attuato un controllo di flusso:

Si può studiare la variazione della portata normalizzata in funzione del parametro


R × RTT
(quantità massima di byte che possono essere presenti nella rete), ovvero
2
il prodotto banda-ritardo:
R × RTT
- Quando ≤ 4 W non sta avvenendo un controllo di flusso e S=1
2
R × RTT
- Quando > 4 W , la portata è inversamente proporzionale a
2
R × RTT
2

In una connessione in cui prodotto banda-ritardo è superiore a 4W non si riesce a


sfruttare tutta la capacità di accesso nonostante magari il destinatario non stia effettuando un controllo di
flusso, dunque con dei prodotti banda-ritardo molto grandi si rischia di sottoutilizzare la capacità messa a
disposizione. (Se la quantità massima di byte che possono essere presenti nella rete è molto maggiore della finestra si
ha una sottoutilizzazione della capacità del canale pichè la sorgente deve aspettare gli ACK di ogni finestra prima di
poter trasmettere la successiva)

Potrebbero piacerti anche