WO2018130061A1 - 域名解析方法、服务器和存储介质 - Google Patents
域名解析方法、服务器和存储介质 Download PDFInfo
- Publication number
- WO2018130061A1 WO2018130061A1 PCT/CN2017/117904 CN2017117904W WO2018130061A1 WO 2018130061 A1 WO2018130061 A1 WO 2018130061A1 CN 2017117904 W CN2017117904 W CN 2017117904W WO 2018130061 A1 WO2018130061 A1 WO 2018130061A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- domain name
- name resolution
- data
- packet
- request packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2546—Arrangements for avoiding unnecessary translation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/58—Caching of addresses or names
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Definitions
- the present application relates to the field of computer technologies, and in particular, to a domain name resolution method, a server, and a storage medium.
- IP address Internet Protocol Address
- the traditional domain name resolution method parses the layer data protocol of the domain name resolution request packet layer by layer until the IP address corresponding to the domain name requested to be resolved is parsed, and the entire parsing process needs to be performed. Secondary data replication, resulting in inefficient domain name resolution.
- a domain name resolution method a server, and a storage medium are provided.
- a method for domain name resolution comprising:
- the server obtains a domain name resolution request packet
- the server caches the obtained domain name resolution request packet to the first buffer area
- the server modifies the header data included in the cached domain name resolution request packet in the first buffer area, and obtains header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet;
- the server extracts the domain name of the cached domain name resolution request packet and the requested record type
- the server searches, in the second buffer area, the pre-cached response data corresponding to the extracted domain name and belongs to the extracted record type;
- the server combines the found response data with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- a server comprising a memory and a processor, the memory storing computer readable instructions, the computer readable instructions being executed by the processor such that the processor performs the following steps:
- the obtained response data is combined with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- One or more non-volatile storage media storing computer readable instructions, when executed by one or more processors, cause one or more processors to perform the following steps:
- the obtained response data is combined with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- 1 is an application environment diagram of a domain name resolution method in an embodiment
- FIG. 2 is a schematic diagram of an internal structure of a server for implementing a domain name resolution method in an embodiment
- FIG. 3 is a schematic flowchart of a domain name resolution method in an embodiment
- FIG. 4 is a schematic flowchart of a step of performing a process of acquiring a domain name resolution request packet by using a selected parsing thread in an embodiment
- FIG. 5 is an internal architecture diagram of a domain name resolution server in an embodiment
- FIG. 6 is a flow chart showing the steps of modifying the header data included in the cached domain name resolution request packet in the first buffer area in the first buffer area, and obtaining the header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet. ;
- FIG. 7 is a schematic flowchart of a step of searching for a pre-cached response data corresponding to an extracted domain name and belonging to an extracted record type in a second buffer area in an embodiment
- FIG. 8 is a schematic flowchart of a step of combining a searched response data with a modified domain name resolution request packet to obtain a domain name resolution response packet in an embodiment
- FIG. 10 is a logic diagram of a domain name resolution process in an embodiment
- Figure 11 is a block diagram showing the structure of a server in an embodiment
- FIG. 12 is a structural block diagram of a server in another embodiment.
- Figure 13 is a block diagram showing the structure of a server in still another embodiment.
- FIG. 1 is an application environment diagram of a domain name resolution method in an embodiment.
- the domain name resolution method is applied to a domain name resolution system.
- the domain name resolution system includes a terminal 110, a domain name resolution server 120, and an authorized domain name server 130.
- the terminal 110 is connected to the domain name resolution server 120 through a network, and the domain name resolution server 120 is connected to the authorized domain name server 130 through a network.
- the terminal 110 may specifically be a desktop terminal or a mobile terminal, and the mobile terminal may specifically be at least one of a mobile phone, a tablet computer, a notebook computer, a smart watch, a personal digital assistant (PDA), and a networkable electronic reader.
- the domain name resolution server 120 and the authorized domain name server 130 may specifically be independent physical servers or physical server clusters.
- a server that can be used as the domain name resolution server 120 of FIG. 1 to implement a domain name resolution method.
- the server includes a processor, memory and network interface connected by a system bus.
- the memory comprises a non-volatile storage medium and an internal memory.
- the server's non-volatile storage medium can store operating system and computer readable instructions.
- the computer readable instructions when executed, may cause the processor to perform a method of domain name resolution.
- the server's processor is used to provide computing and control capabilities that support the operation of the entire server.
- Computer readable instructions may be stored in the internal memory of the server, and when the computer readable instructions are executed by the processor, the processor may be caused to perform a domain name resolution method.
- the network interface of the server is used to communicate with an external terminal through a network connection, such as receiving a domain name solution sent by the terminal. Parse the request packet and return a domain name resolution response packet to the terminal.
- the server can be implemented with a stand-alone server or a server cluster consisting of multiple servers. It will be understood by those skilled in the art that the structure shown in FIG. 2 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the server to which the solution of the present application is applied.
- the specific server may include a ratio. More or fewer components are shown in the figures, or some components are combined, or have different component arrangements.
- a domain name resolution method is provided. This embodiment is applied to the domain name resolution server 120 in FIG. 1 to illustrate. The method specifically includes the following steps:
- the domain name resolution request packet refers to a data packet used for requesting domain name resolution.
- a domain name is the name of a computer or group of computers on the Internet consisting of a string of dot-separated strings that identify the electronic orientation of the computer as it is transmitted.
- Domain name resolution refers to the process of resolving a domain name into a record type pointed to by a domain name resolution request packet. Record types such as addresses point to record type, mail exchange record type, or alias record type.
- the terminal when the terminal obtains the domain name input by the user and obtains the request for accessing the Internet through the domain name, the terminal may first determine the record type pointed to by the request, and search for the domain name corresponding to the obtained domain name in the local database or the cache. And belongs to the record of the record type pointed to by the request. If it is found, it accesses the Internet according to the record; if not found, the domain name and the record type pointed to by the request are encapsulated according to the format of the domain name resolution request packet, a domain name resolution request packet is generated, and the domain name is parsed. The request packet is sent to the domain name resolution server.
- the domain name resolution server receives the domain name resolution request packet sent by the terminal, and obtains the domain name resolution request packet.
- the first buffer area is a cache area that is divided in the cache of the domain name resolution server, and is used to store the obtained domain name resolution request packet.
- the domain name resolution server receives the data packet through the network card, and after receiving the domain name resolution request packet, the domain name resolution request packet can be cached to the first buffer area by the process.
- the domain name resolution server can be enabled in the kernel space through the operating system kernel.
- the NIC driver process obtains the domain name resolution request packet received by the network card, stores the obtained domain name resolution request packet in the first cache area of the kernel space, and waits for the operating system kernel to respond.
- the domain name resolution server may pre-configure the packet interception process running in the kernel space. After the network card driver process obtains the domain name resolution request packet received by the network card, the domain name resolution process in the domain name resolution server user space may be The packet interception process is enabled, and the domain name resolution request packet obtained by the network card driver process is stored in the first buffer area of the user space, and the domain name resolution process of the user space is responded.
- the operating system is used to manage computer hardware and software.
- the area where the operating system kernel is located is the kernel space, and the kernel function module runs in the kernel space.
- User space is the space that the operating system divides relative to the kernel space.
- a network card is a network component that operates at the link layer and is used for the transmission and reception of data packets.
- the NIC driver process is a process in which the operating system kernel calls to execute the data packet received by the network card and send the data packet to the network card.
- the packet interception process is a pre-configured process for intercepting packets acquired by the NIC driver process into user space.
- the domain name resolution server can use the DPDK (Data Plane Development Kit) to pre-configure the packet interception process.
- the configured packet interception process can directly transfer the intercepted data packets to the user space without going through The transit of kernel space, the packet interception process can be enabled by the operating system kernel, or by the domain name resolution process of user space.
- the domain name parsing data packet usually includes five parts: header data, query question, response, authorization response and additional information.
- header data is the part that the domain name resolution data packet must include, including the domain name resolution packet identifier, the domain name resolution packet identifier, the number of request problems, the number of resource records, the number of authorized resource records, and the number of additional resource records.
- the domain name resolution packet identifier is used to identify the domain name resolution packet, and the corresponding domain name resolution request packet and the domain name resolution response packet have the same domain name resolution packet identifier, and can be used to match the domain name resolution response packet corresponding to the domain name resolution request packet.
- the domain name resolution packet flag defines the domain name resolution packet is please
- the request or response packet also defines whether other parts besides the header data need to exist, and the type of the query.
- the number of request questions, the number of resource records, the number of authorized resource records, and the number of additional resource records correspond to the number of four parts of the query question, response, authorization response, and additional information, respectively.
- the domain name resolution server may first determine the header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet, and determine the header data of the domain name resolution request packet according to the determined domain name resolution response packet header data. The difference data in the header data of the domain name resolution response packet. The domain name resolution server may locate the determined difference data in the first buffer area, and modify the located difference data according to the header data of the domain name resolution response packet.
- the difference data includes a domain name resolution packet identifier and a resource record number.
- the received domain name resolution request packet includes a domain name parsing packet flag indicating that the character of the request packet is “0” and should be modified to indicate “1” of the response.
- the number of resource records is modified according to the number of request questions.
- the domain name requested by the domain name resolution request packet and the requested record type are encapsulated in the query problem part of the domain name resolution request packet.
- the domain name resolution server parses the domain name resolution request packet to obtain a parsing result, and extracts the domain name and the requested record type of the domain name resolution request packet request from the parsing result.
- the requested record type such as the address points to the record type, the mail exchange record type or the alias record type.
- the address points to the record, that is, the A (Address) record, also known as the IP (Internet Protocol) point, used to specify the record of the host name or the IP address corresponding to the domain name.
- the mail exchange record that is, the MX (Mail Exchanger) record, is used to locate the mail server according to the address suffix of the addressee when the email system sends the mail, and points the address suffix of the new person to the record of the IP address of the mail server.
- An alias points to a record record, that is, a CNAME record, also known as an alias record, which maps multiple names or domain names to the same computer.
- the record includes two domain names or names, and the first domain name points to the record of the second domain name.
- the second buffer area is a cache area divided in the cache of the domain name resolution server.
- the pre-packaged response data is stored.
- the second buffer area and the first buffer area are both cache areas, but are different buffer areas.
- the domain name resolution server After the domain name resolution server performs domain name resolution, the resolution result is recorded, and the domain name resolution record is stored in the database.
- the domain name resolution server can establish a connection with the authoritative domain name server to detect whether the domain name resolution record stored locally is consistent with the corresponding domain name resolution record stored in the authoritative domain name server. If they are inconsistent, the corresponding domain name resolution records stored in the authoritative domain name server are synchronized to the local database.
- the time for performing the detection operation may be a preset detection period, or may be performed when the current time exceeds a buffer period included in the domain name resolution record.
- the domain name resolution server may encapsulate the domain name resolution record stored in the database according to a preset response format to obtain response data and cache it in the second buffer area, and perform searching when needed.
- the domain name resolution server may cache the obtained response data into the second buffer area according to the record type to which the response data belongs.
- the response data set belonging to the extracted record type is determined according to the extracted record type, and then The pre-cached response data corresponding to the extracted domain name is filtered out in the determined response data set.
- the domain name resolution server may also cache the obtained response data in the second buffer area according to the domain name corresponding to the response data.
- domain name resolution is required, the response data set corresponding to the extracted domain name is determined according to the extracted domain name, and then the determination is performed.
- the pre-cached response data belonging to the extracted record type is filtered out in the response data set.
- the domain name resolution server may also obtain the number of historical records corresponding to the local domain name resolution record, and the obtained response data is arranged in descending order according to the number of historical records corresponding to the domain name resolution record corresponding to the response data, and is cached in the second buffer area.
- the domain name resolution is required, the pre-cached response data corresponding to the extracted domain name and belonging to the extracted record type is searched.
- steps S308 to S310 and step S306 can be performed asynchronously.
- the domain name resolution server may locate the modified domain name resolution request packet cached in the first buffer area, and add the found response data to the data included in the located domain name resolution request packet. At the end, the domain name resolution response packet is obtained by combining with the cached domain name resolution request packet.
- the domain name resolution request method stores the obtained domain name resolution request packet in the first buffer area, and completes the process of parsing the cached domain name resolution request packet in the first buffer area, and includes the header included in the domain name resolution request packet.
- the data is modified into the header data of the corresponding domain name resolution response packet, and the found response data is combined with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- the response data of the search is pre-stored in the second buffer area, and can be directly combined with the modified domain name resolution request packet after being found, which greatly improves the domain name resolution efficiency.
- the domain name resolution process can be completed in the first buffer area, which effectively reduces the number of data copies, and further improves the domain name resolution efficiency.
- step S302 specifically includes: when the operating system kernel reads the data packet from the network card receiving queue and delivers the data to the user space, acquiring the data protocol identifier included in the delivered data packet; and when the data protocol identifier indicates the data transmitted
- the package is a domain name resolution request packet
- the domain name resolution request packet is obtained.
- the first buffer area and the second buffer area are in user space.
- the data protocol identifier refers to the identifier of each layer of the data protocol included in the data packet.
- the data packet network layer data protocol identifier is TCP (Transmission Control Protocol)/UDP (User Datagram Protocol), and the data packet whose destination port is port 53 in the transport layer is a domain name parsing data packet.
- the operating system kernel of the domain name resolution server can enable the pre-configured packet interception process, read the data packet from the network card receive queue, and read the data packet and deliver it to the user space.
- the domain name resolution process of the user space obtains the data protocol identifier included in the delivered data packet, and detects the acquired data protocol identifier according to the identifier of each layer protocol that matches the domain name resolution request packet, and obtains the data protocol identifier and If the identifier of each layer protocol matched by the domain name resolution request packet is consistent, the data packet to be delivered is a domain name resolution request packet, and the domain name resolution process of the user space obtains the domain name resolution request packet.
- the acquired data protocol identifier and the layer protocol matching the domain name resolution request packet are matched, If the identifiers of the packets are inconsistent, it indicates that the delivered data packet is a non-domain name resolution request packet, and the domain name resolution process of the user space feeds back the delivered data packet to the operating system kernel for response.
- the data packet determined to be the domain name resolution request packet is directly parsed in the user space, and does not need to undergo a transition of the kernel space, thereby avoiding the problem of requiring data replication multiple times in the kernel space for parsing, and improving The efficiency of domain name resolution.
- the data packet that is determined to be a non-domain name resolution request packet is fed back to the operating system kernel, and a processing method for the data packet that cannot be analyzed in the user space is provided, and the success rate of the packet analysis is improved.
- the domain name resolution method further includes: selecting a parsing thread in an idle state in the parallel parsing thread; and performing step S302 to step S312 through the selected parsing thread.
- the parsing thread refers to a thread used for domain name resolution. Being idle means that the domain name resolution is not performed at the current time. Specifically, in the domain name resolution process of the domain name resolution server, multiple parsing threads are run in parallel, and each parsing thread is independent of each other.
- the domain name resolution process of the domain name resolution server may enable the network card driver process to obtain the domain name resolution request packet received by the network card, and then select the parsing thread in the idle state to perform the domain name resolution process of the obtained domain name resolution request packet.
- the domain name resolution process is separately performed by the parsing thread, and does not involve data interaction processing with other threads, thereby avoiding the waiting process of thread interaction processing data, and further improving the domain name parsing efficiency.
- the first cache area and the second cache area involved in the domain name resolution method are in user space.
- obtaining a domain name resolution request packet by using the selected parsing thread includes:
- the operating system kernel reads the data packet from the network card receiving queue and delivers the data to the user space
- the data protocol identifier included in the delivered data packet is obtained by the selected parsing thread.
- the operating system kernel of the domain name resolution server can enable the pre-configured packet interception process, read the data packet from the network card receive queue, and read the data packet and deliver it to the user space.
- the domain name resolution server then obtains the data protocol identifier included in the delivered data packet through the parsing thread of the user space.
- the selected parsing thread caches the passed packet to the third buffer in user space.
- the domain name resolution server compares the acquired data protocol identifier with the identifier of each layer protocol that matches the domain name resolution request packet by using a parsing thread of the user space, and the obtained data protocol identifier and the domain name resolution request are obtained in the comparison result.
- the identifiers of the packets matching the layers are inconsistent, it is determined that the delivered data packet is a non-domain name resolution request packet, and the domain name resolution process of the user space caches the delivered data packet to the third buffer area in the user space.
- the third buffer area is a cache area divided in the cache of the domain name resolution server, and is used to store a non-domain name resolution request packet delivered to the user space.
- S406 Read a data packet from the third buffer area by a kernel interaction thread independent of the parallel parsing thread, and feed the read data packet to the operating system kernel for response.
- the kernel interaction thread is a thread that interacts with the kernel space and is opposed to the existence of the parsing thread.
- the parsing thread in the user space cannot directly interact with the operating system kernel, so the non-domain name resolution request packet that needs to be fed back to the operating system kernel for response is cached to the third buffer area in the user space.
- the kernel interaction thread which is independent of the parallel parsing thread that can interact with the operating system kernel, reads the packet from the third buffer and caches the read packet to the buffer area of the kernel space.
- the kernel space parsing thread parses the data packet buffered in the kernel space buffer and obtains a response packet corresponding to the parsing packet.
- the non-domain name resolution request packet that cannot be parsed by the domain name resolution process of the user space is fed back to the operating system kernel for response, thereby avoiding the problem that the domain name resolution process of the user space fails to resolve the non-domain name resolution request packet.
- the domain name resolution method may further include: acquiring the data packet and buffering to the first buffer area; detecting, in the first buffer area, a data protocol identifier included in the data packet; and when the data protocol identifier indicates that the data packet is a domain name When parsing the request packet, step S306 to step S310 are continued. When the data protocol identifier indicates that the delivered data packet is a non-domain name resolution request packet, the buffered data packet is fed back to the operating system kernel for response.
- the read data packet may be directly buffered to the first buffer area of the user space.
- the parsing thread in the idle state is selected in the parallel parsing thread in the user space to detect whether the data packet buffered to the first buffer area is a domain name resolution request packet.
- the step S306 to step S310 are continued by the selected parsing thread.
- the address pointer of the non-domain name resolution request packet in the first buffer area is cached to the third buffer area by the selected parsing thread.
- the kernel interaction thread which is independent of the parallel parsing thread, reads the non-domain name resolution request packet from the first buffer area according to the address pointer stored in the third buffer area, and stores it in the buffer area of the kernel space.
- the operating system kernel responds to the non-domain name resolution request packet stored in the kernel space cache.
- the pointer is a variable of the computer language used to indicate the memory address.
- the address pointer of the non-domain name resolution request packet in the second buffer area points to the cache address of the non-domain name resolution request packet in the second buffer area.
- the non-domain name resolution request packet is, for example, an ARP (Address Resolution Protocol) request packet or an OSPF (Open Shortest Path First) request packet.
- the data packet is directly cached in the first buffer area, and the domain name parsing operation is directly performed when detecting the domain name resolution request packet, and after detecting the non-domain name resolution request packet, the first buffer area is The non-domain name resolution request packet is fed back to the operating system kernel for response.
- the number of data copies is further reduced, and the processing method for the data packets that cannot be parsed in the user space is also provided, and the success rate of data packet parsing is improved.
- FIG. 5 is an internal architecture diagram of a domain name resolution server in an embodiment.
- the system space of the domain name resolution server is divided into kernel space and user space, and the operating system kernel can enable the packet interception process to read the data packet from the network card receiving queue and deliver it to the user space.
- the parsing thread in the user space determines that the delivered data packet is a domain name parsing data packet
- the passed domain name parsing data packet is buffered to the first buffer area; after the determined data packet is a non-domain name parsing data packet, the parsing thread transmits the The non-domain name resolution packet is cached to the third buffer area.
- the kernel interaction thread in the user space independent of the parsing thread caches the non-domain name parsing data buffer cached in the third buffer area to the buffer area of the kernel space, and is responded by the operating system kernel.
- step S306 specifically includes the following steps:
- S602. Determine a first address pointer of the domain name resolution request packet buffered in the first buffer area.
- the domain name resolution server may save the first address pointer of the domain name resolution request packet to a temporary cache file or a log file, and the domain name resolution request packet needs to be performed. Read again when the data is modified.
- S604. Determine an address pointer offset of the data to be modified in the domain name resolution request packet cached in the first buffer area.
- the data to be modified is data that is different in the header data of the domain name resolution request packet and the corresponding domain name resolution response packet.
- the domain name resolution server may first determine the header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet, and determine the header data of the domain name resolution request packet according to the determined domain name resolution response packet header data.
- the domain name parses the difference data in the header data of the response packet, and uses the determined difference data as the data to be modified.
- the data encapsulated in the header data of the domain name resolution packet is usually subjected to a determined byte division.
- the first byte and the second byte of the header data of the domain name parsing data packet are the domain name parsing data packet identifier; the third byte and the fourth byte are the domain name parsing data packet identifier, and the domain name parsing data packet flag character segment
- the first bit is a flag bit, "0" indicates a domain name resolution request packet, and "1" indicates a domain name resolution response packet.
- the domain name resolution server may determine the address pointer offset of the data to be modified according to the byte in which the determined difference data is located.
- the data to be modified is located in the first buffer area according to the first address pointer and the address pointer offset.
- the address pointer offset of the data to be modified is added to the first address pointer of the domain name resolution request packet to obtain an address pointer of the data to be modified, and the domain name resolution server may determine, according to the obtained address pointer, that the first buffer area is to be modified.
- the cache address of the data is added to the first address pointer of the domain name resolution request packet to obtain an address pointer of the data to be modified, and the domain name resolution server may determine, according to the obtained address pointer, that the first buffer area is to be modified.
- S608 Modify the located data to be modified into data corresponding to the data to be modified in the domain name resolution response packet.
- the domain name resolution server writes the header data of the domain name resolution response packet corresponding to the domain name resolution request packet on the cache address of the data to be modified in the determined first buffer area. For example, a flag indicating a packet type is modified from a flag indicating a request packet to a flag indicating a response packet.
- the domain name resolution request packet header data is directly modified into the header data of the domain name resolution response packet corresponding to the domain name resolution request packet in the first buffer area of the cache domain name resolution request packet, thereby avoiding the parsing process.
- the cumbersome steps of real-time encapsulation of the domain name resolution response packet are required, which reduces the response time and further improves the efficiency of domain name resolution.
- step S310 specifically includes the following steps:
- the hash value is a fixed-length smaller binary value obtained by mapping a binary value of an arbitrary length by using a hash algorithm.
- the domain name resolution server may calculate a hash value mapped by the extracted domain name according to a preset hash algorithm.
- the hash table is a list for storing the cache address of the response data corresponding to the domain name and the domain name according to the mapping relationship between the domain name and the hash value.
- the hash value is the storage location in the hash table.
- the domain name and the response data corresponding to the domain name are stored in the storage location of the hash value mapped by the domain name.
- a linked list is a chained storage structure for storing multiple data elements. In this embodiment, the linked list refers to a sub-list pointed to by the same hash value of the domain name with the same hash value of the storage map.
- the domain name resolution server may previously establish a plurality of hash tables according to the record type requested by the domain name resolution request packet, and each hash table correspondingly stores the cache address of the response data belonging to the same record type and the corresponding domain name.
- a linked list pointed to by the hash value is determined in a hash table corresponding to the extracted request type.
- the domain name resolution server may also store the cache address of the response data corresponding to the corresponding domain name and the associated record type into a hash table, and determine the linked list pointed to by the hash value in the hash table.
- Each element stored in the linked list is called a node, and each node includes two parts: a data field in which the data element is stored and a pointer field in which the address of the next node is stored.
- the domain name resolution server may be associated with the node in the determined linked list according to the extracted domain name.
- the domain name stored in the data domain is compared.
- the node is determined to be a node to be searched.
- the linked list for searching belongs to a hash table corresponding to the extracted request type.
- the domain name resolution server stores the cached address of the response data corresponding to the corresponding domain name and the associated record type to a hash table
- the domain name resolution server stores the domain name in the determined linked list and the data field of the node one by one according to the extracted domain name.
- the record type stored in the data field of the node is compared one by one in the determined linked list, and when the record type stored in the node is consistent with the extracted record type, it is determined. This node is the node that needs to be found.
- the domain name resolution server may read the cached data from the cache address in the second buffer area, and the read cached data is pre-cached response data.
- the cache address of the response data is searched in the hash table, and then the response data is read in the cache according to the found address, thereby avoiding the problem that it is a waste of time to directly search for the corresponding response data in the cache.
- the earth has improved the search rate and further improved the efficiency of domain name resolution.
- the domain name resolution server does not find the corresponding response data in the hash table
- the primary domain name corresponding to the extracted domain name is determined, and the hash table is searched for the corresponding primary domain name, and belongs to the domain name start record.
- Type of response data The domain name adopts a hierarchical structure, and is hierarchical according to a geographic domain or an institutional domain, and the respective levels are separated by a decimal point, and the highest domain segment and the second highest domain segment are sequentially from right to left, and the leftmost field is a primary domain name.
- the requested domain name is www.xx.com and its primary domain name is xx.com.
- the domain name start record indicates the authorized domain name server corresponding to the primary domain name.
- a processing method for not obtaining the response data corresponding to the domain name and the requested record type requested by the domain name resolution request packet, and the domain name start record is fed back, so that the domain name resolution requesting party can
- the domain name start record sends a domain name resolution request to the authorized domain name server, which improves the success rate of domain name resolution.
- step S312 specifically includes the following steps:
- the domain name resolution server may save the first address pointer of the domain name resolution request packet to a temporary cache file or a log file, and the domain name resolution request packet needs to be performed. Read again when the data is modified. The domain name resolution request packet does not change after the modification.
- the domain name resolution server may detect the total amount of data of the modified domain name resolution request packet, and determine the cache address interval occupied by the modified domain name resolution request packet in the first buffer area according to the detected total quantity, and then according to the The size of the address range determines the address pointer offset.
- the domain name resolution server may add an address pointer offset to the first address pointer of the response data on the first address pointer of the modified domain name resolution request packet.
- S808 Cache the response data to the first buffer area according to the first address pointer of the response data, and obtain a domain name resolution response packet that is cached in the first buffer area and includes the modified domain name resolution request packet and the cached response data.
- the first address pointer of the determined response data is the next cache address of the cache address of the last byte of the data included in the modified domain name resolution request packet. Cache the response data according to the determined address pointer to the first buffer area to obtain a domain name resolution response packet cached in the first buffer area and including the modified domain name resolution request packet and the cached response data.
- the domain name resolution process is performed in the first buffer area from the domain name resolution request packet and the domain name resolution response packet, and only the response data found in the second buffer area is copied to the domain name in the cache area.
- the domain name resolution response packet can be obtained by combining with the domain name resolution request packet, thereby improving the efficiency of domain name resolution.
- a domain name resolution method is provided, and the method specifically includes the following steps:
- S906 Determine, according to the obtained data protocol identifier, whether the delivered data packet is a domain name resolution request packet; if yes, go to step S908; if no, go to step S910.
- the selected parsing thread caches the delivered data packet to a third buffer area in the user space, and reads the data packet from the third buffer area through a kernel interaction thread independent of the parallel parsing thread, and reads the data packet.
- the packet is fed back to the operating system kernel for response.
- the obtained domain name resolution request packet is cached to a first buffer area in the user space.
- S914. Determine, by the selected parsing thread, a first address pointer of the domain name resolution request packet cached in the first buffer area. Determining an address pointer offset of the data to be modified in the domain name resolution request packet cached in the first buffer area; the data to be modified is data in the header data of the domain name resolution request packet and the corresponding domain name resolution response packet. The data to be modified is located in the first buffer area according to the first address pointer and the address pointer offset. The located data to be modified is modified into data corresponding to the data to be modified in the domain name resolution response packet.
- S916 Extract the domain name and the requested record type of the cached domain name resolution request packet request by the selected parsing thread.
- step S918 detecting whether the current time exceeds the buffer period included in the response data; if not, the process proceeds to step S920, and if yes, the process proceeds to step S922.
- the cache deadline refers to the validity period of the response data.
- the results of the domain name resolution that belong to each record type are not fixed.
- the current time exceeds the buffer period included in the response data, it is necessary to detect whether the domain name resolution record encapsulated as the response data has changed. Resets the cache period included in the response data when the domain name resolution record has not changed.
- the domain name resolution server may establish a connection with the authoritative domain name server to detect whether the locally stored domain name resolution record is consistent with the corresponding domain name resolution record stored in the authoritative domain name server. If the information is inconsistent, the local domain name resolution record is updated according to the corresponding domain name resolution record stored in the authoritative domain name server, and the updated domain name resolution record is encapsulated into the updated response data according to the preset response format, and the second cache area is pre-cached. The response data is replaced with the updated response data.
- the obtained domain name resolution request packet is stored in the first buffer area in the user space, and the parsing process of the cached domain name resolution request packet is completed in the first buffer area by a separate parsing thread to avoid The thread waits for the data to process the waiting process, which improves the data processing efficiency.
- the acknowledgment data is pre-stored in the second buffer area in the user space, and can be directly combined with the modified domain name resolution request packet after being found, which greatly improves the domain name resolution efficiency.
- the data required in the domain name resolution process is stored in the buffer area of the user space, and does not need to be read from the disk, which greatly improves the data processing speed. After the response data is copied from the second buffer area to the first buffer area, the domain name resolution process can be completed in the first buffer area, which effectively reduces the number of data copies, and further improves the domain name resolution efficiency.
- Figure 10 is a logic diagram of a domain name resolution process in one embodiment.
- the system space of the domain name resolution server is divided into kernel space and user space, and the operating system kernel can enable the packet interception process to deliver the data packet read by the network card driver process to the user space.
- Domain name resolution server Caching the domain name resolution data packet to the first buffer area in the user space, and searching for the response data corresponding to the domain name requested by the domain name resolution data packet in the second buffer area in the user space, and belonging to the requested record type, The obtained response data is stored at the end of the domain name resolution request packet in the first buffer area, and the header data of the domain name resolution request packet is modified to obtain a domain name resolution response packet.
- the non-domain name resolution response packet is fed back to the operating system kernel response.
- the various steps in the various embodiments of the present application are not necessarily performed in the order indicated by the steps. Except as explicitly stated herein, the execution of these steps is not strictly limited, and the steps may be performed in other orders. Moreover, at least some of the steps in the embodiments may include multiple sub-steps or multiple stages, which are not necessarily performed at the same time, but may be executed at different times, and the execution of these sub-steps or stages The order is also not necessarily sequential, but may be performed alternately or alternately with other steps or at least a portion of the sub-steps or stages of the other steps.
- a server 1100 is provided.
- the internal structure of the server 1100 can be referred to the structure shown in FIG. 2.
- Each of the modules described below can be implemented in whole or in part by software, hardware, or a combination thereof.
- the server 1100 includes an acquisition module 1101, a modification module 1102, an extraction module 1103, a lookup module 1104, and a combination module 1105.
- the obtaining module 1101 is configured to obtain a domain name resolution request packet, and cache the obtained domain name resolution request packet to the first buffer area.
- the modifying module 1102 is configured to modify the header data included in the cached domain name resolution request packet in the first buffer area, and obtain the header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet.
- the extracting module 1103 is configured to extract a domain name that is requested by the cached domain name resolution request packet and a record type of the request.
- the searching module 1104 is configured to search, in the second buffer area, the pre-cached response data corresponding to the extracted domain name and belonging to the extracted record type.
- the combination module 1105 is configured to combine the found response data with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- the server 1100 stores the obtained domain name resolution request packet in the first buffer area, and completes the process of parsing the cached domain name resolution request packet in the first buffer area, and the header data included in the domain name resolution request packet is Modify the header data of the corresponding domain name resolution response packet, and then combine the found response data with the modified domain name resolution request packet to obtain a domain name resolution response packet.
- the response data of the search is pre-stored in the second buffer area, and can be directly combined with the modified domain name resolution request packet after being found, which greatly improves the domain name resolution efficiency.
- the domain name resolution process can be completed in the first buffer area, which effectively reduces the number of data copies, and further improves the domain name resolution efficiency.
- the obtaining apparatus 1101 is further configured to: when the operating system kernel reads the data packet from the network card receiving queue and delivers the data to the user space, acquire the data protocol identifier included in the delivered data packet; when the data protocol identifier indicates the delivery When the data packet is a domain name resolution request packet, the domain name resolution request packet is obtained.
- the first buffer area and the second buffer area are in user space.
- the data packet determined to be the domain name resolution request packet is directly parsed in the user space, and does not need to undergo a transition of the kernel space, thereby avoiding the problem of requiring multiple process data replication in the kernel space for parsing, and improving The efficiency of domain name resolution.
- the packet that is determined to be a non-domain name resolution request packet is fed back to the operating system kernel, and the processing method for the data packet that cannot be parsed in the user space is provided, and the success rate of the packet parsing is improved.
- the modifying module 1102 is further configured to determine a first address pointer of the domain name resolution request packet buffered in the first buffer area, and determine an address pointer offset of the data to be modified in the domain name resolution request packet cached in the first buffer area.
- the data to be modified is the data of the difference between the header data of the domain name resolution request packet and the corresponding domain name resolution response packet; the data to be modified is located in the first buffer area according to the offset of the first address pointer and the address pointer;
- the data to be modified is modified into data corresponding to the data to be modified in the domain name resolution response packet.
- the domain name resolution request packet header data is directly modified into the header data of the domain name resolution response packet corresponding to the domain name resolution request packet in the first buffer area of the cache domain name resolution request packet, thereby avoiding the parsing process.
- the cumbersome steps of real-time encapsulation of the domain name resolution response packet are required, which reduces the response time and further improves the efficiency of domain name resolution.
- the searching module 1104 is further configured to obtain a hash value mapped by the extracted domain name; determine a linked list pointed to by the hash value in the hash table; and look up the extracted domain name in the linked list and the extracted record a node corresponding to the type; extracting a cache address of the response data from the found node; and reading the corresponding pre-cached response data from the second buffer area according to the cache address.
- the cache address of the response data is searched in the hash table, and then the response data is read in the cache according to the found address, thereby avoiding the problem that it is a waste of time to directly search for the corresponding response data in the cache.
- the earth has improved the search rate and further improved the efficiency of domain name resolution.
- the combining module 1105 is further configured to obtain a first address pointer of the modified domain name resolution request packet in the first buffer area, and obtain an address pointer offset corresponding to the total data amount of the modified domain name resolution request packet. Determining a first address pointer of the response data according to the first address pointer and the address pointer offset of the modified domain name resolution request packet; buffering the response data to the first buffer area according to the first address pointer of the response data, and obtaining the cached first
- the cache area includes a modified domain name resolution request packet and a cached response data domain name resolution response packet.
- the domain name resolution process is performed in the first buffer area from the domain name resolution request packet and the domain name resolution response packet, and only the response data found in the second buffer area is copied to the domain name in the cache area.
- the domain name resolution response packet can be obtained by combining with the domain name resolution request packet, thereby improving the efficiency of domain name resolution.
- FIG. 12 is a structural block diagram of a server 1100 in another embodiment. Referring to FIG. 12, the server 1100 further includes a pre-caching module 1106.
- the pre-caching module 1106 is configured to: if the current time exceeds the buffering period included in the response data, update the domain name resolution record; encapsulate the updated domain name resolution record into the updated response data according to the preset response format; The cached response data is replaced with the updated response data.
- the response data is obtained by encapsulating the domain name resolution record according to a preset response format.
- the obtained domain name resolution request packet is stored in the first buffer area in the user space, and the parsing process of the cached domain name resolution request packet is completed in the first buffer area by a separate parsing thread to avoid The thread waits for the data to process the waiting process, which improves the data processing efficiency.
- the acknowledgment data of the lookup is pre-stored in the second buffer area in the user space, and can be straight after being found.
- the combination of the modified domain name resolution request packet greatly improves the efficiency of domain name resolution.
- the data required in the domain name resolution process is stored in the buffer area of the user space, and does not need to be read from the disk, which greatly improves the data processing speed. After the response data is copied from the second buffer area to the first buffer area, the domain name resolution process can be completed in the first buffer area, which effectively reduces the number of data copies, and further improves the domain name resolution efficiency.
- a server 1300 is provided.
- the internal structure of the server 1300 can be referred to the structure shown in FIG. 2.
- Each of the modules described below can be implemented in whole or in part by software, hardware, or a combination thereof.
- the server 1300 includes a selection module 1301, an acquisition module 1302, a modification module 1303, an extraction module 1304, a lookup module 1305, and a combination module 1306.
- the selecting module 1301 is configured to select a parsing thread in an idle state among parallel parsing threads.
- the obtaining module 1302 is configured to obtain a domain name resolution request packet by using the selected parsing thread, and cache the obtained domain name resolution request packet to the first buffer area.
- the modifying module 1303 is configured to modify, by using the selected parsing thread, the header data included in the cached domain name resolution request packet in the first buffer area, to obtain the header data of the domain name resolution response packet corresponding to the cached domain name resolution request packet.
- the extracting module 1304 is configured to extract, by the selected parsing thread, the domain name that is parsed by the cached domain name resolution request packet and the requested record type.
- the searching module 1305 is configured to search, in the second buffer area, the pre-cached response data corresponding to the extracted domain name by the selected parsing thread and belonging to the extracted record type.
- the combination module 1306 is configured to combine the found response data with the modified domain name resolution request packet by using the selected parsing thread to obtain a domain name resolution response packet.
- the domain name resolution process is separately performed by the parsing thread, and does not involve data interaction processing with other threads, thereby avoiding the waiting process of thread interaction processing data, and further improving the domain name parsing efficiency.
- the obtaining module 1302 is further configured to: when the operating system kernel reads the data packet from the network card receiving queue and delivers the data to the user space, acquires the delivered data packet by using the selected parsing thread.
- the data protocol identifier included in the data protocol identifier when the data protocol identifier indicates that the delivered data packet is a non-domain name resolution request packet, the data packet delivered by the selected parsing thread is cached to the third buffer area in the user space;
- the kernel interaction thread that parses the thread reads the packet from the third buffer and feeds the read packet back to the operating system kernel for response.
- the first buffer area and the second buffer area are in user space.
- the non-domain name resolution request packet that cannot be parsed by the domain name resolution process of the user space is fed back to the operating system kernel for response, thereby avoiding the problem that the domain name resolution process of the user space fails to resolve the non-domain name resolution request packet.
- Non-volatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
- Volatile memory can include random access memory (RAM) or external cache memory.
- RAM is available in a variety of formats, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronization chain.
- SRAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- Synchlink DRAM SLDRAM
- Memory Bus Radbus
- RDRAM Direct RAM
- DRAM Direct Memory Bus Dynamic RAM
- RDRAM Memory Bus Dynamic RAM
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (24)
- 一种域名解析方法,包括:服务器获取域名解析请求包;所述服务器将获取的所述域名解析请求包缓存至第一缓存区;所述服务器在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据;所述服务器提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型;所述服务器在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据;及所述服务器将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包。
- 根据权利要求1所述的方法,其特征在于,所述第一缓存区和所述第二缓存区在用户空间中;所述服务器获取域名解析请求包包括:所述服务器在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,获取传递的所述数据包中包括的数据协议标识;及当所述数据协议标识表示传递的所述数据包为域名解析请求包时,所述服务器获取所述域名解析请求包。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:所述服务器在并行的解析线程中选择处于空闲状态的解析线程;及所述服务器通过选择的所述解析线程执行所述获取域名解析请求包的步骤,所述将获取的所述域名解析请求包缓存至第一缓存区,所述在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据,所述提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型,所述在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答 数据,以及所述将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包。
- 根据权利要求3所述的方法,其特征在于,所述服务器第一缓存区和所述第二缓存区在用户空间中;所述通过选择的所述解析线程执行所述获取域名解析请求包包括:所述服务器在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,通过选择的所述解析线程获取传递的所述数据包中包括的数据协议标识;当所述数据协议标识表示传递的所述数据包为非域名解析请求包时,所述服务器通过选择的所述解析线程将传递的所述数据包缓存至所述用户空间中的第三缓存区;及所述服务器通过独立于并行的解析线程的内核交互线程从所述第三缓存区中读取数据包,并将读取的数据包反馈至所述操作系统内核进行响应。
- 根据权利要求1所述的方法,其特征在于,所述服务器在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据包括:所述服务器确定所述第一缓存区中缓存的所述域名解析请求包的首地址指针;所述服务器确定所述第一缓存区中缓存的所述域名解析请求包中待修改数据的地址指针偏移量;所述待修改数据为所述域名解析请求包与其相应的域名解析应答包各自的头部数据中差异的数据;所述服务器根据所述首地址指针与所述地址指针偏移量在所述第一缓存区中定位所述待修改数据;及所述服务器将定位的所述待修改数据修改为所述域名解析应答包中与所述待修改数据相应的数据。
- 根据权利要求1所述的方法,其特征在于,所述应答数据通过将域名解析记录按照预设应答格式进行封装得到;所述方法还包括:若当前时间超出所述应答数据所包括的缓存期限,所述服务器则更新所述域名解析记录;所述服务器按照预设应答格式将更新的所述域名解析记录封装为更新的应答数据;及所述服务器将所述第二缓存区中预缓存的所述应答数据替换为所述更新的应答数据。
- 根据权利要求1所述的方法,其特征在于,所述服务器在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据包括:所述服务器获取提取的所述域名所映射的哈希值;所述服务器在哈希表中确定所述哈希值所指向的链表;所述服务器在所述链表中查找包括提取的所述域名且与提取的所述记录类型对应的结点;所述服务器从查找到的所述结点中提取应答数据的缓存地址;及所述服务器根据所述缓存地址从所述第二缓存区中读取相应的预缓存的应答数据。
- 根据权利要求1所述的方法,其特征在于,所述服务器将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包包括:所述服务器获取所述第一缓存区中修改后的所述域名解析请求包的首地址指针;所述服务器获取与修改后的所述域名解析请求包的数据总量对应的地址指针偏移量;所述服务器根据修改后的所述域名解析请求包的首地址指针和所述地址指针偏移量,确定所述应答数据的首地址指针;及所述服务器根据所述应答数据的首地址指针将所述应答数据缓存至所述第一缓存区,得到缓存于所述第一缓存区且包括修改后的所述域名解析请求 包以及缓存的所述应答数据的域名解析应答包。
- 一种服务器,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤:获取域名解析请求包;将获取的所述域名解析请求包缓存至第一缓存区;在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据;提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型;在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据;及将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包。
- 根据权利要求9所述的服务器,其特征在于,所述第一缓存区和所述第二缓存区在用户空间中;所述获取域名解析请求包包括:在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,获取传递的所述数据包中包括的数据协议标识;及当所述数据协议标识表示传递的所述数据包为域名解析请求包时,获取所述域名解析请求包。
- 根据权利要求9所述的服务器,其特征在于,所述计算机可读指令被所述处理器执行时,还使得所述处理器执行以下步骤:在并行的解析线程中选择处于空闲状态的解析线程;及通过选择的所述解析线程执行所述获取域名解析请求包,所述将获取的所述域名解析请求包缓存至第一缓存区,所述在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据,所述提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型,所述在第二缓存区中查找与提取的所 述域名对应,且属于提取的所述记录类型的预缓存的应答数据,以及所述将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包。
- 根据权利要求11所述的服务器,其特征在于,所述第一缓存区和所述第二缓存区在用户空间中;所述通过选择的所述解析线程执行所述获取域名解析请求包包括:在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,通过选择的所述解析线程获取传递的所述数据包中包括的数据协议标识;当所述数据协议标识表示传递的所述数据包为非域名解析请求包时,通过选择的所述解析线程将传递的所述数据包缓存至所述用户空间中的第三缓存区;及通过独立于并行的解析线程的内核交互线程从所述第三缓存区中读取数据包,并将读取的数据包反馈至所述操作系统内核进行响应。
- 根据权利要求9所述的服务器,其特征在于,所述在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据包括:确定所述第一缓存区中缓存的所述域名解析请求包的首地址指针;确定所述第一缓存区中缓存的所述域名解析请求包中待修改数据的地址指针偏移量;所述待修改数据为所述域名解析请求包与其相应的域名解析应答包各自的头部数据中差异的数据;根据所述首地址指针与所述地址指针偏移量在所述第一缓存区中定位所述待修改数据;及将定位的所述待修改数据修改为所述域名解析应答包中与所述待修改数据相应的数据。
- 根据权利要求9所述的服务器,其特征在于,所述应答数据通过将域名解析记录按照预设应答格式进行封装得到;所述计算机可读指令被所述处理器执行时,还使得所述处理器执行以下 步骤:若当前时间超出所述应答数据所包括的缓存期限,则更新所述域名解析记录;按照预设应答格式将更新的所述域名解析记录封装为更新的应答数据;及将所述第二缓存区中预缓存的所述应答数据替换为所述更新的应答数据。
- 根据权利要求9所述的服务器,其特征在于,所述在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据包括:获取提取的所述域名所映射的哈希值;在哈希表中确定所述哈希值所指向的链表;在所述链表中查找包括提取的所述域名且与提取的所述记录类型对应的结点;从查找到的所述结点中提取应答数据的缓存地址;及根据所述缓存地址从所述第二缓存区中读取相应的预缓存的应答数据。
- 根据权利要求9所述的服务器,其特征在于,所述将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包包括:获取所述第一缓存区中修改后的所述域名解析请求包的首地址指针;获取与修改后的所述域名解析请求包的数据总量对应的地址指针偏移量;根据修改后的所述域名解析请求包的首地址指针和所述地址指针偏移量,确定所述应答数据的首地址指针;及根据所述应答数据的首地址指针将所述应答数据缓存至所述第一缓存区,得到缓存于所述第一缓存区且包括修改后的所述域名解析请求包以及缓存的所述应答数据的域名解析应答包。
- 一个或多个存储有计算机可读指令的非易失性存储介质,所述计算 机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取域名解析请求包;将获取的所述域名解析请求包缓存至第一缓存区;在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据;提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型;在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据;及将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包。
- 根据权利要求17所述的存储介质,其特征在于,所述第一缓存区和所述第二缓存区在用户空间中;所述获取域名解析请求包包括:在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,获取传递的所述数据包中包括的数据协议标识;及当所述数据协议标识表示传递的所述数据包为域名解析请求包时,获取所述域名解析请求包。
- 根据权利要求17所述的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,还使得一个或多个处理器执行以下步骤:在并行的解析线程中选择处于空闲状态的解析线程;及通过选择的所述解析线程执行所述获取域名解析请求包,所述将获取的所述域名解析请求包缓存至第一缓存区,所述在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据,所述提取缓存的所述域名解析请求包请求解析的域名以及请求的记录类型,所述在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据,以及所述将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析 应答包。
- 根据权利要求19所述的存储介质,其特征在于,所述第一缓存区和所述第二缓存区在用户空间中;所述通过选择的所述解析线程执行所述获取域名解析请求包包括:在操作系统内核从网卡接收队列中读取数据包并传递至用户空间时,通过选择的所述解析线程获取传递的所述数据包中包括的数据协议标识;当所述数据协议标识表示传递的所述数据包为非域名解析请求包时,通过选择的所述解析线程将传递的所述数据包缓存至所述用户空间中的第三缓存区;及通过独立于并行的解析线程的内核交互线程从所述第三缓存区中读取数据包,并将读取的数据包反馈至所述操作系统内核进行响应。
- 根据权利要求17所述的存储介质,其特征在于,所述在所述第一缓存区中修改缓存的所述域名解析请求包所包括的头部数据,得到与缓存的所述域名解析请求包相应的域名解析应答包的头部数据包括:确定所述第一缓存区中缓存的所述域名解析请求包的首地址指针;确定所述第一缓存区中缓存的所述域名解析请求包中待修改数据的地址指针偏移量;所述待修改数据为所述域名解析请求包与其相应的域名解析应答包各自的头部数据中差异的数据;根据所述首地址指针与所述地址指针偏移量在所述第一缓存区中定位所述待修改数据;及将定位的所述待修改数据修改为所述域名解析应答包中与所述待修改数据相应的数据。
- 根据权利要求17所述的存储介质,其特征在于,所述应答数据通过将域名解析记录按照预设应答格式进行封装得到;所述计算机可读指令被一个或多个处理器执行时,还使得一个或多个处理器执行以下步骤:若当前时间超出所述应答数据所包括的缓存期限,则更新所述域名解析记录;按照预设应答格式将更新的所述域名解析记录封装为更新的应答数据;及将所述第二缓存区中预缓存的所述应答数据替换为所述更新的应答数据。
- 根据权利要求17所述的存储介质,其特征在于,所述在第二缓存区中查找与提取的所述域名对应,且属于提取的所述记录类型的预缓存的应答数据包括:获取提取的所述域名所映射的哈希值;在哈希表中确定所述哈希值所指向的链表;在所述链表中查找包括提取的所述域名且与提取的所述记录类型对应的结点;从查找到的所述结点中提取应答数据的缓存地址;及根据所述缓存地址从所述第二缓存区中读取相应的预缓存的应答数据。
- 根据权利要求17所述的存储介质,其特征在于,所述将查找到的所述应答数据与修改后的所述域名解析请求包组合,得到域名解析应答包包括:获取所述第一缓存区中修改后的所述域名解析请求包的首地址指针;获取与修改后的所述域名解析请求包的数据总量对应的地址指针偏移量;根据修改后的所述域名解析请求包的首地址指针和所述地址指针偏移量,确定所述应答数据的首地址指针;及根据所述应答数据的首地址指针将所述应答数据缓存至所述第一缓存区,得到缓存于所述第一缓存区且包括修改后的所述域名解析请求包以及缓存的所述应答数据的域名解析应答包。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020197013202A KR102199403B1 (ko) | 2017-01-11 | 2017-12-22 | 도메인 네임 분석 방법, 서버 및 저장 매체 |
JP2019524972A JP6816275B2 (ja) | 2017-01-11 | 2017-12-22 | ドメイン名解析方法、サーバー及び記憶媒体 |
EP17891473.5A EP3570512B1 (en) | 2017-01-11 | 2017-12-22 | Domain name resolution method, server and storage medium |
US16/357,082 US10826869B2 (en) | 2017-01-11 | 2019-03-18 | Domain name resolution method, server and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710021111.4A CN106790762B (zh) | 2017-01-11 | 2017-01-11 | 域名解析方法和装置 |
CN201710021111.4 | 2017-01-11 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/357,082 Continuation US10826869B2 (en) | 2017-01-11 | 2019-03-18 | Domain name resolution method, server and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018130061A1 true WO2018130061A1 (zh) | 2018-07-19 |
Family
ID=58947925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/117904 WO2018130061A1 (zh) | 2017-01-11 | 2017-12-22 | 域名解析方法、服务器和存储介质 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10826869B2 (zh) |
EP (1) | EP3570512B1 (zh) |
JP (1) | JP6816275B2 (zh) |
KR (1) | KR102199403B1 (zh) |
CN (1) | CN106790762B (zh) |
MA (1) | MA47252A (zh) |
WO (1) | WO2018130061A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374874B2 (en) * | 2018-11-06 | 2022-06-28 | Nippon Telegraph And Telephone Corporation | Access control method, access control device, and data processing device |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790762B (zh) | 2017-01-11 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 域名解析方法和装置 |
CN107483604B (zh) * | 2017-08-29 | 2020-12-15 | 武汉斗鱼网络科技有限公司 | Nginx-RTMP动态更新DNS缓存的方法和装置 |
CN108600406B (zh) * | 2018-03-27 | 2021-06-01 | 上海兆芯集成电路有限公司 | 处理不同类型请求的网络装置 |
CN110147864B (zh) | 2018-11-14 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 编码图案的处理方法和装置、存储介质、电子装置 |
CN111030988B (zh) * | 2019-11-01 | 2022-01-04 | 烽火通信科技股份有限公司 | 一种自反馈调度导流方法及系统 |
CN111711706B (zh) * | 2020-04-30 | 2023-04-07 | 广州根链国际网络研究院有限公司 | Dns递归请求方法及系统 |
CN111770049B (zh) * | 2020-05-09 | 2022-06-03 | 优刻得科技股份有限公司 | 全局缓存变量及报文信息存储方法及装置 |
KR102537370B1 (ko) * | 2020-05-29 | 2023-05-30 | 주식회사 맥데이타 | 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법 및 장치 |
KR102423039B1 (ko) * | 2020-06-30 | 2022-07-21 | 주식회사 맥데이타 | 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 저장 방법 및 장치 |
CN112040027B (zh) * | 2020-09-14 | 2023-06-16 | 网易(杭州)网络有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112887442B (zh) * | 2021-01-11 | 2023-02-07 | 杭州迪普科技股份有限公司 | 域名解析查询请求的处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102336A (zh) * | 2007-06-14 | 2008-01-09 | 中兴通讯股份有限公司 | 一种电话号码映射域名服务器的内存处理方法及装置 |
US20090300191A1 (en) * | 2008-05-27 | 2009-12-03 | Silver Spring Networks, Inc. | Multi-Protocol Network Registration and Address Resolution |
CN102075432A (zh) * | 2011-01-25 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种用于发送及接收报文的方法、装置、设备及系统 |
CN104917851A (zh) * | 2015-05-08 | 2015-09-16 | 亚信科技(南京)有限公司 | 信息处理方法及dns缓存服务器 |
CN106790762A (zh) * | 2017-01-11 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 域名解析方法和装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073707A1 (en) * | 2001-05-23 | 2004-04-15 | Hughes Electronics Corporation | Generating a list of network addresses for pre-loading a network address cache via multicast |
US7769826B2 (en) * | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
US7440453B2 (en) * | 2004-11-12 | 2008-10-21 | International Business Machines Corporation | Determining availability of a destination for computer network communications |
US7467230B2 (en) * | 2006-02-28 | 2008-12-16 | Microsoft Corporation | Global names zone |
US8677018B2 (en) * | 2008-08-25 | 2014-03-18 | Google Inc. | Parallel, side-effect based DNS pre-caching |
US9197486B2 (en) * | 2008-08-29 | 2015-11-24 | Google Inc. | Adaptive accelerated application startup |
US9083644B2 (en) * | 2012-02-14 | 2015-07-14 | International Business Machines Corporation | Packet routing for embedded applications sharing a single network interface over multiple virtual networks |
US9215205B1 (en) * | 2012-04-20 | 2015-12-15 | Infoblox Inc. | Hardware accelerator for a domain name server cache |
CN102882991B (zh) * | 2012-09-29 | 2016-03-30 | 北京奇虎科技有限公司 | 一种浏览器及其进行域名解析的方法 |
CN103634315B (zh) * | 2013-11-29 | 2017-11-10 | 哈尔滨工业大学(威海) | 域名服务器的前端控制方法及系统 |
US9531849B2 (en) * | 2014-06-19 | 2016-12-27 | Cavium, Inc. | Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof |
US10061619B2 (en) * | 2015-05-29 | 2018-08-28 | Red Hat, Inc. | Thread pool management |
CN105162900B (zh) * | 2015-09-25 | 2019-02-15 | 中国互联网络信息中心 | 一种多节点协作的域名解析和缓存方法及系统 |
CN105681483B (zh) * | 2015-12-29 | 2019-06-11 | 赛尔网络有限公司 | 基于dns服务器测量特定ip范围解析占比的方法及系统 |
CN106096023B (zh) * | 2016-06-24 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
CN108206814B (zh) * | 2016-12-20 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种防御dns攻击的方法、装置及系统 |
US10375016B1 (en) * | 2018-04-02 | 2019-08-06 | Cloudflare, Inc. | Managing domain name system (DNS) record cache across multiple DNS servers using multicast communication |
-
2017
- 2017-01-11 CN CN201710021111.4A patent/CN106790762B/zh active Active
- 2017-12-22 KR KR1020197013202A patent/KR102199403B1/ko active IP Right Grant
- 2017-12-22 MA MA047252A patent/MA47252A/fr unknown
- 2017-12-22 WO PCT/CN2017/117904 patent/WO2018130061A1/zh unknown
- 2017-12-22 EP EP17891473.5A patent/EP3570512B1/en active Active
- 2017-12-22 JP JP2019524972A patent/JP6816275B2/ja active Active
-
2019
- 2019-03-18 US US16/357,082 patent/US10826869B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102336A (zh) * | 2007-06-14 | 2008-01-09 | 中兴通讯股份有限公司 | 一种电话号码映射域名服务器的内存处理方法及装置 |
US20090300191A1 (en) * | 2008-05-27 | 2009-12-03 | Silver Spring Networks, Inc. | Multi-Protocol Network Registration and Address Resolution |
CN102075432A (zh) * | 2011-01-25 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种用于发送及接收报文的方法、装置、设备及系统 |
CN104917851A (zh) * | 2015-05-08 | 2015-09-16 | 亚信科技(南京)有限公司 | 信息处理方法及dns缓存服务器 |
CN106790762A (zh) * | 2017-01-11 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 域名解析方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3570512A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374874B2 (en) * | 2018-11-06 | 2022-06-28 | Nippon Telegraph And Telephone Corporation | Access control method, access control device, and data processing device |
Also Published As
Publication number | Publication date |
---|---|
US20190215299A1 (en) | 2019-07-11 |
JP2019537372A (ja) | 2019-12-19 |
US10826869B2 (en) | 2020-11-03 |
CN106790762A (zh) | 2017-05-31 |
CN106790762B (zh) | 2022-05-24 |
EP3570512A1 (en) | 2019-11-20 |
MA47252A (fr) | 2019-11-20 |
EP3570512A4 (en) | 2020-11-18 |
EP3570512B1 (en) | 2023-05-24 |
JP6816275B2 (ja) | 2021-01-20 |
KR20190062530A (ko) | 2019-06-05 |
KR102199403B1 (ko) | 2021-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018130061A1 (zh) | 域名解析方法、服务器和存储介质 | |
US11388251B2 (en) | Providing access to managed content | |
US8463850B1 (en) | System and method of algorithmically generating a server side transaction identifier | |
US7953077B2 (en) | Network processor with single interface supporting tree search engine and CAM | |
US11102118B2 (en) | System and method for supporting ICN-within-IP networking | |
WO2019165665A1 (zh) | 一种域名解析方法、服务器及系统 | |
WO2017114205A1 (zh) | 短链接处理方法、装置及服务器 | |
US8321503B2 (en) | Context-specific network resource addressing model for distributed services | |
WO2014206118A1 (zh) | 基于tcp协议的移动互联网域名解析方法及dns服务器 | |
US20210377211A1 (en) | Cross protocol association for internet addresses for metadata association systems and methods | |
WO2020119310A1 (zh) | 查找表存储方法、装置及计算机可读存储介质 | |
US20160275199A1 (en) | Data processing device, data processing method, and non-transitory computer readable medium | |
US11843650B2 (en) | Two-level cache architecture for live video streaming through hybrid ICN | |
EP3107010B1 (en) | Data integration pipeline | |
CN111352938B (zh) | 数据处理方法、计算机设备及存储介质 | |
CN106959975B (zh) | 一种转码资源缓存处理方法、装置及设备 | |
US10185783B2 (en) | Data processing device, data processing method, and non-transitory computer readable medium | |
CN115004665A (zh) | 文件分享方法、装置及系统 | |
CN109495525B (zh) | 网络组件、解析内容标识的方法和计算机可读存储介质 | |
US20180367452A1 (en) | Information centric networking over multi-access network interfaces | |
CN116866429A (zh) | 一种数据访问方法及相关装置 | |
WO2021087865A1 (zh) | 寻址方法、寻址系统以及寻址装置 | |
CN115129779A (zh) | 数据库的同步方法、装置及可读介质 | |
Alhisnawi | Forwarding information base design techniques in content-centric networking: a survey | |
WO2023143061A1 (zh) | 一种数据访问方法及其数据访问系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17891473 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20197013202 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2019524972 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2017891473 Country of ref document: EP Effective date: 20190812 |