2010-07-26 14 views
8

Pracuję nad uzyskaniem parametrów wydajności połączenia TCP, a jednym z tych parametrów jest przepustowość. Mam zamiar użyć struktury tcp_info wspieranej z Linuksa 2.6, która przechowuje dane meta o połączeniu TCP. Informacje można odzyskać, używając funkcji getsockopt() na. Sporo czasu spędziłem na znalezieniu dobrej dokumentacji wyjaśniającej wszystkie parametry w tej strukturze, ale nie mogłem jej znaleźć.Dobra dokumentacja dotycząca struktury tcp_info

Również przetestowałem mały program, aby pobrać wartości z tcp_info dla połączenia TCP, gdzie znalazłem zmierzone wartości MSS przez większość czasu jako zero.Aby zrobić długą historię krótki-Czy istnieje link do naśladowania, który Kompletne informacje na temat tcp_info, a także jest wiarygodne w użyciu tych wartości.

Odpowiedz

10

Oto fairly comprehensive write-up konstrukcji i użytkowania tcp_info linux René Pfeiffer ale istnieje kilka rzeczy, które warto zwrócić uwagę:

  • Autor musiał patrzeć na tych danych powtarzających się w czasie, ponieważ istnieje brak zagregowanych statystyk w tej strukturze.
  • Autor kieruje użytkownika do źródła tcp.c jako ostatecznego autorytetu dotyczącego znaczenia któregokolwiek z tych danych.
  • Nie jestem pewien, co masz nadzieję uzyskać z maksymalnego rozmiaru segmentu, ale spodziewaj się, że myślisz, że to oznacza coś innego.

Jeśli jesteś naprawdę zainteresowany dokładnymi pomiarami pasma trzeba użyć urządzenia pomiarowego, które znajduje się poza system jest testowany, ponieważ nawet pociągnięcie ioctls wpłynie zjawisko jesteś zainteresowany wiedząc o. Pasywny sniffer drutowy jest jedynym sposobem uzyskania naprawdę dokładnych wyników. Wreszcie, w zależności od aplikacji, "szerokość pasma" jest bardzo szerokim parasolem, który spłaszcza wiele pomiarów (np. Opóźnienie, czas w obie strony, zmienność, jitter itp.) W jedną kategorię.

Powiązane problemy