CN111490947B - 数据包发送方法、数据包接收方法、系统、设备及介质 - Google Patents

数据包发送方法、数据包接收方法、系统、设备及介质 Download PDF

Info

Publication number
CN111490947B
CN111490947B CN201910074739.XA CN201910074739A CN111490947B CN 111490947 B CN111490947 B CN 111490947B CN 201910074739 A CN201910074739 A CN 201910074739A CN 111490947 B CN111490947 B CN 111490947B
Authority
CN
China
Prior art keywords
network card
queue
priority
data packet
queues
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
CN201910074739.XA
Other languages
English (en)
Other versions
CN111490947A (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201910074739.XA priority Critical patent/CN111490947B/zh
Publication of CN111490947A publication Critical patent/CN111490947A/zh
Application granted granted Critical
Publication of CN111490947B publication Critical patent/CN111490947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种数据包发送方法,其特征在于,所述方法包括:响应于数据包发送信号,获取数据包的数据包优先级;确定用于发送所述数据包的网卡,其中,所述网卡包括多个发送网卡队列;根据所述数据包优先级,从所述多个发送网卡队列中确定出对应的发送网卡队列;以及将所述数据包发送给所述对应的发送网卡队列。本公开还提供了一种数据包接收方法、一种数据包发送系统、一种数据包接收系统、一种计算机设备及一种计算机可读存储介质。

Description

数据包发送方法、数据包接收方法、系统、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据包发送方法、数据包接收方法、系统、计算机设备及计算机可读存储介质。
背景技术
一般地,每个客户端与服务器之间可以建立一个连接,每个连接可以包括多路请求,每路请求可以对应有数据包。
目前,不同的数据包是存在优先级的,但是现有技术中的服务器在通过网卡接收或发送数据包时,通常没有考虑到数据包的优先级,使得不同优先级的数据包到网卡上后,服务器并不能真正的按照优先级处理这些数据包,极易影响系统的响应性能。
发明内容
本公开的目的是提供一种数据包发送方法、数据包接收方法、系统、计算机设备及计算机可读存储介质,用于解决现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
本公开的一个方面提供了一种数据包发送方法,其特征在于,上述方法包括:响应于数据包发送信号,获取数据包的数据包优先级;确定用于发送上述数据包的网卡,其中,上述网卡包括多个发送网卡队列;根据上述数据包优先级,从上述多个发送网卡队列中确定出对应的发送网卡队列;以及将上述数据包发送给上述对应的发送网卡队列。
根据本公开的实施例,每个上述发送网卡队列均具有队列优先级,其中,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级。
根据本公开的实施例,上述根据上述数据包优先级,从上述多个发送网卡队列中确定出对应的发送网卡队列,包括:确定上述多个发送网卡队列的网卡队列数量;以及根据上述网卡队列数量和上述数据包优先级,从上述多个发送网卡队列中确定出上述对应的发送网卡队列。
根据本公开的实施例,上述根据上述网卡队列数量和上述数据包优先级,从上述多个发送网卡队列中确定出上述对应的发送网卡队列,包括:获取预设最大优先级和预设最小优先级;以及根据上述预设最大优先级、上述预设最小优先级、上述网卡队列数量和上述数据包优先级,从上述多个发送网卡队列中确定出上述对应的发送网卡队列。
本公开的另一个方面提供了一种数据包接收方法,其特征在于,上述方法包括:响应于数据包接收信号,确定用于接收数据包的网卡,其中,上述网卡包括多个接收网卡队列;确定上述多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级;以及根据上述多个队列优先级,从上述多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
根据本公开的实施例,上述根据上述多个队列优先级,从上述多个接收网卡队列中读取数据包,包括:确定上述多个队列优先级中级别最高的队列优先级;判断上述级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及若上述级别最高的队列优先级对应的接收网卡队列中存在数据包,则从上述级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。
根据本公开的实施例,上述方法还包括:若上述级别最高的队列优先级对应的接收网卡队列中不存在数据包,则继续判断上述下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
本公开的再一个方面提供了一种数据包发送系统,其特征在于,上述系统包括:获取模块,用于响应于数据包发送信号,获取数据包的数据包优先级;第一确定模块,用于确定用于发送上述数据包的网卡,其中,上述网卡包括多个发送网卡队列;第二确定模块,用于根据上述数据包优先级,从上述多个发送网卡队列中确定出对应的发送网卡队列;以及发送模块,用于将上述数据包发送给上述对应的发送网卡队列。
根据本公开的实施例,每个上述发送网卡队列均具有队列优先级,其中,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级。
根据本公开的实施例,上述第二确定模块包括:第一确定单元,用于确定上述多个发送网卡队列的网卡队列数量;以及第二确定单元,用于根据上述网卡队列数量和上述数据包优先级,从上述多个发送网卡队列中确定出上述对应的发送网卡队列。
根据本公开的实施例,上述第二确定单元包括:获取子单元,用于获取预设最大优先级和预设最小优先级;以及确定子单元,用于根据上述预设最大优先级、上述预设最小优先级、上述网卡队列数量和上述数据包优先级,从上述多个发送网卡队列中确定出上述对应的发送网卡队列。
本公开的又一个方面提供了一种数据包接收系统,其特征在于,上述系统包括:第三确定模块,用于响应于数据包接收信号,确定用于接收数据包的网卡,其中,上述网卡包括多个接收网卡队列;第四确定模块,用于确定上述多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级;以及读取模块,用于根据上述多个队列优先级,从上述多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
根据本公开的实施例,上述读取模块包括:第三确定单元,用于确定上述多个队列优先级中级别最高的队列优先级;判断单元,用于判断上述级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及处理单元,用于在上述级别最高的队列优先级对应的接收网卡队列中存在数据包的情况下,从上述级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。
根据本公开的实施例,上述系统还包括:判断模块,用于在上述级别最高的队列优先级对应的接收网卡队列中不存在数据包的情况下,继续判断上述下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
本公开的又一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,上述处理器执行上述计算机程序时用于实现如上任一项所述的方法的步骤。
本公开的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,上述计算机程序被处理器执行时用于实现如上任一项所述的方法的步骤。
本公开提供的数据包发送方法,在接收到数据包发送信号时,获取对应数据包的数据包优先级,并找到用于发送数据包的网卡,然后根据数据包优先级从该网卡的多个发送网卡队列中确定出对应的发送网卡队列,并将数据包发送到该发送网卡队列中,以使得该发送网卡队列能够将该数据包向外发送。由于本公开的实施例将数据包优先级与发送网卡队列关联起来,在服务器发送数据包时,可以根据数据包优先级映射到对应的发送网卡队列,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
本公开提供的数据包接收方法,在接收到数据包接收信号时,找到用于接收数据包的网卡,然后根据网卡中的每个接收网卡队列的队列优先级,从对应的接收网卡队列中读取数据包,由于队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级,因此在接收数据包时可以先从队列优先级高的接收网卡队列中读取数据包,然后再从队列优先级低的接收网卡队列中读取数据包,进而可以保证数据包优先级高的数据包可以被先行处理,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
附图说明
图1示意性示出了根据本公开实施例的数据包发送方法的流程图;
图2示意性示出了根据本公开实施例的数据包接收方法的流程图;
图3示意性示出了根据本公开实施例的QUIC协议栈和网卡多队列的映射关系图;
图4示意性示出了根据本公开实施例的数据包发送系统的框图;
图5示意性示出了根据本公开实施例的数据包接收系统的框图;以及
图6示意性示出了根据本公开实施例的适于实现数据包发送方法和/或数据包接收方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
考虑到现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。本公开提供的数据包发送方法,在接收到数据包发送信号时,获取对应数据包的数据包优先级,并找到用于发送数据包的网卡,然后根据数据包优先级从该网卡的多个发送网卡队列中确定出对应的发送网卡队列,并将数据包发送到该发送网卡队列中,以使得该发送网卡队列能够将该数据包向外发送。由于本公开的实施例将数据包优先级与发送网卡队列关联起来,在服务器发送数据包时,可以根据数据包优先级映射到对应的发送网卡队列,充分考虑了数据包的优先级顺序,提高了系统的响应性能。
图1示意性示出了根据本公开实施例的数据包发送方法的流程图。
如图1所示,该数据包发送方法可以包括步骤S101~步骤S104,其中:
步骤S101,响应于数据包发送信号,获取数据包的数据包优先级。
为了便于清晰理解,在介绍本公开的实施例之前,可以先行介绍本公开实施例的应用场景。应该理解,本公开实施例描述的应用场景仅仅作为一个示例,其并不具有限定性。例如,应用本公开的实施例的服务器需要向外发送数据包,服务器内部程序(例如QUIC(Quic UDP Internet Connections)协议栈)可以先将数据包发送到服务器的发送网卡队列上。此时可以通过本公开的实施例实现数据包的发送。
在本公开的实施例中,每个客户端与服务器之间可以建立一个连接,每个连接可以包括多路请求(请求又称为会话,又可以称为stream),每路请求可以对应有数据包。由于各路请求可以有不同的优先级,因此对应的数据包也可以有不同的优先级(又称为数据包优先级)。其中,数据包优先级可以存储在对应的stream的属性中。
例如,用户通过手机观看一个影片,手机可以向服务器发送多路请求,例如视频请求、音频请求,其中视频请求的优先级高于音频请求的优先级,则视频请求中的数据包的数据包优先级自然高于音频请求中的数据包的数据包优先级。并且,视频请求中的数据包的数据包优先级可以存储在视频请求的属性中,音频请求中的数据包的数据包优先级可以存储在音频请求的属性中。
其中,本公开实施例所述的数据包可以包括QUIC数据包和/或UDP(User DatagramProtocol)数据包。
步骤S102,确定用于发送数据包的网卡,其中,网卡包括多个发送网卡队列。
服务器内部可以包括一张或多张网卡,本公开的实施例可以确定出用于发送数据包的网卡,其中,该网卡中可以包括多个发送网卡队列。
步骤S103,根据数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。
根据本公开的实施例,每个发送网卡队列可能会被用于发送不同优先级的数据包,本公开的实施例可以根据数据包优先级,从多个发送网卡队列中找到能够发送该数据包的发送网卡队列。其中,每个发送网卡队列均具有队列优先级,其中,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级。
例如,网卡中发送网卡队列1、发送网卡队列2和发送网卡队列3,依次对应的队列优先级为队列优先级1、队列优先级2和队列优先级3,其中,队列优先级1<队列优先级2<队列优先级3。经过计算,发送网卡队列1用于发送数据包1和数据包2,其中,数据包1对应数据包优先级1,数据包2对应数据包优先级2,队列优先级2用于发送数据包3,其中,数据包3对应数据包优先级3。则数据包优先级1≤数据包优先级3,且数据包优先级2≤数据包优先级3。
根据本公开的实施例,根据数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列,可以包括:确定多个发送网卡队列的网卡队列数量;根据网卡队列数量和数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。其中,根据网卡队列数量和数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列,可以包括:获取预设最大优先级和预设最小优先级;根据预设最大优先级、预设最小优先级、网卡队列数量和数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。其中,预设最大优先级可以为预先设定级别最高的数据包优先级,预设最小优先级可以为预先设定级别最低的数据包优先级。
根据本公开的实施例,可以根据如下公式确定对应的发送网卡队列:
Q=ceil(Pr i/ceil((P max-P min+1)/K))
其中,Q表示对应的发送网卡队列的队列号,Pri表示数据包优先级,Pmax表示预设最大优先级,Pmin表示预设最小优先级,K表示多个发送网卡队列的网卡队列数量,ceil表示向上取整。
例如,结合上述示例,K=3,Pri=2,Pmax=5,Pmin=1,则Q=1,即对于数据包优先级2可以通过接收网卡队列1发送。
步骤S104,将数据包发送给对应的发送网卡队列。
在计算出对应的发送网卡队列的队列号之后,可以将数据包发送给该发送网卡队列,以使得该发送网卡队列将数据包向外发送。
本公开提供的数据包发送方法,在接收到数据包发送信号时,获取对应数据包的数据包优先级,并找到用于发送数据包的网卡,然后根据数据包优先级从该网卡的多个发送网卡队列中确定出对应的发送网卡队列,并将数据包发送到该发送网卡队列中,以使得该发送网卡队列能够将该数据包向外发送。由于本公开的实施例将数据包优先级与发送网卡队列关联起来,在服务器发送数据包时,可以根据数据包优先级映射到对应的发送网卡队列,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
考虑到现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。本公开提供的数据包接收方法,在接收到数据包接收信号时,找到用于接收数据包的网卡,然后根据网卡中的每个接收网卡队列的队列优先级,从对应的接收网卡队列中读取数据包,由于队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级,因此在接收数据包时可以先从队列优先级高的接收网卡队列中读取数据包,然后再从队列优先级低的接收网卡队列中读取数据包,进而可以保证数据包优先级高的数据包可以被先行处理,充分考虑了数据包的优先级顺序,提高了系统的响应性能。
图2示意性示出了根据本公开实施例的数据包接收方法的流程图。
如图2所示,该数据包接收方法可以包括步骤S201~步骤S203,其中:
步骤S201,响应于数据包接收信号,确定用于接收数据包的网卡,其中,网卡包括多个接收网卡队列。
为了便于清晰理解,在介绍本公开的实施例之前,可以先行介绍本公开实施例的应用场景。应该理解,本公开实施例描述的应用场景仅仅作为一个示例,其并不具有限定性。例如,应用本公开的实施例的服务器与客户端建立了连接,客户端向服务器发送了数据包,这些数据包的发送原则可以满足:优先级高的数据包由服务器中队列优先级高的接收网卡队列接收,优先级低的数据包由服务器中队列优先级低的接收网卡队列接收。这样,在服务器内部程序(例如QUIC协议栈)处理这些数据包时,需要从服务器的这些接收网卡队列上分别读取数据包,此时可以通过本公开的实施例实现数据包的接收。
在本公开的实施例中,网卡可以包括多个接收网卡队列,每个接收网卡队列均可以用于接收数据包。对于每个接收网卡队列,预先对其设定了队列优先级,并且队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
其中,本公开实施例所述的数据包可以包括QUIC数据包和/或UDP数据包。
步骤S202,确定多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级。
根据本公开的实施例,在找到用于接收数据包的网卡之后,可以进一步确定网卡中每一个接收网卡队列的队列优先级,然后执行步骤S203。
步骤S203,根据多个队列优先级,从多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
在本公开的实施例中,根据多个队列优先级,从多个接收网卡队列中读取数据包,包括:确定多个队列优先级中级别最高的队列优先级;判断级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及若级别最高的队列优先级对应的接收网卡队列中存在数据包,则从级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。若级别最高的队列优先级对应的接收网卡队列中不存在数据包,则继续判断下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
具体地,由于队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级,本公开的实施例为了能够优先处理数据包优先级比较高的数据包,可以先从队列优先级最高的接收网卡队列中查找是否有数据包,如果队列优先级最高的接收网卡队列中有数据包则读取这些数据包,并且继续判断下一级别的队列优先级的接收网卡队列中是否有数据包。如果队列优先级最高的接收网卡队列中没有数据包,则仍然继续判断下一级别的队列优先级的接收网卡队列中是否有数据包。
例如,网卡中有接收网卡队列1、接收网卡队列2和接收网卡队列3,其中,接收网卡队列1对应队列优先级1,接收网卡队列2对应队列优先级2,接收网卡队列3对应队列优先级3,且队列优先级1≤队列优先级2≤队列优先级3。在读取数据包时,可以先判断接收网卡队列1中是否有数据包,然后判断接收网卡队列2中是否有数据包,最后判断接收网卡队列3中是否有数据包。
本公开提供的数据包接收方法,在接收到数据包接收信号时,找到用于接收数据包的网卡,然后根据网卡中的每个接收网卡队列的队列优先级,从对应的接收网卡队列中读取数据包,由于队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级,因此在接收数据包时可以先从队列优先级高的接收网卡队列中读取数据包,然后再从队列优先级低的接收网卡队列中读取数据包,进而可以保证数据包优先级高的数据包可以被先行处理,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
图3示意性示出了根据本公开实施例的QUIC协议栈和网卡多队列的映射关系图。
如图3所示,QUIC Stack(又称为QUIC协议栈)可以被设置在服务器中,stream[1]可以用于表示第一路请求,该路请求的优先级为10;stream[2]可以用于表示第二路请求,该路请求的优先级为8;stream[n]可以用于表示第n路请求,该路请求的优先级为m。网卡中可以包括多个发送队列(又称为发送网卡队列),即发送队列[1]、发送队列[2]、…、发送队列[k];还可以包括多个接收队列(又称为接收网卡队列),即接收队列[1]、接收队列[2]、…、接收队列[k]。
在服务器需要向外发送数据包时,可以通过QUIC协议栈将数据包发送给对应的发送网卡队列,具体发送机制如上述实施例所述,在此不再赘述。从图中可以看出,对于优先级为10的第一路请求stream[1]中的数据包,可以由发送队列[2]进行发送;对于优先级为8的第二路请求stream[2]中的数据包,可以由发送队列[1]进行发送;…;对于优先级为m的第二路请求stream[n]中的数据包,可以由发送队列[k]进行发送。
在服务器需要接收外部系统发送过来的数据包时,可以通过QUIC协议栈从对应的接收网卡队列中读取数据包。从图中可以看出,对于优先级为10的第一路请求stream[1]中的数据包,被接收队列[2]接收;对于优先级为8的第二路请求stream[2]中的数据包,被接收队列[1]接收;…;对于优先级为m的第二路请求stream[n]中的数据包,被接收队列[k]接收。此时可以根据上述实施例中所述的接收机制,根据队列优先级,从对应的接收网卡队列中读取数据包。
通过本公开的实施例,由于采用QUIC协议栈处理数据包,可以直接从用户态读取数据包,而不必像现有技术那般通过网络协议层读取数据包,减少了数据包的多次拷贝;并且通过考虑到数据包的优先级,提升了高优先级数据包的响应效率,使得系统整体传输时间大大减少。
图4示意性示出了根据本公开实施例的数据包发送系统的框图。
如图4所示,该数据包发送系统400可以包括获取模块410、第一确定模块420、第二确定模块430和发送模块440,其中:
获取模块410用于响应于数据包发送信号,获取数据包的数据包优先级。
第一确定模块420用于确定用于发送数据包的网卡,其中,网卡包括多个发送网卡队列。
第二确定模块430用于根据数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。
发送模块440用于将数据包发送给对应的发送网卡队列。
本公开提供的数据包发送系统,在接收到数据包发送信号时,获取对应数据包的数据包优先级,并找到用于发送数据包的网卡,然后根据数据包优先级从该网卡的多个发送网卡队列中确定出对应的发送网卡队列,并将数据包发送到该发送网卡队列中,以使得该发送网卡队列能够将该数据包向外发送。由于本公开的实施例将数据包优先级与发送网卡队列关联起来,在服务器发送数据包时,可以根据数据包优先级映射到对应的发送网卡队列,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
作为一种可选的实施例,每个发送网卡队列均具有队列优先级,其中,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级。
作为一种可选的实施例,第二确定模块可以包括:第一确定单元,用于确定多个发送网卡队列的网卡队列数量;以及第二确定单元,用于根据网卡队列数量和数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。
作为一种可选的实施例,第二确定单元可以包括:获取子单元,用于获取预设最大优先级和预设最小优先级;以及确定子单元,用于根据预设最大优先级、预设最小优先级、网卡队列数量和数据包优先级,从多个发送网卡队列中确定出对应的发送网卡队列。
图5示意性示出了根据本公开实施例的数据包接收系统的框图。
如图5所示,该数据包接收系统500可以包括第三确定模块510、第四确定模块520和读取模块530,其中:
第三确定模块510用于响应于数据包接收信号,确定用于接收数据包的网卡,其中,网卡包括多个接收网卡队列。
第四确定模块520用于确定多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级。
读取模块530用于根据多个队列优先级,从多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
本公开提供的数据包接收系统,在接收到数据包接收信号时,找到用于接收数据包的网卡,然后根据网卡中的每个接收网卡队列的队列优先级,从对应的接收网卡队列中读取数据包,由于队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级,因此在接收数据包时可以先从队列优先级高的接收网卡队列中读取数据包,然后再从队列优先级低的接收网卡队列中读取数据包,进而可以保证数据包优先级高的数据包可以被先行处理,充分考虑了数据包的优先级顺序,提高了系统的响应性能,解决了现有技术中无法根据数据包的优先级及时处理该数据包导致系统响应性能过差的缺陷。
作为一种可选的实施例,读取模块可以包括:第三确定单元,用于确定多个队列优先级中级别最高的队列优先级;判断单元,用于判断级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及处理单元,用于在级别最高的队列优先级对应的接收网卡队列中存在数据包的情况下,从级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。
作为一种可选的实施例,该数据包接收系统还可以包括:判断模块,用于在级别最高的队列优先级对应的接收网卡队列中不存在数据包的情况下,继续判断下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
图6示意性示出了根据本公开实施例的适于实现数据包发送方法和/或数据包接收方法的计算机设备的硬件架构示意图。本实施例中,计算机设备600是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,计算机设备600至少包括但不限于:可通过系统总线相互通信连接存储器610、处理器620、网络接口630。其中:
存储器610至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器610可以是计算机设备600的内部存储模块,例如该计算机设备600的硬盘或内存。在另一些实施例中,存储器610也可以是计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器610还可以既包括计算机设备600的内部存储模块也包括其外部存储设备。本实施例中,存储器610通常用于存储安装于计算机设备600的操作系统和各类应用软件,例如数据包发送方法和/或数据包接收方法的程序代码等。此外,存储器610还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器620在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器620通常用于控制计算机设备600的总体操作,例如执行与计算机设备600进行数据交互或者通信相关的控制和处理等。本实施例中,处理器620用于运行存储器610中存储的程序代码或者处理数据。
网络接口630可包括无线网络接口或有线网络接口,该网络接口630通常用于在计算机设备600与其他计算机设备之间建立通信连接。例如,网络接口630用于通过网络将计算机设备600与外部终端相连,在计算机设备600与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图6仅示出了具有部件610-630的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器610中的数据包发送方法和/或数据包接收方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器620)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的数据包发送方法和/或数据包接收方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的数据包发送方法和/或数据包接收方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据包发送方法,其特征在于,所述方法包括:
响应于数据包发送信号,获取数据包的数据包优先级;
确定用于发送所述数据包的网卡,其中,所述网卡包括多个发送网卡队列;
根据所述数据包优先级,从所述多个发送网卡队列中确定出对应的发送网卡队列,其中,每个发送网卡队列均具有队列优先级,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级;以及
将所述数据包发送给所述对应的发送网卡队列;
所述根据所述数据包优先级,从所述多个发送网卡队列中确定出对应的发送网卡队列,包括:
确定所述多个发送网卡队列的网卡队列数量;以及
根据所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列;
所述根据所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列,包括:
获取预设最大优先级和预设最小优先级;以及
根据所述预设最大优先级、所述预设最小优先级、所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列。
2.一种数据包接收方法,其特征在于,所述方法包括:
响应于数据包接收信号,确定用于接收数据包的网卡,其中,所述网卡包括多个接收网卡队列及多个发送网卡队列,所述数据包具有数据包优先级,所述数据包由对应的发送网卡队列发送,所述对应的发送网卡队列的确定方式如下:确所述多个发送网卡队列的网卡队列数量;获取预设最大优先级和预设最小优先级;以及根据所述预设最大优先级、所述预设最小优先级、所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列;
确定所述多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级;以及
根据所述多个队列优先级,从所述多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个队列优先级,从所述多个接收网卡队列中读取数据包,包括:
确定所述多个队列优先级中级别最高的队列优先级;
判断所述级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及
若所述级别最高的队列优先级对应的接收网卡队列中存在数据包,则从所述级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述级别最高的队列优先级对应的接收网卡队列中不存在数据包,则继续判断所述下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
5.一种数据包发送系统,其特征在于,所述系统包括:
获取模块,用于响应于数据包发送信号,获取数据包的数据包优先级;
第一确定模块,用于确定用于发送所述数据包的网卡,其中,所述网卡包括多个发送网卡队列;
第二确定模块,用于根据所述数据包优先级,从所述多个发送网卡队列中确定出对应的发送网卡队列,其中,每个发送网卡队列均具有队列优先级,数据包优先级高的数据包对应的发送网卡队列的队列优先级大于等于数据包优先级低的数据包对应的发送网卡队列的队列优先级;以及
发送模块,用于将所述数据包发送给所述对应的发送网卡队列;
所述第二确定模块,还用于确定所述多个发送网卡队列的网卡队列数量;以及根据所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列;
所述第二确定模块,还用于获取预设最大优先级和预设最小优先级;以及用于根据所述预设最大优先级、所述预设最小优先级、所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列。
6.一种数据包接收系统,其特征在于,所述系统包括:
第三确定模块,用于响应于数据包接收信号,确定用于接收数据包的网卡,其中,所述网卡包括多个接收网卡队列及多个发送网卡队列,所述数据包具有数据包优先级,所述数据包由对应的发送网卡队列发送,所述对应的发送网卡队列的确定方式如下:确定所述多个发送网卡队列的网卡队列数量;获取预设最大优先级和预设最小优先级;以及根据所述预设最大优先级、所述预设最小优先级、所述网卡队列数量和所述数据包优先级,从所述多个发送网卡队列中确定出所述对应的发送网卡队列;
第四确定模块,用于确定所述多个接收网卡队列中各个接收网卡队列的队列优先级,得到多个队列优先级;以及
读取模块,用于根据所述多个队列优先级,从所述多个接收网卡队列中读取数据包,其中,队列优先级高的接收网卡队列所接收的数据包的数据包优先级大于等于队列优先级低的接收网卡队列所接收的数据包的数据包优先级。
7.根据权利要求6所述的系统,其特征在于,所述读取模块包括:
第三确定单元,用于确定所述多个队列优先级中级别最高的队列优先级;
判断单元,用于判断所述级别最高的队列优先级对应的接收网卡队列中是否存在数据包;以及
处理单元,用于在所述级别最高的队列优先级对应的接收网卡队列中存在数据包的情况下,从所述级别最高的队列优先级对应的接收网卡队列中读取数据包,并继续判断下一级别的队列优先级对应的接收网卡队列中是否存在其他数据包。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
判断模块,用于在所述级别最高的队列优先级对应的接收网卡队列中不存在数据包的情况下,继续判断所述下一级别的队列优先级对应的接收网卡队列中是否存在数据包。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1所述方法的步骤和/或权利要求2至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1所述方法的步骤和/或权利要求2至4任一项所述方法的步骤。
CN201910074739.XA 2019-01-25 2019-01-25 数据包发送方法、数据包接收方法、系统、设备及介质 Active CN111490947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910074739.XA CN111490947B (zh) 2019-01-25 2019-01-25 数据包发送方法、数据包接收方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910074739.XA CN111490947B (zh) 2019-01-25 2019-01-25 数据包发送方法、数据包接收方法、系统、设备及介质

Publications (2)

Publication Number Publication Date
CN111490947A CN111490947A (zh) 2020-08-04
CN111490947B true CN111490947B (zh) 2024-01-23

Family

ID=71812120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910074739.XA Active CN111490947B (zh) 2019-01-25 2019-01-25 数据包发送方法、数据包接收方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN111490947B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979021B (zh) * 2021-02-27 2024-05-14 华为技术有限公司 数据处理方法及电子设备
CN113783942B (zh) * 2021-08-24 2023-01-31 中国科学院计算技术研究所 基于优先分级队列的mpquic数据包快速传输方法和系统
CN114301564A (zh) * 2021-12-28 2022-04-08 北京和利时系统工程有限公司 一种tsn节点、节点的时间确定性方法、装置和介质
CN116360992B (zh) * 2023-03-30 2023-11-17 郑州地铁集团有限公司运营分公司 基于容器化微服务的轨道交通供电智能运维方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209676A (zh) * 2016-06-30 2016-12-07 广东睿江云计算股份有限公司 基于多设备的云主机系统的数据处理方法及装置
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡系统
CN108023829A (zh) * 2017-11-14 2018-05-11 东软集团股份有限公司 报文处理方法及装置、存储介质、电子设备
CN108124003A (zh) * 2017-12-11 2018-06-05 中盈优创资讯科技有限公司 网络管理设备连接处理方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107634915A (zh) * 2017-08-25 2018-01-26 中国科学院计算机网络信息中心 数据传输方法、装置及储存介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209676A (zh) * 2016-06-30 2016-12-07 广东睿江云计算股份有限公司 基于多设备的云主机系统的数据处理方法及装置
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡系统
CN108023829A (zh) * 2017-11-14 2018-05-11 东软集团股份有限公司 报文处理方法及装置、存储介质、电子设备
CN108124003A (zh) * 2017-12-11 2018-06-05 中盈优创资讯科技有限公司 网络管理设备连接处理方法、装置及系统

Also Published As

Publication number Publication date
CN111490947A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111490947B (zh) 数据包发送方法、数据包接收方法、系统、设备及介质
US9706371B2 (en) Push notification middleware
CN111937364A (zh) 无线网络系统中处理数据路径创建的方法和系统
US9780994B2 (en) Notification normalization
CN111490963B (zh) 基于quic协议栈的数据处理方法、系统、设备及存储介质
US20230161541A1 (en) Screen projection method and system
US11316930B2 (en) Connection control method and device
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
US20150201436A1 (en) Method of mobile terminal internal communications
CN110365598B (zh) 心跳消息发送的方法、装置、服务器、终端及存储介质
US20100332687A1 (en) METHOD AND APPARATUS FOR RESTRICTING THE EXECUTION OF OPEN SERVICES GATEWAY INITIATIVE (OSGi) LIFE CYCLE COMMANDS
CN108540273B (zh) 一种数据包重传的方法和装置
CN114158104B (zh) 网络选择方法、装置、终端及存储介质
CN111835801A (zh) 文件下载方法、装置、服务器、边缘设备、终端及介质
CN112436982B (zh) 一种网络流量自动混跑测试方法、系统、终端及存储介质
CN115344350A (zh) 云服务系统的节点设备及资源处理方法
US20110270970A1 (en) Network device testing system and method
KR20200090259A (ko) 데이터 송신 방법, 장치, 컴퓨터 장치 및 저장 매체
CN114338477A (zh) 一种通信链路监控方法、装置、设备及存储介质
CN111527735A (zh) 一种波束选取方法、终端设备及计算机存储介质
US11362890B2 (en) System management device, system management method, program, and information processing system
US9003241B2 (en) Reporting errors on serial interfaces to application layers for flexible error handling approach selection
CN111338642A (zh) 确定应用下载途径的方法、设备、终端及存储介质
CN113891174B (zh) 一种直播视频的带宽统计方法和系统
CN116938672B (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
GR01 Patent grant
GR01 Patent grant