CN105227451B - 一种报文处理方法及装置 - Google Patents

一种报文处理方法及装置 Download PDF

Info

Publication number
CN105227451B
CN105227451B CN201410291152.1A CN201410291152A CN105227451B CN 105227451 B CN105227451 B CN 105227451B CN 201410291152 A CN201410291152 A CN 201410291152A CN 105227451 B CN105227451 B CN 105227451B
Authority
CN
China
Prior art keywords
message
sub
pcie bus
bus apparatus
sent
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.)
Active
Application number
CN201410291152.1A
Other languages
English (en)
Other versions
CN105227451A (zh
Inventor
方洪灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410291152.1A priority Critical patent/CN105227451B/zh
Publication of CN105227451A publication Critical patent/CN105227451A/zh
Application granted granted Critical
Publication of CN105227451B publication Critical patent/CN105227451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明公开一种报文处理方法及装置,该方法包括:接收第一PCIE总线设备发送的第一子报文,第一子报文包括序号和目的地址;判断第一子报文的序号是否等于目标序号,目标序号是指在接收第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号;若不等于目标序号,存储第一子报文;接收第一PCIE总线设备发送的第二子报文;当第二子报文的序号等于目标序号时,将第二子报文通过PCIE总线发送至第二PCIE总线设备,第一子报文与第二子报文的目的地址相同;更新目标序号;当第一子报文的序号等于更新后的目标序号时,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备。本发明实施例,可以保证PCIE系统中报文的顺序传输。

Description

一种报文处理方法及装置
技术领域
本发明涉及互联网技术领域,具体涉及一种报文处理方法及装置。
背景技术
随着外围部件接口扩展(Peripheral Component Interface Express,PCIE)总线的不断发展,PCIE总线由系统内互连发展为系统间互联,由于在PCIE系统结构中,PCIE总线只能实现报文的短距离传输,以致当两个系统相距较远时,将无法通过PCIE总线完成这两个系统间报文的传输。因此,采用以太网链路层来实现报文的远距离传输,由于链路层的容量有限,当传输的报文容量大于链路层最大容量时,需要将报文划分为容量较小的子报文以保证每个子报文的容量小于或等于链路层最大容量。当PCIE总线的带宽大于链路层的带宽时,这些子报文将通过多个链路层通道进行传输,由于不同链路层通道的时延不同,导致接收端接收的子报文的顺序与发送端发送的子报文的顺序不同,这将与PCIE系统中对报文顺序传输的要求相冲突。
发明内容
本发明实施例公开一种报文处理方法及装置,用于保证PCIE系统中报文的顺序传输。
本发明实施例第一方面公开一种报文处理方法,包括:
接收第一PCIE总线设备发送的第一子报文,所述第一子报文包括序号和目的地址;
判断所述第一子报文的序号是否等于目标序号,所述目标序号是指在接收所述第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,所述第二PCIE总线设备是所述第一子报文的目的地址对应的PCIE总线设备;
若所述第一子报文的序号不等于所述目标序号,则存储所述第一子报文;
接收所述第一PCIE总线设备发送的第二子报文,所述第二子报文包括序号和目的地址;
当所述第二子报文的序号等于所述目标序号时,将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备,所述第一子报文的目的地址与所述第二子报文的目的地址相同;
将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备之后,更新所述目标序号,获得更新后的目标序号;
当所述第一子报文的序号等于所述更新后的目标序号时,将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备。
结合本发明实施例第一方面,在本发明实施例第一方面的第一种可能的实现方式中,所述第一子报文还包括报文类型,所述报文类型包括数据报文和消息报文;
所述接收第一PCIE总线设备发送的第一子报文之后,以及判断所述第一子报文的序号是否等于目标序号之前,所述方法还包括:
判断所述第一子报文是否是数据报文;
若是,则执行所述的判断所述第一子报文的序号是否等于目标序号的步骤。
结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述存储所述第一子报文包括:
将所述第一子报文存储在缓存器中;
将所述第一子报文的序号和所述第一子报文在所述缓存器中的存储地址插入乱序表中;
所述将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备包括:
利用所述第一子报文的序号从所述乱序表中查询所述第一子报文在所述缓存器中的存储地址;
利用所述第一子报文在所述缓存器中的存储地址从所述缓存器中获取所述第一子报文并通过PCIE总线发送至所述第二PCIE总线设备。
结合本发明实施例第一方面的第二种可能的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,所述更新所述目标序号,获得更新后的目标序号包括:
增大所述目标序号以获得增大后的目标序号;或
减小所述目标序号以获得减小后的目标序号。
结合本发明实施例第一方面以及本发明实施例第一方面的第一种至第三种中任一种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,所述第一子报文还包括所述第一PCIE总线设备的地址;
所述将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备之后,所述方法还包括:
生成针对所述第一子报文的消息报文,所述消息报文用于表明所述第一子报文被所述第二PCIE总线设备顺序接收;
利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备。
结合本发明实施例第一方面的第四种可能的实现方式,在本发明实施例第一方面的第五中可能的实现方式中,所述接收第一PCIE总线设备发送的第一子报文包括:
接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
所述接收所述第一PCIE总线设备发送的第二子报文包括:
接收所述第一PCIE总线设备通过以太网链路层发送的第二子报文;
所述利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备包括:
利用所述第一PCIE总线设备的地址,将所述消息报文通过以太网链路层发送至所述第一PCIE总线设备。
本发明实施例第二方面公开一种报文处理装置,包括:
接收单元,用于接收第一PCIE总线设备发送的第一子报文,所述第一子报文包括序号和目的地址;
第一判断单元,用于判断所述第一子报文的序号是否等于目标序号,所述目标序号是指在接收所述第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,所述第二PCIE总线设备是所述第一子报文的目的地址对应的PCIE总线设备;
存储单元,用于当所述第一子报文的序号不等于所述目标序号时,存储所述第一子报文;
所述接收单元,还用于接收所述第一PCIE总线设备发送的第二子报文,所述第二子报文包括序号和目的地址;
发送单元,用于当所述第二子报文的序号等于所述目标序号时,将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备,所述第一子报文的目的地址与所述第二子报文的目的地址相同;
更新单元,用于更新所述目标序号,获得更新后的目标序号;
所述发送单元,还用于当所述第一子报文的序号等于所述更新后的目标序号时,将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备。
结合本发明实施例第二方面,在本发明实施例第二方面的第一种可能的实现方式中,所述第一子报文还包括报文类型,所述报文类型包括数据报文和消息报文;
所述装置还包括:
第二判断单元,用于判断所述第一子报文是否是数据报文,当所述第一子报文是数据报文时,触发所述第一判断单元执行所述的判断所述第一子报文的序号是否等于目标序号的步骤。
结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述存储单元包括:
存储子单元,用于将所述第一子报文存储在缓存器中;
插入子单元,用于将所述第一子报文的序号和所述第一子报文在所述缓存器中的存储地址插入乱序表中;
所述发送单元将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备的方式具体为:
所述发送单元,用于利用所述第一子报文的序号从所述乱序表中查询所述第一子报文在所述缓存器中的存储地址,以及利用所述第一子报文在所述缓存器中的存储地址从所述缓存器中获取所述第一子报文并通过PCIE总线发送至所述第二PCIE总线设备。
结合本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述更新单元,具体用于增大所述目标序号以获得增大后的目标序号,或减小所述目标序号以获得减小后的目标序号。
结合本发明实施例第二方面以及本发明实施例第二方面的第一种至第三种中任一种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述第一子报文还包括所述第一PCIE总线设备的地址;
所述装置还包括:
生成单元,用于生成针对所述第一子报文的消息报文,所述消息报文用于表明所述第一子报文被所述第二PCIE总线设备顺序接收;
所述发送单元,还用于利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备。
结合本发明实施例第二方面的第四种可能的实现方式,在本发明实施例第二方面的第五种可能的实现方式中,所述接收单元接收第一PCIE总线设备发送的第一子报文的方式具体为:
所述接收单元,用于接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
所述接收单元接收所述第一PCIE总线设备发送的第二子报文的方式具体为:
所述接收单元,用于接收第一PCIE总线设备通过以太网链路层发送的第二子报文;
所述发送单元利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备的方式具体为:
所述发送单元,用于利用所述第一PCIE总线设备的地址,将所述消息报文通过以太网链路层发送至所述第一PCIE总线设备。
本发明实施例中,当接收到的第一PCIE总线设备发送的子报文的序号不等于目标序号时,将该子报文存入缓存器,当更新后的目标序号等于该子报文的序号时,将存储在缓存器中的该子报文通过PCIE总线发送至该子报文的目的地址对应的第二PCIE总线设备,以保证PCIE系统中子报文的顺序传输。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种报文处理方法的流程图;
图2是本发明实施例公开的第一PCIE总线设备与第二PCIE总线设备间的网络架构图;
图3是本发明实施例公开的另一种报文处理方法的流程图;
图4是本发明实施例公开的一种报文处理装置的结构图;
图5是本发明实施例公开的另一种报文处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中公开了一种报文处理方法及装置,用于保证PCIE系统中报文的顺序传输。以下分别进行详细说明。
请参阅图1,图1是本发明实施例公开的一种报文处理方法的流程图。如图1所示,该报文处理方法可以包括以下步骤。
S101、接收第一PCIE总线设备发送的第一子报文,第一子报文包括序号和目的地址。
本实施例中,可以由硬盘、主板等硬件接收第一PCIE总线发送的第一子报文,本实施例不作限定。该硬件可以是终端设备中的硬件,也可以是服务器中的硬件,本实施例不作限定。本实施例中的硬件可以包括至少一个处理器,该硬件可以在该至少一个处理器的控制下工作。
本实施例中,如图2所示,由于PCIE总线只能实现报文的短距离传输,当PCIE系统1与PCIE系统2相距较远时,无法通过PCIE总线实现PCIE系统1中第一PCIE总线设备与PCIE系统2中第二PCIE总线设备间的报文传输。因此,当第一PCIE总线设备与第二PCIE总线设备传输报文时,在PCIE系统1或PCIE系统2内报文通过PCIE总线传输,而在这两个PCIE系统间报文通过以太网链路层(即媒体访问控制(Media Access Control,MAC)层)传输。由于MAC层容量有限,当一个报文的容量大于MAC层的最大容量时,需要将这个报文划分为容量小于或等于MAC层最大容量的多个子报文,且当PCIE总线的带宽大于MAC层的带宽时,由第一PCIE总线设备发送给第二PCIE总线设备的多个子报文在PCIE系统1与PCIE系统2间将通过多个MAC层通道传输。由于不同MAC层通道的时延不同,导致系统2从以太网MAC层接收到的子报文的顺序与PCIE系统1发送给以太网MAC层的子报文的顺序不同,但PCIE系统要求报文必须顺序传输,因此,在子报文进入PCIE系统2之前先将子报文传输给包括该硬件的终端设备或服务器以保证进入系统2的子报文的顺序与系统1发送给MAC层的子报文的顺序一致。
本实施例中,假设总共有四个MAC层通道,接收第一PCIE总线设备通过以太网MAC层发送的子报文时,先接收第一MAC层通道传输的子报文,再依次接收第二MAC层通道传输的子报文、第三MAC层通道传输的子报文和第四MAC层通道传输的子报文,当接收完第四MAC层通道传输的子报文后,又从第一MAC层通道开始接收,不断重复上述步骤直到接收完为止。
S102、判断第一子报文的序号是否等于目标序号,目标序号是指在接收第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,第二PCIE总线设备是第一子报文的目的地址对应的PCIE总线设备。
本实施例中,当子报文属于同一报文的子报文时,这些子报文的目的地址相同,因此,第二PCIE总线设备是与第一子报文属于同一报文的所有子报文的目的地址对应的PCIE总线设备。
本实施例中,当在接收到第一子报文之前未接收到与第一子报文属于同一报文的子报文时,目标序号是指需要发送给第二PCIE总线设备的第一个子报文的序号。
S103、若第一子报文的序号不等于目标序号,则存储第一子报文。
本实施例中,当第一子报文的序号不等于目标序号时,认为第一子报文不是当前应该发送给第二PCIE总线设备的子报文,则将第一子报文存储在缓存器中以便后续调用。缓存器可以为双倍速率同步动态随机存储器。
相应地,当第一子报文的序号等于目标序号时,认为第一子报文为当前应该发送给第二PCIE总线设备的子报文,将第一子报文通过PCIE总线发送至第二PCIE总线设备。
S104、接收第一PCIE总线设备发送的第二子报文,第二子报文包括序号和目的地址。
本实施例中,第二子报文是在第一子报文之后接收到的子报文,接收到第二子报文之后将判断第二子报文与第一子报文是否属于同一报文的子报文。
S105、当第二子报文的序号等于目标序号时,将第二子报文通过PCIE总线发送至第二PCIE总线设备,第一子报文的目的地址与第二子报文的目的地址相同。
本实施例中,当第二子报文与第一子报文属于同一报文的子报文时,将判断第二子报文的序号是否等于目标序号,若等于,则认为第二子报文为当前应该发送给第二PCIE总线设备的子报文,将第二子报文通过PCIE总线发送至第二PCIE总线设备。由于第一子报文与第二子报文属于同一报文的不同子报文,因此,它们的目的地址对应的PCIE总线设备都为第二PCIE总线设备。相应地,若第二子报文的序号不等于目标序号,则认为第二子报文不是当前应该发送给第二PCIE总线设备的子报文,则将第二子报文存储在缓存器中以便后续调用。
S106、将第二子报文通过PCIE总线发送至第二PCIE总线设备之后,更新目标序号,获得更新后的目标序号。
本实施例中,将第二子报文通过PCIE总线发送至第二PCIE总线设备之后,将更新目标序号以获得更新后的目标序号,以便利用更新后的目标序号匹配与第二子报文的序号相邻的下一子报文。
S107、当第一子报文的序号等于更新后的目标序号时,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备。
本实施例中,获得更新后的目标序号之后,先从缓存器中查询是否有存储的子报文的序号等于更新后的目标序号,当之前存储在缓存器中的第一子报文的序号等于更新后的目标序号时,将存储在缓存器中的第一子报文通过PCIE总线至第二PCIE总线设备;当没有存储的子报文的序号等于更新后的目标序号时,判断在第二报文之后紧邻第二子报文接收到的子报文的序号是否等于更新后的目标序号。
在图1所示的报文处理方法中,当接收到的第一PCIE总线设备发送的子报文的序号不等于目标序号时,将该子报文存入缓存器,当更新后的目标序号等于该子报文的序号时,将存储在缓存器中的该子报文通过PCIE总线发送至该子报文的目的地址对应的第二PCIE总线设备,以保证PCIE系统中子报文的顺序传输。
请参阅图3,图3是本发明实施例公开的另一种报文处理方法的流程图。如图3所示,该报文处理方法可以包括以下步骤。
S301、接收第一PCIE总线设备发送的第一子报文,第一子报文包括序号和目的地址。
本实施例中,可以由硬盘、主板等硬件接收第一PCIE总线发送的第一子报文,本实施例不作限定。该硬件可以是终端设备中的硬件,也可以是服务器中的硬件,本实施例不作限定。本实施例中的硬件可以包括至少一个处理器,该硬件可以在该至少一个处理器的控制下工作。
本实施例中,如图2所示,由于PCIE总线只能实现报文的短距离传输,当PCIE系统1与PCIE系统2相距较远时,无法通过PCIE总线实现PCIE系统1中第一PCIE总线设备与PCIE系统2中第二PCIE总线设备间的报文传输。因此,当第一PCIE总线设备与第二PCIE总线设备传输报文时,在PCIE系统1或PCIE系统2内报文通过PCIE总线传输,而在这两个PCIE系统间报文通过以太网MAC层传输。由于MAC层容量有限,当一个报文的容量大于MAC层的最大容量时,需要将这个报文划分为容量小于或等于MAC层最大容量的多个子报文,且当PCIE总线的带宽大于MAC层的带宽时,由第一PCIE总线设备发送给第二PCIE总线设备的多个子报文在PCIE系统1与PCIE系统2间将通过多个MAC层通道传输。由于不同MAC层通道的时延不同,导致系统2从以太网MAC层接收到的子报文的顺序与PCIE系统1发送给以太网MAC层的子报文的顺序不同,但PCIE系统要求报文必须顺序传输,因此,在子报文进入PCIE系统2之前先将子报文传输给包括该硬件的终端设备或服务器以保证进入系统2的子报文的顺序与系统1发送给MAC层的子报文的顺序一致。
本实施例中,假设总共有四个MAC层通道,接收第一PCIE总线设备通过以太网MAC层发送的子报文时,先接收第一MAC层通道传输的子报文,再依次接收第二MAC层通道传输的子报文、第三MAC层通道传输的子报文和第四MAC层通道传输的子报文,当接收完第四MAC层通道传输的子报文后,又从第一MAC层通道开始接收,不断重复上述步骤直到接收完为止。
作为一种可能的实施方式,接收第一PCIE总线设备发送的第一子报文的方式具体为:
接收第一PCIE总线设备通过以太网链路层发送的第一子报文。
S302、第一子报文还包括报文类型,报文类型包括数据报文和消息报文,判断第一子报文是否是数据报文。
本实施例中,由于接收到的第一子报文可以为数据报文、也可以为消息报文,而消息报文的容量较小不需要划分为子报文,因此,需要判断第一子报文是否是数据报文。
S303、若第一子报文是数据报文,则判断第一子报文的序号是否等于目标序号,目标序号是指在接收第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,第二PCIE总线设备是第一子报文的目的地址对应的PCIE总线设备。
本实施例中,若第一子报文是数据报文,则需要继续判断第一子报文的序号是否等于目标序号。
相应地,若第一子报文是消息报文,则将第一子报文发送给与第一子报文对应的数据子报文的源地址,以触发该源地址对应的PCIE总线设备删除缓存器中存储的与第一子报文对应的数据子报文。
本实施例中,当在接收到第一子报文之前未接收到与第一子报文属于同一报文的子报文时,目标序号是指需要发送给第二PCIE总线设备的第一个子报文的序号。
S304、若第一子报文的序号不等于目标序号,则存储第一子报文。
本实施例中,当第一子报文的序号不等于目标序号时,认为第一子报文不是当前应该发送给第二PCIE总线设备的子报文,将第一子报文存储在缓存器中以便后续调用。缓存器可以为双倍速率同步动态随机存储器。
相应地,当第一子报文的序号等于目标序号时,认为第一子报文为当前应该发送给第二PCIE总线设备的子报文,将第一子报文通过PCIE总线发送至第二PCIE总线设备。
作为一种可能的实施方式,报文处理装置存储第一子报文可以包括以下步骤。
A1、将第一子报文存储在缓存器中。
A2、将第一子报文的序号和第一子报文在缓存器中的存储地址插入乱序表中。
举例说明,乱序表如表1所示,乱序表中的序号并不是子报文的实际序号,假设子报文的序号是从100开始,则序号为100的子报文在乱序表中的序号为0;乱序表中的Valid用于表明该序号对应的子报文是否被顺序接收,当Valid=0时,表明该子报文被顺序接收,当Valid=1时,表明该子报文未被顺序接收;缓存地址和地址偏移量用于表明存储该子报文在缓存器中的地址和占据的存储空间。
序号 Valid 缓存地址 地址偏移量
0 0 0 0
1 1 111 a
2 1 222 b
3 0 0 0
4 0 0 0
…… …… …… ……
表1 乱序表
S305、接收第一PCIE总线设备发送的第二子报文,第二子报文包括序号和目的地址。
作为一种可能的实施方式,接收第一PCIE总线设备发送的第二子报文的方式具体为:
接收第一PCIE总线设备通过以太网链路层发送的第二子报文。
本实施例中,第二子报文是在第一子报文之后接收到的子报文,接收到第二子报文之后将判断第二子报文与第一子报文是否属于同一报文的子报文,若第二子报文与第一子报文属于同一报文的子报文,则继续判断第二子报文是否是数据报文。
S306、当第二子报文的序号等于目标序号时,将第二子报文通过PCIE总线发送至第二PCIE总线设备,第一子报文的目的地址与第二子报文的目的地址相同。
本实施例中,当第二子报文是数据报文时,将判断第二子报文的序号是否等于目标序号,若等于,则认为该第二子报文为当前应该发送给第二PCIE总线设备的子报文,将第二子报文通过PCIE总线发送至第二PCIE总线设备,并更新乱序表,表明第二子报文被第二PCIE总线设备顺序接收。由于第一子报文与第二子报文属于同一报文的不同子报文,因此,它们的目的地址对应的PCIE总线设备都为第二PCIE总线设备;若第二子报文的序号不等于目标序号,则认为第一子报文不是当前应该发送给第二PCIE总线设备的子报文,将第二子报文存储在缓存器以便后续调用,并将第二子报文在缓存器中的地址和存储空间插入乱序表,表明第二子报文未被第二PCIE总线设备顺序接收。
相应地,若第二子报文是消息报文,则将第二子报文发送给与第二子报文对应的数据子报文的源地址,以触发该源地址对应的PCIE总线设备删除缓存器中存储的与第二子报文对应的数据子报文。
S307、将第二子报文通过PCIE总线发送至第二PCIE总线设备之后,更新目标序号,获得更新后的目标序号。
本实施例中,将第二子报文通过PCIE总线发送至第二PCIE总线设备之后,将更新目标序号以获得更新后的目标序号,以便利用更新后的目标序号匹配与第二子报文的序号相邻的下一子报文。
作为一种可能的方式,更新目标序号,获得更新后的目标序号的方式具体为:
增大目标序号以获得增大后的目标序号;或
减小目标序号以获得减小后的目标序号。
本实施例中,第一PCIE总线设备为子报文设置序号时,可以按照从高到低的方式设置序号,也可以按照从低到高的方式设置序号,本实施例不作限定。当以从高到低的方式设置序号时,更新目标序号即减小目标序号;当以从低到高的方式设置序号时,更新目标序号即增大目标序号。可以设置一预先步长,每次增大或减小目标序号的值等于预设步长,预设步长的大小可以根据需要由开发商设置,本实施例不作限制。
S308、当第一子报文的序号等于更新后的目标序号时,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备。
作为一种可能的实施方式,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备可以包括以下步骤。
B1、利用第一子报文的序号从乱序表中查询第一子报文在缓存器中的存储地址。
B2、利用第一子报文在缓存器中的存储地址从缓存器中获取第一子报文并通过PCIE总线发送至第二PCIE总线设备。
本实施例中,获得更新后的目标序号之后,先从乱序表中查询是否有与更新后的目标序号匹配的乱序子报文的序号,当第一子报文的序号与更新后的目标序号相匹配时,利用第一子报文的序号从乱序表中查询第一子报文在缓存器中的存储地址和占据的存储空间,然后利用第一子报文在缓存器中的存储地址和占据的存储空间从缓存器中获取第一子报文并通过PCIE总线发送至第二PCIE总线设备,当乱序表中无与更新后的目标序号相匹配的乱序子报文的序号时,判断在第二报文之后紧邻第二子报文接收到的子报文的序号是否等于更新后的目标序号。
S309、第一子报文还包括第一PCIE总线设备的地址,生成针对第一子报文的消息报文,利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备,该消息报文用于表明第一子报文被第二PCIE总线设备顺序接收。
作为一种可能的实施方式,利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备的方式具体为:
利用第一PCIE总线设备的地址,将该消息报文通过以太网链路层发送至第一PCIE总线设备。
本实施例中,由于第一PCIE总线设备在发送第一子报文之前,会在缓存器中存储第一子报文,因此,当第一子报文通过PCIE总线发送给第二PCIE总线设备之后,将生成针对第一子报文的消息报文并发送给第一PCIE总线设备,用于表明第一子报文被第二PCIE总线设备顺序接收,以触发第一PCIE总线设备删除缓存器中存储的第一子报文。
在图3所示的报文处理方法中,当接收到的第一PCIE总线设备发送的子报文的序号不等于目标序号时,将该子报文存入缓存器,当更新后的目标序号等于该子报文的序号时,将存储在缓存器中的该子报文通过PCIE总线发送至该子报文的目的地址对应的第二PCIE总线设备,以保证PCIE系统中子报文的顺序传输。
请参阅图4,图4是本发明实施例公开的一种报文处理装置的结构图。如图4所示,该报文处理装置400可以包括:
接收单元401,用于接收第一PCIE总线设备发送的第一子报文,第一子报文包括序号和目的地址;
第一判断单元402,用于判断第一子报文的序号是否等于目标序号,目标序号是指在接收第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,第二PCIE总线设备是第一子报文的目的地址对应的PCIE总线设备;
存储单元403,用于当第一子报文的序号不等于目标序号时,存储第一子报文;
接收单元401,还用于接收第一PCIE总线设备发送的第二子报文,第二子报文包括序号和目的地址;
发送单元404,用于当第二子报文的序号等于目标序号时,将第二子报文通过PCIE总线发送至第二PCIE总线设备,第一子报文的目的地址与第二子报文的目的地址相同;
更新单元405,用于更新目标序号,获得更新后的目标序号;
发送单元404,还用于当第一子报文的序号等于更新后的目标序号时,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备。
具体地,发送单元404将第二子报文通过PCIE总线发送至第二PCIE总线设备,以触发更新单元405更新目标序号,获得更新后的目标序号。
作为一种可能的实施方式,第一子报文还包括报文类型,报文类型包括数据报文和消息报文;
如图4所示,该报文处理装置400还可以包括:
第二判断单元406,用于判断第一子报文是否是数据报文,当第一子报文是数据报文时,触发第一判断单元402执行所述的判断第一子报文的序号是否等于目标序号的步骤。
作为一种可能的实施方式,存储单元403可以包括:
存储子单元,用于将第一子报文存储在缓存器中;
插入子单元,用于将第一子报文的序号和第一子报文在缓存器中的存储地址插入乱序表中;
发送单元404将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备的方式具体为:
发送单元404,用于利用第一子报文的序号从乱序表中查询第一子报文在缓存器中的存储地址,以及利用第一子报文在缓存器中的存储地址从缓存器中获取第一子报文并通过PCIE总线发送至第二PCIE总线设备。
作为一种可能的实施方式,更新单元405,具体用于增大目标序号以获得增大后的目标序号,或减小目标序号以获得减小后的目标序号。
作为一种可能的实施方式,第一子报文还包括第一PCIE总线设备的地址;
如图4所示,该报文处理装置400还可以包括:
生成单元407,用于生成针对第一子报文的消息报文,该消息报文用于表明第一子报文被第二PCIE总线设备顺序接收;
发送单元404,还用于利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备。
作为一种可能的实施方式,接收单元401接收第一PCIE总线设备发送的第一子报文的方式具体为:
接收单元401,用于接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
接收单元401接收第一PCIE总线设备发送的第二子报文的方式具体为:
接收单元401,用于接收第一PCIE总线设备通过以太网链路层发送的第二子报文;
发送单元404利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备的方式具体为:
发送单元404,用于利用第一PCIE总线设备的地址,将该消息报文通过以太网链路层发送至第一PCIE总线设备。
在图4所示的报文处理装置中,当接收到的第一PCIE总线设备发送的子报文的序号不等于目标序号时,将该子报文存入缓存器,当更新后的目标序号等于该子报文的序号时,将存储在缓存器中的该子报文通过PCIE总线发送至该子报文的目的地址对应的第二PCIE总线设备,以保证PCIE系统中子报文的顺序传输。
请参阅图5,图5是本发明实施例公开的另一种报文处理装置的结构图。如图5所示,该用户设备500可以包括处理器501和存储器502,存储器502中存储一组程序代码,且处理器501用于调用存储器502中存储的程序代码执行以下操作:
接收第一PCIE总线设备发送的第一子报文,第一子报文包括序号和目的地址;
判断第一子报文的序号是否等于目标序号,目标序号是指在接收第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,第二PCIE总线设备是第一子报文的目的地址对应的PCIE总线设备;
若第一子报文的序号不等于目标序号,则存储第一子报文;
接收第一PCIE总线设备发送的第二子报文,第二子报文包括序号和目的地址;
当第二子报文的序号等于目标序号时,将第二子报文通过PCIE总线发送至第二PCIE总线设备,第一子报文的目的地址与第二子报文的目的地址相同;
将第二子报文通过PCIE总线发送至第二PCIE总线设备之后,更新目标序号,获得更新后的目标序号;
当第一子报文的序号等于更新后的目标序号时,将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备。
作为一种可能的实施方式,第一子报文还包括报文类型,报文类型包括数据报文和消息报文;
处理器501接收第一PCIE总线设备发送的第一子报文之后,以及判断第一子报文的序号是否等于目标序号之前,处理器501还用于调用存储器502中存储的程序代码执行以下操作:
判断第一子报文是否是数据报文;
若是,则执行所述的判断第一子报文的序号是否等于目标序号的操作。
作为一种可能的实施方式,处理器501存储第一子报文的方式具体为:
将第一子报文存储在缓存器中;
将第一子报文的序号和第一子报文在缓存器中的存储地址插入乱序表中;
处理器501将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备的方式具体为:
利用第一子报文的序号从乱序表中查询第一子报文在缓存器中的存储地址;
利用第一子报文在缓存器中的存储地址从缓存器中获取第一子报文并通过PCIE总线发送至第二PCIE总线设备。
作为一种可能的实施方式,处理器501更新目标序号,获得更新后的目标序号的方式具体为:
增大目标序号以获得增大后的目标序号;或
减小目标序号以获得减小后的目标序号。
作为一种可能的实施方式,第一子报文还包括第一PCIE总线设备的地址;
处理器501将存储的第一子报文通过PCIE总线发送至第二PCIE总线设备之后,处理器501还用于调用存储器502中存储的程序代码执行以下操作:
生成针对第一子报文的消息报文,该消息报文用于表明第一子报文被第二PCIE服务器顺序接收;
利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备。
作为一种可能的实施方式,处理器501接收第一PCIE总线设备发送的第一子报文的方式具体为:
接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
处理器501接收第一PCIE总线设备发送的第二子报文的方式具体为:
接收第一PCIE总线设备通过以太网链路层发送的第二子报文;
处理器501利用第一PCIE总线设备的地址,将该消息报文发送至第一PCIE总线设备的方式具体为:
利用第一PCIE总线设备的地址,将该消息报文通过以太网链路层发送至第一PCIE总线设备。
在图5所示的报文处理装置中,当接收到的第一PCIE总线设备发送的子报文的序号不等于目标序号时,将该子报文存入缓存器,当更新后的目标序号等于该子报文的序号时,将存储在缓存器中的该子报文通过PCIE总线发送至该子报文的目的地址对应的第二PCIE总线设备,以保证PCIE系统中子报文的顺序传输。
本发明实施例进一步公开一种计算机存储介质,该计算机存储介质存储有计算机程序,当计算机存储介质中的计算机程序被读取到计算机时,能够使得计算机完成本发明实施例公开的报文处理方法的全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的报文处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种报文处理方法,其特征在于,包括:
接收第一PCIE总线设备发送的第一子报文,所述第一子报文包括序号和目的地址,所述第一PCIE总线设备属于PCIE系统1;
判断所述第一子报文的序号是否等于目标序号,所述目标序号是指在接收所述第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,所述第二PCIE总线设备是所述第一子报文的目的地址对应的PCIE总线设备,所述第二PCIE总线设备属于PCIE系统2;其中,当第一PCIE总线设备与第二PCIE总线设备传输报文时,在所述PCIE系统1或所述PCIE系统2内报文通过PCIE总线传输,而在这两个PCIE系统间报文通过以太网MAC层传输;
若所述第一子报文的序号不等于所述目标序号,则存储所述第一子报文;
接收所述第一PCIE总线设备发送的第二子报文,所述第二子报文包括序号和目的地址;
当所述第二子报文的序号等于所述目标序号时,将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备,所述第一子报文的目的地址与所述第二子报文的目的地址相同;
将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备之后,更新所述目标序号,获得更新后的目标序号;
当所述第一子报文的序号等于所述更新后的目标序号时,将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备;
其中,所述第一子报文还包括所述第一PCIE总线设备的地址;
所述将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备之后,所述方法还包括:
生成针对所述第一子报文的消息报文,所述消息报文用于表明所述第一子报文被所述第二PCIE总线设备顺序接收;利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备。
2.如权利要求1所述的方法,其特征在于,所述第一子报文还包括报文类型,所述报文类型包括数据报文和消息报文;
所述接收第一PCIE总线设备发送的第一子报文之后,以及判断所述第一子报文的序号是否等于目标序号之前,所述方法还包括:
判断所述第一子报文是否是数据报文;
若是,则执行所述的判断所述第一子报文的序号是否等于目标序号的步骤。
3.如权利要求2所述的方法,其特征在于,所述存储所述第一子报文包括:
将所述第一子报文存储在缓存器中;
将所述第一子报文的序号和所述第一子报文在所述缓存器中的存储地址插入乱序表中;
所述将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备包括:
利用所述第一子报文的序号从所述乱序表中查询所述第一子报文在所述缓存器中的存储地址;
利用所述第一子报文在所述缓存器中的存储地址从所述缓存器中获取所述第一子报文并通过PCIE总线发送至所述第二PCIE总线设备。
4.如权利要求3所述的方法,其特征在于,所述更新所述目标序号,获得更新后的目标序号包括:
增大所述目标序号以获得增大后的目标序号;或
减小所述目标序号以获得减小后的目标序号。
5.如权利要求1至4任意一项所述的方法,其特征在于,所述接收第一PCIE总线设备发送的第一子报文包括:
接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
所述接收所述第一PCIE总线设备发送的第二子报文包括:
接收所述第一PCIE总线设备通过以太网链路层发送的第二子报文;
所述利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备包括:
利用所述第一PCIE总线设备的地址,将所述消息报文通过以太网链路层发送至所述第一PCIE总线设备。
6.一种报文处理装置,其特征在于,包括:
接收单元,用于接收第一PCIE总线设备发送的第一子报文,所述第一子报文包括序号和目的地址,所述第一PCIE总线设备属于PCIE系统1;
第一判断单元,用于判断所述第一子报文的序号是否等于目标序号,所述目标序号是指在接收所述第一子报文之前,与发送给第二PCIE总线设备的子报文的序号相邻的下一子报文的序号,所述第二PCIE总线设备是所述第一子报文的目的地址对应的PCIE总线设备,所述第二PCIE总线设备属于PCIE系统2;其中,当第一PCIE总线设备与第二PCIE总线设备传输报文时,在所述PCIE系统1或所述PCIE系统2内报文通过PCIE总线传输,而在这两个PCIE系统间报文通过以太网MAC层传输;
存储单元,用于当所述第一子报文的序号不等于所述目标序号时,存储所述第一子报文;
所述接收单元,还用于接收所述第一PCIE总线设备发送的第二子报文,所述第二子报文包括序号和目的地址;
发送单元,用于当所述第二子报文的序号等于所述目标序号时,将所述第二子报文通过PCIE总线发送至所述第二PCIE总线设备,所述第一子报文的目的地址与所述第二子报文的目的地址相同;
更新单元,用于更新所述目标序号,获得更新后的目标序号;
所述发送单元,还用于当所述第一子报文的序号等于所述更新后的目标序号时,将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备;
其中,所述第一子报文还包括所述第一PCIE总线设备的地址;
所述装置还包括:
生成单元,用于生成针对所述第一子报文的消息报文,所述消息报文用于表明所述第一子报文被所述第二PCIE总线设备顺序接收;
所述发送单元,还用于利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备。
7.如权利要求6所述的装置,其特征在于,所述第一子报文还包括报文类型,所述报文类型包括数据报文和消息报文;
所述装置还包括:
第二判断单元,用于判断所述第一子报文是否是数据报文,当所述第一子报文是数据报文时,触发所述第一判断单元执行所述的判断所述第一子报文的序号是否等于目标序号的步骤。
8.如权利要求7所述的装置,其特征在于,所述存储单元包括:
存储子单元,用于将所述第一子报文存储在缓存器中;
插入子单元,用于将所述第一子报文的序号和所述第一子报文在所述缓存器中的存储地址插入乱序表中;
所述发送单元将存储的所述第一子报文通过PCIE总线发送至所述第二PCIE总线设备的方式具体为:
所述发送单元,用于利用所述第一子报文的序号从所述乱序表中查询所述第一子报文在所述缓存器中的存储地址,以及利用所述第一子报文在所述缓存器中的存储地址从所述缓存器中获取所述第一子报文并通过PCIE总线发送至所述第二PCIE总线设备。
9.如权利要求8所述的装置,其特征在于,所述更新单元,具体用于增大所述目标序号以获得增大后的目标序号,或减小所述目标序号以获得减小后的目标序号。
10.如权利要求6至9任意一项所述的装置,其特征在于,所述接收单元接收第一PCIE总线设备发送的第一子报文的方式具体为:
所述接收单元,用于接收第一PCIE总线设备通过以太网链路层发送的第一子报文;
所述接收单元接收所述第一PCIE总线设备发送的第二子报文的方式具体为:
所述接收单元,用于接收所述第一PCIE总线设备通过以太网链路层发送的第二子报文;
所述发送单元利用所述第一PCIE总线设备的地址,将所述消息报文发送至所述第一PCIE总线设备的方式具体为:
所述发送单元,用于利用所述第一PCIE总线设备的地址,将所述消息报文通过以太网链路层发送至所述第一PCIE总线设备。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,当计算机存储介质中的计算机程序被读取到计算机时,能够使得计算机完成权利要求1至5任意一项所述的方法。
12.一种报文处理装置,其特征在于,所述报文处理装置包括处理器和存储器,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码执行权利要求1至5任意一项所述的方法。
CN201410291152.1A 2014-06-25 2014-06-25 一种报文处理方法及装置 Active CN105227451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410291152.1A CN105227451B (zh) 2014-06-25 2014-06-25 一种报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410291152.1A CN105227451B (zh) 2014-06-25 2014-06-25 一种报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN105227451A CN105227451A (zh) 2016-01-06
CN105227451B true CN105227451B (zh) 2019-06-21

Family

ID=54996155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410291152.1A Active CN105227451B (zh) 2014-06-25 2014-06-25 一种报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN105227451B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118459A (zh) * 2022-06-02 2022-09-27 合肥卓讯云网科技有限公司 一种基于安全卡与隔离卡异构实现安全数据交换的方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123580A (zh) * 2007-09-11 2008-02-13 华为技术有限公司 包传输方法及基站设备
CN103532875A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie应用层接口的重排序技术

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240472A1 (en) * 2003-05-28 2004-12-02 Alok Kumar Method and system for maintenance of packet order using caching
JP5115437B2 (ja) * 2008-09-30 2013-01-09 ブラザー工業株式会社 ネットワークシステム、情報処理装置、情報処理方法及び情報処理装置用プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123580A (zh) * 2007-09-11 2008-02-13 华为技术有限公司 包传输方法及基站设备
CN103532875A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie应用层接口的重排序技术

Also Published As

Publication number Publication date
CN105227451A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN109408257B (zh) 用于片上网络noc的数据传输方法、装置及电子设备
US10541899B2 (en) Data packet sending method and apparatus in IPv6 network
CN104484295B (zh) 并行计算机系统中基于接收方滑动窗口的数据传输方法
CN103905300B (zh) 一种数据报文发送方法、设备及系统
CN104092717B (zh) 消息处理方法及系统、消息目的端设备
JP6598771B2 (ja) データ・ネットワークにおける分散データ送信
CN105162706B (zh) 组播传输方法、装置及系统
CN111382115B (zh) 一种用于片上网络的路径创建方法、装置及电子设备
CN106534345A (zh) 一种报文转发方法及装置
CN104796338A (zh) 虚拟机迁移方法及装置
CN105939325A (zh) Tcp旁路阻断的方法及装置
JP7046983B2 (ja) パケット伝送方法及び装置
CN104426794B (zh) 一种报文转发方法及装置
WO2019047573A1 (zh) 一种下行数据传输的缓存方法、终端及基站
CN104363084A (zh) 一种链路状态同步方法及装置
CN110022534B (zh) 一种基于组播的数据传输方法及装置
CN103312614B (zh) 一种组播报文处理方法、线卡及通信设备
CN104125150A (zh) 一种协议报文处理方法、装置及系统
US9432145B2 (en) Multi-cast optimized medium access method for wireless network
CN105227451B (zh) 一种报文处理方法及装置
CN106502841B (zh) 数据备份方法及装置
CN109753012A (zh) 一种基于云平台的加工机远程控制方法、装置及系统
CN108243208A (zh) 一种数据同步方法及装置
CN107592361B (zh) 一种基于双ib网络的数据传输方法、装置、设备
WO2014150676A1 (en) Multi-listener wireless medium access method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant