论文部分内容阅读
计算机产业已经发展到了所谓的后PC时代,信息家电、机顶盒等各种新的名词越来越为人们所熟悉,对嵌入式系统的研究开发已成了计算机领域的一个热点。随着嵌入式系统的广泛应用,将嵌入式设备接入Internet将成为一种必然,这就极大的方便了人们对设备的远程访问、检测、控制,然而,对远程设备的访问量过大或者远程设备受到恶意攻击时,嵌入式系统因其自身处理速度和资源的有限,很容易产生网络包接收拥塞现象。 本文在华恒ARM2410开发板和ARM Linux操作系统环境下,研究网络包接收的拥塞问题。通过分析,网络包接收过程可分为网卡中断处理和TCP/IP处理两部分。当数据包到达网卡时进入网卡缓冲区,并且触发网卡中断处理程序,数据包经过网卡中断处理后作为TCP/IP处理的输入,等待TCP/IP处理,两种处理过程共享处理器,而网卡中断优先级高,所以就产生了不断从网络上收取数据包,而数据包却得不到处理的情形。这个现象就是本文要解决的拥塞问题。也称作收包活锁问题。 利用排队论中M/M/1和二级串连排队网络的理论进行分析,得出降低网络包到达速率,可以提高系统接收网络包的吞吐率,在本文可以通过降低网卡中断频率来实现。在此基础上本文实现了三种解决方案:批中断、关中断和轮询机制。设计测试方案分别对上述三种解决方案进行测试,得出在轻量过载时,批中断和轮询的方法都可以降低拥塞现象,而在重量过载的时候只有关中断的方法能从一定程度上缓解拥塞。最后,综合三种解决方案的优缺点,提出“轮询—关中断”的解决方案,即正常负载时仍然沿用中断机制,轻量过载时采用轮询的方法,重量过载时采用关中断的方法。