CN115499393B - 一种基于网络接口芯片的tcp连接报文处理方法 - Google Patents
一种基于网络接口芯片的tcp连接报文处理方法 Download PDFInfo
- Publication number
- CN115499393B CN115499393B CN202211069309.7A CN202211069309A CN115499393B CN 115499393 B CN115499393 B CN 115499393B CN 202211069309 A CN202211069309 A CN 202211069309A CN 115499393 B CN115499393 B CN 115499393B
- Authority
- CN
- China
- Prior art keywords
- message data
- sequence number
- physical address
- minimum physical
- address
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000005540 biological transmission Effects 0.000 title description 9
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000004891 communication Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005265 energy consumption Methods 0.000 abstract description 4
- 238000012163 sequencing technique Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 108700041286 delta Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于网络接口芯片的TCP连接报文处理方法及装置,所述方法包括:接收报文数据,解析报文数据,获取报文数据序号;将接收到报文数据的序号与当前存储在物理地址最小报文数据的序号做比较;若接收到报文数据的序号大于存储在物理地址最小报文数据的序号,则接收到报文数据存储地址为最小物理地址加上第一差值;若接收到报文数据的序号小于存储在物理地址最小报文数据的序号,则接收到报文数据存储在物理地址最小的地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并更新已排序的其他报文数据存储地址。通过硬件处理报文数据排序,节约CPU资源、降低CPU能耗,提高了报文排序的效率。
Description
技术领域
本发明属于网络通信技术领域,特别是涉及一种基于网络接口芯片的TCP连接报文处理方法及装置、计算机设备及计算机可读存储介质。
背景技术
随着信息技术发展,网络通信数据量与日俱增,对于处理这些数据的设备要求也越来越高,因此,如何在同等设备中,提升对于网络通信数据的处理就显得格外重要。
对于当前通信数据使用CPU作排序处理时,因为数据量庞大,需要消耗很多CPU的资源,但排序操作,具有重复性高,算法难度低的特点,而CPU的资源有限,其应该更多作用于难度更大的计算,而应该将这些重复性高,数据量庞大,且算法难度较低的工作,如何通过其他方式进行处理,是目前亟需解决的问题。
发明内容
基于此,本发明提供了一种基于网络接口芯片的TCP连接报文处理方法、装置、设备及存储介质,解决了当前通信数据使用CPU作排序处理,消耗CPU资源多,处理效率低的问题。
本发明实施例提供的一种基于网络接口芯片的TCP连接报文处理方法,所述方法包括:
接收报文数据,解析所述报文数据,获取所述报文数据的序号;
将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;
若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。
进一步地,所述基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址,具体为:
将已排序的其他报文数据的存储地址中的最小物理地址,更新为最小物理地址加上第二差值。
进一步地,所述第一差值为接收到的所述报文数据的序号减去存储在物理地址最小的报文数据的序号;
所述第二差值存储在物理地址最小的报文数据的序号减去接收到的所述报文数据的序号。
进一步地,所述接收报文数据,解析所述报文数据,获取所述报文数据的序号之前还包括:
更新网卡中存储地址的指针,用于标注所述网卡中用于存储所述报文数据的存储地址的物理地址。
进一步地,所述接收报文数据,解析所述报文数据,获取所述报文数据的序号之前还包括:
根据应用层当前的通信状态,控制所述网卡中接收报文内存的大小,调整TCP协议中窗口的大小。
进一步地,对所述网卡中接收报文内存的头指针和尾指针进行初始化,初始化完成后,根据分配内存的大小调整尾指针的值。
进一步地,所述对所述网卡中接收报文内存的头指针和尾指针进行初始化具体为:
将接收的报文数据存入分配的内存地址,对所述内存的头指针和尾指针值累加分配的内存地址,其中,第一次对所述网卡中接收报文内存的头指针和尾指针初始化为零。
本发明实施例还提供了一种基于网络接口芯片的TCP连接报文处理装置,所述装置包括:
报文数据序号获取模块,用于接收报文数据,解析所述报文数据,获取所述报文数据的序号;
报文数据排序模块,用于将接收到的所述报文数据的序号与存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;
若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。
本发明实施例还提供了一种计算机设备,所述计算机设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现上述任一项所述的基于网络接口芯片的TCP连接报文处理方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的基于网络接口芯片的TCP连接报文处理方法。
本发明提供的一种基于网络接口芯片的TCP连接报文处理方法,通过接收报文数据,解析所述报文数据,获取所述报文数据的序号;将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。将原本需要CPU对报文数据进行排序的工作,发送至硬件端,在硬件端对报文数据进行排序处理,节约了CPU资源,降低了CPU能耗,提升了报文数据排序效率。并且在硬件中可以采用并行处理的方式,同等时间内可以处理更多数据,且专用于处理报文数据排序,针对性强,使报文数据排序效率进一步得到保障,提高通信工作的整体效率。本发明提供的一种基于网络接口芯片的TCP连接报文处理装置、设备及存储介质,也可实现上述效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例涉及的基于网络接口芯片的TCP连接报文处理方法在中央处理器-硬件端***中实施的示意图;
图2为本发明实施例提供的一种基于网络接口芯片的TCP连接报文处理方法的流程示意图;
图3为本发明实施例提供的一种基于网络接口芯片的TCP连接报文处理装置的结构框图;
图4为图3中报文数据排序模块的一种结构框图;
图5为本发明实施例提供的另一种基于网络接口芯片的TCP连接报文处理装置的结构框图;
图6为本发明实施例提供的又一种基于网络接口芯片的TCP连接报文处理装置的结构框图;
图7为图6中调控模块的结构框图;
图8为本发明实施例公开的一种计算机设备的结构示意图;
图9为本发明实施例公开了一种计算机存储介质。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。
如图1所示,本发明实施例涉及的一种基于网络接口芯片的TCP连接报文处理方法可以在中央处理器-硬件端***100中实施。该中央处理器-硬件端***100包括中央处理器101、硬件端102以及网络103。中央处理器101通过网络103与硬件端102通信。其中,中央处理器101用于接收通信的报文数据,并对接收的报文数据通过TCP(Transmission ControlProtocol,即传输控制协议)进行编码,将所述报文数据具有相应的发送序号,并且将报文数据的发送序号和中央处理器101的发送接口进行关联,然后将编码后的报文数据发送至硬件端102中。硬件端102用于接收到编码后的报文数据,并按照TCP对其进行解码,得到报文数据的序号,将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。通过遍历所有的报文数据,得到报文数据的最终排序结果,并将最终的排序结果发送至中央处理器101。
在本发明实施例中,中央处理器101接收到通信的报文数据之后,通过TCP对报文数据进行编码,使所述报文数据具有相应的发送序号,并且将报文数据的发送序号和中央处理器101的发送接口进行关联,然后将编码后的报文数据发送至硬件端102,硬件端102接收编码后的报文数据,并按照TCP对其进行解码,得到报文数据的序号,将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。通过遍历所有的报文数据,得到报文数据的最终排序结果。将原本需要中央处理器101对报文数据进行排序的工作,交由硬件端102进行处理,并且在硬件端102中可以采用并行处理的方式,同等时间内可以处理更多数据,且专用于处理报文数据排序,针对性强,节约CPU资源、降低CPU能耗的同时,提升对于报文排序处理工作的效率。
需要说明的是,***中,硬件端102可以为网卡,其包括网络接口芯片(如网卡上的主芯片),用于接收中央处理器发送的报文数据并执行上述TCP连接报文处理方法。硬件端102的数量也可以是多个,本发明实施例对此不作限定。具体的,中央处理器101可以为诸如手机、平板电脑、台式电脑或者笔记本电脑之类的任意终端。
如图2所示,为本发明实施例提供的一种基于网络接口芯片的TCP连接报文处理方法的流程示意图,所述方法包括:
步骤S1:接收报文数据,解析所述报文数据,获取所述报文数据的序号;
步骤S2:将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;其中,所述第一差值为接收到的所述报文数据的序号减去存储在物理地址最小的报文数据的序号;其中,所述第二差值存储在物理地址最小的报文数据的序号减去接收到的所述报文数据的序号。
进一步地,所述基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址,具体为:将已排序的其他报文数据的存储地址中的最小物理地址,更新为最小物理地址加上第二差值。
具体地,在报文发送之前,TCP对需要传输的报文及传输报文的端口进行编码,编码完成后将其发送,网卡接收到报文数据之后,按照TCP对其进行解析,得到报文数据的序号,将接收到的第一个报文数据存储在物理地址最小的存储地址中,接收到第二个报文之后,进行解析,得到第二个报文的序号,将第二个报文的序号与存储地址中物理地址最小的报文数据的序号,即接收到的第一报文序号做比较,若第二个报文的序号大于第一个报文的序号,则第一个报文的存储地址不发生变化,即仍然存储在物理地址最小的存储地址中,第二个报文的存储地址为物理地址最小的存储地址加上第一差值,其中,第一差值为第二个报文的序号减去第一个报文的序号的差值。若第二个报文的序号小于第一个报文的序号,则将接收到的第二报文存储在物理地址最小的存储地址中,第一个报文的存储地址变为物理地址最小的存储地址加上第二差值,其中,第二差值为第一个报文的序号减去第二个报文的序号的差值。
当接收到第三个报文之后,对其进行解析得到其序号,然后将第三个报文的序号,与存储在存储地址中物理地址最小的报文数据的序号做比较,当物理地址最小的存储地址中的存储的报文数据为第一个报文数据,且第三个报文数据的序号大于第一个报文数据的序号时,第一个报文数据和第二个报文数据的存储地址不变,第三个报文数据的存储地址为最小物理地址加上第一差值,其中,第一差值为第三个报文数据的序号减去第一个报文数据的序号。当物理地址最小的存储地址中的存储的报文数据为第二个报文数据,且第三个报文数据的序号小于第一个报文数据的序号时,将接收到的第三个报文数据存储在物理地址最小的存储地址中,接收到的第一报文数据的存储地址更新为最小物理地址加上第二差值,其中,第二差值为接收到的第一个报文数据的序号减去接收到的第三个报文的序号的差值,接收到的第二个报文数据的存储地址,将之前的最小地址变为最小地址加上接收到的第一个报文数据的序号减去接收到的第三个报文的序号的差值。当物理地址最小的存储地址中存储的报文数据为第二个报文数据时,通过同样的方式进行排序。
如此循环判断,当接收完最后一个报文以后,也能将所有报文的按照最小物理地址存储最小序号的顺序,排列完毕。
以序号为1~1023的报文数据,用于接收报文数据的存储地址的物理地址为1024 ~2047举例说明上述排序方法的实现过程。
假设第一个接收到的报文数据的序号为100,第二个接收到的报文数据的序号为40,第三个接收到的报文数据的序号为60,第四个接收到的报文数据的序号为10,……;接收到的第一个报文数据默认写入到最小物理地址(此时为1024),记录第一个报文数据的物理存储地址为δ1=1024;接收到的第二个报文数据的序号为40,则接收到的第二个报文数据的序号小于接收到的第一个报文数据的序号,则将接收到的第二个报文数据存储在最小物理地址中,记录第二个报文数据的物理存储地址为δ2=1024,第一个接收到的报文数据存储地址更新为最小物理地址加上接收到的第一个报文数据的序号减去接收到的第二个报文数据的序号的值,即此时接收到的第一个报文数据的存储地址更新为δ1 =δ2+60=1024+60=1084;接收到的第三个报文数据的序号为60,与当前最小物理地址中存储的报文数据的序号作比较,大于最小物理地址中存储的报文数据的序号,则接收到的第一报文数据、第二个报文数据的存储地址不变,接收到的第三个报文数据的存储地址为δ3=δ2+20=1024+20=1044。接收到的第四个报文数据的序号为10,与当前最小物理地址中存储的报文数据的序号作比较,接收到的第四个报文数据的序号小于当前最小物理地址中存储的报文数据的序号,则将接收到的第四个报文数据存储在最小物理地址,记录第四个报文数据的物理存储地址为δ4=1024,接收到的第二个报文数据的物理存储地址变更为δ2=δ4+30=1054,接收到的第一个报文数据的物理存储地址变更为δ1=δ2+60=δ4+30+60=1024+30+60=1114;接收到的第三个报文数据的物理存储地址变更为δ3=δ2+20=δ4+30+20=1024+30+20=1074;
本实施例提供的一种基于网络接口芯片的TCP连接报文处理方法,通过接收报文数据,解析所述报文数据,获取所述报文数据的序号;将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。将原本需要CPU对报文数据进行排序的工作,交由硬件进行处理,并且在硬件中可以采用并行处理的方式,同等时间内可以处理更多数据,且专用于处理报文数据排序,针对性强,节约CPU资源、降低CPU能耗的同时,提升对于报文排序处理工作的效率。
在一些实施例中,在步骤S1之前还包括:更新网卡中存储地址的指针,用于标注所述网卡中用于存储所述报文数据的存储地址的物理地址。
在一些实施例中,在步骤S1之前还包括:根据应用层当前的通信状态,控制所述网卡中接收报文内存的大小,调整TCP协议中窗口的大小,实现对通告窗口的控制功能。
具体地, CPU可以根据应用层当前通信状态,控制接收的报文数据的内存容量,在保证报文数据能正常收发的同时,节省了内存资源;
进一步地,对所述网卡中接收报文内存的头指针和尾指针进行初始化,初始化完成后,根据分配内存的大小调整尾指针的值。
其中,所述对所述网卡中接收报文内存的头指针和尾指针进行初始化具体为:将接收的报文数据存入分配的内存地址,对所述内存的头指针和尾指针值累加分配的内存地址,其中,第一次对所述网卡中接收报文内存的头指针和尾指针初始化为零。
具体地,对所述网卡中接收报文内存的头指针和尾指针进行初始化时,头指针(Ptr_head)和尾指针(Ptr_tail)均默认为0,CPU在处于接收报文状态时,会分配固定内存用于网卡直接将接收到的报文写入到内存中,CPU根据分配的内存调整尾指针(Ptr_tail)的值,并告知网卡,尾指针(Ptr_tail)的值已更新,网卡在接收到报文以后,将报文直接写入到CPU所分配的内存中,同时控制头指针(Ptr_head)进行累加。当头指针和尾指针值相等时,说明CPU分配的用于接收报文的内存写满了,此时网卡控制完成队列的尾指针(Ptr_tail),更新为目前储存接收报文的物理地址的最大值,并将此尾指针(Ptr_tail)值直接写入到内存中,等待CPU读取此段接收报文数据。
如图3所示,为本发明实施例提供的一种基于网络接口芯片的TCP连接报文处理装置200的结构框图,所述装置200包括:
报文数据序号获取模块201,用于接收报文数据,解析所述报文数据,获取所述报文数据的序号;
报文数据排序模块202,用于将接收到的所述报文数据的序号与存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;
若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址。
如图4所示,为图3中报文数据排序模块202的一种结构框图,所述报文数据排序模块202包含:
更新模块2021,用于将已排序的其他报文数据的存储地址中的最小物理地址,更新为最小物理地址加上第二差值。
进一步地,所述第一差值为接收到的所述报文数据的序号减去存储在物理地址最小的报文数据的序号;所述第二差值存储在物理地址最小的报文数据的序号减去接收到的所述报文数据的序号。
如图5所示,为本发明实施例提供的另一种基于网络接口芯片的TCP连接报文处理装置200的结构框图,所述装置200还包括:
标注模块203,用于更新网卡中存储地址的指针,用于标注所述网卡中用于存储所述报文数据的存储地址的物理地址。
如图6所示,为本发明实施例提供的又一种基于网络接口芯片的TCP连接报文处理装置200的结构框图,所述装置200还包括:
调控模块204,用于根据应用层当前的通信状态,控制所述网卡中接收报文内存的大小,调整TCP协议中窗口的大小。
如图7所示,为图5中调控模块204的结构框图,所述调控模块204包括,调整模块2041,用于对所述网卡中接收报文内存的头指针和尾指针进行初始化,初始化完成后,根据分配内存的大小调整尾指针的值。
如图7所示,所述调控模块204还包括,初始化模块2042,用于将接收的报文数据存入分配的内存地址,对所述内存的头指针和尾指针值累加分配的内存地址,其中,第一次对所述网卡中接收报文内存的头指针和尾指针初始化为零。
关于基于网络接口芯片的TCP连接报文处理装置的具体限定可以参见上文中对于基于网络接口芯片的TCP连接报文处理方法的限定,在此不再赘述。上述基于网络接口芯片的TCP连接报文处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
如图8所示,是本发明实施例公开的一种计算机设备的结构示意图,该计算机设备可以包括:
存储有可执行程序代码的存储器801;
与存储器801连接的处理器802;
处理器802调用存储器801中存储的可执行程序代码,执行本发明TCP连接报文排序方法中的步骤。
请参阅图9,本发明实施例公开了一种计算机存储介质901,计算机存储介质901存储有计算机指令,该计算机指令被调用时,用于执行本发明TCP连接报文排序方法中的步骤。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN) 连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
取决于语境,如在此所使用的词语““如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种基于网络接口芯片的TCP连接报文处理方法,其特征在于,所述方法包括:
接收报文数据,解析所述报文数据,获取所述报文数据的序号;
将接收到的所述报文数据的序号与当前存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;
若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址;
所述基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址,具体为:
将已排序的其他报文数据的存储地址中的最小物理地址,更新为最小物理地址加上第二差值;
所述第一差值为接收到的所述报文数据的序号减去存储在物理地址最小的报文数据的序号;
所述第二差值存储在物理地址最小的报文数据的序号减去接收到的所述报文数据的序号。
2.根据权利要求1所述的一种基于网络接口芯片的TCP连接报文处理方法,其特征在于,所述接收报文数据,解析所述报文数据,获取所述报文数据的序号之前还包括:
更新网卡中存储地址的指针,用于标注所述网卡中用于存储所述报文数据的存储地址的物理地址。
3.根据权利要求1所述的一种基于网络接口芯片的TCP连接报文处理方法,其特征在于,所述接收报文数据,解析所述报文数据,获取所述报文数据的序号之前还包括:
根据应用层当前的通信状态,控制网卡中接收报文内存的大小,调整TCP协议中窗口的大小。
4.根据权利要求3所述的一种基于网络接口芯片的TCP连接报文处理方法,其特征在于,对所述网卡中接收报文内存的头指针和尾指针进行初始化,初始化完成后,根据分配内存的大小调整尾指针的值。
5.根据权利要求4所述的一种基于网络接口芯片的TCP连接报文处理方法,其特征在于,所述对所述网卡中接收报文内存的头指针和尾指针进行初始化具体为:
将接收的报文数据存入分配的内存地址,对所述内存的头指针和尾指针值累加分配的内存地址,其中,第一次对所述网卡中接收报文内存的头指针和尾指针初始化为零。
6.一种基于网络接口芯片的TCP连接报文处理装置,其特征在于,所述装置包括:
报文数据序号获取模块,用于接收报文数据,解析所述报文数据,获取所述报文数据的序号;
报文数据排序模块,用于将接收到的所述报文数据的序号与存储在存储地址中物理地址最小的报文数据的序号做比较;其中,接收的第一个报文数据存储于物理地址最小的存储地址中;
若接收到的所述报文数据的序号大于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储地址为最小物理地址加上第一差值;
若接收到的所述报文数据的序号小于存储在物理地址最小的报文数据的序号,则接收到的所述报文数据存储在物理地址最小的存储地址中,原先存储在物理地址最小的报文数据的新存储地址为最小物理地址加上第二差值,并基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址;
所述基于原先存储在物理地址最小的报文数据的所述新存储地址,更新已排序的其他报文数据的新存储地址,具体为:
将已排序的其他报文数据的存储地址中的最小物理地址,更新为最小物理地址加上第二差值;
所述第一差值为接收到的所述报文数据的序号减去存储在物理地址最小的报文数据的序号;
所述第二差值存储在物理地址最小的报文数据的序号减去接收到的所述报文数据的序号。
7.一种计算机设备,所述计算机设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如权利要求1-5任一项所述的基于网络接口芯片的TCP连接报文处理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的基于网络接口芯片的TCP连接报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211069309.7A CN115499393B (zh) | 2022-09-02 | 2022-09-02 | 一种基于网络接口芯片的tcp连接报文处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211069309.7A CN115499393B (zh) | 2022-09-02 | 2022-09-02 | 一种基于网络接口芯片的tcp连接报文处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115499393A CN115499393A (zh) | 2022-12-20 |
CN115499393B true CN115499393B (zh) | 2024-05-07 |
Family
ID=84467685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211069309.7A Active CN115499393B (zh) | 2022-09-02 | 2022-09-02 | 一种基于网络接口芯片的tcp连接报文处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499393B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278504A (zh) * | 2023-09-21 | 2023-12-22 | 中科驭数(北京)科技有限公司 | 报文数据转发方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549535A (zh) * | 2003-05-09 | 2004-11-24 | 华为技术有限公司 | 用rtp数据包的序号进行排序以消除其抖动延时的方法 |
CN110806986A (zh) * | 2019-11-04 | 2020-02-18 | 盛科网络(苏州)有限公司 | 提高网络芯片报文存储效率的方法、设备及存储介质 |
CN111988446A (zh) * | 2020-08-26 | 2020-11-24 | 锐捷网络股份有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN113141235A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 处理数据的方法和相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706808B1 (ko) * | 2006-02-03 | 2007-04-12 | 삼성전자주식회사 | 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법 |
-
2022
- 2022-09-02 CN CN202211069309.7A patent/CN115499393B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549535A (zh) * | 2003-05-09 | 2004-11-24 | 华为技术有限公司 | 用rtp数据包的序号进行排序以消除其抖动延时的方法 |
CN110806986A (zh) * | 2019-11-04 | 2020-02-18 | 盛科网络(苏州)有限公司 | 提高网络芯片报文存储效率的方法、设备及存储介质 |
CN113141235A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 处理数据的方法和相关装置 |
CN111988446A (zh) * | 2020-08-26 | 2020-11-24 | 锐捷网络股份有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
一个用于TCP协议中包重排序的硬件结构;陈虎;陈一天;;小型微型计算机***;20060421(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115499393A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756230B (zh) | 数据压缩存储方法、数据压缩方法、装置、设备及介质 | |
US20190114202A1 (en) | Task scheduling method and apparatus of artificial intelligence heterogeneous hardware, device and readable medium | |
USRE44442E1 (en) | Information processing apparatus and information processing method | |
CN115499393B (zh) | 一种基于网络接口芯片的tcp连接报文处理方法 | |
CN112445725A (zh) | 预读取文件页的方法、装置和终端设备 | |
CN108064086B (zh) | 一种带宽分配方法、装置、计算机设备及存储介质 | |
CN111614757A (zh) | 客户端与服务器的报文交互方法、装置、设备及介质 | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN114691595B (zh) | 多核电路、数据交换方法、电子设备及存储介质 | |
CN114757214A (zh) | 用于优化翻译模型的样本语料的选取方法、相关装置 | |
KR20160011951A (ko) | 영상 처리 디바이스 및 방법 | |
CN114020529A (zh) | 一种流表数据的备份方法、装置、网络设备和存储介质 | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
CN110825342B (zh) | 存储调度器件和用于处理信息的***、方法及装置 | |
CN113554149B (zh) | 神经网络处理单元npu、神经网络的处理方法及其装置 | |
CN115495406A (zh) | 一种基于PCIe的报文传输方法、装置、设备及存储介质 | |
KR101012151B1 (ko) | 명령어 확장을 통한 스마트카드 업데이트 방법 및 시스템 | |
CN108075989B (zh) | 一种基于可扩展协议的负载均衡网络中间件实现方法 | |
CN114756501A (zh) | 一种芯片间通信方法、装置、***及存储介质 | |
CN112817788A (zh) | 任务异常告警方法、装置、服务器及存储介质 | |
CN111382092A (zh) | 传感器网络、方法及存储介质 | |
CN111490864B (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
US7058308B2 (en) | Method for communicating multimedia data between electronic devices by means of IR ray | |
CN112615916A (zh) | 文件部署方法、装置、电子设备以及存储介质 | |
EP3819763A1 (en) | Electronic device and operating method thereof |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |