Wykonawca odpowiada za realizację części technicznej proponowanego systemu. W trakcie pisania tej pracy rozważono kilka metod jego realizacji, między innymi:
Zdecydowano się na drugie rozwiązanie ze względu na jego większą elastyczność i szanse dokładniejszej kontroli sposobu przesyłania pakietów.
W miarę upływu czasu i ewolucji jądra systemu Linux zmieniany był
mechanizm samego sterowania ruchem: początkowo wykonawca był filtrem
iptables
(im niższy priorytet komputera tym większe
prawdopodobieństwo, że pakiet zostanie odrzucony), zmodyfikowanym
później na potrzeby ipchains
, a w końcu został zastąpiony
przez filtr iproute2
.
Ostatecznie w skład wykonawcy wchodzą następujące części:
sch_ep
, tl_db
),
q_ep.so
),
pośrednik
, ang. proxy).
Elementy te współpracują ze sobą zgodnie z rysunkiem 3.2; dokładniejszy opis znajduje się w pozostałej części tego rozdziału.
Opis funkcjonalności i sposobu działania modułów jądra będących częścią tej pracy wymaga wcześniejszego przedstawienia tego fragmentu systemu Linux, który zajmuje się kolejkowaniem pakietów sieciowych (p. 3.3.2). Opis modułów znajduje się w kolejnych częściach pracy (p. 3.3.3 i 3.3.4).