linux_network_1

socket的创建

1
2
3
4
5
6
7
8
9
10
11
12
13
SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
{
return __sys_socket(family, type, protocol);
}

--> __sys_socket_create
--> sock_create
--> __sock_create
--> sock_alloc
--> // 获得每个协议族的操作表 rcu_dereference(net_families[family]);
--> pf->create 调用对应的协议栈创建函数
--> eg:AF_INET inet_create 对sock一些回调函数中=做绑定 对sock对象进行初始化