KR100900963B1 - 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법 - Google Patents
네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법 Download PDFInfo
- Publication number
- KR100900963B1 KR100900963B1 KR1020070109015A KR20070109015A KR100900963B1 KR 100900963 B1 KR100900963 B1 KR 100900963B1 KR 1020070109015 A KR1020070109015 A KR 1020070109015A KR 20070109015 A KR20070109015 A KR 20070109015A KR 100900963 B1 KR100900963 B1 KR 100900963B1
- Authority
- KR
- South Korea
- Prior art keywords
- transmission
- packet
- socket
- command
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
본 발명은 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법에 관한 것으로, 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시키기 위한, 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법을 제공하고자 한다.
이를 위하여, 본 발명은 호스트 프로세서로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단; 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 저장 수단; 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 수단; 및 상기 메시지 전송 명령 저장 수단에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하고, 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한 후 전송할 데이터를 읽어오고 헤더를 생성하며, 상기 소켓 정보 및 패킷 전송 정보 저장 수단에 소켓 정보 및 패킷 전송 정보를 저장하기 위한 송신 프로세서를 포함한다.
전송제어프로토콜(TCP), TOE(TCP Offload Engine), 송신전용 프로세서, 네트워크 패킷 전송, 전송 펌웨어
Description
본 발명은 네트워크 프로토콜 가속을 위한 TOE(TCP Offload Engine) 등에서 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시키기 위한, 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT차세대핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : 2005-S-405-02, 과제명 : 차세대 인터넷 서버 기술 개발].
일반적으로, 네트워크로 연결된 시스템 상호 간에는 서버와 클라이언트의 관계가 형성된다. 이때, 서버와 클라이언트 상호 간의 통신을 위해서는 네트워크 프로그램과 같은 프로그램이 이용된다. 이러한 네트워크 프로그램은 소프트웨어로 작성된 통신 접속점이라 할 수 있는 소켓을 통하여 네트워크상에서 데이터를 송/수신하게 된다.
소켓을 통한 데이터의 송신 시, 메모리에 저장되어 있는 네트워크 프로토콜 패킷의 헤더와 데이터는 버스를 통해 네트워크 인터페이스의 송신 버퍼로 옮겨지고 컨트롤러를 통해 네트워크로 전송된다. 수신 시에는 수신 버퍼를 거쳐 메모리로 데이터가 보내진다.
이러한 과정들은 응용 프로그램을 거쳐 운영체제에 의해서 이루어진다. 운영체제에 의한 데이터 전송 과정은 응용 프로그램의 소켓 생성 루틴에 의해 전송 데이터 저장을 위한 소켓 버퍼가 생성되고, 운영체제로 데이터 전송 명령의 전달 시 해당 데이터들은 운영체제 커널의 소켓 버퍼에 복사된다. 이때, 운영체제는 소켓 버퍼의 데이터를 가지고 패킷을 구성하며, 구성된 패킷의 헤더와 데이터를 네트워크 인터페이스에 복사한 후 전송한다.
이와 같이 종래 네트워크 프로그램에서는 네트워크 프로토콜 패킷의 전송을 운영체제상의 네트워크 프로토콜 스택에서 담당하였으며, 소프트웨어 방식으로 처리하였다.
따라서 컴퓨터 시스템 내에서 다수의 네트워크 응용 프로그램의 수행으로 인해 프로토콜을 이용한 데이터 전송 개수가 증가하게 되면, 시스템 내에서 네트워크 프로토콜 처리를 위한 상당한 부하가 발생하게 되며, 전체적인 시스템 성능을 저하시킨다.
따라서 상기와 같은 종래 기술은 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리함으로써, 다수의 네트워크 응용 프로그램의 수행으로 인해 프로토콜을 이용한 데이터 전송이 증가하고, 그에 따라 상당한 부하가 발생되며, 결국 전체적인 시스템 성능이 저하되는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서 본 발명은 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시키기 위한, 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 호스트 프로세서로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단; 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 저장 수단; 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 수단; 및 상기 메시지 전송 명령 저장 수단에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하고, 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한 후 전송할 데이터를 읽어오고 헤더를 생성하며, 상기 소켓 정보 및 패킷 전송 정보 저장 수단에 소켓 정보 및 패킷 전송 정보를 저장하기 위한 송신 프로세서를 포함한다.
또한, 본 발명의 장치는, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 저장 수단을 더 포함하되, 상기 송신 프로세서는, 상기 전송대기 소켓 식별자 저장 수단에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 명령(패킷)을 전송하는 것을 특징으로 한다.
또한, 본 발명의 장치는, 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 저장 수단을 더 포함하되, 상기 송신 프로세서는, 타임아웃 시간을 설정한 후 타임아웃을 제어하는 하드웨어 로직에 의해 상기 타임아웃 패킷소유 소켓 식별자 저장 수단에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 것을 특징으로 한다.
또한, 본 발명의 장치는, 수신전용 프로세서에 의해 생성된 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 저장 수단을 더 포함하되, 상기 송신 프로세서는, 상기 수신 패킷정보 저장 수단에 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 것을 특징으로 한다.
한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 메시지 전송 명령 풀에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하는 단계; 해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성하는 단계; 전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성하는 단계; 및 상기 생성한 헤더와 읽어 온 데이터로 이루어진 패킷을 전송하는 단계를 포함한다.
또한, 상기 본 발명의 방법은, 상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀을 검사하는 단계; 상기 전송대기 소켓 식별자 풀에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득하는 단계; 및 해당 명령(패킷)을 전송하는 단계를 더 포함한다.
또한, 상기 본 발명의 방법은, 타임아웃 시간을 설정하는 단계; 및 타임아웃을 제어하는 하드웨어 로직에 의해 타임아웃 패킷소유 소켓 식별자 풀에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 단계를 더 포함한다.
또한, 상기 본 발명의 방법은, 수신 패킷정보 풀에 수신전용 프로세서에 의해 생성된 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 단계를 더 포함한다.
상기와 같은 본 발명은, 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송을 소프트웨어적으로 처리하는 종래의 방식과 달리, TOE(TCP Offload Engine) 내부 등에 실장된 전용 하드웨어 장치 및 송신 전용 프로세서에서 구동하는 펌웨어를 통해 하드웨어적으로 처리함으로써, 시스템 내에서 다수의 네트워크 응용 프로그램의 수행 증가로 생성되는 패킷 전송 요청 처리로 인한 시스템의 부하를 감소시킬 수 있는 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있 는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
본 발명에서, 전송 펌웨어는 네트워크 프로토콜 가속을 위한 TOE 등에 내장된 송신전용 프로세서에서 구동하는 전송 네트워크 프로토콜 스택을 의미한다. 전송 펌웨어에서는 응용프로그램에서 발생하는 메시지 송신 요구 및 송신에 관련된 소켓, 기타 네트워크 리소스들에 대한 관리 명령을 수신하여 처리하며, TOE의 초기설정 및 제어 명령을 수신하여 처리한다.
도 1 은 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 일실시예 구성도로서, 네트워크 프로토콜을 송신/수신 프로세서로 나누어 처리하는 경우, 즉 소켓 리소스 제어 명령 및 TCP 연결/해제 명령, 메시지 전송 명령의 수신/처리를 송신전용 프로세서(101)가 담당하고, 메시지 수신 명령 및 외부로부터의 네트워크 패킷의 수신을 수신전용 프로세서(102)가 담당하며, 소켓의 정보 및 패킷 전송 정보가 하드웨어 장치의 내부 메모리(110)에 저장되는 경우를 나타낸다.
도 1에 도시된 바와 같이, 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치는, TOE 기반 네트워크 송신 프로토콜을 처리하기 위한 송신전용 프로세서(101), TOE 기반 네트워크 수신 프로토콜을 처리하기 위한 수신전용 프로세서(102), 호스트 프로세서로부터의 소켓 리소스 제어(생성, 삭제, 속성 변경) 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103), 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 풀(104), 메시지(데이터) 전송 및 TCP 연결/해제 패킷(명령) 전송을 위한 정보가 존재하지 않아 전송을 대기하고 있는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀(108), 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 풀(107), 상기 수신전용 프로세서(102)에서 생성한 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 풀(109), 및 상기 송신전용 프로세서의 제어에 따라 소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 메모리(110)를 포함한다.
여기서, 상기 호스트 프로세서는 운영체제상의 네트워크 프로토콜 스택을 구동하고 네트워크 응용 프로그램으로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령, 및 메시지 전송 명령(데이터 송신 명령)을 하드웨어 장치로 전달한다.
또한, 상기 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103), 메시지 전송 명령 풀(104), 및 전송대기 소켓 식별자 풀(108)은 송신 프로세서 로컬 버스(105)를 통해 상기 송신전용 프로세서(101)와 연결된다.
또한, 상기 타임아웃 패킷소유 소켓 식별자 풀(107), 수신 패킷정보 풀(109), 및 소켓 정보 및 패킷 전송 정보 저장 메모리(110)는 송신 프로세서 로컬 버스(105)를 통해 상기 송신전용 프로세서(101)와 연결되고, 수신 프로세서 로컬 버스(106)를 통해 수신전용 프로세서(102)와 연결된다.
도 2 는 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 동작 순서를 나타내는 전체 흐름도로서, 송신전용 프로세서에서 구동하는 전송 펌웨어의 동작 순서를 나타낸다.
도 2에 도시된 바와 같이, 네트워크 프로토콜 패킷 전송을 위한 전송 펌웨어의 동작은 다섯 부분으로 나눌 수 있다.
첫 번째로 네트워크 프로그램의 요청으로 발생한 소켓 리소스 제어 및 TCP 연결/해제 명령을 수신하여 처리하는 동작과, 두 번째로 네트워크 프로토콜 기반 메시지 전송 명령을 수신 처리하는 동작과, 세 번째로 외부로부터 수신한 패킷을 수신전용 프로세서(102)가 처리하여 생성한 처리 정보를 수신하여 처리하는 동작과, 네 번째로 전송정보가 존재하지 않아 전송을 대기하고 있는 패킷을 처리하는 동작과, 마지막으로 패킷의 송/수신 시 발생하는 타임아웃 패킷을 처리하는 동작으로 나눌 수 있다.
이하, 상기 각 동작에 대해 좀 더 상세히 살펴보기로 한다.
<소켓 리소스 제어 및 TCP 연결/해제 명령 처리>
먼저, 송신전용 프로세서(101)는 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103)에 호스트 프로세서로부터의 소켓 리소스 제어(생성, 삭제, 속성 변경) 명 령, 또는 TCP 연결/해제 명령이 저장되어 있는지 확인한다(200).
상기 확인 결과(200), 저장되어 있으면 해당 명령을 분석하여 처리한다(201). 이때, 상기 소켓 리소스 제어 및 TCP 연결/해제 명령 풀(103)은 네트워크 리소스 제어 명령을 더 포함할 수도 있다.
이러한 명령의 형태는 도 3에 도시된 바와 같이, 명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자 필드를 포함한다.
상기 확인 결과(200), 저장되어 있지 않으면 "202" 과정으로 진행한다.
<메시지 전송 명령 처리>
송신전용 프로세서(101)는 메시지 전송 명령 풀(104)에 각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령이 저장되어 있는지 확인한다(202).
상기 확인 결과(202), 저장되어 있으면 해당 명령을 분석하여 처리한다(203).
즉, 송신전용 프로세서(101)는 메시지 단편화 동작을 수행하여 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인한다.
이후, 해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한다.
이후, 전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성한다.
이후, 상기 생성한 헤더와 데이터로 이루어진 패킷을 전송한다.
이러한 명령의 형태는 도 4에 도시된 바와 같이, 프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기 필드를 포함한다.
상기 확인 결과(202), 저장되어 있지 않으면 "204" 과정으로 진행한다.
<수신 패킷 관련정보 처리>
송신전용 프로세서(101)는 수신 패킷정보 풀(109)에 네트워크 패킷정보가 저장되어 있는지 확인한다(204).
상기 확인 결과(204), 저장되어 있으면 해당 정보를 분석하여 처리한다(205). 이때, 네트워크 패킷정보는 TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 등을 포함한다. 따라서 송신전용 프로세서(101)는 TCP 연결/해제, 전송한 패킷의 수신완료, 수신 패킷의 오류, 및 수신 오류로 인한 패킷의 재전송 등을 처리한다.
이러한 네트워크 패킷정보, 즉 수신전용 프로세서(102)에서 수신한 패킷을 처리한 정보는 도 5에 도시된 바와 같다.
상기 확인 결과(204), 저장되어 있지 않으면 "206" 과정으로 진행한다.
<전송대기 정보 처리>
송신전용 프로세서(101)는 전송대기 소켓 식별자 풀(108)에 메시지(데이터) 전송 및 TCP 연결/해제 패킷(명령) 전송을 위한 정보가 존재하지 않아 전송을 대기 하고 있는 소켓의 식별자가 저장되어 있는지 확인한다(206).
즉, 송신전용 프로세서(101)는 네트워크 프로그램의 요청으로 발생한 메시지 전송 명령 및 수신한 패킷에 대한 ACK 패킷 전송 시, 해당 목적지 노드의 MAC(Media Access Control) 주소가 존재하지 않을 경우 해당 노드의 MAC 주소가 확보될 때까지 해당 패킷의 전송을 보류하고, 전송대기 소켓 식별자 풀(108)에 해당 소켓의 식별자를 저장한다.
상기 확인 결과(206), 저장되어 있으면 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 패킷을 전송한다(207).
이러한 과정은 재전송 시도 시에도 동일하게 적용된다.
여기서, 소켓 식별자의 구조는 도 6에 도시된 바와 같다.
상기 확인 결과(206), 저장되어 있지 않으면 "208" 과정으로 진행한다.
<타임아웃 패킷소유 소켓 식별자 정보 처리>
먼저, 송신전용 프로세서(101)는 TCP 패킷을 전송한 후 상대 노드로부터 수신완료 패킷인 ACK 패킷을 수신하기까지의 타임아웃 시간(ACKed 타임아웃)을 설정해 놓는다. 이때, 수신전용 프로세서(102)도 수신한 TCP 패킷의 수신완료 패킷 전송의 타임아웃 시간(Delayed ACK 타임아웃)을 설정해 놓는다.
이후, 타임아웃을 제어하는 별도의 하드웨어 로직에 의해 해당 타임아웃 시간이 종료되면 타임아웃 패킷소유 소켓 식별자 풀(107)에 타임아웃의 종류 및 해당 소켓의 식별자가 전달되어 저장된다.
그리고 송신전용 프로세서(101)는 타임아웃 패킷소유 소켓 식별자 풀(107)에 패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자가 저장되어 있는지 확인한다(208).
상기 확인 결과(208), 저장되어 있으면 타임아웃의 종류를 확인하여 해당 패킷을 전송한다(209).
상기 확인 결과(208), 저장되어 있지 않으면 상기 "200" 과정으로 진행하여 이후의 과정을 수행한다.
여기서, 상기 타임아웃 종류 및 소켓 식별자의 구조는 도 7에 도시된 바와 같다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 발명은 TOE(TCP Offload Engine) 등에 이용될 수 있다.
도 1 은 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 일실시예 구성도,
도 2 는 본 발명에 따른 TOE 기반 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 동작 순서를 나타내는 전체 흐름도,
도 3 은 본 발명에 따른 소켓 리소스 제어 및 TCP 연결/해제 명령 풀에 저장되는 소켓 리소스 제어 및 TCP 연결/해제 명령에 대한 일예시도,
도 4 는 본 발명에 따른 메시지 전송 명령 풀에 저장되는 메시지 전송 명령에 대한 일예시도,
도 5 는 본 발명에 따른 수신 패킷정보 풀에 저장되는 네트워크 패킷정보에 대한 일예시도,
도 6 은 본 발명에 따른 전송대기 소켓 식별자 풀에 저장되는 소켓 식별자에 대한 일예시도,
도 7 은 본 발명에 따른 타임아웃 패킷소유 소켓 식별자 풀에 저장되는 타임아웃 종류 및 소켓 식별자의 구조에 대한 일예시도이다.
* 도면의 주요 부분에 대한 부호의 설명
101 : 송신전용 프로세서 102 : 수신전용 프로세서
103 : 소켓 리소스 제어 및 TCP 연결/해제 명령 풀
104 : 메시지 전송 명령 풀 105 : 송신 프로세서 로컬 버스
106 : 수신 프로세서 로컬 버스
107 : 타임아웃 패킷소유 소켓 식별자 풀
108 : 전송대기 소켓 식별자 풀 109 : 수신 패킷정보 풀
110 : 소켓 정보 및 패킷 전송 정보 저장 메모리
Claims (16)
- 호스트 프로세서로부터의 소켓 리소스 제어 명령, TCP 연결/해제 명령을 저장하기 위한 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단;각 소켓에 상응하는 네트워크 프로토콜 기반의 메시지 전송 명령을 저장하기 위한 메시지 전송 명령 저장 수단;소켓 정보 및 패킷 전송 정보를 저장하기 위한 소켓 정보 및 패킷 전송 정보 저장 수단; 및상기 메시지 전송 명령 저장 수단에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하고, 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성한 후 전송할 데이터를 읽어오고 헤더를 생성하며, 상기 소켓 정보 및 패킷 전송 정보 저장 수단에 소켓 정보 및 패킷 전송 정보를 저장하기 위한 송신전용 프로세서를 포함하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 1 항에 있어서,상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 저장 수단을 더 포함하되,상기 송신전용 프로세서는,상기 전송대기 소켓 식별자 저장 수단에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득한 후 해당 명령(패킷)을 전송하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 2 항에 있어서,패킷 송/수신 시 발생하는 타임아웃 패킷을 소유하고 있는 소켓의 식별자를 저장하기 위한 타임아웃 패킷소유 소켓 식별자 저장 수단을 더 포함하되,상기 송신전용 프로세서는,타임아웃 시간을 설정한 후 타임아웃을 제어하는 하드웨어 로직에 의해 상기 타임아웃 패킷소유 소켓 식별자 저장 수단에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 3 항에 있어서,수신전용 프로세서에 의해 생성된 네트워크 패킷정보를 저장하기 위한 수신 패킷정보 저장 수단을 더 포함하되,상기 송신전용 프로세서는,상기 수신 패킷정보 저장 수단에 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 4 항에 있어서,상기 네트워크 패킷정보는,TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 4 항에 있어서,상기 메시지 전송 명령은,프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 및 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 4 항에 있어서,상기 소켓 리소스 제어 명령 및 TCP 연결/해제 명령은,명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 4 항에 있어서,상기 소켓 리소스 제어 및 TCP 연결/해제 명령 저장 수단, 상기 메시지 전송 명령 저장 수단, 및 상기 전송대기 소켓 식별자 저장 수단은,송신전용 프로세서 로컬 버스를 통해 상기 송신전용 프로세서와 연결된 것을 특징으로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 제 8 항에 있어서,상기 타임아웃 패킷소유 소켓 식별자 저장 수단, 상기 수신 패킷정보 저장 수단, 및 상기 소켓 정보 및 패킷 전송 정보 저장 수단은,상기 송신 프로세서 로컬 버스를 통해 상기 송신전용 프로세서와 연결되고, 수신 프로세서 로컬 버스를 통해 상기 수신전용 프로세서와 연결되는 것을 특징으 로 하는 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치.
- 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치의 송신 전용 프로세서에 있어서,메시지 전송 명령 풀에 저장되어 있는 메시지 전송 명령을 분석하여 필요한 전송 자원을 확인하는 단계;해당 네트워크 프로토콜에 맞도록 전송하고자 하는 메시지를 네트워크 패킷 형태로 구성하는 단계;전송할 데이터를 읽어오고 해당 데이터를 전송하기 위한 네트워크 프로토콜 헤더를 생성하는 단계; 및상기 생성한 헤더와 읽어 온 데이터로 이루어진 패킷을 전송하는 단계를 포함하는 네트워크 프로토콜 패킷 전송 방법.
- 제 10 항에 있어서,상기 메시지 전송 명령 및 TCP 연결/해제 명령 전송을 위한 MAC(Media Access Control) 주소가 존재하지 않는 소켓의 식별자를 저장하기 위한 전송대기 소켓 식별자 풀을 검사하는 단계;상기 전송대기 소켓 식별자 풀에 소켓의 식별자가 저장되어 있음에 따라 ARP(Address Resolution Protocol) 패킷의 송/수신을 통해 목적지 노드의 MAC 주소를 획득하는 단계; 및해당 명령(패킷)을 전송하는 단계를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.
- 제 11 항에 있어서,타임아웃 시간을 설정하는 단계; 및타임아웃을 제어하는 하드웨어 로직에 의해 타임아웃 패킷소유 소켓 식별자 풀에 소켓의 식별자가 저장됨에 따라 타임아웃의 종류를 확인하여 해당 패킷을 전송하는 단계를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.
- 제 12 항에 있어서,수신 패킷정보 풀에 수신전용 프로세서에 의해 생성된 네트워크 패킷정보가 저장되어 있음에 따라 해당 정보를 분석하여 처리하는 단계를 더 포함하는 네트워크 프로토콜 패킷 전송 방법.
- 제 13 항에 있어서,상기 네트워크 패킷정보는,TCP 연결/해제 정보, 전송 패킷의 수신완료 정보, 및 수신 패킷의 오류 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.
- 제 13 항에 있어서,상기 메시지 전송 명령은,프로토콜 타입, 명령순서 식별자, 데이터정보 개수, 전송명령타입, 및 소켓 식별자 필드와, 적어도 하나의 전송데이터 상위주소, 전송데이터 하위주소, 및 전송데이터 크기를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.
- 제 13 항에 있어서,상기 소켓 리소스 제어 명령 및 TCP 연결/해제 명령은,명령 식별자, 명령순서 식별자, 명령 인자 개수, 명령 타입, 소켓 식별자, 및 명령 인자를 포함하는 것을 특징으로 하는 네트워크 프로토콜 패킷 전송 방법.
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 |
---|---|---|---|
KR1020060121269 | 2006-12-04 | ||
KR20060121269 | 2006-12-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080051046A KR20080051046A (ko) | 2008-06-10 |
KR100900963B1 true KR100900963B1 (ko) | 2009-06-08 |
Family
ID=39806188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070109015A KR100900963B1 (ko) | 2006-12-04 | 2007-10-29 | 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100900963B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101357342B1 (ko) * | 2012-03-15 | 2014-02-04 | 엘에스산전 주식회사 | 하드웨어 프로토콜 스택 |
CN112882989B (zh) * | 2021-02-04 | 2024-04-02 | 无锡沐创集成电路设计有限公司 | 协议处理***和协议数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005316629A (ja) | 2004-04-28 | 2005-11-10 | Hitachi Ltd | ネットワークプロトコル処理装置 |
KR20060064511A (ko) * | 2004-12-08 | 2006-06-13 | 한국전자통신연구원 | Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법 |
KR100653178B1 (ko) | 2005-11-03 | 2006-12-05 | 한국전자통신연구원 | 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 |
-
2007
- 2007-10-29 KR KR1020070109015A patent/KR100900963B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005316629A (ja) | 2004-04-28 | 2005-11-10 | Hitachi Ltd | ネットワークプロトコル処理装置 |
KR20060064511A (ko) * | 2004-12-08 | 2006-06-13 | 한국전자통신연구원 | Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법 |
KR100653178B1 (ko) | 2005-11-03 | 2006-12-05 | 한국전자통신연구원 | 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20080051046A (ko) | 2008-06-10 |
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 | |
US9037745B2 (en) | Methods and devices for processing incomplete data packets | |
JP5960186B2 (ja) | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム | |
WO2022127118A1 (zh) | 文件传输方法、装置、电子设备及存储介质 | |
US9288287B2 (en) | Accelerated sockets | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN101369987B (zh) | 一种建立通信通道的方法及装置 | |
JP5304674B2 (ja) | データ変換装置、データ変換方法及びプログラム | |
JP5091121B2 (ja) | 埋め込み型システムのための高速データ処理・通信方法及び装置 | |
US7818460B2 (en) | Hardware device and method for transmitting network protocol packet | |
JP5112246B2 (ja) | ストレージシステム及び通信方法 | |
CN115150464A (zh) | 应用代理方法、装置、设备及介质 | |
KR100936918B1 (ko) | 정적 파일 전송 시스템콜 처리 toe 장치 및 방법 | |
KR100900963B1 (ko) | 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법 | |
JP2002215476A (ja) | ネットワークに接続されたホストコンピュータの死活監視方法、死活監視システム、及びプログラム | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
US20050204049A1 (en) | Connectivity confirmation method for network storage device and host computer | |
KR20200143881A (ko) | 제어기 통신 장치 및 그 방법 | |
US20080056263A1 (en) | Efficient transport layer processing of incoming packets | |
US7139832B2 (en) | Data transfer and intermission between parent and child process | |
JP3797363B2 (ja) | iSCSI装置及びその通信制御方法 | |
CN112787998B (zh) | 一种基于dpdk的alg实现方法和*** | |
CN113542412B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
JP2011044823A (ja) | 通信装置、通信システム、通信方法及び通信プログラム |
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 |