Mô hình I / O trong Windows dựa trên một chồng các thành phần. Dữ liệu phải chảy qua các thành phần khác nhau của ngăn xếp đó tồn tại giữa card mạng vật lý và ứng dụng sẽ tiêu thụ dữ liệu. Đôi khi, các thành phần khác nhau đó kiểm tra dữ liệu (ví dụ gói TCP) khi chúng chảy qua ngăn xếp và dựa trên nội dung của gói đó, dữ liệu có thể bị thay đổi hoặc gói có thể bị loại bỏ hoàn toàn.
Đây là một mô hình đơn giản hóa của "ngăn xếp mạng" mà các gói dữ liệu truyền qua để đi từ ứng dụng đến dây và ngược lại.
Một trong những thành phần thú vị nhất được hiển thị trong ảnh chụp màn hình ở trên là API chú thích WFP (Windows Filtering Platform). Nếu chúng ta phóng to về điều đó, nó có thể trông giống như thế này:
Các nhà phát triển có thể tự do cắm các mô-đun của riêng họ vào các vị trí thích hợp trong ngăn xếp này. Chẳng hạn, các sản phẩm chống vi-rút thường sử dụng "trình điều khiển bộ lọc" cắm vào mô hình này và kiểm tra lưu lượng mạng hoặc cung cấp khả năng tường lửa. Dịch vụ Tường lửa Windows rõ ràng cũng phù hợp với mô hình này.
Nếu bạn muốn viết một ứng dụng ghi lại lưu lượng mạng, chẳng hạn như Wireshark, thì cách thích hợp để làm là sử dụng trình điều khiển của riêng bạn và chèn nó vào ngăn xếp càng thấp càng tốt để nó có thể phát hiện các gói mạng trước khi mô-đun tường lửa của bạn có cơ hội để thả chúng.
Vì vậy, có nhiều "trình điều khiển" tham gia vào quá trình này. Nhiều loại trình điều khiển khác nhau quá. Ngoài ra, các hình thức đầu vào / đầu ra khác trên hệ thống, chẳng hạn như ổ đĩa cứng đọc và ghi, theo các mô hình rất giống nhau.
Một lưu ý khác - chú thích WFP không phải là cách duy nhất để tự ám chỉ mình vào ngăn xếp mạng. WinPCap là một ví dụ, giao diện với NDIS trực tiếp với trình điều khiển, có nghĩa là nó có cơ hội chặn lưu lượng trước khi bất kỳ quá trình lọc nào diễn ra.
Trình điều khiển NDIS
WinPCap
Tài liệu tham khảo:
Ngăn xếp TCP / IP thế hệ tiếp theo trong Vista +
Kiến trúc nền tảng lọc Windows