CN109756454A - 数据交互的方法、装置和系统 - Google Patents

数据交互的方法、装置和系统 Download PDF

Info

Publication number
CN109756454A
CN109756454A CN201711072687.XA CN201711072687A CN109756454A CN 109756454 A CN109756454 A CN 109756454A CN 201711072687 A CN201711072687 A CN 201711072687A CN 109756454 A CN109756454 A CN 109756454A
Authority
CN
China
Prior art keywords
message
data packet
request message
packet request
type
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.)
Granted
Application number
CN201711072687.XA
Other languages
English (en)
Other versions
CN109756454B (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 Group Holding 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 CN201711072687.XA priority Critical patent/CN109756454B/zh
Publication of CN109756454A publication Critical patent/CN109756454A/zh
Application granted granted Critical
Publication of CN109756454B publication Critical patent/CN109756454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据交互的方法、装置和系统。其中,该方法包括:在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同;在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文。本申请解决了由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。

Description

数据交互的方法、装置和系统
技术领域
本申请涉及互联网技术应用领域,具体而言,涉及一种数据交互的方法、装置和系统。
背景技术
域名系统(Domain Name System,简称DNS)在业界通常是利用BIND提供服务。BIND是部署在应用层的软件,为了使DNS更快的收发包,在linux服务器上,可以使用内核直接提供DNS服务,不经过完整的内核协议栈,而调用内核中调用网卡接口的dev_queue_xmit函数进行回包。
但是,内核态DNS缓存在使用netfilter网络框架截获请求后,会封包后直接调用网卡接口回包,使得iptables等其他包过滤器失效,导致数据在安全校验场景和云vpc场景无法使用。
针对上述由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据交互的方法、装置和系统,以至少解决由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。
根据本申请实施例的一个方面,提供了一种数据交互的系统,包括:终端和服务器,其中,终端,用于向服务器发送数据包请求消息;服务器,用于判断接收到的数据包请求消息是否携带预设标记,在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端返回对应的报文。
可选的,服务器包括:缓存内核模块和域名系统服务模块,其中,缓存内核模块,用于判断数据包请求消息是否携带预设标记,在数据包请求消息携带预设标记的情况下,将数据包请求消息发送至域名系统服务模块;域名系统服务模块,用于对数据包请求消息进行应答和封装,并返回数据包请求消息对应的封装后的报文。
进一步地,可选的,缓存内核模块,用于在数据包请求消息未携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记;域名系统服务模块,用于向终端返回数据包请求消息对应的报文。
可选的,缓存内核模块,用于在报文类型与预设报文类型不同的情况下,调用对应接口处理数据包请求消息;其中,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
根据本申请实施例的另一方面,还提供了一种数据交互的方法,包括:在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文。
可选的,在在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设的报文类型之前,该方法还包括:判断终端发送的数据包请求消息是否携带预设标记;在数据包请求消息携带预设标记的情况下,对数据包请求消息进行解析,得到数据包请求消息对应的报文。
进一步地,可选的,对数据包请求消息进行解析,得到数据包请求消息对应的报文包括:通过内核协议栈解析数据包请求消息,得到数据包请求消息对应的报文。
可选的,在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型之后,该方法还包括:在预设报文类型包括域名系统类型的情况下,若数据包请求消息的报文类型不是域名系统类型,调用对应接口处理数据包请求消息。
进一步地,可选的,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
可选的,在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记包括:在预设报文类型包括域名系统类型的情况下,若报文类型为域名系统类型,则通过内核协议栈解析数据包请求消息,得到对应数据包请求消息的应答报文;封装应答报文。
进一步地,可选的,向终端返回数据包请求消息对应的报文包括:向终端返回应答报文。
根据本申请实施例的又一方面,还提供了一种服务器,该服务器包括:处理器;以及存储器,与处理器连接,用于在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文。
根据本申请实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述数据交互的方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述数据交互的方法。
根据本申请另一实施例的一方面,还提供了一种数据交互的方法,包括:内核态DNS缓存接收网络数据包;内核态DNS缓存确定网络数据包类型为DNS请求;内核态DNS缓存确定网络数据包没有携带预设标记;内核态DNS缓存对网络数据包添加预设标记;内核态DNS缓存将网络数据包发送到用户态软件。
根据本申请另一实施例的一方面,还提供了另一种数据交互的方法,包括:内核态DNS缓存接收网络数据包;内核态DNS缓存确定网络数据包类型为DNS请求;内核态DNS缓存确定网络数据包包括预设标记;内核态DNS缓存反馈网络数据包对应的DNS应答报文。
在本申请实施例中,采用对数据包请求消息进行标记识别的方式,通过在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同;在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端返回数据包请求消息对应的报文,达到了对数据包请求消息过滤识别的目的,从而实现了提升网络安全性的技术效果,进而解决了由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例二的数据交互的系统的结构示意图;
图2是根据本申请实施例二的数据交互的系统中终端与服务器的交互示意图;
图3是根据本申请实施例二的一种数据交互的系统的结构示意图;
图4是本申请实施例的一种数据交互的方法的服务器的硬件结构框图;
图5是根据本申请实施例三的数据交互的方法的流程图;
图6是根据本申请实施例三的一种数据交互的方法的流程图;
图7是根据本申请实施例五的数据交互的装置的结构示意图;
图8是根据本申请实施例五的一种数据交互的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及的技术名词:
DNS:Domain Name System,域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
域名解析:通过主机名,最终得到该主机名对应的IP地址的过程。
权威DNS:经过上一级授权对域名进行解析的服务器。
递归DNS:负责接受用户对任意域名查询,并返回结果给用户。
内核态:操作系统内核所运行的模式。运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。
用户态:操作系统中,普通的用户进程运行的特权级。大部分用户直接面对的程序都是运行在用户态。
缓存:存贮使用频繁的数据的临时存储区域。由于取原始数据的代价大,缓存是快速取得数据的地方。
BIND:开源DNS服务器软件。
Netfilter:Linux操作系统内核中,一套包过滤框架。
实施例1
本申请提供了一种数据交互的系统。该数据交互系统包括:终端和服务器,其中,服务器中的内核态缓存模块对接收到的数据包请求消息进行标记,其中,该标记为预设标记。
具体的,本申请实施例提供的数据交互的系统可以适用于DNS应答方式,为了防止DNS类报文由于未标记预设标记而被系统反复处理,且内核态DNS缓存在使用netfi lter网络框架截获请求后,会封包后直接调用网卡接口回包,使得iptables等其他包过滤器失效,导致数据在安全校验场景和云vpc场景无法使用。
本申请提供的数据交互的系统中提供的预设报文类型为DNS类报文,如果该数据包请求消息的报文类型是DNS类报文,则对该数据包请求消息添加预设标记。
这里预设标记通过服务器中的内核态缓存模块进行标记,其中,该预设标记可以为内核数据结构中特定字段中预设字节处标记的特定符号,例如,预设标记可以为内核sk_buff数据结构中的cb字段,在第47个字节标记为“53”。上述示例仅以实现本申请实施例提供的数据交互的系统为准,具体不做限定。
实施例2
本申请提供了如图1所示的数据交互的系统。图1是根据本申请实施例二的数据交互的系统的结构示意图。包括:终端12和服务器14,其中,
终端12,用于向服务器14发送数据包请求消息;服务器14,用于判断接收到的数据包请求消息是否携带预设标记,在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端12返回对应的报文。
这里本申请提供的数据交互的系统中数据包请求消息所携带的预设标记,可以使得数据包请求消息既不通过用户态,也可以通过下游模块的包过滤和修改服务,更高效且广泛的使用各类场景。
其中,在服务器14收包过程中对于一个DNS请求报文,在内核态进行特殊标记,使得报文本身结构不被破坏;标记后的报文可被内核协议栈正确识别,并同时可正确的被其他任何内核模块继续处理之后再回包。
需要说明的是,本申请实施例提供的数据交互的系统中,预设标记通过服务器14中的内核态缓存模块进行标记,其中,该预设标记可以为内核数据结构中特定字段中预设字节处标记的特定符号,例如,预设标记可以为内核sk_buff数据结构中的cb字段,在第47个字节标记为“53”。上述示例仅以实现本申请实施例提供的数据交互的系统为准,具体不做限定。
此外,在报文类型与预设报文类型不同的情况下,调用对应接口处理数据包请求消息;其中,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
具体的,本申请实施例提供的数据交互的系统可以适用于DNS应答方式,尤其可以适用于对终端12发送的数据包请求消息,服务器14通过判断接收到的数据包请求消息是否携带预设标记,当数据包请求消息没有携带预设标记时,判断该数据包请求消息的报文类型是否与预设报文类型相同,如果相同对该数据包请求消息进行标记,并通过解析处理得到该数据包请求消息对应的应答报文,并将该应答报文返回终端12。
在本实施例提供的数据交互的系统中,服务器14可以包括:域名系统(DomainName System,简称DNS)服务器,或,具备DNS服务功能的服务器或DNS服务功能的计算设备;终端12可以为携带DNS客户端的计算设备。
具体的,如图2所示,图2是根据本申请实施例二的数据交互的系统中终端与服务器的交互示意图,本实施例提供的数据交互的系统的实现过程如下:
Step1.终端12向服务器14发送数据包请求消息;
Step2.服务器14接收终端12发送的数据包请求消息;
Step3.服务器14判断该数据包请求消息是否携带预设标记,如携带预设标记执行Step4,如未携带预设标记执行Step5;
Step4.在该数据包请求消息携带预设标记的情况下,服务器14对数据包请求消息进行解析,并向终端12反馈对应的应答报文;
Step5.在该数据包请求消息未携带预设标记的情况下,服务器14判断该数据包请求消息的报文类型是否属于DNS类型,在数据包请求消息的报文类型属于DNS类型的情况下,对数据包请求消息添加预设标记;
Step6.服务器14解析添加预设标记后的数据包请求消息,得到对应的应答报文;
Step7.服务器14将应答报文返回终端12。
当数据包请求消息的报文类型不属于DNS类型,服务器14丢弃该数据包请求消息。
在本申请实施例中,采用对数据包请求消息进行标记识别的方式,通过判断终端发送的数据包请求消息是否携带预设标记;在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同;在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端返回数据包请求消息对应的报文,达到了对数据包请求消息过滤识别的目的,从而实现了提升网络安全性的技术效果,进而解决了由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。
可选的,服务器14包括:缓存内核模块和域名系统服务模块,其中,缓存内核模块,用于判断数据包请求消息是否携带预设标记,在数据包请求消息携带预设标记的情况下,将数据包请求消息发送至域名系统服务模块;域名系统服务模块,用于对数据包请求消息进行应答和封装,并返回数据包请求消息对应的封装后的报文。
具体的,在本申请中数据交互的系统提供的服务器14包括缓存内核模块和域名系统服务模块,如图3所示,图3是根据本申请实施例二的一种数据交互的系统的结构示意图,在图3中缓存内核模块位于linux系统下服务器14的内核空间,通过缓存内核模块对数据包请求消息是否携带预设标记进行判断,在数据包请求消息携带预设标记的情况下,将数据包请求消息发送至域名系统服务模块,其中,在图3中域名系统服务模块位于服务器14的用户空间,可以为DNS服务软件,该DNS服务软件可以以BIND为例进行说明,域名系统服务模块在缓存内核模块判断数据包请求消息携带预设标记的情况下,对数据包请求消息进行应答和封装,并返回数据包请求消息对应的封装后的报文。
进一步地,可选的,缓存内核模块,用于在数据包请求消息未携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记;域名系统服务模块,用于向终端返回数据包请求消息对应的报文。
可选的,缓存内核模块,用于在报文类型与预设报文类型不同的情况下,调用对应接口处理数据包请求消息;其中,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
具体的,结合图2,参照图3所示,当数据包请求消息未携带预设标记时,缓存内核模块需判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记;此时,域名系统服务模块向终端返回数据包请求消息对应的报文;
除此之外,当数据包请求消息的报文类型与预设报文类型不同时,缓存内核模块调用对应接口处理数据包请求消息;其中,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
需要说明的是,图3中,服务器14的内核空间可以包括:内核协议栈,以及iptables等其他用户定制的内核模块。
服务器14在图3中可以示为DNS服务器,终端12可以示为DNS用户。
本申请上述示例仅以实现本申请提供的数据交互的系统为准,具体不做限定。
综上,本申请通过的数据交互的系统在收包过程对于一个DNS请求报文,在内核态进行特殊标记,使得报文本身结构不被破坏。除此之外,标记后的报文可被内核协议栈正确识别,同时该报文可正确的被其他任何内核模块继续处理之后再回包。
实施例3
根据本申请实施例,还提供了一种数据交互的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图4是本申请实施例的一种数据交互的方法的服务器的硬件结构框图。如图4所示,服务器40可以包括一个或多个(图中仅示出一个)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输模块406。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器404可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据交互的方法对应的程序指令/模块,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据交互的方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至服务器40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器40的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图5所示的数据交互的方法。在服务器侧,图5是根据本申请实施例三的数据交互的方法的流程图。
步骤S502,在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;
本申请上述步骤S502中,本申请实施例提供的数据交互的方法可以适用于服务器中,该服务器可以包括:域名系统(Domain Name System,简称DNS)服务器,或,具备DNS服务功能的服务器或DNS服务功能的计算设备,即,对应实施例1中的服务器14,在服务器侧,在服务器接收到的数据包请求消息未携带预设标记的情况下,服务器需判断该数据包请求消息的报文类型是否属于预设报文类型,若该数据包请求消息的报文类型属于预设报文类型,则执行步骤S504,若该数据包请求消息的报文类型不属于预设报文类型,则执行步骤S503。
需要说明的是,本申请中服务器以DNS服务器为最优实现方式进行举例,后续步骤中的服务器以DNS服务器为例进行说明,以实现本申请提供的数据交互的方法为准,具体不做限定。
步骤S504,在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;
本申请上述步骤S504中,基于步骤S502的判断,在该数据包请求消息的报文类型属于预设报文类型的情况下,DNS服务器对数据包请求消息进行标记,即,对该数据包请求消息添加预设标记。其中,在本申请中设置预设标记机制,该机制包括:对未携带预设标记,且属于预设报文类型的数据包请求消息通过实施例1中服务器14中的域名系统服务模块进行解析,并得到对应该数据包请求消息的报文。
本申请提供的数据交互方法通过对接收到的数据包请求消息进行预设标记和报文类型的双重筛选,从而避免由于现有技术中通过调用网卡接口回包致使数据包过滤失效,进而导致网络安全性低的情况发生。
步骤S506,向终端返回数据包请求消息对应的报文。
本申请上述步骤S506中,基于步骤S504中对数据包请求消息的解析,将服务器依据数据包请求消息得到的应答报文返回终端。
在本申请实施例中,采用对数据包请求消息进行标记识别的方式,通过在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文,达到了对数据包请求消息过滤识别的目的,从而实现了提升网络安全性的技术效果,进而解决了由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。
可选的,在步骤S502中在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设的报文类型之前,本申请提供的数据交互的方法还包括:
步骤S500,判断终端发送的数据包请求消息是否携带预设标记;
本申请上述步骤S500中,在对步骤S502中在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设的报文类型之前,服务器会接收终端发送的数据包请求消息,进而判断该数据包请求消息是否携带预设标记。若该数据包请求消息携带预设标记,则执行步骤S501;若该数据包请求消息未携带预设标记,则执行步骤S502。
步骤S501,在数据包请求消息携带预设标记的情况下,对数据包请求消息进行解析,得到数据包请求消息对应的报文。
本申请上述步骤S501中,基于步骤S500的判断,在该数据包请求消息携带预设标记的情况下,服务器对数据包请求消息进行解析,得到数据包请求消息对应的报文。
进一步地,可选的,步骤S501中对数据包请求消息进行解析,得到数据包请求消息对应的报文包括:
Step1,通过内核协议栈解析数据包请求消息,得到数据包请求消息对应的报文。
具体的,当数据包请求消息携带预设标记的情况下,对应实施例1中的图3,服务器中的缓存内核模块将判断后的数据请求消息传输至域名系统服务模块,由域名系统服务模块对数据包请求消息进行应答和封装,并返回数据包请求消息对应的封装后的报文。
可选的,在步骤S502中在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型之后,本申请提供的数据交互的方法还包括:
步骤S503,在预设报文类型包括域名系统类型的情况下,若数据包请求消息的报文类型不是域名系统类型,调用对应接口处理数据包请求消息。
进一步地,可选的,步骤S503中调用对应接口处理数据包请求消息包括:
Step1,通过丢包接口丢弃数据包请求消息。
具体的,对应实施例1中的服务器14,在预设报文类型包括域名系统类型的情况下,服务器14在对数据包请求消息的报文类型进行判断的情况下,得到该数据包请求消息的报文类型不是域名系统类型,此时服务器14中的缓存内核模块调用对应接口处理数据包请求消息;其中,调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
可选的,步骤S504中在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记包括:
Step1,在预设报文类型包括域名系统类型的情况下,若报文类型为域名系统类型,则通过内核协议栈解析数据包请求消息,得到对应数据包请求消息的应答报文;
Step2,封装应答报文。
进一步地,可选的,步骤S506中向终端返回数据包请求消息对应的报文包括:
Step1,向终端返回应答报文。
具体的,对应实施例1中服务器14,当数据包请求消息未携带预设标记时,服务器14中的缓存内核模块需判断数据包请求消息的报文类型是否与预设报文类型相同,在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记;此时,域名系统服务模块向终端返回数据包请求消息对应的报文。
具体的,如图6所示,图6是根据本申请实施例三的一种数据交互的方法的流程图。本申请提供的数据交互的方法具体如下:
步骤1、内核接收到用户的请求。
步骤2、判断该数据包是否已经被特殊标记。
步骤3、如果该报文是已被标记的报文,则直接把报文投放到内核协议栈回包,流程结束。
步骤4、如果该报文未被标记,则判断该报文是否为DNS请求报文。
步骤5、如果该报文不是DNS请求报文,则调用丢包接口丢弃该请求。
步骤6、如果该报文是DNS请求,则对该报文进行特殊标记。
步骤7、对标记好的报文进行DNS应答封装。
步骤8、投放DNS报文到内核协议栈进行回包,流程结束。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据交互的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例4
根据本申请实施例的又一方面,还提供了一种服务器,该服务器包括:处理器;以及存储器,与处理器连接,用于在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文。
实施例5
根据本申请实施例,还提供了一种用于实施上述数据交互方法的装置,如图7所示,图7是根据本申请实施例五的数据交互的装置的结构示意图,该装置包括:
第一判断模块71,用于在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;数据解析模块72,用于在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;数据交互模块73,用于向终端返回数据包请求消息对应的报文。
在本申请实施例中,采用对数据包请求消息进行标记识别的方式,通过在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型;在报文类型为预设报文类型的情况下,对数据包请求消息标记预设标记;向终端返回数据包请求消息对应的报文,达到了对数据包请求消息过滤识别的目的,从而实现了提升网络安全性的技术效果,进而解决了由于现有技术中通过调用网卡接口回包致使数据包过滤失效,导致的网络安全性低的技术问题。
此处需要说明的是,上述第一判断模块71、数据解析模块72和数据交互模块73对应于实施例二中的步骤S502至步骤S506,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的DNS服务器中,可以通过软件实现,也可以通过硬件实现。
具体的,如图8所示,图8是根据本申请实施例五的一种数据交互的装置的结构示意图。本申请提供的数据交互的装置具体如下:
可选的,本申请提供的数据交互的装置还包括:第二判断模块69,用于在在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设的报文类型之前,判断终端发送的数据包请求消息是否携带预设标记;第一数据处理模块70,用于在判断终端发送的数据包请求消息是否携带预设标记之后,在数据包请求消息携带预设标记的情况下,对数据包请求消息进行解析,得到数据包请求消息对应的报文。
此处需要说明的是,上述第二判断模块69和第一数据处理模块70对应于实施例二中的步骤S500和步骤S501,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的DNS服务器中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请提供的数据交互的装置还包括:第二数据处理模块74,用于在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否属于预设报文类型之后,在预设报文类型包括域名系统类型的情况下,若数据包请求消息的报文类型不是域名系统类型,调用对应接口处理数据包请求消息。
此处需要说明的是,上述第二数据处理模块74对应于实施例二中的步骤S503,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的DNS服务器中,可以通过软件实现,也可以通过硬件实现。
可选的,数据解析模块72包括:报文解析单元,用于在预设报文类型包括域名系统类型的情况下,若报文类型为域名系统类型,则通过内核协议栈解析数据包请求消息,得到对应数据包请求消息的应答报文;封装单元,用于封装应答报文。
此处需要说明的是,上述数据解析模块72中的报文解析单元和封装单元对应于实施例二中的步骤S504中的Step1和Step2,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的DNS服务器中,可以通过软件实现,也可以通过硬件实现。
进一步地,可选的,数据交互模块73包括:数据交互单元,用于向终端返回应答报文。
此处需要说明的是,上述数据交互模块73中的数据交互单元对应于实施例二中的步骤S506中的Step1,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的DNS服务器中,可以通过软件实现,也可以通过硬件实现。
实施例6
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据交互的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断终端发送的数据包请求消息是否携带预设标记;在数据包请求消息没有携带预设标记的情况下,判断数据包请求消息的报文类型是否与预设报文类型相同;在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端返回数据包请求消息对应的报文。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在判断终端发送的数据包请求消息是否携带预设标记之后,方法还包括:在数据包请求消息携带预设标记的情况下,对数据包请求消息进行解析,得到数据包请求消息对应的报文。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对数据包请求消息进行解析,得到数据包请求消息对应的报文包括:通过内核协议栈解析数据包请求消息,得到数据包请求消息对应的报文。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在判断数据包请求消息的报文类型是否与预设报文类型相同之后,方法还包括:在预设报文类型包括域名系统类型的情况下,若数据包请求消息的报文类型不是域名系统类型,调用对应接口处理数据包请求消息。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:调用对应接口处理数据包请求消息包括:通过丢包接口丢弃数据包请求消息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在报文类型与预设报文类型相同的情况下,对数据包请求消息标记预设标记,并向终端返回数据包请求消息对应的报文包括:在预设报文类型包括域名系统类型的情况下,若报文类型为域名系统类型,则通过内核协议栈解析数据包请求消息,得到对应数据包请求消息的应答报文;封装应答报文;向终端返回应答报文。
实施例7
根据本申请实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述实施例3中的数据交互的方法。
实施例8
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例3中的数据交互的方法。
实施例9
根据本申请另一实施例的一方面,还提供了一种数据交互的方法,包括:内核态DNS缓存接收网络数据包;内核态DNS缓存确定网络数据包类型为DNS请求;内核态DNS缓存确定网络数据包没有携带预设标记;内核态DNS缓存对网络数据包添加预设标记;内核态DNS缓存将网络数据包发送到用户态软件。
实施例10
根据本申请另一实施例的一方面,还提供了另一种数据交互的方法,包括:内核态DNS缓存接收网络数据包;内核态DNS缓存确定网络数据包类型为DNS请求;内核态DNS缓存确定网络数据包包括预设标记;内核态DNS缓存反馈网络数据包对应的DNS应答报文。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (16)

1.一种数据交互的系统,其特征在于,包括:终端和服务器,其中,
所述终端,用于向所述服务器发送数据包请求消息;
所述服务器,用于判断接收到的所述数据包请求消息是否携带预设标记,在所述数据包请求消息没有携带预设标记的情况下,判断所述数据包请求消息的报文类型是否与预设报文类型相同,在所述报文类型与所述预设报文类型相同的情况下,对所述数据包请求消息标记所述预设标记,并向所述终端返回对应的报文。
2.根据权利要求1所述的数据交互的系统,其特征在于,所述服务器包括:缓存内核模块和域名系统服务模块,其中,
所述缓存内核模块,用于判断所述数据包请求消息是否携带所述预设标记,在所述数据包请求消息携带所述预设标记的情况下,将所述数据包请求消息发送至所述域名系统服务模块;
所述域名系统服务模块,用于对所述数据包请求消息进行应答和封装,并返回所述数据包请求消息对应的封装后的报文。
3.根据权利要求2所述的数据交互的系统,其特征在于,
所述缓存内核模块,用于在所述数据包请求消息未携带所述预设标记的情况下,判断所述数据包请求消息的报文类型是否与预设报文类型相同,在所述报文类型与所述预设报文类型相同的情况下,对所述数据包请求消息标记所述预设标记;
所述域名系统服务模块,用于向所述终端返回所述数据包请求消息对应的报文。
4.根据权利要求3所述的数据交互的系统,其特征在于,
所述缓存内核模块,用于在所述报文类型与所述预设报文类型不同的情况下,调用对应接口处理所述数据包请求消息;其中,所述调用对应接口处理所述数据包请求消息包括:通过丢包接口丢弃所述数据包请求消息。
5.一种数据交互的方法,其特征在于,包括:
在数据包请求消息没有携带预设标记的情况下,判断所述数据包请求消息的报文类型是否属于预设报文类型;
在所述报文类型为所述预设报文类型的情况下,对所述数据包请求消息标记所述预设标记;
向终端返回所述数据包请求消息对应的报文。
6.根据权利要求5所述的数据交互的方法,其特征在于,在所述在数据包请求消息没有携带预设标记的情况下,判断所述数据包请求消息的报文类型是否属于预设的报文类型之前,所述方法还包括:
判断终端发送的数据包请求消息是否携带预设标记;
在所述数据包请求消息携带所述预设标记的情况下,对所述数据包请求消息进行解析,得到所述数据包请求消息对应的报文。
7.根据权利要求6所述的数据交互的方法,其特征在于,所述对所述数据包请求消息进行解析,得到所述数据包请求消息对应的报文包括:
通过内核协议栈解析所述数据包请求消息,得到所述数据包请求消息对应的报文。
8.根据权利要求5所述的数据交互的方法,其特征在于,在数据包请求消息没有携带预设标记的情况下,判断所述数据包请求消息的报文类型是否属于预设报文类型之后,所述方法还包括:
在所述预设报文类型包括域名系统类型的情况下,若所述数据包请求消息的报文类型不是所述域名系统类型,调用对应接口处理所述数据包请求消息。
9.根据权利要求8所述的数据交互的方法,其特征在于,所述调用对应接口处理所述数据包请求消息包括:
通过丢包接口丢弃所述数据包请求消息。
10.根据权利要求8所述的数据交互的方法,其特征在于,所述在所述报文类型为所述预设报文类型的情况下,对所述数据包请求消息标记所述预设标记包括:
在所述预设报文类型包括域名系统类型的情况下,若所述报文类型为所述域名系统类型,则通过内核协议栈解析所述数据包请求消息,得到对应所述数据包请求消息的应答报文;
封装所述应答报文。
11.根据权利要求10所述的数据交互的方法,其特征在于,所述向终端返回所述数据包请求消息对应的报文包括:
向所述终端返回所述应答报文。
12.一种服务器,其特征在于,所述服务器包括:
处理器;以及
存储器,与所述处理器连接,用于在数据包请求消息没有携带预设标记的情况下,判断所述数据包请求消息的报文类型是否属于预设报文类型;在所述报文类型为所述预设报文类型的情况下,对所述数据包请求消息标记所述预设标记;向终端返回所述数据包请求消息对应的报文。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求5至11中任意一项所述的数据交互的方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求5至11中任意一项所述的数据交互的方法。
15.一种数据交互的方法,其特征在于,包括:
内核态DNS缓存接收网络数据包;
所述内核态DNS缓存确定所述网络数据包类型为DNS请求;
所述内核态DNS缓存确定所述网络数据包没有携带预设标记;
所述内核态DNS缓存对所述网络数据包添加所述预设标记;
所述内核态DNS缓存将所述网络数据包发送到用户态软件。
16.一种数据交互的方法,其特征在于,包括:
内核态DNS缓存接收网络数据包;
所述内核态DNS缓存确定所述网络数据包类型为DNS请求;
所述内核态DNS缓存确定所述网络数据包包括预设标记;
所述内核态DNS缓存反馈所述网络数据包对应的DNS应答报文。
CN201711072687.XA 2017-11-03 2017-11-03 数据交互的方法、装置和系统 Active CN109756454B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711072687.XA CN109756454B (zh) 2017-11-03 2017-11-03 数据交互的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711072687.XA CN109756454B (zh) 2017-11-03 2017-11-03 数据交互的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN109756454A true CN109756454A (zh) 2019-05-14
CN109756454B CN109756454B (zh) 2022-01-11

Family

ID=66399621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711072687.XA Active CN109756454B (zh) 2017-11-03 2017-11-03 数据交互的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN109756454B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427759A (zh) * 2019-06-20 2019-11-08 中国科学院信息工程研究所 一种支持业务安全标记的网络资源浏览控制方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103327025A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 网络访问控制方法及装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN104917851A (zh) * 2015-05-08 2015-09-16 亚信科技(南京)有限公司 信息处理方法及dns缓存服务器
CN105939365A (zh) * 2015-06-29 2016-09-14 杭州迪普科技有限公司 主控板用户态从业务板内核态获取数据的方法及装置
US20170230261A1 (en) * 2014-10-31 2017-08-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and device for checking health of link

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103327025A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 网络访问控制方法及装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
US20170230261A1 (en) * 2014-10-31 2017-08-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and device for checking health of link
CN104917851A (zh) * 2015-05-08 2015-09-16 亚信科技(南京)有限公司 信息处理方法及dns缓存服务器
CN105939365A (zh) * 2015-06-29 2016-09-14 杭州迪普科技有限公司 主控板用户态从业务板内核态获取数据的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427759A (zh) * 2019-06-20 2019-11-08 中国科学院信息工程研究所 一种支持业务安全标记的网络资源浏览控制方法及系统
CN110427759B (zh) * 2019-06-20 2021-04-20 中国科学院信息工程研究所 一种支持业务安全标记的网络资源浏览控制方法及系统

Also Published As

Publication number Publication date
CN109756454B (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
CN105554065B (zh) 处理报文的方法、转换单元和应用单元
CN109218261B (zh) 一种数据处理方法及数据处理装置
CN105791315B (zh) 一种udp协议加速方法和系统
CN109361606B (zh) 一种报文处理系统及网络设备
CN111083161A (zh) 数据传输的处理方法及装置、物联网设备
CN108270882A (zh) 域名的解析方法和装置、存储介质、电子装置
CN104243281B (zh) 基于移动互联网的语音通信方法
CN108322530A (zh) 上下文环境信息的传递方法、装置、服务网关及存储介质
CN107360247B (zh) 处理业务的方法和网络设备
CN108259542A (zh) 资源的传输方法和装置
CN106559302A (zh) 单播隧道建立方法、装置和系统
CN105227466B (zh) 通信处理方法和装置
CN107786669B (zh) 一种负载均衡处理的方法、服务器、装置及存储介质
CN108156210A (zh) 目标资源的获取方法和装置
CN107360205A (zh) 数据报文的传输方法及装置、系统
CN104518968B (zh) 一种报文处理的方法和透明代理服务器
CN103036875A (zh) 一种用户身份处理装置及识别装置
CN109167762A (zh) 一种iec104报文校验方法及装置
CN105281987B (zh) 路由器及数据上传方法、装置、系统
CN107249038A (zh) 业务数据转发方法及系统
CN104506405B (zh) 跨域访问的方法及装置
CN108156034B (zh) 一种基于深度神经网络辅助的报文转发方法和报文转发系统
CN108462590A (zh) 网络流量的监控方法及装置、计算机终端
CN105472054B (zh) 一种报文发送方法及接入设备
CN110247926A (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