KR20080051046A - Hardware device and method for sending the network protocol packet - Google Patents

Hardware device and method for sending the network protocol packet Download PDF

Info

Publication number
KR20080051046A
KR20080051046A KR1020070109015A KR20070109015A KR20080051046A KR 20080051046 A KR20080051046 A KR 20080051046A KR 1020070109015 A KR1020070109015 A KR 1020070109015A KR 20070109015 A KR20070109015 A KR 20070109015A KR 20080051046 A KR20080051046 A KR 20080051046A
Authority
KR
South Korea
Prior art keywords
transmission
packet
socket
command
information
Prior art date
Application number
KR1020070109015A
Other languages
Korean (ko)
Other versions
KR100900963B1 (en
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 US11/949,127 priority Critical patent/US7818460B2/en
Publication of KR20080051046A publication Critical patent/KR20080051046A/en
Application granted granted Critical
Publication of KR100900963B1 publication Critical patent/KR100900963B1/en

Links

Images

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/12Protocol engines
    • 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/28Timers or timing mechanisms used in protocols

Abstract

A method and a hardware device for transmitting a network protocol packet are provided to decrease a load on a system by performing a data transmission using a firmware and dedicated hardware implemented in a TOE(TCP Offload engine). A socket resource control/TCP connection/release command storage unit(103) stores a socket resource control command and a TCP(Transfer Control Protocol) connection/release command from a host processor. A message transmission command storage unit(104) stores a message transmission command based on a network protocol corresponding to the respective sockets. A socket information/packet information storage unit(110) stores socket information and packet transmission information. A transmission processor(101) analyzes the message transmission command stored in the message transmission command storage unit, determines required transmission resources, and configures the message to be transmitted according to a network packet format. The transmission processor reads the data to be transmitted, generates a header, and stores the socket information and packet transmission information.

Description

네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법{Hardware device and method for sending the network protocol packet}Hardware device and method for sending network protocol packet

본 발명은 네트워크 프로토콜 가속을 위한 TOE(TCP Offload Engine) 등에서 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시키기 위한, 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법에 관한 것이다.The present invention relates to a hardware device for network protocol packet transmission in a TOE (TCP Offload Engine) for network protocol acceleration and the like, and more particularly, to a conventional software that processes data transmission by the network protocol stack on the operating system. Unlike the method, the packet transmission is generated by increasing the performance of a large number of network applications in the system by processing hardware through a hardware running in a dedicated hardware device and a transmission dedicated processor mounted in a TCP Offload Engine (TOE). A hardware apparatus and method for network protocol packet transmission for reducing the load on a system due to request processing.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT차세대핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : 2005-S-405-02, 과제명 : 차세대 인터넷 서버 기술 개발].The present invention is derived from research conducted as part of the next generation IT core technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management Number: 2005-S-405-02, Title: Development of Next Generation Internet Server Technology].

일반적으로, 네트워크로 연결된 시스템 상호 간에는 서버와 클라이언트의 관계가 형성된다. 이때, 서버와 클라이언트 상호 간의 통신을 위해서는 네트워크 프로그램과 같은 프로그램이 이용된다. 이러한 네트워크 프로그램은 소프트웨어로 작성된 통신 접속점이라 할 수 있는 소켓을 통하여 네트워크상에서 데이터를 송/수신하게 된다.In general, a server-client relationship is formed between networked systems. At this time, a program such as a network program is used for communication between the server and the client. Such a network program transmits and receives data on a network through a socket, which is a communication connection point written in software.

소켓을 통한 데이터의 송신 시, 메모리에 저장되어 있는 네트워크 프로토콜 패킷의 헤더와 데이터는 버스를 통해 네트워크 인터페이스의 송신 버퍼로 옮겨지고 컨트롤러를 통해 네트워크로 전송된다. 수신 시에는 수신 버퍼를 거쳐 메모리로 데이터가 보내진다.When sending data over a socket, the headers and data of the network protocol packets stored in memory are transferred over the bus to the transmit buffer of the network interface and transmitted through the controller to the network. When receiving, data is sent to the memory via the receive buffer.

이러한 과정들은 응용 프로그램을 거쳐 운영체제에 의해서 이루어진다. 운영체제에 의한 데이터 전송 과정은 응용 프로그램의 소켓 생성 루틴에 의해 전송 데이터 저장을 위한 소켓 버퍼가 생성되고, 운영체제로 데이터 전송 명령의 전달 시 해당 데이터들은 운영체제 커널의 소켓 버퍼에 복사된다. 이때, 운영체제는 소켓 버퍼의 데이터를 가지고 패킷을 구성하며, 구성된 패킷의 헤더와 데이터를 네트워크 인터페이스에 복사한 후 전송한다.These processes are performed by the operating system via applications. In the data transmission process by the operating system, a socket buffer for storing transmission data is generated by the socket creation routine of the application program. When the data transmission command is transmitted to the operating system, the data is copied to the socket buffer of the operating system kernel. At this time, the operating system composes a packet with the data of the socket buffer, copies the header and the data of the configured packet to the network interface, and transmits the packet.

이와 같이 종래 네트워크 프로그램에서는 네트워크 프로토콜 패킷의 전송을 운영체제상의 네트워크 프로토콜 스택에서 담당하였으며, 소프트웨어 방식으로 처리하였다.As described above, in the conventional network program, the transmission of network protocol packets is handled by the network protocol stack on the operating system and processed by software.

따라서 컴퓨터 시스템 내에서 다수의 네트워크 응용 프로그램의 수행으로 인해 프로토콜을 이용한 데이터 전송 개수가 증가하게 되면, 시스템 내에서 네트워크 프로토콜 처리를 위한 상당한 부하가 발생하게 되며, 전체적인 시스템 성능을 저하시킨다.Therefore, when the number of data transmissions using the protocol increases due to the execution of a plurality of network applications in the computer system, a significant load for processing the network protocol in the system is generated, and the overall system performance is degraded.

따라서 상기와 같은 종래 기술은 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리함으로써, 다수의 네트워크 응용 프로그램의 수행으로 인해 프로토콜을 이용한 데이터 전송이 증가하고, 그에 따라 상당한 부하가 발생되며, 결국 전체적인 시스템 성능이 저하되는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.Therefore, the above-described prior art processes data transfer by the network protocol stack on the operating system in software, thereby increasing the data transfer using the protocol due to the execution of a plurality of network applications, resulting in a significant load. There is a problem that the overall system performance is deteriorated, it is a problem of the present invention to solve this problem.

따라서 본 발명은 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시키기 위한, 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention, unlike the conventional method of processing data transmission by the network protocol stack on the operating system in software, the hardware through the firmware running on the dedicated hardware device and the transmission dedicated processor mounted in the TOE (TCP Offload Engine), etc. It is an object of the present invention to provide a hardware apparatus and method for network protocol packet transmission for reducing the load on the system due to the packet transmission request processing generated by the increased performance of a plurality of network applications in the system. .

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention which are not mentioned above can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명의 장치는, 호스트 프로세서로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단; 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 저장 수단; 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 수단; 및 상기 메시지 전송 명령 저장 수단에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하고, 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한 후 전송할 데이터를 읽어오고 헤더를 생성하며, 상기 소켓 정보 및 패킷 전송 정보 저장 수단에 소켓 정보 및 패킷 전송 정보를 저장하기 위한 송신 프로세서를 포함한다.The apparatus of the present invention for achieving the above object comprises: socket resource control instructions from a host processor, socket resource control for storing TCP connect / disconnect instructions and TCP connect / disconnect instruction storage means; Message transfer instruction storage means for storing a network protocol based message transfer instruction corresponding to each socket; Socket information and packet transmission information storage means for storing socket information and packet transmission information; And analyzing the message transmission command stored in the message transmission command storage means to identify a necessary transmission resource, configuring a message to be transmitted in the form of a network packet, reading data to be transmitted and generating a header, and generating the socket information and the packet. And a transmitting processor for storing the socket information and the packet transmission information in the transmission information storage means.

또한, 본 발명의 장치는, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 저장 수단을 더 포함하되, 상기 송신 프로세서는, 상기 전송대기 소켓 식별자 저장 수단에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 명령(패킷)을 전송하는 것을 특징으로 한다.In addition, the apparatus of the present invention further comprises a transmission standby socket identifier storage means for storing an identifier of a socket for which there is no media access control (MAC) address for transmitting the message transmission command and the TCP connection / release command. The transmitting processor acquires the MAC address of the destination node through transmission / reception of an Address Resolution Protocol (ARP) packet as the identifier of the socket is stored in the transmission standby socket identifier storage means, and then executes a corresponding command (packet). Characterized in that the transmission.

또한, 본 발명의 장치는, 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 저장 수단을 더 포함하되, 상기 송신 프로세서는, 타임아웃 시간을 설정한 후 타임아웃을 제어하는 하드웨어 로직에 의해 상기 타임아웃 패킷소유 소켓 식별자 저장 수단에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 것을 특징으로 한다.In addition, the apparatus of the present invention further comprises a timeout packet-owned socket identifier storage means for storing an identifier of a socket that owns a timeout packet that occurs upon packet transmission / reception, wherein the transmission processor further includes a timeout time. After setting the timeout, as the identifier of the socket is stored in the timeout packet-owned socket identifier storage means by hardware logic controlling the timeout, the type of timeout is checked and the corresponding packet is transmitted.

또한, 본 발명의 장치는, 수신전용 프로세서에 의해 생성된 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 저장 수단을 더 포함하되, 상기 송신 프로세서는, 상기 수신 패킷정보 저장 수단에 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 것을 특징으로 한다.The apparatus of the present invention may further include receiving packet information storing means for storing network packet information generated by the receiving-only processor, wherein the transmitting processor is configured to store network packet information in the receiving packet information storing means. As such, the information is analyzed and processed.

한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 메시지 전송 명령 풀에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하는 단계; 해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성하는 단계; 전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성하는 단계; 및 상기 생성한 헤더와 읽어 온 데이터로 이루어진 패킷을 전송하는 단계를 포함한다.On the other hand, the method of the present invention for achieving the above object, the step of analyzing the message transmission command stored in the message transmission command pool to identify the required transmission resources; Constructing a message to be transmitted in accordance with a corresponding network protocol in the form of a network packet; Reading a data to be transmitted and generating a network protocol header for transmitting the data; And transmitting a packet comprising the generated header and the read data.

또한, 상기 본 발명의 방법은, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀을 검사하는 단계; 상기 전송대기 소켓 식별자 풀에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득하는 단계; 및 해당 명령(패킷)을 전송하는 단계를 더 포함한다.In addition, the method of the present invention comprises the steps of: checking the idle socket identifier pool for storing the identifier of the socket for which there is no media access control (MAC) address for transmitting the message transfer command and TCP connect / disconnect command; Acquiring a MAC address of a destination node through transmission / reception of an Address Resolution Protocol (ARP) packet as an identifier of the socket is stored in the transmission standby socket identifier pool; And transmitting a corresponding command (packet).

또한, 상기 본 발명의 방법은, 타임아웃 시간을 설정하는 단계; 및 타임아웃을 제어하는 하드웨어 로직에 의해 타임아웃 패킷소유 소켓 식별자 풀에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 단계를 더 포함한다.The method may also include setting a timeout time; And identifying the type of timeout and transmitting the corresponding packet as the identifier of the socket is stored in the timeout packet owning socket identifier pool by the hardware logic controlling the timeout.

또한, 상기 본 발명의 방법은, 수신 패킷정보 풀에 수신전용 프로세서에 의해 생성된 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 단계를 더 포함한다.The method of the present invention may further include analyzing and processing the corresponding information according to the network packet information generated by the receiving-only processor in the received packet information pool.

상기와 같은 본 발명은, 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시킬 수 있는 효과가 있다.The present invention as described above, unlike the conventional method of software data processing by the network protocol stack on the operating system, the firmware running on a dedicated hardware device and a transmission dedicated processor mounted in the TOE (TCP Offload Engine), etc. Through hardware processing, it is possible to reduce the load on the system due to the processing of packet transmission requests generated by an increase in performance of a plurality of network applications in the system.

상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있 는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.The above objects, features, and advantages will be more clearly understood from the following detailed description with reference to the accompanying drawings, and accordingly, those skilled in the art to which the present invention pertains may have the technical idea of the present invention. It will be easy to implement. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명에서, 전송 펌웨어는 네트워크 프로토콜 가속을 위한 TOE 등에 내장된 송신전용 프로세서에서 구동하는 전송 네트워크 프로토콜 스택을 의미한다. 전송 펌웨어에서는 응용프로그램에서 발생하는 메시지 송신 요구 및 송신에 관련된 소켓, 기타 네트워크 리소스들에 대한 관리 명령을 수신하여 처리하며, TOE의 초기설정 및 제어 명령을 수신하여 처리한다.In the present invention, the transmission firmware refers to a transmission network protocol stack that runs on a transmission-only processor built in a TOE for network protocol acceleration. The transmission firmware receives and processes the message transmission request generated by the application program and the management commands for the socket and other network resources related to the transmission, and receives and processes the initial configuration and control commands of the TOE.

도 1 은 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 일실시예 구성도로서, 네트워크 프로토콜을 송신/수신 프로세서로 나누어 처리하는 경우, 즉 소켓 리소스 제어 명령 및 TCP 연결/해제 명령, 메시지 전송 명령의 수신/처리를 송신전용 프로세서(101)가 담당하고, 메시지 수신 명령 및 외부로부터의 네트워크 패킷의 수신을 수신전용 프로세서(102)가 담당하며, 소켓의 정보 및 패킷 전송 정보가 하드웨어 장치의 내부 메모리(110)에 저장되는 경우를 나타낸다.1 is a block diagram illustrating a hardware device for transmitting a TOE-based network protocol packet according to an embodiment of the present invention, in which a network protocol is divided into a transmission / reception processor and processed, that is, a socket resource control command and a TCP connection / release command; The transmission-only processor 101 is in charge of receiving / processing a message transmission command, and the reception-only processor 102 is in charge of receiving a message reception command and network packets from the outside. Indicates a case of being stored in the internal memory 110.

도 1에 도시된 바와 같이, 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치는, TOE 기반 네트워크 송신 프로토콜을 처리하기 위한 송신전용 프로세서(101), TOE 기반 네트워크 수신 프로토콜을 처리하기 위한 수신전용 프로세서(102), 호스트 프로세서로부터의 소켓 리소스 제어(생성, 삭제, 속성 변경) 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103), 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 풀(104), 메시지(데이터) 전송 및 TCP 연결/해제 패킷(명령) 전송을 위한 정보가 존재하지 않아 전송을 대기하고 있는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀(108), 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 풀(107), 상기 수신전용 프로세서(102)에서 생성한 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 풀(109), 및 상기 송신전용 프로세서의 제어에 따라 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 메모리(110)를 포함한다.As shown in FIG. 1, a hardware device for transmitting a TOE-based network protocol packet according to the present invention includes a transmission-only processor 101 for processing a TOE-based network transmission protocol and a reception for processing a TOE-based network reception protocol. Dedicated processor 102, socket resource control (create, delete, attribute change) instructions from host processor, socket resource control and TCP connect / disconnect instruction pool 103 for storing TCP connect / disconnect instructions, corresponding to each socket Message transfer command pool 104 for storing network protocol based message transfer command, identifier of socket waiting for transmission because information for message (data) transmission and TCP connection / release packet (command) transmission does not exist The pool of idle socket identifiers for storing packets, 108 that owns the timeout packets that occur during packet transmission / reception. A timeout packet owning socket identifier pool 107 for storing an identifier of the receiver, a receiving packet information pool 109 for storing network packet information generated by the receiving-only processor 102, and control of the transmitting-only processor. Accordingly, the socket information and packet transmission information storage memory 110 for storing the socket information and packet transmission information.

여기서, 상기 호스트 프로세서는 운영체제상의 네트워크 프로토콜 스택을 구동하고 네트워크 응용 프로그램으로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령, 및 메시지 전송 명령(데이터 송신 명령)을 하드웨어 장치로 전달한다.Here, the host processor runs a network protocol stack on an operating system and delivers socket resource control commands, TCP connect / disconnect commands, and message transfer commands (data transmission commands) from a network application to a hardware device.

또한, 상기 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103), 메시지 전송 명령 풀(104), 및 전송대기 소켓 식별자 풀(108)은 송신 프로세서 로컬 버스(105)를 통해 상기 송신전용 프로세서(101)와 연결된다.In addition, the socket resource control and TCP connection / release command pool 103, the message transfer command pool 104, and the standby socket identifier pool 108 may be configured to transmit to the transmit-only processor 101 via the transmit processor local bus 105. ).

또한, 상기 타임아웃 패킷소유 소켓 식별자 풀(107), 수신 패킷정보 풀(109), 및 소켓 정보 및 패킷 전송 정보 저장 메모리(110)는 송신 프로세서 로컬 버스(105)를 통해 상기 송신전용 프로세서(101)와 연결되고, 수신 프로세서 로컬 버스(106)를 통해 수신전용 프로세서(102)와 연결된다.In addition, the timeout packet owning socket identifier pool 107, the receiving packet information pool 109, and the socket information and packet transmission information storage memory 110 are connected to the transmission-only processor 101 via the transmission processor local bus 105. ) Is connected to the receive-only processor 102 via the receive processor local bus 106.

도 2 는 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 동작 순서를 나타내는 전체 흐름도로서, 송신전용 프로세서에서 구동하는 전송 펌웨어의 동작 순서를 나타낸다.2 is an overall flowchart illustrating an operation sequence of a hardware device for transmitting a TOE-based network protocol packet according to the present invention, and illustrates an operation sequence of transmission firmware that runs in a transmission-only processor.

도 2에 도시된 바와 같이, 네트워크 프로토콜 패킷 전송을 위한 전송 펌웨어의 동작은 다섯 부분으로 나눌 수 있다.As shown in Figure 2, the operation of the transmission firmware for network protocol packet transmission can be divided into five parts.

첫 번째로 네트워크 프로그램의 요청으로 발생한 소켓 리소스 제어 및 TCP 연결/해제 명령을 수신하여 처리하는 동작과, 두 번째로 네트워크 프로토콜 기반 메시지 전송 명령을 수신 처리하는 동작과, 세 번째로 외부로부터 수신한 패킷을 수신전용 프로세서(102)가 처리하여 생성한 처리 정보를 수신하여 처리하는 동작과, 네 번째로 전송정보가 존재하지 않아 전송을 대기하고 있는 패킷을 처리하는 동작과, 마지막으로 패킷의 송/수신 시 발생하는 타임아웃 패킷을 처리하는 동작으로 나눌 수 있다.Firstly, it receives and processes socket resource control and TCP connection / release commands generated by a network program request, and secondly, receives and processes a network protocol-based message transfer command, and thirdly, receives an externally received packet. Receiving and processing the processing information generated by the receiving-only processor 102, and fourthly, processing the packet waiting for transmission because there is no transmission information, and finally transmitting / receiving the packet. It can be divided into the operation of processing the timeout packet generated at the time.

이하, 상기 각 동작에 대해 좀 더 상세히 살펴보기로 한다.Hereinafter, each operation will be described in more detail.

<소켓 리소스 제어 및 TCP 연결/해제 명령 처리><Socket resource control and TCP connect / release command processing>

먼저, 송신전용 프로세서(101)는 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103)에 호스트 프로세서로부터의 소켓 리소스 제어(생성, 삭제, 속성 변경) 명 령, 또는 TCP 연결/해제 명령이 저장되어 있는지 확인한다(200).First, the transmit-only processor 101 stores a socket resource control (create, delete, attribute change) command or a TCP connect / release command from the host processor in the socket resource control and TCP connect / release command pool 103. Check if there is (200).

상기 확인 결과(200), 저장되어 있으면 해당 명령을 분석하여 처리한다(201). 이때, 상기 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103)은 네트워크 리소스 제어 명령을 더 포함할 수도 있다.If the result of the check 200 is stored, the command is analyzed and processed (201). In this case, the socket resource control and TCP connection / release command pool 103 may further include a network resource control command.

이러한 명령의 형태는 도 3에 도시된 바와 같이, 명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자 필드를 포함한다.This type of command includes a command identifier, command sequence identifier, command argument number, command type, socket identifier, and command argument fields, as shown in FIG.

상기 확인 결과(200), 저장되어 있지 않으면 "202" 과정으로 진행한다.The check result 200, if not stored proceeds to "202" process.

<메시지 전송 명령 처리><Message transfer command processing>

송신전용 프로세서(101)는 메시지 전송 명령 풀(104)에 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령이 저장되어 있는지 확인한다(202).The transmission-only processor 101 checks whether the message transmission command corresponding to each socket is stored in the message transmission command pool 104 (202).

상기 확인 결과(202), 저장되어 있으면 해당 명령을 분석하여 처리한다(203). If the result of the check 202 is stored, the command is analyzed and processed (203).

즉, 송신전용 프로세서(101)는 메시지 단편화 동작을 수행하여 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인한다.That is, the transmission-only processor 101 analyzes the message transmission command stored by performing a message fragmentation operation to identify necessary transmission resources.

이후, 해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한다. Subsequently, a message to be transmitted is configured in the form of a network packet in accordance with the network protocol.

이후, 전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성한다. Thereafter, data to be transmitted is read and a network protocol header is generated for transmitting the data.

이후, 상기 생성한 헤더와 데이터로 이루어진 패킷을 전송한다. Thereafter, the packet including the generated header and data is transmitted.

이러한 명령의 형태는 도 4에 도시된 바와 같이, 프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기 필드를 포함한다.As shown in FIG. 4, the command type includes a protocol type, a command sequence identifier, a number of data information, a transfer command type, a socket identifier field, and at least one transmission data upper address, transmission data lower address, and transmission data size. Contains a field.

상기 확인 결과(202), 저장되어 있지 않으면 "204" 과정으로 진행한다.The check result 202, if not stored proceeds to "204" process.

<수신 패킷 관련정보 처리><Processing of packet information related to received packet>

송신전용 프로세서(101)는 수신 패킷정보 풀(109)에 네트워크 패킷정보가 저장되어 있는지 확인한다(204).The transmission-only processor 101 checks whether network packet information is stored in the received packet information pool 109 (204).

상기 확인 결과(204), 저장되어 있으면 해당 정보를 분석하여 처리한다(205). 이때, 네트워크 패킷정보는 TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 등을 포함한다. 따라서 송신전용 프로세서(101)는 TCP 연결/해제, 전송한 패킷의 수신완료, 수신 패킷의 오류, 및 수신 오류로 인한 패킷의 재전송 등을 처리한다.The check result 204, if stored, the corresponding information is analyzed and processed (205). In this case, the network packet information includes TCP connection / release information, reception completion information of a transport packet, error information of a reception packet, and the like. Therefore, the transmission-only processor 101 processes TCP connection / disconnection, completion of transmission of a transmitted packet, error of a reception packet, retransmission of a packet due to reception error, and the like.

이러한 네트워크 패킷정보, 즉 수신전용 프로세서(102)에서 수신한 패킷을 처리한 정보는 도 5에 도시된 바와 같다.Such network packet information, that is, information on processing a packet received by the reception-only processor 102 is as shown in FIG. 5.

상기 확인 결과(204), 저장되어 있지 않으면 "206" 과정으로 진행한다.The check result 204, if not stored proceeds to "206" process.

<전송대기 정보 처리><Transfer Waiting Information Processing>

송신전용 프로세서(101)는 전송대기 소켓 식별자 풀(108)에 메시지(데이터) 전송 및 TCP 연결/해제 패킷(명령) 전송을 위한 정보가 존재하지 않아 전송을 대기 하고 있는 소켓의 식별자가 저장되어 있는지 확인한다(206).The transmission-only processor 101 checks whether there is no information for transmitting a message (data) and a TCP connection / disconnection packet (command) transmission in the transmission standby socket identifier pool 108 so that an identifier of a socket waiting for transmission is stored. Confirm (206).

즉, 송신전용 프로세서(101)는 네트워크 프로그램의 요청으로 발생한 메시지 전송 명령 및 수신한 패킷에 대한 ACK 패킷 전송 시, 해당 목적지 노드의 MAC(Media Access Control) 주소가 존재하지 않을 경우 해당 노드의 MAC 주소가 확보될 때까지 해당 패킷의 전송을 보류하고, 전송대기 소켓 식별자 풀(108)에 해당 소켓의 식별자를 저장한다.That is, the transmission-only processor 101 is a MAC address of a corresponding node when there is no Media Access Control (MAC) address of the corresponding destination node when a message transmission command generated by a network program request and an ACK packet transmission are received. The transmission of the packet is suspended until the is secured, and the identifier of the socket is stored in the standby socket identifier pool 108.

상기 확인 결과(206), 저장되어 있으면 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 패킷을 전송한다(207).As a result of the check 206, if stored, the MAC node of the destination node is obtained through the transmission / reception of an Address Resolution Protocol (ARP) packet, and then the corresponding packet is transmitted (207).

이러한 과정은 재전송 시도 시에도 동일하게 적용된다.This process applies equally to retransmission attempts.

여기서, 소켓 식별자의 구조는 도 6에 도시된 바와 같다.Here, the structure of the socket identifier is as shown in FIG.

상기 확인 결과(206), 저장되어 있지 않으면 "208" 과정으로 진행한다.The check result 206, if not stored proceeds to step "208".

<타임아웃 패킷소유 소켓 식별자 정보 처리><Process Timeout Packet Owned Socket Identifier Information>

먼저, 송신전용 프로세서(101)는 TCP 패킷을 전송한 후 상대 노드로부터 수신완료 패킷인 ACK 패킷을 수신하기까지의 타임아웃 시간(ACKed 타임아웃)을 설정해 놓는다. 이때, 수신전용 프로세서(102)도 수신한 TCP 패킷의 수신완료 패킷 전송의 타임아웃 시간(Delayed ACK 타임아웃)을 설정해 놓는다.First, the transmission-only processor 101 sets a timeout time (ACKed timeout) from transmitting a TCP packet to receiving an ACK packet, which is a reception completion packet, from a counterpart node. At this time, the reception-only processor 102 also sets a timeout time (Delayed ACK timeout) for the transmission of the received TCP packet.

이후, 타임아웃을 제어하는 별도의 하드웨어 로직에 의해 해당 타임아웃 시간이 종료되면 타임아웃 패킷소유 소켓 식별자 풀(107)에 타임아웃의 종류 및 해당 소켓의 식별자가 전달되어 저장된다.Subsequently, when the corresponding timeout time expires by separate hardware logic controlling the timeout, the type of timeout and the identifier of the corresponding socket are transferred to the timeout packet owning socket identifier pool 107 and stored.

그리고 송신전용 프로세서(101)는 타임아웃 패킷소유 소켓 식별자 풀(107)에 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자가 저장되어 있는지 확인한다(208).The transmission-only processor 101 checks whether the timeout packet owning socket identifier pool 107 stores the identifier of the socket that owns the timeout packet generated when the packet is transmitted / received (208).

상기 확인 결과(208), 저장되어 있으면 타임아웃의 종류를 확인하여 해당 패킷을 전송한다(209).As a result of the check (208), if it is stored, the type of timeout is checked and the corresponding packet is transmitted (209).

상기 확인 결과(208), 저장되어 있지 않으면 상기 "200" 과정으로 진행하여 이후의 과정을 수행한다.If the result of the check 208 is not stored, the process proceeds to the “200” process and the subsequent process is performed.

여기서, 상기 타임아웃 종류 및 소켓 식별자의 구조는 도 7에 도시된 바와 같다.Here, the timeout type and the structure of the socket identifier are shown in FIG. 7.

한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.On the other hand, the method of the present invention as described above can be written in a computer program. And the code and code segments constituting the program can be easily inferred by a computer programmer in the art. In addition, the written program is stored in a computer-readable recording medium (information storage medium), and read and executed by a computer to implement the method of the present invention. The recording medium may include any type of computer readable recording medium.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

본 발명은 TOE(TCP Offload Engine) 등에 이용될 수 있다.The present invention can be used for a TCP Offload Engine (TOE).

도 1 은 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 일실시예 구성도,1 is a configuration diagram of a hardware device for transmitting a TOE-based network protocol packet according to the present invention;

도 2 는 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 동작 순서를 나타내는 전체 흐름도,2 is an overall flowchart illustrating an operation sequence of a hardware device for transmitting a TOE-based network protocol packet according to the present invention;

도 3 은 본 발명에 따른 소켓 리소스 제어 및 TCP 연결/해제 명령 풀에 저장되는 소켓 리소스 제어 및 TCP 연결/해제 명령에 대한 일예시도,3 is an exemplary view illustrating a socket resource control and a TCP connect / release command stored in a socket resource control and a TCP connect / release command pool according to the present invention;

도 4 는 본 발명에 따른 메시지 전송 명령 풀에 저장되는 메시지 전송 명령에 대한 일예시도,4 is an exemplary view illustrating a message transfer command stored in a message transfer command pool according to the present invention;

도 5 는 본 발명에 따른 수신 패킷정보 풀에 저장되는 네트워크 패킷정보에 대한 일예시도,5 is an exemplary view of network packet information stored in a received packet information pool according to the present invention;

도 6 은 본 발명에 따른 전송대기 소켓 식별자 풀에 저장되는 소켓 식별자에 대한 일예시도,6 is an exemplary view illustrating a socket identifier stored in a transmission standby socket identifier pool according to the present invention;

도 7 은 본 발명에 따른 타임아웃 패킷소유 소켓 식별자 풀에 저장되는 타임아웃 종류 및 소켓 식별자의 구조에 대한 일예시도이다.7 is an exemplary view illustrating the structure of a timeout type and a socket identifier stored in a timeout packet owning socket identifier pool according to the present invention.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

101 : 송신전용 프로세서 102 : 수신전용 프로세서101: transmit only processor 102: receive only processor

103 : 소켓 리소스 제어 및 TCP 연결/해제 명령 풀103: socket resource control and TCP connect / release command pool

104 : 메시지 전송 명령 풀 105 : 송신 프로세서 로컬 버스104: message transfer command pool 105: send processor local bus

106 : 수신 프로세서 로컬 버스 106: Receive Processor Local Bus

107 : 타임아웃 패킷소유 소켓 식별자 풀107: Timeout packet owned socket identifier pool

108 : 전송대기 소켓 식별자 풀 109 : 수신 패킷정보 풀108: transmission standby socket identifier pool 109: received packet information pool

110 : 소켓 정보 및 패킷 전송 정보 저장 메모리110: memory for storing socket information and packet transmission information

Claims (16)

호스트 프로세서로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단;Socket resource control instructions from a host processor, socket resource control for storing TCP connect / disconnect instructions, and TCP connect / disconnect instruction storage means; 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 저장 수단;Message transfer instruction storage means for storing a network protocol based message transfer instruction corresponding to each socket; 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 수단; 및Socket information and packet transmission information storage means for storing socket information and packet transmission information; And 상기 메시지 전송 명령 저장 수단에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하고, 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한 후 전송할 데이터를 읽어오고 헤더를 생성하며, 상기 소켓 정보 및 패킷 전송 정보 저장 수단에 소켓 정보 및 패킷 전송 정보를 저장하기 위한 송신 프로세서Analyze the message transmission command stored in the message transmission command storage means to identify the necessary transmission resources, configure the message to be transmitted in the form of a network packet, read data to be transmitted and generate a header, and transmit the socket information and packet transmission. Transmission processor for storing socket information and packet transmission information in the information storage means 를 포함하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.Hardware device for network protocol packet transmission comprising a. 제 1 항에 있어서,The method of claim 1, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 저장 수단을 더 포함하되,Further comprising a transmission standby socket identifier storage means for storing the identifier of the socket that does not exist the MAC (Media Access Control) address for transmitting the message transmission command and TCP connection / release command, 상기 송신 프로세서는,The transmission processor, 상기 전송대기 소켓 식별자 저장 수단에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 명령(패킷)을 전송하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.As the identifier of the socket is stored in the transmission socket identifier storage means, a MAC address of the destination node is obtained through transmission / reception of an Address Resolution Protocol (ARP) packet, and then a corresponding command (packet) is transmitted. Hardware device for transmitting network protocol packets. 제 2 항에 있어서,The method of claim 2, 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 저장 수단을 더 포함하되,Further comprising a means for storing the timeout packet owned socket identifier for storing the identifier of the socket that owns the timeout packet that occurs during packet transmission / reception, 상기 송신 프로세서는,The transmission processor, 타임아웃 시간을 설정한 후 타임아웃을 제어하는 하드웨어 로직에 의해 상기 타임아웃 패킷소유 소켓 식별자 저장 수단에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.A network for transmitting a packet by checking the type of a timeout as the identifier of the socket is stored in the timeout packet owning socket identifier storage means by hardware logic controlling the timeout after setting a timeout time Hardware device for protocol packet transmission. 제 3 항에 있어서,The method of claim 3, wherein 수신전용 프로세서에 의해 생성된 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 저장 수단을 더 포함하되,Receiving packet information storage means for storing network packet information generated by the receiving-only processor further comprises: 상기 송신 프로세서는,The transmission processor, 상기 수신 패킷정보 저장 수단에 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.And storing network packet information in the received packet information storing means, and analyzing and processing the corresponding information. 제 4 항에 있어서,The method of claim 4, wherein 상기 네트워크 패킷정보는,The network packet information, TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.And at least one of TCP connection / release information, reception completion information of a transport packet, and error information of the reception packet. 제 4 항에 있어서,The method of claim 4, wherein 상기 메시지 전송 명령은,The message transmission command, 프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 및 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.Network protocol packet transmission comprising a protocol type, command sequence identifier, number of data information, transmission command type, and socket identifier field, and at least one transmission data upper address, transmission data lower address, and transmission data size. Hardware device for. 제 4 항에 있어서,The method of claim 4, wherein 상기 소켓 리소스 제어 명령 및 TCP 연결/해제 명령은,The socket resource control command and the TCP connection / release command, 명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.And a command identifier, a command sequence identifier, a number of command arguments, a command type, a socket identifier, and a command argument. 제 4 항에 있어서,The method of claim 4, wherein 상기 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단, 상기 메시지 전송 명령 저장 수단, 및 상기 전송대기 소켓 식별자 저장 수단은,The socket resource control and TCP connection / release command storage means, the message transmission command storage means, and the transmission standby socket identifier storage means, 송신 프로세서 로컬 버스를 통해 상기 송신전용 프로세서와 연결된 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.Transmit processor A hardware device for network protocol packet transmission characterized in that it is connected to said transmit dedicated processor via a local bus. 제 8 항에 있어서,The method of claim 8, 상기 타임아웃 패킷소유 소켓 식별자 저장 수단, 상기 수신 패킷정보 저장 수단, 및 상기 소켓 정보 및 패킷 전송 정보 저장 수단은,The timeout packet owned socket identifier storage means, the received packet information storage means, and the socket information and packet transmission information storage means, 상기 송신 프로세서 로컬 버스를 통해 상기 송신전용 프로세서와 연결되고, 수신 프로세서 로컬 버스를 통해 상기 수신전용 프로세서와 연결되는 것을 특징으 로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.And a transmission-only processor via the transmit processor local bus, and a connection to the receive-only processor via a receive processor local bus. 메시지 전송 명령 풀에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하는 단계;Analyzing a message transmission command stored in the message transmission command pool to identify a necessary transmission resource; 해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성하는 단계;Constructing a message to be transmitted in accordance with a corresponding network protocol in the form of a network packet; 전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성하는 단계; 및Reading a data to be transmitted and generating a network protocol header for transmitting the data; And 상기 생성한 헤더와 읽어 온 데이터로 이루어진 패킷을 전송하는 단계Transmitting a packet comprising the generated header and the read data 를 포함하는 네트워크 프로토콜 패킷 전송 방법.Network protocol packet transmission method comprising a. 제 10 항에 있어서,The method of claim 10, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀을 검사하는 단계;Examining a pool of idle socket identifiers for storing identifiers of sockets for which there is no media access control (MAC) address for transmitting said message transfer command and TCP connect / disconnect command; 상기 전송대기 소켓 식별자 풀에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득하는 단계; 및Acquiring a MAC address of a destination node through transmission / reception of an Address Resolution Protocol (ARP) packet as an identifier of the socket is stored in the transmission standby socket identifier pool; And 해당 명령(패킷)을 전송하는 단계Send the command (packet) 를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.The network protocol packet transmission method further comprising. 제 11 항에 있어서,The method of claim 11, wherein 타임아웃 시간을 설정하는 단계; 및Setting a timeout time; And 타임아웃을 제어하는 하드웨어 로직에 의해 타임아웃 패킷소유 소켓 식별자 풀에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 단계As the identifier of the socket is stored in the timeout packet owning socket identifier pool by the hardware logic controlling the timeout, checking the type of the timeout and transmitting the corresponding packet. 를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.The network protocol packet transmission method further comprising. 제 12 항에 있어서,The method of claim 12, 수신 패킷정보 풀에 수신전용 프로세서에 의해 생성된 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 단계Analyzing and processing the corresponding information according to the network packet information generated by the receive-only processor in the received packet information pool 를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.The network protocol packet transmission method further comprising. 제 13 항에 있어서,The method of claim 13, 상기 네트워크 패킷정보는,The network packet information, TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.A network protocol packet transmission method comprising one or more of TCP connection / release information, reception completion information of a transport packet, and error information of a reception packet. 제 13 항에 있어서,The method of claim 13, 상기 메시지 전송 명령은,The message transmission command, 프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 및 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.A network protocol packet transmission method comprising a protocol type, command sequence identifier, data information number, transmission command type, and socket identifier field, and at least one transmission data upper address, transmission data lower address, and transmission data size. . 제 13 항에 있어서,The method of claim 13, 상기 소켓 리소스 제어 명령 및 TCP 연결/해제 명령은,The socket resource control command and the TCP connection / release command, 명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.And a command identifier, a command sequence identifier, a command argument number, a command type, a socket identifier, and a command argument.
KR1020070109015A 2006-12-04 2007-10-29 Hardware device and method for sending the network protocol packet KR100900963B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/949,127 US7818460B2 (en) 2006-12-04 2007-12-03 Hardware device and method for transmitting network protocol packet

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060121269 2006-12-04
KR1020060121269 2006-12-04

Publications (2)

Publication Number Publication Date
KR20080051046A true KR20080051046A (en) 2008-06-10
KR100900963B1 KR100900963B1 (en) 2009-06-08

Family

ID=39806188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070109015A KR100900963B1 (en) 2006-12-04 2007-10-29 Hardware device and method for sending the network protocol packet

Country Status (1)

Country Link
KR (1) KR100900963B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101357342B1 (en) * 2012-03-15 2014-02-04 엘에스산전 주식회사 Hardware Protocol Stack
CN112882989A (en) * 2021-02-04 2021-06-01 无锡沐创集成电路设计有限公司 Protocol processing system and protocol data processing method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4343760B2 (en) 2004-04-28 2009-10-14 株式会社日立製作所 Network protocol processor
KR100646858B1 (en) * 2004-12-08 2006-11-23 한국전자통신연구원 Hardware device and behavior manner for creation and management of socket information based on TOE
KR100653178B1 (en) 2005-11-03 2006-12-05 한국전자통신연구원 Apparatus and method for creation and management of tcp transmission information based on toe

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101357342B1 (en) * 2012-03-15 2014-02-04 엘에스산전 주식회사 Hardware Protocol Stack
CN112882989A (en) * 2021-02-04 2021-06-01 无锡沐创集成电路设计有限公司 Protocol processing system and protocol data processing method
CN112882989B (en) * 2021-02-04 2024-04-02 无锡沐创集成电路设计有限公司 Protocol processing system and protocol data processing method

Also Published As

Publication number Publication date
KR100900963B1 (en) 2009-06-08

Similar Documents

Publication Publication Date Title
US7185114B1 (en) Virtual memory systems and methods
US8140688B2 (en) Method and system for establishing connections between nodes in a communication network
CN107634984B (en) File synchronization method based on one-way transmission channel
US8291486B2 (en) Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring
JP5960186B2 (en) Virtual channel construction system, virtual channel construction method, and virtual channel construction program
US8285828B2 (en) Method and system for platform level data model for indications based event control and data transfer
WO2022032984A1 (en) Mqtt protocol simulation method and simulation device
US10609125B2 (en) Method and system for transmitting communication data
CN109327511B (en) Data request method and server based on HTTP (hyper text transport protocol)
JP5304674B2 (en) Data conversion apparatus, data conversion method and program
US8862682B2 (en) Accelerated sockets
JP5091121B2 (en) High speed data processing / communication method and apparatus for embedded system
US7818460B2 (en) Hardware device and method for transmitting network protocol packet
JP5112246B2 (en) Storage system and communication method
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
WO2018107433A1 (en) Information processing method and device
KR100900963B1 (en) Hardware device and method for sending the network protocol packet
JP2011229093A (en) Network apparatus
JP2002215476A (en) Method and system for monitoring life and death of host computer connected to network and program
US20080056263A1 (en) Efficient transport layer processing of incoming packets
US20050204049A1 (en) Connectivity confirmation method for network storage device and host computer
JP3797363B2 (en) iSCSI device and communication control method thereof
KR20200143881A (en) Controller commnication device and method thereof
US20020065934A1 (en) Data transfer method
CN112787998B (en) DPDK-based ALG implementation method and system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee