Puncte:0

Niciun pachet SYN-ACK de la server

drapel es

Am două servere și am folosit propriul meu sistem încorporat cu LwIP pentru a face conexiunea la aceste servere.

Sistemul meu încorporat cu LwIP este clientul și am server1 și server2. M-am conectat la server1 și am încheiat conexiunea înainte de a mă conecta la server2.

Defalcare suplimentară a fluxului:

  1. Clientul creează un nou socket cu server1
  2. Clientul a trimis un pachet DNS pentru a obține adresa IP a serverului 1; a primit ACK de la AP
  3. Clientul trimite pachetul TCP SYN;
  4. Server1 trimite TCP SYN-ACK și efectuează unele transmisii de date
  5. Clientul încheie conexiunea cu server1 prin trimiterea unui pachet TCP RST; și închideți priza
  6. Clientul creează un nou socket cu server2
  7. Clientul a trimis un pachet DNS pentru a obține adresa IP a serverului 2; a primit ACK de la AP
  8. Clientul trimite pachetul TCP SYN către server2
  9. Server2 trimite TCP SYN-ACK și efectuează unele transmisii de date
  10. Clientul încheie conexiunea cu server2 prin trimiterea unui pachet TCP RST; și închideți priza

Cu toate acestea, uneori server2 nu a răspuns la pachetul SYN al clientului care se află la Pasul 9. Se întâmplă doar cândva. Am verificat mai multe forumuri precum:

[1] De ce un server nu ar trimite un pachet SYN/ACK ca răspuns la un pachet SYN

[2] Serverul nu trimite un pachet SYN/ACK ca răspuns la un pachet SYN

Codul meu nu permite scalarea ferestrelor. Nu pot verifica serverul ca fiind un server privat, așa că nu sunt foarte sigur dacă a fost abandonat. Mediul meu este destul de zgomotos și ocupat cu multe routere plus dispozitive de comunicație. Această problemă se întâmplă doar în medii zgomotoase, dar nu și într-un mediu mai curat.

Ce pot face ca client pentru a rezolva această problemă?

Puncte:2
drapel 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
drapel es
Vă mulțumim pentru feedback-ul minunat. Voi încerca să am acces la server, dacă este posibil. Am altă întrebare. Deoarece folosesc lwip și se pare că nu am reușit să obțin syn-ack de la server, lwip_connect-ul meu se va opri și nu returnează o valoare (cel mai probabil blocare). De asemenea, nu există nicio reîncercare în pachetul SYN, aveți idee de ce este așa? Portul pe care îl folosesc este 8883 pentru mqtt securizat.
Nicox avatar
drapel ng
Din păcate, nu am cunoștințe despre „lwip”. Ceea ce pot spune, totuși, este că atunci când încercați să trimiteți un pachet SYN și nu aveți niciun răspuns, clientul ar trebui să retransmite acel pachet SYN de mai multe ori înainte de a renunța. Aceasta pare mai degrabă o problemă cu lwip.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.