如果我打開一個原始套接字,併發送錯誤校驗和的udp數據包,那麼數據包是否會被tcp/ip堆棧丟棄?當UDP包頭校驗和不正確時,UDP包是否被丟棄?
回答
是的,他們將被丟棄。如果您需要更可靠的通信,則使用TCP會更好。
瞭解更多信息,看看這個:http://www.diffen.com/difference/TCP_vs_UDP
UDP沒有保證數據包甚至會被髮送,更不用說接受。如果他們實際上已經收到,他們會被檢查。如果他們失敗校驗和,他們將被丟棄。
編輯:還補充到,UDP默認順序有,因爲它們發出的報文,在應用層面做到沒有。記住這一點,如果你仍然打算使用UDP。
我可以禁用打開套接字時UDP頭校驗和驗證? – innosam
是的,UDP標頭校驗和是可選的。只需將其設置爲0(意味着未使用) –
要小心,因爲根據維基百科的文章(http://en.wikipedia.org/wiki/User_Datagram_Protocol)就指出,在IPv6的它已經不再能夠發送數據包,而不校驗和。這裏是從維基百科的東西從... http://tools.ietf.org/html/rfc2460 – user2366842
如果自帶包與校驗和錯誤,操作系統將它傳遞給套接字之前刪除它。
目標應用程序不能確定數據包丟失或帶有校驗和錯誤。 我認爲它也不能強迫其他行爲。
的函數可以強制它忽略,至少在ipv4中。在ipv6中,這不再是這種情況。 – user2366842
- 1. Linux丟棄UDP數據包
- 2. 什麼是校驗UDP數據包的正確方法
- 3. 如何確保更少的UDP數據包被丟棄?
- 4. 升壓ASIO丟棄UDP數據包
- 5. Java - Mule UDP丟包
- 6. 包含標頭的UDP包
- 7. UDP校驗和計算
- 8. 計算UDP層校驗和
- 9. 將UDP/TCP校驗
- 10. udp數據包丟失
- 11. Android udp數據包丟失
- 12. 50%udp數據包丟失
- 13. Android UDP數據包丟失
- 14. 丟失數據包超時(UDP)
- 15. libnet創建帶有無效校驗和的UDP數據包
- 16. UDP包不QThread的
- 17. Java NIO UDP多播 - 丟棄的數據包
- 18. C#在新創建的套接字上丟棄UDP數據包
- 19. UDP連接發送後是否負責分組校驗和?
- 20. UDP校驗和是否檢測到所有錯誤?
- 21. jgroup是否使用校驗和在UDP上變得可靠?
- 22. 如何啓用UDP校驗和
- 23. UDP校驗和計算蟒蛇
- 24. UDP數據包不被接收
- 25. 計算UDP校驗和時接收端的結果是什麼
- 26. UDP數據包是否全部到達?
- 27. UDP包分析
- 28. 平均UDP數據包丟失和數據包重新排序
- 29. UDP數據包丟失修復
- 30. 執行:udp接收隊列丟包
您可能能夠在遠程主機上嗅探它們,但這會使您能夠區分未到達的pkts與由於格式錯誤的數據而丟棄的pkts –
這就是校驗和*的作用。* – EJP