Puncte:1

Pachetele TCP împărțite în ACK și PSH,ACK în Docker

drapel es

Lucrez la un server de jocuri bazat în principal pe TCP și tocmai am încercat să-l rulez într-un container Docker. Totuși, am observat că atunci când accesez Serverul într-un container (prin Game Client), pachetele pentru fiecare SeqNo sunt împărțite în două părți. Prima parte este un TCP-ACK gol (fără sarcină utilă), a doua parte este un TCP, PSH-ACK care conține sarcina utilă completă. Deoarece acest model se aplică tuturor pachetelor trimise de la sau către server, este evident că acestea aparțin împreună.

De ce se întâmplă acest lucru și, în plus, de ce se întâmplă acest lucru doar atunci când Serverul rulează într-un container Docker?

mforsetti avatar
drapel tz
Răspunde asta la întrebarea ta? [Ce face \[PSH, ACK\] în timpul conexiunii mele la un server de catalog global?](https://serverfault.com/questions/614590/what-is-psh-ack-doing-during-my-connection- la-un-server-de-catalog-global)
Michael Hampton avatar
drapel cz
Puteți afișa o captură de pachet?
elsamuray7 avatar
drapel es
Tocmai mi-am dat seama că problema nu este că sunt trimise 2 pachete TCP pentru fiecare pachet logic, ci mai degrabă că serverul meu îl interpretează ca 2 pachete în containerul Docker, în timp ce îl interpretează ca 1 pachet peste tot. Acum sunt sigur dacă aceasta este mai degrabă o problemă a limbajului de programare (adică implementarea sa de socket-uri, folosesc Java) sau dacă problema este la nivelul sistemului de operare. Vreo idee?
Puncte:1
drapel us

Nu sunt sigur cum rulați serverul dvs. de jocuri în Docker, dar docker funcționează așa cum aveți următoarele

Gazdă - Rețea Docker - Rețea Docker Swarm - Rețea de intrare (Swarm) Serviciul Docker - Rețea de suprapunere (servicii container)

În acest caz, aveți un strat diferit de rețea în Docker cu care să lucrați și toate în interiorul Docker sunt rețele virtuale.

Următorul pas pe care trebuie să-l înțelegeți cu Docker dacă lucrați în modul Swarm este atunci când apăsați pe Docker Swarm, indicându-l pe baza numărului portului către serviciile dvs. container, dacă rulați mai mult de 1 replicare în Swarm, atunci 2 cereri sunt posibile. , poate să nu lovească același server de două ori.

Deci problema despre care întrebați cred că este legată de modul în care funcționează rețeaua internă din Docker, puteți citi mai multe despre modul în care funcționează rețeaua din Docker și poate că este doar o setare pe care o puteți modifica, de ex. gazdă

Drivere de rețea Docker: https://docs.docker.com/network/#network-drivers

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.