1 |
1
파일 기반 컨텐트 전송 서버의 CPU(Central Processing Unit) 및 연산 기능을 갖는 NIC(Network Interface Card)에서의 네트워크 및 파일 입출력 연산 오프로딩 방법으로,상기 CPU가, 데이터 플레인(data plane) 연산을 상기 NIC에 오프로드(offload)하는 오프로드 단계; 및상기 NIC가 상기 데이터 플레인 연산을 수행하고, 상기 CPU는 오프로드된 상기 데이터 플레인 연산을 제외한 컨트롤 플레인(control plane) 연산을 수행하는 수행 단계;를 포함하고,상기 데이터 플레인 연산은 컨텐츠 가져오기, 데이터 버퍼 관리, 데이터 패킷 분할, TCP/IP 체크섬 계산, 데이터 패킷 생성 및 전송 중 적어도 하나의 연산을 포함하며, 상기 컨트롤 플레인 연산은 TCP 프로토콜의 연결 관리, 데이터 전송의 안정성 관리, 데이터 전송의 혼잡 관리, 흐름 제어 및 에러 제어 중 적어도 하나의 연산을 포함하는 연산 오프로딩 방법
|
2 |
2
제1항에 있어서,상기 오프로드 단계는,상기 CPU가 응용 프로그램으로부터 수신한 "offload_open()" 명령을 상기 NIC에 전달하는 단계;상기 NIC가 NIC 스택에 파일을 열고 결과를 상기 CPU에 회신하는 단계; 및상기 CPU가 상기 응용 프로그램으로부터 호출된 "offload_write()" 명령을 NIC에 전달하는 단계;를 포함하는 연산 오프로딩 방법
|
3 |
3
제2항에 있어서,상기 CPU의 호스트 스택에서 실제 데이터가 누락된 경우 상기 CPU는 가상으로 상기 데이터 플레인 연산을 수행하는 가상 연산 단계;를 포함하는 연산 오프로딩 방법
|
4 |
4
제3항에 있어서,상기 가상 연산 단계는, 상기 CPU는, 상기 응용 프로그램이 "offload_write()" 명령을 호출한 경우, 메타 데이터만 업데이트하여 전송 버퍼에 가상 기입하는 단계; 및상기 CPU가 데이터의 정체 및 흐름 제어 매개 변수와 함께 전송해야 하는 바이트 수를 결정한 뒤 "SEND" 명령을 상기 NIC의 NIC 스택에 게시하는 단계;를 포함하는 연산 오프로딩 방법
|
5 |
5
제4항에 있어서,상기 CPU는 TCP 패킷을 활용하여 상기 "SEND" 명령을 전달하고, 상기 TCP 패킷은 파일 ID, 읽기 스타터 오프셋(starter offset to read) 및 데이터 길이(length) 정보 중 적어도 하나의 정보를 포함하는, 연산 오프로딩 방법
|
6 |
6
제5항에 있어서,상기 "SEND" 명령을 수신한 상기 NIC는, TCP 패킷에 포함된 길이(length) 정보에 기초하여 복수의 TCP 패킷으로 변환하여 전송하는 연산 오프로딩 방법
|
7 |
7
제6항에 있어서,클라이언트는 상기 "SEND" 명령에 대한 데이터 패킷을 전송하려고 할 때 에코 패킷을 상기 CPU로 전송하며,상기 CPU는 상기 에코 패킷을 수신할 때까지 재전송 타이머의 전송을 소정 시간동안 수행하지 않는 연산 오프로딩 방법
|
8 |
8
제7항에 있어서,상기 소정 시간은 상기 NIC에서의 패킷처리 지연시간과 상기 에코 패킷의 단방향 처리시간에 의해 결정되는 연산 오프로딩 방법
|
9 |
9
제8항에 있어서,상기 NIC에서의 패킷처리 지연시간은 상기 "SEND" 명령이 상기 NIC에 도착한 뒤 "SEND" 명령에 대한 데이터 패킷이 상기 클라이언트로 출발하는 사이의 지연시간인 연산 오프로딩 방법
|
10 |
10
제1항에 있어서,상기 CPU는 IO-TCP 응용 프로그램의 파일을 열 때 사용하는 "OPEN" 명령, 파일 내용을 클라이언트로 보낼 때 사용하는 "SEND" 명령, 재전송의 효율적 처리를 위한 "ACKD" 명령 및 IO-TCP 응용 프로그램의 파일을 닫을 때 사용하는 "CLOS" 명령을 정의하는 연산 오프로딩 방법
|
11 |
11
제10항에 있어서,상기 CPU는 "SEND" 명령만을 상기 NIC로 오프로드하고, 클라이언트로부터 수신되는 패킷은 직접 처리하는 연산 오프로딩 방법
|
12 |
12
제10항에 있어서,상기 CPU는 오프로드된 시퀀스 공간 범위에 대한 ACK를 확인하면, 상기 NIC에 주기적으로 상기 "ACKD" 패킷을 전달하는 연산 오프로딩 방법
|
13 |
13
파일 기반 컨텐트 전송 서버의 CPU(Central Processing Unit) 및 연산 기능을 갖는 NIC(Network Interface Card)를 포함하는 네트워크 및 파일 입출력 연산 오프로딩 시스템으로,상기 CPU는 데이터 플레인(data plane) 연산을 상기 NIC에 오프로드(offload)하고,상기 NIC는 상기 데이터 플레인 연산을 수행하고, 상기 CPU는 오프로드된 상기 데이터 플레인 연산을 제외한 컨트롤 플레인(control plane) 연산을 수행하되,상기 데이터 플레인 연산은 컨텐츠 가져오기, 데이터 버퍼 관리, 데이터 패킷 분할, TCP/IP 체크섬 계산, 데이터 패킷 생성 및 전송 중 적어도 하나의 연산을 포함하며,상기 컨트롤 플레인 연산은 TCP 프로토콜의 연결 관리, 데이터 전송의 안정성 관리, 데이터 전송의 혼잡 관리, 흐름 제어 및 에러 제어 중 적어도 하나의 연산을 포함하는 연산 오프로딩 시스템
|
14 |
14
제13항에 있어서,상기 CPU는 응용 프로그램으로부터 수신한 "offload_open()" 명령을 상기 NIC에 전달하면, 상기 NIC가 NIC 스택에 파일을 열고 결과를 상기 CPU에 회신하며, 상기 CPU는 상기 응용 프로그램으로부터 호출된 "offload_write()" 명령을 NIC에 전달하는 연산 오프로딩 시스템
|
15 |
15
제14항에 있어서,상기 CPU의 호스트 스택에서 실제 데이터가 누락된 경우 상기 CPU는 가상으로 상기 데이터 플레인 연산을 수행하는 연산 오프로딩 시스템
|
16 |
16
제15항에 있어서,상기 CPU는, 상기 응용 프로그램이 "offload_write()" 명령을 호출한 경우, 메타 데이터만 업데이트하여 전송 버퍼에 가상 기입하고, 데이터의 정체 및 흐름 제어 매개 변수와 함께 전송해야 하는 바이트 수를 결정한 뒤 "SEND" 명령을 상기 NIC의 NIC 스택에 게시하는 연산 오프로딩 시스템
|
17 |
17
제16항에 있어서,상기 CPU는 TCP 패킷을 활용하여 상기 "SEND" 명령을 전달하고, 상기 TCP 패킷은 파일 ID, 읽기 스타터 오프셋(starter offset to read) 및 데이터 길이(length) 정보 중 적어도 하나의 정보를 포함하며,상기 "SEND" 명령을 수신한 상기 NIC는, TCP 패킷에 포함된 길이(length) 정보에 기초하여 복수의 TCP 패킷으로 변환하여 전송하는 연산 오프로딩 시스템
|
18 |
18
제17항에 있어서,클라이언트는 상기 "SEND" 명령에 대한 데이터 패킷을 전송하려고 할 때 에코 패킷을 상기 CPU로 전송하며,상기 CPU는 상기 에코 패킷을 수신할 때까지 재전송 타이머의 전송을 소정 시간동안 수행하지 않고, 상기 소정 시간은 상기 NIC에서의 패킷처리 지연시간과 상기 에코 패킷의 단방향 처리시간에 의해 결정되며, 상기 NIC에서의 패킷처리 지연시간은 상기 "SEND" 명령이 상기 NIC에 도착한 뒤 "SEND" 명령에 대한 데이터 패킷이 상기 클라이언트로 출발하는 사이의 지연시간인 연산 오프로딩 시스템
|
19 |
19
제13항에 있어서,상기 CPU는 IO-TCP 응용 프로그램의 파일을 열 때 사용하는 "OPEN" 명령, 파일 내용을 클라이언트로 보낼 때 사용하는 "SEND" 명령, 재전송의 효율적 처리를 위한 "ACKD" 명령 및 IO-TCP 응용 프로그램의 파일을 닫을 때 사용하는 "CLOS" 명령을 정의하고, 상기 CPU는 "SEND" 명령만을 상기 NIC로 오프로드하고, 클라이언트로부터 수신되는 패킷은 직접 처리하며,상기 CPU는 오프로드된 시퀀스 공간 범위에 대한 ACK를 확인하면, 상기 NIC에 주기적으로 상기 "ACKD" 패킷을 전달하는 연산 오프로딩 시스템
|
20 |
20
제1항 내지 제12항 중 어느 한 항에 기재된 연산 오프로딩 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록매체
|