Linux 网络系统学习 IPv6 的初始化(详细而全面)
转自:http://blog.csdn.net/rstevens/archive/2007/04/10/1559289.aspx
1.
网络子系统
1.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
网络系统层次结构图。
1.2.
网络子系统的初始化
·
Socket
层的初始化:
Init()->do_basic_setup()->sock_init()
Sock_init()
:对
sock
和
skbuff
结构进行
SLAB
内存的初始化工作
·
各种网络协议族的初始化:
Do_initcalls()
:
对于编译到内核中的功能模块(而不是以模块的形式动态加载),它的初始化函数会在这个地方被调用到。
内核映象中专门有一个初始化段,所有编译到内核中的功能模块的初始化函数都会加入到这个段中;而
do_initcalls()
就是
相关文档:
中国最完整的sysctl.conf优化方案
网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫。为解决此问题,经过两天的整理,查了N多资料,将大家常用的总结如下,很多默认的不需要修改的暂未涉及,今后将逐步把所有的项目都有个翻译、讲解、修改建议,如有修改,将以此文为准,其他地方的 ......
在Linux下写了个小的socket程序,分为客户端和服务器端,服务端开一个端口(20000),做为一个daemon,等待客户的连接请求。一旦有客户连接(客户端的IP和端口号是不固定的),服务器端打印出客户端的IP地址和端口,并且向客户端发送欢迎信息和时间。
下面是 ......
一个正则表达式的教程可以参看(里面有个测试正则表达式的工具)
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#ad
正则表达是用来匹配字符串的好东东。
如果用户熟悉Lin ......
Linux中的进程通信
1.管道
函数原型:int pipe(int filedes[2]);
函数返回值: 正确返回0;错误返回-1
其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。
例子1:
#include<stdio.h>
#include<stdlib.h>
#include<u ......
QDisk 1.2 - a disk-based quorum daemon for CMAN / Linux-Cluster
1. Overview
1.1 Problem
In some situations, it may be necessary or desirable to sustain a majority node failure of a cluster without introducing the need for asymmetric cluster configurations (e.g. client-server, or heavily-weighted ......