Tôi có hai máy chủ và tôi đã sử dụng hệ thống nhúng của riêng mình với LwIP để kết nối với các máy chủ này.
Hệ thống nhúng của tôi với LwIP là máy khách và tôi có máy chủ1 và máy chủ2. Tôi đã kết nối với máy chủ1 và kết thúc kết nối trước khi kết nối với máy chủ2.
Phân tích thêm về dòng chảy:
- Máy khách tạo Ổ cắm mới với máy chủ1
- Máy khách đã gửi gói DNS để lấy địa chỉ IP của máy chủ1; nhận được ACK từ AP
- Máy khách gửi gói TCP SYN;
- Server1 gửi TCP SYN-ACK và thực hiện một số truyền dữ liệu
- Máy khách kết thúc kết nối với máy chủ1 bằng cách gửi gói TCP RST; và đóng ổ cắm
- Máy khách tạo Ổ cắm mới với máy chủ2
- Máy khách đã gửi gói DNS để lấy địa chỉ IP của máy chủ2; nhận được ACK từ AP
- Máy khách gửi gói TCP SYN đến máy chủ2
- Server2 gửi TCP SYN-ACK và thực hiện một số truyền dữ liệu
- Máy khách kết thúc kết nối với máy chủ2 bằng cách gửi gói TCP RST; và đóng ổ cắm
Tuy nhiên, đôi khi server2 không phản hồi với Gói SYN của máy khách ở Bước 9. Đôi khi nó chỉ xảy ra. Tôi đã kiểm tra một số diễn đàn như:
[1] Tại sao máy chủ không gửi gói SYN/ACK để phản hồi gói SYN
[2] Máy chủ không gửi gói SYN/ACK để phản hồi gói SYN
Mã của tôi không kích hoạt mở rộng cửa sổ. Tôi không thể kiểm tra máy chủ vì nó là máy chủ riêng, vì vậy tôi không chắc liệu nó có bị hủy hay không. Môi trường của tôi khá ồn ào và bận rộn với nhiều bộ định tuyến cộng với thiết bị liên lạc. Vấn đề này chỉ xảy ra trong môi trường ồn ào chứ không xảy ra trong môi trường sạch hơn.
Tôi có thể làm gì với tư cách là khách hàng để khắc phục sự cố này?