Điểm:0

Không có gói SYN-ACK từ máy chủ

lá cờ es

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:

  1. Máy khách tạo Ổ cắm mới với máy chủ1
  2. 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
  3. Máy khách gửi gói TCP SYN;
  4. Server1 gửi TCP SYN-ACK và thực hiện một số truyền dữ liệu
  5. 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
  6. Máy khách tạo Ổ cắm mới với máy chủ2
  7. 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
  8. Máy khách gửi gói TCP SYN đến máy chủ2
  9. Server2 gửi TCP SYN-ACK và thực hiện một số truyền dữ liệu
  10. 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?

Điểm:2
lá cờ ng

Somes ideas on why sometimes your server doesn't answer with SYN-ACK :

  • Application on the server is stopped when the SYN packet is sent : This can be a crash and then manage to work again with a auto restart mecanism of the program. When the server app is stopped or crashed, the tcp listening socket is closed, so the OS doesn't answer.
  • You server has some troubles to find your client back. The can be some routing issue or asymetric routing (this break firewall).
  • If the Client and server are on the same network, this can be some issue with Layer 2 issue like Spanning Tree protocol or ARP.
  • Packet loss in the network : You SYN or SYN ACK packet is dropped.
  • The server is overwhelm and sometime cannot answer you SYN packet.

There can be a large number of thing that can make server doesn't answer SYN packet.

What I will do :

  • Doing some tcpdump on the server to verify the network : Does the server receive the SYN packet or there is an issue in the network beforehand ? Does the server generate and send a SYN ACK packet ? And work from there.
  • If you don't have access to the server, doing the same thing on the closest router/firewall.
  • Contact someone that has access on the server.
Sue Koh avatar
lá cờ es
Cảm ơn bạn đã phản hồi tuyệt vời. Tôi sẽ cố gắng truy cập vào máy chủ, nếu có thể. Tôi có câu hỏi khác. Bởi vì tôi đang sử dụng lwip và dường như tôi không nhận được đồng bộ hóa từ máy chủ, lwip_connect của tôi sẽ dừng và không trả về giá trị (rất có thể là chặn). Ngoài ra, không có thử lại trong gói SYN, bạn có biết tại sao lại như vậy không? Cổng tôi đang sử dụng là 8883 cho mqtt an toàn.
Nicox avatar
lá cờ ng
Thật không may, tôi không có bất kỳ kiến ​​​​thức nào về "lwip". Mặc dù vậy, điều tôi có thể nói là khi cố gắng gửi gói SYN và bạn không có bất kỳ câu trả lời nào, máy khách phải truyền lại gói SYN đó nhiều lần trước khi từ bỏ. Điều này giống như một vấn đề với lwip.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.