报文转换方法、系统及装置的制作方法

文档序号:7655208阅读:122来源:国知局
专利名称:报文转换方法、系统及装置的制作方法
技术领域
本发明涉及网络通信技术,尤其涉及一种报文转换方法、系统及装置。
背景技术
系统包交换接口4(SPI-4)是一种高速信号传输接口,用于物理层(PHY)器件和链路层(LINK)器件间包和信元的传送,可支持高达10Gb/s的数据传输速率。快速周边元件扩展接口(PCI-E)是一种点到点串行架构的互连总线,能够大大提高总线互连性能、减少系统成本。
在某些应用场合,有时需要将具有SPI-4接口的设备(简称SPI-4设备)与具有PCI-E接口的设备(简称PCI-E设备)互连,进行数据通信。但是,由于SPI-4接口不涉及地址,而PCI-E接口涉及地址,二者的报文格式互不相同,因此,为了支持SPI-4接口与PCI-E接口的互连,需要通过一个转换设备来对SPI-4报文和PCI-E传输层协议(TLP)报文进行相互转换。
图1示出了现有技术中SPI-4报文(Packet)与PCI-E TLP报文的转换过程示意图。参见图1所示,SPI-4报文一般包括控制(Control)字段和静荷(Payload)两部分;TLP报文包括头部(Header)和Payload两部分。当SPI-4设备向PCI-E设备发送数据时,SPI-4设备首先要构造完整的TLP报文,将要发送的数据放在TLP报文的静荷部分,将PCI-E操作地址信息放在TLP报文的头部,然后再将构造好的TLP报文放到SPI-4报文的静荷部分发送出去;转换设备收到SPI-4侧发送来的报文后,剥离SPI-4报文的控制字段,并将剥离了控制字段后所剩下的TLP报文透传给PCI-E设备。对于PCI-E设备发往SPI-4设备的报文,转换设备收到后直接将收到的来自PCI-E侧的TLP报文封装到SPI-4静荷中,然后将封装好的SPI-4报文发送给SPI-4设备;SPI-4设备收到转换设备发送来的报文后,需要对收到的报文进行拆解,剥离SPI-4静荷中TLP报文的头部,获取TLP静荷数据。
可见,在现有的SPI-4报文与PCI-E TLP报文的转换过程中,具有与地址无关的接口即SPI-4接口的SPI-4设备需要进行TLP报文的构造和拆解操作,这样会增加SPI-4设备的实现难度,降低SPI-4设备的报文处理效率。另外,在其它的具有与地址无关的接口的设备和具有与地址相关的接口的设备之间的报文转换过程中,同样也存在上述问题。比如,在SPI-2设备和PCI-E设备、SPI-3设备和PCI-E设备、以及以太网设备和PCI-E设备的报文转换过程中,SPI-2设备、SPI-3设备和PCI-E设备等这些具有与地址无关的接口的设备同样需要进行TLP报文的构造和拆解,从而导致具有与地址无关的接口的设备的实现难度较高,报文处理效率低下。

发明内容
有鉴于此,本发明的主要目的在于提供一种报文转换方法、系统及装置,降低具有与地址无关的接口的设备的实现难度。
为达到上述目的,本发明提供了一种报文转换方法,适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,该方法包括第一设备将发往第二设备的数据封装在第一报文的静荷部分发送出去;转换设备收到第一设备发出的第一报文后,将收到的第一报文转换成第二报文格式,并将转换得到的第二报文发送给第二设备;其中,所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
所述第一报文的头部携带数据操作起始地址信息;所述转换设备将收到的第一报文转换成第二报文格式的过程包括转换设备根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部,封装成第二报文格式,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和。
该方法进一步包括转换设备收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备。
所述将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备的过程包括转换设备逐个缓存收到的第二报文,确定构成第一报文的最后一个第二报文,将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给第一设备,并释放构成该第一报文的所有第二报文的缓存。
所述确定构成第一报文的最后一个第二报文的过程包括转换设备在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
所述确定构成第一报文的最后一个第二报文的过程还包括对于收到的第一个第二报文,转换设备判断该报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定该报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
该方法进一步包括转换设备在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定所述当前收到的第二报文为构成第一报文的最后一个第二报文。
所述第一设备为具有SPI-2接口的设备、或者为具有SPI-3接口的设备、或者为具有SPI-4接口的设备;所述第二设备为具有PCI-E接口的设备。
本发明还提供了另一种报文转换方法,适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,该方法包括转换设备收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备;其中,所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
所述将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备的过程包括转换设备逐个缓存收到的第二报文,确定构成第一报文的最后一个第二报文,将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给第一设备,并释放构成该第一报文的所有第二报文的缓存。
所述确定构成第一报文的最后一个第二报文的过程包括转换设备在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
所述确定构成第一报文的最后一个第二报文的过程还包括对于收到的第一个第二报文,转换设备判断该报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定该报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
该方法进一步包括转换设备在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定所述当前收到的第二报文为构成第一报文的最后一个第二报文。
所述第一设备为具有SPI-2接口的设备、或者为具有SPI-3接口的设备、或者为具有SPI-4接口的设备;所述第二设备为具有PCI-E接口的设备。
本发明还提供了一种报文转换系统,包括具有与地址无关的接口的第一设备、具有与地址相关的接口的第二设备以及转换设备,其中,第一设备,用于将发往第二设备的数据封装在第一报文的静荷部分,并将数据操作起始地址封装在第一报文的头部发送出去;转换设备,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给第二设备,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
其中,所述转换设备进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备。
另外,本发明还提供了一种转换设备,包括报文封装单元和报文发送单元,其中,报文封装单元,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给报文发送单元,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;报文发送单元,用于将报文封装单元发送来的第二报文发送给第二设备;其中,所述第一设备为具有与地址无关的接口的设备;所述第二设备为具有与地址相关的接口的设备;所述第一报文为采用所述与地址无关的接口协议的报文,其静荷部分封装第一设备要发往第二设备的数据,头部携带数据操作起始地址;所述第二报文为采用所述与地址相关的接口协议的报文。
所述报文封装单元进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给报文发送单元;所述报文发送单元进一步用于,将报文封装单元发送来的第一报文发送给第一设备。
所述报文封装单元包括尾部确定单元、静荷组装单元和缓存单元,其中,尾部确定单元,用于将第二设备发出的第二报文逐个缓存到缓存单元中,并在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文;并在确定了构成第一报文的最后一个第二报文后,将该最后一个第二报文的信息发送给静荷组装单元;静荷组装单元,用于将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给报文发送单元,并释放缓存单元中构成该第一报文的所有第二报文的缓存。
所述尾部确定单元进一步用于在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定当前收到的第二报文为构成第一报文的最后一个第二报文。
由此可见,本发明具有以下有益效果1)对于具有与地址无关的接口的第一设备发往具有与地址相关的接口的第二设备的数据,第一设备不需要为该数据添加头部构造成第二报文的格式,而只需将需要发送的数据直接封装在第一报文的静荷部分发送出去即可,从而降低了具有与地址无关的接口的第一设备的实现难度,提高了第一设备的报文处理效率。
2)对于来自第二设备的第二报文,转换设备仅将第二报文的静荷封装在第一报文的静荷部分发送给第一设备,而不是将整个第二报文封装在第一报文中发送给第一设备。这样,第一设备收到后,无需进行第二报文的拆解就可获得需要的数据,从而降低了第一设备的实现难度,提高了第一设备的报文处理效率。


图1为现有技术中SPI-4报文与PCI-E TLP报文的转换过程示意图。
图2为本发明实施例中SPI-4侧到PCI-E侧的报文转换过程示意图。
图3为本发明实施例中PCI-E侧到SPI-4侧的报文转换过程示意图。
图4为本发明实施例中的报文转换系统结构示意图。
图5为本发明实施例中的转换设备结构示意图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
为了解决现有技术中具有与地址无关的接口的设备的实现难度较高的问题,本发明提供了一种报文转换方法,其适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,该方法包括对于第一设备到第二设备方向,第一设备直接将发往第二设备的数据封装在第一报文的静荷部分发送出去,然后由转换设备将第一设备发出的第一报文转换成第二报文格式发送给第二设备,而第一设备无需进行第二报文的构造;对于第二设备到第一设备方向,转换设备收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备,而不是将完整的第二报文封装在第一报文的静荷部分发送给第一设备,这样,第一设备就无需进行第二报文的拆解。
其中,第一报文为采用所述与地址无关的接口协议的报文,第二报文为采用所述与地址相关的接口协议的报文。所述第一设备为具有SPI-2接口的设备、或者为具有SPI-3接口的设备、或者为具有SPI-4接口的设备;所述第二设备为具有PCI-E接口的设备。
为便于理解,下面以第一设备为SPI-4设备、第二设备为PCI-E设备、第一报文为SPI-4报文、第二报文为PCI-E报文为例,对本发明提供的报文转换方法进行详细阐述。
由背景技术描述可见,在现有的报文转换过程中,SPI-4设备需要进行TLP报文的构造和拆解等操作,从而导致SPI-4设备实现难度的增加及报文处理效率的降低。为了克服上述问题,本发明提供的报文转换方法的基本思想如下对于SPI-4侧到PCI-E侧方向,SPI-4设备直接将发往PCI-E设备的数据封装在SPI-4报文的静荷部分发送出去,然后由转换设备将SPI-4设备发出的SPI-4报文封装成TLP报文格式发送给PCI-E设备,而SPI-4设备无需进行TLP报文的构造;对于PCI-E侧到SPI-4侧方向,转换设备收到来自PCI-E设备的TLP报文后,将收到的TLP报文的静荷封装到SPI-4报文静荷中发送给SPI-4设备,而不是将整个TLP报文封装在SPI-4报文中发送给SPI-4设备,这样可以避免SPI-4侧的TLP报文拆解操作。
为更加清楚起见,下面分别对SPI-4侧到PCI-E侧的报文转换过程以及PCI-E侧到SPI-4侧的报文转换过程进行详细说明。
一、SPI-4侧到PCI-E侧的报文转换图2所示为本发明实施例中SPI-4侧到PCI-E侧的报文转换过程示意图。其中,图2左侧为SPI-4设备发出的SPI-4报文,SPI-4报文的静荷部分为需要发往PCI-E侧的数据,相当于现有技术中构成SPI-4报文的各个TLP报文的静荷部分,而不是完整的TLP报文。鉴于通常情况下构成同一SPI-4报文的各个TLP报文的地址都是连续的特性,这里,SPI-4设备仅需将PCI-E操作的起始地址Addr携带在SPI-4报文的头部发送出去即可。比如,当SPI-4设备向PCI-E设备写数据时,SPI-4报文头部的地址字段填写的即为执行写数据操作的起始地址。
转换设备收到SPI-4设备发出的SPI-4报文后,根据TLP报文的最大静荷长度对SPI-4报文进行分片。假设TLP报文的最大静荷长度为M,SPI-4设备发出的SPI-4报文的静荷长度为L,则SPI-4报文将被分成 片,其中, 表示上取整。在图2中,L为M的整数倍即L=(n+1)M,故SPI-4报文被分成(n+1)片。
分片操作完毕后,转换设备为每个分片都安装一个TLP Header,封装成TLP报文的格式,然后再将封装完毕的TLP报文发送给PCI-E设备。TLPHeader中包括很多字段,如地址字段、长度字段等。其中,第一个分片的地址与SPI-4报文携带的地址相同,为PCI-E操作的起始地址Addr;第二个分片的地址是在第一个分片的地址上累加第一个分片的长度;第三个分片的地址是在第二个分片的地址上累加第二个分片的长度;后续分片的地址照此规则依次类推,为前一个分片的地址与前一个分片的长度之和。关于TLPHeader中其它字段的填写视具体应用而定,这里不再赘述。
可见,在图2中,SPI-4设备不需要将发往PCI-E侧的数据构造成TLP报文的格式,而只需将需要发送的数据直接封装在SPI-4报文的静荷部分发送出去即可,从而降低了SPI-4设备的实现难度,提高了SPI-4设备的报文处理效率。
二、PCI-E侧到SPI-4侧的报文转换图3所示为本发明实施例中PCI-E侧到SPI-4侧的报文转换过程示意图。由图3可见,对于PCI-E设备发送过来的TLP报文,转换设备仅将收到的TLP报文的静荷封装在SPI-4报文的静荷部分发送给SPI-4设备,而不是将整个TLP报文都封装在SPI-4报文中发送给SPI-4设备。这样,SPI-4设备收到后,无需进行TLP报文的拆解就可获得需要的数据,从而降低了SPI-4设备的实现难度,提高了SPI-4设备的报文处理效率。
在将收到的TLP报文的静荷封装在SPI-4报文的静荷部分发送给SPI-4设备的过程中,转换设备需要确定哪些TLP报文构成一个SPI-4报文,也就是说,需要确定哪一个TLP报文是构成一个SPI-4报文的最后一个TLP报文。其确定过程具体可通过以下方式实现转换设备逐个缓存收到的TLP报文,并在每收到一个TLP报文后,都判断当前收到的TLP报文的地址是否与前一次收到的TLP报文的地址连续,如果不连续,则确定前一次收到的TLP报文为构成SPI-4报文的最后一个TLP报文;如果连续,则进一步判断当前收到的TLP报文的静荷长度是否小于TLP报文的最大静荷长度,如果小于,则确定当前收到的TLP报文为构成SPI-4报文的最后一个TLP报文;如果不小于,则等待接收下一个TLP报文。
对于收到的第一个TLP报文,转换设备直接判断该报文的静荷长度是否小于TLP报文的最大静荷长度,如果小于,则确定该报文为构成SPI-4报文的最后一个TLP报文;如果不小于,则等待接收下一个TLP报文。
另外,转换设备还可进一步在每收到一个TLP报文后,启动一个定时器,如果定时器超时后仍未收到下一个TLP报文,则确定所述当前收到的TLP报文为构成SPI-4报文的最后一个TLP报文。
在确定了构成SPI-4报文的最后一个TLP报文后,转换设备则将该最后一个TLP报文的静荷以及在该报文之前缓存的所有TLP报文的静荷封装在同一个SPI-4报文的静荷部分发送给SPI-4设备,并且释放构成该SPI-4报文的所有TLP报文的缓存。
比如,假设转换设备已经连续收到并缓存了5个地址连续的TLP报文,当第6个TLP报文到来时,转换设备首先进行缓存,并判断第6个TLP报文的地址与第5个TLP报文的地址是否连续,如果第6个TLP报文的地址与第5个TLP报文的地址不连续,则认为第6个TLP报文与前5个TLP报文属于不同的SPI-4报文,转换设备遂将前5个TLP报文的静荷封装在同一个SPI-4报文中发送给SPI-4设备,并释放前5个TLP报文的缓存。如果转换设备发现第6个TLP报文的地址与第5个TLP报文的地址连续,并且第6个TLP报文的静荷长度小于TLP报文最大静荷长度,那么,则认为第6个TLP报文为构成同一个SPI-4报文的最后一个TLP报文,转换设备将这6个TLP报文的静荷封装在同一个SPI-4报文中发送给SPI-4设备,并释放这6个TLP报文的缓存。另外,转换设备也可在每收到一个TLP报文后启动一个定时器。对于收到的第6个报文,如果其地址与第5个TLP报文的地址连续,其静荷长度不小于TLP报文最大静荷长度,并且在收到第6个TLP报文后所启动的定时器超时后,转换设备仍未收到下一个TLP报文,则认为第6个TLP报文为构成同一个SPI-4报文的最后一个TLP报文,转换设备将这6个TLP报文的静荷封装在同一个SPI-4报文中发送给SPI-4设备,并释放这6个TLP报文的缓存。
另外,如果构成同一个SPI-4报文的任一个TLP报文出错,转换设备则可以选择丢弃整个SPI-4报文不予转发,以节省SPI-4设备的报文处理资源。
需要说明的是,本发明适用于所有不涉及地址的接口与涉及地址的接口之间的报文转换。以上仅以SPI-4与PCI-E为例进行说明,对于其它的不涉及地址的接口与涉及地址的接口之间的报文转换本发明同样适用,如SPI-2与PCI-E、SPI-3与PCI-E、以太网与PCI-E等,这里不再一一赘述。
相应地,本发明还提供了一种报文转换系统,其结构参见图4所示,主要包括具有与地址无关的接口的第一设备、具有与地址相关的接口的第二设备以及转换设备,其中,第一设备,用于将发往第二设备的数据封装在第一报文的静荷部分,并将数据操作起始地址封装在第一报文的头部发送出去;转换设备,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给第二设备,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
所述转换设备还可进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备。
另外,本发明还提供了一种转换设备,其结构参见图5所示,主要包括报文封装单元和报文发送单元,其中,报文封装单元,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给报文发送单元,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;报文发送单元,用于将报文封装单元发送来的第二报文发送给第二设备;其中,所述第一设备为具有与地址无关的接口的设备;所述第二设备为具有与地址相关的接口的设备;所述第一报文为采用所述与地址无关的接口协议的报文,其静荷部分封装第一设备要发往第二设备的数据,头部携带数据操作起始地址;所述第二报文为采用所述与地址相关的接口协议的报文。
所述报文封装单元可进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给报文发送单元;所述报文发送单元进一步用于将报文封装单元发送来的第一报文发送给第一设备。
其中,所述报文封装单元具体可包括尾部确定单元、静荷组装单元和缓存单元,其中,尾部确定单元,用于将第二设备发出的第二报文逐个缓存到缓存单元中,并在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文;并在确定了构成第一报文的最后一个第二报文后,将该最后一个第二报文的信息发送给静荷组装单元;静荷组装单元,用于将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给报文发送单元,并释放缓存单元中构成该第一报文的所有第二报文的缓存。
所述尾部确定单元还可进一步用于在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定当前收到的第二报文为构成第一报文的最后一个第二报文。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种报文转换方法,适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,其特征在于,该方法包括第一设备将发往第二设备的数据封装在第一报文的静荷部分发送出去;转换设备收到第一设备发出的第一报文后,将收到的第一报文转换成第二报文格式,并将转换得到的第二报文发送给第二设备;其中,所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
2.根据权利要求1所述的方法,其特征在于,所述第一报文的头部携带数据操作起始地址信息;所述转换设备将收到的第一报文转换成第二报文格式的过程包括转换设备根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部,封装成第二报文格式,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和。
3.根据权利要求1或2所述的方法,其特征在于,该方法进一步包括转换设备收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备。
4.根据权利要求3所述的方法,其特征在于,所述将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备的过程包括转换设备逐个缓存收到的第二报文,确定构成第一报文的最后一个第二报文,将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给第一设备,并释放构成该第一报文的所有第二报文的缓存。
5.根据权利要求4所述的方法,其特征在于,所述确定构成第一报文的最后一个第二报文的过程包括转换设备在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
6.根据权利要求5所述的方法,其特征在于,所述确定构成第一报文的最后一个第二报文的过程还包括对于收到的第一个第二报文,转换设备判断该报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定该报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
7.根据权利要求5或6所述的方法,其特征在于,该方法进一步包括转换设备在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定所述当前收到的第二报文为构成第一报文的最后一个第二报文。
8.根据权利要求1所述的方法,其特征在于,所述第一设备为具有SPI-2接口的设备、或者为具有SPI-3接口的设备、或者为具有SPI-4接口的设备;所述第二设备为具有PCI-E接口的设备。
9.一种报文转换方法,适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,其特征在于,该方法包括转换设备收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备;其中,所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
10.根据权利要求9所述的方法,其特征在于,所述将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备的过程包括转换设备逐个缓存收到的第二报文,确定构成第一报文的最后一个第二报文,将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给第一设备,并释放构成该第一报文的所有第二报文的缓存。
11.根据权利要求10所述的方法,其特征在于,所述确定构成第一报文的最后一个第二报文的过程包括转换设备在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
12.根据权利要求11所述的方法,其特征在于,所述确定构成第一报文的最后一个第二报文的过程还包括对于收到的第一个第二报文,转换设备判断该报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定该报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文。
13.根据权利要求11或12所述的方法,其特征在于,该方法进一步包括转换设备在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定所述当前收到的第二报文为构成第一报文的最后一个第二报文。
14.根据权利要求9所述的方法,其特征在于,所述第一设备为具有SPI-2接口的设备、或者为具有SPI-3接口的设备、或者为具有SPI-4接口的设备;所述第二设备为具有PCI-E接口的设备。
15.一种报文转换系统,其特征在于,包括具有与地址无关的接口的第一设备、具有与地址相关的接口的第二设备以及转换设备,其中,第一设备,用于将发往第二设备的数据封装在第一报文的静荷部分,并将数据操作起始地址封装在第一报文的头部发送出去;转换设备,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给第二设备,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。
16.根据权利要求15所述的系统,其特征在于,所述转换设备进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给第一设备。
17.一种转换设备,其特征在于,包括报文封装单元和报文发送单元,其中,报文封装单元,用于在收到第一设备发出的第一报文后,根据第二报文的最大静荷长度对第一报文的静荷进行分片,并分别为各个分片添加包括地址信息的第二报文头部封装成第二报文格式,然后将得到的第二报文发送给报文发送单元,其中,第一个分片的地址为第一报文携带的数据操作起始地址,后续分片的地址依次为前一个分片的地址与前一个分片的长度之和;报文发送单元,用于将报文封装单元发送来的第二报文发送给第二设备;其中,所述第一设备为具有与地址无关的接口的设备;所述第二设备为具有与地址相关的接口的设备;所述第一报文为采用所述与地址无关的接口协议的报文,其静荷部分封装第一设备要发往第二设备的数据,头部携带数据操作起始地址;所述第二报文为采用所述与地址相关的接口协议的报文。
18.根据权利要求17所述的设备,其特征在于,所述报文封装单元进一步用于在收到第二设备发出的第二报文后,将收到的第二报文的静荷封装在第一报文的静荷部分发送给报文发送单元;所述报文发送单元进一步用于,将报文封装单元发送来的第一报文发送给第一设备。
19.根据权利要求18所述的设备,其特征在于,所述报文封装单元包括尾部确定单元、静荷组装单元和缓存单元,其中,尾部确定单元,用于将第二设备发出的第二报文逐个缓存到缓存单元中,并在每收到一个第二报文后,判断当前收到的第二报文的地址是否与前一次收到的第二报文的地址连续,如果不连续,则确定前一次收到的第二报文为构成第一报文的最后一个第二报文;如果连续,则判断当前收到的第二报文的静荷长度是否小于第二报文的最大静荷长度,如果小于,则确定当前收到的第二报文为构成第一报文的最后一个第二报文;如果不小于,则等待接收下一个第二报文;并在确定了构成第一报文的最后一个第二报文后,将该最后一个第二报文的信息发送给静荷组装单元;静荷组装单元,用于将所述最后一个第二报文的静荷以及在该报文之前缓存的所有第二报文的静荷封装在同一个第一报文的静荷部分发送给报文发送单元,并释放缓存单元中构成该第一报文的所有第二报文的缓存。
20.根据权利要求19所述的设备,其特征在于,所述尾部确定单元进一步用于在每收到一个第二报文后启动一个定时器,如果定时器超时后仍未收到下一个第二报文,则确定当前收到的第二报文为构成第一报文的最后一个第二报文。
全文摘要
本发明提供了一种报文转换方法,适用于具有与地址无关的接口的第一设备和具有与地址相关的接口的第二设备之间的报文转换,该方法包括第一设备将发往第二设备的数据封装在第一报文的静荷部分发送出去;转换设备收到第一设备发出的第一报文后,将收到的第一报文转换成第二报文格式,并将转换得到的第二报文发送给第二设备;其中,所述第一报文为采用所述与地址无关的接口协议的报文,所述第二报文为采用所述与地址相关的接口协议的报文。另外,本发明还提供了另一种报文转换方法、一种报文转换系统以及一种转换设备。利用本发明所提供的技术方案,能够降低具有与地址无关的接口的设备的实现难度,提高该设备的报文处理效率。
文档编号H04L29/06GK101079815SQ20071011825
公开日2007年11月28日 申请日期2007年7月3日 优先权日2007年7月3日
发明者刘玉印, 易莉, 张国良, 余永飞, 张耀, 向邦柱 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1