# Mida màxima del segment

La mida màxima del segment (MSS) és un paràmetre del camp Opcions de la capçalera TCP que especifica la quantitat més gran de dades, especificada en bytes, que un ordinador o dispositiu de comunicacions pot rebre en un únic segment TCP. No compta la capçalera TCP ni la capçalera IP (a diferència, per exemple, de la MTU per als datagrames IP).  El datagrama IP que conté un segment TCP pot ser autònom dins d'un sol paquet, o es pot reconstruir a partir de diverses peces fragmentades; de qualsevol manera, el límit MSS s'aplica a la quantitat total de dades contingudes al segment TCP reconstruït final.
Per evitar la fragmentació a la capa IP, un amfitrió ha d'especificar la mida màxima del segment igual al datagrama IP més gran que l'amfitrió pot gestionar menys les mides de la capçalera IP i TCP. Per tant, els hosts IPv4 han de poder gestionar un MSS de 536 octets (= 576 - 20 - 20) i els hosts IPv6 són capaços de gestionar un MSS de 1220 octets (= 1280 - 40 - 20).
Els valors MSS petits reduiran o eliminaran la fragmentació de la IP, però donaran lloc a una sobrecàrrega més gran.
Per a la majoria dels usuaris d'ordinadors, l'opció MSS l'estableix el sistema operatiu.
La mida de les opcions TCP (variable 0–320 bits, en unitats de 32 bits) s'ha de deduir de la mida MSS si les opcions TCP estan habilitades. Per exemple, els segells de temps TCP estan habilitats per defecte a les plataformes Linux.

## Valor per defecte

La mida màxima del segment TCP per defecte per a IPv4 és 536. Per a IPv6 és 1220.  Quan un amfitrió vol establir la mida màxima del segment en un valor diferent del predeterminat, la mida màxima del segment s'especifica com a opció TCP, inicialment al paquet TCP SYN durant l'enllaç TCP. El valor no es pot canviar un cop establerta la connexió.

## Comunicació entre capes

Per notificar MSS a l'altre extrem, es fa una comunicació entre capes de la següent manera:
* El controlador de xarxa (ND) o la interfície hauria de conèixer la unitat de transmissió màxima (MTU) de la xarxa connectada directament.
* La IP hauria de demanar al controlador de xarxa la unitat de transmissió màxima.
* El TCP hauria de demanar a la IP la mida màxima de dades del datagrama (MDDS). Aquesta és la MTU menys la longitud de la capçalera IP (MDDS = MTU - IPHdrLen).
* En obrir una connexió, TCP pot enviar una opció MSS amb el valor igual a: MDDS - TCPHdrLen. En altres paraules, el valor MSS a enviar és: MSS = MTU - TCPHdrLen - IPHdrLen
Mentre s'envien segments TCP a l'altre extrem, es fa una comunicació entre capes de la següent manera:
* TCP hauria de determinar la mida màxima de dades del segment (MSDS) a partir del valor predeterminat o rebut de l'opció MSS.
* TCP hauria de determinar si la fragmentació de la font és possible (demanant la IP) i desitjable.
** Si és així, TCP pot lliurar segments a IP (inclosa la capçalera TCP) fins a MSDS + TCPHdrLen.
** Si no, TCP pot lliurar a IP, segments (inclosa la capçalera TCP) fins al menor de (MSDS + TCPHdrLen) i MDDS.
* IP comprova la longitud de les dades que li passa TCP. Si la longitud és inferior o igual a MDDS, IP adjunta la capçalera IP i la lliura a l'ND. En cas contrari, la IP ha de fer la fragmentació de la font.

## MSS i MTU

MSS de vegades es combina amb MTU/PMTU, que és una característica de la capa d'enllaç subjacent, mentre que MSS s'aplica específicament a TCP i, per tant, a la capa de transport. Els dos són similars perquè limiten la mida màxima de la càrrega útil transportada per la seva unitat de dades de protocol respectiva (marc per a MTU, segment TCP per a MSS), i estan relacionats ja que MSS no pot superar la MTU del seu enllaç subjacent (tenint en compte la sobrecàrrega). de qualsevol capçalera afegida per les capes sota TCP). No obstant això, la diferència, a més d'aplicar-se a diferents capes, és que MSS pot tenir un valor diferent en qualsevol direcció i també que les trames que superen la MTU poden provocar que els paquets (que encapsulen segments) es fragmentin per la capa de xarxa, mentre que els segments que superen la MTU. els MSS simplement es descarten.

## Referències

* ↑ «https://www.cloudflare.com/learning/network-layer/what-is-mss/» (en anglès). [Consulta: 14 novembre 2023].
* ↑ «Why is the TCP MSS (Maximum Segment Size) 1460 bytes?» (en anglès). [Consulta: 14 novembre 2023].
* ↑ «How to calculate Maximum Segment Size in TCP?» (en anglès americà), 02-10-2021. [Consulta: 14 novembre 2023].
* ↑ «Maximum Segment Size (MSS)» (en anglès). [Consulta: 14 novembre 2023].