一、inet_create:IPv4 套接字創建的核心引擎
1.1 核心功能與執行流程
inet_create 是 Linux 內核處理 socket(AF_INET, type, protocol) 系統調用的核心實現,主要完成以下關鍵任務:
-
協議匹配與初始化:根據套接字類型和協議號匹配協議處理模塊
-
資源分配:創建并初始化套接字核心數據結構
-
協議特性配置:設置端口重用、PMTU 發現等網絡參數
-
安全校驗:執行能力檢查與安全模塊回調
其執行流程可分為七個關鍵階段:
// 簡化的代碼執行流程 int inet_create(struct net *net, struct socket *sock, ...) {// 1. 協議匹配list_for_each_entry_rcu(answer, &inetsw[sock->type], list) {if (protocol == answer->protocol) break;}// 2. 動態模塊加載if (unlikely(!answer)) {request_module("net-pf-%d-proto