É necessária uma implementação para suportar os cabeçalhos TCP e IP de tamanho máximo, com 60 bytes cada.
Uma implementação deve suportar datagramas de 576 bytes, que mesmo com cabeçalhos máximos significam mais de 8 bytes de dados no datagrama. Para enviar datagramas com mais de 8 bytes de dados, a fragmentação de IP deve colocar pelo menos 8 bytes de dados em pelo menos um dos pacotes que representam os fragmentos do datagrama. Assim, uma implementação deve suportar pelo menos 8 bytes de dados em um pacote.
Juntando isso, uma implementação deve suportar pacotes de 60 + 60 + 8 bytes.
Quando enviamos pacotes que fazem parte de um fluxo TCP, eles têm um cabeçalho IP de 20 bytes (mais opções) e um cabeçalho TCP de 20 bytes (mais opções). Isso deixa um mínimo de (60 + 60 + 8) - (20 + 20) bytes restantes para dados e opções. Portanto, este é o máximo que podemos com segurança assumir o TCP MSS de uma implementação.