CN109428819B - 传输数据的方法、网络组件、设备和计算机存储介质 - Google Patents

传输数据的方法、网络组件、设备和计算机存储介质 Download PDF

Info

Publication number
CN109428819B
CN109428819B CN201710752494.2A CN201710752494A CN109428819B CN 109428819 B CN109428819 B CN 109428819B CN 201710752494 A CN201710752494 A CN 201710752494A CN 109428819 B CN109428819 B CN 109428819B
Authority
CN
China
Prior art keywords
network component
network
data message
destination address
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
Application number
CN201710752494.2A
Other languages
English (en)
Other versions
CN109428819A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710752494.2A priority Critical patent/CN109428819B/zh
Publication of CN109428819A publication Critical patent/CN109428819A/zh
Application granted granted Critical
Publication of CN109428819B publication Critical patent/CN109428819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Abstract

一种传输数据的方法、网络组件、设备和计算机存储介质包括:网络组件获取数据报文目的地址;所述网络组件根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的地址,所述对应关系存储在所述网络组件中;所述网络组件基于所述网络设备的位置和所述目的地址封装所述数据报文,发送封装后的数据报文。采用本发明实施例后,能够减少进行查询的内存开销,降低CPU的开销。

Description

传输数据的方法、网络组件、设备和计算机存储介质
技术领域
本发明涉及计算机领域,尤其涉及一种传输数据的方法、网络组件、传输数据的设备和计算机存储介质。
背景技术
随着互联网的发展,局域网和广域网技术得到了广泛的推广和应用。数据交换技术逐渐发展到较成熟的三层交换。
第三层交换工作在开放式系统互联(Open System Interconnection,OSI)七层网络模型中的第三层即网络层,是利用第三层协议中的互联网协议(Internet Protocol,IP)包的报头信息来对后续数据业务流进行标记,具有同一标记的业务流的后续报文被交换到第二层数据链路层,从而打通源IP地址和目的IP地址之间的一条通路。这条通路经过第二层链路层。有了这条通路,三层交换机就没有必要每次将接收到的数据包进行拆包来判断路由,而是直接转发数据包,将数据流进行交换。
在业务层面基本只关心四层即网络层以上的逻辑,在高性能通信中,在链路层进行查询需要占用内存开销,且在链路层收发报文也需要CPU的开销。
发明内容
本发明实施例提供了一种传输数据的方法,能够减少进行查询的内存开销,降低CPU的开销。
本发明实施例还提供了一种网络组件,能够减少进行查询的内存开销,降低CPU的开销。
本发明实施例还提供了一种传输数据的设备,能够减少进行查询的内存开销,降低CPU的开销。
本发明实施例还提供了一种计算机存储介质,能够减少进行查询的内存开销,降低CPU的开销。
一种传输数据的方法,包括:
网络组件获取数据报文的目的地址;
所述网络组件根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,所述对应关系存储在所述网络组件中;
所述网络组件基于网络设备的位置和所述目的地址封装所述数据报文,发送封装后的数据报文。
所述目的地址与网络设备的位置的对应关系包括路由表和地址解析协议ARP表;
所述路由表是通过所述网络组件的驱动提供的接口配置的;
所述ARP表是通过所述网络组件的驱动提供的接口配置的。
所述方法还包括:
通过所述网络组件的驱动提供的接口动态调整所述对应关系。
所述网络组件获取数据报文的目的地址之前,还包括:
所述网络组件依据标识,确定由所述网络组件封装所述数据报文。
所述发送所述IP报文之后,还包括:
所述网络组件处理ARP报文和/或依据所述目的地址转发所述封装后的数据报文。
所述方法还包括:
需要重复发送基于所述网络设备的位置和所述目的地址封装的所述数据报文时,网络组件再次发送所述封装后的数据报文。
所述网络组件包括网卡。
一种网络组件,所述网络组件包括:
接口模块,用于获取数据报文目的地址;
控制模块,用于根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,所述对应关系存储在所述网络组件中;
填写模块,用于基于所述网络设备的位置和所述目的地址封装所述数据报文;
所述接口模块,还用于发送封装后的数据报文。
所述目的地址与网络设备的位置的对应关系包括路由表和地址解析协议ARP表;
所述路由表是通过所述网络组件的驱动提供的接口配置的;
所述ARP表是通过所述网络组件的驱动提供的接口配置的。
所述网络组件还包括调整模块,所述调整模块,用于通过所述网络组件的驱动提供的接口动态调整所述对应关系。
所述网络组件还包括确定模块,用于依据标识,确定由所述网络组件确定封装所述数据报文。
所述网络组件还包括处理模块,用于处理ARP报文和/或依据所述目的地址转发所述封装后的数据报文。
所述接口模块,具体用于需要重复发送基于所述网络设备的位置和所述目的地址封装的所述数据报文时,再次发送所述封装后的数据报文。
所述网络组件包括网卡。
一种传输数据的设备,
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以执行以上所述传输数据的方法。
一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现以上所述传输数据的方法。
从上述技术方案中可以看出,网络组件获取数据报文的目的地址,根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,所述对应关系存储在所述网络组件中;所述网络组件基于所述网络设备的位置和所述目的地址封装所述数据报文,发送封装后的数据报文。网络组件利用存储在自身硬件中的对应关系封装数据报文,无需通过主机进行查询,因此能够减少进行查询的内存开销,降低收发报文的CPU的开销。
附图说明
从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。
图1是本发明实施例中传输数据的方法流程示意图;
图2是本发明实施例中发送数据的流程示意图;
图3是本发明实施例中接收数据的流程示意图;
图4是本发明实施例中网络组件的结构示意图;
图5是本发明另一个实施例中网络组件的结构示意图;
图6是本发明再一个实施例中网络组件的结构示意图;
图7是本发明又一个实施例中网络组件的结构示意图;
图8是本发明实施例的传输数据的方法和网络组件的计算设备的示例性硬件架构的结构图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
在本发明实施例中,网络组件获取数据报文的目的地址,按照存储在自身硬件中的目的地址与网络设备的位置的对应关系确定对应的网络设备的位置。基于网络设备的位置和目的地址封装数据报文,发送封装后的数据报文。网络组件利用存储在自身硬件中的目的地址与网络设备的位置的对应关系封装数据报文,无需通过主机进行查询,因此能够减少进行查询的内存开销,降低CPU的开销。
参见图1,图1是本发明实施例中传输数据的方法流程示意图,传输数据的方法应用于网络组件中,具体包括:
S101、网络组件获取数据报文的目的地址。
网络组件可以获取数据报文的目的地址,其中,目的地址可以是目的IP地址。网络组件接收数据报文,该数据报文可以是通过传输控制协议(Transmission ControlProtocol,TCP)连接发送至网络组件,也可以是通过用户数据报协议(User DatagramProtocol,UDP)连接发送至网络组件。
数据报文中包括目的IP地址,还可以包括源IP地址。源IP地址就是发出该数据报文的主机的IP地址,它是数据的来源;目的IP地址就是数据报文最终要到达的主机的IP地址。在二层/三层转发过程中,源IP地址和目的IP地址是固定不变的。
S102、网络组件根据数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,对应关系存储在网络组件中。
同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道网络设备的位置,作为一个示例:网络设备的位置可以是目的主机的媒体访问控制(MAC)地址。
网络组件根据数据报文的目的地址即目的IP地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置。也就是说,按照IP地址与网络设备的位置的对应关系确定对应的网络设备的位置。IP地址与网络设备的位置的对应关系可以包括路由表和ARP表。
而在TCP/IP协议栈中,网络层和传输层只关心目的主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址,那么则需要根据目的主机的IP地址,获得其对应的MAC地址。也就是说,网络组件需要根据数据报文的目的IP地址,获得对应的MAC地址。
网络组件可以根据数据报文的目的IP地址,判断发送数据报文的源主机与接收数据报文的目的主机是否在同一个局域网中。
具体来说,网络组件可以基于路由表和目的IP地址进行最长前缀匹配算法查找下一跳信息,以确定源主机与目的主机是同一个局域网中,或者需要经过路由到不同的网段。
一种情况,源主机与目的主机在同一个局域网中,可以直接根据目的IP地址查找ARP表获得目的IP地址对应的MAC地址。
另一种情况,源主机与目的主机需要经过路由到不同的网段,依据下一跳信息确定的路由的IP地址,根据路由的IP地址查找ARP表获得目的IP地址对应的MAC地址。
需要说明的是,在本发明实施例中路由表和ARP表均存储在网络组件中,网络组件是一个硬件设备。换言之,路由表和ARP表均存储在硬件设备中。即,IP地址与网络设备的位置的对应关系存储在网络组件中。
网络组件查询路由表和ARP表不会涉及调用主机内存和CPU,显然能够减少查询路由表和ARP表的内存开销。而在查询路由表和ARP表中涉及收发相关报文,由于是网络组件硬件自身收发相关报文,不需要主机的CPU,那么就可以降低主机中CPU的开销。
S103、网络组件基于网络设备的位置和目的地址封装数据报文,发送封装后的数据报文。
网络组件根据数据报文的目的IP地址,找到对应的MAC地址后,可以进行报文的封装。作为一个示例,网络组件可以基于MAC地址和目的IP地址封装数据报文即填写数据报文,封装后的数据报文即IP报文,发送IP报文。
本发明实施例中,目的地址与网络设备的位置的对应关系存储在网络组件中,网络组件根据目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的地址,基于网络设备的地址和目的地址封装数据报文,发送封装后的数据报文。网络组件在查询目的地址与网络设备的位置的对应关系时,由于不会涉及调用主机内存和CPU,因此减少进行查询的内存开销,降低CPU的开销。
在本发明的一个实施例中,目的地址与网络设备的位置的对应关系包括路由表和ARP表。路由表和ARP表均存储在网络组件中。对于路由表,可以通过网络组件的驱动提供的接口配置路由表。对于ARP表,可以通过网络组件的驱动提供的接口配置ARP表。
也就是说,可以通过网络组件的驱动提供的接口直接配置目的地址与网络设备的位置的对应关系即路由表和ARP表,在配置路由表和/或ARP表的过程中,由于是在网络组件自身配置,不需要占用主机的内存和CPU。
在本发明的一个实施例中,还可以通过网络组件的驱动提供的接口动态调整目的地址与网络设备的位置的对应关系。也就说,可以通过网络组件的驱动提供的接口动态调整路由表和/或ARP表。
路由表存储到达特定网络终端的路径信息。ARP表存储IP地址与MAC地址的对应关系。
路由表和ARP表均会更新,那么对于存储在网络组件中的路由表和ARP表,可以通过网络组件的驱动提供的接口动态调整路由表和/或ARP表。以能够依据动态调整后的路由表查询到正确的下一跳信息,依据动态调整后的ARP表查询到正确的MAC地址。
在本发明的一个实施例中,可以设置标识,网络组件依据标识,就可以确定由网络组件封装数据报文。作为一个示例,可以在数据报文中设置标识,网络组件可以依据数据报文中的标识,确定由网络组件封装数据报文,即由网络组件基于存储在自身的路由表和ARP表封装数据报文。数据报文中没有标识,则可以依据主机中的路由表和ARP表封装数据报文。
也就是说,可以依据数据报文中是否存在标识,确定是依据存储在网络组件中的路由表和ARP表封装数据报文,还是依据主机中的路由表和ARP表封装数据报文。
在本发明实施例中,主机的内存和CPU资源紧张,可以在数据报文中添加标识,依据网络组件中的路由表和ARP表封装数据报文;主机的内存和CPU资源丰富,数据报文中未添加标识,则可以依据主机中的路由表和ARP表封装数据报文。
在本发明的一个实施例中,网络组件处理ARP报文,ARP报文可以包括ARP请求,或ARP应答。
在一个示例中,网络组件发送ARP请求将IP地址与MAC地址的对应关系存入本地ARP表。然后,网络组件发送ARP响应。以便及时更新本地ARP表。
网络组件依据目的地址转发封装后的数据报文。在一个示例中,网络组件可以依据目的IP地址,以将数据报文转发至目的IP地址对应的主机。
在本发明的一个实施例中,需要重复发送基于网络设备的位置和目的地址封装的数据报文时,网络组件不需要再次依据目的地址确定网络设备的位置,封装数据报文。而是再次发送之前封装后的数据报文。
在一个示例中,在TCP重传的过程中,网络组件不需要再次依据目的地址确定网络设备的位置,封装数据报文。而是再次发送之前封装后的数据报文,从而避免反复封装数据报文。
在本发明的一个实施例中,网卡是工作在链路层的网络组件,是局域网中连接主机和传输介质的接口。在本发明实施例中,网络组件可以是网卡。
作为一个示例,主机发送包括目的IP地址的数据报文至网卡,由网卡依据存储在网卡中的路由表和ARP表找到对应的MAC地址,网卡基于MAC地址和目的IP地址填写数据报文后获得IP报文,并直接发送IP报文。显然,上述处理过程并没有涉及到主机中的内存和CPU,因此可以减少查询路由表和ARP表的内存开销,降低CPU的开销。
下面以网络组件发送数据举例说明本发明实施例的技术方案,参见图2是本发明实施例中发送数据的流程示意图。
S201、通过TCP连接接收数据报文。
通过TCP连接接收源主机发送的数据报文,数据报文中包括目的IP地址。
S202、判断是否采用网络组件存储的路由表和ARP表填写数据报文。
可以依据数据报文是否存在标识,判断是否采用网络组件存储的路由表和ARP表填写数据报文。作为一个示例,数据报文中存在标识,则确定采用网络组件存储的路由表和ARP表填写数据报文,即执行步骤S204;数据报文中不存在标识,则由源主机采用主机中存储的路由表和ARP表填写数据报文,即执行步骤S203。
S203、由源主机采用源主机中存储的路由表和ARP表填写数据报文。
S204、确定采用网络组件存储的路由表和ARP表填写数据报文。
S201、S202、S203和S204均可以在软件环境中执行,作为一个示例S201、S202、S203和S204可以在源主机的软件环境中执行。
S205、网络组件确定硬件开关已打开。
网络组件中的硬件开关用于确定是否采用网络组件存储的路由表和ARP表填写数据报文。
作为一个示例,网络组件中的硬件开关打开,则确定采用网络组件存储的路由表和ARP表填写数据报文;网络组件中的硬件开关未打开,则确定不采用网络组件存储的路由表和ARP表填写数据报文。
S206、网络组件采用网络组件存储的路由表和ARP表填写数据报文。
S207、网络组件发送IP报文。
S205、S206和S207均可以网络组件的硬件中执行。作为一个示例S205、S206和S207可以在网卡的硬件中执行。
在本发明实施例中,网络组件是独立于主机的硬件设备,作为一个示例,网络组件可以是网卡。源主机可以直接向网络组件发送数据报文,在确定数据报文由网络组件填写,则网络组件采用网络组件存储的路由表和ARP表填写数据报文。由于查询路由表和ARP表均不需要调用主机内存和CPU,因此减少了查询路由表和ARP表的内存开销,降低CPU的开销。
下面以网络组件接收数据举例说明本发明实施例的技术方案,图3是本发明实施例中接收数据的流程示意图。
S301、网络组件通过TCP连接接收数据报文。
网络组件通过TCP连接接收源主机发送的数据报文,数据报文中包括目的IP地址。
S302、网络组件确定硬件开关已打开。
网络组件中的硬件开关用于确定是否采用网络组件存储的路由表和ARP表填写数据报文。
作为一个示例,网络组件中的硬件开关打开,则确定采用网络组件存储的路由表和ARP表填写数据报文,即执行S303。网络组件中的硬件开关未打开,则确定不采用网络组件存储的路由表和ARP表填写数据报文,直接向目的主机发送数据报文,执行S309。
S303、网络组件采用网络组件存储的路由表和ARP表填写数据报文。
S304、网络组件判断是否需要处理ARP报文。
网络组件判断需要处理ARP报文,则执行S305;网络组件判断不需要处理ARP报文,则执行S306。
S305、网络组件处理ARP报文。
S306、网络组件判断是否转发数据报文。
网络组件依据目的IP地址判断需要转发数据报文,则执行S307;网络组件依据目的IP地址判断不需要转发数据报文,则执行S308。
S307、网络组件依据目的IP地址转发IP报文。
S308、网络组件向目的主机发送IP报文。
S309、由目的主机采用目的主机中存储的路由表和ARP表填写数据报文。
S301至S308均可以网络组件的硬件中执行。作为一个示例S301至S308均可以在网卡的硬件中执行。
S309可以在目的主机的软件环境中执行。
在本发明实施例中,网络组件是独立于主机的硬件设备,作为一个示例,网络组件可以是网卡。网络组件接收到数据报文,确定数据报文由网络组件填写,则网络组件采用网络组件存储的路由表和ARP表填写数据报文。由于查询路由表和ARP表均不需要调用主机内存和CPU,因此减少了查询路由表和ARP表的内存开销和CPU开销。此外,处理ARP报文和转发数据报文均在网络组件的硬件中执行,无需涉及目的主机的CPU,则降低收发报文的CPU的开销。
参见图4,图4是本发明实施例中网络组件的结构示意图,具体包括:
接口模块401,用于获取数据报文的目的地址,还用于发送封装后的数据报文;
可以通过数据报文获取目的地址,其中,目的地址可以是目的IP地址。数据报文可以是通过TCP连接发送至网络组件,也可以是通过UDP连接发送至网络组件。
控制模块402,用于根据数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,对应关系存储在网络组件中。
同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道网络设备的位置,作为一个示例:网络设备的位置可以是目的主机的MAC地址。
网络组件根据数据报文的目的地址即目的IP地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置。也就是说,按照IP地址与网络设备的位置的对应关系确定对应的网络设备的位置。IP地址与网络设备的位置的对应关系可以包括路由表和ARP表。
而在TCP/IP协议栈中,网络层和传输层只关心目的主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址,那么则需要根据目的主机的IP地址,获得其对应的MAC地址。也就是说,网络组件需要根据数据报文的目的IP地址,获得对应的MAC地址。
控制模块402可以根据数据报文的目的IP地址,判断发送数据报文的源主机与接收数据报文的目的主机是否在同一个局域网中。
具体来说,控制模块402可以基于路由表和目的IP地址进行最长前缀匹配算法查找下一跳信息,以确定源主机与目的主机是同一个局域网中,或者需要经过路由到不同的网段。
一种情况,源主机与目的主机在同一个局域网中,可以直接根据目的IP地址查找ARP表获得目的IP地址对应的MAC地址。
另一种情况,源主机与目的主机需要经过路由到不同的网段,依据下一跳信息确定的路由的IP地址,根据路由的IP地址查找ARP表获得目的IP地址对应的MAC地址。
需要说明的是,在本发明实施例中路由表和ARP表均存储在网络组件中,网络组件是一个硬件设备。换言之,路由表和ARP表均存储在硬件设备中。即,IP地址与网络设备的位置的对应关系存储在网络组件中。
控制模块402查询路由表和ARP表不会涉及调用主机内存和CPU,显然能够减少查询路由表和ARP表的内存开销。而在查询路由表和ARP表中涉及收发相关报文,由于是硬件自身收发相关报文,不需要主机的CPU,那么就可以降低主机中CPU的开销。
填写模块403,用于基于网络设备的位置和目的地址封装数据报文。
填写模块403根据数据报文的目的IP地址,找到对应的MAC地址后,可以进行报文的封装。作为一个示例,填写模块403可以基于MAC地址和目的IP地址封装数据报文即填写数据报文,封装后的数据报文即IP报文。
本发明实施例中,目的地址与网络设备的位置的对应关系存储在网络组件中,控制模块402根据目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的地址,填写模块403基于网络设备的地址和目的地址封装数据报文,接口模块401发送封装后的数据报文。在查询目的地址与网络设备的位置的对应关系时,由于不会涉及调用主机内存和CPU,因此减少进行查询的内存开销,降低CPU的开销。
在本发明的一个实施例中,目的地址与网络设备的位置的对应关系包括路由表和ARP表。路由表和ARP表均存储在网络组件中。对于路由表,可以通过网络组件的驱动提供的接口配置路由表。对于ARP表,可以通过网络组件的驱动提供的接口配置ARP表。
也就是说,可以通过网络组件的驱动提供的接口直接配置目的地址与网络设备的位置的对应关系即路由表和ARP表,在配置路由表和/或ARP表的过程中,由于是在网络组件本身配置,不需要占用主机的内存和CPU。
在本发明的一个实施例中,参见图5,图5是本发明另一个实施例中网络组件的结构示意图,在图4的基础上增加调整模块404,用于通过网络组件的驱动提供的接口动态调整目的地址与网络设备的位置的对应关系,即可以通过网络组件的驱动提供的接口动态调整路由表和/或ARP表。
路由表存储到达特定网络终端的路径信息。ARP表存储IP地址与MAC地址的对应关系。
路由表和ARP表均会更新,那么对于存储在网络组件中的路由表和ARP表,调整模块404可以通过网络组件的驱动提供的接口动态调整路由表和/或ARP表。以能够依据动态调整后的路由表查询到正确的下一跳信息,依据动态调整后的ARP表查询到正确的MAC地址。
在本发明的一个实施例中,参见图6,图6是本发明再一个实施例中网络组件的结构示意图,在图4的基础上增加确定模块405,用于依据标识,确定由网络组件封装数据报文。
作为一个示例,可以在数据报文中设置标识,确定模块405可以依据数据报文中的标识,确定由网络组件封装数据报文,即基于存储在网络组件的路由表和ARP表封装数据报文。数据报文中没有标识,则可以依据主机中的路由表和ARP表封装数据报文。
也就是说,可以依据数据报文中是否存在标识,确定是依据存储在网络组件中的路由表和ARP表封装数据报文,还是依据主机中的路由表和ARP表封装数据报文。
在本发明的一个实施例中,参见图7,图7是本发明又一个实施例中网络组件的结构示意图,在图4的基础上增加处理模块406,用于处理ARP报文和/或依据目的地址转发封装后的数据报文。
处理模块406处理ARP报文,ARP报文可以包括ARP请求,或ARP应答。
在一个示例中,处理模块406发送ARP请求将IP地址与MAC地址的对应关系存入本地ARP表。然后,处理模块406发送ARP响应。以便及时更新本地ARP表。
处理模块406依据目的地址转发封装数据报文。在一个示例中,处理模块406可以依据目的IP地址,以将数据报文转发至目的IP地址对应的主机。
在本发明的一个实施例中,需要重复发送基于所述网络设备的位置和所述目的地址封装的数据报文时,接口模块401不需要再次依据目的地址确定网络设备的位置,封装数据报文。而是再次发送之前封装后的数据报文。
在一个示例中,在TCP重传的过程中,接口模块401不需要再次依据目的地址确定网络设备的位置,封装数据报文。而是再次发送之前封装后的数据报文,从而避免反复封装数据报文。
在本发明的一个实施例中,网卡是工作在链路层的网络组件,是局域网中连接主机和传输介质的接口。在本发明实施例中,网络组件可以是网卡。
作为一个示例,主机发送包括目的IP地址的数据报文至网卡,由网卡依据存储在网卡中的路由表和ARP表找到对应的MAC地址,网卡基于MAC地址和目的IP地址填写数据报文后获得IP报文,并直接发送IP报文。显然,上述处理过程并没有涉及到主机中的内存和CPU,因此可以减少查询路由表和ARP表的内存开销,降低CPU的开销。
图8是示出能够实现根据本发明实施例的传输数据的方法和网络组件的计算设备的示例性硬件架构的结构图。
如图8所示,计算设备800包括输入设备801、输入接口802、中央处理器803、存储器804、输出接口805、以及输出设备806。其中,输入接口802、中央处理器803、存储器804、以及输出接口805通过总线810相互连接,输入设备801和输出设备806分别通过输入接口802和输出接口805与总线810连接,进而与计算设备800的其他组件连接。
具体地,输入设备801接收来自外部的输入信息,并通过输入接口802将输入信息传送到中央处理器803;中央处理器803基于存储器804中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器804中,然后通过输出接口805将输出信息传送到输出设备806;输出设备806将输出信息输出到计算设备800的外部供用户使用。
也就是说,图8所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1至图7描述的传输数据的方法和网络组件。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (16)

1.一种传输数据的方法,其特征在于,包括:
在判断数据报文包括标识的情况下,网络组件设备获取由源主机发送的所述数据报文的目的地址;
所述网络组件设备根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,所述对应关系存储在所述网络组件设备中;
所述网络组件设备基于所述网络设备的位置和所述目的地址封装所述数据报文,发送封装后的数据报文;
其中,在判断所述数据报文不包括所述标识的情况下,所述源主机采用源主机中存储的路由表和地址解析协议APR表填写数据报文。
2.根据权利要求1所述传输数据的方法,其特征在于,所述目的地址与网络设备的位置的对应关系包括路由表和地址解析协议ARP表;
所述路由表是通过所述网络组件设备的驱动提供的接口配置的;
所述ARP表是通过所述网络组件设备的驱动提供的接口配置的。
3.根据权利要求1所述传输数据的方法,其特征在于,所述方法还包括:
通过所述网络组件设备的驱动提供的接口动态调整所述对应关系。
4.根据权利要求1所述传输数据的方法,其特征在于,所述网络组件设备获取数据报文的目的地址之前,还包括:
所述网络组件设备依据标识,确定由所述网络组件设备封装所述数据报文。
5.根据权利要求2所述传输数据的方法,其特征在于,所述发送封装后的数据报文之后,还包括:
所述网络组件设备处理ARP报文和/或依据所述目的地址转发所述封装后的数据报文。
6.根据权利要求1所述传输数据的方法,其特征在于,所述方法还包括:
需要重复发送基于所述网络设备的位置和所述目的地址封装的所述数据报文时,网络组件设备再次发送所述封装后的数据报文。
7.根据权利要求1所述传输数据的方法,其特征在于,所述网络组件设备包括网卡。
8.一种网络组件设备,其特征在于,所述网络组件设备包括:
在判断数据报文包括标识的情况下,接口模块,用于获取由源主机发送的数据报文的目的地址;
控制模块,用于根据所述数据报文的目的地址,按照目的地址与网络设备的位置的对应关系确定对应的网络设备的位置,所述对应关系存储在所述网络组件设备中;
填写模块,用于基于所述网络设备的位置和所述目的地址封装所述数据报文;
所述接口模块,还用于发送封装后的数据报文;
其中,在判断所述数据报文不包括所述标识的情况下,所述源主机,用于采用源主机中存储的路由表和地址解析协议APR表填写数据报文。
9.根据权利要求8所述网络组件设备,其特征在于,所述目的地址与网络设备的位置的对应关系包括路由表和地址解析协议ARP表;
所述路由表是通过所述网络组件设备的驱动提供的接口配置的;
所述ARP表是通过所述网络组件设备的驱动提供的接口配置的。
10.根据权利要求8所述网络组件设备,其特征在于,所述网络组件设备还包括调整模块,所述调整模块,用于通过所述网络组件设备的驱动提供的接口动态调整所述对应关系。
11.根据权利要求8所述网络组件设备,其特征在于,所述网络组件设备还包括确定模块,用于依据标识,确定由所述网络组件设备封装所述数据报文。
12.根据权利要求9所述网络组件设备,其特征在于,所述网络组件设备还包括处理模块,用于处理ARP报文和/或依据所述目的地址转发所述封装后的数据报文。
13.根据权利要求8所述网络组件设备,其特征在于,所述接口模块,具体用于需要重复发送基于所述网络设备的位置和所述目的地址封装的所述数据报文时,再次发送所述封装后的数据报文。
14.根据权利要求8所述网络组件设备,其特征在于,所述网络组件设备包括网卡。
15.一种传输数据的设备,其特征在于
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以执行如权利要求1-7中任一所述传输数据的方法。
16.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述传输数据的方法。
CN201710752494.2A 2017-08-28 2017-08-28 传输数据的方法、网络组件、设备和计算机存储介质 Active CN109428819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710752494.2A CN109428819B (zh) 2017-08-28 2017-08-28 传输数据的方法、网络组件、设备和计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710752494.2A CN109428819B (zh) 2017-08-28 2017-08-28 传输数据的方法、网络组件、设备和计算机存储介质

Publications (2)

Publication Number Publication Date
CN109428819A CN109428819A (zh) 2019-03-05
CN109428819B true CN109428819B (zh) 2022-01-11

Family

ID=65502415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710752494.2A Active CN109428819B (zh) 2017-08-28 2017-08-28 传输数据的方法、网络组件、设备和计算机存储介质

Country Status (1)

Country Link
CN (1) CN109428819B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511433A (zh) * 2020-11-24 2021-03-16 中移(杭州)信息技术有限公司 流量传输方法、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345302B1 (en) * 1997-10-30 2002-02-05 Tsi Telsys, Inc. System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite
CN102123049A (zh) * 2011-02-25 2011-07-13 北京理工大学 一种基于MAC地址传输的Cache同步方法
CN103051530A (zh) * 2012-12-26 2013-04-17 北京四方继保自动化股份有限公司 一种用于智能变电站报文的多网口发送优化方法
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备
CN104079478A (zh) * 2013-03-25 2014-10-01 杭州华三通信技术有限公司 报文转发方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377550C (zh) * 2005-12-13 2008-03-26 华为技术有限公司 一种路由表下一跳ip地址到mac地址解析方法
CN100563215C (zh) * 2007-11-05 2009-11-25 福建星网锐捷网络有限公司 一种报文路由交换装置及其方法
US8355152B2 (en) * 2008-03-14 2013-01-15 Kabushiki Kaisha Toshiba Image forming apparatus, setting operation support method and setting operation support program
CN103036759B (zh) * 2012-12-08 2015-07-01 中国科学院软件研究所 一种x86虚拟化条件下降低网络i/o操作cpu开销的系统
CN103607351B (zh) * 2013-10-31 2017-08-22 新华三技术有限公司 一种芯片转发表项生成方法及设备
CN104954262B (zh) * 2015-06-24 2017-11-24 上海斐讯数据通信技术有限公司 一种数据快速转发方法和系统
CN106656799B (zh) * 2017-02-14 2019-12-03 湖南基石通信技术有限公司 一种基于无线mesh网络的报文转发方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345302B1 (en) * 1997-10-30 2002-02-05 Tsi Telsys, Inc. System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite
CN102123049A (zh) * 2011-02-25 2011-07-13 北京理工大学 一种基于MAC地址传输的Cache同步方法
CN103051530A (zh) * 2012-12-26 2013-04-17 北京四方继保自动化股份有限公司 一种用于智能变电站报文的多网口发送优化方法
CN104079478A (zh) * 2013-03-25 2014-10-01 杭州华三通信技术有限公司 报文转发方法和装置
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备

Also Published As

Publication number Publication date
CN109428819A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
US20220124147A1 (en) Application relocation method and apparatus
CN101695047B (zh) 一种实现动态隧道报文转发的方法及交换机
US8284785B2 (en) System and method for direct communications between FCoE devices
US7286520B2 (en) Mobile terminal equipment and packet communication method between terminals
US9154993B1 (en) Mobile-IPv6 encapsulation for wireless networks
EP3422656B1 (en) Udp protocol acceleration method and system
US9148373B2 (en) Network system
WO2021073565A1 (zh) 业务服务提供方法及系统
CN108848025B (zh) 数据处理方法、智能网关、物联网系统
WO2010139194A1 (zh) 具有IPv4应用的主机进行通信的方法及设备
CN101931658B (zh) 具有IPv4应用的IPv6主机进行通信的方法与装置
CN111510513B (zh) 一种map-e链路加速方法、装置、存储介质及网络设备
KR20160095554A (ko) Sdn 기반의 물리 주소 결정장치 및 그 방법
CN111371666B (zh) 一种处理报文的方法、设备及系统
CN112671938A (zh) 业务服务提供方法及系统、远端加速网关
CN114006953A (zh) 一种处理报文的方法及装置
CN101257517B (zh) 地址解析协议请求消息处理方法及装置
CN109428819B (zh) 传输数据的方法、网络组件、设备和计算机存储介质
CN111788812A (zh) 用于分组数据转换的技术
US20100023620A1 (en) Access controller
US20100238930A1 (en) Router and method of forwarding ipv6 packets
US20090201931A1 (en) Method and apparatus for transferring IP transmission session
CN107547691B (zh) 地址解析协议报文代理方法和装置
EP2600572A2 (en) Network system
CN103986637A (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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Jianfeng

Inventor after: Song Zhuo

Inventor before: Song Zhuo

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230620

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Grand Cayman, Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.