Encontrei as duas respostas na internet.
Eu acho que deveria ser 2 bytes = 2^16 = 65.536, mas na Wikipedia está escrito que é 65.535 :
O tamanho do campo define um limite teórico de 65.535 bytes (cabeçalho de 8 bytes + 65.527 bytes de dados) para um datagrama UDP.
Por que 1 byte está faltando?
Reddy acertou em cheio: https://stackoverflow.com/questions/42609561/udp-maximum-packet-size
O tamanho máximo do pacote IP é de 65.535 bytes (2 16 -1), incluindo todos os cabeçalhos e geralmente exigindo fragmentação. Assumindo cabeçalhos padrão, o IPv4 usa 20 bytes e UDP 8 bytes. O tamanho máximo de carga útil UDP resultante sobre IPv4 é de 65.507 bytes . O datagrama UDP máximo inclui o cabeçalho UDP e é de 65.515 bytes. Para completar, UDP sobre IPv6 é 20 bytes a menos.
Se você tentasse aproveitar o comprimento máximo teórico do datagrama UDP de 65.535 bytes, não poderia usar o IP para transportá-lo.
65.535 é o valor máximo que você pode armazenar em 16 bits - o maior número é binário
1111 1111 1111 1111
= decimal 65.535. Existem 65.536 valores diferentes, incluindo0000 0000 0000 0000
.O campo de comprimento é de 16 bits e, portanto, pode representar tamanhos entre 0 e 65535. A Wikipedia e outros estão certos.