Model we / wy w systemie Windows opiera się na stosie składników. Dane muszą przepływać przez różne składniki tego stosu, który istnieje między fizyczną kartą sieciową a aplikacją, która je wykorzysta. Czasami te różne składniki sprawdzają dane (na przykład pakiet TCP), gdy przepływają one przez stos, i na podstawie zawartości tego pakietu dane mogą zostać zmienione lub pakiet może zostać całkowicie odrzucony.
Jest to uproszczony model „stosu sieciowego”, przez który przepływa pakiet, aby dostać się z aplikacji do drutu i odwrotnie.
Jednym z najciekawszych elementów pokazanych na powyższym zrzucie ekranu jest interfejs API objaśnienia WFP (Windows Filtering Platform). Jeśli to przybliżymy, może wyglądać mniej więcej tak:
Deweloperzy mogą swobodnie podłączać własne moduły do odpowiednich miejsc na tym stosie. Na przykład produkty antywirusowe zwykle używają „sterownika filtra”, który podłącza się do tego modelu i sprawdza ruch w sieci lub zapewnia funkcje zapory. Usługa Zapory systemu Windows oczywiście również pasuje do tego modelu.
Jeśli chcesz napisać aplikację, która rejestruje ruch sieciowy, taką jak Wireshark, odpowiednim sposobem na to byłoby użycie własnego sterownika i włożenie go do stosu tak nisko, jak to możliwe, aby mógł wykryć pakiety sieciowe zanim moduł zapory sieciowej będzie mógł je upuścić.
W proces ten zaangażowanych jest wielu „kierowców”. Wiele różnych typów sterowników. Również inne formy wejścia / wyjścia w systemie, takie jak odczyt i zapis na dysku twardym, są bardzo podobne.
Jeszcze jedna uwaga - objaśnienia WFP to nie jedyny sposób na wejście w stos sieciowy. Przykładowo WinPCap łączy się z NDIS bezpośrednio ze sterownikiem, co oznacza, że ma on możliwość przechwycenia ruchu, zanim w ogóle nastąpi filtrowanie.
Sterowniki NDIS
WinPCap
Bibliografia:
Stos TCP / IP nowej generacji w systemie Vista +
Architektura platformy filtrowania systemu Windows