In Java quando si utilizza DatagramPacket
, si supponga di disporre di un buffer byte[1024*1024]
. Se lo passi per il DatagramPacket quando invii/ricevi una chiamata di ricezione Java per il blocco DatagramPacket fino a quando non ha letto l'intero megabyte?Java DatagramPacket (UDP) dimensione massima del buffer di invio/ricezione
Mi chiedo se Java lo dividerà o semplicemente cercherò di inviare l'intera cosa che viene rilasciata.
Normalmente il limite di dimensione è di circa 64 KB per un pacchetto UDP, ma mi chiedevo poiché l'API di Java consente gli array di byte se questo è un limite e qualcosa di super enorme viene eliminato o suddiviso e riassemblato per te.
Se viene interrotta quale chiamata API mi dirà il massimo carico utile di dati che posso utilizzare nella chiamata Java? Ho sentito che IPv6 ha anche frame jumbo, ma DatagramPacket (o DatagramSocket
) supporta quello dal momento che UDP definisce le specifiche dell'header?
In realtà, l'MTU minimo garantito per IPv4 attraverso la rete è di soli 68 byte - 576 è il minimo che gli host devono gestire. Ad ogni modo, un MTU così piccolo sarebbe davvero, davvero insolito. – lxgr
Significa che se si ha una dimensione del pacchetto maggiore di 64 KB, si utilizzerà un protocollo diverso? –
@PhaniRahul: Direi che significa "grazie a Dio che il protocollo gestisce la segmentazione in modo trasparente e rende i miei dati in tutti i pacchetti necessari". Dubito che eventuali protocolli pratici in uso ti offriranno pacchetti di dimensioni maggiori. :) –