Przez ostatnich piętnaście lat nastąpił znaczący rozwój sieciowych technologii komputerowych. Wzrosła zdolność do komunikacji komputerów połączonych w sieć. Dzięki temu grupy ludzi znajdujące się daleko od siebie mogą wymieniać między sobą dane i informacje. Opracowano ogólnoświatowy standard wymiany danych umożliwiający komunikację między maszynami o różnej architekturze, pochodzącymi od różnych producentów, wykorzystującymi różny sprzęt sieciowy oraz pracującymi pod kontrolą odmiennych systemów operacyjnych. Takim standardem stał się zestaw protokołów TCP/IP, który jest uznawany za zestaw obowiązujący w dzisiejszym Internecie. Każdy, kto chce zajmować się zagadnieniami sieciowymi musi doskonale orientować się w zasadach działania protokołów tej rodziny.
W trakcie zgłębiania tajników protokołów z rodziny TCP/IP doszliśmy do wniosku, że dostępne opracowania na ten temat dostarczają wprawdzie pełną wiedzę o zasadach ich działania, lecz nie umożliwiają praktycznego sprawdzenia zachowań tych protokołów. Stworzenie warunków empirycznego zdobywania wiedzy na temat działania protokołów jest kosztowne. Wymaga to kilku do kilkudziesięciu (w zależności od skomplikowania topologii sieci, którą chcemy się zajmować) komputerów z kartami sieciowymi i okablowaniem. Nie każdego stać na taki wydatek, nawet w laboratoriach komputerowych naszego Wydziału nie jest prosto zorganizować takie warunki. Wiąże się to również z tym, że do pewnych prób potrzebne są możliwości konfiguracyjne dostępne tylko na prawach administratora i w takich wypadkach, ze względów bezpieczeństwa zestaw komputerów udostępnianych do badań musi być odseparowany od reszty sieci. Wymaga to rekonfiguracji sieci zarówno przed rozpoczęciem eksperymentów, jak i po ich zakończeniu. Postanowiliśmy zatem stworzyć środowisko pozwalające poznać zasady działania i konfiguracji sieci TCP/IP bez ponoszenia tak wielkich kosztów.
Tematem naszej pracy jest symulator protokołów sieciowych TCP/IP. Postanowiliśmy zaprojektować i zaimplementować oprogramowanie dydaktyczne symulujące działanie sieci komputerowej. W celu ograniczenia zakresu prac przyjęlimy jako obowiązujący, najpopularniejszy fizyczny nośnik danych -- sieć Ethernet. Program nasz daje możliwość zaprojektowania w trybie interaktywnym (poprzez układanie i łączenie ze sobą elementów sieciowych) dowolnie złożonej topologii sieci. Po zbudowaniu sieci fizycznej możliwa jest jej konfiguracja: modyfikuje się niektóre parametry fizyczne (zawodność, czasy przesyłania w kablu, czasy przetwarzania przez interfejsy) oraz parametry warunkujące działanie zaimplementowanych protokołów (adresy IP, tablice rutingu). Kolejnym etapem jest uruchomienie na tak skonfigurowanej sieci jednej z zaimplementowanych aplikacji. W trakcie symulacji można podglądać wydarzenia zachodzące na dowolnym elemencie zbudowanej sieci. Można obserwować zarówno zawartość ramek i pakietów przepływających przez dany element, jak i komunikaty informujące o decyzjach podejmowanych w ramach różnych protokołów i na poziomie sprzętowym komunikacji.
Mamy nadzieję, że nasza praca zostanie wykorzystana jako narzędzie dydaktyczne służące do wprowadzenia w zasady działania protokołów TCP/IP w sieci Ethernet oraz dające możliwość eksperymentowania z konfiguracją dowolnie złożonych topologii sieciowych. Mamy także nadzieję, iż znajdzie się ktoś kto rozwinie stworzone przez nas oprogramowanie -- w tym celu w podsumowaniu wskazujemy możliwe kierunki rozwoju, omawiamy w pracy pewne szczegóły implementacyjne oraz dostarczamy pełną dokumentację techniczną, której zawartość omawiamy w dodatku C.