MSS, ou tamanho máximo do segmento, é a maior carga de dados que um dispositivo aceitará de uma conexão de rede.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
O MSS (tamanho máximo do segmento) limita o tamanho dos pacotes, ou pequenos pedaços de dados, que trafegam em uma rede, como a internet. Todos os dados que trafegam em uma rede são divididos em pacotes. Os pacotes têm vários cabeçalhos anexados a eles que contêm informações sobre seu conteúdo e destino. O MSS mede a parte que não é cabeçalho de um pacote, que é chamada de carga.
Se um pacote de dados for comparado a um caminhão de transporte, com o cabeçalho sendo o próprio caminhão e a carga sendo a carroceria e a carga, então o MSS é como uma balança que mede apenas a carroceria. Se a carroceria pesar muito, o caminhão não poderá continuar até seu destino.
Mais especificamente, o MSS é o maior tamanho de segmento de TCP (Protocolo de Controle de Transmissão) que um dispositivo conectado à rede pode receber. O MSS define o "segmento" como apenas o comprimento da carga, sem qualquer cabeçalho anexado. O MSS é medido em bytes.
O MSS é determinado por outra métrica que tem a ver com o tamanho do pacote: a MTU, ou a unidade máxima de transmissão, que inclui os cabeçalhos TCP e IP (Protocolo da internet). Para continuar a analogia, a MTU mede o peso total do caminhão e sua carroceria e carga, em vez de apenas a carroceria e a carga.
Essencialmente, o MSS é igual a MTU menos o tamanho de um cabeçalho TCP e um cabeçalho IP:
MTU - (cabeçalho TCP + cabeçalho IP) = MSS
Uma das principais diferenças entre a MTU e o MSS é que, se um pacote exceder a MTU de um dispositivo, ele será dividido em pedaços menores ou "fragmentado". Por outro lado, se um pacote exceder o MSS, ele será descartado e não entregue.
O Protocolo de Controle de Transmissão, ou TCP, é um protocolo que garante que os pacotes de dados sejam entregues e recebidos em ordem, sem pacotes descartados. Imagine se os serviços de entrega de encomendas ligassem para todos os destinatários de encomendas com antecedência para garantir que eles estariam em casa em um determinado horário antes de entregar os pacotes e, em seguida, enviassem uma mensagem de volta ao remetente para confirmar que foram entregues. O TCP funciona mais ou menos assim, com pacotes de dados como as "encomendas" sendo entregues.
O TCP funciona abrindo uma conexão entre os dois dispositivos que estão se comunicando por meio de um processo chamado handshake TCP. O MSS é acordado durante o handshake TCP: ambos os dispositivos comunicam o tamanho dos pacotes que podem receber (isso pode ser chamado de "fixação de MSS"; veja abaixo). O TCP adiciona um cabeçalho a todos os pacotes para indicar de qual conexão aberta cada pacote faz parte e em que ordem os pacotes seguirão.
Os cabeçalhos TCP têm quase sempre 20 bytes* de comprimento. Os cabeçalhos IP incluem informações como o endereço de IP de origem e de destino e também têm 20 bytes de comprimento. Os pacotes TCP e IP incluem campos de cabeçalho opcionais que podem tornar os cabeçalhos mais longos, mas quase nunca são usados.
*Na ciência da computação, um byte é uma unidade de tamanho de memória que representa oito dígitos binários; em outras palavras, uma combinação de oito uns e zeros.
Suponha que um roteador de rede tenha uma MTU de 1.500, o que significa que só aceita pacotes de até 1.500 bytes. (Pacotes mais longos serão fragmentados.) Como deve ser definido o MSS do roteador?
MTU - (cabeçalho TCP + cabeçalho IP) = MSS
1.500 - (20 + 20) = 1.460
O MSS do roteador deve ser definido para 1.460 bytes. Os pacotes com um tamanho de carga maior que 1.460 bytes serão descartados. (Um dispositivo pode enviar um pacote excessivamente grande como este por engano se não estiver ciente das configurações de MTU e MSS dos roteadores entre ele e outro dispositivo. Um processo chamado descoberta de caminho MTU ajuda a evitar tais incidentes).
IPsec (protocolo de segurança da internet) é a versão criptografada do IP. Os pacotes de dados enviados usando IPsec são embaralhados para que apenas os dois dispositivos conectados possam interpretá-los, mantendo o teor da carga protegido de qualquer pessoa que possa interceptar os pacotes. O IPsec é frequentemente usado para configurar Redes Privadas Virtuais, ou VPNs.
O IPsec adiciona alguns bytes ao comprimento de um pacote. Nas conexões que usam essa criptografia, o MSS também deve levar em consideração o IPsec:
MTU - (cabeçalho TCP + cabeçalho IP + IPsec) = MSS
O MSS é uma métrica de camada 4, ou camada de transporte. Ele é usado com TCP, um protocolo de camada de transporte. No entanto, está intimamente relacionado à MTU, que se aplica a camada 3 (a camada de rede).
Ocasionalmente, um roteador ao longo de um caminho de rede tem um valor de MTU definido abaixo dos 1.500 bytes normais. Isso pode resultar em perda de pacotes e pode ser difícil de descobrir.
Para garantir que os pacotes ainda cheguem ao destino nessa situação, uma opção é reduzir o tamanho das cargas dos pacotes de entrada. Isso pode ser feito configurando o servidor para aplicar uma fixação MSS: durante o handshake TCP, o servidor pode sinalizar ao MSS os pacotes que deseja receber, "fixando" o tamanho máximo da carga do outro servidor. Por exemplo, se os servidores A e B estiverem estabelecendo uma conexão TCP e o servidor B comunicar um MSS de 1.436 bytes, o servidor A enviará pacotes com um tamanho máximo de conteúdo de 1.436 bytes durante a conexão.
Outra aplicação da fixação MSS é no caso do tunelamento GRE, onde um cabeçalho de 24 bytes é adicionado ao pacote original para enviá-lo para um novo destino. Se o pacote original for maior que 1.476 bytes, isso poderá fazer com que o novo pacote exceda a MTU normal de 1.500 bytes; uma fixação MSS pode ser aplicada para exigir que os pacotes recebidos tenham menos de 1.500 bytes, mesmo após a aplicação do cabeçalho GRE.
Para saber mais sobre MTU e MSS, consulte o artigo O que é MSS?