转自:http://blog.csdn.net/wdscq1234/article/details/51926808 写在前面 本文主要是分析kernel-3.8的源代码,主要集中在Network的netdevice层面,来贯穿interface传输数据包的流程,kernel 博大精深,这也仅仅是一点个人愚见,作为一个笔记形式的文章,如有错误或者表述不当之处,还请大家留言批评指正,非常感谢! 主要涉及的file:kernel-3.18/net/core/dev.c kernel-3.18/net…
1.接收帧当网络适配器接收到数据帧时,就会触发一个中断,中断处理程序执行一些需要及时处理的任务,然后在下半部进行其它可以延迟的处理.中断处理程序主要进行以下一些操作:(1)    分配sk_buff数据结构,并将接收到的数据帧从网络适配器I/O端口拷贝到sk_buff缓冲区中:(2)    从数据帧中提取出一些信息,并设置sk_buff相应的参数,这些参数将被上层的网络协议使用,例如skb->protocol:(3)    通过软中断NET_RX_SOFTIRQ通知内核接收到新的数据帧. 内核2…
http://www.cnblogs.com/zmkeil/archive/2013/04/18/3029339.html 1.1简介 VLAN是网络栈的一个附加功能,且位于下两层.首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去.下两层涉及到具体的硬件设备,日趋完善的Linux内核已经做到了很好的代码隔离,对网络设备驱动也是如此,如下图所示: 这里要注意的是,Linux下的网络设备net_dev并不一定都对应实际的硬件设备,只要注册一个struct net_dev…
http://blog.csdn.net/yanghua_kobe/article/details/7485254 首先我们看一下一个主流多队列网卡(E1000)跟多核CPU之间的关系图: 非多队列: linux的网卡由结构体net_device表示,一个该结构体对应一个可以调度的数据包发送队列. 数据包的实体在内核中以结构体sk_buff(skb),形如: 多队列: 一个网卡可以拥有多个队列 接下来,看看TX引擎是如何工作的(注:对于发送和接收数据包有两个名词,分别应对TX,RX) 解释: 函…
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,传输层,应用层.UDP属于运输层,下面我们由下至上一步一步来看: 以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节…
Linux系统捕获数据包流程 为了提高数据包的捕获效率,瓶颈问题是一个需要非常关注的焦点.减少在捕获数据包过程中的瓶颈,就能够提高数据包捕获的整体性能.下面本文将以Linux操作系统为平台,分析捕获数据包的整个过程,通过实验数据得出影响捕获数据包的关键因素,最终确定捕获数据包过程的瓶颈. 在Linux平台下数据包的获取过程为,数据包到达网卡后,会产生一个硬件中断,然后调用网卡驱动程序中的函数来处理.这个中断处理程序首先要做的就是进行一些I/O操作将数据读入.当数据帧成功接收后,收到的数据包会被封…
VC模拟发送数据包-百度关键词查找 逗比汪星人2009-09-06上传   VC模拟发送数据包-百度关键词abcdef查找 详情 http://blog.csdn.net/wangningyu http://download.csdn.net/detail/wangningyu/1637723…
转:http://blog.csdn.net/u010246947/article/details/18224517 4.6.VLAN处理: 4.6.1.vlan原理 对于带vlan的以太网报文,其以太网类型为0x8100,所以链路层中对于带vlan报文的处理就是对于以太网类型为0x8100的报文的处理: vlan,用于在链路层划分广播域,实现数据在链路层分流,在二层交换机中,vlan实际行使其功能是体现在uni端口上,通过在端口上配置能通过 哪些vlan,实现不同的端口可以通行不同的数据流,比…
2.协议相关2.1.第3层协议的管理在Linux内核中,有两种不同目的的3层协议:(1)    ptype_all管理的协议主要用于分析目的,它接收所有到达第3层协议的数据包.(2)    ptype_base管理正常的3层协议,仅接收具有正确协议标志符的数据包,例如,Internet的0x0800.注意sb_buff与net_device中几个字段的区别:sb_buff:unsigned short        protocol高层协议从二层设备的角度所看到的协议,典型的协议包括 IP,IP…
目录 在minicom中添加脚本路径 编写脚本 执行脚本 一个项目里要用的设备需要用串口来模拟传感器来测试,还是Linux下的. 串口助手cutecom很好用,但是不能定时发送数据. 所以用下面这个脚本的方法,但是注意该方法使用脚本里的sleep定时也是不准确的 出处: minicom 自动重复发送数据的实现 在minicom中添加脚本路径 -> minicom -> Ctrl+A->O -> 回车 ->选D- Script Program -> 设置为 /bin/ba…