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 这本书讲得很清楚,现在有中文版的了 谢谢大家,我在试试
相关问答:
我之前制作的linux自动安装iso已经成功了,现在想对其进行一些定制修改,比如,更改grub图片等。 我在ks.cfg的%post段里面是这样写的: %post --nochroot # Move the contents of the tar into their new locati ......
我们隶属中科院计算所网络重点实验室(http://www.ict.ac.cn/survey/channel/detail443.asp)基础设施课题组. 现因项目和业务拓展的需要,特需要招聘与项目相关的网络应用工程师1-2名。 具体要求如下。有意者 ......
请问谁有在linux下安装oracle的指导文档最好是11g的,安装了好几次都失败了,郁闷…… 10g的文档,供参考. linux平台下oracle数据库安装 http://blog.csdn.net/tianlesoftware/archive/2009/10/24/47 ......
if(setsockopt(TUdpRec_sUDP,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int)) == 0) printf( "set senbufsize = %d\n", nRecvBuf); if(getsockopt(TUdpRec_sUDP, SOL_SOCKET, SO_RC ......
各位大虾,我正在学习Linux,可是Linux图形界面和命令行之间切换遇到困难,在命令行下输入startx,不是进入图形界面 而是出现 请问各位,这是为什么? 而且按Ctrl+Alt+F7,也不能命令行进入图形界面。&nbs ......