KR102016627B1 - Network interface apparatus using jumbo frame - Google Patents

Network interface apparatus using jumbo frame Download PDF

Info

Publication number
KR102016627B1
KR102016627B1 KR1020180073571A KR20180073571A KR102016627B1 KR 102016627 B1 KR102016627 B1 KR 102016627B1 KR 1020180073571 A KR1020180073571 A KR 1020180073571A KR 20180073571 A KR20180073571 A KR 20180073571A KR 102016627 B1 KR102016627 B1 KR 102016627B1
Authority
KR
South Korea
Prior art keywords
packet
information
host
jumbo
received
Prior art date
Application number
KR1020180073571A
Other languages
Korean (ko)
Inventor
김창완
유인규
최간호
Original Assignee
(주) 시스메이트
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 (주) 시스메이트 filed Critical (주) 시스메이트
Priority to KR1020180073571A priority Critical patent/KR102016627B1/en
Application granted granted Critical
Publication of KR102016627B1 publication Critical patent/KR102016627B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

A network interface device using a jumbo frame is disclosed. According to an embodiment of the present invention, the network interface device comprises: a packet receiving unit for receiving a packet through a network; a packet analyzing unit configured to analyze the received packets to generate packet analysis information; a jumbo frame generation unit including packet analysis information in a header of the received packet and generating a jumbo frame by combining received packets including the packet analysis information; and a host transmitting unit for transmitting the jumbo frame to a host.

Description

점보 프레임을 이용하는 네트워크 인터페이스 장치 {Network interface apparatus using jumbo frame}Network interface apparatus using jumbo frame

본 발명은 트래픽 처리 및 관리기술에 관한 것이다.The present invention relates to traffic processing and management technology.

정보통신 기술의 발전에 따라 정보 사용자들은 정보의 수집뿐 아니라 유통, 구매, 금융 등 생활 전반에 윤택함과 편리함을 제공받는 반면 정보의 해킹, 바이러스 침입, 네트워크 공격 및 유해정보의 무작위 살포와 같은 정보전달의 역기능이 정보 사회 전체에 영향을 주고 있다. 이와 같이 네트워크에서 사용자에게 전달되지 않아야 할 정보들을 사전에 점검하여 제거할 수 있도록 네트워크에서 전달되는 패킷 내에 포함되어 있는 정보를 분석하여 바이러스와 같은 침입정보나 사용자에게 유해한 정보를 포함하는 패킷을 검출하여 제거하는 기능을 수행한다.With the development of information and communication technology, information users are provided with convenience and convenience not only for collecting information but also for distribution, purchasing, finance, etc. in general, while delivering information such as information hacking, virus intrusion, network attack, and random spreading of harmful information. Dysfunction affects the entire information society. As such, by analyzing the information contained in the packet transmitted from the network to detect and remove the information that should not be delivered to the user in the network, a packet containing intrusion information such as a virus or information harmful to the user is detected. Perform the function of removing.

일반적으로 네트워크 장치는 크게 호스트와 네트워크 인터페이스 장치를 포함한다. 이러한 서비스들을 안정적이고 고속으로 처리하기 위해 네트워크 장치들은 고속의 내부 버스와 고속의 메모리, 고속의 프로세서를 사용해야만 한다. 일반적인 네트워크 장치에서의 패킷 수신 및 송신 방법은, 네트워크 인터페이스 카드로 수신된 패킷을 곧바로 호스트의 메모리에 저장하고 이를 호스트의 프로세서가 처리한 후 호스트 메모리에서 읽어 네트워크 인터페이스 카드로 출력하여 네트워크 회선을 통해 외부로 송신하는 것이다.Generally, a network device largely includes a host and a network interface device. To handle these services stably and at high speeds, network devices must use high speed internal buses, high speed memory, and high speed processors. In a general network device, a packet reception and transmission method directly stores a packet received by a network interface card in a host's memory, processes it by a host processor, reads it from the host memory, and outputs the packet to the network interface card through an external network line. To send.

그러나 네트워크 인터페이스의 고속화 정도가 네트워크 장치의 프로세서나 내부 버스의 고속화 속도보다 빠른 속도로 증가함으로써, 이전의 네트워크 장치의 패킷 수신 및 송신 방식에 의해서는 패킷 송신의 지연이 불가피하다. 결국, 이전의 네트워크 장치로는 고속의 인터페이스와 고용량의 서비스 제공이 어렵게 되었다.However, as the speed of the network interface is increased at a speed faster than the speed of the processor or the internal bus of the network device, the delay of packet transmission is inevitable by the packet reception and transmission method of the previous network device. As a result, previous network devices have made it difficult to provide high speed interfaces and high capacity services.

일 실시 예에 따라, 네트워크 인터페이스 장치와 호스트 간 전송 효율을 높이고 고속으로 정보를 송수신할 수 있으며 호스트의 패킷 처리 부하를 경감시킬 수 있는 점보 프레임을 이용한 네트워크 인터페이스 장치를 제안한다.According to an embodiment of the present invention, a network interface device using a jumbo frame capable of increasing transmission efficiency between a network interface device and a host, transmitting and receiving information at high speed, and reducing a packet processing load of the host is proposed.

일 실시 예에 따른 네트워크 인터페이스 장치는, 네트워크를 통해 패킷을 수신하는 패킷 수신부와, 수신 패킷들을 분석하여 패킷 분석정보를 생성하는 패킷 분석부와, 수신 패킷의 헤더에 패킷 분석정보를 포함 시키고 패킷 분석정보를 포함하는 수신 패킷들을 결합하여 하나의 점보 프레임을 생성하는 점보 프레임 생성부와, 호스트에 점보 프레임을 송신하는 호스트 송신부를 포함한다.According to an embodiment, a network interface apparatus includes a packet receiver configured to receive a packet through a network, a packet analyzer configured to analyze the received packets to generate packet analysis information, and include packet analysis information in a header of the received packet and analyze the packet. Jumbo frame generation unit for generating a jumbo frame by combining the received packets including the information, and a host transmitter for transmitting the jumbo frame to the host.

패킷 분석정보는 패킷 분류정보, 패턴매칭 정보 및 필터링 정보 중 어느 하나일 수 있다. 점보 프레임은 하나의 점보 헤더, 패킷 별 패킷 분석정보를 포함하는 헤더 및 패킷 별 데이터를 포함할 수 있다.The packet analysis information may be any one of packet classification information, pattern matching information, and filtering information. The jumbo frame may include one jumbo header, a header including packet analysis information per packet, and packet data.

패킷 분석부는 패킷 분석을 통해 각 수신 패킷의 5-튜플 정보를 획득하고 5-튜플 정보로부터 해시 값을 계산하며, 점보 프레임 생성부는 계산된 해시 값을 점보 프레임을 구성하는 수신 패킷들의 헤더에 포함 시키고 헤더에 해시 값이 포함된 수신 패킷들을 결합하여 점보 프레임을 생성할 수 있다.The packet analyzer obtains 5-tuple information of each received packet through packet analysis and calculates a hash value from the 5-tuple information.The jumbo frame generator includes the calculated hash value in the header of the received packets constituting the jumbo frame. Jumbo frames may be generated by combining received packets having a hash value in the header.

패킷 분석부는 수신 패킷의 정보와 미리 설정된 패턴을 비교 분석하여 소정의 패턴을 검색하는 패턴매칭을 수행하여 패턴매칭 정보를 얻고, 점보 프레임 생성부는 패턴매칭 정보를 수신 패킷의 헤더에 포함 시키고 헤더에 패턴매칭 정보가 포함된 수신 패킷들을 결합하여 점보 프레임을 생성할 수 있다. 패턴매칭 정보는 패턴매칭 유무와 패턴매칭 테이블 ID를 포함할 수 있다.The packet analysis unit compares the information of the received packet with a preset pattern and performs pattern matching to search for a predetermined pattern to obtain pattern matching information.The jumbo frame generator includes the pattern matching information in the header of the received packet. Jumbo frames may be generated by combining received packets including matching information. The pattern matching information may include a pattern matching presence and pattern matching table ID.

패킷 분석부는 수신 패킷의 정보와 미리 설정된 패턴과의 비교를 통해 소정의 수신 패킷의 정보를 필터링하는 보안 필터링을 수행하여 필터링 정보를 얻고, 점보 프레임 생성부는 필터링 정보를 수신 패킷의 헤더에 포함 시키고 헤더에 필터링 정보가 포함된 수신 패킷들을 결합하여 점보 프레임을 생성할 수 있다. 필터링 정보는 필터링 유무와 필터링 시의 패턴매칭 테이블 ID를 포함할 수 있다.The packet analyzer obtains the filtering information by performing security filtering to filter the information of the received packet by comparing the information of the received packet with a preset pattern, and the jumbo frame generator includes the filtering information in the header of the received packet. Jumbo frames may be generated by combining received packets with filtering information. The filtering information may include filtering presence and pattern matching table ID at the time of filtering.

네트워크 인터페이스 장치는, 호스트로부터 점보 프레임을 수신하는 호스트 수신부와, 수신된 점보 프레임을 분리하여 일반 패킷을 생성하는 일반패킷 생성부와, 생성된 일반패킷을 네트워크를 통해 송신하는 패킷 송신부를 더 포함할 수 있다.The network interface device may further include a host receiving unit receiving a jumbo frame from a host, a general packet generation unit for generating a general packet by separating the received jumbo frame, and a packet transmission unit for transmitting the generated general packet through a network. Can be.

호스트 송신부는 호스트의 호스트 메모리에 DMA(Direct Memory Access) 방식으로 점보 프레임을 전달할 수 있다.The host transmitter may transmit jumbo frames to the host memory of the host by direct memory access (DMA).

네트워크 인터페이스 장치가 호스트에 패킷을 송신할 때 여러 패킷을 모아 하나의 점보 프레임 단위로 전송함에 따라, 네트워크 장비의 전송 효율을 높이고 패킷 처리 부하를 덜 수 있다. 하나의 점보 프레임 단위는 다수 개의 수신 패킷으로 구성되므로 한 번에 전송하는 패킷의 수를 늘려 전송할 수 있다. 또한, 수신 패킷 여러 개를 모아 점보 프레임을 만들면 대역폭을 줄일 수 있어 더 많은 정보를 호스트에 전송할 수 있다.When the network interface device transmits a packet to the host, the packet is collected and transmitted in a single jumbo frame unit, thereby increasing the transmission efficiency of the network equipment and reducing the packet processing load. Since one jumbo frame unit is composed of a plurality of received packets, it is possible to increase the number of packets transmitted at one time. In addition, jumbo frames can be collected by collecting multiple incoming packets to reduce bandwidth, allowing more information to be sent to the host.

네트워크 인터페이스 장치가 점보 프레임을 호스트에 전송할 때, 호스트가 필요로 하는 정보를 포함 시켜 전송함에 따라 네트워크 패킷처리 성능부하를 줄일 수 있다. 예를 들어, 호스트로 패킷을 송신하기 이전에 미리 네트워크 인터페이스 장치에서 패턴매칭, 보안 필터링 등의 네트워크 보안 기능을 수행하고 그 수행결과를 수신 패킷의 헤더에 포함 시켜 호스트에 송신함에 따라, 호스트의 부하를 덜어주어 네트워크 장비의 성능을 향상시킬 수 있다.When the network interface device transmits jumbo frames to the host, the network packet processing performance load can be reduced by including and transmitting the information required by the host. For example, prior to sending a packet to the host, the network interface device performs network security functions such as pattern matching and security filtering in advance, and includes the result of the execution in the header of the received packet to transmit to the host. This can improve the performance of network equipment.

네트워크 인터페이스 장치가 호스트 메모리로 DMA 방식으로 패킷을 전송할 때 전송 효율을 높일 수 있다. 또한, 호스트 프로세서의 DMA 인터럽트 오버헤드를 줄여 부하(load)를 경감시킬 수 있다. 호스트 메모리로 DMA 방식으로 패킷을 전송할 때의 전송 효율이 높아지면 패킷 전송 지연(latency)을 줄일 수 있다.The transmission efficiency can be increased when the network interface device transmits a packet to the host memory in a DMA manner. In addition, the DMA interrupt overhead of the host processor can be reduced to reduce the load. When the transmission efficiency is increased when the packet is transmitted to the host memory by the DMA method, the packet transmission latency can be reduced.

도 1은 본 발명의 일 실시 예에 따른 네트워크 장치의 구성을 도시한 도면,
도 2는 본 발명의 일 실시 예에 따른 네트워크 인터페이스 장치의 구성을 도시한 도면,
도 3은 네트워크 인터페이스 장치에서 수신 패킷 별로 호스트에 전송할 때의 패킷 전송시간을 설명하기 위한 패킷 구조,
도 4는 본 발명의 일 실시 예에 따른 네트워크 인터페이스 장치에서 일반 패킷을 결합한 하나의 점보 프레임으로 호스트에 전송할 때의 패킷 전송시간을 설명하기 위한 패킷 구조이다.
1 is a diagram showing the configuration of a network device according to an embodiment of the present invention;
2 is a diagram illustrating a configuration of a network interface device according to an embodiment of the present invention;
3 is a packet structure for explaining the packet transmission time when transmitting to the host for each received packet in the network interface device,
FIG. 4 is a packet structure illustrating a packet transmission time when a network interface device transmits a host to a host in a jumbo frame combining general packets.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and methods for achieving them will be apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms, and only the embodiments of the present invention make the disclosure of the present invention complete and the general knowledge in the technical field to which the present invention belongs. It is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present disclosure, when it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present disclosure, the detailed description thereof will be omitted, and the following terms are used in the embodiments of the present disclosure. Terms are defined in consideration of the function of the may vary depending on the user or operator's intention or custom. Therefore, the definition should be made based on the contents throughout the specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.Combinations of each block of the block diagrams and respective steps of the flowcharts may be performed by computer program instructions (executable engines), which may be executed on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment. As such, instructions executed through a processor of a computer or other programmable data processing equipment create means for performing the functions described in each block of the block diagram or in each step of the flowchart.

이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.These computer program instructions may also be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. The instructions stored therein may also produce an article of manufacture containing instruction means for performing the functions described in each block of the block diagram or in each step of the flowchart.

그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.And computer program instructions can also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps can be performed on the computer or other programmable data processing equipment to create a computer-implemented process that can be executed by the computer or other programmable data. Instructions for performing data processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing specific logical functions, and in some alternative embodiments referred to in blocks or steps It should be noted that the functions may occur out of order. For example, the two blocks or steps shown in succession may, in fact, be performed substantially concurrently, or the blocks or steps may be performed in the reverse order of the corresponding function, as required.

이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, embodiments of the present invention illustrated in the following may be modified in many different forms, the scope of the present invention is not limited to the embodiments described in the following. Embodiments of the present invention are provided to more fully explain the present invention to those skilled in the art.

도 1은 본 발명의 일 실시 예에 따른 네트워크 장치의 구성을 도시한 도면이다.1 is a diagram illustrating a configuration of a network device according to an embodiment of the present invention.

도 1을 참조하면, 네트워크 장치는 네트워크 인터페이스 장치(1)와 호스트(2)를 포함한다.Referring to FIG. 1, a network device includes a network interface device 1 and a host 2.

네트워크 인터페이스 장치(1)는 네트워크 인터페이스 카드(network interface care: NIC)일 수 있으며, 후술되는 설명에서는 편의를 위해 NIC라 칭한다. NIC(1)는 네트워크 인터페이스 컨트롤러(Network Interface Controller), 네트워크 어댑터(network adapter), 랜 카드(LAN card), 랜 어댑터(LAN adapter) 등으로 불리는 PC 하드웨어 구성품으로서, PC를 인터넷 또는 내부망에 연결 시키기 위한 통신기능을 제공한다. 최근 10기가급 이더넷 기술이 일반화됨에 따라 네트워킹 프로토콜은 이더넷 기반으로 통합되고 있다. NIC(1)는 호스트(2)에 장착될 수 있으며, 호스트 시스템이 PC인 경우 주로 PCI(peripheral component interconnect) 인터페이스 형식으로 장착될 것이다.The network interface device 1 may be a network interface card (NIC), which is referred to as a NIC for convenience in the following description. The NIC (1) is a PC hardware component called a network interface controller, network adapter, LAN card, LAN adapter, etc. that connects the PC to the Internet or the internal network. To provide a communication function As the recent 10 Gigabit Ethernet technology has become commonplace, networking protocols are being integrated over Ethernet. The NIC 1 may be mounted on the host 2, and will be mounted in the form of a peripheral component interconnect (PCI) interface, mainly if the host system is a PC.

호스트(2)는 고속의 호스트 메모리(210)와 호스트 프로세서(220)를 포함한다. 호스트 프로세서(220)는 CPU로서, CPU가 하나인 단일 코어 프로세서일 수 있고, CPU가 여러 개인 멀티 코어 프로세서일 수 있다. 호스트(2)는 버스 중재부(BUS Arbiter)(230), 입출력 버스 컨트롤러(I/O BUS Controller)(240) 및 입출력 버스 인터페이스(I/O BUS Interface)(250)를 더 포함할 수 있는데, 이들은 신호 및 데이터의 입출력, 버스 사용권 제어 등을 수행한다.The host 2 includes a high speed host memory 210 and a host processor 220. The host processor 220 may be a CPU, a single core processor having one CPU, or a multi core processor having multiple CPUs. The host 2 may further include a bus arbiter 230, an I / O bus controller 240, and an I / O bus interface 250. They perform input and output of signals and data, bus license control, and so on.

전술한 구성들을 가진 네트워크 장치에서의 패킷 송수신 방식에 대해 설명하자면, 우선 NIC(1)가 네트워크 회선(network line)으로부터 수신된 패킷들을 모아서 하나의 점보 프레임(jumbo frame)을 생성하여 점보 프레임 단위로 패킷들을 호스트(2)에 전달한다. NIC(1)가 호스트(2)로 패킷을 전송할 때 점보 프레임 단위로 전송하면, 네트워크 장비의 전송 효율을 높이고 패킷 전송 지연(latency)을 줄일 수 있다. 하나의 점보 프레임 단위는 다수 개의 수신 패킷으로 구성되므로 한 번에 전송하는 패킷의 수를 늘려 전송할 수 있으며 패킷 전송시간이 절약된다. 또한, 수신 패킷 여러 개를 모아 점보 프레임을 만들면 대역폭(bandwidth)을 줄일 수 있어 더 많은 정보를 호스트(2)에 전송할 수 있다. 패킷 전송시간이 절약되면 고속으로 패킷을 NIC(1)와 호스트(2) 간에 전송할 수 있으며, 전체적으로 호스트(2)의 패킷 처리 능력을 향상시킬 수 있다.Referring to the packet transmission / reception scheme in the network device having the above-described configuration, first, the NIC 1 collects packets received from a network line and generates a jumbo frame in jumbo frame units. Deliver packets to host 2. When the NIC 1 transmits a packet to the host 2 in a jumbo frame unit, it is possible to increase the transmission efficiency of the network equipment and reduce the packet transmission latency. Since a single jumbo frame unit is composed of a plurality of received packets, it is possible to increase the number of packets transmitted at one time and to save the packet transmission time. In addition, jumbo frames can be collected by collecting several received packets, thereby reducing the bandwidth and transmitting more information to the host 2. If the packet transmission time is saved, the packet can be transmitted between the NIC 1 and the host 2 at high speed, and the overall packet processing capability of the host 2 can be improved.

점보 프레임을 수신한 호스트(2)는 호스트 프로세서(220)를 통해 호스트 메모리(210)에 저장된 패킷을 분석하여 패킷의 차단 또는 전달 여부를 포함하여 패킷을 어떻게 처리할지를 결정한다. 호스트(2)의 패킷 분석 및 패킷 처리 예를 들면, 수신 패킷에 대한 패킷 상세 분석을 수행하여 패킷의 악성 코드 감염 여부, 유해사이트 접근 여부 등을 판단하고, 판단 결과에 따라 패킷을 차단할지 전달할지를 결정한다. 이후, 패킷 처리결정이 완료된 패킷들로 구성된 점보 프레임을 NIC(1)에 송신한다. 침입 방지 시스템(Intrusion Protection System: IPS)을 예로 들어 설명하면, 호스트(2)의 호스트 프로세서(200)는 호스트 메모리(210)에 저장된 패킷을 분석하여 패킷을 어떻게 처리할지를 결정하고 패킷 처리결정이 완료된 패킷들로 구성된 점보 프레임을 NIC(1)에 송신한다. 이에 NIC(1)는 호스트(2)로부터 점보 프레임을 수신하고, 점보 프레임을 분리하여 일반 패킷을 생성하며 생성된 일반 패킷을 네트워크 회선(network line)으로 송신한다.The host 2 receiving the jumbo frame analyzes the packet stored in the host memory 210 through the host processor 220 to determine how to process the packet including whether the packet is blocked or forwarded. Packet analysis and packet processing of the host 2 For example, a detailed packet analysis of the received packet is performed to determine whether the packet is infected with malicious code, access to a harmful site, and whether to block or forward the packet according to the determination result. Decide Thereafter, a jumbo frame composed of packets for which packet processing determination is completed is transmitted to the NIC 1. In the example of an intrusion protection system (IPS), the host processor 200 of the host 2 analyzes the packets stored in the host memory 210 to determine how to process the packets, and to determine the packet processing decision. A jumbo frame composed of packets is sent to the NIC 1. The NIC 1 receives the jumbo frame from the host 2, separates the jumbo frame, generates a normal packet, and transmits the generated normal packet to a network line.

도 2는 본 발명의 일 실시 예에 따른 NIC의 구성을 도시한 도면이다.2 is a diagram illustrating a configuration of a NIC according to an embodiment of the present invention.

도 1 및 도 2를 참조하면, NIC(1)는 패킷 수신부(100), 패킷 분석부(102), 점보 프레임 생성부(104), 호스트 송신부(106), 호스트 수신부(108), 일반패킷 생성부(110) 및 패킷 송신부(112)를 포함한다. 패킷 분석부(102), 점보 프레임 생성부(104) 및 일반패킷 생성부(110)는 NIC(1)를 구성하는 프로세서에 임베디드될 수 있고, NIC 프로세서는 멀티 코어 프로세서일 수 있다.1 and 2, the NIC 1 includes a packet receiver 100, a packet analyzer 102, a jumbo frame generator 104, a host transmitter 106, a host receiver 108, and a general packet generator. A unit 110 and a packet transmitter 112 is included. The packet analyzer 102, the jumbo frame generator 104, and the general packet generator 110 may be embedded in a processor constituting the NIC 1, and the NIC processor may be a multi-core processor.

패킷 수신부(100) 및 패킷 송신부(112)는 네트워크 회선을 통해 외부와 패킷을 송수신하는 네트워크 인터페이스 구성이다. 패킷 수신부(100)와 패킷 송신부(112)를 포함하는 네트워크 인터페이스는 네트워크와 인라인 연결되어 네트워크로부터 패킷을 송수신한다. 이때, 멀티 10기가(Gbps) 급 네트워크 인라인 회선을 수용할 수 있다. 예를 들어, 네트워크 인터페이스는 10Gbps 이더넷 2 회선(4 포트)을 가진다.The packet receiving unit 100 and the packet transmitting unit 112 are network interface configurations for transmitting and receiving packets to and from the outside through a network line. The network interface including the packet receiver 100 and the packet transmitter 112 is connected inline with the network to transmit and receive packets from the network. In this case, a multi-gigabit (Gbps) network inline line may be accommodated. For example, the network interface has 10 Gbps Ethernet 2 lines (4 ports).

호스트 송신부(106) 및 호스트 수신부(108)는 호스트(2)에 접속하여 호스트(2)와 정보를 송수신하는 호스트 인터페이스 구성이다. 인터페이스 방식은 PCIe, USB 인터페이스 방식 등 호스트(2)에서 지원하는 인터페이스 방식을 따르게 된다.The host transmitter 106 and the host receiver 108 are host interface configurations that connect to the host 2 and transmit and receive information with the host 2. The interface method follows the interface method supported by the host 2 such as PCIe and USB interface methods.

패킷 분석부(102)는 수신 패킷들을 분석하여 패킷 분석정보를 생성한다. 패킷 분석정보는 패킷 분류정보, 패턴매칭 정보, 필터링 정보 등일 수 있다. 패킷 분석부(102)를 통해 1차적으로 패킷을 분석하고, 호스트(2)의 2차 패킷 분석에 도움되는 패킷 분석정보를 생성하여 이를 호스트(2)에 전송하면, 호스트(2)의 부하를 덜어줄 수 있어 네트워크 장치의 성능을 향상시킬 수 있다.The packet analyzer 102 generates packet analysis information by analyzing received packets. The packet analysis information may be packet classification information, pattern matching information, filtering information, and the like. The packet analysis unit 102 primarily analyzes the packet, generates packet analysis information which is helpful for the second packet analysis of the host 2, and transmits the packet analysis information to the host 2 to load the host 2. This can improve performance of network devices.

일 실시 예에 따른 패킷 분석부(102)는 고성능 네트워크 보안 및 정보보호 기능을 수행한다. 고성능 네트워크 보안 및 정보보호 기능의 예로서, 패턴매칭 기능, 보안 필터링 기능 등이 있다. 이를 위해, NIC(1)는 NIC 내 프로세서에 패턴매칭 기능 및 보안 필터링 기능을 가진 네트워크 보안 엔진을 임베디드 시킨다. 패턴매칭은 PCRE(Perl Compatible Regular Expressions)/YARA 패턴매칭 등이 있다. 보안 필터링은 ACL(Access Control List), URL(Uniform Resource Locator)/IP(Internet Protocol) 필터링 등이 있다. 패킷의 L2/L3/L4 및 L7 심층 패킷 분석 기술에 기반한 패턴매칭 및 보안 필터링 기능을 지원한다.The packet analyzer 102 performs a high performance network security and information protection function. Examples of high performance network security and information protection functions include pattern matching, security filtering, and the like. To this end, the NIC 1 embeds a network security engine with pattern matching and security filtering into the processor in the NIC. Pattern matching includes Perl Compatible Regular Expressions (PCRE) / YARA pattern matching. Security filtering includes an access control list (ACL), a uniform resource locator (URL) / Internet protocol (IP) filtering, and the like. It supports pattern matching and security filtering based on L2 / L3 / L4 and L7 deep packet analysis technology of packets.

점보 프레임 생성부(104)는 수신 패킷의 헤더에 패킷 분석정보를 포함 시키고, 패킷 분석정보를 포함한 수신 패킷들을 결합하여 하나의 점보 프레임을 생성한다. 점보 프레임은 하나의 점보 헤더와, 패킷 별 패킷 분석정보를 포함하는 헤더 및 패킷 별 데이터를 포함한다. 점보 프레임의 구조는 도 4를 참조로 하여 후술한다.The jumbo frame generation unit 104 includes packet analysis information in the header of the received packet, and generates a jumbo frame by combining the received packets including the packet analysis information. A jumbo frame includes one jumbo header, a header including packet analysis information per packet, and packet data. The structure of the jumbo frame will be described later with reference to FIG. 4.

호스트 송신부(106)는 호스트(2)와 연결될 때 호스트(2)에 점보 프레임을 송신한다. 점보 프레임 전송 시, 호스트(2)의 호스트 메모리(210)에 직접 메모리 접근(Direct Memory Access: DMA, 이하 'DMA'라 칭함) 방식으로 전송할 수 있다. DMA는 호스트 프로세서(220)에 의한 프로그램의 실행 없이 정보를 이동할 수 있도록 하는 것이다. NIC(1)가 호스트(2)의 호스트 메모리(210)로 DMA 방식으로 패킷을 전송할 때 전송 효율을 높일 수 있다. 또한, 호스트 프로세서(220)의 DMA 인터럽트 오버헤드를 줄여 부하(load)를 경감시킬 수 있다. 나아가, 호스트 메모리(210)로 DMA 방식으로 패킷을 전송할 때의 전송 효율이 높아지면 패킷 전송 지연을 줄일 수 있다.The host transmitter 106 transmits a jumbo frame to the host 2 when connected to the host 2. When transmitting the jumbo frame, the jumbo frame may be transmitted to the host memory 210 of the host 2 by a direct memory access (DMA) method. DMA allows information to be moved without executing a program by the host processor 220. When the NIC 1 transmits a packet to the host memory 210 of the host 2 in a DMA manner, the transmission efficiency can be increased. In addition, the load may be reduced by reducing the DMA interrupt overhead of the host processor 220. In addition, when the transmission efficiency is increased when the packet is transmitted to the host memory 210 in the DMA method, the packet transmission delay may be reduced.

이하, 패킷 분석부(102)가 수신 패킷을 분석하여 패킷 분석정보를 얻는 구성과, 점보 프레임 생성부(104)가 패킷 분석정보를 수신 패킷의 헤더에 추가하고 헤더에 패킷 분석정보가 추가된 수신 패킷들을 모아 하나의 점보 프레임을 생성하는 구성과, 호스트 송신부(106)가 점보 프레임을 호스트(2)에 전송하는 구성의 다양한 실시 예에 대해 구체적으로 후술한다.Hereinafter, the packet analysis unit 102 analyzes the received packet to obtain packet analysis information, and the jumbo frame generation unit 104 adds the packet analysis information to the header of the received packet, and the packet analysis information is added to the header. Various embodiments of the configuration of collecting packets to generate one jumbo frame and the configuration of transmitting the jumbo frame to the host 2 by the host transmitter 106 will be described in detail below.

일 실시 예에 따른 패킷 분석부(102)는 패킷 분석을 통해 각 수신 패킷의 5-튜플 정보를 획득하고 5-튜플(5-tuple) 정보로부터 해시 값을 계산한다. 5-튜플 정보는 출발지 주소(SIP), 목적지 주소(DIP), 프로토콜(Protocol), 목적지 포트(DP) 및 출발지 포트(SP)를 포함한다. 5-튜플의 패킷의 IP, 프로토콜, 포트 정보 등을 가지고 해시 값을 계산하며, 해시 값은 패킷을 구분하기 위해 사용된다. 점보 프레임 생성부(104)는 패킷 분석부(102)에 의해 계산된 해시 값을 수신 패킷의 헤더에 포함 시키고, 헤더에 해시 값이 포함된 수신 패킷들을 모아 하나로 결합하여 점보 프레임을 생성한다. 호스트 송신부(106)는 점보 프레임 생성부(104)를 통해 생성된 점보 프레임을 호스트(2)에 전송한다.The packet analyzer 102 according to an embodiment obtains 5-tuple information of each received packet through packet analysis and calculates a hash value from 5-tuple information. The 5-tuple information includes a source address (SIP), a destination address (DIP), a protocol (Protocol), a destination port (DP) and a source port (SP). The hash value is calculated using the IP, protocol, and port information of the 5-tuple packet, and the hash value is used to distinguish the packet. The jumbo frame generator 104 includes the hash value calculated by the packet analyzer 102 in the header of the received packet, generates a jumbo frame by combining received packets including the hash value in the header into one. The host transmitter 106 transmits the jumbo frame generated through the jumbo frame generator 104 to the host 2.

호스트 프로세서(220)가 멀티 코어 프로세서인 경우, 각 코어 프로세서 별로 동일한 세션의 패킷들을 처리하는 게 패킷 분석에 유리하다. 동일한 세션의 패킷은 동일한 해시 값을 갖은 세션일 수 있다. NIC(1)에서 점보 프레임을 호스트(2)에 전송할 때 해시 값을 수신 패킷의 헤더에 포함 시켜 호스트(2)에 전송하면, 호스트(2)에서 수신 패킷을 멀티 코어 프로세서에 분배할 때 해시 값을 보고 동일한 해시 값을 가진 패킷들은 동일한 코어 프로세서로 가도록 분배한다. 이에 따라, 호스트(2)는 호스트 프로세서(220)의 부하분산(load balancing)을 달성할 수 있고, 플로우 커넥션(flow connection)을 동일한 코어 프로세서에 유지할 수 있다. 부하분산은 여러 개의 코어 프로세서에 작업의 처리를 균등하게 배정하는 것을 의미한다.When the host processor 220 is a multi-core processor, it is advantageous for packet analysis to process packets of the same session for each core processor. Packets in the same session may be sessions with the same hash value. When the NIC 1 sends jumbo frames to the host 2, the hash value is included in the header of the received packet and transmitted to the host 2. When the host 2 distributes the received packet to the multi-core processor, the hash value is transmitted. The packets with the same hash value are distributed to the same core processor. Accordingly, the host 2 may achieve load balancing of the host processor 220 and maintain the flow connection on the same core processor. Load balancing means equalizing the processing of tasks among multiple core processors.

호스트(2)는 멀티 코어 프로세서를 이용한 고속 병렬 패킷 처리를 위해, RSS(Receiver Side Scaling) 기능을 지원하여 NIC(1)로부터 수신된 패킷을 멀티 코어 프로세서로 분배할 수 있다. NIC(1)의 패킷 분석부(102)가 5-튜플 해시 값을 계산하면, RSS는 동일한 해시 값을 가진 패킷들을 동일한 코어 프로세서에 배분되도록 지정한다.The host 2 may distribute a packet received from the NIC 1 to the multicore processor by supporting a receiver side scaling (RSS) function for high speed parallel packet processing using the multicore processor. When the packet analyzer 102 of the NIC 1 calculates the 5-tuple hash value, RSS specifies that packets having the same hash value are distributed to the same core processor.

다른 실시 예에 따른 패킷 분석부(102)는 패턴매칭을 수행하여 패턴매칭 정보를 얻는다. 점보 프레임 생성부(104)는 패턴매칭 정보를 수신 패킷의 헤더에 포함 시키고, 헤더에 패턴매칭 정보가 포함된 수신 패킷들을 결합하여 하나의 점보 프레임을 생성한다. 호스트 송신부(106)는 점보 프레임 생성부(104)를 통해 생성된 점보 프레임을 호스트(2)에 전송한다. 패턴매칭 정보는 패턴매칭 유무와 패턴매칭 테이블 ID를 포함할 수 있다.The packet analyzer 102 according to another embodiment performs pattern matching to obtain pattern matching information. The jumbo frame generator 104 includes the pattern matching information in the header of the received packet, and combines the received packets including the pattern matching information in the header to generate one jumbo frame. The host transmitter 106 transmits the jumbo frame generated through the jumbo frame generator 104 to the host 2. The pattern matching information may include a pattern matching presence and pattern matching table ID.

패턴매칭의 예를 들면, 패킷 분석부(102)는 수신 패킷의 정보과 미리 설정된 패턴을 비교 분석하여 소정의 패턴을 검색한다. 패턴매칭을 통해 패턴매칭 유무와 패턴 매칭 시의 패턴매칭 테이블 ID를 포함한 패턴매칭 정보를 얻을 수 있다. 점보 프레임 생성부(104)는 패턴매칭 정보를 점보 프레임을 구성하는 수신 패킷들의 헤더에 포함 시킨다.As an example of pattern matching, the packet analyzer 102 searches for a predetermined pattern by comparing and analyzing the information of the received packet with a preset pattern. Through pattern matching, pattern matching information including pattern matching and a pattern matching table ID at the time of pattern matching can be obtained. Jumbo frame generation unit 104 includes the pattern matching information in the header of the received packets constituting the jumbo frame.

이하, 패킷 분석부(102)의 패턴매칭에 대해 구체적으로 설명한다. 침입 탐지 시스템(IPS/IDS), 정보보호 또는 APT와 같은 네트워크 보안 시스템은 Zero-day 공격에 방어할 수 있도록 사용자 정의 시그니처 패턴을 실시간으로 탐지하는 기능이 필수적으로 요구되고 있다. 일 실시 예에 따른 NIC(1)는 사용자 정의 패턴을 10Gbps 속도로 실시간 검색할 수 있도록 PCRE/YARA 표준에 호환되는 패턴매칭 가속 기능을 제공한다. 일반적으로 패턴매칭 방법에는 DFA(Deterministic Finite Automata), NFA(Nondeterministic Finite Automata) 알고리즘이 사용되고 있다. 일 실시 예에 따른 패킷 분석부(102)는 HFA(Hyper Finite Automata) 패턴매칭 전용 프로세서를 이용하여 고속 실시간 PCRE/YARA 패턴매칭 성능을 지원한다. 패턴매칭의 예를 들면, 패킷 분석부(102)는 입력되는 SSL 암호화 패킷을 포함하여 TCP Stateful 플로우를 추적하고, 암복호화하여 전송되는 내용 중에 RegEx로 표현되는 PCRE/YARA 시그니처가 존재하는지를 실시간으로 찾아내는 패턴매칭 기능을 수행하여 고속의 패킷 처리 성능을 제공한다.Hereinafter, the pattern matching of the packet analyzer 102 will be described in detail. Network security systems such as intrusion detection systems (IPS / IDS), information security, or APTs require the ability to detect user-defined signature patterns in real time to defend against zero-day attacks. The NIC 1 according to an embodiment provides a pattern matching acceleration function that is compatible with the PCRE / YARA standard to search for a user-defined pattern at a speed of 10 Gbps. Generally, DFA (Deterministic Finite Automata) and NFA (Nondeterministic Finite Automata) algorithms are used for pattern matching. The packet analyzer 102 according to an embodiment supports high-speed real-time PCRE / YARA pattern matching performance using a Hyper Finite Automata (HFA) pattern matching processor. As an example of pattern matching, the packet analyzer 102 tracks a TCP stateful flow including an SSL encrypted packet that is input, and finds in real time whether a PCRE / YARA signature represented by RegEx exists in the contents transmitted by decrypting and decrypting. Performs pattern matching function to provide high speed packet processing performance.

또 다른 실시 예에 따른 패킷 분석부(102)는 보안 필터링을 수행하여 필터링 정보를 얻는다. 점보 프레임 생성부(104)는 필터링 정보를 수신 패킷의 헤더에 포함 시키고, 헤더에 필터링 정보가 포함된 수신 패킷들을 결합하여 하나의 점보 프레임을 생성한다. 호스트 송신부(106)는 점보 프레임 생성부(104)를 통해 생성된 점보 프레임을 호스트(2)에 전송한다. 필터링 정보는 필터링 유무와 필터링 시의 패턴매칭 테이블 ID를 포함할 수 있다.The packet analyzer 102 according to another embodiment performs security filtering to obtain filtering information. The jumbo frame generation unit 104 includes filtering information in the header of the received packet and combines the received packets including the filtering information in the header to generate one jumbo frame. The host transmitter 106 transmits the jumbo frame generated through the jumbo frame generator 104 to the host 2. The filtering information may include filtering presence and pattern matching table ID at the time of filtering.

보안 필터링의 예를 들면, 패킷 분석부(102)는 수신 패킷의 정보과 미리 설정된 패턴과의 비교 분석을 통해 소정의 수신 패킷의 정보를 필터링한다. 필터링을 통해 필터링 유무와 필터링 시의 패턴매칭 테이블 ID를 포함한 필터링 정보를 얻을 수 있다. 점보 프레임 생성부(104)는 필터링 정보를 점보 프레임을 구성하는 수신 패킷들의 헤더에 포함 시킨다.As an example of security filtering, the packet analyzer 102 filters information of a predetermined received packet through comparative analysis of the information of the received packet and a preset pattern. Through filtering, filtering information including the presence of filtering and the pattern matching table ID at the time of filtering can be obtained. Jumbo frame generation unit 104 includes the filtering information in the header of the received packets constituting the jumbo frame.

이하, 보안 필터링에 대해 구체적으로 후술한다. 보안 필터링의 예로는 ACL 및 URL/IP 필터링이 있다. 네트워크 보안 시스템은 외부에서 유입되는 패킷에 대한 L2/L3/L4/L7 계층으로 패킷 상세 분석을 수행하여 패킷의 악성 코드 감염 여부, 유해사이트 접근 여부를 판단해야 하며, 식별 결과에 따라 차단, 우회, 미러 등의 정책을 수행해야 한다. 일 실시 예에 따른 NIC(1)는 호스트(2)의 패킷 상세 분석의 부하를 경감시키기 위해 ACL 및 URL/IP 필터 기능을 제공한다. 예를 들어, 패킷 분석부(102)는 수신 패킷의 L7 주소로서 URL 정보를 검사하여 유해 트래픽 리스트에 포함되어 있는지를 판단하고, 유해 트래픽 리스트에 포함되는 경우 해당 패킷의 헤더에 유해 트래픽 여부를 표시한다.Hereinafter, the security filtering will be described in detail. Examples of security filtering include ACLs and URL / IP filtering. The network security system should perform detailed packet analysis on the L2 / L3 / L4 / L7 layer for incoming packets to determine whether the packet is infected with malicious code or access to harmful sites. You need to implement a policy, such as a mirror. The NIC 1 according to an embodiment provides ACL and URL / IP filter functions to relieve the load of the packet detailed analysis of the host 2. For example, the packet analyzer 102 checks the URL information as the L7 address of the received packet to determine whether the packet is included in the harmful traffic list. do.

호스트(2)로 패킷을 송신하기 이전에 미리 NIC(1)에서 패턴매칭, 보안 필터링 기능을 수행하고 그 수행결과를 수신 패킷의 헤더에 포함 시켜 호스트(2)로 송신하게 되면, 호스트 프로세서(220)의 부하를 덜어주어 네트워크 장비의 성능을 향상시킬 수 있다.If the NIC 1 performs the pattern matching and security filtering function in advance before transmitting the packet to the host 2 and the result is included in the header of the received packet and transmitted to the host 2, the host processor 220 You can improve the performance of your network equipment by offloading the load.

전술한 바와 같이, 점보 프레임 전송 시에 수신 패킷의 헤더에 추가되는 패킷 분석정보로서, 패킷 분류정보(해시 값), 패턴매칭 정보, 필터링 정보를 예로 들어 설명하였다. 그러나 패킷 분석정보는 이에 한정되지 않고, 호스트 프로세서(220)에서 필요한 정보면 어느 것이든 가능하다. 이러한 정보는 호스트 프로세서(220)의 패킷 처리 부하를 경감시킬 수 있는 정보가 될 수 있다. 예를 들어, 컬러링(Coloring) 정보, 샘플링(Sampling) 정보, TCP/IP 오프로드(TCP/IP offload) 정보, 고정밀 심층 패킷 분석(Deep Packet Inspection: DPI, 이하 'DPI'라 칭함) 오프로드(DPI offload) 정보 등이 될 수 있다.As described above, packet classification information (hash value), pattern matching information, and filtering information have been described as examples of packet analysis information added to a header of a received packet during jumbo frame transmission. However, the packet analysis information is not limited thereto, and any information required by the host processor 220 may be used. Such information may be information that can reduce the packet processing load of the host processor 220. For example, coloring information, sampling information, TCP / IP offload information, high-definition deep packet inspection (DPI) offload ( DPI offload) information.

전술한 바와 같이, 패킷 송신부(112)는 패킷 수신부(100)를 통해 수신된 패킷에, 패킷 분석부(102)에 의해 얻어진 분석 정보를 추가해서 이를 호스트(2)에 전송한다. 이 경우, 패킷 수신부(100)를 통해 패킷을 수신할 때보다 더 높은 전송 대역폭(bandwidth)이 요구될 수 있다. 그러나 일 실시 예에 따른 NIC(1)는 점보 프레임 생성부(104)를 통해 수신 패킷 여러 개를 모아 하나의 점보 프레임을 만들고 이를 호스트 송신부(106)를 통해 전송하면, 전송 대역폭을 크게 줄일 수 있다. 따라서, 패킷 수신부(100)가 패킷을 수신할 때와 동일한 속도로 더 많은 정보를 호스트(2)에 전송 가능하게 된다.As described above, the packet transmitter 112 adds the analysis information obtained by the packet analyzer 102 to the packet received through the packet receiver 100 and transmits it to the host 2. In this case, a higher transmission bandwidth may be required than when receiving a packet through the packet receiver 100. However, according to an exemplary embodiment, the NIC 1 may collect a plurality of received packets through the jumbo frame generator 104 to make a jumbo frame and transmit the same through the host transmitter 106, thereby greatly reducing the transmission bandwidth. . Therefore, the packet receiver 100 can transmit more information to the host 2 at the same speed as when the packet receiver 100 receives the packet.

호스트(2)로 송신된 점보 프레임은 호스트(2)의 호스트 메모리(210)에 저장된다. 호스트(2)의 호스트 프로세서(220)는 호스트 메모리(210)에 저장된 패킷을 분석한 후 분석결과에 따라 어떻게 패킷을 처리할지를 결정하고 패킷 처리 결정이 이루어진 패킷들을 모아 하나의 점보 프레임을 생성하며 생성된 점보 프레임을 NIC(1)로 송신한다. 호스트 수신부(108)는 호스트(2)로부터 점보 프레임을 수신한다. 일반패킷 생성부(110)는 수신된 점보 프레임을 분리하여 일반 패킷을 생성한다. 점보 프레임을 분리하여 일반 패킷을 생성하는 과정은 일반 패킷을 결합하여 점보 프레임을 생성하는 과정의 역과정이다. 패킷 송신부(112)는 일반패킷 생성부(110)를 통해 생성된 일반패킷을 네트워크를 통해 외부로 송신한다.Jumbo frames sent to the host 2 are stored in the host memory 210 of the host 2. The host processor 220 of the host 2 analyzes the packets stored in the host memory 210 and then determines how to process the packets according to the analysis result, collects the packets from which the packet processing decision is made, and generates a jumbo frame. The jumbo frame to the NIC 1. The host receiver 108 receives jumbo frames from the host 2. The general packet generation unit 110 generates a general packet by separating the received jumbo frame. Generating normal packets by separating jumbo frames is a reverse process of generating jumbo frames by combining normal packets. The packet transmitter 112 transmits the general packet generated through the general packet generator 110 to the outside through a network.

도 3은 NIC에서 수신 패킷 별로 호스트에 전송할 때의 패킷 전송시간을 설명하기 위한 패킷 구조이다.3 is a packet structure for explaining the packet transmission time when transmitting to the host for each received packet in the NIC.

도 3을 참조하면, 일반적으로 패킷 전송 시, 패킷 별로 패킷 간 간격(Interpacket Gap: IPG)과 프리앰블(preamble)이 붙어서 전송이 된다. 패킷 간 간격은 프레임 간 간격(Interframe Gap: IFG) 등으로 불리기도 하는데, 패킷 전송 시 패킷 사이에 특정 시간만큼의 간격을 의미한다. 패킷 전송 사이의 유휴기간을 두고, 패킷 간 짧은 복구시간을 통해 장치는 다음 패킷의 수신을 준비할 수 있다. 전송을 위한 표준 최소 패킷 간 간격은 12B(byte)이다. 프리앰블은 각 프레임에 앞서 송출하는 비트열로, 동기를 취한다든지 그 밖에 통신에 필요한 정보를 포함한다. 프리앰블의 크기는 8B(byte)이다. 따라서, 패킷 간 간격과 프리앰블을 합한 크기는 20B(byte)이고, N개의 패킷을 하나씩 전송할 때 20B × (N-1)의 패킷 전송시간이 추가로 발생한다.Referring to FIG. 3, in general, when a packet is transmitted, an interpacket gap (IPG) and a preamble are attached to each packet. The interval between packets is also called an interframe gap (IFG), and means a specific time interval between packets during packet transmission. With an idle period between packet transmissions, a short recovery time between packets allows the device to prepare for receipt of the next packet. The standard minimum packet spacing for transmission is 12B (bytes). The preamble is a bit string transmitted before each frame, and contains information necessary for synchronization or other communication. The size of the preamble is 8B (bytes). Accordingly, the sum of the intervals between the packets and the preamble is 20B (byte), and when the N packets are transmitted one by one, a packet transmission time of 20B × (N-1) is additionally generated.

도 4는 본 발명의 일 실시 예에 따른 NIC에서 일반 패킷을 결합한 하나의 점보 프레임으로 호스트에 전송할 때의 패킷 전송시간을 설명하기 위한 패킷 구조이다.FIG. 4 is a packet structure illustrating a packet transmission time when transmitting to a host in one jumbo frame combining general packets in a NIC according to an embodiment of the present invention.

도 4를 참조하면, 점보 프레임은 하나의 점보 헤더와, 패킷들(패킷 1, 패킷 2, …, 패킷 N)을 포함한다. 각 패킷(패킷 1, 패킷 2, …, 패킷 N)은 헤더와 데이터를 포함하며, 헤더에는 패킷 분석정보(PA 1, PA 2, …, PA N)가 포함된다. 패킷 분석정보(PA 1, PA 2, …, PA N)는 패킷 분류정보, 패턴매칭 정보 및 필터링 정보 등이 될 수 있다. 점보 헤더는 점보 프레임 당 하나씩 추가되는 것으로, DMAC, SMAC, Type 정보를 포함하며, 14B의 크기를 가질 수 있다.4, a jumbo frame includes one jumbo header and packets (packet 1, packet 2, ..., packet N). Each packet (packet 1, packet 2, ..., packet N) includes a header and data, and the header includes packet analysis information (PA 1, PA 2, ..., PA N). The packet analysis information PA 1, PA 2,..., PA N may be packet classification information, pattern matching information, filtering information, and the like. Jumbo headers are added one per jumbo frame and include DMAC, SMAC, and Type information, and may have a size of 14B.

도 3 및 도 4를 참조하여 패킷 별로 전송할 때의 패킷 전송시간(도 3)과 하나의 점보 프레임을 전송할 때의 패킷 전송시간(도 4)을 비교해 보면, 패킷 별로 전송할 때의 패킷 전송시간(도 3)보다 하나의 점보 프레임을 전송할 때의 절약되는 패킷 전송시간은, 20B × (N-1) - (점보 헤더 크기)이다. 예를 들어, 64B 패킷 128개, 점보 헤더: 14B인 경우, 절약되는 패킷 전송시간은 20B ×(128 - 1) - (14B) = 2,526B 이다. 즉, 2,526B의 크기 시간이 절약됨을 알 수 있다. 64B 패킷은 46B의 데이터와 18B의 헤더로 구성되며, 18B의 헤더에 패킷 분석정보가 포함된다.Referring to FIGS. 3 and 4, the packet transmission time when transmitting by packet (FIG. 3) and the packet transmission time when transmitting one jumbo frame (FIG. 4) are compared. The packet transmission time saved when one jumbo frame is transmitted is 20B x (N-1)-(Jumbo header size). For example, in the case of 128 64B packets and jumbo header: 14B, the saved packet transmission time is 20B × (128-1)-(14B) = 2526B. That is, it can be seen that the size time of 2,526B is saved. The 64B packet consists of 46B data and 18B header, and the packet analysis information is included in the 18B header.

이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to the embodiments. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

Claims (10)

네트워크를 통해 패킷을 수신하는 패킷 수신부;
수신 패킷들을 1차적으로 분석하여 패킷 분석정보를 생성하는 패킷 분석부;
수신 패킷의 헤더에 패킷 분석정보를 포함 시키고 패킷 분석정보를 포함하는 수신 패킷들을 결합하여 하나의 점보 프레임을 생성하는 점보 프레임 생성부; 및
호스트에 점보 프레임을 송신하는 호스트 송신부; 를 포함하며,
점보 프레임은 하나의 점보 헤더, 패킷 별 패킷 분석정보를 포함하는 헤더 및 패킷 별 데이터를 포함하는 것을 특징으로 하는 네트워크 인터페이스 장치.
A packet receiver for receiving a packet through a network;
A packet analyzer configured to primarily analyze received packets to generate packet analysis information;
A jumbo frame generation unit including packet analysis information in a header of the received packet and generating one jumbo frame by combining received packets including the packet analysis information; And
A host transmitter for transmitting jumbo frames to the host; Including;
A jumbo frame includes a jumbo header, a header including packet analysis information per packet, and packet data.
제 1 항에 있어서, 패킷 분석정보는
패킷 분류정보, 패턴매칭 정보 및 필터링 정보 중 어느 하나인 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 1, wherein the packet analysis information
And any one of packet classification information, pattern matching information, and filtering information.
삭제delete 제 1 항에 있어서, 상기 패킷 분석부는
패킷 분석을 통해 각 수신 패킷의 5-튜플 정보를 획득하고 5-튜플 정보로부터 해시 값을 계산하며,
상기 점보 프레임 생성부는
계산된 해시 값을 점보 프레임을 구성하는 수신 패킷들의 헤더에 포함 시키고 헤더에 해시 값이 포함된 수신 패킷들을 결합하여 점보 프레임을 생성하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 1, wherein the packet analysis unit
Packet analysis obtains 5-tuple information of each received packet, calculates hash value from 5-tuple information,
The jumbo frame generation unit
And calculating the jumbo frame by including the calculated hash value in the header of the received packets constituting the jumbo frame and combining the received packets including the hash value in the header.
제 1 항에 있어서, 상기 패킷 분석부는
수신 패킷의 정보와 미리 설정된 패턴을 비교 분석하여 소정의 패턴을 검색하는 패턴매칭을 수행하여 패턴매칭 정보를 얻고,
상기 점보 프레임 생성부는
패턴매칭 정보를 수신 패킷의 헤더에 포함 시키고 헤더에 패턴매칭 정보가 포함된 수신 패킷들을 결합하여 점보 프레임을 생성하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 1, wherein the packet analysis unit
Pattern matching information is obtained by comparing and analyzing the information of the received packet with a preset pattern to search for a predetermined pattern,
The jumbo frame generation unit
And including the pattern matching information in the header of the received packet and generating the jumbo frame by combining the received packets including the pattern matching information in the header.
제 5 항에 있어서, 패턴매칭 정보는
패턴매칭 유무와 패턴매칭 테이블 ID를 포함하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 5, wherein the pattern matching information is
A network interface device comprising a pattern matching presence and pattern matching table ID.
제 1 항에 있어서, 상기 패킷 분석부는
수신 패킷의 정보와 미리 설정된 패턴과의 비교를 통해 소정의 수신 패킷의 정보를 필터링하는 보안 필터링을 수행하여 필터링 정보를 얻고,
상기 점보 프레임 생성부는
필터링 정보를 수신 패킷의 헤더에 포함 시키고 헤더에 필터링 정보가 포함된 수신 패킷들을 결합하여 점보 프레임을 생성하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 1, wherein the packet analysis unit
Obtains filtering information by performing security filtering to filter information of a predetermined received packet by comparing the information of the received packet with a preset pattern,
The jumbo frame generation unit
And a jumbo frame by including the filtering information in the header of the received packet and combining the received packets including the filtering information in the header.
제 7 항에 있어서, 필터링 정보는
필터링 유무와 필터링 시의 패턴매칭 테이블 ID를 포함하는 것을 특징으로 하는 네트워크 인터페이스 장치.
8. The method of claim 7, wherein the filtering information is
And a pattern matching table ID at the time of filtering.
제 1 항에 있어서, 상기 네트워크 인터페이스 장치는
호스트로부터 점보 프레임을 수신하는 호스트 수신부;
수신된 점보 프레임을 분리하여 일반 패킷을 생성하는 일반패킷 생성부; 및
생성된 일반패킷을 네트워크를 통해 송신하는 패킷 송신부;
를 더 포함하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The apparatus of claim 1, wherein the network interface device is
A host receiver configured to receive jumbo frames from a host;
A general packet generation unit for generating a general packet by separating the received jumbo frames; And
A packet transmitter for transmitting the generated general packet through a network;
Network interface device further comprises.
제 1 항에 있어서, 호스트 송신부는
호스트의 호스트 메모리에 DMA(Direct Memory Access) 방식으로 점보 프레임을 전달하는 것을 특징으로 하는 네트워크 인터페이스 장치.
The method of claim 1, wherein the host transmitter is
A network interface device for transferring jumbo frames to a host memory of a host by direct memory access (DMA).
KR1020180073571A 2018-06-26 2018-06-26 Network interface apparatus using jumbo frame KR102016627B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180073571A KR102016627B1 (en) 2018-06-26 2018-06-26 Network interface apparatus using jumbo frame

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180073571A KR102016627B1 (en) 2018-06-26 2018-06-26 Network interface apparatus using jumbo frame

Publications (1)

Publication Number Publication Date
KR102016627B1 true KR102016627B1 (en) 2019-08-30

Family

ID=67776208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180073571A KR102016627B1 (en) 2018-06-26 2018-06-26 Network interface apparatus using jumbo frame

Country Status (1)

Country Link
KR (1) KR102016627B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871731B1 (en) * 2007-05-22 2008-12-05 (주) 시스메이트 Network interface card and traffic partition processing method in the card, multiprocessing system
KR101679573B1 (en) * 2015-06-16 2016-11-25 주식회사 윈스 Method and apparatus for service traffic security using dimm channel distribution multicore processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871731B1 (en) * 2007-05-22 2008-12-05 (주) 시스메이트 Network interface card and traffic partition processing method in the card, multiprocessing system
KR101679573B1 (en) * 2015-06-16 2016-11-25 주식회사 윈스 Method and apparatus for service traffic security using dimm channel distribution multicore processing system

Similar Documents

Publication Publication Date Title
US11032190B2 (en) Methods and systems for network security universal control point
EP3420487B1 (en) Hybrid hardware-software distributed threat analysis
KR100558658B1 (en) In-line mode network intrusion detection/prevention system and method therefor
Kruegel et al. Stateful intrusion detection for high-speed network's
US8149705B2 (en) Packet communications unit
US7623466B2 (en) Symmetric connection detection
US20130160122A1 (en) Two-stage intrusion detection system for high-speed packet processing using network processor and method thereof
Cabaj et al. SDN Architecture Impact on Network Security.
US10735501B2 (en) System and method for limiting access request
CN104767752A (en) Distributed network isolating system and method
CN1682197A (en) VPN and firewall integrated system
GB2449852A (en) Monitoring network attacks using pattern matching
CN106416171A (en) Method and device for feature information analysis
TWI492090B (en) System and method for guarding against dispersive blocking attacks
Foroushani et al. TDFA: traceback-based defense against DDoS flooding attacks
Jyothi et al. DPFEE: A high performance scalable pre-processor for network security systems
Yang et al. Intrusion detection system for high-speed network
KR102016626B1 (en) Network interface apparatus using jumbo frame with high speed and low delay
US10547532B2 (en) Parallelization of inline tool chaining
KR102016627B1 (en) Network interface apparatus using jumbo frame
KR102078744B1 (en) Network interface card having hybrid architecture with multi-core processor and general purpose network controller
CN116264520A (en) Artificial intelligence supported network telemetry using data processing units
CN115150278A (en) Using a Data Processing Unit (DPU) as a preprocessor for Graphics Processing Unit (GPU) based machine learning
KR101615587B1 (en) System for implementing Deep Packet Inspection Simulation for detecting and analyzing cyber attack in electronic warfare and Method thereof
CN113377051A (en) Network safety protection equipment based on FPGA

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant