对Linux操作系统中TCPIP网络协议的IP层排队分析.pdf
第!卷第#期!$%年#月计算机学报&()*+*,-&./0 12*3+45 6 7!)5 7#88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 89:;7!$%对?操作系统中A B C D E C网络协议的E C层排队分析郭传雄郑少仁F解放军理工大学通信工程学院南京!%$%G H收稿日期I%J J J K$J K$!L修改稿收到日期I!$K%!K%#7本课题得到国家M八六三N高技术研究发展计划F#G O K O$K$!K$K J J H资助7郭传雄P男P%J Q!年生P博士P研究方向为网络协议的设计R分析R评估及因特网S5+保障R操作系统对网络协议的支持7郑少仁P男P%J O J年生P教授P博士生导师P研究方向为交换与宽带网络技术7摘要随着网络技术的快速发展P主机间的通信速率已提高到千兆数量级P同时多媒体应用还要求网络协议支持多种业务类型7因此对传统的2&0 D(0协议栈进行研究P找出它们是否适于支持高速通信及提供S5+保障P并给出相应的改进方法具有重要的意义7基于这样的思路该文对T U V:W操作系统中的2&0 D(0协议的(0层排队进行了分析P提出了一种基于检测点的对2&0 D(0协议栈(0层排队进行检测的方法7经实验发现在%$/的网络速率下(0层的输入侧没有排队现象发生P在(0层的输出侧的排队在大吞吐量时有周期性的变化现象7因此在T U V:W的2&0 D(0协议栈中仅需要在(0层的输出侧引入相应的分组调度算法F如XY SH以提供S5+支持7关键词T U V:W P高速网络P 2&0 D(0 P检测点P排队中图法分类号I2 0 O J OZ =_ a b cE C f_ a b cA B C D E CC d _ a _ g _ h a g i_?j 1.&k:l V K m U 5 V;n*)j+k l 5 K 3 o VF p q r s t s u v w xy w zzu q t|s t w q r q t q v v!t q P|q#t q!%$%G HZ$a d g aXU%k%k o&l U(&5;&o)5*V o%+5&,%o-k V 5 6 5;.P%k o-5/:V U-l%U 5 V&l%o0 o%+o o Vk 5)%)k l)&o l-k o(j U;l 0 U%o&)o-5 V(Pl V(%k o/:6%U/o(U ll 6 U-l%U 5 V)&o 1:U&o%k oV o%+5&,&5%5-5 6)%5):5&%/:6%U K)o&2 U-o 7+5U%U)U/5&%l V%5U V 2 o)%U;l%o%k o%&l(U%U 5 V l 62&0 D(0&5%5-5 6)%l-,%5*U V(5:%+k o%k o&U%U):U%l 0 6 o*5&k U;k K)o o(-5/:V U-l%U 5 V)l V(&5 2 U(U V;S5+73 l)o(5 V%k U)-5 V)U(o&l%U 5 V P%k o1:o:U V;5*(06 l.o&5*%k oT U V:W2&0 D(0)%l-,U)l V l 6.4 o(U V%k U)l o&79&5 0 U V;V 5(o/o%k 5(U)&5 5)o(%5U V 2 o)%U;l%o%k oU V%o&V l 6(01:o:U V;5*%k o)%l-,7.:&o W o&U/o V%)k 5+%k l%k o&oU)V 51:o:U V;l%k o&o-o U 2 U V;)U(o5*%k o(06 l.o&+k o V%k o&l%oU)%$/0 )Pl V(%k o1:o:U V;5*%k o)o V(U V;)U(o5*%k o(06 l.o&k l)o&U 5(U-l 6 0 o k l 2 U 5&7/5&o)5 k U)%U-l%o(l-,o%)-k o(:6 o&):-kl)XY Sl&oV o o(o(l%k o)o V(U V;)U(o5*%k o(06 l.o&%5&5 2 U(oS5+U V%k o*:%:&o 75c 6 _ d 7 T U V:W Pk U;k K)o o(V o%+5&,)P2&0 D(0 P&5 0 U V;V 5(o P1:o:U V;8引言随着现代通信线路速率的极大提高及因特网的快速普及P人们对在因特网上支持多种业务的研究也越来越深入7目前主机间的通信速率已经达到%$/P%9 9/甚至%jP在因特网上提供S5+支持也成为网络协议中很重要的研究方向7研究界普遍认 万方数据为在未来的网络中要能同时支持多种业务类型!如话音数据实时视频#因此未来的网络在大幅提高带宽的同时!在网络协议中还必须引入对$%&的支持#对传统的()*+)协议进行分析!找出协议的各项处理开销!并提出相应的改进方法一向是一个热门问题#文献,-.对()协议的处理开销进行了研究!文献,/.对如何提高01)的处理能力作了深入研究!文献,2.对&034&-#5的()*+)协议栈进行了实验!文献,6!7.分别提出了两种在用户态实现()*+)协议的方法!并分别研究了这两种方法的优点8文献,7!5 9.对单拷贝及校验和技术进行了研究!以期提高()*+)协议的效率#以上这些技术的主要目的是提高单机系统中()*+)协议的处理能力#现代网络技术的发展表明!未来的因特网将是一个多业务的综合网络!在将来的因特网上!不但要支持现有的传统+)数据业务!还将进一步支持如话音视频及其它类型的业务#因此!对基于+)协议的$%&支持的研究正进一步地深入!从:)4;,5 2.到:)?&?A,5 6.到1 B C C&?A,5 7.!人们一直在寻找一种能提供$%&保障的网络体系结构#基于以上考虑本文对 B=D E的()*+)协议栈中的+)层排队进行了分析!以期找出它是否适于支持高速通信和提供$%&支持#选择 B=D E作为研究对象是因为其应用的广泛性及开放的源代码#B=D E操作系统起源于因特网!并借助于因特网而发展壮大#它具有一系列的优点如功能强大的开发环境友好的图形界面丰富的应用软件对各种硬件资源的良好支持等#B=D E内核支持多种处理器平台!具有真正的多任务机制!提供虚拟内存保护按需装入以及强大的网络功能#其中网络功能是 B=D E内核中非常重要的组成部分#目前在因特网上有很大一部分的F?G服务器都是基于 B=D E来构建的#?B=S!:O T U D?O V?!+);N B O T及计费等功能#现在在因特网上已有很多分析及介绍 B=D E内核的文献!如文献,-!5 W.!但对于 B=D E内核中的网络协议目前还未见很深入的分析#本文主要对 B=D E内核中的()*+)协议栈进行分析与评估#在第Q节!对 B=D E的()*+)协议栈的结构进行分析!介绍 B=D E的()*+)协议栈的整体结构分组的接收与发送过程及+)层的排队现象8在第X节中介绍基于检测点的测试方法及检测点的设计8在第-节对 B=D E协议栈+)层的排队进行测试!并对所得结果进行分析8最后总结全文并提出下一步的工作#本文所用的 B=D E内核版本为Q#W#X-#Y Z _ a*b a协议栈结构 B=D E的网络协议代码内嵌在内核代码中!为 B=D E内核的重要组成部分#B=D E的网络结构支持多种网络协议!在这里仅分析它的()*+)协议栈#图5所示的是 B=D E的网络结构框架!整个结构 由9层 组 成!以()*+)协 议 栈 为 例!分 为&4(JK 层+3K 层 ()c 01)d层+)层及网络设备驱动程序层#它所采取的这种结构可以很方便地在 B=D E内核中支持多协议!&4(JK 层是应用程序与内核中协议间的接口!屏蔽了各种协议对应用程序而言的差别#各种底层协议在+)层会聚!实现了上层协议与+)下层协议及硬件无关#在下面首先介绍 B=D E的()*+)协议栈中分组在各协议层间的传送过程!然后分析()*+)协议栈中+)层的排队过程#Y#e分组在Z 的_ a*b a协议栈中的收发过程在 B=D E的 网 络 协 议 中 使 用 了 一 种 名 为T P G D C C,-!5 W.的缓冲区管理机制来管理分组#分组在内核中各层间移动时只需在T P G D C C中增加或减去相应的协议头#这种缓冲区管理机制被我们用来设计第X节中的检测点#在 分 组 发 送 时!用 户 程 序 经 系 统 调 用!调 用 B=D E内核中的&4(JK 接口!再经()*+)协议Q计算机学报Q W W 5年 万方数据对数据进行处理!然后调用驱动程序发出数据!当驱动程序忙时!把数据放入所对应的队列中!操作系统在合适的时候会再尝试发送数据当物理层硬件收到数据后!将向操作系统提出中断!操作系统响应中断把数据取入内存!并置位网络协议所对应的#$%&(例程)#$%&(在*+,-.中是一种/%/0&(1 2 3&(1#4 2$5 6!操作系统在适当的时候运行#$%&(!把数据交给7 8 9:;9协议处理后提交给应用程序在#$%&(中!*+,-.先检查有无发送数据需要发送!再对接收数据进行处理!即发送是优于接收来处理的图?层排队过程由于7 8 9:;9协议是基于分组的存储转发方式的!因此必然在协议栈中存在排队在什么地方排队!排队的长度如何限制及对溢出分组的处理策略!对队列中的分组采取何种调度策略将极大地影响系统的效率及对A B的支持图所示为*+,-.中的7 8 9:;9网络排队模型在发送及接收方向分别有两个地方进行了排队在发送方向上对于7 8 9协议而言!在7 8 9层及;9层有排队!对于CD 9协议只是在;9层有排队在接收方有两个地方有排队!分别位于;9层及7 8 9:CD 9层 7 8 9层的排队是基于字节数的!;9层的排队是基于分组数的7 8 9层的排队是为了对输出输入的7 8 9分组进行缓冲E流量控制及重组F;9层的输出排队是当;9层产生分组的速率大于底层硬件的线路速率时!对;9层产生的数据进行缓冲)在这里我们不考虑对;9分组进行分段重组的情况6!在;9层每一个底层驱动程序对应一个发送队列!它们的最大队列长度均为%G&H I$I$&2$#;9层的输入排队是当网络设备驱动程序收到有效的;9分组时!挂接到一个叫J K L M N A O的队列中等待;9层的处理所有的底层驱动程序对应一个公共的J K L M N A O输入等待队列目前*+,-.中的排队系统中采取的策略是先来先服务PF当排队系统溢出时!分组被丢弃并没有考虑分组所对应的内容对于;9层!J K L M N A O的大小为Q R R个分组S基于检测点的实验方案的设计在本文中我们的目的是分析7 8 9:;9协议栈内部;9层协议的排队情况!这样传统的观测网络协议外部行为的工具如T L U V-WU等就不再适用为此与文献X Y Z类似!我们设计了一种基于检测点的方案!在协议栈的各个层次的代码内增加记录一些信息如时标E排队长度的代码来采集所需要的信息!然后再对这些信息进行分析这些代码在网络协议内部执行时是有时间耗费的!为了让这部分代码对网络协议的影响尽量小!我们采取了如下的措施)6只记录所需的最少量的信息!一般在检测Q期郭传雄等对*+,-.操作系统中7 8 9:;9网络协议的;9层排队分析P在本文的工作基本结束时!发布了新的*+,-.内核 在新发布的 内核中!新增加了对不同排队规则的支持 万方数据点记录时 标!分组序号!排 队 长 度如 果 有 排 队#信息$%#在测试时只记录专为测试而发出的带有特殊标识的分组$这样做可以使检测点只对测试分组起作用而不影响其它分组$在数据发送时&可以通过对()*+,所对应的()*数据结构及分组所在的*-./中增加特殊的标识0 1 234 5 6 7 138 9:;来启动检测点$但在数据接收时由于这时还不知道数据所属的()*&因此不能用上述的方法来启动检测点$为此我们利用了在?的A B C?D D的缓冲区管理机制&这种机制使得分组在由高层协议向低层协议传送时只在 E.的头部增加上层协议的报头&在由低层向高层协议传送时只是去掉相应的低层协议的报头$因此我们在测试时发送的分组尾上带上特定的F字节标识G H:I:I:I:I&当检测到接收侧收到的报文尾部带有这样的标识时&启动检测点$对于发送侧典型的检测代码如下所示JK=D L M D NO P3Q R S T O=D U V WX0 1 234 5 6 7 138 9:;#YZ 63;1 2 2 1 6 8 Z:2 1 4 2 _#U 1 230 6 Z 13_:9 a 1 U 1 0 Z34 5 6 7 1%34&U 1 0 Z34 5 6 7 1%31 0 Z 4&%&2 1 4 2 _&U 1 b30 a 7 1 5&b a 1 a 139 1 0#cKM L=D NO P3Q R S T O对于接收侧典型的检测点代码如下所示JK=D L M D NO P3Q R S T OZ 63;1 2 2 1 6 8 Z:2 1 4 2 _#4 4 d a 0 U ;0 1 Z 0 2e#U V 7 WX2:9 WF#=D e4 4 ddG H:I:I:I:I#Y4 4 Wdf U 1 230 6 Z 13_:9 a 1 5 1 g _34 5 6 7 1 f34&5 1 g _34 5 6 7 1 f31 0 Z 4&h&2 1 4 2 _&e4 4&b a 1 a 139 1 0#cKM L=D N1 P3Q R S T O i#检测点代码的运行时间是定值$在?内核初始化时保留了一段内存区域用来保存各个检测点的记录信息$每个检测点对应一条线性队列&有一指针指向当前队列的第一个空闲位置$这样可以直接向本队列中插值$经实验测试这样的检测点代码在本实验环境中的时间耗费为G$F j A$由于检测点执行时间为定值&因此可以在最后测量结果中减去检测点的运行时间$F#对数据采取先记录再处理的方式为了减少对网络协议的影响&把数据的收集与数据的处理分开$当在?内核中收集到足够的信息后&再由应用程序对这些数据作进一步的分析及处理$此外为了消除操作系统的固有的不确定性&所有的测量结果都是多次测量后取平均值$本方法能对协议内部的各个功能分别进行检验$在对k l层排队进行检测时&我们在协议栈中设置了两个检测点&如图%所示&检测点f对k l层的发送侧分组进行检测&检测点%对k l层的接收侧分组进行检测$m n o p q rs t u v w u协议栈w u层排队的分析m$x测试环境本文的测试环境是两台通过双绞线直接背靠背相连的l k k i I Gl)机选择背靠背方式是为了不使网络上的其它机器与测试机器竞争共享信道#&内存为f%y z&操作系统是+E|,I$f&?的内核版本是%$G$i F$所用网卡为k M!+#M A Af G G#$&网卡控制器为k M!y%I I y$我们在内核中增加了如图%所述的检测点&并为这些检测点保留了f%z内存作为检测点数据的记录区$两台l)在测试时均运行在多用户状态&只运行最少量的后台进程$在下面我们对,)l v k l协议k l层的输入输出排队进行了测试$m$%大吞吐量情况下w u层的排队情况本实验的目的是测试在大吞吐量的情况下k l层发送及接收侧的排队情况$研究k l层的分组调度及队列变化情况可以为以后在,)l v k l协议中提供&$支持打下基础$由于我们在本文中仅对k l层排队进行研究&因此选择了.E l协议作为k l的上层协议来进行试验&但由于k l层协议与其它层次协议在?操作系统中的实现基本上是互相独立的仅通过少量的接口与上下层协议交互#&因此得到的关于k l层排队的结论实际上是与业务及上层协议无关的$在测试时发送者尽全力给接收者发送.E l分组$当.E l分组的长度分别为f G%F和f F G G字节时&发送侧k l层的排队情况分别如图i&F所示$从上面的实验可以观察到一个有趣的现象J排队长度并没有随分组长度的增加而增加&而是反而有所减小$同时输出侧k l层排队呈现一种有规律的周期性变化$这表明操作系统在调度协议栈方面相当成功$当.E l分组长度为f F G G和f G%F字节时&在接F计算机学报%G G f年 万方数据收侧的!层没有排队发生#在实验中$当我们把分组长度降低到%&字节时$在接收侧的!层的排队在()间变化$仍然没有明显的排队现象#以上的结果是在发送者与接收者都没有别的进程的干扰下得出的#为了测试在有别的进程存在的情况下!层的排队情况$我们在发送者或接收者所在的系统中引入计算密集型进程$这些计算密集型进程进行大运算量的科学计算#我们称引入的计算密集型进程的数目为当前发送者或接收者的工作负荷*+,-./,0 1 2$当+,-./,0 1为)至)时$重新对收发排队情况数据进行收集#结果显示在发送队列方面$当+,-./,0 1为)至3时$!层的排队情况与图4$图&一致5当+,-./,0 1大于3时$!发送队列在中间有明显的断开现象#这种现象是由于6 7被计算进程所占据$发送进程不能产生发送数据所引起的#图3为+,-./,0 1 89时的!层发送队列变化情况$其中区域)$:$4$&展开后与图4是一致的#在本实验中$在!层的接收侧仍然没有排队$这表明在线路速率为);时$在!层的输入方向不会有排队发生#从以上的实验可以得出如下结论?的情况下$在!层的输入侧没有排队现象发生$而在输出侧有明显的排队现象#这表明无需要!层的输入侧增加排队机制$但在!层的输出侧则必须引入支持,A的排队机制$如BC D:E$来取代现在的先来先服务的排队服务方式#经过我们对F G H I J的K 6 L!协议栈输入输出侧的分析$发现F G H I J在调度协议栈时采用的是一种输出优先的策略$当操作系统从底层收到一个分组后$它将首先检查与本硬件相关的输出队列是否为空$如果输出队列不空且发送硬件空闲$操作系统将首先发送输出队列的分组$然后再接着处理输入分组#因此从这个方面来说$似乎是输入方向上有排队才合理#经分析我们认为$在实验中之所以出现输出侧出现排队$而输入侧反而不出现排队的原因在于分组在内存中的处理速度要比);=?的网络接口速度快得多#如在本实验中$处理机的内存拷贝速率约为)M=?$远高于实验所用的);网络接口速率#因此处理机有充足的时间来处理所接收到的分组$而网络接口却无法及时地发送应用所产生的大量分组#从现在的发展趋势来看$网络接口速率与处理机速率的差别在逐步缩小#如M G N 0=G O以太网现在已经商用化$)M G N 0=G O的以太网规范也已经在研究之中#当处理机的速率与网络接口速率间的差距缩小到可以忽略时$我们认为就有必要对F G H I J的!层排队重新研究#同时由于多个网络输入端口可能同时会向一个输出端口发送分组$因此无论网络接口速率如何变化$在!层的输出侧都会 有 排 队存在#P结论本文对F G H I J操作系统中的K 6 L!协议栈的39期郭传雄等对F G H I J操作系统中K 6 L!网络协议的!层排队分析 万方数据结构!#层排队过程进行了分析$提出并设计了一种基于检测点的对%&#协议栈内部进行分析的方法$这种方法能有效地获取协议栈各层的参数$并对协议栈本身影响很小(在此基础上对大吞吐量时#层的排队进行了测试$测试表明在)*+的接口速率下#层接收侧没有排队现象发生(在发送侧的#层的排队呈现有规律的周期性变化(由于在发送侧的#层排队是采用的先来先服务的策略$因此现有的,-./0的%&#协议栈不能适应未来需要12 3支持的多媒体通信的要求(在将来我们将对如何在,-./0协议栈内部引入12 3支持及进一步提高协议栈的处理能力进行更进一步的研究(参考文献)#2 4 5 6 78(94 6:;5 =:#:2 5 2?2 7(6 A/6 4 5B 2:&2 6.5 4 CD E F$)G F*H#2 4 5 6 7 8(%:-4 4-2.&2.5:2 7#:2 5 2?2 7(6 A/6 4 5 B 2:&2 6.5 4 CD G I$)G F)I#2 4 5 6 7 8(.5 6:.6 5#:2 5 2?2 7(6 A/6 4 5 B 2:&2 6.5 4 CD G)$)G F)J;K-LM$/4 7-.=(%N 6,-./0O6:.6 7(N 5 5 P C QQQ(2 P 6./.-0(2:=P/R 6 R 2 2 S P L BTL 2?4$)G G FU;2/=7 6:$;6H Y;6 4-=.$P 7 6 6.5 5-2.$.L.5 6:.7 4(Z 6-.=C%4-.=N/9.-K 6:4-5#:6 4 4$)G G FE#P L 2 P 2/7 2 4&$#:/7 S 6.5 76 K 7/5-2.2 B3 9_3#&P 7 6 6.5 5-2.(V V V M&+%:.46 5 Q2:S-.=$)G G I$)W H Y C)G G H)ED&:-=#:5-L=6$3 5 6 P N 6.#-.S(M B 4 5 6:9;#(V V V M&+%:.46 5 Q2:S-.=$)G G I$)W J Y C J H G J J*F 2 P 7 S:-4 N.$/:/L 5 5 6+#:/7 S :(V B B-?-6.5/4 6:a 4 P P 7 6 6.5 5-2.4Q-5 N12 3=/:.5 6 6 4/4-.=:6 6/P?7 7 4(V V V M&+%:P 7 6 6.5 5-2.$.L6 K 7/5-2.2 B4-.=7 6 a?2 P P:2 5 2?2 7 4 5?S(3 2 B 5 Q:6 a#:?5-?6.LV 0 P 6:-6.?6$)G G F$H F W D Y C D J G D D H)*M7 .&2 0(6 5 Q2:SR/B B 6:4 6 2:.6.5(N 5 5 P C QQQ(:6 L N CF*F*b P 6:6 Q4 =6 5 .6 5 .6 5 a-.5:2(N 5 7)M:5 Z S 6:(c-.L 2 Q4%设备驱动程序设计指南(北京C机械工业出版社$)G G F)Hd-2,-a+-.$e N/+-.=a f (V 0 P 7 2-5-.=5 N 6?P R-7-5-6 42 B5 N 6-.5 6:?2.6?5-2.6 5 Q2:S 2.;Q.-.=a)*(8 2/:.P/5 6:3?-6.?6.L%6?N.2 7 2=$)G G G)Ig 6 7,P-L$P N$+2 4 N 63-L-(M.7 4-42 B L-4?:L-.=P 2 7-?-6 4-.N-=N a 4 P 6 6 L.6 5 Q2:S 4(V V V 8 2/:.72.3 6 7 6?5 6 LM:6/.-?5-2.4$)G G F$)E W U Y C D E J D D D)J&7 :S;$8 S 6 8$3 7 Q6.b(M.7 4-42 B%&#P:2?6 4 4-.=2 K 6:N 6/.-?5-2.4+P?52 Bh 6:2 a 4?-.=6?N(.C#:2?M&+3&_+3 P 2 4-/$&M$93 M$)G G E)E V%f;:B 5(+/7 5-P:2 5 2?2 7 7 R 6 7 4 Q-5?N-.=:?N-5 6?5/:6(N 5 5 P C QQQ(-6 5 B(2:=-.5 6:.6 5 a L:B 5 4 L:P 7 4 a 3 P 6?-B-?5-2.(+/7 5-a P:2 5 2?2 7 2 K 6:M%+4 P 6?-B-?5-2.(X6:4-2.)()(B 5 P C B 5 P(B 2:/(?2 P/R P P:2 K 6 L a 4 P 6?4 P 2 a*)J(*(P L B)FZ:L 6.i jk l(6 4 2/:?6 6 3 6:X6.5 CH H*U(B 5 P C B 5 P(-6 5 B(2:=:B?)GZ 7 S 63 i jk l(M.:?N-5 6?5/:6B 2:L-B B 6:6.5-6.5 CH J D U(B 5 P C B 5 P(-6 5 B(2:=:B?H*;6 6:4M$O6 4 N K3$3 N 6.S 6:3(M.7 4-4/7 5-2.2 B B -:A/6/-.=(.C#:2?M&+3&_+3 P 2 4-/4$M/4 5-.$%d$)G F GE计算机学报H*)年 万方数据对Linux操作系统中TCP/IP网络协议的IP层排队分析对Linux操作系统中TCP/IP网络协议的IP层排队分析作者:郭传雄,郑少仁作者单位:解放军理工大学通信工程学院刊名:计算机学报英文刊名:CHINESE JOURNAL OF COMPUTER年,卷(期):2001,24(8)引用次数:5次 参考文献(1条)参考文献(1条)1.Art Baker Windows NT设备驱动程序设计指南 1998 相似文献(9条)相似文献(9条)1.学位论文 李宏军 Linux平台下高速网络入侵检测数据采集的实现 2006 网络技术的快速发展和网络应用环境的不断普及,加大了人们对网络的依赖性,同时也带来了日益突出的信息安全问题。过去采用的传统的加密和防火墙技术己经不能完全满足安全需求,入侵检测技术作为一种主动预防的安伞手段,越来越显示出重要性。同时,高速局域网和光纤通信等新技术的应用给网络性能和流量带宽带来了巨大的增长。从最初以K为单位的网络速度到10M/100M网络,到现在干兆网络,这些变革对IDS的处理性能提出了更高的要求。高速网络下的实时入侵检测己经成为入侵检测研究领域的一个热点和难点,而如何实现千兆环境下的实时报文监测是提高入侵检测能力的一个普遍问题,因此对于高速网络环境入侵检测数据采集的研究是非常有意义的。本文首先对IDS、数据采集技术、大规模网络环境下数据采集的要求等方面的知识进行了介绍与分析。根据现有的入侵检测中数据采集技术面对大规模网络所存在的不足,参考了相关领域的知识,提出了基于Linux平台的高速网络数据采集器,阐述了数据采集器的体系结构、关键技术实现、过滤及预处理功能的实现。依据Linux的开源性及良好的网络特性、Linux内核网络协议栈的设计思想、并借鉴了清华大学以CERNET网络管理与流量计费为背景开发的Linuxflow高性能可扩展的网络被动测量系统的实现,本文建立了一套专用于高速网络数据包采集的协议栈。在此基础上,分析了Linux平台下数据采集影响系统性能的因素,提出了提高系统性能的方案。同时,作为IDS的数据采集模块,还提供了对原始网络报文进行过滤、预处理等功能,提高了检测模块检测效率。2.期刊论文 孟小波.王猛.李晶.张英杰 基于Linux平台的高速拥塞控制算法实现与应用-舰船电子工程2007,27(3)改进BIC拥塞控制算法,算法的性能在高速网络中得到了很大的提高,优化算法通过设置窗口门限值和现行TCP有机地融为一体.优化算法成功植入Linux内核,并在平台中得到很好的应用.3.期刊论文 汪世义.曹骞.WANG Shi-yi.CAO Qian 基于Linux的高速网络包捕获技术研究-巢湖学院学报2006,8(3)首先分析了Linux数据包捕获机制,指出了在高速流量的网络环境中,频繁的网卡中断是系统接受数据包能力瓶颈.然后讨论了基于Linux系统中采用中断和轮询相结合的数据包捕获技术NAPI.测试实验结果证明了NAPI技术能有效地提高数据包捕获效率.4.学位论文 段辰生 实时Linux下网络报文捕获平台的研究与实现 2009 随着计算机的普及和网络的发展,网络带宽飞速增长,网络上的安全需求也在不断增加。目前网络带宽已经达到了千兆甚至万兆,传统的报文捕获平台已经无法满足高速网络的报文捕获需求。因而研究高流量,高负载情况下的报文捕获技术,为路由器、防火墙、入侵检测等系统提供可靠的报文捕获前端是一个重要而有意义的研究课题。导致传统报文捕获平台无法适应高速网络捕包需要的原因主要有三点:第一是内核对报文多次的数据拷贝及协议栈对报文冗余的处理。第二是频繁的产生并响应中断。第三是多次的系统调用及用户态与内核态之间的上下文切换。基于此三点,本文使用如下设计对捕包机制进行改进:一,引入零拷贝的思想,将报文从网卡直接DMA至用户空间,避免其他多余的拷贝。同时旁路协议栈,防止对报文多余的处理。二,采用内存映射技术,将内核驱动中重要的数据结构映射到用户空间,使进程在用户空间就可以直接对硬件驱动及报文收发过程进行处理,不再需要中断进行报文处理;三,使用实时内核并将其机制引入平台设计中,根据需要设计了轮询引擎,使进程在方便的访问底层的同时,可以灵活的根据负载情况进行响应和调度,提高了系统的吞吐量的同时减低了处理机的占用率。本文在x86架构上实现了新的捕包机制,并对系统性能进行了测试。结果表明,基于研究结果实现的捕包平台在捕获64byte及1500byte的报文时吞吐量分别达到了473Mbps和947Mbps,证明了与传统报文捕获平台相比,新平台性能上有了显著提高。关键词:报文捕获;RTAI;轮询引擎;零拷贝5.期刊论文 汪世义.秦品乐.Wang Shiyi.Qin Pinle 基于Linux的高速网络包捕获技术研究-微型电脑应用2006,22(3)论文首先分析了Linux数据包捕获机制,指出了在高速流量的网络环境中,频繁的网卡中断是系统接受数据包能力瓶颈.然后讨论了基于Linux系统中采用中断和轮询相结合的数据包捕获技术NAPI.测试实验结果证明了NAPI技术能有效地提高数据包捕获效率.6.期刊论文 柳斌.李之棠.黎耀.LIU Bin.LI Zhi-tang.LI Yao 基于Linux系统的高速网络捕包技术研究-计算机应用研究2006,23(5)在对Linux系统捕包机制分析的基础上,通过试验详细讨论了高速网络环境下网络捕包的性能瓶颈.针对性能瓶颈给出了NAPI与内存映射机制相结合的改进方案.7.期刊论文 李宏军.刘胜辉.杜宁 基于Linux的高速网络环境下入侵检测技术-福建电脑2006(4)针对现有入侵检测系统在高速网络环境下存在的弊端,本文介绍了一些前沿技术及实现原理,并设计新型的基于Linux的高速网络入侵检测防护系统,采用了高速数据采集技术和协议分析技术,提高了检测的速度和准确率.8.会议论文 王刚.刘晓光.刘(王景)网络软RAID的设计与实现 2000 大容量存储系统一直是计算机科学研究中一个十分重要的课题,提出了一种利用普通PC机、普通IDE硬盘和高速网络构建网络软RAID系统的方法是一种简单、廉价的构建大容量存储系统的方案;详细介绍了网络软件RAID系统的设计思想,分析了各种设计方案的优劣;介绍了在LInux平台上,如何通过利用和改进现有的RAID软件和NBD软件来实现网络软RAID系统;并分析了网络软RAID系统与硬件RAID相比较的优点和缺点。9.学位论文 田回 Linux网络测试床的设计与实现和环境自适应的拥塞控制协议研究 2008 由于传统实验性能评估手段的局限性,在真实的网络测试床上对协议进行性能评测正逐渐成了主流的测试手段。本文首先对网络测试床设计和实现的整个过程以及网络测试床实验配置的关键技术问题进行深入的研究。本文详细介绍了基于Linux的网络测试床设计与实现的整个过程,包括Linux网络测试床的拓扑设计;重新配置、编译符合测试床需要的新的Linux内核;使用Netem和Dummynet来设置可控的,特定的网络实验环境;TCPSocket Buffer的设置;TCP ECN的设置;使用流量产生器产生测试流量;捕捉和处理实验数据。随着网络的飞速发展,网络高速化和无线化的特征越来越明显。在这种网络特征下,传统网络中的TCP拥塞控制协议已经显现出不适应性。虽然各国学者也提出了一些针对高速网络或无线网络的TCP改进协议,但是这些协议并不能同时在不同的网络环境下都获得较高的性能。因此,拥塞控制协议如何实现环境自适应性,在不同的网络环境下都能获得较高的性能,就变成了迫在眉睫的问题。本文在总结前人工作的基础上,将Cubic高效的窗口增加机制和Westwood的窗口减少机制结合起来,提出了一种环境自适应的拥塞控制机制JTCP,并详细介绍JTCP在Linux内核中的实现过程,然后在我们搭建的网络测试床上对JTCP就链路利用率、TCP友好性和RTT公平性这个三个性能指标进行了详细的比较测试。实验结果表明,JTCP在RTT公平性和TCP友好性没有明显下降的同时,能够在不同的网络环境下都能获得较高的链路利用率。本文最后对所做研究工作进行了总结,并阐述了网络测试床设计实现的进一步研究方向和拥塞控制协议进一步优化的研究思路。引证文献(10条)引证文献(10条)1.孙力娟.李超.张登银.王汝传 低速网络中实时补偿型差额循环调度算法的设计和实现期刊论文-电子与信息学报 2006(10)2.樊亮 Linux核心下高性能策略路由的实现学位论文硕士 20063.张文叶.刘杰.刘新焕 一种提高TCP/IP网络协议传输速率的方法期刊论文-计算机工程与设计 2005(05)4.段晓宇 QoS的研究和IntServ/RSVP的实现学位论文硕士 20055.吴绍华 IP QoS技术在CISR网络中的应用研究学位论文硕士 20056.彭尉 基于GIS/GPS/GPRS的移动车辆监控系统的设计与研究学位论文硕士 20057.边学工.胡瑞敏.陈军.李德仁 基于分层排队网络模型的MCU性能预测及优化研究期刊论文-计算机学报2004(02)8.鲁毅 基于VI协议的高性能网络存储系统研究与实现学位论文硕士 20049.李锐 Linux系统QoS原理与应用期刊论文-安徽大学学报(自然科学版)2003(02)10.边学工.胡瑞敏.张子屹.李德仁 基于IP网络的多点控制单元的性能分析期刊论文-计算机工程与应用2002(23)本文链接:http:/