Resumo

  • Data Offset conta o cabeçalho TCP inteiro em palavras de 32 bits e indica onde os dados começam.
  • EOL encerra a interpretação das opções, mas o preenchimento posterior continua no cabeçalho.
  • NOP pode ajudar no alinhamento, sem torná-lo obrigatório.

O cabeçalho TCP básico tem cinco palavras, ou vinte octetos. As opções aumentam esse tamanho, então o receptor precisa de um limite externo que não dependa de conhecer cada recurso. O campo Data Offset tem quatro bits e informa quantas palavras de 32 bits existem no cabeçalho completo. Multiplicar o valor por quatro produz o octeto em que os dados começam. Cinco descreve o cabeçalho básico; valores maiores incluem opções e preenchimento, até quinze palavras, ou sessenta octetos.

Quando Data Offset é maior que cinco, a RFC 9293 expressa a área de opções como (DOffset-5)*32 bits. Esse total também inclui o preenchimento posterior às opções efetivas.

EOL marca o fim da lista de opções, mas pode aparecer antes do limite indicado por Data Offset. Os octetos restantes devem ser preenchimento nulo de cabeçalho. NOP ocupa um octeto e pode alinhar uma opção seguinte; ainda assim, opções podem começar em qualquer limite de octeto. As demais opções carregam seu comprimento, permitindo ignorar uma opção desconhecida quando ela estiver bem formada.

Data Offset fornece o limite superior da leitura. Opções e preenchimento entram no cálculo do checksum TCP, embora não sejam dados da aplicação. Comprimentos ilegais precisam ser tratados; a RFC 9293 cita reiniciar a conexão e registrar a causa como procedimento sugerido.

Fontes