易截截图软件、单文件、免安装、纯绿色、仅160KB

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()
就是


相关文档:

linux下调试入门之暂停的使用

 最近通读了一下软件调试的艺术(The art of debugging with gdb,ddd,eclipse),总体来说是一般入门级的调试用书。我个人感觉对初学gdb的有一定的作用,有愧于题目art。我简单的做个总结,供入门参考。主要讲了gdb的常用命令以及常见bug的调试。
常用命令:
1. 暂停机制
    a.断点的使用
 & ......

Linux Socket编程实例(一个Hello World程序)

      在Linux下写了个小的socket程序,分为客户端和服务器端,服务端开一个端口(20000),做为一个daemon,等待客户的连接请求。一旦有客户连接(客户端的IP和端口号是不固定的),服务器端打印出客户端的IP地址和端口,并且向客户端发送欢迎信息和时间。
      下面是 ......

linux C使用管道通信(一)

 Linux中的进程通信
1.管道
   函数原型:int pipe(int filedes[2]);
   函数返回值: 正确返回0;错误返回-1
   其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。
例子1:
#include<stdio.h>
#include<stdlib.h>
#include<u ......

Linux网络代码导读v0.2

1 前言
许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号