2013-08-26 71 views
5

Nếu tôi mở một ổ cắm thô, và gửi các gói udp có kiểm tra sai, các gói có bị bỏ qua phía bên kia bởi ngăn xếp tcp/ip không?Gói UDP có bị giảm khi kiểm tra tiêu đề UDP không chính xác không?

+0

bạn có thể đánh lừa chúng trên máy chủ từ xa, điều này sẽ cho phép bạn phân biệt các pkts không bao giờ đến với những người đã bị loại bỏ do dữ liệu không đúng định dạng –

+1

Đó là những gì checksum *. * – EJP

Trả lời

5

Có chúng sẽ bị xóa. Nếu bạn cần thông tin liên lạc đáng tin cậy hơn thì tốt hơn bạn nên sử dụng TCP.

để biết thêm thông tin, hãy xem này: http://www.diffen.com/difference/TCP_vs_UDP

UDP không có đảm bảo rằng các gói tin sẽ thậm chí được gửi đi, hãy để một mình nhận được. Tuy nhiên, nếu họ thực sự nhận được, họ được kiểm tra. Nếu họ không kiểm tra được họ bị bỏ.

EDIT: cũng để thêm vào đó, udp không theo thứ tự mặc định các gói khi chúng được gửi đi, điều đó phải được thực hiện ở cấp ứng dụng. Ghi nhớ điều này nếu bạn vẫn có ý định sử dụng UDP.

+0

Tôi có thể vô hiệu hóa không UDP header checksum validation trong khi mở socket ?? – innosam

+1

Có, kiểm tra tiêu đề UDP là tùy chọn. Chỉ cần đặt nó 0 (có nghĩa là không sử dụng) –

+0

Hãy cẩn thận với điều này, bởi vì theo bài viết wikipedia (http://en.wikipedia.org/wiki/User_Datagram_Protocol) nó nói rằng trong ipv6 nó không còn có thể gửi gói mà không có kiểm tra. Đây là spec ipv6 mà từ đó các công cụ wikipedia được lấy từ ... http://tools.ietf.org/html/rfc2460 – user2366842

4

Nếu đi kèm gói có kiểm tra sai, hệ điều hành sẽ thả nó trước khi chuyển nó vào ổ cắm.

Ứng dụng đích không thể xác định xem gói bị mất hay đi kèm với tổng kiểm tra sai. Tôi nghĩ rằng nó cũng không thể ép buộc hành vi khác.

+1

bạn có thể buộc nó bỏ qua, ít nhất là trong ipv4. Trong ipv6 điều này không còn là trường hợp. – user2366842