CN106549845A - 一种基于ntb硬件的通信方法及系统 - Google Patents
一种基于ntb硬件的通信方法及系统 Download PDFInfo
- Publication number
- CN106549845A CN106549845A CN201610970016.4A CN201610970016A CN106549845A CN 106549845 A CN106549845 A CN 106549845A CN 201610970016 A CN201610970016 A CN 201610970016A CN 106549845 A CN106549845 A CN 106549845A
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- side controller
- ntb
- encapsulation
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
- H04L1/0063—Single parity check
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1832—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
- H04L12/4015—Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
- H04L12/40163—Bus networks involving priority mechanisms by assigning priority to messages according to a message field
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于NTB硬件的通信方法及系统,包括:发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照预定封装格式对待发送数据进行封装;发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改队列控制页的管理数据;接收端控制器通过监控NTB队列控制页的管理数据,获取发送端控制器发送的已封装数据;可见,通过本方案提供的通信方法,不会出现数据包丢失,数据包乱序等情况,并且由于NTB链路的可靠性,也不会存在消息序列号的循环溢出等问题,从而实现高效的消息传递。
Description
技术领域
本发明涉及计算机系统软件设计思想领域,更具体地说,涉及一种基于NTB硬件的通信方法及系统。
背景技术
PCIe是现代计算机系统使用的主要总线协议之一,存在着非透明桥接(即NTB,Non-transparent Bridging)延伸规格。随着传统存储系统的发展,对于多控制器的互联的通信的带宽性能要求也越来越高,PCIe也伴随着协议的改进而发展起来,PCIe的NTB也渐渐成为多控制器之间通信的新的手段,由于NTB是一种新的硬件通信设备,因此,如何实现基于NTB的通信方法,完成通信任务,实现多控制器之间的通信是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于NTB硬件的通信方法及系统,以实现基于NTB的通信,实现多控制器之间的通信。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于NTB硬件的通信方法,包括:
发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对所述待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照所述预定封装格式对所述待发送数据进行封装;
所述发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
其中,本方案还包括:
所述发送端控制器根据当前NTB队列的数据结构判断是否能发送完所述待发送数据;
若能,则通过NTB队列将已封装数据发送至接收端控制器;若不能,则将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
其中,所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据,包括:
若所述接收端控制器监控到所述管理数据中的空闲下表信息发生变化,则获取已封装数据,对所述已封装数据进行解析后发送至上层应用;
所述接收端控制器更新所述管理数据中的空闲下表信息。
其中,已封装数据的封装格式依次包括:序列号信息,版本号信息,标志位信息,回复序列号信息,负载数据的长度信息,负载数据,校验数据;其中,所述标志位信息表示已封装数据的属性信息。
其中,所述接收端控制器获取已封装数据之后,还包括:
检测所述已封装数据中是否存在回复序列号;若存在,则判断是否存在需要发送至所述发送端控制器的回复数据;
若存在回复数据,则按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器;
若不存在回复数据,则间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器。
其中,本方案还包括:
所述发送端控制器判断所述待发送数据是否需要优先发送;
若是,则通过NTB优先队列将所述已封装数据发送至接收端控制器;若否,则通过NTB普通队列将所述已封装数据发送至接收端控制器。
一种基于NTB硬件的通信系统,包括发送端控制器和接收端控制器;
所述发送端控制器包括:
第一判断模块,用于判断待发送数据的数据大小是否超出预定阈值;
分片模块,用于当待发送数据的数据大小超出预定阈值时,对所述待发送数据执行分片操作;
封装模块,用于按照预定封装格式对分片后的数据进行封装,或者,当待发送数据的数据大小没有超出预定阈值时,直接按照所述预定封装格式对所述待发送数据进行封装;
发送模块,用于通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
所述接收端控制器,用于通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
其中,所述发送端控制器还包括:
第二判断模块,用于根据当前NTB队列的数据结构判断是否能发送所述待发送数据;
所述发送模块,用于能发送所述待发送数据时,通过NTB队列将已封装数据发送至接收端控制器;不能发送所述待发送数据时,将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
其中,所述发送端控制器还包括:
检测模块,用于获取已封装数据之后,检测所述已封装数据中是否存在回复序列号;
第二判断模块,用于检测到所述已封装数据中存在回复序列号后,判断是否存在需要发送至所述发送端控制器的回复数据;
所述封装模块,还用于在所述第二判断模块判定存在回复数据时,按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器;
所述封装模块,还用于在所述第二判断模块判定不存在回复数据时,在间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器。
其中,所述发送端控制器还包括:
第四判断模块,用于判断所述待发送数据是否需要优先发送;
所述发送模块,用于所述待发送数据需要优先发送时,通过NTB优先队列将所述已封装数据发送至接收端控制器;所述待发送数据不需要优先发送时,通过NTB普通队列将所述已封装数据发送至接收端控制器。
通过以上方案可知,本发明实施例提供的一种基于NTB硬件的通信方法及系统,包括:发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对所述待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照所述预定封装格式对所述待发送数据进行封装;所述发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据;
可见,通过本方案提供的通信方法,不会出现数据包丢失,数据包乱序等情况,并且由于NTB链路的可靠性,也不会存在消息序列号的循环溢出等问题,从而实现高效的消息传递。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于NTB硬件的通信方法流程示意图;
图2为本发明实施例公开的一种映射窗口数据结构示意图;
图3为本发明实施例公开的一种数据包格式示意图;
图4为本发明实施例公开的一种通信传递流程示意图;
图5为本发明实施例公开的一种基于NTB硬件的通信系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于NTB硬件的通信方法及系统,以实现基于NTB的通信,实现多控制器之间的通信。
需要说明的是,NTB硬件的特点是可以直接访问远端内存的地址空间,也就是说假设节点A和节点B使用NTB相连,节点A可以直接访问节点B的内存空间,NTB会映射出一个地址窗口,这个窗口是节点B的内存的一部分地址空间,可能是4GB,也可能是2GB,可以根据实际的环境进行对应调节,但是对于这个映射窗口的所使用的数据结构是没有明确要求的,但是作为通信方法,会具体的说明数据结构,同时存放在这个数据结构中的通信消息的格式也是很关键的,通信方法也会对具体消息的通信格式进行说明。
参见图1,本发明实施例提供的一种基于NTB硬件的通信方法,包括:
S101、发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对所述待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照所述预定封装格式对所述待发送数据进行封装;
其中,已封装数据的封装格式依次包括:序列号信息,版本号信息,标志位信息,回复序列号信息,负载数据的长度信息,负载数据,校验数据;其中,所述标志位信息表示已封装数据的属性信息。
具体的,NTB的映射出一个地址窗口可以形成队列,通过队列的粒度及数据的封装格式将待发送数据发送至接收端控制器,在本方案中以形成两个队列进行说明。参见图2,在本方案中每一个队列都是4KB的粒度,每个队列第一个4KB作为控制页,会存放一些管理的数据,比如空闲的首下标、占用首下标,一个队列是优先队列,另一个队列是普通队列。
具体的,由于本方案中队列的粒度为4KB,因此如果待发送数据超过4KB则需要进行分片处理,若小于4KB,则不需要进行分片处理;若待发送数据不需要分片处理或者分片处理之后,则进行封装,生成已封装数据的消息包,封装格式参见图3,一个消息包的组成分为以下几个部分:
1)序列号,表示此消息的具体序列号,这个号码最初是随机生成的,但不能是零,零有特殊的含义,占用4个字节;
2)版本号,表示此消息的版本号,占用4个字节,主要表示数据包的格式版本,版本决定了数据包的具体格式,也就是决定如何进行数据包的解析。序列号和版本号是固定的,也就是说一个消息的前8个字节是固定的,也是不变,在本系列中,无论版本是几,前八个字节都会是序列号和版本号;
3)标志位,表示消息的一些传输数据的属性信息,例如:是否带有回复序列号、是否有应用数据、是否存在校验方法,校验方法是什么,占用4个字节,但是目前的flags只使用低2个字节,高两个字节是预留的,目前全部设置为零。具体的标志位的值与语义如表1所示:
表1
4)回复序列号,又称确认号,NM_REPLY置上才存在,是本端确认接收到对端传递过来的消息序列号,占用4个字节;
5)负载数据的长度,NM_DATA置上才存在,表示应用数据的长度,占用4个字节;
6)负载数据,又称应用数据,NM_DATA置上才存在,是传递应用的数据的主体;
7)校验数据,NM_ECHECK置上才存在,具体的大小,取决于NM_CRC和NM_MD5,如果是NM_CRC,则4个字节;如果是NM_MD5,则是16字节。
S102、所述发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
具体的,通过NTB队列发送数据之后,需要修改NTB窗口的剩余空闲的下标和数量,以使接收端控制器及时发现发送端控制器已经发送数据。需要说明的是,首次发送消息包的话,确认号的位置上写0,表示这是第一个,不确认任何消息包。
S103、所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
其中,所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据,包括:
若所述接收端控制器监控到所述管理数据中的空闲下表信息发生变化,则获取已封装数据,对所述已封装数据进行解析后发送至上层应用;
所述接收端控制器更新所述管理数据中的空闲下表信息。
具体的,接收端控制器的接收线程定时先查看NTB队列控制页的管理数据的空闲的下标,发现是否有新的消息;若有,就将消息取回来,之后将消息进行对应的解析,交给上层应用处理,并修改对应占用的首下标,处理完后,会去处理另一个优先级低的队列的消息;接收端对已封装数据的解析是根据已封装数据的数据包格式中不同部分的设置进行解析。
基于上述技术方案,本方案还包括:
所述发送端控制器根据当前NTB队列的数据结构判断是否能发送完所述待发送数据;若能,则通过NTB队列将已封装数据发送至接收端控制器;若不能,则将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
需要说明的是,将待发送数据分片之后,根据当前的NTB窗口的队列数据结构来看是否可以传递所有的分片,如果不能,则放入等待队列,等待发送。
基于上述技术方案,所述接收端控制器获取已封装数据之后,还包括:
检测所述已封装数据中是否存在回复序列号;若存在,则判断是否存在需要发送至所述发送端控制器的回复数据;
若存在回复数据,则按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器;
若不存在回复数据,则间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器。
具体的,在本方案中,若已封装数据中存在回复序列号,则将待确认的序列号放到待确认发送的数组中,如果有回复数据,即有消息传递到对端就直接将序列号放入到消息包中,如果没有要发送的消息,则等待一段时间(这个时间一般是1ms)后就自动形成确认消息包发送给对端,发送方式与发送端控制器发送数据的方式一致。
基于上述技术方案,本方案还包括:
所述发送端控制器判断所述待发送数据是否需要优先发送;
若是,则通过NTB优先队列将所述已封装数据发送至接收端控制器;若否,则通过NTB普通队列将所述已封装数据发送至接收端控制器。
具体的,上层应用会明确的告诉通信层次待发送数据是否需要优先发送,若需要优先发送,则将已封装数据通过NTB优先队列发送,若不需要优先发送,则将已封装数据通过NTB普通队列发送,不管是通过优先队列发送还是普通队列发送,发送方法都一致。
参见图4,在本方案中发送端的上层应用将待发送数据发送至通讯核心层后,通信核心层对待发送数据进行分片和封装,已封装数据通过通信设备层次发送至接收端的通信设备层次,通过接收端的通信核心层对已封装数据的解析,将解析后的数据传递至接收端的应用层。
下面对本发明实施例提供的通信系统进行介绍,下文描述的通信系统与上文描述的通信方法可以相互参照。
参见图5,本发明实施例提供的一种基于NTB硬件的通信系统,包括发送端控制器100和接收端控制器200;
所述发送端控制器100包括:
第一判断模块101,用于判断待发送数据的数据大小是否超出预定阈值;
分片模块102,用于当待发送数据的数据大小超出预定阈值时,对所述待发送数据执行分片操作;
封装模块103,用于按照预定封装格式对分片后的数据进行封装,或者,当待发送数据的数据大小没有超出预定阈值时,直接按照所述预定封装格式对所述待发送数据进行封装;
发送模块104,用于通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
所述接收端控制器200,用于通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
基于上述技术方案,所述发送端控制器还包括:
第二判断模块,用于根据当前NTB队列的数据结构判断是否能发送所述待发送数据;
所述发送模块,用于能发送所述待发送数据时,通过NTB队列将已封装数据发送至接收端控制器;不能发送所述待发送数据时,将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
基于上述技术方案,所述发送端控制器还包括:
检测模块,用于获取已封装数据之后,检测所述已封装数据中是否存在回复序列号;
第二判断模块,用于检测到所述已封装数据中存在回复序列号后,判断是否存在需要发送至所述发送端控制器的回复数据;
所述封装模块,还用于在所述第二判断模块判定存在回复数据时,按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器;
所述封装模块,还用于在所述第二判断模块判定不存在回复数据时,在间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器。
基于上述技术方案,所述发送端控制器还包括:
第四判断模块,用于判断所述待发送数据是否需要优先发送;
所述发送模块,用于所述待发送数据需要优先发送时,通过NTB优先队列将所述已封装数据发送至接收端控制器;所述待发送数据不需要优先发送时,通过NTB普通队列将所述已封装数据发送至接收端控制器。
本发明实施例提供的一种基于NTB硬件的通信方法及系统,包括:发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对所述待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照所述预定封装格式对所述待发送数据进行封装;所述发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据;
可见,在本实施例中,通过本方案提供的通信方法,不会出现数据包丢失,数据包乱序等情况,并且由于NTB链路的可靠性,也不会存在消息序列号的循环溢出等问题,从而实现高效的消息传递。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于NTB硬件的通信方法,其特征在于,包括:
发送端控制器判断待发送数据的数据大小是否超出预定阈值;若是,则对所述待发送数据执行分片操作,按照预定封装格式对分片后的数据进行封装;若否,则直接按照所述预定封装格式对所述待发送数据进行封装;
所述发送端控制器通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
2.根据权利要求1所述的通信方法,其特征在于,还包括:
所述发送端控制器根据当前NTB队列的数据结构判断是否能发送完所述待发送数据;
若能,则通过NTB队列将已封装数据发送至接收端控制器;若不能,则将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
3.根据权利要求1所述的通信方法,其特征在于,所述接收端控制器通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据,包括:
若所述接收端控制器监控到所述管理数据中的空闲下表信息发生变化,则获取已封装数据,对所述已封装数据进行解析后发送至上层应用;
所述接收端控制器更新所述管理数据中的空闲下表信息。
4.根据权利要求3所述的通信方法,其特征在于,
已封装数据的封装格式依次包括:序列号信息,版本号信息,标志位信息,回复序列号信息,负载数据的长度信息,负载数据,校验数据;其中,所述标志位信息表示已封装数据的属性信息。
5.根据权利要求4所述的通信方法,其特征在于,所述接收端控制器获取已封装数据之后,还包括:
检测所述已封装数据中是否存在回复序列号;若存在,则判断是否存在需要发送至所述发送端控制器的回复数据;
若存在回复数据,则按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器;
若不存在回复数据,则间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过NTB队列发送至发送端控制器。
6.根据权利要求1-5中任意一项所述的通信方法,其特征在于,还包括:
所述发送端控制器判断所述待发送数据是否需要优先发送;
若是,则通过NTB优先队列将所述已封装数据发送至接收端控制器;若否,则通过NTB普通队列将所述已封装数据发送至接收端控制器。
7.一种基于NTB硬件的通信系统,其特征在于,包括发送端控制器和接收端控制器;
所述发送端控制器包括:
第一判断模块,用于判断待发送数据的数据大小是否超出预定阈值;
分片模块,用于当待发送数据的数据大小超出预定阈值时,对所述待发送数据执行分片操作;
封装模块,用于按照预定封装格式对分片后的数据进行封装,或者,当待发送数据的数据大小没有超出预定阈值时,直接按照所述预定封装格式对所述待发送数据进行封装;
发送模块,用于通过NTB队列将已封装数据发送至接收端控制器,并修改所述队列控制页的管理数据;
所述接收端控制器,用于通过监控所述NTB队列控制页的管理数据,获取所述发送端控制器发送的已封装数据。
8.根据权利要求7所述的通信系统,其特征在于,所述发送端控制器还包括:
第二判断模块,用于根据当前NTB队列的数据结构判断是否能发送所述待发送数据;
所述发送模块,用于能发送所述待发送数据时,通过NTB队列将已封装数据发送至接收端控制器;不能发送所述待发送数据时,将所述待发送数据存入等待队列,直至当前NTB队列能发送所述待发送数据为止。
9.根据权利要求7所述的通信系统,其特征在于,所述发送端控制器还包括:
检测模块,用于获取已封装数据之后,检测所述已封装数据中是否存在回复序列号;
第二判断模块,用于检测到所述已封装数据中存在回复序列号后,判断是否存在需要发送至所述发送端控制器的回复数据;
所述封装模块,还用于在所述第二判断模块判定存在回复数据时,按照所述预定封装格式对包括所述回复数据及所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器;
所述封装模块,还用于在所述第二判断模块判定不存在回复数据时,在间隔预设时长后,按照所述预定封装格式对包括所述回复序列号的消息包进行封装,并通过所述发送模块通过NTB队列发送至发送端控制器。
10.根据权利要求7-9中任意一项所述的通信系统,其特征在于,所述发送端控制器还包括:
第四判断模块,用于判断所述待发送数据是否需要优先发送;
所述发送模块,用于所述待发送数据需要优先发送时,通过NTB优先队列将所述已封装数据发送至接收端控制器;所述待发送数据不需要优先发送时,通过NTB普通队列将所述已封装数据发送至接收端控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610970016.4A CN106549845A (zh) | 2016-10-26 | 2016-10-26 | 一种基于ntb硬件的通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610970016.4A CN106549845A (zh) | 2016-10-26 | 2016-10-26 | 一种基于ntb硬件的通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106549845A true CN106549845A (zh) | 2017-03-29 |
Family
ID=58394144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610970016.4A Pending CN106549845A (zh) | 2016-10-26 | 2016-10-26 | 一种基于ntb硬件的通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106549845A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062708A (zh) * | 2018-07-05 | 2018-12-21 | 武汉斗鱼网络科技有限公司 | 一种数据发送方法、接收方法及装置 |
CN110971387A (zh) * | 2019-12-10 | 2020-04-07 | 上海邦邦机器人有限公司 | 一种数据传输处理方法、发送设备和接收设备 |
CN113595966A (zh) * | 2020-04-30 | 2021-11-02 | 阿里巴巴集团控股有限公司 | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 |
CN117812166A (zh) * | 2024-03-01 | 2024-04-02 | 广州市仪美医用家具科技股份有限公司 | 一种基于udp的数据传输方法、系统、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988948A (zh) * | 2015-02-13 | 2016-10-05 | 浙江大华技术股份有限公司 | 一种数据传输的方法及设备 |
-
2016
- 2016-10-26 CN CN201610970016.4A patent/CN106549845A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988948A (zh) * | 2015-02-13 | 2016-10-05 | 浙江大华技术股份有限公司 | 一种数据传输的方法及设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062708A (zh) * | 2018-07-05 | 2018-12-21 | 武汉斗鱼网络科技有限公司 | 一种数据发送方法、接收方法及装置 |
CN109062708B (zh) * | 2018-07-05 | 2020-07-10 | 武汉斗鱼网络科技有限公司 | 一种数据发送方法、接收方法及装置 |
CN110971387A (zh) * | 2019-12-10 | 2020-04-07 | 上海邦邦机器人有限公司 | 一种数据传输处理方法、发送设备和接收设备 |
CN113595966A (zh) * | 2020-04-30 | 2021-11-02 | 阿里巴巴集团控股有限公司 | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 |
CN117812166A (zh) * | 2024-03-01 | 2024-04-02 | 广州市仪美医用家具科技股份有限公司 | 一种基于udp的数据传输方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484652B (zh) | 一种基于ntb硬件的多队列通信方法及系统 | |
CN106549845A (zh) | 一种基于ntb硬件的通信方法及系统 | |
CN1953461B (zh) | 编码数据包头以启用PCIe链路高带宽效率的系统和方法 | |
CN102866971B (zh) | 传输数据的装置、系统及方法 | |
CN102647320B (zh) | 适用于高速1553总线协议控制的集成电路 | |
CN105975424B (zh) | 一种主从串行通讯协议 | |
CN105556930A (zh) | 针对远程存储器访问的nvm express控制器 | |
KR102144330B1 (ko) | 캡슐화 가능한 pcie 가상화 | |
CN105868134B (zh) | 高性能多口ddr控制器及其实现方法 | |
CN104424105B (zh) | 一种内存数据的读写处理方法和装置 | |
CN104641360A (zh) | 对存储器及对等设备的双播PCIe入站写入 | |
DE112010002178T5 (de) | Verfahren und vorrichtung für id-basierte ströme über pci-express | |
CN105893323A (zh) | 一种读数据的方法及设备 | |
CN105357147A (zh) | 一种高速高可靠的片上网络适配单元 | |
CN103365810B (zh) | 在c.a.n.总线上减少闪速存储装置编程时间的方法和设备 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
CN105630424A (zh) | 数据处理方法、装置及系统 | |
CN104915302B (zh) | 数据传输处理方法和数据传输器 | |
CN105939293B (zh) | 一种skb回收方法及装置 | |
CN106302061A (zh) | 一种基于FlexRay总线的通信方法、装置及系统 | |
CN107329917A (zh) | 一种数据传输方法及装置 | |
KR102052866B1 (ko) | 패킷 송수신 시스템, 장치 및 방법 | |
CN114915499B (zh) | 数据传输方法、相关装置、系统及计算机可读存储介质 | |
CN103973581B (zh) | 一种报文数据处理方法、装置及系统 | |
CN107579936A (zh) | 报文传输方法、控制器及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170329 |