网络协议初始化2

本文笔记基础:linux tcp ip 协议栈分析

Linux 内核中为了支持多个地址族, 定义了这么一个变量: static struct net_proto_family
*net_families[NPROTO],NPROTO 等于32,也就是说Linux 内核支持最多32 种地址族。不过目前已经
够用了,我们常用的不外乎就是PF_UNIX(1)、PF_INET(2)、PF_NETLINK(16),Linux 还有一个自
有的PF_PACKET(17),即对网卡进行操作的选项。它们都通过如下的结构来定义,这个结构没有太多
的成员:
1. struct net_proto_family {
2. int family; /* 这个值就是地址族的标识 */
3. int (*create)(struct socket *sock, int protocol);
4. ......
5. };
在 PF_INET 地址族之内,BSD 套接字还定义了多种我们熟知套接字类型,如流(stream),数据报
(datagram),原始包(raw)等。

为了支持多种套接字类型,内核中是有多种相应的全局变量与之对应,而不是只有一种。比如proto{}
结构类型的,有inet_protocol{}结构类型的,有inet_protosw{}结构类型的,有proto_ops{}结构类型。

网络协议在网络设备初始化之前完成的。

tcp_v4_init( )和tcp_init( )的不同:前者什么都不做(即不在本书的讨论范围内),而后者才是用来初
始化TCP 协议需要的各项hash 表和sysctl_xxx 全局配置项的。
arp_init 完成系统neighbour 表的初始化。
ip_rt_init 初始化IP 路由表rt_hash_table,






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值