Domanda

Mi chiedo come MSS si trova nel pacchetto SYN? E 'un valore fisso in un sistema operativo o il valore potrebbe essere cambiato nello stesso sistema operativo? So che il valore è diverso nei diversi sistemi operativi. Inoltre è il valore MSS in SYN relative alla configurazione hardware? Grazie.

È stato utile?

Soluzione

RFC 879 descrive come MSS è usato e specificato.

In breve, MSS è specificato durante TCP handshake via SYN. Tuttavia, questo valore può essere successivamente modificata dal sistema operativo stesso o impostando l'opzione di protocollo.

E 'possibile impostare l'opzione TCP_MAXSEG via setsockopt.

Altri suggerimenti

Whilst the value of MSS in SYN and SYNACK packets are set by the initiator and responder side, respectively, a widely used practice known as MSS clamping can result in the MSS being altered by a network element on the path - this is often used to reduce the MSS of all connections going over some sort of tunnelled link. For example PPPoE is commonly used on residential broadband and requires an MTU of 1492 and corresponding IPv4 MSS of 1452 so whilst the SYN may leave your machine with an MSS of 1460 (assuming you're using Ethernet with an MTU of 1500) but once it passes the MSS clamping ISP router the MSS in SYN packet will subsequently be changed to 1452, and likewise for the incoming/responder's SYNACK packet so the connection proceeds with reduced MSS of 1452. This practice seems to be used instead of Path MTU Discovery which relies upon the use of ICMP Fragmentation Needed responses from the network as these can be lost on poorly configured networks and by certain load balancing techniques.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top