论文部分内容阅读
目前,为满足社会各方面的需求,计算机网络得到了大规模地应用,网络技术高速发展。当人们对网络资源的需求大于网络的负载能力时,就会出现网络拥塞现象,从而致使网络中数据包(分组)大量丢失及网络性能降低。因此,网络拥塞控制成为人们研究的一个热点。主动队列管理(Active Queue Management,AQM)算法是在路由节点进行网络拥塞控制的一种重要算法。在计算机网络领域,人们提出了许多AQM算法,并取得了一定的拥塞控制效果,例如RED算法和BLUE算法。控制理论领域的许多算法被引入到AQM算法领域,这些算法有着更好的控制效果。但是这些算法的运算量大,占用较多的路由器硬件资源,影响算法的运行速度,路由器更新维护路由表及存储转发数据包的功能,从而无法适应当今规模庞大,结构复杂的计算机网络。FPGA运算速度快,硬件资源丰富,为了节省路由器的硬件资源,提高路由器的性能,提出了在路由器外部的FPGA硬件中实现这些AQM算法,然后通过FPGA和路由器的数据交互来实现网络拥塞控制。PIDAQM算法作为控制理论领域算法被引入到AQM算法领域的实例,以瞬时队列长度为变量计算丢弃概率来丢弃分组,从而达到网络拥塞控制的目的。由于PIDAQM算法运算并不复杂,因此设计的重点可以放在AQM算法的FPGA实现方案上。本设计方案包含两部分:(1)FPGA与Linux系统的数据通信。本设计选择Linux系统下的软件路由器IPCop,利用串口通信实现数据交互。Linux端利用C语言的相关函数,编写串口通信的接收与发送数据的代码。利用硬件和软件方式分别对FPGA端的串口通信方案进行研究。实验证明两种方式都可以实现FPGA串口通信。(2)PIDAQM算法的FPGA实现。通过对离散PID算法的数学公式进行分析,建立以瞬时队列长度q为变量计算丢弃概率p的示意图,并以此图搭建PID AQM算法的电路图。利用了LPM宏模块和编写verilog代码相结合的方式准确地完成设计。在完成上述工作的基础上,将本方案设计的两部分通过合适的方式连接在一起,完成整个设计。本方案设计中,通过对PID AQM算法功能仿真波形图的分析,验证了PIDAQM算法模块的正确性。进行了PID AQM算法在FPGA中实现的实时实验,通过对实验过程中数据的实时观察,验证了整个实现方案的正确性,最终实现了本方案设计。