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:
- Clientul creează un nou socket cu server1
- Clientul a trimis un pachet DNS pentru a obține adresa IP a serverului 1; a primit ACK de la AP
- Clientul trimite pachetul TCP SYN;
- Server1 trimite TCP SYN-ACK și efectuează unele transmisii de date
- Clientul încheie conexiunea cu server1 prin trimiterea unui pachet TCP RST; și închideți priza
- Clientul creează un nou socket cu server2
- Clientul a trimis un pachet DNS pentru a obține adresa IP a serverului 2; a primit ACK de la AP
- Clientul trimite pachetul TCP SYN către server2
- Server2 trimite TCP SYN-ACK și efectuează unele transmisii de date
- 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ă?