skb_store_bits() 和 skb_copy_bits()】的更多相关文章

int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);    int skb_store_bits(const struct sk_buff *skb, int offset, void *from, int len);     skb_copy_bits(skb,      skb->len  -  skb->data_len,   new_data,     skb->data_len)…
skb详细解析[转]    摘自:http://blog.chinaunix.net/uid-30035229-id-4883992.html     在自己的模块发送函数中,需要对skb进行重新构造和别的一些操作.在网上看到一个写的还可以的,粘过来,就不自己写了,估计这个哥们也是看<Understanding Linux Network Internals>翻译或者总结的.   ------------------------------------------------ 1.   定义…
Network Address Translation  来源:http://alexanderlaw.blog.hexun.com/9791596_d.html       地址转换用来改变源/目的地址/端口,是netfilter的一部分,也是通过hook点上注册相应的结构来工作       Nat注册的hook点和conntrack相同,只是优先级不同,数据包进入netfilter之后先经过conntrack,再经过nat.而在数据包离开netfilter之前先经过nat,再经过conntr…
IPSEC介绍与实现 一.介绍 IPSec 协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议 Authentication Header(AH).封装安全载荷协议Encapsulating Security Payload(ESP).密钥管理协议Internet Key Exchange (IKE)和用于网络认证及加密的一些算法等.IPSec 规定了如何在对等层之间选择安全协议.确定安全算法和密钥交换,向上提供了访问控制.数据源认证.数据加密等网络安全…
启动时首先在ip_conntrack_standalone.c中调用 static int __init ip_conntrack_standalone_init(void) //proc相关部分省略 { ...... ; ret = ip_conntrack_init(); //大部分初始化工作 ) return ret; ...... //注册hook函数,添加到二围数组连表中, ip_conntrack_ops 定义看下面 ret = nf_register_hooks(ip_conntr…
以下代码取自 kernel- . [数据结构] struct icmp_control { void (*handler)(struct sk_buff *skb); //icmp处理函数,根据icmp的类型字段 short error; /* This ICMP is classed as an error message */ }; ]; //每个icmp类型有一个项 [/数据结构] [初始化] 文件net/ipv4/af_inet.c中,函数 static int __init inet_…
IP 碎片重组 内核中的IP重组函数. struct sk_buff * ip_defrag(struct sk_buff * skb, u32 user) { ...... //如果内核范围超出限制 if (atomic_read(&ip_frag_mem) > sysctl_ipfrag_high_thresh) ip_evictor(); //回收内存到限制之内 ...... if ((qp = ip_find(iph, user)) != NULL) { //查找或者创建一个队列头…
skb_clone--只复制skb描述符本身,如果只修改skb描述符则使用该函数克隆: pskb_copy--复制skb描述符+线性数据区域(包括skb_shared_info),如果需要修改描述符以及数据则使用该函数复制: skb_copy--复制所有数据,包括skb描述符+线性数据区域+非线性数据区,如果需要修改描述符和全部数据则使用该函数复制: /** * skb_clone - duplicate an sk_buff * @skb: buffer to clone * @gfp_mas…
2017年04月26日 18:21:12 abcLinux 阅读数 799   This first diagram illustrates the layoutof the SKB data area and where in that area the various pointers in 'structsk_buff' point. The rest of this page will walk throughwhat the SKB data area looks like in a…
概述 ip_fragment函数用于判断是否进行分片,在没有设置DF标记的情况下进入分片,如果设置了DF标记,则继续判断,如果不允许DF分片或者收到的最大分片大于MTU大小,则回复ICMP,释放skb,其余情况仍然需要走分片: ip_do_fragment是详细的分片流程,整个过程分为快速分片和慢速分片两种,如果存在分片列表frag_list,并且通过检查,则走快速路径,复制每个分片的ip头等信息之后,发送出去:如果不存在分片列表,或者分片列表检查失败,则走慢速路径,慢速路径会根据MTU大小,对…