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()
就是
相关文档:
安装openssh 服务端
sudo apt-get install openssh-server openssh-client
windows 下客户端
puTTY
常用命令:
一.Ls 查看目录命令
一般放在home 目录下
Ls –l / 根目录下的列表
Ls –a / 根目录下所有的文件
Ls –la 组合的选项
Ls –l / ......
Linux下常用压缩格式的压缩与解压方法
---------------------------------------------
.tar
打包:tar cvf *.tar *.*(原文件或目录)
解包:tar xvf *.tar
---------------------------------------------
.gz
解压1:gunzip *.gz
解压2:gzip -d *.gz
压缩:gzip *.*(原文件或目录)
--------------------------- ......
一个正则表达式的教程可以参看(里面有个测试正则表达式的工具)
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 ......
1 前言
许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出 ......