Transport Control Protocol (TCP)은 소프트웨어로 구현되어 네트워크로 입출력되는 데이터를 처리하는 역할을 한다. 네트워크 기술의 향상으로 CPU에서 수행되는 TCP의 처리가 새로운 병목점으로 등장하고 있다. 또한 iSCSI와 같은 StorageAreaNetwork (SAN) 에서도 TCP의 고속 처리가 전체 시스템의 성능을 결정하는 주요 관건이 되고 있다. 이러한 TCP를 하드웨어로 구현할 경우, 엔드 시스템에서의 CPU의 부하를 줄이고, 고속의 데이터 처리가 가능하여진다. 본 논문에서는TCP의 고속 처리를 위한 전용 하드웨어 엔진에 관하여 다룬다. TCP 하드웨어 는 TCP Connection을 담당하는 블럭과 Receive flow 를 위한 Rx TCP 블럭, Transmit Flow를 위한 Tx TCP 블럭으로 구성된다. TCP Connection 볼럭은 TCP connection 상태를 관리하는 기능을 수행한다. Rx TCP 블록은 네트워크로부터 패킷을 받아 헤더와 데이터 처리를 담당하는데, 헤더 정보를 parsing 하여 전달하고, 데이터를 순서에 맞게 조립하는 역할도 담당한다. Tx TCP 블럭은 CPU로부터 온 데이터를 패킷을 만들어 네트워크로 전송하는 기능, 신뢰성 있는 데이터 전송을 위한 재전송 기능1 Transmit Window 의 관리와 Sequence Number를 생성, 관리하는 기능을 담당한다. TCP 하드웨어 엔진을 검증하기 위한 여러 가지 Testcase들이 수행되었으며, 구현된 TCP 전용 하드웨어 엔진을 0.18 마이크론 기술을 사용하여 Synthesis 한 결과, 입출력 데이터를 저장하기 위한 버퍼를 제외하곡 51K 게이트가 소요됨을 보았다.
Transport Control Protocol (TCP)은 소프트웨어로 구현되어 네트워크로 입출력되는 데이터를 처리하는 역할을 한다. 네트워크 기술의 향상으로 CPU에서 수행되는 TCP의 처리가 새로운 병목점으로 등장하고 있다. 또한 iSCSI와 같은 Storage Area Network (SAN) 에서도 TCP의 고속 처리가 전체 시스템의 성능을 결정하는 주요 관건이 되고 있다. 이러한 TCP를 하드웨어로 구현할 경우, 엔드 시스템에서의 CPU의 부하를 줄이고, 고속의 데이터 처리가 가능하여진다. 본 논문에서는TCP의 고속 처리를 위한 전용 하드웨어 엔진에 관하여 다룬다. TCP 하드웨어 는 TCP Connection을 담당하는 블럭과 Receive flow 를 위한 Rx TCP 블럭, Transmit Flow를 위한 Tx TCP 블럭으로 구성된다. TCP Connection 볼럭은 TCP connection 상태를 관리하는 기능을 수행한다. Rx TCP 블록은 네트워크로부터 패킷을 받아 헤더와 데이터 처리를 담당하는데, 헤더 정보를 parsing 하여 전달하고, 데이터를 순서에 맞게 조립하는 역할도 담당한다. Tx TCP 블럭은 CPU로부터 온 데이터를 패킷을 만들어 네트워크로 전송하는 기능, 신뢰성 있는 데이터 전송을 위한 재전송 기능1 Transmit Window 의 관리와 Sequence Number를 생성, 관리하는 기능을 담당한다. TCP 하드웨어 엔진을 검증하기 위한 여러 가지 Testcase들이 수행되었으며, 구현된 TCP 전용 하드웨어 엔진을 0.18 마이크론 기술을 사용하여 Synthesis 한 결과, 입출력 데이터를 저장하기 위한 버퍼를 제외하곡 51K 게이트가 소요됨을 보았다.
Transport Control Protocol (TCP) has been implemented in software running on CPU in end systems, and the protocol processing has appeared as a new bottleneck due to advanced link technology. TCP processing is a critical issue in Storage Area Network (SAN) such as iSCSL, and the overall performance o...
Transport Control Protocol (TCP) has been implemented in software running on CPU in end systems, and the protocol processing has appeared as a new bottleneck due to advanced link technology. TCP processing is a critical issue in Storage Area Network (SAN) such as iSCSL, and the overall performance of the Storage Area Network heavily depends on speed of TCP processing. TCP Engine implemented in hardware reduces the load of CPU in end systems as well as accelerates the protocol processing, and hence high speed data processing is achieved. In this paper, we have proposed a hardware engine for TCP processing. TCP engine consists of three major block, TCP Connection block Rx TCP block and Tx TCP block TCP Connection block is responsible for managing TCP connection states. Rx TCP block is responsible for receive flow which receives packets from network and sends to CPU. Rx TCP performs header and data processing and sends header information to TCP connection block and Tx TCP block It also assembles out-of-ordered data to in-ordered before it transfers data to CPU. Tx TCP block is responsible for transmit flow which transfers data from CPU to network. Tx TCP performs retransmission for reliable data transfer and management of transmit window and sequence number. Various test-cases are used to verify the TCP functions. The TCP Engine is synthesized using 0.18 micron technology and results in 51K gates not including buffers for temporal data storage.
Transport Control Protocol (TCP) has been implemented in software running on CPU in end systems, and the protocol processing has appeared as a new bottleneck due to advanced link technology. TCP processing is a critical issue in Storage Area Network (SAN) such as iSCSL, and the overall performance of the Storage Area Network heavily depends on speed of TCP processing. TCP Engine implemented in hardware reduces the load of CPU in end systems as well as accelerates the protocol processing, and hence high speed data processing is achieved. In this paper, we have proposed a hardware engine for TCP processing. TCP engine consists of three major block, TCP Connection block Rx TCP block and Tx TCP block TCP Connection block is responsible for managing TCP connection states. Rx TCP block is responsible for receive flow which receives packets from network and sends to CPU. Rx TCP performs header and data processing and sends header information to TCP connection block and Tx TCP block It also assembles out-of-ordered data to in-ordered before it transfers data to CPU. Tx TCP block is responsible for transmit flow which transfers data from CPU to network. Tx TCP performs retransmission for reliable data transfer and management of transmit window and sequence number. Various test-cases are used to verify the TCP functions. The TCP Engine is synthesized using 0.18 micron technology and results in 51K gates not including buffers for temporal data storage.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
TCP/IP 프로세싱은 엔드 시스템에서의 데이터 프로세싱의 많은 부분을 차지하므로 TCP/IP 프로토콜을 하드웨어로 설계할 경우 CPU의 부하를 줄일 수 있으며 프로세싱 속도를 증가시킬 수 있다. [3], TCP/IP 프로토콜의 하드웨어 구현은 현재 소프트웨어로 구현되어 쓰이는 TCP/IP 프로토콜과의 호환성을 고려하여 연구되었다. [1] 논문은 TCP/IP를 하드웨어로 구현하는데 있어 TCP의 많은 기능 중 부하가 많이 걸리는 체크섬 계산, 메모리 접근 그리고 버퍼관리 기능만을 하드웨어로 구현한 반면 본 논문은 congestion controK 제외한 TCP의 모든 기능을 하드웨어로 구현하였다.
본 논문에서는 전체 통신 시스템의 성능 개선을 위한 TCP/IP 프로토콜의 하드웨어구현 중 TCP 엔진의 구현을 설명하였다. TCP 엔진은 TCP Ccmnection을 담당하는 블럭과, RxFlow를 위한 Rx TCP 블럭, TxFlow를 위한 Tx TCP 블럭으로 나누어 설계하였다.
tcp 하드웨어 엔진을 다룬다. 본 논문은 n장에서 하드웨어로 구현한 TCP 엔진의 전반적인 동작에 대해 설명한다. ni, IV, V장에서는 각각 TCP Connection Control, Receiveg) TCP, Transmit(Tx) TCP의 기능에 대해서 살펴본다.
가설 설정
. Sequence number 생성, 관리가 있다
제안 방법
구현을 설명하였다. TCP 엔진은 TCP Ccmnection을 담당하는 블럭과, RxFlow를 위한 Rx TCP 블럭, TxFlow를 위한 Tx TCP 블럭으로 나누어 설계하였다. TCP Connection 블럭은 HI로부터의 명령과 Rx TCP에서 받은 flag를 이용하여 TCP의 connection state를 관리하는 역할을 하고 Rx TCP와 Tx TCP는 이 state 에 따라 동작하게 된다.
[3], TCP/IP 프로토콜의 하드웨어 구현은 현재 소프트웨어로 구현되어 쓰이는 TCP/IP 프로토콜과의 호환성을 고려하여 연구되었다. [1] 논문은 TCP/IP를 하드웨어로 구현하는데 있어 TCP의 많은 기능 중 부하가 많이 걸리는 체크섬 계산, 메모리 접근 그리고 버퍼관리 기능만을 하드웨어로 구현한 반면 본 논문은 congestion controK 제외한 TCP의 모든 기능을 하드웨어로 구현하였다.
우선 헤더를 parsing하여 TCP Connection 블럭과 Tx TCP 블럭으로 해더 정보를 주고 out-of-order 데이터는 in-order로 재조립 T 여 HI로 하여금 외부 Rx RAM에 쓰도록 하였다 Rx TCP 블럭은 Rx TCP Buffer의 주소와 sequence number를 1대1로 일치시켜 재조립이 용이하도록 하였다 Out-of-order인 데이터들을 위해서는 sequence number를 별도로 관리하여 매 패킷이 들어올 때마다 데이터 사이의 갭을 채우는지를 확인하였다 Tx TCP 블럭은 Rx TCP가 받은 패킷에 대한 ack를 전송하고 HI를 통해 전달 받은 CPU가 보내고자 하는 데이터를 패킷으로 만들어 전송하는 역할을 한다. 또한 reliable한 데이터 전송을 위한 재전송 기능과 cumulative acknowledgement 기능, transmit window 의 관리와 sequence number의 생성 관리 기능을 수행한다. 또한 데이터 checksum 블럭에서 생성된 데이터 checksum값을 이용하여 TCP 패킷의 checksml을 완성한다.
를 관리하는 기능을 수행한다. 본 논문에서 구현된 Rx TCP는 Rx TCP Buff而의 주소 범위를 receive window로 하여 수신된 데이터의 sequence number와 Rx TCP Buffere, 주소를 1 대 1로 일치시킴으로써 패킷의 재조립 과정올 용이하도록 하였다. 따라서 receive wii서ow 의 초기값은 Rx TCP Buffer 의 크기인 6000by拍와 일치중]고 데이터를 수용할 수 있는 receive window의 크기는 Rx TCP Buffere] 크기에서 in-ordei■로 저장된 데이터의 크기를 밴 값이 된다.
본 논문은, 고속의 데이터 처리를 위한 TCP/IP hardware accelerator 구현, 프로젝트의 일부분으로 설계된 tcp 하드웨어 엔진을 다룬다. 본 논문은 n장에서 하드웨어로 구현한 TCP 엔진의 전반적인 동작에 대해 설명한다.
Rx TCP 블럭은 네트워크로부터 패킷을 받아 헤더와 데이터 처리를 담당한다. 우선 헤더를 parsing하여 TCP Connection 블럭과 Tx TCP 블럭으로 해더 정보를 주고 out-of-order 데이터는 in-order로 재조립 T 여 HI로 하여금 외부 Rx RAM에 쓰도록 하였다 Rx TCP 블럭은 Rx TCP Buffer의 주소와 sequence number를 1대1로 일치시켜 재조립이 용이하도록 하였다 Out-of-order인 데이터들을 위해서는 sequence number를 별도로 관리하여 매 패킷이 들어올 때마다 데이터 사이의 갭을 채우는지를 확인하였다 Tx TCP 블럭은 Rx TCP가 받은 패킷에 대한 ack를 전송하고 HI를 통해 전달 받은 CPU가 보내고자 하는 데이터를 패킷으로 만들어 전송하는 역할을 한다. 또한 reliable한 데이터 전송을 위한 재전송 기능과 cumulative acknowledgement 기능, transmit window 의 관리와 sequence number의 생성 관리 기능을 수행한다.
결국 하나의 패킷을 처리하기 위해 세 번의 메모리 액세스가 필요하게 된다. 이러한 메모리 액세스 횟수를 줄이기 위해 Tx TCP 블럭 밖에 데이터 checksum 블럭을 두었다. 데이터 checksum 블럭은 Host Interface 블럭이 Tx TCP buffer에 쓰는 데이터를 중간에 받아 데이터 checksum을 계산하게 된다.
데이터 checksum 블럭은 Host Interface 블럭이 Tx TCP buffer에 쓰는 데이터를 중간에 받아 데이터 checksum을 계산하게 된다. 이를 위해 Host Interface 에서 데이터 segmen蛔ion올 수행하고 Host Interface 블럭은 하나의 패킷에 대한 데이터를 전송하는 동안 패킷 valid signal을 set하여 데이터 checksum 블럭이 패킷에 대한 checksum을 계산하게 한다. Tx TCP에서 수행되는 기능들은 그림12에서 볼 수 있듯이 몇 개의 sub~module들로 구성되어 있다.
따라서 데이터를 손실없이 저장하기 위해서 Rx TCP는 Rx TCP Bmlr의 액세스에 있어서 HI보다 우선권을 가지게 된다. HI는 Rx TCP Buffer에 액세스하기 위해서 Rx TCP Buffer Controller와의 handshaking0! 필요하지만 Rx TCP가 Rx TCP Buffer에 데이터를 쓰거나 읽기를 원할 때는 언제든지 Rx TCP Buffer를 액세스할 수 있도록 하였다.
성능/효과
18 마이크론 기수stdl30)을 이용하여 TCP Connection, Rx TCP, Tx TCP 블럭의 synthesis 결과를 보여준다. Rx TCP Buffer, TxTCP Buffert- 제외한 TCP Engine의 synthesis 결과 51260게이트가 소요됨을 알 수 있었다.
후속연구
향상시킬 것으로 기대된다. 또한 본 논문에서 제안한 , TCP의 하드에어 구현은 앞으로의 TCP/IP hardware 설계를 위한 지침이 될 수 있을 것이다
본 논문에서 제안한 TCP 하드웨어는 chip의 형태로 제작되지 못하여 perfomumce evaluation을 수행할 수 없었지만 기존 소프트웨어로 구현된 TCP를 대신하여 쓰일 경우 전체 네트워크의 성능을 크게 향상시킬 것으로 기대된다. 또한 본 논문에서 제안한 , TCP의 하드에어 구현은 앞으로의 TCP/IP hardware 설계를 위한 지침이 될 수 있을 것이다
※ AI-Helper는 부적절한 답변을 할 수 있습니다.