电子装置、数据传输方法及相关产品与流程

文档序号:16007916发布日期:2018-11-20 20:18阅读:157来源:国知局

本申请涉及数据传输技术领域,具体涉及一种电子装置、数据传输方法及相关产品。



背景技术:

电子装置在向接收端(电子装置)发送数据包时,需要知道接收端的物理地址(Medium Access Control,MAC),通常系统具有一张MAC地址缓存列表,即地址解析协议(Address Resolution Protocol,ARP)缓存表,ARP缓存表中存储有互联网协议地址(Internet Protocol Address,IP地址)与MAC地址对应关系,电子装置会从ARP缓存表中查询接收端IP地址所对应的MAC地址,但电子装置在查询ARP缓存列表时所需的查询时间较长且系统开销较大。



技术实现要素:

本申请实施例提供一种电子装置、数据传输方法及相关产品,能够减少获取MAC地址时的获取时间以及系统开销。

本申请实施例的第一方面提供了一种数据传输方法,包括:

在发送数据包时,判断所述数据包的连接跟踪项是否存在;

当所述数据包的连接跟踪项存在时,从所述连接跟踪项中获取所述数据包的目的MAC地址;

将所述数据包发送至所述目的MAC地址对应的电子装置。

本申请实施例的第二方面提供了一种数据传输装置,数据传输装置包括判断单元、第一获取单元和发送单元,其中,

判断单元,用于在发送数据包时,判断所述数据包的连接跟踪项是否存在;

第一获取单元,用于当所述数据包的连接跟踪项存在时,从所述连接跟踪项中获取所述数据包的目的MAC地址;

发送单元,用于将所述数据包发送至所述目的MAC地址对应的电子装置。

本申请实施例的第三方面提供一种电子装置,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。

本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。

本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

实施本申请实施例,至少具备如下有益效果:

通过本申请实施例,在发送数据包时,判断数据包的连接跟踪项是否存在,当数据包的连接跟踪项存在时,从连接跟踪项中获取数据包的目的MAC地址,将数据包发送到目的MAC地址对应的电子装置,以此,通过在连接跟踪项中获取目的MAC地址,相对于现有方案中,在每次发送数据包时均需要查询ARP缓存表,从ARP缓存表中获取MAC地址,能够减少获取MAC地址所需的时间以及系统开销。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供了一种数据传输方法的示意图;

图2为本申请实施例提供了一种数据传输方法的流程示意图;

图3为本申请实施例提供了另一种数据传输方法的流程示意图;

图4A为本申请实施例提供了另一种数据传输方法的流程示意图;

图4B为本申请实施例提供了另一种数据传输方法的流程示意图;

图4C为本申请实施例提供了另一种数据传输方法的流程示意图;

图5为本申请实施例提供的一种电子装置的结构示意图;

图6为本申请实施例提供了一种数据传输装置的结构示意图;

图7为本申请实施例提供了另一种数据传输装置的结构示意图;

图8为本申请实施例提供了另一种数据传输装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。

本申请实施例所涉及到的电子装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminal device)等等。为方便描述,上面提到的设备统称为电子装置。

本申请中,哈希值即为hash值,哈希也可称为hash。

Netfilter架构是Linux 2.4.x引入的一个子系统,netfilter架构作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(Network Address Translation,NAT)和基于协议类型的连接跟踪得以实现。

本申请文件中的第一数据包为电子装置A第一次向电子装置B发送的数据包,第二数据包为电子装置A向电子装置B发送了第一数据包之后的数据包。

为了更好的理解本申请实施例,下面对本申请实施例进行简要介绍。请参阅图1,图1为本申请实施例提供了一种数据传输方法的示意图。电子装置A向电子装置B发送的数据包在进入到TCP/IP层后,进入netfilter架构的OUTPUT处理钩子点,在OUTPUT处理钩子点对数据报文进行连接跟踪项进行判别,若判别出数据包的连接跟踪项在连接跟踪表中存在时,则可判别出数据包为第二数据包;判断与第二数据包对应的目标操作,目标操作包括:(1)丢弃数据包,并且要释放为数据包申请的所有资源;(2)接收数据包,并将数据包移到网络堆栈的下一层;(3)忘掉数据包,但不必明确丢弃包;(4):将数据包放入队列中,该队列中的数据包可以被用户空间程序等进行删除和处理;(5)请求Netfilter架构再次调用这个钩子函数,其中,钩子函数为处理钩子点所注册的函数。当目标操作为接收数据包,并将数据包移动到网络堆栈的下一层时,从连接跟踪项中获取数据包的目的MAC地址,将数据包移动到MAC层,在MAC层对数据包的MAC头部进行封装时,直接获取前述目的MAC地址,将目的MAC地址封装到MAC头部中得到数据帧,最后通过物理层对数据帧进行发送。

若判别出数据包的连接跟踪项在连接跟踪表中不存在时,则可判别出数据包为第一数据包;OUTPUT处理钩子点为数据包生成连接跟踪项,在POSTROUTING处理钩子点将生成的连接跟踪项添加到连接跟踪表中,并将数据包移动到MAC层,MAC层在邻居子系统(Neighbour)中的ARP缓存表中查找电子装置B的目的MAC地址,查找到目的MAC地址后,将目的MAC地址封装到数据帧的MAC头部中,最后通过物理层对数据帧进行发送。

请参阅图2,图2为本申请实施例提供了一种数据传输方法的流程示意图。如图2所示,数据传输方法可包括如下步骤:

201、在发送数据包时,判断所述数据包的连接跟踪项是否存在。

可选的,连接跟踪项可以理解为连接跟踪信息,其中,连接跟踪项用于记录数据包的连接信息,判断所述数据包的连接跟踪项是否存在的方法可包括步骤A1-A2,具体如下:

A1、获取所述数据包对应的hash值;

其中,获取数据包对应的hash值的方法可以为:将数据包转化为tuple结构,然后根据tuple结构计算hash值,其中tuple结构为ip_conntrack_tuple{}结构,hash值为连接跟踪表的节点。

可选的,将数据包转化为tuple结构可包括如下方法:根据不同的协议,具有不同的转换方法,例如,对于TCP/UDP协议,根据源IP地址、目的IP地址、源端口号、目的端口号和序列号可唯一的标识一个数据包,则根据源IP地址、目的IP地址、源端口号、目的端口号和序列号将数据包转化为tuple结构,具体转化时可以根据netfilter协议栈进行转化;对于ICMP协议,根据源IP地址、目的IP地址、数据包类型、代号和序列号可唯一确定一个ICMP报文,则可以根据源IP地址、目的IP地址、数据包类型、代号和序列号将数据包转化为tuple结构。

A2、若在连接跟踪表中查询到与所述hash值对应的连接跟踪项,则确定所述数据包的连接跟踪项存在,即所述连接跟踪表中缓存有hash值与连接跟踪项映射关系。

其中,连接跟踪表为hash散列表,也可以理解为以散列值排列的双向链表数组。hash散列表包括多个链表,每个链表具有一个节点,每个链表的节点与一个ip_conntrack_tuple_hash结构相对应。Hash散列表包括多个入口,在查询hash值对应的链接跟踪项时,需要遍历hash值对应的hash散列表入口指向的链表,其中,hash散列表入口指向的链表可以具有多个链表,链表为连接跟踪项。

202、当所述数据包的连接跟踪项存在时,从所述连接跟踪项中获取所述数据包的目的MAC地址。

其中,上述连接跟踪项中包括目的MAC地址,故当上述数据包的连接跟踪项存在时,从上述连接跟踪项中获取上述数据包的目的MAC地址。

在一种可能的实施例中,在发送数据包时,若判断出所述数据包对应的连接跟踪项不存在时,从地址解析协议ARP缓存表中获取所述数据包的目的MAC地址。

可选的,数据包进入到MAC层中,电子装置从ARP缓存表中获取数据包的目的MAC地址。其中,ARP缓存表具有更新周期,将目的MAC地址添加到连接跟踪项中,则可将ARP缓存表的更新周期缩短,即提升ARP缓存表的更新频率,如此,可以一定程度上保证在目的MAC地址获取时的准确性。目的MAC地址可以为电子装置上层网络主机的MAC地址,上层主机例如可以是网关、路由、服务器等电子装置,此时,电子装置A与电子装置B处于不同的网段中;目的MAC地址也可以是电子装置B的MAC地址,此时,电子装置A与电子装置B处于相同的网段中。

可选的,所述方法还包括步骤B1-B3,具体如下:

B1、当所述数据包的连接跟踪项不存在时,创建所述数据包的连接跟踪项;

可选的,创建连接跟踪项可包括步骤B10-B11,具体如下:

B10、获取所述数据包的五元组信息,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;

B11、根据所述五元组信息创建与所述数据包对应的连接跟踪项。

可选的,根据五元组信息创建与数据包对应的连接跟踪项的一个示例如下:源IP地址为:192.168.1.1,目的IP地址为192.168.1.5,源端口号为32770,目的端口号为23,协议号为6(TCP协议的协议号为6),则根据五元组生成的连接跟踪项为:TCP 6 117SYN_SENT src=192.168.1.1dst=192.168.1.5sport=32770dport=23[UNREPLIED],其中,TCP为发送数据包所采用的协议,6为TCP的协议号,117为连接生存的时间,SYN_SENT为连接的当前状态,SYN_SENT表示连接只在一个方向发送了一个TCP SYN数据包,src为源IP地址,dst为目的IP地址,sport为源端口,dport为目的端口,UNREPLIED表明本连接没有收到任何回应。连接为电子装置A从一个任意的非特权端口向电子装置B的FTP端口发送连接请求,电子装置B接受请求后,会从数据端口连接到电子装置A指定的数据端口,电子装置B向电子装置A发起一个用于数据传输的通道。

B2、将所述数据包的目的MAC地址添加到所述连接跟踪项;

可选的,将目的MAC地址添加到连接跟踪项的尾部,同时在MAC地址前设置标识位。将目的MAC地址添加到连接跟踪项后,创建一个目标指针,目标指针指向目的MAC地址的内存地址,在后续从连接跟踪项中获取目的MAC地址时,可直接调用该目标指针,读取该指针指向的内存地址即可获取目的MAC地址。

B3、将所述数据包对应的哈希值和所述连接跟踪项对应添加到所述连接跟踪表。

可选的,将连接跟踪项和hash值添加到链接跟踪表的尾部,或则,添加到连接跟踪表中已经删除的连接跟踪项所在的位置,所具有多个被删除的连接跟踪项,则随机选取其中一个位置,将连接跟踪项和hash值添加到该位置,当然,也可以选取多个被删除的连接跟踪所在位置的前后顺序进行选取,可以从前至后进行选取,也可以从后至前进行选取,此处不做具体限定。

203、将所述数据包发送至所述目的MAC地址对应的电子装置。

可选的,在将数据包发送至目的MAC地址对应的电子装置时,可包括如下步骤:

将所述目的MAC地址封装到数据帧的MAC头部中,所述数据帧包括所述数据包;

将所述数据帧发送到所述目的MAC地址对应的电子装置。

其中,当目的MAC地址对应的电子装置为上层网络主机的MAC地址时,数据包发送至上层网络主机后,上层网络主机会采用上述一致的方式,将数据包转发到电子装置B。当目的MAC地址对应的电子装置为电子装置B时,则直接将数据包发送到电子装置B。

一个可能的示例中,电子装置A向电子装置B发送数据包,电子装置A首先与电子装置B之间建立连接,电子装置A向目标电子装置发送数据包,数据包中携带五元组信息,五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号,在数据包从电子装置A的应用层封装完成后,数据包进入TCP/IP层,进入netfilter架构中,若发送的数据包为首次发送的第一数据包,则在OUTPUT钩子处理点将不能查询到与第一数据包对应连接跟踪项,OUTPUT处理钩子点为第一数据包创建连接跟踪项,然后数据包进入POSTROUTING处理钩子点将连接跟踪项添加到链接跟踪表中,数据包进入MAC层,在邻居子系统的ARP缓存表中查询与数据包中的目的IP地址对应的目的MAC地址,查询时采用遍历的方式进行查询,在查询到目的MAC地址后,将目的MAC地址加入到数据包的MAC头部得到数据帧,以及将目的MAC地址添加到连接跟踪项中,数据帧进入物理层,物理层驱动将数据帧发送到电子装置B;若发送的数据包为非首次发送的第二数据包时,此时将会OUTPUT处理钩子点中查询到与第二数据包对应的连接跟踪项并在连接跟踪项中提取电子装置B的目的MAC地址,POSTROUTING处理钩子点根据第二数据包所属的连接的状态,对第二数据包执行判决,若判决结果为传输第二数据包时,则第二数据报进入MAC,MAC层对将从连接跟踪项中提取的目的MAC地址封装到MAC头部中得到数据帧,数据帧进入到物理层,物理层驱动将数据帧发送到电子装置B。

通过本示例,电子装置A在与电子装置B建立连接之后,从电子装置A第一次向电子装置B发送数据包时,将目的MAC地址添加到连接跟踪项中,后续发往电子装置B的数据包,在查询跟踪连接项时从跟踪连接项中获取目的MAC地址,从而减少了电子装置在获取目的MAC地址所消耗的时间以及获取目的MAC地址所占用的内存,若ARP缓存表的较大,则在遍历ARP缓存表查询目的MAC地址时,其内存开销会急剧增加,从而更能凸显本方案的内存开销较小的优势。

请参阅图3,图3为本申请实施例提供了另一种数据传输方法的流程示意图。如图3所示,数据传输方法可包括如下步骤:

301、在发送数据包时,获取所述数据包对应的hash值;

302、若在连接跟踪表中查询到与所述hash值对应的连接跟踪项,则确定所述数据包的连接跟踪项存在,其中,所述连接跟踪表中缓存有hash值与连接跟踪项映射关系;

303、从所述连接跟踪项中获取所述数据包的目的MAC地址;

304、将所述目的MAC地址封装到数据帧头部,所述数据帧包括所述数据包;

305、将所述数据帧发送到所述目的MAC地址对应的电子装置。

通过本实施例,在发送数据包时,当判断出该数据包的连接跟踪项存在后,从连接跟踪项中获取目的MAC地址,能够相对于现有方案中,在判断出数据包的连接跟踪项存在后,通过ARP缓存表获取目的MAC地址,减少了获取目的MAC地址时的内存开销,以及缩短了获取目的MAC地址的时间。

请参阅图4A,图4A为本申请实施例提供了另一种数据传输方法的流程示意图。如图4A所示,数据传输方法可包括如下步骤:

401、在发送数据包时,判断所述数据包的连接跟踪项是否存在;

402、当所述数据包对应的连接跟踪项不存在时,获取所述数据包的五元组信息,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;

403、根据所述五元组信息创建与所述数据包对应的连接跟踪项;

404、从地址解析协议ARP缓存表中获取所述数据包的目的MAC地址;

405、将所述数据包的目的MAC地址添加到所述连接跟踪项;

406、将所述连接跟踪项添加到所述连接跟踪表。

通过本实施例,在发送数据包时,当判断出数据包的连接跟踪项不存在时,通过五元组信息创建与数据包相对应的连接跟踪项,从ARP缓存表中获取目的MAC地址,将目的MAC地址添加到连接跟踪项,将连接跟踪项添加到连接跟踪表中,以此,后续属于同一连接的数据包即可从连接跟踪项中获取目的MAC地址,相对于现有方案中,属于同一连接的任意数据包在获取目的MAC地址时均会从ARP缓存表中获取,能够减少获取目的MAC地址的时间以及在获取目的MAC地址时的内存开销。

请参阅图4B,图4B为本申请实施例提供了另一种数据传输方法的流程示意图。如图4B所示,数据传输方法可包括如下步骤:

410、在发送数据包时,判断所述数据包的连接跟踪项是否存在;

420、当所述数据包对应的连接跟踪项不存在时,获取所述数据包的五元组信息,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;

430、根据所述五元组信息创建与所述数据包对应的连接跟踪项;

440、从地址解析协议ARP缓存表中获取所述数据包的目的MAC地址;

450、将所述数据包的目的MAC地址添加到所述连接跟踪项;

460、将所述连接跟踪项添加到所述连接跟踪表;

470、将所述目的MAC地址封装到数据帧头部,所述数据帧包括所述数据包;

480、将所述数据帧发送到所述目的MAC地址对应的电子装置。

通过本实施例,在发送数据包时,当判断出数据包的连接跟踪项不存在时,通过五元组信息创建与数据包相对应的连接跟踪项,从ARP缓存表中获取目的MAC地址,将目的MAC地址添加到连接跟踪项,将连接跟踪项添加到连接跟踪表中,以此,后续属于同一连接的数据包即可从连接跟踪项中获取目的MAC地址,能够减少获取目的MAC地址的时间以及在获取目的MAC地址时的内存开销。

请参阅图4C,图4C为本申请实施例提供了另一种数据传输方法的流程示意图。如图4C所示,数据传输方法可包括如下方法:

在电子装置A首次向电子装置B发送数据包时,包括步骤C1-C7,具体如下:

C1、LOCAL HOST(电子装置A)发送第一数据包;

C2、然后经过路由判断,得到第一数据包的路由;

C3、进入OUTPUT处理钩子点,进行连接跟踪项的查询;

C4、若未查询到第一数据包的连接跟踪项,则在POSTROUTING处理钩子点,创建连接跟踪项;

C5、在邻居子系统中的ARP缓存表中查询得到电子装置B的目的MAC地址,然后将目的MAC地址添加到连接跟踪项;

C7、通过驱动层将数据包从进行发送。

在电子装置A非首次向电子装置B发送数据包时,包括步骤D1-D5,具体如下:

D1、LOCAL HOST(电子装置A)发送第二数据包;

D2、然后经过路由判断,得到第二数据包的路由;

D3、进入OUTPUT处理钩子点,进行连接跟踪项的查询;

D4、查询到第二数据包的连接跟踪项,则从连接跟踪项中获取目的MAC地址;

D5、通过驱动层将数据包从进行发送。

通过本实施例,在发送数据包时,当判断出数据包的连接跟踪项不存在时,通过五元组信息创建与数据包相对应的连接跟踪项,从ARP缓存表中获取目的MAC地址,将目的MAC地址添加到连接跟踪项,将连接跟踪项添加到连接跟踪表中,以此,后续属于同一连接的数据包即可从连接跟踪项中获取目的MAC地址,能够减少获取目的MAC地址的时间以及在获取目的MAC地址时的内存开销。

与上述实施例一致的,请参阅图5,图5为本申请实施例提供的一种电子装置的结构示意图,如图所示,该电子装置包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令;

在发送数据包时,判断所述数据包的连接跟踪项是否存在;

当所述数据包的连接跟踪项存在时,从所述连接跟踪项中获取所述数据包的目的MAC地址;

将所述数据包发送至所述目的MAC地址对应的电子装置。

在一个可能的示例中,在所述判断所述数据包的连接跟踪项是否存在方面,所述程序中的指令具体用于执行以下操作:获取所述数据包对应的hash值;若根据所述hash值在连接跟踪表中查询到与所述hash值对应的连接跟踪项,则确定所述数据包的连接跟踪项存在,其中,所述连接跟踪表中缓存有hash值与连接跟踪项映射关系。

在另一个可能的示例中,在所述将所述数据包发送至所述目的MAC地址对应的电子装置方面,所述程序中的指令还具体用于执行以下操作:将所述目的MAC地址封装到数据帧的MAC头部中,所述数据帧包括所述数据包;将所述数据帧发送到所述目的MAC地址对应的电子装置。

在另一个可能的示例中,所述程序中的指令还具体用于执行以下操作:当所述数据包的连接跟踪项不存在时,从地址解析协议ARP缓存表中获取所述数据包的目的MAC地址。

在另一个可能的示例中,所述程序中的指令还具体用于执行以下操作:当所述数据包的连接跟踪项不存在时,创建所述数据包的连接跟踪项;将所述数据包的目的MAC地址添加到所述连接跟踪项;将所述数据包对应的哈希值和所述连接跟踪项对应添加到所述连接跟踪表。

通过本实施例,在发送数据包时,当判断出该数据包的连接跟踪项存在后,从连接跟踪项中获取目的MAC地址,能够相对于现有方案中,在判断出数据包的连接跟踪项存在后,通过ARP缓存表获取目的MAC地址,减少了获取目的MAC地址时的内存开销,以及缩短了获取目的MAC地址的时间,同时,在发送数据包时,当判断出数据包的连接跟踪项不存在时,通过五元组信息创建与数据包相对应的连接跟踪项,从ARP缓存表中获取目的MAC地址,将目的MAC地址添加到连接跟踪项,将连接跟踪项添加到连接跟踪表中,以此,后续属于同一连接的数据包即可从连接跟踪项中获取目的MAC地址,相对于现有方案中,属于同一连接的任意数据包在获取目的MAC地址时均会从ARP缓存表中获取,能够减少获取目的MAC地址的时间以及在获取目的MAC地址时的内存开销。

上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对电子装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

与上述一致的,请参阅图6,图6为本申请实施例提供了一种数据传输装置的结构示意图。数据传输装置包括判断单元601、第一获取单元602和发送单元603,其中,

判断单元601,用于在发送数据包时,判断所述数据包的连接跟踪项是否存在;

第一获取单元602,用于当所述数据包的连接跟踪项存在时,从所述连接跟踪项中获取所述数据包的目的MAC地址;

发送单元603,用于将所述数据包发送至所述目的MAC地址对应的电子装置。

可以看出,通过本申请实施例,数据传输装置在发送数据包时,判断数据包的连接跟踪项是否存在,当数据包的连接跟踪项存在时,从连接跟踪项中获取数据包的目的MAC地址,将数据包发送到目的MAC地址对应的电子装置,以此,通过在连接跟踪项中获取目的MAC地址,能够减少获取MAC地址所需的时间以及系统开销。

可选的,在判断所述数据包的连接跟踪项是否存在方面,所述判断单元601具体用于:获取所述数据包对应的hash值;若根据所述hash值在连接跟踪表中查询到与所述hash值对应的连接跟踪项,则确定所述数据包的连接跟踪项存在,其中,所述连接跟踪表中缓存有hash值与连接跟踪项映射关系。

可选的,在将所述数据包发送至所述目的MAC地址对应的电子装置方面,所述发送单元603具体用于:将所述目的MAC地址封装到数据帧的MAC头部中,所述数据帧包括所述数据包;将所述数据帧发送到所述目的MAC地址对应的电子装置。

可选的,请参与图7,图7为本申请实施例提供了另一种数据传输装置的结构示意图。如图7所示,数据传输装置还包括第二获取单元604,其中,

第二获取单元604,用于当所述数据包的连接跟踪项不存在时,从地址解析协议ARP缓存表中获取所述数据包的目的MAC地址。

可选的,请参与图8,图8为本申请实施例提供了另一种数据传输装置的结构示意图。如图8所示,数据传输装置还包括创建单元605、第一添加单元606和第二添加单元607,其中,

创建单元605,用于当所述数据包的连接跟踪项不存在时,创建所述数据包的连接跟踪项;

第一添加单元606,用于将所述数据包的目的MAC地址添加到所述连接跟踪项;

第二添加单元607,用于将将所述数据包对应的哈希值和所述连接跟踪项对应添加到所述连接跟踪表。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据传输方法的部分或全部步骤。

本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种数据传输方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1