网络协议初始化2
2013-12-22 15:37
260 查看
本文笔记基础: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,
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,
相关文章推荐
- 【Linux 内核网络协议栈源码剖析】系统网络协议栈初始化及数据传输通道建立过程
- kernel网络协议栈初始化
- 【Linux 内核网络协议栈源码剖析】系统网络协议栈初始化及数据传输通道建立过程
- 【Linux 内核网络协议栈源码剖析】系统网络协议栈初始化及数据传输通道建立过程
- VxWorks网络协议栈初始化流程
- 网络协议的初始化dev_add_pack
- 无法初始化属性“vami.netmask0.VM_1”。网络“- VM Network”不具有关联的网络协议配置文件。
- 网络协议的初始化dev_add_pack
- 网络协议的初始化dev_add_pack
- 网络协议的初始化dev_add_pack
- autoPingV3.0官方发布:一款基于PING协议及TCP协议的网络设备在线状态监测报警软件
- iOS:网络编程中三个数据解析协议HTTP、XML、JSON的详细介绍
- LWIP网络协议
- 流媒体技术之复习网络协议
- [置顶] linux网络编程之socket(十四):基于UDP协议的网络程序
- 黑马程序员--10.网络编程--03.【UDP协议相关类】【DatagramPacket类】【DatagramSocket类】【UDP发送端和接收端】
- 编程思想和网络协议处理
- 网络模块初始化-packet_type
- Java网络编程基础知识(IP/端口/协议)