2013-02-01 4 views
6

Jestem nowicjuszem w serwisie wireshark i ogólnie w sieci, ale monitoruję ruch w mojej aplikacji i mogę go filtrować, dzięki czemu mogę zobaczyć, kiedy aktywnie przesyła dane, które ma na serwerze, ale wireshark pokazuje to:co ta informacja o Wiresharku odnosi się do

protocol = TCP 
length = 54 
info = 56705 > ms-wbt-server [ACK] Seq=1 Ack=61 Win=252 Len=0 

jest wyrzucane co sekundę z mojej aplikacji na mój serwer aplikacji. Dlaczego moja aplikacja ciągle wysyła te pakiety co sekundę?

Jest to aplikacja w języku C# .net, jeśli ma jakąkolwiek pomoc.

Odpowiedz

7

Jest to pakiet keepalive TCP, nie zawierający danych, ale z ustawionym flagą ACK. Po prostu mówi, że drugi koniec nadal tam jest i utrzymuje połączenie otwarte.

Jest to dobry przegląd tutaj: http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html

+0

dzięki @ Witaj, przyjmuję w 5 minut, kiedy mi wolno. czy możesz mi powiedzieć, czy keepalive jest czymś, co jest zalecane dla dużych systemów rozproszonych? W systemie istnieje około 50000 klientów raportujących na jeden serwer aplikacji, czy to może być źródłem złej wydajności? czy pakiet jest tak mały i 50000 klientów jest dość mały i nie powinien zbytnio wpływać na wydajność sieci? – 0xor1

+0

Czy serwer musi wiedzieć, że wszyscy klienci nadal tam są i czy klient musi natychmiast wiedzieć, że serwer jest nieosiągalny? Jeśli nie, możesz go wyłączyć w ustawieniach TCP. Tak, pakiety keepalive są małe, ale z 50 000 klientów wysyłających jeden 60-bajtowy keepalive sekundę do tego samego serwera (edycja: i odpowiedzi wracają oczywiście), byłbym zaskoczony, gdyby to * nie * miało wpływu na wydajność sieci. – Vicky

+4

dziękuję bardzo :) okazuje się, że pakiety keepalive były z mojego zdalnego połączenia pulpitu, a nie mojej aplikacji hehe, kilka. – 0xor1

7

ms-WBt-serwer to port 3389, i jest używany dla Remote Desktop Protocol (RDP), czy masz połączenie z pulpitem zdalnym Otwarty na serwerze przez dowolny szansa?