如果路由器的多个接口同时丢失报文,那时很让人头疼的问题。路由器要实现数据交换过程就需要在不同的接口之间传送报文。接收到报文对于路由交换有这至关重要的作用。如路由器在以太网接口接收到报文后,首先会从报文中获取MAC头信息,然后检查网络层报文头。路由器将会检查路由表是否有与报文的目的地址匹配的表项。如果路由表中有匹配的表项的话,则会进行后续的工作。所以说,路由器接口能接收到报文是其工作的基础。如果报文丢失的话,那么将极大的影响到路由交换功能,最终导致数据的丢失。
造成报文丢失的原因有很多,不过最主要的可能是路由器内存不足或者CPU过载所造成的。要解决这个问题,首先需要判断问题的原因。下面笔者介绍两种简单的方法来帮助网络管理员判断路由器报文丢失的幕后黑手到底是谁。
一、判断是否是内存碎片问题造成报文丢失
内存碎片是指路由器内存被划分了许多不连续的块。他将导致内存利用率降低,严重时可能会产生内存错误,影响路由器的性能。它也会导致路由器报文丢失的问题。其实不仅路由器的内存存在碎片问题,普通的硬盘也存在这种问题。如微软操作系统中就自带一个碎片整理工具,可以保障用户来整理硬盘中的碎片,以提高硬盘的存储容量以及存储性能。这里指的内存碎片其实跟硬盘碎片是类似的。
那该如何判断路由器的内存是否存在碎片呢?这里主要借助的是思科路由器自带的SHOWMEMORY命令。这个命令会显示当前内存的相关信息。如执行这条命令后,会显示当前可用内存(Free)与最大可用快(Largest)的数值。网络管理员把这两个值进行比较,就可以判断碎片对路由器性能的影响。这主要是把路由器的可用内存与最大可用快的大小进行比较。如果路由器的可用内存与最大的可用快大小比较接近时,表示虽然路由器存在碎片但是影响不大。但是若最大可用的块很小,如只有最大可以用内存的几十分之一,那么就说明路由器内存碎片问题比较严重了。