O tamanho mínimo do quadro para Ethernet é ditado em 64 bytes (como também descrito em suas referências).
DMAC + SMAC + EtherType + Payload + CRC
6 + 6 + 2 + 46 + 4 = 64
Na camada 4 (TCP ou UDP), o 'comprimento' cobre o cabeçalho da camada 4 e é rastreado no cabeçalho IP.
Isso significa que, para UDP, o mínimo esperado é de 8 bytes (para o cabeçalho).
E, para TCP, é 20 bytes (o cabeçalho TCP mínimo).
A parte que parece estar desaparecida começa agora .
Embora seja necessário que o comprimento dos dados Ethernet seja de no mínimo 46 bytes, o comprimento IP não precisa ser 46-20 bytes. Pode ser muito menor que isso.
Portanto, se tivéssemos um pacote UDP de 8 bytes sem dados, seu comprimento de IP seria 20+8 , mas o comprimento da carga de Ethernet ainda seria 46 bytes. O que acontece com o buraco de bytes 18 ? Ele é preenchido para tornar o quadro Ethernet no fio 64 bytes (por razões que você já conhece).
[Eth: DMAC + SMAC + EtherType + [IP: Hdr + [UDP: Hdr + 0data ]] + PAD + CRC ]
Bottomline: O que você chama de application data size não tem expectativas mínimas com base nesse requisito de 64 byte Ethernet. O PAD compensará as diferenças.