La frammentazione avviene a livello di protocollo IP quindi segue le sue regole. Direi che dipende essenzialmente dalle dimensioni massime dei frame gestiti dalle reti che il pacchetto attraversa.

Su ethernet in genere è 1500 ottetti. Ma puo' variare.

Se vuoi fare una prova puoi usare ilcomando ping imponendo la dimensione del pacchetto e selezionando l'opzione don't fragment

es:

ping -f -l 1500 www.html.it

con l'opzione -f imponi che il pacchetto non venga frammentato, con -l 1500 imponi che la dimensione del pacchetto sia 1500 byte.
Puoi provare con varie dimensioni.
Se il pacchetto non viene frammentato il ping viene eseguito correttamente in caso contrario ti viene comunicato che dovrebbe intervenire la frammentazione.

Per protocolli come PPPoE la dimensione max è 1464 byte.

Per udp considera che in quella dimensione ci deve stare header e payload UDP...