Chúng tôi có một vài ứng dụng mà chúng tôi phát triển trong công ty của mình có thể giao tiếp với một số phần cứng thông qua UDP. Gần đây, chúng tôi bắt đầu gặp sự cố khi sử dụng các ứng dụng này trên một số máy của mình (về cơ bản phần cứng từ chối kết nối với máy khách).
Sau khi điều tra, chúng tôi nhận thấy rằng các gói UDP trùng lặp đang được gửi đi.
Ví dụ: đây là gói dữ liệu UDP được gửi trên một máy khỏe mạnh (sử dụng WireShark):
Đây là bản sao trên một trong những máy bị lỗi:
Có thể tìm thấy tệp pcapng từ Wireshark đây (tìm yêu cầu DNS từ máy khách 10.0.9.183).
Có một vài điều chúng ta có thể loại trừ:
- Chúng tôi biết đây không phải là vấn đề với các ứng dụng của mình, vì ngay cả DNS cũng gửi các gói trùng lặp. tôi đã sử dụng kịch bản này để gửi gói dữ liệu UDP đơn giản và chúng tôi đã thấy một hành vi tương tự (xem ảnh chụp màn hình ở trên)
- Chúng tôi biết đây không phải là lỗi giao diện mạng, vì trên một máy bị lỗi, các gói trùng lặp được gửi qua bộ điều hợp WiFi, Ethernet, USB-Ethernet, v.v.
- Chúng tôi biết đây không phải là một công tắc/bộ định tuyến cụ thể tinh ranh vì điều này xảy ra ở văn phòng, ở nhà (có và không có VPN)
- Một số máy hoạt động tốt, một số thì không. Tất cả đều chạy Windows10 (cùng một phiên bản chính xác).
Chắc là máy bị trục trặc gì đó nhưng mình thực sự không biết phải cố gắng khắc phục điều này như thế nào. Tôi đã cập nhật một số trình điều khiển của giao diện mạng trên máy này + tung ra bản cập nhật Windows10 nhưng dường như không có gì khắc phục được.
Tất nhiên, một cách khắc phục có thể là lập trình lại phần cứng sao cho nó biết cách xử lý các gói trùng lặp, nhưng chúng tôi thực sự muốn có thể tìm hiểu kỹ vấn đề này và hiểu đầy đủ nguyên nhân gây ra sự cố.
Tôi không phải là chuyên gia về mạng ở tất cả, do đó tôi đăng bài này ở đây. Đây có phải là hành vi hơi phổ biến và điều gì có thể gây ra điều này?
Cảm ơn nhiều