Se apro un socket raw e invii pacchetti udp con un checksum errato, i pacchetti verranno rilasciati dall'altra parte dello stack tcp/ip?I pacchetti UDP vengono interrotti quando il checksum dell'intestazione UDP non è corretto?
risposta
Sì, sarebbero stati eliminati. Se hai bisogno di comunicazioni più affidabili, stai molto meglio usando TCP.
per ulteriori informazioni, dare un'occhiata a questo: http://www.diffen.com/difference/TCP_vs_UDP
UDP non c'è alcuna garanzia che i pacchetti saranno anche inviati, e tanto meno ha ricevuto. Se sono effettivamente ricevuti, però, vengono controllati. Se falliscono il checksum vengono lasciati cadere.
MODIFICA: anche per aggiungere a questo, udp non ordina di default i pacchetti così come vengono inviati, che deve essere fatto a livello di applicazione. Tienilo a mente se intendi ancora utilizzare UDP.
Posso disabilitare Convalida del checksum delle intestazioni UDP durante l'apertura del socket ?? – innosam
Sì, il checksum dell'intestazione UDP è facoltativo. Basta impostarlo su 0 (significa inutilizzato) –
Fai attenzione, perché secondo l'articolo di wikipedia (http://en.wikipedia.org/wiki/User_Datagram_Protocol) afferma che in ipv6 non è più possibile inviare il pacchetto senza checksum. Ecco la specifica per ipv6 da cui proviene la fonte di wikipedia da ... http://tools.ietf.org/html/rfc2460 – user2366842
Se arriva un pacchetto con checksum errato, il SO lo lascerà cadere prima di passarlo alla presa.
L'applicazione di destinazione non può determinare se il pacchetto è stato perso o viene fornito con un checksum errato. Penso che non possa forzare il comportamento altrui.
puoi forzarla a ignorare, almeno in ipv4. In ipv6 questo non è più il caso. – user2366842
- 1. Ricezione di pacchetti in UDP
- 2. Perché Socket.BeginRece perde i pacchetti da UDP?
- 3. Punzonatura fori UDP su Android; Server UDP
- 4. assicurare l'ordine dei pacchetti in UDP
- 5. I pacchetti UDP di Winsock sono stati eliminati?
- 6. Ricezione di pacchetti broadcast UDP su Linux
- 7. L'invio di pacchetti UDP dal Linux Kernel
- 8. Impossibile ricevere pacchetti UDP appropriati utilizzando SSDP
- 9. google talk usa pacchetti udp o tcp?
- 10. Come ignorare i propri pacchetti udp di trasmissione
- 11. con SIP, quando utilizzare TCP non UDP?
- 12. Perché traceroute invia pacchetti UDP e non quelli ICMP?
- 13. semplice soluzione proxy udp
- 14. Implementazione perforatura UDP
- 15. Dove vengono memorizzati i dati inviati da UDP?
- 16. implementando ack su UDP?
- 17. Quando fa un blocco sendto() UDP?
- 18. Mixing TCP e UDP
- 19. Frammentazione IP UDP e MTU
- 20. UDP Multicast su Internet?
- 21. UDP Broadcast in Java
- 22. C#: Listener UDP Thread
- 23. Python UDP Broadcast non invia
- 24. Ricezione trasmissione UDP
- 25. WebSocket JavaScript con UDP?
- 26. La trasmissione UDP su Java non funziona
- 27. Android non riceve mai il pacchetto UDP
- 28. Lotto di richieste UDP perse nel server UDP con Netty
- 29. netcat invio di "X" in più pacchetti UDP
- 30. Timeout set socket UDP
tuttavia potresti essere in grado di annusarli sull'host remoto, questo ti consentirebbe di differenziare i pacchetti che non sono mai arrivati rispetto a quelli che sono stati rilasciati a causa di dati non corretti –
Ecco a cosa serve il checksum. * – EJP