ip分片重组 ip_defrag】的更多相关文章

在ip_local_deliver中,如果检测到是分片包,则需要进行分片重组: ip_local_deliver |-->ip_is_fragment //判断是否为分片包 |-->ip_defrag //分片缓存&重组 |-->ip_find //查找ipq |-->ip_frag_find //查找frag_queue |-->ip_defrag_queue //分片接收组合 |-->ip_frag_reasm //接收完整的分片组成新的ip包 /* * D…
IP分片重组的分析和常见碎片攻击 v0.2http://www.nsfocus.net/index.php?act=magazine&do=view&mid=584 作者:yawl (mailto:yawl@nsfocus.com)主页:http://www.nsfocus.com日期:2000-09-12 一 前言 本文对linux的IP组装算法进行了分析,因为IP碎片经常用于DOS等攻击,在文章后面我结合 了一些攻击方法进行了更进一步的说明.内核主要参考版本是2.2.16,另外简要的介…
在ip_local_deliver中,如果检测到是分片包,则需要将报文进行重组.其所有的分片被重新组合后才能提交到上层协议,每一个被重新组合的数据包文用ipq结构实例来表示 struct ipq { struct inet_frag_queue q; u32 user;//分片来源 __be32 saddr;//原地址 __be32 daddr;//目的地址 __be16 id;//ip报文序列号 u8 protocol;//上层协议号 //这四个字段来自ip首部是为了确定来自哪个ip数据报文…
1 前置知识学习 1.1 MTU MTU是最大传输单元( Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数.  MTU范围在46 ~ 1500字节,默认一般都是1500. 1)MTU为1500时计算总长度 7字节前导码+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500字节IP头及数据+4字节的 FCS = 1526字节. 2)为什么我们抓包得到的最大帧是1514字节? 当数据帧到达网卡时,在物理层上网卡要…
//为分片确定正确的ipq结构 // 定位5元组 // 1.<id, 源ip, 目的ip, l4协议> 可通过ip报文获取 // 2.user 通过ip_defrag给出,指出重组是由谁发起的,最常见的时IP_DEFRAG_LOCAL_DELIVER,当重组的入口分包要传递给本地时 // ipq中所有分片最迟完成重组的时间为30HZ 1.1 static inline struct ipq *ip_find(struct iphdr *iph, u32 user) { //定位4元组 __u1…
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) { //查找或者创建一个队列头…
IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单元).常见以太网的MTU为1500,若IP协议在传输数据包时,IP报文长度大于转发接口的MTU,则将数据报文分为若干分片进行传输,分片报文到达接收方时,由接收方完成重组.对于不同的传输层协议,在IP层上,需不需要进行分片是不同的:对于TCP来说,它是尽量避免分片的.因为当在IP层进行了分片后,如果其…
1 IP协议简单介绍 就个人而言,网络中,抛开网络安全加密这些,就只单单讨论协议本身,比较难的有三个地方: IP分片与重组 TCP滑动窗口与TCP状态的改变 TCP定时器 其实协议本身根据<TCP/IP详解卷1>理解起来并不难,但是实现起来就很难:数据的操作,标志位的设置,网络状态的变换,中断多线程通讯等等: 在下图的七层网络协议参考模型中,IP层属于网络层,网络层最主要的作用就是:将指定IP的数据报传输到对应的主机. 下图是以太帧封装格式(RFC 894),RFC 894封装格式也是我们最常…
from http://blog.csdn.net/cumirror/article/details/5071234 前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽视了一个很重要的东西:IP分片与TCP分片弄混淆了. 首先声明:TCP分片应该称为TCP分段. —————————————————————————————————————————————————————— 区别: 1.IP分片产生的原因是网络层的MTU:TCP分段产生原因是MSS. //ordina…
http://www.cnblogs.com/derekchen/archive/2009/07/15/1524415.html 1.IP分片的情况.IP软件包有一个[分片]和[重组]模块,一个IP数据报在传输中可以被ip软件包的[分片]模块分片,在目的接收端B的IP软件包 的[重组]模块重新组合.接收端B的IP软件包如果收到乱序的IP报文,是不会把这个包交付到高层TCP协议的,直到收到同一个IP报文的全部分片.所 以,如果发送端的FIN被分片,接收端B在收到完整的此IP数据报之前,TCP模块不…