显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

I choose

sailing with my heart ......

 
 
 
 
 
 
 

[置顶] Linux学习大纲

2015-8-3 0:25:04 阅读127 评论0 32015/08 Aug3

1.中断
中断处理流程;
添加中断处理驱动;
2.协议栈
收发报文处理流程;
镜像抓包的实现方法;
套接字option的使用;
3.文件系统
文件系统的挂载方法;
flash分区;
nand flash;
4.设备管理
字符设备;
流设备;
5.时钟管理
定时器中断;
修改系统tick;

作者  | 2015-8-3 0:25:04 | 阅读(127) |评论(0) | 阅读全文>>

netdevice层qdisc队列发包流程

2017-9-30 20:16:44 阅读12 评论0 302017/09 Sept30

1、qdisc
全称queuing discipline,是指协议栈的排队策略。这是一个黑盒功能,主要在net/sched目录下实现。
qdisc的功能可以抽象成两方面:队列功能;流分类功能(traffic classes,TC)。无论是何种实现的队列,对外只呈现enqueue和dequeue的功能,其他的策略管理是完全不可见的。
如下图中,协议栈通过qdisc处理流分类,网络拥塞等问题,最终将报文送往NIC driver的环形队列中。

作者  | 2017-9-30 20:16:44 | 阅读(12) |评论(0) | 阅读全文>>

Linux协议栈Netdevice层发包处理

2017-9-29 23:14:47 阅读11 评论0 292017/09 Sept29

Linux协议栈中netdevice层是与各个网络设备driver衔接的处理层。报文到此阶段,已经完成了MAC头封装,在调用驱动发送报文前还有一些工作要做:1)流量控制; 2)报文GSO分段;3)check sum计算;
对不支持txq的设备,则直接调用发包函数进行发送;对于支持txq的设备则通过Qdisc queue进行发送调度。
Linux协议栈Netdevice层发包处理 - 幽绿丛林 - I choose
 validate_xmit_skb函数执行如下:
获取dev->features,判断

作者  | 2017-9-29 23:14:47 | 阅读(11) |评论(0) | 阅读全文>>

混杂模式抓包的socket类型

2017-9-3 21:03:51 阅读15 评论0 32017/09 Sept3

混杂模式抓包的socket创建步骤如下:
int sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); // 创建Socket,PF_PACKET是指在链路层抓包
struct sockaddr_ll sll; // PF_PACKET类型的socket,只能使用

作者  | 2017-9-3 21:03:51 | 阅读(15) |评论(0) | 阅读全文>>

NAPI收包机制

2017-9-2 20:54:03 阅读15 评论0 22017/09 Sept2

1、收包中断触发后的中断处理程序
/* 检查napi状态(确保没有多个napi同时poll) */
napi_schedule_prep
/* 关闭网卡中断(一旦中断触发,则准备发起下半部函数进入poll模式,一次做多收取weight个报文)*/
/* 调度当前dev所绑定的napi,准备进入polling */
__napi_schedule
2、__napi_schedule执行过程
/* 将当前napi加入到当前cpu的softnet_data的poll列表。 */
list_add_tail(&napi->poll_list, &sd->poll_list);
/* 发起软中断,调用网卡驱动下半部处理。 */

作者  | 2017-9-2 20:54:03 | 阅读(15) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017

注册 登录  
 加关注