Statystyka protokołów i połączeń sieciowych.



Podobne dokumenty
Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Narzędzia do diagnozowania sieci w systemie Windows

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Adresowanie grupowe. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 25 kwietnia 2006

Zarządzanie sieciami komputerowymi - wprowadzenie

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Protokół DNS. Aplikacja dnsquery

Protokoły wspomagające. Mikołaj Leszczuk

Sieci komputerowe Warstwa transportowa

I - Microsoft Visual Studio C++

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

1 Moduł Diagnostyki Sieci

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Narzędzia diagnostyczne protokołów TCP/IP

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Adresy w sieciach komputerowych

Protokoły sieciowe - TCP/IP

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Programowanie sieciowe

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

ZiMSK. mgr inż. Artur Sierszeń mgr inż. Łukasz Sturgulewski ZiMSK 1

Ping. ipconfig. getmac

Tworzenie aplikacji rozproszonej w Sun RPC

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Protokół zarządzania siecią SNMP

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

PBS. Wykład Organizacja zajęć. 2. Podstawy obsługi urządzeń wykorzystywanych podczas laboratorium.

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

MODEL OSI A INTERNET

Przesyłania danych przez protokół TCP/IP

Laboratorium 6.7.1: Ping i Traceroute

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Wprowadzenie Management Information Base (MIB) Simple Network Management Protocol (SNMP) Polecenia SNMP Narzędzia na przykładzie MIB Browser (GUI)

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

ARP Address Resolution Protocol (RFC 826)

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Simple Network Management Protocol

Sieci komputerowe i bazy danych

TCP/IP (Transmission Control Protocol / Internet Protocol) komunikacji otwartej stosem protokołów

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium - Przeglądanie tablic routingu hosta

Routing i protokoły routingu

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Wireshark analizator ruchu sieciowego

SIECI KOMPUTEROWE ADRESACJA, MEDIA I URZĄDZENIA SIECIOWE

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Laboratorium podstaw telekomunikacji

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Instytut Teleinformatyki

Sieci komputerowe Wykład dla studentów Informatyki Stosowanej studia niestacjonarne

Programowanie współbieżne i rozproszone

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Sieci komputerowe. Fizyczna budowa sieci - urządzenia sieciowe

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP. WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r.

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Sieci Komputerowe Protokół TCP

Sieci komputerowe. Routing. dr inż. Andrzej Opaliński. Akademia Górniczo-Hutnicza w Krakowie.

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Podstawy działania sieci komputerowych

Funkcje warstwy sieciowej. Podstawy wyznaczania tras. Dostarczenie pakietu od nadawcy od odbiorcy (RIP, IGRP, OSPF, EGP, BGP)

RUTERY. Dr inŝ. Małgorzata Langer

Plan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Sieci komputerowe lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl

Administracja sieciami LAN/WAN

1. Budowa stosu TCP/IP

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Routing. mgr inż. Krzysztof Szałajko

Programowanie proceduralne w języku C++ Podstawy

Instrukcja konfiguracji funkcji skanowania

Aneks do instrukcji obsługi routera Asmax Br-804v II

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Rodzina protokołów TCP/IP

Sieci komputerowe - Protokoły wspierające IPv4

Część 4 życie programu

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

TCP/IP formaty ramek, datagramów, pakietów...

Transkrypt:

Statystyka protokołów i połączeń sieciowych. Aplikacja netstat. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

Statystyka połączeń sieciowych. Narzędzie netstat podstawowe pojęcia. port - routing - jest to 16-bitowa liczba, z zakresu 1-65535, która służy do identyfikacji instancji aplikacji sieciowej na danym hoście. W sieciach TCP/IP są dwa rodzaje portów porty TCP, porty UDP. jest procesem wyznaczania najkrótszej trasy i najlepszej metody przesyłania danych między użytkownikami sieci. tablica routingu - tablice danych zawierające adresy sieci odbiorców danych, adresy IP routerów, są budowane przez routery w celu wyznaczania trasy przesyłanych datagramów IP. metryka trasy - parametr charakteryzujący koszt danej trasy. Routery przy określaniu najlepszej trasy posługują się zbiorem parametrów (metrykami), które służą do wyliczenia kosztu trasy (kosztu transmisji). Przykładowe parametry służące do wyliczania kosztu trasy: liczba skoków (liczba routerów do odbiorcy pakietu), pasmo przenoszenia (różnica między maks. i min. częstotliwością transmisji sygnałów w sieci), opóźnienie, czas przejścia pakietu od nadawcy do odbiorcy, obciążenie sieci, stopień wykorzystania urządzeń i łącz, niezawodność, liczba błędów występująca na danej trasie, takty, opóźnienie w warstwie łącza danych, 1 takt = 1/18s, parametry określane przez administratora, mogą być kombinacja różnych parametrów. 2

Statystyka połączeń sieciowych. Narzędzie netstat. Narzędzie netstat służy do uzyskiwania informacji o statystyce protokołu i połączenia sieciowego na danym hoście. Narzędzie netstat uruchomione z odpowiednimi parametrami pozwala uzyskać informację o: połączeniach sieciowych i otwartych portach, statystykę transmisji ramek ethernetowych, tabelę routingu, do obsługi tabeli routingu służy polecenie linii komend route, informacje o metryce trasy, stan bieżących połączeń. 3

Narzędzie netstat C:\Users\admin>netstat /? Wyświetla statystykę protokołu i bieżące połączenia sieciowe TCP/IP. NETSTAT [-a] [-e] [-f] [-n] [-o] [-p protokół] [-r] [-s] [-t] [interwał] -a Wyświetla wszystkie połączenia i porty nasłuchujące. -e Wyświetla statystykę sieci Ethernet. -f Wyświetla w pełni kwalifikowane nazwy domen (FQDN) adresów obcych. -n Wyświetla adresy i numery portów w postaci liczbowej. -o Wyświetla dla każdego połączenia skojarzony z nim identyfikator procesu będącego jego właścicielem. -p protokół Wyświetla połączenia dla określonego protokołu; może to być protokół TCP, UDP, TCPv6 lub UDPv6. Jeżeli ta opcja zostanie użyta razem z opcją -s do wyświetlenia statystyki wybranego protokołu, protokół może mieć dowolną wartość z następujących: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP lub UDPv6. -r Wyświetla ś tabelę ę routingu. -s Wyświetla statystykę wybranego protokołu. Domyślnie jest to statystyka protokołów IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP i UDPv6; do określenia jej podzbioru można użyć opcji -p. -t Wyświetla bieżący stan odciążania połączenia. interwał Ponownie wyświetla wybraną statystykę, odczekując zadaną liczbę sekund pomiędzy każdym wyświetleniem. 4

Przykład: statystyka protokołu TCP. Narzędzie netstat 5

Narzędzie netstat Przykład: aktywne połączenia TCP. 6

Specyfikacja struktury MIB_TCPTABLE * Nazwa struktury: MIB_TCPTABLE Opis : Struktura MIB_TCPTABLE zawiera tablicę połączeń TCP. Atrybuty : dwnumentries - Określa liczbę elementów tabeli. table - Wskaźnik do tablicy połączeń TCP (atrybut table to tablica struktur MIB_TCPROW). Implementacja struktury MIB_TCPTABLE: typedef struct _MIB_TCPTABLE { dwnumentries; MIB_TCPROW table[any_size]; } MIB_TCPTABLE, *PMIB_TCPTABLE; * MIB - Management Information Base 7

Nazwa struktury: MIB_TCPROW Specyfikacja struktury MIB_TCPROW Opis : Struktura MIB_TCPROW zawiera informację o statusach połączeń TCP. Atrybuty : dwstate Struktura zadeklarowana w pliku Iprtrmib.h. Atrybut określa status połączenia TCP. Możliwe wartości atrybutu: MIB_TCP_STATE_CLOSED, MIB_TCP_STATE_LISTEN, MIB_TCP_STATE_SYN_SENT, MIB_TCP_STATE_SYN_RCVD, MIB_TCP_STATE_ESTAB, MIB_TCP_STATE_FIN_WAIT1, MIB_TCP_STATE_FIN_WAIT2, MIB_TCP_STATE_CLOSE_WAIT, MIB_TCP_STATE_CLOSING, MIB_TCP_STATE_LAST_ACK, MIB_TCP_STATE_TIME_WAIT, MIB_TCP_STATE_DELETE_TCB dwlocaladdr - Określa adres IP lokalnego hosta. Wartości zero wskazuje, że aplikacja nasłuchująca może zaakceptować połączenie na dowolnym interfejsie. dwlocalport - Atrybut określa numer portu lokalnego hosta. dwremoteaddr - Atrybut określa adres IP zdalnego hosta. dwremoteport - Atrybut określa numer portu zdalnego hosta. Implementacja struktury MIB_TCPROW: typedef struct _MIB_TCPROW { dwstate; dwlocaladdr; dwlocalport; dwremoteaddr; dwremoteport; } MIB_TCPROW, *PMIB_TCPROW; 8

Specyfikacja struktury MIB_TCPSTATS Nazwa struktury: MIB_TCPSTATS Opis : Atrybuty : Struktura MIB_TCPSTATS zawiera informacje statystyczne o protokole TCP na lokalnym hoście. dwrtoalgorithm - Określa używany algorytm RTO (Retransmission Time-Out), RFC 1122, algorytmy Jacobson a, Karn a. dwrtomin - dwrtomax - dwmaxconn - dwactiveopens - dwpassiveopens - dwattemptfails - dwestabresets - dwcurrestab - dwinsegs - dwoutsegs - dwretranssegs - dwinerrs - dwoutrsts - dwnumconns - V. Jacobson, Congestion Avoidance and Control, ACM SIGCOMM-88, August 1988. Określa minimalny czas retransmisji liczony w milisekundach. Określa maksymalny czas retransmisji liczony w milisekundach. Określa maksymalna liczbę połączeń. Wartość atrybutu = -1; oznacza zmienną liczbę połączeń. Określa liczbę aktywnych otwarć active opens. Aktywne otwarcie określa połączenie inicjujące klienta z serwerem. Określa liczbę pasywnych otwarć pasive opens. Pasywne otwarcie określa liczbę otwartych połączeń serwera nasłuchującego na zapytania klienta. Określa liczbę nieudanych prób połączeń. Określa liczbę zresetowanych połączeń. Określa liczbę bieżących połączeń. Określa liczbę otrzymanych segmentów. Określa liczbę wysłanych segmentów (liczba nie uwzględnia segmentów retransmitowanych). Określa liczbę retransmitowanych segmentów. Określa liczbę odebranych błędów. Określa liczbę wysłanych segmentów z flagą reset=1. Określa liczbę wszystkich połączeń (przyrostowo). 9

Implementacja struktury MIB_TCPSTATS typedef struct _MIB_TCPSTATS { } MIB_TCPSTATS, *PMIB_TCPSTATS; dwrtoalgorithm; dwrtomin; dwrtomax; dwmaxconn; dwactiveopens; dwpassiveopens; dwattemptfails; dwestabresets; dwcurrestab; dwinsegs; dwoutsegs; dwretranssegs; dwinerrs; dwoutrsts; dwnumconns; 10

Nazwa funkcji: GetTcpTable() Zwracana wartość: Specyfikacja funkcji GetTcpTable() Funkcja zwraca NO_ERROR gdy wywołanie funkcji zakończyło się sukcesem. W innym przypadku zwracane są kody błędów: ERROR_INVALID_PARAMETER, ERROR_INSUFFICIENT_BUFFER, ERROR_NOT_SUPPORTED, inne. Argumenty : PMIB_TCPTABLE ptcptable, P pdwsize, BOOL border ptcptable - [out] Wskaźnik do bufora który przechowuje tablicę połączeń TCP (struktura MIB_TCPTABLE). pdwsize - border - [in, out] Dla wejścia, określa wielkość bufora wskazywany przez wskaźnik ptcptable. Gdy bufor jest za mały dla odbioru danych połączenia, funkcja GetTcpTable() ustawia wartość tego parametru na wymaganą wielkość bufora. [in] Określa czy tablica połączeń powinna być uporządkowana (sortowana). Gdy parametr ma wartość TRUE, tablica jest uporządkowana w sposób: lokalny adres IP, lokalny numer portu, zdalny adres IP, zdalny numer portu. Opis : Funkcja GetTcpTable() służy do pobierania informacji o tablicy połączeń TCP. 11

Specyfikacja funkcji GetTcpStatistics() Nazwa funkcji : GetTcpStatistics() Zwracana wartość: Funkcja zwraca NO_ERROR gdy wywołanie funkcji zakończyło się sukcesem. W innym przypadku funkcja używa FormatMessage dla uzyskania wiadomości o zawracanym błędzie Argumenty : PMIB_TCPSTATS pstats pstats - [out] Wskaźnik do struktury MIB_TCPSTATS do której pobierane są dane o statystyce TCP lokalnego hosta. Opis : Funkcja GetTcpStatistics() służy do pobierania informacji o statystyce TCP lokalnego hosta. 12

Specyfikacja makra MAKEWORD() Nazwa makra : MAKEWORD() Zwracana wartość: WORD Argumenty : BYTE blow, BYTE bhigh blow drugi bajt nowej wartości typu WORD (the low-order byte of the new value). bhigh pierwszy bajt nowej wartość (the high-order byte of the new value). Makro służy do tworzenia zmiennej typu WORD (16-bitowy unsigned integer) z dwóch zmiennych typu BYTE (unsigned char, 8 bitów). Makro zadeklarowane w Windef.h, zawiera Windows.h Przykład: MAKEWORD(4,3) = 772 (dec) 4, (bin) 00000100 (dec) 3, (bin) 00000011 wartość (dec) 772, (bin) 00000011 00000100 Implementacja makra MAKEWORD: #define MAKEWORD(a, b) ((WORD)(((BYTE)(a)) ((WORD)((BYTE)(b))) << 8)) 13

Specyfikacja funkcji getconnstatistics() void getconnstatistics() { cout << "*** Statystyka polaczen ***" << endl; MIB_TCPSTATS * ptcpstats = NULL; ptcpstats = new MIB_TCPSTATS[sizeof(MIB_TCPSTATS)]; GetTcpStatistics(pTcpStats); cout << "\tdwrtoalgorithm. : " << ptcpstats->dwrtoalgorithm << endl; cout << "\tdwnumconns... : " << ptcpstats->dwnumconns << endl; } delete [] ptcpstats; 14

Specyfikacja funkcji getconntable() void getconntable() { MIB_TCPTABLE * ptcptable = NULL; status = NO_ERROR; dwactualsize = MAKEWORD(0,0); string strstate; struct in_addr inadlocal, inadremote; dwremoteport = MAKEWORD(0,0); string slocalip, sremoteip; cout << "*** Tablica polaczen ***" << endl; status = GetTcpTable(pTcpTable, &dwactualsize, TRUE); if (status == ERROR_INSUFFICIENT_BUFFER) { ptcptable = new MIB_TCPTABLE[dwActualSize]; status = GetTcpTable(pTcpTable, &dwactualsize, TRUE); } 15

Specyfikacja funkcji getconntable() if (ptcptable!= NULL) { cout << "\tlok. Adres" << ":" << "Port\t\t" ; cout << "Zdalny Adres" << ":" << "Port\t" ; cout << "Stan" << endl; for ( unsigned int i = 0; i < ptcptable->dwnumentries; i++) { switch (ptcptable->table[i].dwstate) { case MIB_TCP_STATE_TIME_WAIT: strstate= "TIME_WAIT"; break; case MIB_TCP_STATE_LAST_ACK: strstate= "LAST_ACK"; break; case MIB_TCP_STATE_CLOSING: strstate= "CLOSING"; break; case MIB_TCP_STATE_CLOSE_WAIT: strstate= "CLOSE_WAIT"; break; case MIB_TCP_STATE_FIN_WAIT1: strstate="fin_wait1"; break; case MIB_TCP_STATE_ESTAB: strstate ="ESTAB"; break; case MIB_TCP_STATE_SYN_RCVD: strstate="syn_rcvd"; break; case MIB_TCP_STATE_SYN_SENT: strstate="syn_sent" ; break; case MIB_TCP_STATE_LISTEN: strstate="listen" ; break; case MIB_TCP_STATE_DELETE_TCB: strstate="delete" ; break; default: cout << "Unknown" << endl; break; } 16

Specyfikacja funkcji getconntable() inadlocal.s_addr = ptcptable->table[i].dwlocaladdr; if (strstate!= "LISTEN") dwremoteport = ptcptable->table[i].dwremoteport; else dwremoteport = 0; inadremote.s_addr = ptcptable->table[i].dwremoteaddr; slocalip=inet_ntoa(inadlocal); sremoteip=inet_ntoa(inadremote); cout << "\t"; cout << slocalip << ":" << ntohs((unsigned short)(0x0000ffff & ptcptable->table[i].dwlocalport)) << "\t\t" ; cout << sremoteip << ":" << ntohs((unsigned short)(0x0000ffff & dwremoteport))<< "\t\t"; cout << strstate << endl; } } delete [] ptcptable; } 17

Specyfikacja projektu netstat1 Nazwa projektu: netstat1 Typ projektu: Win32 console application Lista plików: netstat1.cpp Metoda kompilacji: Microsoft Visual C++ 2008. Utworzyć projekt typu 'Win32 console application w menu (-)File-> New -> Project-> Other languages-> Visual C++ -> win32 -> Win32 console application -> wpisać nazwę: netstat1 -> przycisk (OK) -> Okno Win32 application wizard netstat1-> wybrać: Application settings -> wybrać: Empty project-> Przycisk (Finish). Konfiguracja projektu: (-)Project-> nazwa_projektu Properies... -> Configuration Properies-> Linker-> Input -> Additional Dependecies, wpisać: ws2_32.lib IPHlpApi.Lib Funkcjonalność: Aplikacja pozwala uzyskać informację i statystyce protokołu TCP i połączeniach TCP. Aby uruchomić aplikację należy w linii komend (Run-> cmd) wpisać: \> netstat1 18

Struktura programu netstat1 Pliki nagłówkowe: windows.h, winsock.h, iphlpapi.h, iptypes.h, iostream, string Funkcje programu: Funkcje WinSock: WSAStartup(); WSACleanup(); GetTcpTable(); GetTcpStatistics() Funkcje zdefiniowane: getconntable(), getconnstatistics() Zmienne programu: WSADATA wsadata; WORD wversionrequested = MAKEWORD(1,1); int nret; 19

Struktura programu Funkcja: main() Zwracana wartość: void Argumenty : brak (1) Sprawdzenie wersji WinSock a. nret = WSAStartup(wVersionRequested, &wsadata); (2) Wywołanie funkcji getconnstatistics(); (3) Wywołanie funkcji getconntable(); (4) Zamknięcie winsock a. Wywołanie funkcji WSACleanup(); 20

///////////////////////// // tcpstat, netstat //////////////////////// #include <windows.h> #include <winsock.h> #include <iphlpapi.h> #include <iptypes.h> #include <iostream> #include <string> using namespace std; void void getconntable(); getconnstatistics(); void main() { WORD wversionrequested = MAKEWORD(1,0); WSADATA wsadata; int nret; } nret = WSAStartup(wVersionRequested, &wsadata); getconnstatistics(); getconntable(); WSACleanup(); 21

Dodatek Management Information Base (MIB) Baza MIB, (ang.) Management Information Base jest numeryczną bazą służącą do przechowywania danych o zarządzanym systemie. Struktura bazy MIB określa standard SMI, (ang.) Structure of Management Information, RFC 1155. Baza MIB ma strukturę drzewa w której liściami są MIB'y służące do zarządzania poszczególnymi obiektami. Struktura MIB (MIB-II): { iso org(3) dod(6) internet(1) mgmt(2) mib-2 (1) 1 } { 1 3 6 1 2 1 1 } { iso org dod internet mgmt mib-2 system sysservices Instance} {1.3.6.1.2.1.1.7.0}. Przykład. Główny MIB: 1.3.6.1.4.1.42.1.1 może reprezentować obiekt w zarządzanym systemie (host, router). MIB'y zbudowane z głównego MIB'a (root MIB) służą do zarządzania określonymi obiektami. 22

Dodatek Management Information Base (MIB) Przykład cd. MIB y identyfikujące różne typy obiektów: systemowe {1.3.6.1.2.1.1} interfejsy {1.3.6.1.2.1.2} address translation {1.3.6.1.2.1.3} IP subtree {1.3.6.1.2.1.4} ICMP {1.3.6.1.2.1.5} TCP {1.3.6.1.2.1.6} UDP {1.3.6.1.2.1.7} Exterior Gateway Protocol (EGP) {1.3.6.1.2.1.8} transmisja {1.3.6.1.2.1.9} Informacje standardach i zastosowaniach MIB można znaleźć w następujących dokumentach RFC 1155, RFC 1157, RFC 1213, RFC 2578, RFC 4113. 23