Passa al contenuto principale

5.4. Packetization Layer Actions (Azioni del livello di pacchettizzazione)

Un livello di pacchettizzazione (ad esempio, TCP) deve utilizzare la PMTU per i percorsi in uso da una connessione; non dovrebbe inviare segmenti che comporterebbero pacchetti più grandi della PMTU, tranne per sondare durante la PMTU Discovery (questo pacchetto di sonda non deve essere frammentato alla PMTU). Un'implementazione semplice potrebbe chiedere al livello IP questo valore ogni volta che crea un nuovo segmento, ma questo potrebbe essere inefficiente. Un'implementazione tipicamente memorizza nella cache altri valori derivati dalla PMTU. Potrebbe essere più semplice ricevere una notifica asincrona quando la PMTU cambia, in modo che anche queste variabili possano essere aggiornate.

Un'implementazione TCP deve anche memorizzare il valore Maximum Segment Size (MSS) ricevuto dal suo peer, che rappresenta l'EMTU_R, il pacchetto più grande che può essere riassemblato dal ricevitore, e non deve inviare alcun segmento più grande di questo MSS, indipendentemente dalla PMTU.

Il valore inviato nell'opzione TCP MSS è indipendente dalla PMTU; è determinato dal limite di riassemblaggio del ricevitore EMTU_R. Questo valore dell'opzione MSS viene utilizzato dall'altra estremità della connessione, che potrebbe utilizzare un valore PMTU non correlato. Vedere la Sezione 5, "Packet Size Issues", e la Sezione 8.3, "Maximum Upper-Layer Payload Size", di [RFC8200] per informazioni sulla selezione di un valore per l'opzione TCP MSS.

La ricezione di un messaggio Packet Too Big implica che un pacchetto è stato scartato dal nodo che ha inviato il messaggio ICMPv6. Un protocollo di livello superiore affidabile rileverà questa perdita con i propri mezzi e la recupererà con i suoi normali metodi di ritrasmissione. La ritrasmissione potrebbe comportare un ritardo, a seconda del metodo di rilevamento della perdita utilizzato dal protocollo di livello superiore. Se il processo di Path MTU Discovery richiede diversi passaggi per trovare la PMTU del percorso completo, questo potrebbe ritardare notevolmente la ritrasmissione di molti tempi di andata e ritorno.

In alternativa, la ritrasmissione potrebbe essere effettuata in risposta immediata a una notifica che la Path MTU è stata diminuita, ma solo per la connessione specifica specificata dal messaggio Packet Too Big. La dimensione del pacchetto utilizzata nella ritrasmissione non dovrebbe essere maggiore della nuova PMTU.

Nota: Un livello di pacchettizzazione che determina che un pacchetto di sonda è perso deve adattare la dimensione del segmento della ritrasmissione. Tuttavia, l'uso della dimensione riportata nell'ultimo messaggio Packet Too Big può portare a ulteriori perdite poiché potrebbero esserci limiti PMTU più piccoli ai router più avanti lungo il percorso. Ciò comporterebbe la perdita di tutti i segmenti ritrasmessi e quindi causerebbe una congestione non necessaria oltre a pacchetti aggiuntivi da inviare ogni volta che un router annuncia una MTU più piccola. Qualsiasi livello di pacchettizzazione che utilizza la ritrasmissione è quindi anche responsabile del controllo della congestione delle sue ritrasmissioni [RFC8085].

Una perdita causata da una sonda PMTU indicata dalla ricezione di un messaggio Packet Too Big non deve essere considerata come una notifica di congestione, e quindi la finestra di congestione potrebbe non cambiare.