12. Campi dell'intestazione IP (IP Header Fields)
Questa sezione descrive come il server imposta vari campi nell'intestazione IP durante il relay tra il client e il peer, o viceversa. Le descrizioni in questa sezione si applicano a (a) quando il server invia un datagramma UDP a un peer, o (b) quando il server invia un'indicazione Data o un messaggio ChannelData al client su un trasporto UDP. Le descrizioni in questa sezione non si applicano ai messaggi TURN inviati dal server al client su un trasporto TCP o TLS.
Le descrizioni seguenti sono divise in due comportamenti: un comportamento preferito e un comportamento alternativo. Un server DOVREBBE (SHOULD) implementare il comportamento preferito. Tuttavia, se questo non è possibile per un particolare campo, allora DOVREBBE (SHOULD) implementare il comportamento alternativo.
Campo Time to Live (TTL)
-
Comportamento preferito: Se il valore in entrata è 0, scartare il pacchetto in entrata. Altrimenti, impostare il Time to Live/Hop Count in uscita a uno in meno rispetto al valore in entrata.
-
Comportamento alternativo: Impostare il valore in uscita al valore predefinito per i pacchetti in uscita.
Campo Differentiated Services Code Point (DSCP) [RFC2474]
-
Comportamento preferito: Impostare il valore in uscita al valore in entrata, a meno che il server includa un Differentiated Services Classifier and Marker [RFC2474].
-
Comportamento alternativo: Impostare il valore in uscita a un valore fisso, che per impostazione predefinita è Best Effort, ma può essere configurabile.
-
In entrambi i casi, se il server è immediatamente adiacente a un Differentiated Services Classifier and Marker, allora nella direzione verso il classificatore, il DSCP PUÒ (MAY) essere impostato a qualsiasi valore arbitrario.
Campo Explicit Congestion Notification (ECN) [RFC3168]
-
Comportamento preferito: Impostare il valore in uscita al valore in entrata, a meno che il server non stia effettuando Active Queue Management, nel qual caso il campo ECN in entrata è impostato su ECT(1) (=0b01) o ECT(0) (=0b10) e il server desidera indicare che è stata sperimentata congestione, nel qual caso impostare il valore in uscita su CE (=0b11).
-
Comportamento alternativo: Impostare il valore in uscita su Not-ECT (=0b00).
Campi di frammentazione IPv4
-
Comportamento preferito: Quando il server invia un pacchetto a un peer in risposta a un'indicazione Send che contiene l'attributo DONT-FRAGMENT, impostare il bit DF nell'intestazione IP in uscita a 1. In tutti gli altri casi quando si invia un pacchetto in uscita contenente dati dell'applicazione (ad esempio, indicazione Data, messaggio ChannelData, o un'indicazione Send senza l'attributo DONT-FRAGMENT), copiare il bit DF dal bit DF del pacchetto in entrata che conteneva i dati dell'applicazione.
Impostare gli altri campi di frammentazione (Identification, More Fragments, Fragment Offset) come appropriato per un pacchetto inviato dal server.
-
Comportamento alternativo: Come in Preferito, tranne che si assume sempre che il bit DF in entrata sia 0.
-
Sia nel comportamento Preferito che Alternativo, il pacchetto risultante può essere troppo grande per il collegamento in uscita. Se questo è il caso, si applicano le normali regole di frammentazione [RFC1122].
Opzioni IPv4
-
Comportamento preferito: Il pacchetto in uscita viene inviato senza alcuna opzione IPv4.
-
Comportamento alternativo: Uguale al Preferito.