51Testing软件测试网EixYi"V8u&J
本文介绍了Linux软路由的工作原理,并使用普通PC计算机作为硬件设备,在实际网络环境中测试和讨论了Linux软路由的性能。实验证明,在百兆以太网络环境中,Linux软路由的数据报转发速度取决于网络卡的实际速度,并随着软路由系统的应用层服务的增加而降低。该结果为Linux软路由的应用和普及提供依据。51Testing软件测试网s-K].E9h^.x51Testing软件测试网/M(V v0i+u
0、引言!r.W _7Dt)Eyz,H0
/egD*dY'XhI
P0 随着开源软件的发展,越来越多的人开始了解、使用和研究Linux。目前Linux环境下的软路由设计和应用案例已有很多;但是对于实际网络环境中Linux软路由的负载性能一直缺乏相关的实测和讨论。本文从Linux软路由的框架和实验两部分进行讨论,并给出结论。:Y\_A3] N(k051Testing软件测试网6Vms3q}:y8A
1、Netfilter框架"vb!R[)`J}'e0
Q!wEo*i'ev%lP0 Netfilter框架上是整个Linux软路由运作的体系,是Linux2.4内核处理数据报的流水操作系统。它能够运做在IPv4、IPv6及Decnet等网络栈中。Netfilter框架的概念的提出及主要实现者是RustyRussell。eW&c#T[~&Nm0
Z1{8y8E.cP,sv051Testing软件测试网2A{.Z7q,V B\!ZBv
$kv3t`#I)n0 Netfilter框架如图所示:jb:J dV!x0
)eu%dQF(jb"Id?0 Figurexxx.Requiresaheading$xfa R8AJA0
51Testing软件测试网K5S2s6m{+~yq)B
IOh+Seu @|0 (1)Netfilter为每种网络协议定义一套钩子函数,其中为IPv4定义了以下5个钩子函数:w+u7k7{&ERc8d051Testing软件测试网4S1]0a(@0^x^
[1] NF_IP_PRE_ROUTING.
4^X9K?2[ kQXH0[2] NF_IP_LOCAL_IN51Testing软件测试网,YJ7r(\YWa51Testing软件测试网~2cv
]+?1F#P
[3] NF_IP_FORWARD2W5Y3EI;as{0
)t'_(@r6K4M?;YZ0[4] NF_IP_POST_ROUTINGMFXWw'A/|(X051Testing软件测试网5H`f fsBro:r
[5] NF_IP_LOCAL_OUT(wY'd6\4D/`u02C2^o&UTL/t-@:}n0
qCWmX$@0 (2)这些钩子函数在Linux内核的模块中注册,并与之挂接。当数据报流入框架的网络层时,内核模块在框架的钩子函数处[1]接收数据报,并对它进行检查、转发、丢弃或指示Netfilter将该数据报通过[2]传入用户空间队列。51Testing软件测试网5^&VB3fZ6N(\51Testing软件测试网x5cbm]2~w
(3)如果该数据报被传递给用户空间,将在应用层被异步处理。该层的用户进程(LocalProcess)在对数据报进行更加精细的检查,修改和装配之后,通过钩子函数[4]把它重新递交给网络层。DxnTR1Nv8b051Testing软件测试网/cCL'z}6J
Netfilter框架的数据报分流结构使它极大地降低了数据报转发的延迟,提高了数据报控制的精度;在节省系统开销,提高数据报的处理效率上超越了工作在Windows平台的路由软件。