Ich möchte eine Datei von einem Client an einen Server senden. Ich möchte es senden, indem ich die Datei in eine Paketgröße von je 1000 Byte zerlege und sie einzeln einsende. Nachdem der Server das Paket empfangen hat, wird es möglicherweise beschädigt. Also, sollte ich einen Header verwenden und die Checksumme des Pakets zusammen mit dem Paket senden und prüfen, ob sie übereinstimmen, nachdem der Server sie empfangen hat? oder UDP hat eine Standardfunktion, um die Prüfsumme automatisch zu überprüfen?Passt die UDP-Verbindung nach dem Senden der Daten auf die Checksumme des Pakets?
Antwort
Ja, UDP hat eine Prüfsumme, die das Paket automatisch überprüft. Sie können über den Algorithmus auf Wikipedia lesen.
Viele Betriebssysteme haben eine Option, die steuert, ob die Prüfsummenkalkulation ausgeführt wird, und bis in die 1990er Jahre war es üblich, dass dies aus Leistungsgründen deaktiviert wurde. Ich denke, die meisten haben es in diesen Tagen aktiviert, und es ist wahrscheinlich, dass es automatisch von vielen NICs getan wird.
UDP hat eine 16-Bit-Prüfsumme, und Ihr Betriebssystem wird wahrscheinlich das Paket fallen lassen, wenn eine Nichtübereinstimmung vorliegt. Sie können diese Prüfsumme jedoch auf 0 setzen, um die Prüfung zu umgehen, und Ihre eigenen implementieren.
Aber wenn Sie UDP in erster Linie verwenden, sollten Sie erwarten einige Pakete fallengelassen oder verloren. Dies funktioniert nicht gut beim Übertragen von Dateien. Daher würde ich Ihnen empfehlen, TCP dafür zu verwenden.
Danke. Ich habe versucht, UDP zu verwenden und eine TCP-ähnliche Verbindung manuell durch ACKs herzustellen. Also, wenn das OS das Paket fallen lässt, sollte der Server es erneut senden, oder? Angenommen, ich möchte keinen Paketverlust. – Manohar
Nein, wenn ein kleines Objekt gedrückt wird, senden Sie schnell vom Server-Client angefordert, die Teile fehlen. UDP-Wahl für die Beschleunigung und Nicht-Block-Kommunikation (wie Strom), warum nicht Push als eine statische Datei (www_style)? @Manhar – dsgdfg
- 1. Wie werden die Formularsteuerelemente nach dem Senden der Daten gelöscht?
- 2. Nach der Installation des NuGet-Pakets PagedList.Mvc wurde die Anwendung auf dem Bereitstellungsserver gestoppt
- 3. CakePHP 3 Aktualisiere die Seite nach dem Senden des Formulars
- 4. Nach dem Klicken auf die Senden-Schaltfläche passiert nichts.
- 5. Lesen der TCP-Sequenznummer vor dem Senden eines Pakets
- 6. Firebase-Regeln, die die Aktualisierung bestimmter Werte nach dem Senden der angegebenen Daten ermöglichen
- 7. Löschen des gültigen Formulars nach dem Senden
- 8. Ändern Sie die Daten des geplanten Pakets, bevor eine Aktivität nach einer Orientierungsänderung neu erstellt wird.
- 9. OSGI: werden deklarative Dienste nach dem Start des Pakets verfügbar
- 10. Fehler auf der Display-Anweisung auch nach dem Importieren des Pakets
- 11. Ändern der Uhrzeit des Serverstopps Ausführung des SSIS-Pakets, Wie testet man die Zeitabhängigkeit?
- 12. Ändern Hintergrundhöhe, die mit der Geräteauflösung passt
- 13. Installation des Pakets schlägt fehl: Fehler beim Laden des Rubygems-Plugins nach dem Löschen der Dateien
- 14. jQuery Mobile: Daten nach dem Senden erhalten
- 15. wie die Daten gespeichert werden, die der Benutzer nach dem Ausführen des Skripts auf der Formularseite eingegeben hat?
- 16. Fehler in `-.default` (y, passt): nicht konforme Arrays, wenn FUN = in der Vorschau.gts des hts Pakets
- 17. Werte nach dem Senden des Formulars beibehalten
- 18. Erhalten Sie die tatsächliche Größe des empfangenen Pakets
- 19. So senden Sie die Antwort auf die gleiche HTML-Seite nach dem Klicken auf Senden Schaltfläche mit node.js
- 20. Wie laufen die PHP-Funktionen nach dem Senden von JSON-Daten an die Client-Seite?
- 21. Rückgabewert des Formulars nach dem Senden
- 22. Ausblenden des Formulars nach dem Klicken auf die mobile Tastatur Schaltfläche "Senden/Los"
- 23. Gibt es eine Möglichkeit, die Version des Cabal-Pakets im Quellcode des Pakets zu erhalten?
- 24. Dateiname des auf Octopus-Deploy hochgeladenen Pakets
- 25. Fehler bei der MySQL-Syntax nach dem Senden des Formulars
- 26. Setzen Sie die Daten nach dem Deaktivieren der Checkbox zurück
- 27. Importieren des aktuellen Pakets
- 28. Wie Umleitung Primefaces Assistenten auf die erste Registerkarte nach dem Senden auf der letzten Registerkarte
- 29. Wird PHP nach der Aktualisierung des system tzdata-Pakets diese neuen Daten verwenden?
- 30. Führen Sie die jQuery-Funktion mithilfe des RSelenium-Pakets aus
https://en.wikipedia.org/wiki/User_Datagram_Protocol#Checksum_computation – Barmar
Die UDP-Prüfsumme ist _optional_ auf IPv4, aber es ist _required_ auf IPv6. –