Các khung nhận được bởi card mạng sẽ được trình điều khiển xử lý và sau đó được chuyển đến tầng trên của ngăn xếp giao thức bởi hạt nhân Linux.Làm thế nào để ngăn chặn hạt nhân chuyển các gói đến lớp mạng?
Có cách nào dễ dàng để ngăn hạt nhân chuyển các gói tới lớp mạng không? Vì vậy mà tôi có thể nhận được các khung từ lớp datalink và xử lý tất cả các gói của bản thân mình (có lẽ các chương trình lớp ứng dụng sẽ được viết lại)?
Tôi nghĩ việc biên dịch lại hạt nhân là cần thiết, điều này có nên được thực hiện bằng cách sửa đổi mã trong softirq hoặc các hàm như netif_rx hoặc trong hàng đợi danh sách trên mỗi cpu không?
Trong thực tế, một số bạn cùng lớp và tôi đang cố triển khai phiên bản giao thức TCP/IP đơn giản trong không gian người dùng cho các bài tập và chúng tôi mới bắt đầu. Tôi đang đọc một số cuốn sách như UNP, APUE2, TCP/IP minh họa v1, v2, kiến trúc mạng Linux, mã nguồn Linux và vân vân. Tôi có một số vấn đề khác, tôi có cần đăng câu hỏi khác không?
Bạn muốn làm gì? Thay đổi hạt nhân có thể không dễ dàng như vậy. – prehistoricpenguin
Bạn thực sự cần mô tả vấn đề bạn đang cố giải quyết. Một trong những câu trả lời dưới đây cho thấy netfilter. Một tùy chọn khác có thể là sử dụng thư viện pcap để giữ các gói dữ liệu thô trực tiếp. Chúng tôi sẽ không biết câu trả lời đúng cho bạn là gì cho đến khi chúng tôi biết bạn đang thực sự giải quyết vấn đề gì. – chetan
Tôi đã chỉnh sửa câu hỏi của mình và thực sự mong đợi một số đề xuất khác. –