KR100653178B1 - 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 - Google Patents

전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 Download PDF

Info

Publication number
KR100653178B1
KR100653178B1 KR1020050105055A KR20050105055A KR100653178B1 KR 100653178 B1 KR100653178 B1 KR 100653178B1 KR 1020050105055 A KR1020050105055 A KR 1020050105055A KR 20050105055 A KR20050105055 A KR 20050105055A KR 100653178 B1 KR100653178 B1 KR 100653178B1
Authority
KR
South Korea
Prior art keywords
transmission
tcp
transmission information
area
information
Prior art date
Application number
KR1020050105055A
Other languages
English (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 KR1020050105055A priority Critical patent/KR100653178B1/ko
Priority to US11/499,508 priority patent/US20070115820A1/en
Application granted granted Critical
Publication of KR100653178B1 publication Critical patent/KR100653178B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜 전송정보 생성 및 관리 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 기존 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송의 소프트웨어 처리를 전송제어프로토콜 오프로드 엔진(TOE) 내부의 전용 하드웨어 장치를 통해 하드웨어로 처리함으로써 데이터 복사로 인한 메모리 액세스 횟수를 줄이고, 전송 데이터의 정보를 하드웨어로 관리함으로써 전송정보의 증가 및 재전송으로 인해 발생되는 시스템의 부하를 감소시키는 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은 전송제어프로토콜 오프로드 엔진(TOE) 기반의 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치에 있어서, 소정 네트워크 프로그램의 데이터 전송 요청을 수신하여 전송될 데이터의 주소 및 크기 정보를 바탕으로 전송정보를 생성하고, 전송 완료에 대한 확인이 이루어졌을 경우 해당 전송정보를 삭제처리하기 위한 TCP 송신전용 프로세싱 수단; 데이터의 수신 명령을 수신해서 데이터 수신에 사용할 영역의 주소 및 크기 정보를 바탕으로 수신 정보를 생성하여 관리하기 위한 TCP 수신전용 프로세싱 수단; 상기 TCP 송신전용 프로세싱 수단의 명령에 따라 전송정보 저장을 위한 메모리 영역을 할당하고, 해당 영역의 식별자(ID)를 생성하고, 삭제 처리를 관리하기 위한 전송정보영역관리수단; 및 상기 TCP 송신전용 프로세싱 수단의 제어에 따라 전송정보를 저장하고, 삭제하기 위한 저장수단을 포함함.
4. 발명의 중요한 용도
본 발명은 통신 시스템 등에 이용됨.
소켓, 전송제어프로토콜, TCP, TOE, DMA, 네트워크, 응용프로그램, 전송정보

Description

전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜 전송정보 생성 및 관리 장치 및 그 방법{Apparatus and Method for Creation and Management of TCP Transmission Information based on TOE}
도 1 은 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치의 일실시예 구성도.
도 2 는 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치의 전송정보의 구성을 나타낸 일실시예 설명도.
도 3 은 상기 도 1의 전송정보영역관리부에 대한 일실시예 상세구성도.
도 4 는 상기 도 3의 할당명령레지스터 및 할당결과레지스터의 포맷을 나타낸 일실시예 설명도.
도 5 는 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리에 대한 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
110 : TCP 송신전용 프로세서 120 : TCP 수신전용 프로세서
130 : 전송정보영역관리부 140 : 메모리부
141 : 메모리 제어부 142 : 리소스 메모리
150 : 송신 프로세서 로컬 버스 160 : 수신 프로세서 로컬 버스
본 발명은 네트워크 프로토콜 계층을 이용하는 네크워크 응용프로그램에서 전송제어프로토콜(Transmission Control Protocol : 이하, "TCP"라 함) 계층을 통해 응용프로그램의 데이터 전송시 해당 데이터에 대한 전송정보를 생성하고 관리하기위한 전송제어프로토콜 오프로드 엔진(TOE : TCP Offload Engine) 기반의 TCP 전송정보 생성 및 관리 장치 및 그 방법에 관한 것으로, 더욱 상세하게는, TCP의 가속을 위하여 하드웨어를 사용하는 전송제어프로토콜 오프로드 엔진(TOE)에서 네트워크 응용프로그램의 데이터 전송과 관련된 정보를 전용 하드웨어 로직을 통하여 생성하고, 관리하기 위한 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치 및 그 방법에 관한 것이다.
일반적으로 네트워크로 연결된 시스템 상호 간에는 서버와 클라이언트의 관계가 형성되어 진다. 서버와 클라이언트 상호 간의 통신을 위해서는 네트워크 프로그램과 같은 프로그램이 이용된다. 이러한 네트워크 프로그램은 소프트웨어로 작성된 통신 접속점이라 할 수 있는 소켓을 통하여 네트워크상에서 데이터를 송수신하게 된다. 소켓을 통한 데이터의 송신시 메모리에 저장되어 있는 데이터는 버스를 통해 네트워크 인터페이스의 송신 버퍼로 옮겨지고 컨트롤러를 통해 네트워크에 보내진다. 수신시에는 수신 버퍼를 거쳐 메모리로 데이터가 보내진다. 이런 과정들은 응용프로그램을 거쳐 운영체제에 의해서 이루어진다.
운영체제에 의한 데이터 전송 과정은 응용프로그램의 메시지 생성 루틴에 의해 전송 데이터 저장을 위한 응용프로그램 버퍼가 생성되어 지며, 운영체제로 데이터 전송 명령의 전달시 해당 데이터들은 운영체제 커널의 소켓 버퍼에 복사되어 진다. 운영체제에서는 커널 버퍼의 데이터를 가지고 패킷을 구성하며, 구성된 패킷의 헤더와 데이터를 네트워크 인터페이스에 복사한 후 전송하게 된다.
데이터의 수신시 역시 수신한 데이터를 네트워크 인터페이스에서 응용프로그램의 버퍼로 전송하기까지 두 번 정도의 데이터 복사가 발생하게 된다. 즉, 모든 송수신 데이터에 대해 소켓 버퍼로의 복사가 발생하게 되므로 메모리 사용량이 증가하고 데이터 양이 증가함에 따라 전체 네트워크 장치의 패킷 처리 속도가 느려지게 되는 문제점이 있다.
상기한 바와 같이, 데이터의 복사로 인한 오버헤드 문제점을 해결하기 위해 응용프로그램의 데이터를 운영체제 내의 소켓 버퍼로 전송하는 것이 아니라, 네트워크 인터페이스내의 전송 버퍼로 직접 전송하는 방법이 사용되어 진다. 이를 직접 메모리 접속(DMA : Direct Memory Access)이라 하는데 이는 운영체제에서 응용프로그램의 메모리 맵핑을 지원하는 모듈이 존재하여야 하며 전송 데이터의 정보 관리를 응용프로그램 또는 운영체제에서 담당해야 한다. 또한, 운영체제 내의 소켓 버퍼를 사용하지 않고 데이터 전송이 이루어지므로 기존에 운영체제에서 지원하는 네 트워크 프로토콜의 수정 및 기존의 네트워크 응용프로그램이 수정되어야 한다. 즉, 기존의 네트워크 응용프로그램들을 모두 재작성해야하는 문제점이 있다. 또한, 만일 운영체제에서 데이터의 전송정보를 관리할 경우 소켓의 수 및 직접 메모리 접속(DMA)을 통한 데이터 전송의 수가 증가할수록 운영체제에서 관리해야 하는 데이터의 수가 증가하게 되며 이로 인해 프로세서가 프로토콜 처리뿐만 아니라 해당 정보를 관리하는데 상당한 오버헤드가 발생하게 된다.
만일 네트워크상의 오류로 인해 전송한 데이터에 대한 재전송이 발생 될 때마다 해당 데이터를 네트워크 인터페이스 버퍼로 복사하기 위해 운영체제에서 관리하는 해당 데이터의 주소가 요구되어 지므로 결국 프로세서의 개입이 요구되어 지는 문제점이 있다.
상기한 문제점을 정리하면, 첫 번째는 데이터의 송신시 기존의 운영체제 소켓 버퍼를 사용할 경우 응용프로그램의 데이터가 네트워크 인터페이스 내의 전송 버퍼까지 전송되기까지 두 번의 데이터 복사가 발생하게 되며 이로 인한 오버헤드, 두 번째는 첫 번째 문제점을 해결하기 위한 직접 메모리 접속(DMA) 기법 사용시 기존 네트워크 응용프로그램들의 호환성 문제로 인한 재작성 및 운영체제 프로토콜 스택의 수정에 따른 오버헤드, 세 번째는 전송한 데이터의 재전송이 발생시마다 해당 데이터의 주소가 요구되어 지므로 결국 프로세서의 개입이 요구되어 지는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 기존 운영체제상의 네트워크 프로토콜 스택에 의한 데이터 전송의 소프트웨어 처리를 전송제어프로토콜 오프로드 엔진(TOE) 내부의 전용 하드웨어 장치를 통해 하드웨어로 처리함으로써 데이터 복사로 인한 메모리 액세스 횟수를 줄이고, 전송 데이터의 정보를 하드웨어로 관리함으로써 전송정보의 증가 및 재전송으로 인해 발생되는 시스템의 부하를 감소시키는 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 전송제어프로토콜 오프로드 엔진(TOE) 기반의 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치에 있어서, 소정 네트워크 프로그램의 데이터 전송 요청을 수신하여 전송될 데이터의 주소 및 크기 정보를 바탕으로 전송정보를 생성하고, 전송 완료에 대한 확인이 이루어졌을 경우 해당 전송정보를 삭제처리하기 위한 TCP 송신전용 프로세싱 수단; 데이터의 수신 명령을 수신해서 데이터 수신에 사용할 영역의 주소 및 크기 정보를 바탕으로 수신 정보를 생성하여 관리하기 위한 TCP 수신전용 프로세싱 수단; 상기 TCP 송신 전용 프로세싱 수단의 명령에 따라 전송정보 저장을 위한 메모리 영역을 할당하고, 해당 영역의 식별자(ID)를 생성하고, 삭제 처리를 관리하기 위한 전송정보영역관리수단; 및 상기 TCP 송신전용 프로세싱 수단의 제어에 따라 전송정보를 저장하고, 삭제하기 위한 저장수단을 포함하는 것을 특징으로 한다.
한편, 본 발명의 방법은, 전송제어프로토콜 오프로드 엔진(TOE) 기반의 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법에 있어서, 전송정보영역관리부가 TCP 송신전용 프로세서로부터 전송정보저장영역의 생성 명령을 받아, 기존에 할당된 영역 식별자(ID)를 참조하여 새로운 할당영역 식별자(ID)를 생성하고, 할당완료 표시를 생성하는 전송정보 저장영역 생성단계; 상기 TCP 송신전용 프로세서가 상기 할당영역 식별자(ID) 생성 단계에서의 할당영역 식별자(ID) 생성완료 표시를 확인하고, 생성된 영역식별자(ID)를 이용하여 소정 메모리에 저장될 영역을 계산하는 전송정보 저장영역 계산단계; 및 상기 TCP 송신전용 프로세서가 상기 소정 메모리의 계산된 저장 영역에 해당 전송정보를 저장하고, 상기 TCP 송신전용 프로세서가 해당 소켓에 연결된 전송정보들을 관리하는 전송정보 저장 및 관리 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명 을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치의 일실시예 구성도이다.
본 발명에 따른 장치는, TCP 프로토콜을 송신, 수신 프로세서로 나누어 처리하고, 데이터 전송정보의 생성 및 삭제를 송신프로세서가 담당하고, 데이터 수신 정보의 생성 및 삭제는 수신 프로세서가 담당하고, 소켓의 정보 및 데이터 전송정보가 하드웨어 장치의 내부 메모리에 저장되는 경우에 사용된다. 이를 좀 더 상세히 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치는, 소정 네트워크 프로그램의 데이터 전송 요청을 수신하여 전송될 데이터의 주소 및 크기 정보를 바탕으로 전송정보를 생성하고, 전송 완료에 대한 확인이 이루어졌을 경우 해당 전송정보를 삭제처리하는 TCP 송신전용 프로세서(110), 데이터의 수신 명령을 수신해서 데이터 수신에 사용할 영역의 주소 및 크기 정보를 바탕으로 수신 정보를 생성하여 관리하는 TCP 수신전용 프로세서(120), 상기 TCP 송신전용 프로세서의 명령에 따라 전송정보 저장을 위한 메모리 영역을 할당하고, 해당 영역의 식별자(ID)를 생성하거나 삭제 처리를 관리하는 전송정보영역관리부(130), 그리고 상기 TCP 송신전용 프로세서(110)의 제어에 따라 전송정보를 저장하고 삭제하는 메모리부(140)를 포함한다.
상기 전송정보영역관리부(130)는 송신 프로세서 로컬 버스(Tx Processor Local Bus)(150)를 통해 상기 TCP 송신전용 프로세서(110)와 연결된다.
상기 메모리부(140)는 송신 프로세서 로컬 버스(Tx Processor Local Bus)(150)를 통해 상기 TCP 송신전용 프로세서(110) 및 상기 전송정보영역관리부(130)와 연결되고, 수신 프로세서 로컬 버스(Rx Processor Local Bus)(160)를 통해 상기 TCP 수신전용 프로세서(160)와 연결된다. 그리고, 상기 메모리부(140)는 소켓의 정보 및 데이터 전송정보가 저장되는 리소스 메모리(142)와 상기 TCP 송신전용 프로세서(110) 또는 상기 TCP 수신전용 프로세서(120)의 제어에 따라 상기 리소스 메모리(142)를 제어하기 위한 메모리제어부(141)를 포함한다.
한편, 상기 전송정보라 함은 응용프로그램에 의해 전송될 또는 전송된 데이터 영역에 대한 속성을 의미하는 것이다. 전송정보에 대한 예를 들면, 전송 데이터의 물리적인 주소(Physical Address) 및 전송 여부를 나타내는 플래그(Send Flag), 크기(size), 전송정보영역관리부(130)에 의해 생성된 식별자(ID), 다음 전송정보영역의 주소 등이 된다.
도 2 는 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리 장치의 전송정보의 구성을 나타낸 일실시예 설명도이다.
도면에서, "201~20n"은 전송정보, "210"은 소켓, "211"은 "header_sgmt_addr" 필드, "212"는 "tall_sgmt_addr" 필드, 그리고 "213"은 "sending_sgmt_addr" 필드를 각각 나타낸다.
전송정보의 생성 및 관리는 크게 세 가지로 나눌 수 있다.
첫 번째로, 네트워크 프로그램의 요청으로 상기 TCP 송신전용 프로세서(110) 에서 전송정보를 생성하고, 생성된 정보의 저장을 위한 영역 할당을 요청할 경우의 동작과, 두 번째로 상기 TCP 수신전용 프로세서(120)에서 수신한 전송확인패킷(Acknowledge Packet)의 정보를 기반으로 전송완료된 데이터에 대한 전송정보를 찾아내고 해당 전송정보에 대한 삭제 및 해당 영역의 해제를 요청할 경우의 동작과, 마지막으로 TCP 송신전용 프로세서(110)에 의해서 저장되어 있는 전송정보들을 기반으로 데이터를 전송하거나 새로운 전송 명령을 수신시, 그리고 전송완료된 전송정보들에 대한 관리동작이다.
전송정보의 저장 영역 할당 및 해제는 전송정보영역관리부의 할당명령레지스터에 명령을 내림으로써 이루어진다.
이하 도면을 참조하여 전송 명령의 생성 및 관리에 대하여 상세히 설명한다.
도 3 은 상기 도 1의 전송정보영역관리부에 대한 일실시예 상세구성도이다.
도 3을 참조하면 전송영역관리부(130)는 상기 TCP 송신전용 프로세서(110)로부터 소정명령을 수신하기 위한 할당명령레지스터(Allocation Command Register)(301), 상기 할당명령레지스터(301)가 수신한 명령을 확인하여 명령내용을 판단하는 명령판단부(302), 상기 명령판단부(302)의 판단된 명령에 따라 할당 영역식별자(ID)를 관리하는 영역식별자(ID)관리부(303), 할당된 영역식별자(ID)가 저장되어있는 영역식별자(ID)풀(304), 상기 영역식별자(ID)관리부(303)의 처리결과를 저장하며, 상기 TCP 송신전용 프로세서(110)와 연결되는 할당결과레지스터(305)를 포함한다.
도 4 는 상기 도 3의 할당명령레지스터 및 할당결과레지스터의 포맷을 나타 낸 일실시예 설명도로서, 전송정보 생성 및 삭제, 그리고 전송정보 관리에 대하여 나타낸다.
먼저, 전송정보의 생성은 다음과 같은 과정에 의하여 이루어진다.
상기 전송정보영역관리부(130)는 상기 TCP 송신전용 프로세서(110)로부터 할당 명령을 수신한 경우에, 기존에 할당된 영역식별자(ID)를 참조하여 새로운 할당 영역식별자(ID)를 생성하고, 할당완료 표시를 생성한다. 이를 좀 더 상세히 설명하면 다음과 같다.
먼저, 상기 TCP 송신전용 프로세서(110)가 소정 네트워크 프로그램으로부터 데이터 전송을 요청받는다.
상기 TCP 송신전용 프로세서(110)가 데이터 전송 요청을 받으면 전송정보를 저장하기 위한 영역을 할당받기 위해 상기 도 3에 도시된 할당명령레지스터(301)의 명령필드에 생성 명령(실질적으로는, "01"(Create))을 사용하여 명령을 내린다.
다음에 상기 명령판단부(302)는 해당 명령을 해석하여 영역의 생성일 경우 영역식별자(ID)관리부(303)에게 새로운 영역식별자(ID)의 생성을 요구하게 된다.
영역식별자(ID)의 생성을 요청받은 상기 영역식별자(ID)관리부(303)는 영역식별자(ID)풀(304)의 상태를 참고하여 영역식별자(ID)를 생성하게 된다. 여기서, 영역식별자(ID)는 순차적으로 생성될 수도 있고, 임의의 빈 식별자(ID)를 해당 영역에 부여하는 방법으로 생성될 수도 있다.
생성된 영역식별자(ID)는 할당결과레지스터(305)의 식별자(ID) 할당(alloc_id) 필드에 저장하고, 결과(Result) 필드에는 명령완료(Success)("02")를 표시한다. TCP 송신전용 프로세서(110)은 할당결과레지스터(305)를 확인하여 해당 영역식별자(ID)를 기반으로 메모리부(140)의 리소스메모리(142)에 저장될 주소를 계산하여 해당 영역에 생성된 전송정보를 저장하게 된다.
다음으로, 전송정보의 삭제 과정은 다음과 같다.
상기 전송정보영역관리부(130)는 상기 TCP 송신전용 프로세서(110)로부터 할당해제 명령을 수신한 경우에, 저장되어 있는 할당영역 식별자(ID) 중, 해당 영역식별자(ID)를 삭제하고, 할당해제완료 표시를 생성한다.
이를 좀 더 상세히 설명하면, 먼저 상기 TCP 수신전용 프로세서(120)에서 수신한 전송확인패킷(acknowledge packet)의 정보를 기반으로 TCP 송신전용 프로세서(110)가 전송 완료된 데이터에 대한 전송정보를 찾아내고 해당 전송정보를 위해 할당된 영역을 해제하기 위해 상기 도 3에 보이는 할당명령레지스터(301)의 명령필드에 소거명령("02")을 사용하여 명령을 내린다. 식별자(ID) 할당(alloc_id) 필드에는 해당 영역의 식별자(ID)를 기록한다.
다음에 상기 명령판단부(302)는 해당 명령을 해석하여 영역의 해제일 경우 영역식별자(ID)관리부(303)에게 해당 영역식별자(ID)의 삭제를 요구하게 된다. 영역식별자(ID)의 삭제를 요청받은 상기 영역식별자(ID)관리부(303)는 해당 영역식별자(ID)의 필드값들을 리셋시키고, 할당결과레지스터(305)의 결과(Result) 필드에 명령완료(Success)를 나타내는 "02"를 표시한다.
다음으로, TCP 송신전용 프로세서(110)에 의한 전송정보 관리 과정은 다음과 같다.
상기 도 2에 도시된 전송정보의 구성을 참조하면, TCP 송신전용 프로세서(110)가 전송 명령을 수신하면 상기 전송정보영역관리부(130)를 통해 작성한 전송정보를 저장할 영역을 확보하고 해당 정보를 저장한다. 만일, 수신한 전송 명령이 사용하는 소켓(210)에 기존에 작성된 전송정보(203)가 존재하면 소켓(210)의 "tail_sgmt_addr" 필드(212) 및 기존의 전송정보의 "next_sgmt_addr" 필드에 새로이 생성된 전송정보의 주소를 저장한다.
만일, 생성된 전송정보가 해당 소켓(210)의 첫 전송정보(202)일 경우에는 소켓의 "header_sgmt_addr" 필드(211) 및 "tail_sgmt_addr" 필드(212)에 생성된 전송정보의 주소를 저장한다.
저장된 전송정보를 전송시에는 소켓의 "sending_sgmt_addr" 필드(213)를 현재 전송 처리중인 전송정보(202)의 주소를 저장한다. 이는 다음에 전송 처리할 전송정보를 쉽게 찾기 위해서 하는 동작이다.
TCP 수신전용 프로세서(120)에서 수신한 전송확인패킷(acknowledge packet)의 정보를 통해 전송완료가 확인된 전송정보의 처리는 TCP 프로토콜의 특성상 전송한 전송정보의 순서대로 전송확인패킷이 수신되므로 소켓의 "header_sgmt_addr" 필드(211)가 가리키는 전송정보부터 순차적으로 확인한다. 전송확인이 된 전송정보는 해당 영역을 해제하고 소켓의 "header_sgmt_addr" 필드(211)에 전송확인이 되지 않은 전송정보를 저장한다. 만일, 전송확인한 전송정보가 "tail_sgmt_addr" 필드(212)가 가리키는 전송정보가 동일하면 현재 해당 소켓에 전송정보는 존재하지 않는 것이므로 소켓의 "header_sgmt_addr" 필드(211), "tail_sgmt_addr" 필드(212), "sending_sgmt_addr" 필드(212)들을 초기화한다.
도 5 는 본 발명에 따른 전송제어프로토콜 오프로드 엔진(TOE) 기반의 TCP 전송정보 생성 및 관리에 대한 일실시예 흐름도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 TCP 전송정보 생성 및 관리방법은, 먼저 상기 TCP 송신전용 프로세서로부터 전송정보저장영역의 생성 명령을 받으면, 기존에 할당된 영역 식별자(ID)를 참조하여 새로운 할당영역 식별자(ID)를 생성하고, 할당완료 표시를 생성한다(101). 그리고, 상기 TCP 송신전용 프로세서가 상기 할당영역 식별자(ID) 생성완료 표시를 확인하고, 생성된 영역식별자(ID)를 이용하여 소정 메모리에 저장될 영역을 계산한다(102).
다음으로, TCP 송신전용 프로세서가 상기 메모리의 계산된 저장 영역에 해당 전송정보를 저장하고(103), TCP 송신전용 프로세서가 해당 소켓에 연결된 전송정보들을 관리한다(104).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니다.
상기와 같은 본 발명은, TCP 가속을 위한 전송제어프로토콜 오프로드 엔진(TOE)에서 TCP 기반 데이터 전송정보 생성 및 관리를 효과적으로 수행할 수 있고, 시스템 내에서 서버 및 클라이언트 프로세서에 의해서 증가하는 데이터 전송정보의 생성 및 관리로 인해 증가되는 시스템의 부하를 방지할 수 있으며, 이로 인해 데이터 전송정보의 생성 및 관리로 인한 전체적인 시스템의 성능저하를 방지할 수 있는 효과가 있다.

Claims (11)

  1. 전송제어프로토콜 오프로드 엔진(TOE) 기반의 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치에 있어서,
    소정 네트워크 프로그램의 데이터 전송 요청을 수신하여 전송될 데이터의 주소 및 크기 정보를 바탕으로 전송정보를 생성하고, 전송 완료에 대한 확인이 이루어졌을 경우 해당 전송정보를 삭제처리하기 위한 TCP 송신전용 프로세싱 수단;
    데이터의 수신 명령을 수신해서 데이터 수신에 사용할 영역의 주소 및 크기 정보를 바탕으로 수신 정보를 생성하여 관리하기 위한 TCP 수신전용 프로세싱 수단;
    상기 TCP 송신전용 프로세싱 수단의 명령에 따라 전송정보 저장을 위한 메모리 영역을 할당하고, 해당 영역의 식별자(ID)를 생성하고, 삭제 처리를 관리하기 위한 전송정보영역관리수단; 및
    상기 TCP 송신전용 프로세싱 수단의 제어에 따라 전송정보를 저장하고, 삭제하기 위한 저장수단
    을 포함하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  2. 제 1 항에 있어서,
    상기 전송정보영역관리수단은,
    송신 프로세서 로컬 버스(Tx Processor Local Bus)를 통해 상기 TCP 송신전용 프로세싱 수단과 연결되는 것을 특징으로 하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  3. 제 1 항에 있어서,
    상기 저장수단은,
    소켓의 정보 및 데이터 전송정보를 저장하기 위한 리소스 저장수단; 및
    상기 TCP 송신전용 프로세싱 수단, 상기 TCP 수신전용 프로세싱 수단의 제어에 따라 상기 리소스 저장수단을 제어하기 위한 메모리제어수단
    을 포함하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  4. 제 3 항에 있어서,
    상기 저장수단은,
    상기 송신 프로세서 로컬 버스(Tx Processor Local Bus)를 통해 상기 TCP 송신전용 프로세싱 수단 및 상기 전송정보영역관리수단과 연결되고, 수신 프로세서 로컬 버스(Rx Processor Local Bus)를 통해 상기 TCP 수신전용 프로세싱 수단과 연결되는 것을 특징으로 하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 전송정보영역관리수단은,
    상기 TCP 송신전용 프로세싱 수단으로부터 소정명령을 수신하기 위한 할당명령레지스터링 수단;
    상기 할당명령레지스터링 수단이 수신한 명령을 확인하여 명령내용을 판단하기 위한 명령판단수단;
    상기 명령판단수단의 판단된 명령에 따라 할당 영역식별자(ID)를 관리하기 위한 영역식별자(ID)관리수단;
    상기 할당 영역식별자(ID)를 저장하기 위한 영역식별자(ID) 저장수단; 및
    상기 영역식별자(ID)관리수단의 처리결과를 저장하고, 상기 TCP 송신전용 프로세싱 수단과 연결하기 위한 할당결과레지스터링 수단
    을 포함하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  6. 제 5 항에 있어서,
    상기 전송정보는,
    응용프로그램에 의해 전송될 또는 전송된 데이터 영역에 대한 속성을 의미하며, 전송 데이터의 물리적인 주소(Physical Address), 전송 여부를 나타내는 플래그(Send Flag), 크기(size), 상기 전송정보영역관리수단에 의해 생성된 식별자 (ID), 그리고 다음 전송정보영역의 주소를 포함하는 것을 특징으로 하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 장치.
  7. 전송제어프로토콜 오프로드 엔진(TOE) 기반의 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법에 있어서,
    전송정보영역관리부가 TCP 송신전용 프로세서로부터 전송정보저장영역의 생성 명령을 받아, 기존에 할당된 영역 식별자(ID)를 참조하여 새로운 할당영역 식별자(ID)를 생성하고, 할당완료 표시를 생성하는 전송정보 저장영역 생성단계;
    상기 TCP 송신전용 프로세서가 상기 할당영역 식별자(ID) 생성 단계에서의 할당영역 식별자(ID) 생성완료 표시를 확인하고, 생성된 영역식별자(ID)를 이용하여 소정 메모리에 저장될 영역을 계산하는 전송정보 저장영역 계산단계; 및
    상기 TCP 송신전용 프로세서가 상기 소정 메모리의 계산된 저장 영역에 해당 전송정보를 저장하고, 상기 TCP 송신전용 프로세서가 해당 소켓에 연결된 전송정보들을 관리하는 전송정보 저장 및 관리 단계
    를 포함하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법.
  8. 제 7 항에 있어서,
    상기 전송정보 저장영역 생성단계는,
    전송정보영역관리부가 상기 TCP 송신전용 프로세서가 소정 네트워크 프로그램으로부터 데이터 전송을 요청받아 전송정보를 저장하기 위한 영역을 할당받기 위해 할당명령레지스터의 명령필드에 생성 명령을 내리는 생성 지시 단계;
    명령판단부가 상기 생성 지시 단계에서 받은 해당 명령을 해석하여 영역의 생성일 경우, 영역식별자(ID)관리부에게 새로운 영역식별자(ID)의 생성을 요구하는 영역식별자 생성 요구 단계;
    상기 영역식별자 생성 요구 단계에서 영역식별자(ID)의 생성을 요청받은 상기 영역식별자(ID)관리부가 영역식별자(ID)풀의 상태를 참고하여 영역식별자(ID)를 생성하는 영역식별자 생성 단계; 및
    상기 영역식별자 생성 단계에서 생성된 영역식별자(ID)를 할당결과레지스터의 식별자(ID) 할당 필드에 저장하고, 결과(Result) 필드에 명령완료를 표시하는 명령 완료 단계
    를 포함하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법.
  9. 제 8 항에 있어서,
    상기 전송정보 저장영역 계산단계는,
    상기 TCP 송신전용 프로세서가 상기 할당결과레지스터를 확인하여 해당 영역식별자(ID)를 기반으로 메모리부의 리소스메모리에 저장될 주소를 계산하여 해당 영역에 생성된 전송정보를 저장하는 것을 특징으로 하는 전송제어프로토콜(TCP) 전 송정보 생성 및 관리 방법.
  10. 제 8 항에 있어서,
    상기 전송정보영역관리부는,
    상기 TCP 송신전용 프로세서로부터 할당해제 명령을 수신한 경우, 저장되어 있는 할당영역 식별자(ID) 중, 해당 영역식별자(ID)를 삭제하고, 할당해제완료 표시를 생성하는 것을 특징으로 하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법.
  11. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 전송정보 저장 및 관리 단계는,
    상기 TCP 송신전용 프로세서가 전송 명령을 수신하면 상기 전송정보영역관리부를 통해 작성한 전송정보를 저장할 영역을 확보하고 해당 정보를 저장하는 것을 특징으로 하는 전송제어프로토콜(TCP) 전송정보 생성 및 관리 방법.
KR1020050105055A 2005-11-03 2005-11-03 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 KR100653178B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050105055A KR100653178B1 (ko) 2005-11-03 2005-11-03 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법
US11/499,508 US20070115820A1 (en) 2005-11-03 2006-08-04 Apparatus and method for creating and managing TCP transmission information based on TOE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050105055A KR100653178B1 (ko) 2005-11-03 2005-11-03 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR100653178B1 true KR100653178B1 (ko) 2006-12-05

Family

ID=37731858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050105055A KR100653178B1 (ko) 2005-11-03 2005-11-03 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20070115820A1 (ko)
KR (1) KR100653178B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900963B1 (ko) 2006-12-04 2009-06-08 한국전자통신연구원 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법
KR100936918B1 (ko) 2007-12-17 2010-01-18 한국전자통신연구원 정적 파일 전송 시스템콜 처리 toe 장치 및 방법
US7818460B2 (en) 2006-12-04 2010-10-19 Electronics And Telecommunications Research Institute Hardware device and method for transmitting network protocol packet
KR101357342B1 (ko) 2012-03-15 2014-02-04 엘에스산전 주식회사 하드웨어 프로토콜 스택

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460300A (zh) * 2021-06-08 2022-12-09 中兴通讯股份有限公司 数据处理方法、toe硬件及计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US7539204B2 (en) * 2001-09-26 2009-05-26 Broadcom Corporation Data and context memory sharing
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040210663A1 (en) * 2003-04-15 2004-10-21 Paul Phillips Object-aware transport-layer network processing engine
US20050021558A1 (en) * 2003-06-11 2005-01-27 Beverly Harlan T. Network protocol off-load engine memory management
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US20050165938A1 (en) * 2003-12-24 2005-07-28 Linden Cornett Method, system, and program for managing shared resources
US20050223118A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for placement of sharing physical buffer lists in RDMA communication

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900963B1 (ko) 2006-12-04 2009-06-08 한국전자통신연구원 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법
US7818460B2 (en) 2006-12-04 2010-10-19 Electronics And Telecommunications Research Institute Hardware device and method for transmitting network protocol packet
KR100936918B1 (ko) 2007-12-17 2010-01-18 한국전자통신연구원 정적 파일 전송 시스템콜 처리 toe 장치 및 방법
KR101357342B1 (ko) 2012-03-15 2014-02-04 엘에스산전 주식회사 하드웨어 프로토콜 스택

Also Published As

Publication number Publication date
US20070115820A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
US11210148B2 (en) Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
CN107209644B (zh) 一种数据处理方法以及NVMe存储器
US10838665B2 (en) Method, device, and system for buffering data for read/write commands in NVME over fabric architecture
EP0889622B1 (en) Apparatus and method for remote buffer allocation and management for message passing between network nodes
US5884313A (en) System and method for efficient remote disk I/O
KR100758272B1 (ko) 데이터 무 복사 파일 이동 방법
US20060259571A1 (en) Zero-copy transfer of memory between address spaces
KR100653178B1 (ko) 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법
JP6492083B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
US20220222016A1 (en) Method for accessing solid state disk and storage device
WO2017032152A1 (zh) 将数据写入存储设备的方法及存储设备
KR100936918B1 (ko) 정적 파일 전송 시스템콜 처리 toe 장치 및 방법
US20090262739A1 (en) Network device of processing packets efficiently and method thereof
JP3791742B2 (ja) Pciバス制御システム
JP3376956B2 (ja) プロセッサ間通信装置
US7839875B1 (en) Method and system for an efficient transport loopback mechanism for TCP/IP sockets
US20120331172A1 (en) Method And System For Improved Performance Of Network Communications With Interface Specific Buffers
TWI416336B (zh) 可共享緩衝器的網路介面卡與緩衝器共享方法
TW202340950A (zh) 用於在記憶體分離環境中加速網路傳輸的方法及設備
KR20190064290A (ko) 네트워크 인터페이스 카드를 이용한 데이터 송수신 가속 방법 및 장치
KR20000065846A (ko) 오퍼레이팅 시스템에서 커널과 사용자 사이의 제로-카피 방법
CN117873920A (zh) 一种rdma的内存翻译表应用方法及系统
CN116034346A (zh) 用于内存管理的设备
KR20000038076A (ko) 제로-카피 메시지 패싱 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee