ICMP分片报文重组方法及转发方法、控制器及交换机与流程

文档序号:11138521阅读:2590来源:国知局
ICMP分片报文重组方法及转发方法、控制器及交换机与制造工艺

本发明涉及通信技术领域,尤其涉及一种ICMP分片报文重组方法、一种ICMP分片报文转发方法、一种控制器以及一种交换机。



背景技术:

ICMP(Internet Control Message Protocol)是Internet控制报文协议,其是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。具体,该控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

一般来说,网络中传输的ICMP报文都不大,对于不同的系统,能够传输的ICMP报文的大小也不一样,以测试网络的运行状态,检测网络转发路径的稳定性。

在网络运行过程中,若ICMP报文过大,超出了网络的MTU(Maximum Transmission Unit,最大传输单元),会分成几个ICMP分片来进行发送。但是,在网络正常运行中,一般不会出现ICMP分片报文,大部分情况下是由于网络攻击导致的。若网络中存在大流量的ICMP分片报文,不但会占用宝贵的带宽资源,而且会导致系统性能严重下降,甚至无法正常工作。

传统的交换机能够识别并且过滤ICMP分片报文,在使能ICMP分片报文过滤功能之后,正常转发和上送CPU(Central Processing Unit,中央处理器)的ICMP分片报文都会被直接丢弃,算法示意图如图1所示,其中,图示中的S1、S2、S3以及S4分别为交换机,具体,当交换机S4识别出客户端传输的为ICMP分片报文,则随即将其丢弃。但是,若这些ICMP分片报文不是攻击报文,无疑用户将会丢失数据。



技术实现要素:

针对上述问题,本发明提供了一种ICMP分片报文重组方法、一种ICMP分片报文转发方法、一种控制器以及一种交换机,有效解决了现有技术中将合法ICMP分片报文丢弃的问题。

本发明提供的技术方案如下:

一种基于SDN的ICMP分片报文重组方法,该SDN中包括一控制器及多个交换机,该ICMP分片报文重组方法中包括:

S110控制器接收交换机上报的ICMP分片报文;

S120控制器基于接收到的ICMP分片报文生成分片重组动态表;

S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;

S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;

S150控制器将流表下发至交换机实现后续ICMP报文的转发。

在本技术方案中,控制器将将接收到的报文进行重组之后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。

进一步优选地,在步骤S120中具体包括:

S121提取ICMP分片报文的源IP(Internet Protocol,网络之间互连的协议)地址和目的IP地址;

S122基于提取的源IP地址和目的IP地址生成分片重组动态表。

进一步优选地,在步骤S120中,所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。

在本技术方案中,在分片重组动态表中配置好处理器接收到ICMP分片报文之后的报文处理类型,这样,处理器接收到ICMP分片报文之后即可能够判断出如何处理该ICMP分片报文,提高处理器的效率。

进一步优选地,在步骤S130中具体包括:

根据ICMP分片报文的转发路径判断其报文处理类型;

若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后转入步骤S140;

若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文。

在本技术方案中,根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文(不合法ICMP分片报文)进行丢弃,并将合法ICMP分片报文进行重组,之后重新计算整个网络的MTU值并重新分配各转发路径的MTU值,实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。

进一步优选地,在步骤S150之后还包括:

S160控制器向报文发送者反馈ICMP差错报文,并生效分配后个转发路径的MTU值。

本发明还提供了一种基于SDN的ICMP分片报文转发方法,所述SDN中包括一控制器及多个交换机,所述ICMP分片报文转发方法中包括:

S210交换机接收控制器下发的流表;

S220交换机接收数据报文,并将其与流表进行匹配;

S230交换机基于数据报文的匹配结果,进一步判断该数据报文是否为ICMP分片报文;

S240若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型;

S250交换机基于ICMP分片报文所属的报文处理类型对ICMP分片报文进行重组生成ICMP报文;

S260交换机根据流表中最新分配的MTU值对重组后的ICMP报文进行转发。

在本技术方案中,在交换机中根据控制器下发的流表对接收到的数据报文进行判断,若该数据报文为ICMP报文,则直接根据最新分配的MTU值进行转发。若其为ICMP分片报文则进行重组后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。

进一步优选地,在步骤S210中接收的流表中的匹配字段包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型;

在步骤S240中:

若判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;

若判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文并进行重组处理之后转入步骤S250。

在本技术方案中,交换机根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文进行丢弃,并将合法ICMP分片报文进行重组,之后根据最新分配的MTU值实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。

本发明还提供了一种应用于SDN的控制器,该控制器与至少一个交换机连接,包括:

动态表项生成模块,基于接收到的ICMP分片报文生成分片重组动态表;

第一报文重组模块,基于动态表项生成模块生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;

MTU值分配模块,基于第一报文重组模块生成的ICMP报文对转发路径上的MTU值进行重新分配;

流表下发模块,将流表下发至交换机实现后续ICMP报文的转发。

在本技术方案中,控制器将将接收到的报文进行重组之后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。

进一步优选地,所述动态表项生成模块中包括:

地址提取单元,用于提取ICMP分片报文的源IP地址和目的IP地址;

表项生成单元,用于基于地址提取单元提取的源IP地址和目的IP地址生成分片重组动态表。

进一步优选地,所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。

在本技术方案中,在分片重组动态表中配置好处理器接收到ICMP分片报文之后的报文处理类型,这样,处理器接收到ICMP分片报文之后即可能够判断出如何处理该ICMP分片报文,提高处理器的效率。

进一步优选地,所述控制器中还包括第一判断模块,用于根据ICMP分片报文的转发路径判断其报文处理类型;

若所述第一判断模块判断ICMP分片报文属于报文重组类型,则第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文;

若所述第一判断模块判断ICMP分片报文属于报文丢弃类型,则流表下发模块向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文;

和/或,所述控制器中还包括差错报文反馈模块;

第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文之后,差错报文反馈模块向报文发送者反馈ICMP差错报文。

在本技术方案中,根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文(不合法ICMP分片报文)进行丢弃,并将合法ICMP分片报文进行重组,之后重新计算整个网络的MTU值并重新分配各路径的MTU值,实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。

本发明还提供了一种应用于SDN的交换机,该交换机中包括:

流表匹配模块,用于将接收到数据报文与上述控制器下发的流表进行匹配;

第二判断模块,基于流表匹配模块的匹配结果,进一步数据报文是否为ICMP分片报文及判断ICMP分片报文的报文处理类型;

第二报文重组模块,基于第二判断模块判断的报文处理类型对ICMP分片报文进行重组生成ICMP报文;

报文转发模块,根据流表中最新分配的MTU值对第二报文重组模块重组后的ICMP报文进行转发。

在本技术方案中,在交换机中根据控制器下发的流表对接收到的ICMP分片报文进行重组后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。

进一步优选地,控制器下发的流表中的匹配字段包括:源IP地址、目的IP地址、报文丢弃类型以及报文重组类型;

若第二判断模块判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;

若第二判断模块判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文之后第二报文重组模块对其进行重组,之后报文转发模块基于最新分配的MTU值对重组后的ICMP报文进行转发。

在本技术方案中,交换机根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文进行丢弃,并将合法ICMP分片报文进行重组,之后根据最新分配的MTU值实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。

图1为现有技术中交换机对ICMP分片报文进行处理的硬件结构示意图;

图2为本发明中ICMP分片报文重组方法一种实施方式流程示意图;

图3为本发明中Experimenter报文的报文格式示意图;

图4为本发明中ICMP分片报文重组方法另一种实施方式流程示意图;

图5为本发明中ICMP分片报文转发方法流程示意图;

图6为本发明中控制器一种实施方式结构示意图;

图7为本发明中控制器另一种实施方式结构示意图;

图8为本发明中控制器另一种实施方式结构示意图;

图9为本发明中交换机结构示意图;

图10为本发明中ICMP分片报文转发一种具体实施方式系统结构示意图。

附图标号说明:

100-控制器,110-动态表项生成模块,120-第一报文重组模块,130-MTU值分配模块,140-流表下发模块,150-第一判断模块,160-差错报文反馈模块,200-交换机,210-流表匹配模块,220-第二判断模块,230-第二报文重组模块,240-报文转发模块。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

如图2所示为本发明提供的基于SDN的ICMP分片报文重组方法一种实施方式流程示意图,其中,该SDN中包括一控制器及多个交换机。从图中可以看出,在该ICMP分片报文重组方法中包括:S110控制器接收交换机上报的ICMP分片报文;S120控制器基于接收到的ICMP分片报文生成分片重组动态表;S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;S150控制器将流表下发至交换机实现后续ICMP报文的转发。

具体来说,控制器在接收到交换机上报的ICMP分片报文之后,随即提取该ICMP分片报文的源IP地址和目的IP地址;并基于提取到的源IP地址和目的IP地址生成分片重组动态表。然后控制器根据生成的分片重组动态表重组ICMP分片报文,并重新计算网络的MTU值;之后,控制器根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后控制器将流表下发至转发路径上的交换机,并生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。

更具体来说,如表1所示,在上述分片重组动态表中配置项包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;其中,源IP地址表明数据流(包括ICMP分片报文)的源IP地址;目的IP地址表面数据流的目的IP地址;报文处理类型包括:报文重组类型和报文丢弃类型,具体,报文重组类型为重组并重新计算整个网络的MTU值,报文丢弃类型为直接丢弃ICMP分片报文。另外,在该分片重组动态表中,报文处理类型默认为报文重组类型。

表1:分片重组动态表

基于此,在步骤S130中具体包括:根据ICMP分片报文的转发路径判断其报文处理类型。若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后转入步骤S140;若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续同一转发路径的ICMP分片报文。

要说明的是,控制器中要实现上述目的,如表2所示,该控制器应支持基于SDN的ICMP分片报文重组配置任务序列,具体包括:基于数据流的ICMP分片重组动态表及基于SDN的ICMP分片报文重组算法功能打开或关闭。基于此,若整个网络中出现较多的ICMP分片报文,并需要对其进行进一步处理,则基于该ICMP分片报文重组配置任务序列打开基于SDN的ICMP分片报文重组算法功能;若不需要对网络中的ICMP分片报文进行处理,则关闭相应的功能。

表2:ICMP分片报文重组配置任务序列

另外,在本实施方式中,我们对交换机到控制器的私有扩展Experimenter报文做出说明,具体格式如图3所示。从图中可以看出,在该Experimenter报文中,包括:Version(版本号)、Type(数据类型)、Length(数据长度)、Transaction ID(事务ID号)、Experimenter值(图示中Experimenter)、Experimenter类型(图示中Experimenter Type)、端口号(如图示中的Port 1、……、Port n)以及各端口号对应的MTU值,具体在该Experimenter报文中,上报的端口号支持128个,即n=128。更进一步来说,交换机向控制器上报ICMP分片报文的过程中,该Experimenter值为255(表示需要向ONF(Open Networking Foundation,开放网络基金会)组织申请),Experimenter类型为1(表示数据方向为从交换机到控制器),且该私有Experimenter报文由交换机上报给控制器。

对上述实施方式进行改进得到本实施方式,如图4所示,在该ICMP分片报文重组方法中包括:S110控制器接收交换机上报的ICMP分片报文;S120控制器基于接收到的ICMP分片报文生成分片重组动态表;S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;S150控制器将流表下发至交换机实现后续ICMP报文的转发;S160控制器向报文发送者反馈ICMP差错报文,并生效分配后的MTU值。

具体来说,控制器在接收到交换机上报的ICMP分片报文之后,随即提取该ICMP分片报文的源IP地址和目的IP地址;并基于提取到的源IP地址和目的IP地址生成分片重组动态表。随后,计算ICMP分片报文的转发路径,并基于此判断该ICMP分片报文的报文处理类型。具体,若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续同一转发路径的ICMP分片报文。若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后重新计算网络的MTU值,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,控制器将流表下发至转发路径上的交换机并向报文发送者反馈ICMP差错报文,同时生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。

如图5所示为本发明中提供的基于SDN的ICMP分片报文转发方法的流程示意图,具体,在该ICMP分片报文转发方法中包括:S210交换机接收控制器下发的流表;S220交换机接收数据报文,并将其与流表进行匹配;S230交换机基于数据报文的匹配结果,进一步判断该数据报文是否为ICMP分片报文;S240若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型;S250交换机基于ICMP分片报文所属的报文处理类型对ICMP分片报文进行重组生成ICMP报文;S260交换机根据流表中最新分配的MTU值对重组后的ICMP报文进行转发。

具体,在步骤S220中,交换机中根据数据报文中IP头中的MF字段或IP头中的OFFSET字段来判断该数据报文是ICMP报文还是ICMP分片报文,具体,若IP头中的MF字段不为0或者IP头OFFSET字段不为0,则表示该数据报文为ICMP分片报文。更具体来说,若判断出该数据报文为ICMP报文,则直接根据流表中最新分配的MTU值对接收到的ICMP报文进行转发。若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型,进入步骤S250。

具体来说,如表3所示,上述流表中的匹配字段(表中Match字段)包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型,其中,对于匹配字段为“源IP地址,目的IP地址,报文丢弃类型”来说,动作字段为“丢弃报文”,具体描述为“报文直接被丢弃”;对于匹配字段为“源IP地址,目的IP地址,报文重组类型”来说,动作字段为“重组报文,转发报文”,具体描述为“缓存分片报文,进行重组处理;根据最新分配的MTU值,转发报文”。

基于此,在本实施方式中,在步骤S240中:若判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;若判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文并进行重组处理之后转入步骤S240。另外,从以上描述可知,由该流表实际上是控制器中下发的,故除了交换机中支持流表的扩充,控制器中同样支持流表的扩充,以控制器基于接收到的ICMP分片报文生成表3所示的扩充流表并下发至转发路径上的交换机中。

表3:流表

如图6所示为本发明提供的控制器一种实施方式结构示意图,具体该控制器应用于上述ICMP分片报文重组方法,且该控制器100与至少一个交换机200连接。从图中可以看出,在该控制器100中包括:动态表项生成模块110、第一报文重组模块120、MTU值分配模块130以及流表下发模块140,其中,第一报文重组模块120与动态表项生成模块110连接,MTU值分配模块130与第一报文重组模块120连接,流表下发模块140与MTU值分配模块130连接。进一步来说,在该动态表项生成模块中包括:相互连接的地址提取单元和表项生成单元,其中,地址提取单元用于提取ICMP分片报文的源IP地址和目的IP地址;表项生成单元基于地址提取单元提取的源IP地址和目的IP地址生成分片重组动态表。

在工作过程中,动态表项生成模块110在接收到交换机上报的ICMP分片报文之后,随即地址提取单元提取该ICMP分片报文的源IP地址和目的IP地址;之后表项生成单元基于提取到的源IP地址和目的IP地址生成分片重组动态表。随后,第一报文重组模块120根据生成的分片重组动态表重组ICMP分片报文,并重新计算网络的MTU值;之后,MTU值分配模块130根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,流表下发模块140将流表下发至转发路径上的交换机,并生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。

更具体来说,如表1所示,在上述分片重组动态表中配置项包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;其中,源IP地址表明数据流(包括ICMP分片报文)的源IP地址;目的IP地址表面数据流的目的IP地址;报文处理类型包括:报文重组类型和报文丢弃类型,具体,报文重组类型为重组并重新计算整个网络的MTU值,报文丢弃类型为直接丢弃ICMP分片报文。另外,在该分片重组动态表中,报文处理类型默认为报文重组类型。

基于此,对上述实施方式进行改进得到本实施方式,如图7所示,在本实施方式中,控制器100中除了包括动态表项生成模块110、第一报文重组模块120、MTU值分配模块130以及流表下发模块140之外,还包括第一判断模块150,用于根据ICMP分片报文的转发路径判断其报文处理类型。

具体,在工作过程中,若第一判断模块150根据ICMP分片报文的转发路径判断其报文处理类型。若判断出该ICMP分片报文属于报文重组类型,则第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文;若第一判断模块150判断ICMP分片报文属于报文丢弃类型,则流表下发模块140向上报该ICMP分片报文的交换机200下发流表,丢弃后续同一转发路径的ICMP分片报文;

对上述实施方式进行改进得到本实施方式,如图8所示,在本实施方式中,控制器100中除了包括动态表项生成模块110、第一报文重组模块120、MTU值分配模块130、流表下发模块140以及第一判断模块150之外,还包括差错报文反馈模块160。在工作过程中,第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文之后,差错报文反馈模块160向报文发送者反馈ICMP差错报文。

在工作过程中,动态表项生成模块110在接收到交换机上报的ICMP分片报文之后,随即地址提取单元提取该ICMP分片报文的源IP地址和目的IP地址;之后表项生成单元基于提取到的源IP地址和目的IP地址生成分片重组动态表。接着,第一判断模块150根据ICMP分片报文的转发路径判断其报文处理类型。若第一判断模块150判断ICMP分片报文属于报文丢弃类型,则流表下发模块140向上报该ICMP分片报文的交换机200下发流表,丢弃后续同一转发路径的ICMP分片报文;若判断出该ICMP分片报文属于报文重组类型,则第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文,并重新计算网络的MTU值;之后,MTU值分配模块130根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,流表下发模块140将流表下发至转发路径上的交换机,并使用差错报文反馈模块160向报文发送者反馈ICMP差错报文,同时生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。

如图9所示为本发明提供的交换机200,应用于上述ICMP分片报文的转发方法,具体该交换机200中包括:流表匹配模块210、第二判断模块220、第二报文重组模块230以及报文转发模块240,其中,第二判断模块220与流表匹配模块210连接,第二报文重组模块230与第二判断模块220连接,报文转发模块240与第二报文重组模块230连接。

在工作过程中,首先,流表匹配模块210将接收到ICMP分片报文与控制器100下发的流表进行匹配;之后,第二判断模块220基于流表匹配模块210的匹配结果,进一步数据报文是否为ICMP分片报文,若判断出该数据报文为ICMP报文,则报文转发模块240直接根据流表中最新分配的MTU值对接收到的ICMP报文进行转发。若判断出为ICMP分片报文(数据报文中IP头中的MF字段不为0或者IP头OFFSET字段不为0),则进一步判断ICMP分片报文的报文处理类型;接着,第二报文重组模块230基于第二判断模块220判断的报文处理类型对ICMP分片报文进行重组生成ICMP报文;最后,报文转发模块240根据流表中最新分配的MTU值对第二报文重组模块230重组后的ICMP报文进行转发。

具体来说,如表3所示,上述流表中的匹配字段(表中Match字段)包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型,其中,对于匹配字段为“源IP地址,目的IP地址,报文丢弃类型”来说,动作字段为“丢弃报文”,具体描述为“报文直接被丢弃”;对于匹配字段为“源IP地址,目的IP地址,报文重组类型”来说,动作字段为“重组报文,转发报文”,具体描述为“缓存分片报文,进行重组处理;根据最新分配的MTU值,转发报文”。

以此,若第二判断模块220判断ICMP分片报文属于报文丢弃类型,则直接丢弃该ICMP分片报文;若第二判断模块220判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文之后第二报文重组模块230对其进行重组,之后报文转发模块240基于最新分配的MTU值对重组后的ICMP报文进行转发。另外,从以上描述可知,由该流表实际上是控制器中下发的,故除了交换机中支持流表的扩充,控制器中同样支持流表的扩充,以控制器基于接收到的ICMP分片报文生成表3所示的扩充流表并下发至转发路径上的交换机中。

作为一个完整的实施例中,如图10所示(图示中箭头方向表示信号流动方向),在该实施例中,包括交换机100(如图示中的S0、S1、S2以及S3),控制器200、客户端以及服务器。

在该实施例中,假定客户端中发送了大小为500字节的ICMP分片报文(图示中步骤①);控制器在接收到该ICMP分片报文之后,判定其为报文重组类型之后对ICMP分片报文进重组后得到大小为1000字节的ICMP报文,则控制器开始计算整个转发路径的MTU值,并基于重组后ICMP报文的大小对转发路径上的MTU值重新分配(图示中步骤②),将转发路径的MTU值更新为1000字节,并下发流表至各交换机中,之后向客户端中反馈ICMP差错报文(图示中步骤③)。

之后,若客户端中直接产生大小为1000字节的ICMP报文(非分片)(图示中步骤④),则SDN直接将该ICMP报文进行转发至服务器。若交换机S0中接收到大小为500字节的ICMP分片报文,基于控制器下发的流表对接收到的ICMP分片报文进行匹配,同样对其报文处理类型进行判断,若判断出为报文重组类型,则对其进行重组得到大小为1000字节的ICMP报文进行相应路径上的转发。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1