CN1181653C - 一种网络交换设备有效获得回应报文的方法 - Google Patents
一种网络交换设备有效获得回应报文的方法 Download PDFInfo
- Publication number
- CN1181653C CN1181653C CNB021179492A CN02117949A CN1181653C CN 1181653 C CN1181653 C CN 1181653C CN B021179492 A CNB021179492 A CN B021179492A CN 02117949 A CN02117949 A CN 02117949A CN 1181653 C CN1181653 C CN 1181653C
- Authority
- CN
- China
- Prior art keywords
- message
- list item
- cpu
- vacation
- forwarding chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络交换设备有效获得回应报文的方法,该方法当网络交换设备的转发芯片转发的数据报文对应的表项不存在时,将该报文发送到网络交换设备的CPU,然后CPU将该报文处理后发送相应的协议报文,同时在转发芯片中写入“假”表项,当CPU在接收到回复的协议报文后刷新转发芯片的表项,使转发芯片恢复数据报文的转发。上述方案使在CPU等待回复报文时,利用该表项转发的报文不再拥塞CPU,也不再影响其他网上业务,从而使CPU可以有效获得回复协议报文;避免在回复协议报文到达前CPU处于过渡繁忙的状态,而不能有效地接收回复报文。
Description
技术领域
本发明涉及网络交换设备获得回应报文的方法。
背景技术
网络交换设备在网络中承担着大量网络报文的转发任务,为了提高交换设备的报文转发效率,通常将报文的转发和对路由表的维护分开进行,前者由转发芯片完成,后者由CPU来处理,这样在交换设备内形成了控制组件(CPU)和转发组件(转发芯片)分离的构架形式。由于CPU仅完成相对实时性要求不高的报文转发表的处理操作,对其的性能要求也大大下降,从而降低了成本。通常,报文的转发是独立进行的,以地址解析协议(ARP)数据为例,当交换设备的转发芯片已知报文相对应的ARP表项时,该报文由转发芯片直接处理转发。当该ARP表项不存在时,例如由于ARP老化或交换设备重新启动等原因,转发芯片无法确定该报文转发的目的地址,此时需要交换设备发送ARP请求报文以获得该ARP表项。为此,转发芯片将该种报文送往CPU,CPU分析后发送ARP请求报文,等待ARP的回复报文到达后刷新转发芯片中的ARP表项,这样,转发芯片就可依据新的表项来进行报文转发。
由于交换设备中CPU的交换性能远低于转发芯片,当去向CPU的ARP报文的数量较大时,CPU的报文入口将会被该些报文所拥塞,一部分报文会被丢掉,因此,CPU虽能将ARP请求报文发出,但对端的ARP回复报文却不能顺利地送入CPU进行处理,转发芯片的表项也就无法更新。这样持续拥塞CPU的接收报文通道,最终将导致交换设备的“死锁”。
发明内容
本发明的目的在于提供一种网络交换设备有效获得回应报文的方法,使用该方法将会避免交换设备“死锁”现象的发生。
为达到上述目的,本发明提供的网络交换设备有效获得回应报文的方法,包括:
(1)当网络交换设备的转发芯片转发的数据报文对应的报文转发表项不存在时,将该报文发送到网络交换设备的中央处理器(CPU);
(2)CPU将该报文处理后广播发送ARP请求报文,同时在转发芯片中写入指导该报文转发的“假”表项;
(3)CPU在接收到回复报文后刷新转发芯片的表项;
(4)转发芯片恢复数据报文的转发。
所述方法还包括:
按指定周期删除转发芯片中的“假”表项。
根据转发芯片的CPU处理能力和负载状况确定所述周期的时间长度。
所述按指定周期删除转发芯片中的“假”表项的过程包括下述步骤:
(41)在转发芯片中查找“假”表项,如果发现的“假”表项没有登记,则登记该“假”表项,并将该条目的计数器清零;如果发现的“假”表项已经登记,则将该“假”表项登记条目的计数器值加一,同时删除已经登记的但在转发芯片查找中未发现的“假”登记表项;
(42)判断CPU报文输入是否处于拥塞状态,如果是,删除过程结束;否则删除计数值最大且超过指定数值的“假”表项。
由于本发明当转发芯片转发的数据报文对应的报文转发表项不存在时,将该报文发送到网络交换设备的CPU,CPU将该报文处理后广播发送请求报文的同时,在转发芯片中写入“假”表项,这样,使转发芯片将需该表项为指导来转发的数据报文不再送往CPU,在CPU等待ARP回复报文时,去往目的地址的报文不再拥塞CPU,也不再影响其他网上业务,使CPU可以有效获得回复报文;这种方法可以在任何交换设备中实现,避免在回复报文到达前CPU处于过渡繁忙的状态。
附图说明
图1是本发明所述方法的实施例流程图;
图2是图1所述实施例采用的按指定周期删除转发芯片中的“假”ARP表项的流程图。
具体实施方式
下面结合附图,以ARP协议报文的处理过程为例对本发明作进一步详细的描述。
图1是本发明所述方法的实施例流程图,该图描述了网络交换设备有效获得ARP回应报文的方法。图1所述的方法包括三个独立并行的部分。第一部分为转发芯片进行数据报文的转发处理,包括步骤1、2;第二部分用于对转发芯片中的“假”ARP表项的维护,包括步骤3;第三部分用于恢复转发芯片数据报文的转发能力,包括步骤4、5。
在第一部分操作中,当交换设备中的转发芯片进行正常的数据报文转发时,如果发现该数据报文对应的ARP表项不存在,则无法确定该报文的目的地址,因此在步骤1将该报文发送到网络交换设备的中央处理器(CPU),CPU对该报文处理后在步骤2广播发送ARP请求报文,以获得该报文对应的目的地址,同时在转发芯片中写入“假”ARP表项。该“假”ARP表项的内容将决定使用该ARP进行转发的数据报文的去向。设置该表项的目的是使转发芯片将需要该ARP为指导来转发的数据报文不再送往CPU,而是送往“假”ARP表项中设置的转发“黑洞”,该报文进入交换机后被丢弃,不再进行转发,这样,在CPU等待收取ARP回复报文时,去往该ARP目的地址的报文不再拥塞CPU,也不影响网上的其它业务,使得CPU的输入通道就可以有足够的资源等待接收ARP的回复报文。如何具体设置“假”ARP的内容可根据不同交换机的不同转发芯片来设定,本例中,设置“假”ARP的IP为下一跳IP,MAC为全零(在转发表中设置了一项将MAC地址为全零的报文送往黑洞的表项)。当然实际中该MAC也可为其它任意选定的非全零值。
通过以上的处理,CPU在接收ARP回复报文时输入带宽就有了保障,使ARP的回复报文可顺利的送到CPU进行处理。但是当CPU发出的ARP报文丢失或对端回复的ARP报文丢失时,仅采用上述方法会使CPU不再迅速发送新的ARP报文,使交换机将较长时间地丢弃需使用该ARP表项转发的数据报文。例如在交换设备的外接线路状况较差,或在ARP回复报文回到CPU的同时由于有新的ARP老化或其它原因使CPU的报文输入带宽处于拥塞状态时就将导致上述问题的出现。为避免这一现象的发生,需要启动一个计时进程周期性的完成将“假”ARP进行删除的任务,这时需要进行第二部分的操作,因此在步骤3按指定周期删除转发芯片中的“假”ARP表项,使数据报文可以重新发往CPU,进而使ARP请求报文继续被CPU发送。为实现该步骤,需要根据转发芯片的CPU处理能力和负载状况确定所述周期的时间长度,并设置一个定时器,当然也可挂接在其它已有的计时器中,以定期完成步骤3的操作。该步骤的具体工作是在转发芯片中寻找“假”ARP表项,即寻找MAC为特定值的ARP表项,对这些表项进行删除操作。假ARP的删除策略可有不同的方式,在本例中分为两步来完成:
第一步,在转发芯片中查找“假”ARP表项,如果发现的“假”ARP表项没有登记,则登记该“假”ARP表项,并将该条目的计数器清零;如果发现的“假”ARP表项已经登记,则将该“假”ARP表项登记条目的计数器值加一,同时删除已经登记的但在转发芯片查找中未发现的“假”ARP登记表项;
第二步,判断CPU报文输入是否处于拥塞状态,如果是,说明现在CPU已经无法再处理更多的报文,为不再进一步增加CPU的输入负载,删除过程结束;否则删除计数值超过指定数值,例如3,的“假”ARP表项。这样做的目的是防止在对端的ARP回复报文未到达本交换机时,反复删除假ARP表项。判断CPU报文输入是否处于拥塞状态可以通过多种方式进行,例如通过查寻队列长度的方式。
上述两个步骤的实施细节参考图2。按照图2,首先要建立一个“假”ARP表项登记库,用于对“假”ARP表项进行管理。具体的删除操作为:首先进行步骤11在转发芯片中查找登记库中本次未处理的“假”ARP登记项,然后在步骤12判断是否找到这样的登记项,如果找到,则在步骤13继续判断该“假”ARP表项在登记库中是否存在,如果存在,在步骤14将登记库中该表项的计数器的值加1,然后转步骤11继续在转发芯片中查找本次未处理的“假”ARP表项;如果在步骤13中经判断得知在转发芯片中找到的“假”ARP表项在登记库中不存在,则经步骤15在登记库中登记该找到的“假”ARP表项,并将该新登记项的计数器值置初值0,然后转步骤11继续在转发芯片中查找本次未处理的“假”ARP表项;
如果经步骤12判断在步骤1中没找到本次未处理的“假”ARP表项,则转步骤16删除登记库存在而转发芯片中不存在的“假”ARP表项,接着在步骤17判断CPU报文输入接口是否处于拥塞状态,如果是,说明CPU已不能处理更多的报文了,本次删除操作结束;如果CPU未处于拥塞状态,则在步骤18查找登记库中计数器值计数值大于指定次数,例如3的登记项,在步骤19判断是否找到这样的登记项,如果未找到,本次删除操作结束,如果找到,在步骤20删除该种“假”ARP表项,然后结束本次删除操作。
在第三部分操作中,CPU在步骤4接收到ARP回复报文后刷新转发芯片的ARP表项,然后在步骤5转发芯片恢复正常数据报文的转发。
在本发明的具体实施中上述三个部分的操作可以通过三个并行的进程实现,例如该三个部分分别对应的进程可以为报文转发进程、“假”ARP表项的搜索删除进程和转发芯片的刷新进程。
本发明当然不仅可应用于ARP报文的获得,在需报文数据进行驱动的网上协议的完成也是如此。如交换机需完成多播功能时,交换机的CPU为节省交换芯片的资源并不将每一条多播表项都设置到交换芯片中。在有某种多播数据报文转发时,交换芯片会把该种数据报文送到CPU进行处理。此时CPU将对应的多播表项设置在交换芯片中使报文由交换芯片转发。这种机制节约了转发芯片的资源,但当CPU中没有该项多播表项时就对交换芯片不进行设置,并且不转发该种报文,因此会出现该种多播报文持续涌向CPU输入端口形成拥塞的情况,尤其在这种未知多播报文的数量较大时会影响CPU对其它报文的正常处理。利用设置“假”多播表项的方法也可解决该问题,在收到多播数据报文时CPU首先设置“假”多播表项到转发芯片中使该种报文去往“黑洞”,对数据报文分析后如果应加入该种多播表项到交换芯片中,则用“真”表项替换“假”多播表项,否则就在一定的时间间隔后再删除这个“假”多播表项,使该种多播数据报文可重新送往CPU。
Claims (4)
1、一种网络交换设备有效获得回应报文的方法,包括:
(1)当网络交换设备的转发芯片转发的数据报文对应的报文转发表项不存在时,将该报文发送到网络交换设备的CPU;
(2)CPU将该报文处理后广播发送ARP请求报文,同时在转发芯片中写入指导该报文转发的“假”表项;
(3)CPU在接收到回复报文后刷新转发芯片的表项;
(4)转发芯片恢复数据报文的转发;
(5)按指定周期删除转发芯片中驻留时间长的“假”表项,使其状态回到步骤(1)。
2、根据权利要求1所述的网络交换设备有效获得回应报文的方法,其特征在于所述方法还包括:根据转发芯片的CPU处理能力和负载状况确定所述周期的时间长度。
3、根据权利要求2所述的网络交换设备有效获得回应报文的方法,其特征在于所述按指定周期删除转发芯片中的“假”表项的过程包括下述步骤:
(41)在转发芯片中查找“假”表项,如果发现的“假”表项没有登记,则登记该“假”表项,并将该条目的计数器清零;如果发现的“假”表项已经登记,则将该“假”表项登记条目的计数器值加一,同时删除已经登记的但在转发芯片查找中未发现的“假”登记表项;
(42)判断CPU报文输入是否处于拥塞状态,如果是,删除过程结束;否则删除计数值最大且超过指定数值的“假”表项。
4、根据权利要求1、2或3所述的网络交换设备有效获得回应报文的方法,其特征在于:所述“假”表项是使转发芯片将需要该表项为指导来转发的数据报文不再送往CPU,而是送往“假”ARP表项中设置的转发“黑洞”,即将所述数据报文抛弃的表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021179492A CN1181653C (zh) | 2002-05-23 | 2002-05-23 | 一种网络交换设备有效获得回应报文的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021179492A CN1181653C (zh) | 2002-05-23 | 2002-05-23 | 一种网络交换设备有效获得回应报文的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1414748A CN1414748A (zh) | 2003-04-30 |
CN1181653C true CN1181653C (zh) | 2004-12-22 |
Family
ID=4744584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021179492A Expired - Fee Related CN1181653C (zh) | 2002-05-23 | 2002-05-23 | 一种网络交换设备有效获得回应报文的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1181653C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100372297C (zh) * | 2004-03-24 | 2008-02-27 | 华为技术有限公司 | 设备链路的维护方法及系统 |
CN101540731B (zh) * | 2009-04-30 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种三层报文转发方法及装置 |
-
2002
- 2002-05-23 CN CNB021179492A patent/CN1181653C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1414748A (zh) | 2003-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112020002496T5 (de) | System und verfahren zur erleichterung eines effizienten host-speicherzugriffs von einer netzwerkschnittstellensteuerung (nic) | |
US5598535A (en) | System for selectively and cumulatively grouping packets from different sessions upon the absence of exception condition and sending the packets after preselected time conditions | |
JP3384686B2 (ja) | 通信ネットワークから情報を受信するための方法および装置 | |
EP1010104B1 (en) | Hardware-assisted central processing unit access to a forwarding database | |
US6981032B2 (en) | Enhanced multicast-based web server | |
CN101150527B (zh) | 一种pcie数据传输的方法、系统及设备 | |
US20060242313A1 (en) | Network content processor including packet engine | |
CN1410905A (zh) | 一种全分布式的集群网络服务器系统 | |
CN1825836A (zh) | 避免网络设备拥塞的系统和方法 | |
CN111682994B (zh) | 基于epa协议的环形或线形网络系统和非实时数据的传输方法 | |
CN1463401A (zh) | 文件传送系统,文件传送服务器和接收客户机 | |
CN101110730A (zh) | 基于网际分组管理协议第三版的以太网组播实现方法 | |
CN102195882A (zh) | 根据数据流应用类型选路的方法及装置 | |
US6112247A (en) | Network controller for processing status queries | |
WO2001005123A1 (en) | Apparatus and method to minimize incoming data loss | |
CN102158406B (zh) | 面向计算机网络链路的智能选路方法 | |
US20070041332A1 (en) | Mirroring of a random subset of network traffic | |
KR100678956B1 (ko) | 네트워크 상에서 컨텐츠 정보를 요청 및 제공하는 장치 및그 방법 | |
CN1744569A (zh) | 未知组播报文的处理方法 | |
CN1152517C (zh) | 防范网络攻击的方法 | |
CN1181653C (zh) | 一种网络交换设备有效获得回应报文的方法 | |
JPH10224356A (ja) | ネットワークシステムおよびその負荷調整方法 | |
JP4527523B2 (ja) | サーバ選択方法およびサーバ選択方式およびサーバおよびクライアント端末 | |
CN1150464C (zh) | 一种在应用层交换中提高服务器响应速度的系统及方法 | |
US20190391856A1 (en) | Synchronization of multiple queues |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20041222 Termination date: 20150523 |
|
EXPY | Termination of patent right or utility model |