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).