Podstawy czytania plików śledzenia protokołu TCP/IP

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 169292 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL169292
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule są przedstawione podstawowe pojęcia i porady dotyczące odczytywania plików śledzenia protokołu TCP/IP.

Więcej informacji

Flagi TCP

A, ACK- (Potwierdzenie) Odbiorca wysyła flagę ACK, która jest równa numerowi sekwencji nadawcy plus parametr Len lub liczba danych w warstwie TCP.

Flagi SYN i FIN są liczone jako 1 bajt. Flaga ACK może również oznaczać numer sekwencji następnego oktetu oczekiwanego przez odbiorcę.

S, SYN- Synchronizowanie jest używane w czasie konfigurowania sesji do uzgodnienia początkowych numerów sekwencji. Numery sekwencji są losowe.

F, FIN- Zakończenie jest używane podczas bezpiecznego zamknięcia sesji i oznacza, że nadawca nie ma już danych do wysłania.

R, RST- Zresetowanie to natychmiastowe przerwanie w dwóch kierunkach (nieprawidłowe rozłączenie sesji).

P, PSH- Pchnięcie wymusza dostarczenie bez oczekiwania na wypełnienie się buforów. Dane zostaną dostarczone również do aplikacji w miejscu docelowym bez buforowania.

U, URG- Pilne - Dane są wysyłane poza pasmem.
Przykład uzgadniania trzykierunkowego
--------------------------------------------------------------
Czas     IP m. docel.    IP źródła     Protokół    Opis
20.862   157.57.24.193   157.57.11.169   TCP       ....S., len:    4, seq:
346564214, ack:         0, win: 8192,

20.866   157.57.11.169   157.57.24.193   TCP       .A..S., len:    4, seq:
339000739, ack: 346564215, win: 8760,

20.866   157.57.24.193   157.57.11.169   TCP       .A...., len:    0, seq:
346564215, ack: 339000740, win: 8760,


Przykład bezpiecznego zamknięcia (zmodyfikowane uzgadnianie trzykierunkowe)

Czas    IP m. docel.    IP źródła     Protokół    Opis
39.295  157.57.11.169   157.57.24.193   TCP       .A...F, len:    0, seq:
339000917, ack: 346564257, win: 8718,

39.295  157.57.24.193   157.57.11.169   TCP       .A...., len:    0, seq:
346564257, ack: 339000918, win: 8583,

39.298  157.57.24.193   157.57.11.169   TCP       .A...F, len:    0, seq:
346564257, ack: 339000918, win: 8583,

39.300  157.57.11.169   157.57.24.193   TCP       .A...., len:    0, seq:
339000918, ack: 346564258, win: 8718,

W powyższych dwóch plikach śledzenia protokół TCP jest najwyższym protokołem warstwy, dlatego ważne informacje o sesji można odczytać z wiersza podsumowania pliku śledzenia. Jeżeli istnieje protokół wyższej warstwy (NBT, SMB, Telnet, FTP itd.), należy przejrzeć pakiet flag TCP, komunikatów ack i numerów sekwencji.

Zachowanie retransmisji

(z książki „TCP/IP Implementation Details”)

Protokół TCP uruchamia czasomierz retransmisji w momencie, gdy wychodzący segment zostaje przekazany do protokołu IP. Jeżeli nie zostało otrzymane potwierdzenie dla danych w określonym segmencie przed wygaśnięciem czasomierza, następuje retransmisja segmentu, ograniczona czasem procedury TcpMaxDataRetransmissions. Domyślna wartość tego parametru to 5.

Czasomierz retransmisji jest inicjowany w czasie do 3 sekund od chwili ustanowienia połączenia TCP; jednak jest on dopasowywany na bieżąco, tak aby był zgodny z charakterystyką połączenia przy użyciu obliczeń SRTT (Smoothed Round Trip Time), zgodnie z opisem w specyfikacji RFC793. Czasomierz danego segmentu jest podwajany po każdej jego retransmisji. Przy użyciu tego algorytmu protokół TCP dostraja się do „normalnego” opóźnienia połączenia. Przekroczenie limitu czasu podczas połączenia TCP przez łącza z dużym opóźnieniem potrwa o wiele dłużej niż podczas połączenia przez łącza z małym opóźnieniem.

Następujące fragmenty plików śledzenia pokazują algorytm retransmisji dla dwóch hostów, połączonych za pomocą karty Ethernet w tej samej podsieci. Transfer plików przy użyciu protokołu FTP był w toku, gdy host odbierający został odłączony od sieci. Ponieważ obliczenia SRTT dla tego połączenia były bardzo małe, pierwsza retransmisja została wykonana po upływie około pół sekundy. Następnie czasomierz został podwojony dla każdej następującej retransmisji. Po piątej retransmisji czasomierz jest podwajany jeszcze raz i przerywany, jeżeli przed jego wygaśnięciem nie zostanie dostarczone potwierdzenie.
delta ip źródła    ip m. docel. flagi pro   opis
--------------------------------------------------------------
0.000 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

0.521 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

1.001 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

2.003 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

4.007 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

8.130 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

Po wyczerpaniu ponownych prób komputera X komunikat o zresetowaniu może nie pojawić się od razu. Jeżeli komputer Y odpowie, komputer X może zresetować połączenie.

Zwiększanie okien

W czasie uzgadniania rozmiar okna wysyłania jest taki sam, jak rozmiar okna odbierania drugiego hosta. Rozmiar okna jest buforem i ilością danych, które nadawca może wysłać, a odbiorca odebrać bez potwierdzenia. Okno może zostać zwiększone po potwierdzeniu pakietu.

Korzystając z okna odbierania o rozmiarze 8760 bajtów, nadawca może wysłać 8760 bajtów przed otrzymaniem potwierdzenia. Odbiorca może potwierdzić każdy pakiet, każdy inny pakiet lub cały pakiet 8760 bajtów w zależności od stosu protokołu IP i taktowania. (Zobacz Czasomierz potwierdzenia opóźnionego i czasomierz retransmisji.) System Windows NT potwierdzi każdy inny pakiet. Jeżeli pakiety są nadsyłane bardzo szybko, system Windows NT może potwierdzać więcej niż 2 pakiety. Jeżeli ustawiona jest flaga PUSH, dane zostaną dostarczone natychmiast do aplikacji, lecz potwierdzenie nadal może być opóźnione.

Numer sekwencji w ramce 51 to 349349990. Potwierdzenie w ramce 57 to 349358750. Jest to numer sekwencji z ramki 51 plus ilość danych otrzymanych w ramkach od 51 do 56 (6 ramek x 1460 = 8760) . Również potwierdzenie 349358750 jest numerem sekwencji następnego pakietu oczekiwanego przez host.
Ramka   Czas    Inny adres źr.  Inny adres doc. Protokół  Opis
---------------------------------------------------------------------
50      3.923   157.57.11.169   157.57.24.193   TCP       .A...., len:
0, seq: 356870796, ack: 349349990, win: 8760,

51      3.924   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460
+ TCP: .A...., len: 1460, seq: 349349990, ack: 356870796, win: 8760, src:
20  dst: 1636

52      3.940   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

53      3.941   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

54      3.943   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

55      3.944   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

56      3.946   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

57      3.947   157.57.11.169   157.57.24.193   TCP       .A...., len:
0, seq: 356870796, ack: 349358750, win: 4096,

Rozmiar okna jest używany również do sterowania przepływem. Jeżeli host anonsuje mniejszy rozmiar okna po wypełnieniu buforów lub okno o rozmiarze 0, oznacza to, że nie może w ogóle odebrać danych. Powyżej w ramce 50 host anonsuje rozmiar okna 8760, a w ramce 57 rozmiar został zmniejszony do 4096.

Porty, połączenia i punkty końcowe

Numery portów definiują ostateczne miejsce docelowe wewnątrz komputera. Połączenia są identyfikowane przez pary punktów końcowych. Punkt końcowy to (host, port), np. (199.199.40, 21).

Numery portów

Numery portów są podzielone na trzy zakresy: porty dobrze znane (Well-Known Ports), porty zarejestrowane (Registered Ports) oraz porty dynamiczne i/lub prywatne (Dynamic and/or Private Ports). Porty dobrze znane mają numery w zakresie od 0 do 1023. Porty zarejestrowane mają numery w zakresie od 1024 do 49151. Porty dynamiczne i/lub prywatne to porty z zakresu od 49152 do 65535.

Porty dobrze znane są przydzielane przez organizację IANA (Internet Assigned Numbers Authority) i w większości systemów powinny być używane tylko przez procesy systemowe lub programy wykonywane przez uprzywilejowanych użytkowników. Przykładami tego typu portów są porty 80/TCP oraz 80/UDP. Są one uprzywilejowane i zarezerwowane do używania przez protokół HTTP.

Listy portów zarejestrowanych są ogłaszane przez organizację IANA i w większości systemów mogą być używane przez zwykłe procesy użytkowników i programy wykonywane przez zwykłych użytkowników. Przykładami tego typu portów są porty 1723/TCP i 1723/UDP. Jednak porty te mogą być też używane przez inne procesy, ponieważ są ogólnie akceptowane jako porty sterujące połączeniami w protokole PPTP (Point to Point Tunnelling Protocol).

Porty dynamiczne mogą być używane przez wszystkie procesy i użytkowników. Nie mają ograniczeń.

Organizacja IANA przechowuje listę portów w witrynie sieci Web pod adresem:
http://www.isi.edu/in-notes/iana/assignments/port-numbers
Zamieszczone w tym artykule informacje, jak skontaktować się z innymi firmami, mają ułatwiać uzyskiwanie potrzebnej pomocy technicznej. Informacje te mogą się zmienić bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji dotyczących innych firm.

Sugestie dotyczące czytania plików śledzenia

Nawiąż sesję przy użyciu źródłowego oraz docelowego adresu IP i numerów portów. Jeżeli znajdziesz komunikat o zresetowaniu, zwróć uwagę na numery sekwencji i potwierdzenia, które go spowodowały. Użyj kalkulatora, aby sprawdzić, które potwierdzenia odpowiadają wysłanym danym. Nowsze wersje monitora sieci dokonają tych obliczeń. Czy nadawca ponawia próbę? Zwróć uwagę na liczbę ponownych prób i na czas, który upłynął. Domyślna liczba ponownych prób to 5. Czy odbiorca pyta o brakującą ramkę, potwierdzając poprzedni numer sekwencji? Czy nadawca utworzył kopię zapasową i wysłał ponownie poprzedni pakiet? Komunikat o zresetowaniu mógł zostać spowodowany przez przekroczenie limitu czasu w warstwie TCP lub przekroczenie limitu czasu protokołów wyższej warstwy. Komunikaty o zresetowaniu pochodzące z warstwy TCP powinny być łatwe do odczytania z pliku śledzenia. Określenie komunikatów o zresetowaniu pochodzących z protokołów wyższej warstwy może być trudniejsze.

Na przykład czytanie bloków SMB (Server Message Block) może przekroczyć limit 45 sekund i spowodować reset sesji, nawet jeżeli komunikacja była wolna i działała w warstwie TCP. Plik śledzenia może tylko wykazać, który składnik spowodował zresetowanie. W takiej sytuacji może być konieczne skorzystanie z metod rozwiązywania problemów, aby określić przyczynę.

Aby zobaczyć sekwencjonowanie protokołu TCP w czasie, gdy obecne są protokoły wyższego poziomu, uruchom monitor sieci i wykonaj następujące kroki:
  1. Kliknij polecenie Przechwyć, a następnie wybierz polecenie Wyświetl przechwycone dane.
  2. Kliknij przycisk Wyświetl, a następnie wybierz polecenie Opcje.
  3. Wybierz opcję Auto (opartą na protokołach w filtrze wyświetlania), a następnie kliknij przycisk OK.
  4. Kliknij przycisk Wyświetl, a następnie wybierz opcję Filtr.
  5. Kliknij dwukrotnie ikonę Protokół=dowolny.
  6. Kliknij kartę Protokół, a następnie kliknij opcję Wyłącz wszystko.
  7. W polu listy Wyłączone protokoły wybierz pozycję TCP.
  8. Kliknij opcję Włączone, a następnie kliknij przycisk OK.
  9. Kliknij przycisk OK.

Materiały referencyjne

TCP/IP Illustrated Volume 1; W. Richard Stevens
TCP/IP Illustrated Volume 2 ; Gary R. Wright and W. Richard Stevens
Internetworking with TCP/IP Volume 1; Douglas E. Comer
Internetworking with TCP/IP Volume 2; Douglas E. Comer and David L. Stevens
"TCP/IP Implementation Details"; Dave MacDonald

Właściwości

Numer ID artykułu: 169292 - Ostatnia weryfikacja: 19 września 2003 - Weryfikacja: 1.2
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
Słowa kluczowe: 
kbinfo kboswin2000 kboswinnt400 KB169292

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com