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

linux内核转发包的数据流向

    我想跟踪一个数据包在内核转发过程中的流动方向,但是没什么思路,资料又很少,请各位大侠点化点化~~
1. 用工具调试内核
2. 用prink输出日志或者保存成一个文件.
3. 用strace命令.


引用
    我想跟踪一个数据包在内核转发过程中的流动方向,但是没什么思路,资料又很少,请各位大侠点化点化~~


这个只能去看内核协议栈的源码吧。

推荐一本书 Understanding Linux Network Internals
这里面很清楚。

如果是做IP转发的话,数据包的具体流程是这样的:
网络设备驱动里会使用netif_rcv_skb把包送进协议栈
然后经过ip_rcv
ip_rcv_finish
ip_forward (开始转发) 
ip_forward_finish
ip_finish_output
dev_queue_xmit
最后会调用设备驱动的发送函数dev->hard_start_xmit
包进入驱动的缓冲区,最后被DMA到网卡上,从链路出去

到内核里找上面这些函数去看,就明白了
Understanding Linux Network Internals 这本书讲得很清楚,现在有中文版的了


谢谢大家,我在试试


相关问答:

java如何控制远程Linux重启

我目前在本地的linux上写了一个swing的界面,想通过这个界面来控制其它电脑的linux重启。
我知道用Runtime.getRuntime().exec("shutdown -r");可以控制本机Linux重启,但是怎么控制远程的linux重启呢? ......

关于Linux gcc编译器的问题

原先的GCC版本为4.1.2,我重新编译安装了GCC4.3.2,但是编译完程序运行程序时会出现version `GLIBCXX_3.4.9' not found 这个问题.在网上面查了一下是软连接的问题。但是本人对Linux不太熟悉,“应该制作RPM包然后 ......

有关linux安装脚本kickstart的编写

我之前制作的linux自动安装iso已经成功了,现在想对其进行一些定制修改,比如,更改grub图片等。
我在ks.cfg的%post段里面是这样写的:
%post --nochroot
# Move the contents of the tar into their new locati ......

硬盘安装RedFlag LINUX 后还可以安装WINDOWS吗

是这样的,近段在WINDOWS上上网时总是有病毒,我不习惯装杀毒软件,以前也一直没装过,觉得麻烦。然后就硬盘安装了LINUX,还好,可以上网,可以查东西。但是我是在WINDOWS下做软件开发的,还想装上WINDOWS,不知道能 ......

Linux如何在图形界面和命令行之间切换 [

各位大虾,我正在学习Linux,可是Linux图形界面和命令行之间切换遇到困难,在命令行下输入startx,不是进入图形界面 
而是出现
请问各位,这是为什么? 而且按Ctrl+Alt+F7,也不能命令行进入图形界面。&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号