一种报文处理方法及装置与流程

文档序号:12492587阅读:303来源:国知局
一种报文处理方法及装置与流程
本发明涉及数据处理
技术领域
,特别涉及一种报文处理方法及装置。
背景技术
:在SMA(StateMachinebasedAnti-spoofing,基于状态机的伪造源地址检查)体系中,彼此信任的一组AS(AutonomousSystem,自治系统)组成信任联盟,其中,每个AS中包括一个或多个AER(ASEdgeRouter,自治系统边界路由器),AER负责在AS间转发IPv6(InternetProtocolVersion6,下一代互联网协议)报文,具体地,源设备向目的设备发送报文的过程为:AER1在接收到与其通信连接的源设备发送的报文后,在该报文中添加标签,再将添加标签的报文发送给与目的设备通信连接的AER2,AER2将添加标签的报文中的标签删除后,再将该报文发送给目的设备,这里,源设备在AS1内,目的设备为AS2内,AS1和AS2在同一信任联盟中。目前,若AER1向AER2发送添加标签的报文时,由中间链路转发至AER2,中间链路上可以包括多个节点。由于AER1在报文中添加了标签,增加了报文的长度,这样很可能使原本未超过中间链路上的节点的MTU(MaximumTransmissionUnit,最大传输单元)值的报文,在被添加了标签后超过了节点的MTU值,此时,节点会丢弃原报文,并向源设备发送差错报文,告知源设备报文过大。然而,报文过大是由于在报文添加了标签导致的,源设备发送的报文并未超过MTU值,因此源设备会再次发送相同长度的该报文,节点仍然不能将该报文发送至目的设备。技术实现要素:本发明实施例公开了一种报文处理方法及装置,以保证同一信任联盟内的不同AS中的设备间进行通信。为达到上述目的,本发明实施例公开了一种报文处理方法,应用于自治系统边界路由设备AER,所述方法包括:接收用于通告报文超长的第一差错报文;当所述第一差错报文的第一目的地址为所述AER所属第一自治系统AS内的设备的地址,且所述第一差错报文的载荷中携带的第二目的地址为第二AS内的设备的地址时,将所述第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,所述第二MTU值不大于所述第一MTU值减去所述第一AS与所述第二AS之间通信所用的标签的最大长度的差值,所述第一AS和第二AS在同一信任联盟内;将修改后的所述第一差错报文发送至所述第一目的地址对应的设备,以使所述第一目的地址对应的设备根据所述第二MTU值向所述第二目的地址对应的设备发送报文。为达到上述目的,本发明实施例还公开了一种报文处理装置,应用于自治系统边界路由设备AER,所述装置包括:第一报文接收单元,用于接收用于通告报文超长的第一差错报文;报文修改单元,用于当所述第一差错报文的第一目的地址为所述AER所属第一自治系统AS内的设备的地址,且所述第一差错报文的载荷中携带的第二目的地址为第二AS内的设备的地址时,将所述第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,所述第二MTU值不大于所述第一MTU值减去所述第一AS与所述第二AS之间通信所用的标签的最大长度的差值,所述第一AS和第二AS在同一信任联盟内;报文发送单元,用于将修改后的所述第一差错报文发送至所述第一目的地址对应的设备,以使所述第一目的地址对应的设备根据所述第二MTU值向所述第二目的地址对应的设备发送报文。由上可知,在本发明实施例中,自治系统边界路由设备AER接收用于通告报文超长的第一差错报文,当第一差错报文的第一目的地址为AER所属第一自治系统AS内的设备的地址,且第一差错报文的载荷中携带的第二目的地址为第二AS内的设备的地址时,将第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,第二MTU值不大于第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值,并且第一AS和第二AS在同一信任联盟内。此时,AER将修改后的第一差错报文发送至第一目的地址对应的设备,第 一目的地址对应的设备就可以根据第二MTU值向第二目的地址对应的设备发送报文,并且该第一目的地址对应的设备发送的报文添加标签后的长度不会大于第一MTU值,进而使得该第一目的地址对应的设备发送的报文能够到达第二目的地址对应的设备,以保证同一信任联盟内的不同AS中的设备间进行通信。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种报文处理方法的流程示意图;图2为本发明实施例提供的另一种报文处理方法的流程示意图;图3为本发明实施例提供的一种报文处理装置的结构示意图;图4为本发明实施例提供的另一种报文处理装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体实施例,对本发明进行详细说明。参考图1,图1为本发明实施例提供的一种报文处理方法的流程示意图,应用于路由设备AER,所述方法包括步骤:S101:接收用于通告报文超长的第一差错报文;其中,第一差错报文可以包括:第一目的地址、第二目的地址和第一MTU值。具体地,第一目的地址为该第一差错报文的目的地址,其携带在该第一差错报文的报文头中;第二目标地址为该第一差错报文对应的报文的目的地址,其携带在该第一差错报文的载荷中;第一MTU值为发送该第一差错报文的节点 的MTU值,该节点为中间链路上的一个节点,其可以为路由器,也可以为其他具有路由通信功能的设备,本发明对此不进行限定。需要说明的是,目的地址可以为设备的IP(InternetProtocol,网络之间互连的协议)地址。S102:当第一差错报文的第一目的地址为AER所属第一自治系统AS内的设备的地址,且该第一差错报文载荷中携带的第二目的地址为第二AS内的设备的地址时,将该第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值;其中,第二MTU值不大于第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值,第一AS和第二AS在同一信任联盟内。具体地,若第一AS与第二AS在同一信任联盟内,并且第一目的地址对应的设备与第二目的地址对应的设备不在同一AS内,该AER在接收到第一目的地址对应的设备发送的报文后会在该报文中添加标签后再向第二目的地址对应的设备发送。因此,当第一差错报文的第一目的地址为AER所属第一AS内的设备的地址,且该第一差错报文的载荷中携带的第二目的地址为第二AS内的设备的地址时,则可以确定第一目的地址对应的设备向第二目的地址对应的设备发送的报文,在该AER上是添加过标签然后再发送至第一AS和第二AS之间的中间链路上的节点的,进而可以确定该AER接收到第一差错报文的原因,一种情况是:第一目的地址对应的设备发送的报文本身的长度大于第一MTU值,添加标签后的报文的长度更大于第一MTU值;另一种情况是:第一目的地址对应的设备发送的报文本身的长度不大于第一MTU值,添加标签后的报文的长度大于第一MTU值。由上可知,上述AER接收到第一差错报文,均与在报文中添加标签相关。这种情况下,将第一差错报文中的第一MTU值修改为第二MTU值,第二MTU值不大于第一MTU值减去上述标签的最大长度的差值,以便于第一目的地址对应的设备在向第二目的地址对应的设备发送报文时,将大于第二MTU值的报文进行分片,这里,分片后获得的报文的长度不大于第二MTU值,因此,分片后获得的报文经AER添加标签后,可以顺利地发送至第二目的地址对应的设备,提高了报文的发送效率;另外,AS之间通信的标签是由标签生成算法生成的,而 对于不同的标签生成算法,标签长度的最大值是不同的。这里标签生成算法为现有技术,此处不再赘述。在本发明的一种具体实现方式中,上述第二MTU值,可以为:第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值。具体地,将第一MTU值减去上述标签的最大长度的差值修改为第二MTU值,如,第一MTU值为1400,标签的最大长度为15,则第二MTU值为1400-15=1385。这样,可以保证第一目的地址对应的设备根据第二MTU值向第二目的地址对应的设备发送的报文添加标签后,其长度不超过第一MTU值;另外,对于第一目的地址对应的设备向第二目的地址对应的设备发送的报文,第一目的地址对应的设备可以根据最大长度对该报文进行分片,避免了第一目的地址对应的设备因第二MTU值过小将该报文进行过多的分片,进而减少了第一目的地址对应的设备发送报文的次数,提高了报文的发送效率。另外,第二MTU值也可以小于第一MTU值减去上述标签的最大长度的差值,如,第一MTU值为1400,标签长度的最大值为15,1400-15=1385,第二MTU值可以确定为1350。因为中间链路中可能并不只一个节点,假设有两个节点,一个节点的MTU值为1400,另一个节点的MTU值为1370,若在接收到包含第一MTU值为1400的差错报文时,直接确定第二MTU值为1350,那么,当第一目的地址对应的设备根据第二MTU值向第二目的地址对应的设备发送报文时,AER可以将该报文添加标签后顺利地经过第一AS和第二AS之间的中间链路上的上述两个节点,到达第二目的地址对应的设备,而不会接收到上述MTU值为1370的节点发送的差错报文,提高了报文的发送效率。S103:将修改后的第一差错报文发送至第一目的地址对应的设备。这种情况下,第一目的地址对应的设备就可以根据第二MTU值向第二目的地址对应的设备发送报文。这里,根据第二MTU值向第二目的地址对应的设备发送的报文,其长度不大于第二MTU值。在本发明的一种具体实现方式中,第一目的地址对应的设备可以根据该第一差错报文的载荷中携带的信息,找到该第一差错报文对应的报文,将该报文分片为长度不大于第二MTU值的多个报文,并将分片后获得的报文发送给AER,由该AER在每个分片后获得的报文中添加标签,并向第二目的地址对应的设备 发送添加标签后的报文。在本发明的一种具体实现方式中,为提高报文的发送效率,可以在AER中预先存储MTU与设备的地址的对应关系,由AER根据该预先存储的对应关系,判断报文的长度是否超长;另外,为了准确的判断报文的长度是否超长,需要不断的更新预先存储的对应关系。这种情况下,上述在将第一差错报文携带的第一MTU值修改为第二MTU值之后,还可以包括:S1、判断预先存储的MTU值与设备的地址的对应关系中是否包含针对第二目的地址的对应关系,若为是,执行步骤S2,若为否,执行步骤S3;优选的,上述预先存储的MTU值与设备的地址的对应关系可以存储在MTU表中,便于AER快速判断出是否包含针对设备的地址的对应关系。实际应用中,AER中还可以存储目的地址与目的地址对应的设备所在AS的AS号、中间节点的地址等信息间的对应关系,如表1所示。表1目的地址AS号中间节点的地址MTU2034::422012::21385S2、将已存储的与第二目的地址对应的MTU值更新为第二MTU值;具体地,当AER接收到了第一差错报文后,在确定第一目的地址对应的设备向第二目的地址对应的设备发送的报文,是在该AER上添加过标签然后再发送至第一AS和第二AS之间的中间链路上的节点的情况下,若该AER中已存储了针对第二目的地址的对应关系,则比较第二MTU值与已存储的与第二目的地址对应的MTU值的大小:当第二MTU值小于已存储的与第二目的地址对应的MTU值时,说明在中间链路中存在MTU值更小的节点,则将已存储的与第二目的地址对应的MTU值更新为第二MTU值,以提高报文的发送效率,如:已存储的与第二目的地址对应的MTU值为1385,向第二目的地址对应设备发送的长度为1385的第一报文,在添加标签后顺利地通过了中间链路上的一个节点A,但中间链路上还存在一个节点B,该节点B的MTU值为1370,那么该第一报文将不能通过节点B,节点B会向AER发送差错报文,进而AER根据该差错报文的载荷中携带的第一MTU值(该 第一MTU值1370)获得第二MTU值,假设第二MTU值为1355,将1385更新为1355,这样,第一目的地址对应的设备会根据该第二MTU值,向第二目的地址对应的设备发送第二报文,该第二报文就可以顺利通过节点A和节点B,到达第二目的地址对应的设备;当第二MTU值不小于已存储的与第二目的地址对应的MTU值时,为了减少AER的工作量并减少AER接收到差错报文的数量,可以不更新已存储的与第二目的地址对应的MTU值,以提高报文的发送效率,如:已存储的与第二目的地址对应的MTU值为1385,而第二MTU值为1400,则可以不将1385更新为1400,这样,第一目的地址对应的设备向第二目的地址对应的设备发送报文时,AER就不会接收到针对长度在(1385,1400)范围内的报文的差错报文了,提高了报文的发送效率。S3、存储第二MTU值与第二目的地址的对应关系。具体地,当AER未存储针对第二目的地址的对应关系时,可以将第二目的地址与第二MTU值对应的存储在AER中,以便于AER根据该对应关系判断向第二目的地址对应的设备发送的报文的长度是否超长。在本发明的一种具体实现方式中,AER中还可以为已存储的MTU值与设备的地址的对应关系配置老化时间。当监测到已存储的任一MTU值与设备的地址的对应关系的存储时间达到对应的老化时间时,删除该对应关系。实际应用中,为了适应网络的变化,避免AER中存储过多不经常使用或无用的信息,需要将这些信息从AER中清理掉。这里老化时间可以由用户根据实际需要来确定。另外,AER中存储的任一MTU值与设备的地址的对应关系,也可以由用户手工清除掉,本发明对此不进行限定。实际应用中,在AER中预先存储MTU值与设备的地址的对应关系,那么AER可以根据其已存储的对应关系,处理向已存储的对应关系中的设备的地址对应的设备发送的报文,提高报文的发送效率,具体地可参考图2,图2为本发明实施例提供的另一种报文处理方法的流程示意图,该方法可以包括:S201:接收第一AS内的第一设备发送的报文;其中,第一设备发送的报文可以包括:第三目的地址。该第三目的地址为第一设备发送的报文的目的地址。另外,第一设备发送的报文还可以包括:第一设备的地址、报文数据、AER的地址等信息。S202:判断已存储的MTU值与设备的地址的对应关系中是否包含针对第三目的地址的对应关系,若为是,执行步骤S203,若为否,执行步骤S204;这里,MTU值与设备的地址的对应关系可以为用户根据需要设定的,也可以为AER根据接收到的第一差错报文中包含的第二目的地址和第一MTU值获得的。S203:获取已存储的与第三目的地址对应的第三MTU值,并判断第一设备发送的报文的长度是否大于第三MTU值,若大于,则执行步骤S205,若不大于,则执行步骤S204;S204:在第一设备发送的报文中添加第一AS与第三目的地址对应的设备所属的第三AS之间通信所用的标签后,向第三目的地址对应的设备发送添加标签后的报文;在已存储的MTU值与设备的地址的对应关系中不包含针对第三目的地址的对应关系的情况下,AER可以认为是第一设备首次向第三目的地址对应的设备发送报文,也可以认为是该第一设备以前向第三目的地址对应的设备发送的报文的长度均未超过中间链路的MTU值,此时并不能确定中间链路的MTU值,因此,AER不会向第一设备发送差错报文,第一设备也不会对其向第三目的地址对应的设备发送报文进行分片处理,减少第一设备的工作量。在第一设备发送的报文的长度不大于第三MTU值,说明该报文在添加标签后的长度不会超过中间链路的MTU值,因此,AER可以正常的在该报文中添加标签,并向第三目的地址对应的设备发送添加标签后的报文。S205:向第一设备发送用于通告报文超长的第二差错报文。这里,第二差错报文携带有第三MTU值。具体地,当已存储的MTU值与设备的地址的对应关系中包含针对第三目的地址的对应关系时,可以根据该第三目的地址获得其对应的第三MTU值,在第一设备发送的报文的长度大于第三MTU值时,AER可以直接构造第二差错报文, 并发送给第一设备,提高了报文的发送效率。应用图1所示实施例,自治系统边界路由设备AER接收用于通告报文超长的第一差错报文,当第一差错报文的第一目的地址为AER所属第一自治系统AS内的设备的地址,且第一差错报文的载荷中携带的第二目的地址为第二AS内的设备的地址时,将第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,第二MTU值不大于第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值,并且第一AS和第二AS在同一信任联盟内。此时,AER将修改后的第一差错报文发送至第一目的地址对应的设备,第一目的地址对应的设备就可以根据第二MTU值向第二目的地址对应的设备发送报文,并且该第一目的地址对应的设备发送的报文添加标签后的长度不会大于第一MTU值,进而使得该第一目的地址对应的设备发送的报文能够到达第二目的地址对应的设备,以保证同一信任联盟内的不同AS中的设备间进行通信。参考图3,图3为本发明实施例提供的一种报文处理装置,应用于自治系统边界路由设备AER,该装置包括:第一报文接收单元301,用于接收用于通告报文超长的第一差错报文;报文修改单元302,用于当第一差错报文的第一目的地址为AER所属第一自治系统AS内的设备的地址,且第一差错报文载荷中携带的第二目的地址为第二AS内的设备的地址时,将第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,第二MTU值不大于第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值,第一AS和第二AS在同一信任联盟内;报文发送单元303,用于将修改后的第一差错报文发送至第一目的地址对应的设备,以使第一目的地址对应的设备根据第二MTU值向第二目的地址对应的设备发送报文。在本发明的一种具体实现方式中,上述第二MTU值,可以为:第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值。在本发明的一种具体实现方式中,上述报文处理装置还可以包括:第一关系判断单元,用于判断已存储的MTU值与设备的地址的对应关系中是否包含针对第二目的地址的对应关系;MTU值更新单元,用于在第一关系判断单元的判断结果为是的情况下,将已存储的与第二目的地址对应的MTU值更新为第二MTU值;关系存储单元,用于在第一关系判断单元的判断结果为否的情况下,存储第二MTU值与第二目的地址的对应关系(图3中未示出)。实际应用中,在AER中预先存储MTU值与设备的地址的对应关系,那么AER可以根据其已存储的对应关系,直接处理向已存储的对应关系中的设备的地址对应的设备发送的报文,提高报文的发送效率,具体地可参考图4,图4为本发明实施例提供的另一种报文处理装置的流程示意图,该装置包括:第二报文接收单元401,用于接收第一AS内的第一设备发送的报文,其中,第一设备发送的报文包括:第三目的地址;第二关系判断单元402,用于判断已存储的MTU值与设备的地址的对应关系中是否包含针对第三目的地址的对应关系;第二报文发送单元403,用于在第二关系判断单元402的判断结果为是的情况下,获取已存储的与第三目的地址对应的第三MTU值;在第一设备发送的报文的长度大于第三MTU值的情况下,向第一设备发送用于通告报文超长的第二差错报文,其中,第二差错报文携带第三MTU值;第三报文发送单元404,用于在第二关系判断单元402的判断结果为否的情况下,在第一设备发送的报文中添加第一AS与第三目的地址对应的设备所属的第三AS之间通信所用的标签后,向第三目的地址对应的设备发送添加标签后的报文。在本发明的一种具体实现方式中,上述报文处理装置还可以包括:老化时间配置单元,用于为已存储的MTU值与设备的地址的对应关系配置老化时间;关系删除单元,用于当监测到已存储的任一MTU值与设备的地址的对应关系的存储时间达到对应的老化时间时,删除该对应关系(图3中未示出)。应用图3所示实施例,自治系统边界路由设备AER接收用于通告报文超长的第一差错报文,当第一差错报文的第一目的地址为AER所属第一自治系统AS内的设备的地址,且第一差错报文的载荷中携带的第二目的地址为第二AS内的设 备的地址时,将第一差错报文携带的第一最大传输单元MTU值修改为第二MTU值,其中,第二MTU值不大于第一MTU值减去第一AS与第二AS之间通信所用的标签的最大长度的差值,并且第一AS和第二AS在同一信任联盟内。此时,AER将修改后的第一差错报文发送至第一目的地址对应的设备,第一目的地址对应的设备就可以根据第二MTU值向第二目的地址对应的设备发送报文,并且该第一目的地址对应的设备发送的报文添加标签后的长度不会大于第一MTU值,进而使得该第一目的地址对应的设备发送的报文能够到达第二目的地址对应的设备,以保证同一信任联盟内的不同AS中的设备间进行通信。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1