[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20060116876A - Tcp/ip 가속장치 - Google Patents

Tcp/ip 가속장치 Download PDF

Info

Publication number
KR20060116876A
KR20060116876A KR1020050039387A KR20050039387A KR20060116876A KR 20060116876 A KR20060116876 A KR 20060116876A KR 1020050039387 A KR1020050039387 A KR 1020050039387A KR 20050039387 A KR20050039387 A KR 20050039387A KR 20060116876 A KR20060116876 A KR 20060116876A
Authority
KR
South Korea
Prior art keywords
tcp
packet
transmission
receiving
processor
Prior art date
Application number
KR1020050039387A
Other languages
English (en)
Other versions
KR100649643B1 (ko
Inventor
정상화
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020050039387A priority Critical patent/KR100649643B1/ko
Publication of KR20060116876A publication Critical patent/KR20060116876A/ko
Application granted granted Critical
Publication of KR100649643B1 publication Critical patent/KR100649643B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Landscapes

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

Abstract

본 발명은 송신노드와 수신노드 간의 통신 성능을 향상 또는 유지시키기 위하여 TCP/IP를 이용하여 패킷을 처리하는 TCP/IP 가속장치에 관한 것으로, TCP/IP를 사용한 데이터 송신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하는 송신모듈과, TCP/IP를 사용한 데이터 수신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하는 수신모듈과, TCP/IP 통신을 수행하려고 하는 외부장치와의 연결을 위한 시스템 인터페이스부와, 네트워크 연결을 위한 네트워크 인터페이스부를 포함하여 구성되는 것을 특징으로 한다. 이와 같은 본 발명은 통신의 성능에 직접적인 영향을 주는 기능들은 하드웨어로 구현하여 처리하고, 통신의 성능에 직접적인 영향을 끼치지 않는 기능들은 소프트웨어로 구현하여 처리함으로써, 초고속 네트워크 환경하에서도 송신노드와 수신노드 간의 통신 성능을 보장할 수 있으며, 구현 또한 매우 용이하게 할 수 있는 것이다.
TCP/IP, 전송 제어 프로토콜, 인터넷 프로토콜, 이더넷(Ethernet), 랜(LAN)

Description

TCP/IP 가속장치{TCP/IP accelerator}
도 1은 본 발명의 실시예에 따른 TCP/IP 가속장치의 구성 블록도.
도 2는 도 1에 도시한 송신모듈의 상세 구성도.
도 3은 도 1에 도시한 수신모듈의 상세 구성도.
도 4는 본 발명의 실시예에 따른 연결 설정 및 해제 방법을 설명하기 위한 개념도.
*도면의 주요 부분에 대한 부호의 설명*
110: 송신모듈 111: 제1송신처리부
113: 제2송신처리부 115: 송신용 메모리 컨트롤러
117: 제1연동정보 메모리 119: ACK 처리기
120: 수신모듈 121: 제1수신처리부
123: 제2수신처리부 125: 수신용 메모리 컨트롤러
127: 제2연동정보 메모리 129: ACK 생성기
130: 시스템 인터페이스부 140: 네트워크 인터페이스부
150: 연결정보 메모리 160: 송신용 패킷버퍼 메모리
170: 수신용 패킷버퍼 메모리
본 발명은 TCP/IP 가속장치에 관한 것으로, 특히 통신의 성능에 직접적인 영향을 주는 기능들은 하드웨어로 구현하여 처리하고, 통신의 성능에 직접적인 영향을 끼치지 않는 기능들은 소프트웨어로 구현하여 처리함으로써, 초고속 네트워크 환경하에서도 송신노드와 수신노드 간의 통신 성능을 보장할 수 있으며, 구현 또한 매우 용이하게 할 수 있는 TCP/IP 가속장치에 관한 것이다.
이더넷(Ethernet)상에서 사용되는 대표적인 통신 프로토콜인 TCP/IP는 일반적으로 호스트 CPU에서 처리되는데, 이는 호스트 CPU에 프로토콜을 처리하는 부하를 유발하여 전체 시스템의 성능을 떨어뜨리는 요인이 된다. 특히 네트워크의 물리적인 성능이 1초당 기가비트 이상을 처리할 수 있도록 발전함에 따라 TCP/IP를 사용한 통신에서 프로토콜 처리의 부하가 더욱 커지고 있다.
또한, 인터넷의 급속한 보급에 따라 인터넷에 접속된 각종 서버들에게는 대량의 사용자 접속에 대해 최소한의 자원으로 최대한의 서비스를 제공하는 능력을 갖출 것이 요구되고 있다.
이에, 상기와 같은 문제를 해결하기 위한 방안으로서, TCP/IP 프로토콜의 처리를 호스트 CPU가 아닌 네트워크 어댑터에서 처리함으로써, 호스트 CPU에 가해지는 부하를 줄이고, 호스트 CPU가 프로토콜 처리 이외의 실질적인 작업에 전념하도록 함으로써, 전체 시스템의 성능을 향상시킬 뿐 아니라, 호스트 CPU에서 실행되는 작업량이 늘어나더라도 통신의 성능을 계속 유지할 수 있도록 한 TCP/IP 가속장치 가 제안된바 있다.
그러나, 전용 ASIC을 이용할 경우, 통신의 성능은 우수하지만 이를 구현하는 데 많은 시간이 소요되며, 또한 구현된 하드웨어에서 수정하거나 개선할 사항이 발생하더라도 이를 단기간에 해결하기가 매우 어렵다는 문제점이 있었다.
반면에, 내장형 프로세서(Embedded Processor)를 네트워크 어댑터에 장착하여 소프트웨어로 TCP/IP를 처리하는 경우에는 구현이 용이하고, TCP/IP 이외의 프로토콜을 처리하는 기능을 추가하기는 용이한 반면에 통신 성능을 보장받기가 어렵다는 문제점이 있었다.
이에 본 발명은 상기와 같은 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 통신의 성능에 직접적인 영향을 주는 기능들은 하드웨어로 구현하여 처리하고, 통신의 성능에 직접적인 영향을 끼치지 않는 기능들은 소프트웨어로 구현하여 처리함으로써, 초고속 네트워크 환경하에서도 송신노드와 수신노드 간의 통신 성능을 보장할 수 있으며, 구현 또한 매우 용이하게 할 수 있는 TCP/IP 가속장치를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 TCP/IP 가속장치는 송신노드와 수신노드 간의 통신 성능을 향상 또는 유지시키기 위하여 TCP/IP를 이용하여 패킷을 처리하는 TCP/IP 가속장치에 있어서, TCP/IP를 사용한 데이터 송신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하 는 송신모듈과, TCP/IP를 사용한 데이터 수신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하는 수신모듈과, TCP/IP 통신을 수행하려고 하는 외부장치와의 연결을 위한 시스템 인터페이스부와, 네트워크 연결을 위한 네트워크 인터페이스부를 포함하여 구성되는 것을 그 기술적 구성상의 특징으로 한다.
또한, 본 발명의 실시예에 따른 TCP/IP 가속장치는 송신 데이터의 크기에 맞는 패킷버퍼를 구비한 송신용 패킷버퍼 메모리와, 데이터 수신을 위한 패킷버퍼를 구비한 수신용 패킷버퍼 메모리를 더 포함하는 것을 특징으로 한다.
또한, 상기 송신모듈은 하드웨어로 처리할 TCP/IP 기능을 수행하며 ACK(Acknowledgement) 패킷을 처리하기 위한 ACK 처리기가 내장된 제1송신처리부와, 소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2송신처리부와, 상기 송신용 패킷버퍼 메모리를 관리하는 송신용 메모리 컨트롤러 및 상기 제1송신처리부와 제2송신처리부가 연동하는 데 필요한 정보가 저장되는 제1연동정보 메모리를 포함하여 구성되는 것을 특징으로 한다.
또한, 상기 수신모듈은 하드웨어로 처리할 TCP/IP 기능을 수행하며, ACK 패킷을 생성하기 위한 ACK 생성기가 내장된 제1수신처리부와, 소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2수신처리부와, 상기 수신용 패킷버퍼 메모리를 관리하는 수신용 메모리 컨트롤러 및 상기 제1수신처리부와 제2수신처리부가 연동하는 데 필요한 정보가 저장되는 제2연동정보 메모리를 포함하여 구성되는 것을 특징으로 한다.
또한, 상기 제1송신처리부는 상기 시스템 인터페이스부를 통하여 송신 요청 정보가 입력되면, 상기 송신용 패킷버퍼 메모리에 송신할 패킷을 저장할 패킷버퍼를 확인한 후, 상기 패킷의 헤더를 생성하여 상기 송신할 패킷과 함께 상기 송신용 패킷버퍼 메모리에 저장한 다음, 상기 네트워크 인터페이스부를 통하여 상기 패킷을 전송하고, 상기 제2송신처리부는 송신노드와 수신노드 간 연결에 관련된 순서번호(Sequence Number)를 생성하여 상기 제1송신처리부에 상기 순서번호를 포함하는 SYN 패킷의 전송을 요청하는 것을 특징으로 한다.
또한, 상기 제1수신처리부는 상기 네트워크 인터페이스부를 통하여 수신한 패킷의 이상 유무를 판단하여 이상이 있으면 상기 패킷을 폐기하고, 이상이 없으면 상기 패킷의 헤더를 분석하여 그 패킷을 처리하고, 상기 제2수신처리부는 송신노드와 수신노드 간 연결에 관련된 순서번호 및 수신한 SYN 패킷에 대응하는 응답번호(Response Number)를 생성하여 상기 순서번호 및 응답번호를 포함하는 SYN/ACK 패킷의 전송을 상기 제1수신처리부로 요청하는 것을 특징으로 한다.
또한, 본 발명의 실시예에 따른 TCP/IP 가속장치는 상기 송신노드와 수신노드 간의 연결 설정과 관련한 정보를 상기 송신모듈과 수신모듈이 공유할 수 있도록 연결정보 메모리를 더 포함하여 구성되는 것을 특징으로 한다.
이하, 상기와 같은 본 발명의 기술적 사상에 따른 실시예를 첨부된 도면을 참조하여 구체적으로 설명하면 다음과 같다.
도 1은 본 발명의 실시예에 따른 TCP/IP 가속장치의 구성 블록도이고, 도 2는 도 1에 도시한 송신모듈의 상세 구성도이며, 도 3은 도 1에 도시한 수신모듈의 상세 구성도이다.
도 1 내지 도 3에 도시한 바와 같이, 본 발명의 실시예에 따른 TCP/IP 가속장치는 크게 TCP/IP를 사용한 데이터 송신을 담당하는 송신모듈(110)과, TCP/IP를 사용한 데이터 수신을 담당하는 수신모듈(120)과, 상기 송신모듈(110)과 수신모듈(120)이 공유하는 TCP/IP 연결정보가 저장된 연결정보 메모리(150)와, 상기 송신모듈(110)과 TCP/IP 통신을 수행하려고 하는 컴퓨터의 호스트 CPU와 같은 외부장치와의 연결을 위한 시스템 인터페이스부(130) 및 이더넷(Ethernet)과 같은 네트워크의 물리적 계층을 지원하는 네트워크 인터페이스부(140)를 포함하여 구성된다.
추가하여, 본 발명의 실시예에 따른 TCP/IP 가속장치는 송신 데이터의 크기에 맞는 패킷버퍼를 구비한 송신용 패킷버퍼 메모리(160)와, 데이터 수신을 위한 패킷버퍼를 구비한 수신용 패킷버퍼 메모리(170)를 더 포함하여 구성된다.
한편, 상기 송신모듈(110)은 도 2에 도시한 바와 같이, 하드웨어로 처리할 TCP/IP 기능을 수행하는 제1송신처리부(111)와, 소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2송신처리부(113)와, 상기 송신용 패킷버퍼 메모리(160)를 관리하는 송신용 메모리 컨트롤러(115) 및 상기 제1송신처리부(111)와 제2송신처리부(113)가 연동하는 데 필요한 정보가 저장되는 제1연동정보 메모리(117)를 포함하여 구성된다.
여기서, 상기 송신모듈(110)의 제1송신처리부(111)는 네트워크 인터페이스부(140)로부터 수신된 ACK(Acknowledgement) 패킷을 처리하기 위한 ACK 처리기(119)를 내장한다. 그리고 상기 송신용 메모리 컨트롤러(115)는 송신할 데이터와 패킷 헤더를 상기 송신용 패킷버퍼 메모리(160)에 저장하며, 상기 제1송신처리부(111)와 제2송신처리부(113)는 제1연동정보 메모리(117)를 통해서 연동에 필요한 정보를 공유한다.
한편, 상기 수신모듈(120)은 도3에 도시한 바와 같이, 송신모듈(110)과 마찬가지로 하드웨어로 처리할 TCP/IP 기능을 수행하는 제1수신처리부(121)와, 소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2수신처리부(123)와, 데이터 수신을 위한 패킷버퍼를 구비한 상기 수신용 패킷버퍼 메모리(170)를 관리하는 수신용 메모리 컨트롤러(125) 및 상기 제1수신처리부(121)와 제2수신처리부(123)가 연동하는 데 필요한 정보가 저장되는 제2연동정보 메모리(127)로 구성된다.
여기서, 상기 제1수신처리부(121)에는 ACK 패킷을 생성하기 위한 ACK 생성기(129)가 내장된다. 그리고 상기 수신용 메모리 컨트롤러(125)는 수신된 패킷을 수신용 패킷버퍼 메모리(170)에 저장하며, 제1수신처리부(121)와 제2수신처리부(123)는 제2연동정보 메모리(127)를 통해서 연동에 필요한 정보를 공유한다.
상기 시스템 인터페이스부(130)는 TCP/IP 통신을 수행하려고 하는 컴퓨터의 호스트 CPU와 같은 외부장치와의 연결을 담당하며, 상기 네트워크 인터페이스부(140)는 이더넷(Ethernet)과 같은 네트워크의 물리적 계층을 지원하는 MAC/PHY 칩과의 연결을 담당한다.
이와 같은 본 발명의 실시예에 따른 TCP/IP 가속장치는 TCP/IP 프로토콜을 사용하여 통신을 수행함에 있어서, 크게 연결 설정 및 해제, TCP 연결 상태 관리, 패킷버퍼의 생성 및 해제, TCP/IP와 MAC 헤더의 생성 및 처리, ACK 패킷의 생성 및 처리, 흐름 제어 등의 과정으로 이루어진다. 이때, 패킷버퍼의 생성 및 해제 기능, TCP/IP와 MAC 헤더의 생성 및 처리 기능, ACK 패킷의 생성 및 처리 기능과 같이 통신의 성능에 직접적인 영향을 주는 기능들은 하드웨어로 처리하고, 연결 설정 및 해제 기능, 연결 상태 관리 기능 및 흐름 제어 기능과 같이 통신의 성능에 직접적으로 영향을 끼치지 않는 기능들은 범용 내장형 프로세서에서 소프트웨어로 처리한다. 아울러, 기가(G)비트급 이상의 초고속 네트워크 환경에서 송수신 처리에 단일 범용 내장형 프로세서를 사용할 경우에는 송수신 작업을 처리하는 프로세스들 사이의 작업 전환, 오버헤드로 인한 TCP/IP 통신 성능이 저하될 수 있으므로 송신 과정을 처리하는 송신모듈과 수신 과정을 처리하는 수신모듈에 각각 별도의 범용 내장형 프로세서(제2송신처리부와 제2수신처리부)를 사용한다.
이하에서는 본 발명의 실시예에 따른 TCP/IP 가속장치의 동작에 대해 설명하기로 한다.
먼저, 본 발명의 실시예에 따른 TCP/IP 가속장치를 이용한 연결 설정 및 해제 동작은 다음과 같다.
TCP/IP를 사용한 통신을 수행할 두 노드(송신노드, 수신노드)는 데이터의 전송을 시작하기 전에 연결 설정을 수행해야 하고, 통신이 끝나면 연결을 해제해야 한다. 이러한 연결 설정 및 해제 과정은 TCP/IP 프로토콜에 정의된 세 방향 핸드쉐이킹(3 way hand shaking) 처리과정을 따르며, 연결을 요청하는 노드를 클라이언트로 정의하고, 연결 요청을 받는 노드를 서버로 정의한다.
즉, 클라이언트가 먼저 SYN 패킷을 서버로 전송하면, 서버는 SYN/ACK 패킷을 클라이언트로 전송한다. 이후, 클라이언트가 ACK 패킷을 서버로 전송하면 연결 설 정이 완료된다. 이러한 연결 설정 과정에서는 초기순서번호(ISN: Initial Sequence Number)와 응답번호(AN: ACK Number)가 SYN 패킷과 ACK 패킷에 각각 담겨 교환된다.
반대로, 연결 해제 과정은 클라이언트가 FIN 패킷을 서버로 전송하면, 서버는 FIN/ACK 패킷을 클라이언트로 전송하고, 이후, 클라이언트가 ACK 패킷을 서버로 전송하면 연결 해제가 완료된다. 이러한 연결 해제 과정에서도 연결 설정 과정과 마찬가지로 초기순서번호(ISN)와 응답번호(AN)가 FIN 패킷과 ACK 패킷에 각각 담겨 교환된다. 이때, 설정된 연결에 관한 정보는 도1에 나타난 바와 같이, 송신모듈(110)과 수신모듈(120)이 공유하는 연결정보 메모리(150)에 저장되며, 상기 연결정보 메모리(150)는 듀얼 포트 메모리 형태로 구성되고, 연결정보를 통해 공유되는 TCP/IP 연결 정보에는 출발지(Source) 정보, 목적지(Destination) 정보, TCP 제어 정보 등이 포함된다.
상기의 출발지 정보와 목적지 정보는 각각 출발지와 목적지의 포트 번호(Port Number), IP 주소(IP Address), 하드웨어 주소(Hardware Address)로 구성되며, 상기 TCP 제어 정보로는 순서 번호(Sequence Number), ACK 번호(Acknowledgement Number), 수신된 ACK 개수와 함께 TCP/IP 가속장치를 사용하는 외부 장치(컴퓨터의 호스트 CPU와 같은)의 식별정보, 출발지 포트 번호, 목적지 포트 번호, 송신 버퍼 정보, 수신 버퍼 정보 등이 포함된다.
이러한 TCP/IP 연결 설정 및 해제 과정은 통신의 성능에 영향을 주는 부분이 아니다. 따라서, 본 발명의 실시예에서는 상기와 같은 연결 설정 및 해제 과정을 송신모듈(110)이 제2송신처리부(113) 및 수신모듈(120)의 제2수신처리부(123)에서 소프트웨어로 처리한다. 이를 보다 구체적으로 설명하면 다음과 같다.
도 4는 본 발명의 실시예에 따른 연결 설정 및 해제 방법을 설명하기 위한 개념도로서, 네트워크로 연결된 2개의 TCP/IP 가속장치 중 어느 하나를 연결 설정을 요청하는 클라이언트라 가정하고, 다른 하나를 연결 요청을 받는 서버라고 가정하여 설명하기로 한다.
먼저, 클라이언트가 되는 TCP/IP 가속장치(노드 A)(이하, 설명의 편의를 위해 "제1TCP/IP 가속장치"라 함)의 시스템 인터페이스부(130)를 통해 연결 설정 요청 정보가 입력되면, 하드웨어로 처리할 TCP/IP 기능을 수행하는 제1송신처리부(111)는 연결 설정에 관련된 정보를 제1연동정보 메모리(117)에 기록(Write)하고, 제2송신처리부(113)에 인터럽트를 발생시킨다.
이에, 상기 제2송신처리부(113)는 연결 설정에 필요한 초기순서번호를 생성하여 제1연동정보 메모리(117)에 저장하고, 아울러, 상기 제1송신처리부(111) 내부의 플래그를 세팅하여 초기순서번호를 담고 있는 SYN 패킷을 서버가 되는 TCP/IP 가속장치(노드 B)(이하, 설명의 편의를 위해 "제2TCP/IP 가속장치"라 함)로 보낼 것을 요청한다. 따라서 상기 제1송신처리부(111)는 SYN 패킷을 제2TCP/IP 가속장치(노드 B)로 전송한다.
상기 제1TCP/IP 가속장치(노드 A)로부터 SYN 패킷을 수신한 제2TCP/IP 가속장치(노드 B)의 제1수신처리부(121)는 상기 수신된 SYN 패킷에서 초기순서번호 등을 포함한 제1TCP/IP 가속장치(노드 A)의 정보를 추출하여 제2연동정보 메모리 (127)에 저장하고, 제2수신처리부(123)에 인터럽트를 발생시킨다.
이에, 상기 제2TCP/IP 가속장치(노드 B)의 제2수신처리부(123)는 상기 제2연동정보 메모리(127)에 저장된 제1TCP/IP 가속장치(노드 A)의 정보를 사용하여 연결 설정에 필요한 작업을 처리하고, 제2TCP/IP 가속장치(노드 B)의 초기순서번호와 상기에서 수신된 SYN 패킷에 대응하는 응답 번호(Acknowledgement Number)를 생성하여 다시 제2연동정보 메모리(127)에 저장한다. 이후, 제2TCP/IP 가속장치(노드 B)의 초기순서번호와 응답 번호를 담은 SYN/ACK 패킷이 상기 제1TCP/IP 가속장치(노드 A)로 전송될 수 있도록 제1수신처리부(121)에 요청한다.
상기 제2TCP/IP 가속장치(노드 B)의 제1수신처리부(121)는 제2수신처리부(123)의 요청에 상응하여 SYN/ACK 패킷을 제1TCP/IP 가속장치(노드 A)로 전송하고, 이에, 제1TCP/IP 가속장치(노드 A)의 제1수신처리부(121)는 제2TCP/IP 가속장치(노드 B)로부터 수신된 SYN/ACK 패킷에 포함된 제2TCP/IP 가속장치(노드 B)의 초기순서번호 및 응답번호 등을 포함한 제2TCP/IP 가속장치(노드 B)의 정보를 추출하여 제1TCP/IP 가속장치(노드 A)의 제2연동정보 메모리(127)에 저장한 후, 제1수신처리부(121)로 처리를 요청한다. 이에, 상기 제1TCP/IP 가속장치(노드 A)의 제1수신처리부(121)는 이를 처리하고 상기 제2수신처리부(123)로 ACK 패킷을 상기 제2TCP/IP 가속장치(노드 B)로 전송할 것을 요청한다. 이에, 상기 제1TCP/IP 가속장치(노드 A)의 제2수신처리부(123)에서 생성된 ACK 패킷이 제2TCP/IP 가속장치(노드 B)로 전송되어 처리되고 나면 제1TCP/IP 가속장치(노드 A)와 제2TCP/IP 가속장치(노드 B)간의 연결 설정 과정이 완료된다.
상기에서는 제1TCP/IP 가속장치(노드 A)가 연결 설정을 요청하였으므로 클라이언트가 되고, 연결 설정을 요청 받은 제2TCP/IP 가속장치(노드 B)는 서버가 되었지만, 위와 같은 과정을 통해 연결 설정이 완료되고 나면, 그 다음부터는 클라이언트와 서버가 아니라 둘 중 데이터를 보내는 쪽이 송신노드가 되고, 데이터를 받는 쪽이 수신노드가 된다.
한편, 본 발명의 실시예에 따른 TCP/IP 가속장치의 연결 해제 과정은 전술한 연결 설정 과정의 SYN 패킷 대신 FIN 패킷을 사용하는 것만 다를 뿐, 그 이외의 과정들은 상기 연결 설정 과정과 동일하므로 자세한 설명은 생략하기로 한다.
이하에서는 데이터 송신 과정과 데이터 수신 과정에 대해 설명하기로 한다.
먼저, 데이터 송신의 경우, 호스트 CPU와 같이 TCP/IP 통신을 수행하려는 외부 장치는 본 발명의 실시예에 따른 TCP/IP 가속장치의 시스템 인터페이스부(130)를 통해 송신 요청 정보를 보낸다. 이때, 상기 송신 요청에 관한 정보는 TCP/IP 가속장치의 제1송신처리부(111)로 전달되며, 제1송신처리부(111)는 송신 데이터의 크기에 맞는 패킷버퍼를 송신용 패킷버퍼 메모리(160)에 확보한다. 그리고 송신할 데이터는 시스템 인터페이스부(130)에서 DMA를 사용하여 전송받아 상기 송신용 패킷버퍼 메모리(160)에 저장하며, 이와 동시에 데이터의 부분 체크섬(Partial Checksum)을 계산한다.
또한, 상기 제1송신처리부(111)는 TCP/IP 통신을 수행하려는 장치(호스트 CPU 등)로부터 송신 요청을 받아서 패킷 버퍼를 확보하고, 데이터를 상기 송신용 패킷버퍼 메모리(160)에 확보된 패킷버퍼에 저장하는 작업을 수행하며, 동시에 송 신 요청 정보에 따라서 TCP/IP 헤더와 MAC 헤더를 생성하여 상기 송신용 패킷버퍼 메모리(160)에 저장한다.
패킷 생성이 완료되면 네트워크 인터페이스부(140)에 상기 생성된 패킷의 전송을 요청하고, 이에 상기 네트워크 인터페이스부(140)는 전송될 패킷을 송신용 패킷버퍼 메모리(160)에서 추출하여 MAC로 전달한다.
이상의 설명은 데이터를 송신하는 송신노드측 TCP/IP 가속장치에서 이루어지는 과정을 설명한 것으로서, 상기 송신노드측 TCP/IP 가속장치에서 전송된 패킷이 수신노드측 TCP/IP 가속장치에 정상적으로 수신되면, 상기 수신노드측 TCP/IP 가속장치는 ACK 패킷을 생성하여 송신노드측 TCP/IP 가속장치로 돌려보내고, 이에 송신노드측 TCP/IP 가속장치의 네트워크 인터페이스부(140)는 수신된 ACK 패킷을 제1송신처리부(111)에 내장된 ACK 처리기(119)로 전송한다.
상기 ACK 처리기(119)는 입력되는 ACK 패킷을 분석하여 송신용 패킷버퍼 메모리(160)에 저장되어 있는 데이터 패킷을 해제하고, 흐름제어를 위해 ACK 정보를 제1송신처리부(111)로 전달한다.
한편, 데이터 수신의 경우는 다음과 같다.
연결 설정이 완료되면 TCP/IP 가속장치의 제1수신처리부(121a)는 언제라도 데이터를 수신할 수 있도록 수신용 패킷버퍼 메모리(170a)에 패킷버퍼를 확보한다. 그리고 네트워크 인터페이스부(140a)는 수신된 패킷이 데이터 패킷인지 ACK 패킷인지 조사하여, ACK 패킷이면 제1송신처리부(111a)에 내장된 ACK 처리기(119a)로 전달하고, 데이터 패킷이면 수신용 패킷버퍼 메모리(170a)에 상기 데이터 패킷을 저 장한 후, 제1수신처리부(121a)에 처리를 요청한다.
상기 제1수신처리부(121a)는 수신된 패킷의 IP 헤더 체크섬을 계산하여 이상이 있으면 패킷을 폐기하고, 이상이 없으면 IP 계층의 처리 작업을 수행한 후, TCP 처리 단계로 넘어간다.
상기 TCP 처리 단계에서는 TCP 체크섬 검사 결과를 점검하고, TCP 계층의 나머지 처리 작업을 수행한다. 이때, TCP/IP 계층의 처리가 진행되는 동안, ACK 생성기(129a)는 ACK 패킷을 미리 생성하여 전송을 준비해 두고, 생성된 ACK 패킷은 TCP 계층의 처리 결과에 이상이 없으면 네트워크 인터페이스부(140a)를 통해 송신노드측 TCP/IP 가속장치로 전송하고, 상기 제1수신처리부(121a)는 수신용 패킷버퍼 메모리(170a)에 저장된 데이터를 시스템 인터페이스부(130a)를 통해 외부장치로 전송한다.
이상에서 데이터 송신 및 수신 과정에 대해서 설명하였으며, 이하에서는 흐름 제어 과정에 대해서 설명하기로 한다.
TCP/IP 흐름 제어 기능은 제2송신처리부(113)에서 소프트웨어적으로 처리된다. 하드웨어적으로 처리하는 제1송신처리부(111)는 ACK 패킷을 수신하였을 때, 관련 정보를 제1연동정보 메모리(117)에 저장하고, 제2송신처리부(113)에 인터럽트를 발생시킨다.
상기 인터럽트를 받은 제2송신처리부(113)는 제1연동정보 메모리(117)에서 정보를 읽어오고, 이를 바탕으로 하여 흐름 제어 알고리즘을 수행한다. 제2송신처리부(113)는 흐름 제어 알고리즘의 수행 결과를 다시 연동정보 메모리에 적고, 제1 송신처리부(111) 내부의 플래그를 세팅하여 알고리즘의 수행이 끝났음을 알려준다. 따라서 상기 제1송신처리부(111)는 플래그를 보고 제1연동정보 메모리(117)에 저장된 데이터를 가져와서 TCP/IP 패킷의 송신에 사용한다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따른 TCP/IP 가속장치는, 통신의 성능에 직접적인 영향을 주는 기능들은 하드웨어로 구현하여 처리하고, 통신의 성능에 직접적인 영향을 끼치지 않는 기능들은 소프트웨어로 구현하여 처리함으로써, 초고속 네트워크 환경하에서도 송신노드와 수신노드 간의 통신 성능을 보장할 수 있으며, 구현 또한 매우 용이하게 할 수 있다.
또한 본 발명은 송신모듈과 수신모듈에서 각각 별도의 범용 내장형 프로세서를 사용함으로써, 송수신 작업을 처리하는 프로세스들 간에 작업전환 오버헤드가 발생하는 것을 방지하여 통신 성능을 보장할 수 있다.

Claims (7)

  1. 송신노드와 수신노드 간의 통신 성능을 향상 또는 유지시키기 위하여 TCP/IP를 이용하여 패킷을 처리하는 TCP/IP 가속장치에 있어서,
    TCP/IP를 사용한 데이터 송신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하는 송신모듈과;
    TCP/IP를 사용한 데이터 수신을 담당하며, TCP/IP 기능을 하드웨어와 소프트웨어로 구분하여 처리하는 수신모듈과;
    TCP/IP 통신을 수행하려고 하는 외부장치와의 연결을 위한 시스템 인터페이스부와;
    네트워크 연결을 위한 네트워크 인터페이스부를 포함하여 구성되는 것을 특징으로 하는 TCP/IP 가속장치.
  2. 제 1 항에 있어서,
    송신 데이터의 크기에 맞는 패킷버퍼를 구비한 송신용 패킷버퍼 메모리와,
    데이터 수신을 위한 패킷버퍼를 구비한 수신용 패킷버퍼 메모리를 더 포함하는 것을 특징으로 하는 TCP/IP 가속장치.
  3. 제 2 항에 있어서, 상기 송신모듈은,
    하드웨어로 처리할 TCP/IP 기능을 수행하며 ACK(Acknowledgement) 패킷을 처 리하기 위한 ACK 처리기가 내장된 제1송신처리부와,
    소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2송신처리부와,
    상기 송신용 패킷버퍼 메모리를 관리하는 송신용 메모리 컨트롤러 및
    상기 제1송신처리부와 제2송신처리부가 연동하는 데 필요한 정보가 저장되는 제1연동정보 메모리를 포함하여 구성되는 것을 특징으로 하는 TCP/IP 가속장치.
  4. 제 2 항에 있어서, 상기 수신모듈은,
    하드웨어로 처리할 TCP/IP 기능을 수행하며, ACK 패킷을 생성하기 위한 ACK 생성기가 내장된 제1수신처리부와,
    소프트웨어로 처리할 TCP/IP 기능을 수행하는 제2수신처리부와,
    상기 수신용 패킷버퍼 메모리를 관리하는 수신용 메모리 컨트롤러 및
    상기 제1수신처리부와 제2수신처리부가 연동하는 데 필요한 정보가 저장되는 제2연동정보 메모리를 포함하여 구성되는 것을 특징으로 하는 TCP/IP 가속장치.
  5. 제 3 항에 있어서, 상기 제1송신처리부는 상기 시스템 인터페이스부를 통하여 송신 요청 정보가 입력되면, 상기 송신용 패킷버퍼 메모리에 송신할 패킷을 저장할 패킷버퍼를 확인한 후, 상기 패킷의 헤더를 생성하여 상기 송신할 패킷과 함께 상기 송신용 패킷버퍼 메모리에 저장한 다음, 상기 네트워크 인터페이스부를 통하여 상기 패킷을 전송하고,
    상기 제2송신처리부는 송신노드와 수신노드 간 연결에 관련된 순서번호 (Sequence Number)를 생성하여 상기 제1송신처리부에 상기 순서번호를 포함하는 SYN 패킷의 전송을 요청하는 것을 특징으로 하는 TCP/IP 가속장치.
  6. 제 4 항에 있어서, 상기 제1수신처리부는 상기 네트워크 인터페이스부를 통하여 수신한 패킷의 이상 유무를 판단하여 이상이 있으면 상기 패킷을 폐기하고, 이상이 없으면 상기 패킷의 헤더를 분석하여 그 패킷을 처리하고,
    상기 제2수신처리부는 송신노드와 수신노드 간 연결에 관련된 순서번호 및 수신한 SYN 패킷에 대응하는 응답번호(Response Number)를 생성하여 상기 순서번호 및 응답번호를 포함하는 SYN/ACK 패킷의 전송을 상기 제1수신처리부로 요청하는 것을 특징으로 하는 TCP/IP 가속장치.
  7. 제 1 항에 있어서, 상기 송신노드와 수신노드 간의 연결 설정과 관련한 정보를 상기 송신모듈과 수신모듈이 공유할 수 있도록 연결정보 메모리를 더 포함하여 구성되는 것을 특징으로 하는 TCP/IP 가속장치.
KR1020050039387A 2005-05-11 2005-05-11 Tcp/ip 가속장치 KR100649643B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050039387A KR100649643B1 (ko) 2005-05-11 2005-05-11 Tcp/ip 가속장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050039387A KR100649643B1 (ko) 2005-05-11 2005-05-11 Tcp/ip 가속장치

Publications (2)

Publication Number Publication Date
KR20060116876A true KR20060116876A (ko) 2006-11-15
KR100649643B1 KR100649643B1 (ko) 2006-11-27

Family

ID=37653659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050039387A KR100649643B1 (ko) 2005-05-11 2005-05-11 Tcp/ip 가속장치

Country Status (1)

Country Link
KR (1) KR100649643B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100818776B1 (ko) * 2006-11-30 2008-04-01 삼성네트웍스 주식회사 Wan 가속기 및 tcp 성능 향상을 통한 wan 가속방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997040441A1 (en) * 1996-04-23 1997-10-30 Asante Technologies, Inc. Network acceleration system
JP3315926B2 (ja) * 1998-05-25 2002-08-19 ケイディーディーアイ株式会社 Tcp通信高速化装置
US6765901B1 (en) * 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
KR20010076328A (ko) * 2000-01-19 2001-08-11 이정태 티씨피/아이피를 하드웨어적으로 처리하는 장치 및 그동작방법
KR100321822B1 (ko) * 2000-02-29 2002-03-07 윤영찬 이더넷용 티씨피/아이피 모뎀
KR100643140B1 (ko) * 2000-07-18 2006-11-10 (주) 위즈네트 하드웨어 티시피/아이피 처리 장치를 이용한 4 계층스위칭 장치 및 그 동작방법
US7480312B2 (en) * 2002-08-19 2009-01-20 Tehuti Networks Ltd. Network traffic accelerator system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100818776B1 (ko) * 2006-11-30 2008-04-01 삼성네트웍스 주식회사 Wan 가속기 및 tcp 성능 향상을 통한 wan 가속방법

Also Published As

Publication number Publication date
KR100649643B1 (ko) 2006-11-27

Similar Documents

Publication Publication Date Title
US9491261B1 (en) Remote messaging protocol
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
US20200314181A1 (en) Communication with accelerator via RDMA-based network adapter
JP6858749B2 (ja) 負荷平衡システムにおいて接続を確立するデバイス及び方法
US7822053B2 (en) Apparatus and method for TCP buffer copy distributed parallel processing
CN106034084B (zh) 一种数据传输方法及装置
CN112631788B (zh) 数据传输方法及数据传输服务器
TW200537877A (en) Retransmission system and method for a transport offload engine
CN111277600A (zh) 数据传输方法及装置
WO2024187876A1 (zh) 一种数据传输方法、装置、设备及非易失性可读存储介质
CN113347017B (zh) 一种网络通信的方法、装置、网络节点设备及混合网络
KR100649643B1 (ko) Tcp/ip 가속장치
US9485189B2 (en) Transfer device, and transfer method
CN115396372B (zh) 数据流的速率控制方法、智能网卡、云端设备及存储介质
JP3705297B1 (ja) ネットワーク伝送装置およびネットワーク伝送方法
KR100932968B1 (ko) 호스트 컴퓨터의 개입이 없는 toe의 tcp 재전송 처리방법
JP2017017587A (ja) ルータ装置、接続確立方法、通信システム、通信端末
CN110753043B (zh) 一种通信方法、装置、服务器及介质
JPWO2018142866A1 (ja) 転送装置、転送方法及びプログラム
US20250112872A1 (en) Establishing connections in a computer network supporting a remote direct memory access (rdma) protocol
WO2021027035A1 (zh) 一种网络安全IPsec的加速处理方法及系统
KR102716942B1 (ko) 터널 Ctrl 쓰레드를 이용한 데이터 통신에서의 터널 데이터 업데이트 처리방법
CN115442183B (zh) 一种数据转发方法及装置
US8751603B2 (en) Exploiting cluster awareness infrastructure through internet socket based applications
Kim et al. The offloading of socket information for TCP/IP offload engine

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20050511

PA0201 Request for examination
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20061030

PG1501 Laying open of application
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20061117

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20061120

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20091030

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20101102

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20111026

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20111026

Start annual number: 6

End annual number: 6

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee