上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 70 下一页
摘要: 套接字缓存之sk_buff结构 https://www.cnblogs.com/wanpengcoder/p/7529486.html 来此此处 sk_buff结构用来描述已接收或者待发送的数据报文信息;skb在不同网络协议层之间传递,可被用于不同网络协议,如二层的以太网协议,三层的ip协议,四层的 阅读全文
posted @ 2019-11-13 21:36 codestacklinuxer 阅读(333) 评论(0) 推荐(0)
摘要: 1.5.1 当邻居项不处于NUD_CONNECTD状态时,不允许快速路径发送报文,函数neigh_resolve_output 用于慢而安全的输出,通常用初始化neigh_ops结构 来实例output函数,当邻居从NUD_CONNECT转到非NUD_CONNECT的时候,使用neigh_suspe 阅读全文
posted @ 2019-11-12 20:12 codestacklinuxer 阅读(806) 评论(0) 推荐(0)
摘要: 用户态与内核态交互通信的方法不止一种,sockopt是比较方便的一个,写法也简单.缺点就是使用 copy_from_user()/copy_to_user()完成内核和用户的通信, 效率其实不高, 多用在传递控制 选项 信息,不适合做大量的数据传输用户态函数:发送:int setsockopt (  阅读全文
posted @ 2019-11-12 18:01 codestacklinuxer 阅读(953) 评论(0) 推荐(0)
摘要: 1.4.1:状态定时器回调neigh_timer_handler 设置定时器来处理那些需要定时器处理的状态,定时器回调函数为neigh_timer_handler;函数会根据状态机变换规则对状态进行切换,切换状态后,如果需要更新输出函数则更新,并更新定时器下一次超时时间;其中NUD_INCOMPLE 阅读全文
posted @ 2019-11-06 22:40 codestacklinuxer 阅读(522) 评论(0) 推荐(0)
摘要: 2.1 邻居子系统结构体解析 struct neigh_table 代表的是一种邻居协议的接口(比如 ARP)。 struct neigh_params 代表的是邻居协议在每个设备上的不同参数。 struct neigh_ops 邻居对应的一些操作函数。 struct hh_cache 缓存 L2 阅读全文
posted @ 2019-11-06 22:39 codestacklinuxer 阅读(762) 评论(0) 推荐(0)
摘要: 1.3.1邻居系统状态图(老外给的解释) NUD_VALID : An entry is considered to be in the NUD_VALID state if its state is any one of the following, whichrepresent neighbor 阅读全文
posted @ 2019-11-06 22:39 codestacklinuxer 阅读(366) 评论(0) 推荐(0)
摘要: 1.什么是邻居子系统 邻居:是指同一个IP局域网内的主机,或者邻居之间在三层上仅相隔一跳距离。 邻居子系统:提供了三层协议地址与二层协议地址之间的映射关系。同时还提供了二层首部缓存,用以加速发送数据报文, 以ipv4 发送数据为例,在发送数据时,先进行路由查找,如果查找到目的地址路径,再查看邻居表中 阅读全文
posted @ 2019-11-06 22:24 codestacklinuxer 阅读(1029) 评论(0) 推荐(0)
摘要: 网络协议栈流程图以及数据结构 linux内核网络模块加载 socket 创建流程 UDP 收发包流程以及 软中断收发包流程 UDP 收-发包流程 -> igb_msix_ring 中断服务函数(分队列处理) -> napi_schedule -> napi_schedule_prep 检测napi- 阅读全文
posted @ 2019-09-09 21:25 codestacklinuxer 阅读(727) 评论(0) 推荐(0)
摘要: 如果某种应用并不需要在多个CPU上并行执行,那么软中断其实是没有必要的。因此诞生了弥补以上两个要求的tasklet。它具有以下特性: a)一种特定类型的tasklet只能运行在一个CPU上,不能并行,只能串行执行。 b)多个不同类型的tasklet可以并行在多个CPU上。 c)软中断是静态分配的,在 阅读全文
posted @ 2019-08-14 17:20 codestacklinuxer 阅读(485) 评论(0) 推荐(0)
摘要: 中断分为同步中断和异步中断。 同步中断是由CPU控制单元产生的,“同步”是指只有在一条指令执行完毕后,CPU才会发出中断,比如系统调用 异步中断是由其他硬件设备依照CPU时钟信号产生的,即意味着中断能够在指令之间发生,例如键盘中断 按照Intel的微处理器手册,同步中断和异步中断也分别称为异常(或者 阅读全文
posted @ 2019-08-14 14:54 codestacklinuxer 阅读(329) 评论(0) 推荐(0)
上一页 1 ··· 59 60 61 62 63 64 65 66 67 ··· 70 下一页