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.