Introduzione
In questo documento viene descritto il concetto e la configurazione della regolazione del valore MSS del protocollo TCP. Viene inoltre descritto il concetto di MTU (Maximum Transmission Unit) e viene spiegato come impedire le perdite di pacchetti sui siti Web con dimensioni maggiori.
Contributo di Richika Jain, Cisco TAC Engineer.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza del protocollo PPPoE (Point-to-Point over Ethernet).
Componenti usati
Le informazioni fornite in questo documento si basano sulle periferiche generiche.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Configurazione
L'MTU è la lunghezza massima dei dati che possono essere trasmessi da un protocollo in un'istanza. Ad esempio, la dimensione MTU di un'interfaccia Ethernet è di 1500 byte per impostazione predefinita, escludendo l'intestazione e la sequenza terminale del frame Ethernet, il che significa che l'interfaccia non può trasportare frame più grandi di 1500 byte.Questo diagramma visualizza questo concetto:
Se si guarda all'interno del frame, si nota un'intestazione IP di 20 byte + un'intestazione TCP di 20 byte, il rimanente 1460 byte, è un payload che può essere trasmesso in un frame. Questo valore è noto come TCP MSS.
Se non viene eseguito alcun incapsulamento aggiuntivo su un router in transito, il dispositivo di origine potrebbe usare la lunghezza massima del payload di 1460 byte senza alcun rischio potenziale di frammentazione/perdita dei pacchetti. Questa procedura viene negoziata al momento dell'handshake a tre vie TCP tra l'host di origine e quello di destinazione. Tuttavia, quando un router in transito esegue un'incapsulamento aggiuntivo, aggiunge un'intestazione di etichetta aggiuntiva che alla fine aumenta le dimensioni del frame che esce da un router in transito. La MTU massima di un'interfaccia dipende dalla piattaforma hardware, ma gli standard IEEE 802.3 richiedono una MTU minima di 1500 byte.
Il protocollo PPPoE richiede altri 8 byte e tronca l'MTU Ethernet a 1492. Se l'MTU effettiva sugli host non viene modificata, il router situato tra l'host e il server può terminare le sessioni TCP. Questo comando IP TCP ADJUST-MSS 1452 è consigliato nelle configurazioni PPPoE.
Se il dispositivo di origine crea un pacchetto a dimensioni intere con un valore TCP MSS di 1460 byte, è probabile che il router in transito scarti/frammenti il pacchetto. Ciò si ripercuote negativamente sulle prestazioni di rete, ad esempio quando si esplorano siti Web. Quindi, per supportare siti Web con pacchetti di dimensioni maggiori, è possibile ridurre le dimensioni massime possibili del parametro TCP MSS (come 1452 byte) dal dispositivo di origine. se il router non segnala l'origine e la destinazione al momento dell'handshake TCP, un valore TCP MSS ottimale potrebbe potenzialmente creare un problema di drop/frammentazione.
Il problema potrebbe non essere presente quando si esplorano tutti i siti Web, ma potrebbe essere visualizzato con alcuni siti Web. TIl motivo è che le dimensioni del pacchetto che crea per raggiungerli (a seconda dell'hardware che si trova nel mezzo). Se non si usa il comando ip tcp adjust-mss sui siti Web che creeranno pacchetti di dimensioni maggiori, tutti i pacchetti di dimensioni maggiori verranno scartati.
Per risolvere i problemi relativi all'esplorazione di alcuni siti Web, è necessario configurare il comando IP TCP ADJUST-MSS 1452 sull'interfaccia che punta all'interfaccia LAN.
1. Abilita
2. Configurare il terminale
3. Numero del tipo di interfaccia
4. Ip tcp adjust-mss max-segment-size // Regola il valore MSS dei pacchetti TCP SYN che passano attraverso un router. L'argomento max-segment-size è la dimensione massima del segmento espressa in byte. L'intervallo è compreso tra 500 e 1460.
5. Ip mtu byte // Imposta le dimensioni MTU dei pacchetti IP, in byte, inviati su un'interfaccia.
6. Fine
Verifica
Fare riferimento a questa sezione per verificare che la configurazione funzioni correttamente.
Passaggio 1.
Verificare la configurazione della regolazione TCP MSS.
interface ethernet1/1
ip address 10.0.0.1 255.0.0.0
ip tcp adjust-mss 1452
duplex half
Passaggio 2.
Telnet da router A a router B.
telnet 10.0.1.2
Trying 10.0.1.2...
TCP: sending SYN, seq 886170752, ack 0
TCP0: Connection to 1.0.1.2:23, advertising MSS 536
tcp0: O CLOSED 1.0.1.2:23 4.0.0.1:11008 seq 886170752
OPTS 4 SYN WIN 4128
Passaggio 3.
Osservare l'output del comando debug sul router B.
tcp0: I LISTEN 4.0.0.1:11008 1.0.1.3:23 seq 886170752
OPTS 4 SYN WIN 4128
TCP0: state was LISTEN -> SYNRCVD [23 -> 4.0.0.1(11008)]
TCP0: Connection to 4.0.0.1:11008, received MSS 1452, MSS is 1452
Il valore TCP MSS viene impostato sul valore configurato di 1452.
Risoluzione dei problemi
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.