Do monitorowania transmisji danych w sieci komputerowej należy zastosować program typu
A. kompilator.
B. sniffer.
C. debugger.
D. firmware.
Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.13-X-15.08).
Do monitorowania transmisji danych w sieci komputerowej stosuje się program typu sniffer, czyli analizator pakietów. Taki program potrafi przechwytywać ramki i pakiety przesyłane przez interfejs sieciowy, a potem pokazywać ich zawartość w czytelnej formie: adresy MAC, adresy IP, porty TCP/UDP, użyte protokoły, flagi TCP, czasy odpowiedzi czy błędy komunikacji. Klasycznym przykładem jest Wireshark, a w środowiskach tekstowych często używa się tcpdump. Moim zdaniem to jedno z najbardziej praktycznych narzędzi w diagnostyce sieci, bo zamiast zgadywać, co się dzieje, można po prostu zobaczyć ruch na kablu albo w Wi-Fi. Sniffer przydaje się np. przy sprawdzaniu, czy klient wysyła zapytanie DHCP, czy DNS odpowiada poprawnie, czy aplikacja faktycznie łączy się z danym serwerem, albo czy występują retransmisje TCP świadczące o problemach z łączem. W dobrych praktykach branżowych ważne jest, aby używać takich narzędzi zgodnie z polityką bezpieczeństwa i tylko tam, gdzie mamy uprawnienia, bo przechwytywanie cudzej transmisji może naruszać poufność danych. W sieciach przełączanych często stosuje się mirroring portu, TAP sieciowy albo przechwytywanie lokalne na hoście. Sniffer nie naprawia problemu automatycznie, ale daje bardzo konkretne dane diagnostyczne, a to w administracji siecią jest często połowa sukcesu.
W tym pytaniu chodzi o narzędzie do obserwowania rzeczywistej transmisji danych w sieci, więc właściwym skojarzeniem powinien być sniffer, a nie ogólne oprogramowanie systemowe czy programistyczne. Firmware to oprogramowanie wbudowane w urządzenie, na przykład w router, kartę sieciową, drukarkę albo punkt dostępowy. Odpowiada ono za działanie sprzętu i może mieć wpływ na stabilność transmisji, obsługę standardów 802.11, VLAN-ów czy funkcji bezpieczeństwa, ale samo w sobie nie jest typowym programem do monitorowania pakietów. Można zaktualizować firmware przełącznika albo routera, gdy są błędy, lecz nie zastępuje to analizy ruchu sieciowego. Debugger też bywa mylący, bo służy do śledzenia działania programu: zatrzymywania kodu w punktach przerwania, podglądu zmiennych, stosu wywołań i błędów logicznych. Jest świetny dla programisty, ale nie pokazuje normalnie ramek Ethernet, zapytań ARP, pakietów IP czy sesji TCP w sieci. Kompilator ma jeszcze inne zadanie: tłumaczy kod źródłowy na kod maszynowy albo pośredni, więc dotyczy procesu tworzenia aplikacji, nie diagnostyki transmisji. Typowy błąd myślowy polega tutaj na wrzucaniu wszystkich narzędzi komputerowych do jednego worka. W praktyce administracyjnej trzeba rozróżniać narzędzia do programowania, narzędzia systemowe i narzędzia sieciowe. Do monitorowania i analizy ruchu używa się analizatora pakietów, np. Wireshark lub tcpdump, najlepiej zgodnie z zasadą najmniejszych uprawnień, procedurami bezpieczeństwa i tylko w sieciach, do których mamy prawo dostępu. Z mojego doświadczenia wynika, że dobrze wykonany zrzut pakietów bardzo szybko pokazuje, czy problem jest w DNS, routingu, zaporze, aplikacji czy po prostu w braku odpowiedzi drugiej strony.