电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

ipv6初始化和处理流程分析

ipv6初始化和处理流程分析_第1页
1/36
ipv6初始化和处理流程分析_第2页
2/36
ipv6初始化和处理流程分析_第3页
3/36
Ipv6 初始化和处理流程分析一.Ipv6 的初始化1.网络子系统概述Linux 内核中,与网络相关的代码是一个相对独立的子系统,称为网络子系统.网络子系统是一个层次化的结构,可分为以下几个层次:1)Socket 层Linux 在进展过程中,采纳 BSD socket APIs 作为自己的网络相关的 API 接口。同时,Linux 的目标又要能支持各种不同的协议族,而且这些协议族都可以使用 BSD socket APIs 作为应用层的编程接口。因此,在 socket APIs 与协议族层之间抽象出一个 socket 层,用于将 user space 的 socket API 调用,转给具体的协议族做处理。2)协议族层(INET 协议族、INET6 协议族等)Linux 网络子系统功能上相当完备,它不仅支持 INET 协议族(也就是通常所说的 TCP/IP stack),而且还支持其它很多种协议族,如 DECnet, ROSE, NETBEUI 等.INET6 就是一种新增加的协议族。对于 INET、INET6 协议族来说,又进一步划分为传输层和网络层。 3)设备驱动层设备驱动层则主要将协议族层与物理的网络设备隔离开。它不在本文的讨论范围之内。下图是 Linux 网络系统层次结构图。2。网络子系统的初始化1)Socket 层的初始化:Init()->do_basic_setup()—〉sock_init()Sock_init():对 sock 和 skbuff 结构进行 SLAB 内存的初始化工作2)各种网络协议族的初始化:Do_initcalls():对于编译到内核中的功能模块(而不是以模块的形式动态加载),它的初始化函数会在这个地方被调用到。 内核映象中专门有一个初始化段,所有编译到内核中的功能模块的初始化函数都会加入到这个段中;而 do_initcalls() 就是依次执行初始化段中的这些函数.INET 协 议 族 通 常 是 被 编 译 进 内 核 的 ; 它 的 模 块 初 始 化 函 数 是 net/ipv4/af_inet.c 中的 inet_init() 而 INET6 是 作 为 一 个 模 块 编 译 的 。 它 的 模 块 初 始 化 函 数 是 net/ipv6/af_inet6.c 中的 inet6_init()3.协议族Linux 网络子系统可以支持不同的协议族,Linux 所支持的协议族定义在 include/linux/socket。h1)协议族数据结构协议族数据结构是 struct net_proto_family。struct net_proto_family { int family; int (*create)(struct socket *sock, int protocol); short authentication; short encryption; short encrypt_net; struct module *owner;};这个结构...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

ipv6初始化和处理流程分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部