임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현

Slides:



Advertisements
Similar presentations
Computer 개요 담당강사 : 전효신 myhome.naver.com/cyber31 huniv.hongik.ac.kr/~cyber21
Advertisements

운영체제의 역사 작성 / 발표 오두환.  OS( 운영체제 ) 의 정의 OS(operating system) 란 ?? 머리 - > 계산 = Cpu 얼굴 + 몸매 = 그래픽카드 눈 = 모니터 머리 -> 기억 = HDD/SDD 입 = 스피커 귀 = 마이크 ….. 하드웨어하드웨어.
6 장. 네트워크 개론 네트워크 장비, 프로토콜, 통신망. 개요 네트워크란 ? 네트워크의 종류 데이터전송방식 네트워크 장비 프로토콜의 종류 IP 주소체계 네트워크 토폴로지 통신망 네트워크진단 명령어.
KB 스타 경제 · 금융교실 나는 용돈관리왕. KB 스타 경제 · 금융교실 나는 용돈관리왕 선생님은 ? KB 2  이름 : 김국민  별명 : 스타 왕자  소속 : KB 국민은행 소비자 보호담 당 ( 간단한 자기 소개 : 교육 대상이 흥미 를 가질 수 있는 이미지와.
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
마음의 중심을 갖고 기술의 중심이 되자 ! 네트워크 Written by kilsung park.
시스템 명 팀 명 : 팀 원 :. 시스템 목적 Project Team (ex. 사진편집에디터 )
여성의 광장 어린이 집 www. womankids. com
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
서로를 위한 약속 학교규칙 제·개정에 대한 이해.
Let’s Speak English Well
랜카드 LAN Card : NIC -유저의 데이터를 케이블을 통해 스위치, 라우터 등으로 전달.
AVR.
네트워크 관련 용어 전나윤.
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
Network Lab. Yong bae, Kim
Data Communications 제4장 데이터통신의 기본 개념.
Understanding of Socket and File I/O
IP변경 요청_ 스마트폰 전자결제연동 올더게이트.
비업무 사이트 차단 시스템 Venus/CPS.
CPU (central Processing Unit)
ORACLE M10 Domain구성 유니원아이앤씨(주).
오목게임 W32 로봇시스템제어(하) GROUP 7 노성동, 하선웅, 김관준
2. LAN의 연결구조와 공유매체 접근제어 (3장. LAN: Local Area Network)
T-Bridge Product Catalog
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
Introduction to Networking
컨테이너화물 안전수송 기술개발 클러스터사업 Intelligent Container R&D Center
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
시스코 네트워킹 (CCNA) 2주차.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
소프트웨어 공학 Project - 어플리케이션 만들기 ( CS App ) 최종 발표
Network Programming 가상 스토리지 기술 박치성 손창빈.
Data 보관 / 전송을 위한 HYDRA 솔루션 EGT Line.
Choi Seong Yun 네트워크 프로그래밍 Choi Seong Yun
Department of Computer Engineering
무선 네트워크 기술 (IEEE , MAC) 발표자 : 황세원.
R520 서버 1 제품 개요 DELL PowerEdge R520
35.7Mpps per slot (locally or through the fabric)
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Department of Computer Engineering
3주 컴퓨터구조.
DHCP 박윤환 윤준호.
쪽지 전송 프로그램 - 최종보고 장승수 최희진 오민영.
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
발도르프 프로그램 발도르프의 역사 - 독일의 루돌프 슈타이너에 의해 시작 발도르프의 배경
광역 CCTV통합관제 솔루션 SAC-VMS 제안서 anyCNS ★.
Wireshark Protocol 분석 지정석 김도건 박재영
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
Cyclow Progress 김영훈, 김수현, 박윤아.
119 신고방법.
Data Communications 제2장 데이터통신의 기본 개념.
IP변경 요청 올더게이트.
Computer Network(Hacking)
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

KB스타 경제·금융교실 은행에 가요.
MONSTER CAR 구정재 한석우 김재형.
기술 진화와 진보.
Wireless Media The Wireless LAN
연습 문제 풀이 1 송신측 MAC 주소 수신측 MAC 주소 상위 계층 프로토콜 종류
담당교수 : 김정미 교수님 학 과 : 컴퓨터 공학과 학 번 : 이 름 : 안정모
운영체제 장수용.
IT R&D Global Leader [첨부 제4호] 스마트 경량 IoT 기기용 네트워크 보안 프로토콜 기술 ETRI
Department of Computer Engineering
KB스타 경제·금융교실 화폐가 태어났어요.
Presentation transcript:

임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현 공학 석사 학위 논문 임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현 컴퓨터구조 및 시스템 연구실 최 봉 식 공학 석사 학위 논문을 발표하겠습니다. 저는 컴퓨터구조 및 시스템 연구실의 최봉식 입니다. 본 논문의 제목은 임베디드 시스템상의 Lightweight TCP/IP를 이용한 TCP/IP Offload Engine의 구현

순서 서론 관련 연구 소프트웨어 기반 TCP/IP Offload Engine (TOE)의 구현 실험 결론 및 향후 과제 Lightweight TCP/IP(lwIP)를 이용한 TOE 구현 lwIP의 개선 실험 결론 및 향후 과제 순서는 다음과 같습니다. 서론과 관련 연구를 연구를 먼저 말하고 그리고 본 논문에서 구현한 소프트웨어 기반 TOE의 구현 을 살펴보겠습니다. 이후 실험과 결론 및 향후 과제를 다루도록 하겠습니다.

서론(1/3) 네트워크가 고속화될수록 CPU가 네트워크의 bottleneck이 되고 있음 네트워크의 대역폭은 12개월에 약 3배 증가 CPU 성능은 18개월에 약 2배 증가 1 bps를 처리하기 위해서는 약 1 Hz CPU 클럭이 필요 10 Gbps를 full-duplex로 처리하려면 20 GHz CPU 클럭이 필요 고속 네트워크 환경에서, 호스트 CPU 자원의 대부분을 TCP/IP 처리에 사용 실제 사용자 응용 프로그램을 위한 CPU 자원 부족 호스트 CPU의 부담을 줄이기 위한 방안이 활발히 연구 중

서론(2/3) TCP/IP Offload Engine (TOE) 어플리케이션 어플리케이션 소켓 인터페이스 소켓 인터페이스 운영체제 TCP IP 하드웨어 TOE TCP TCP/IP Offload Engine  이하 TOE IP 일반 NIC MAC MAC PHY PHY 일반 TCP/IP 처리 TOE 를 이용한 TCP/IP 처리

서론(3/3) TOE의 구현 방법 하드웨어 기반 TOE 소프트웨어 기반 TOE 성능은 우수한 반면 유연성이 떨어짐 iSCSI, HTTP, RDMA, … 소프트웨어 기반 TOE 하드웨어 방식보다 성능은 떨어지지만 유연성에서 장점 임베디드 운영체제를 사용하여 구현 구현은 용이하나, 성능이 낮음 운영체제 없이 전용 프로그램을 개발하여 구현 유연성과 성능상의 이점을 고려한 방식

관련연구(1/2) 하드웨어 기반 TOE 구현 소프트웨어 기반 TOE 구현 ASIC을 이용한 전용 칩 개발 Chelsio사의 T210 내장된 여러 개의 하드웨어 유닛들을 사용하여 TCP/IP를 병렬로 처리 Alacritech사의 SEN2100 TCP/IP를 fully offload하지 않고, 데이터 패스 부분만 offload 소프트웨어 기반 TOE 구현 ARM, Xscale등과 같은 임베디드 프로세서 사용 Intel의 PRO1000T 200MHz StrongARM 전용 프로그램으로 TCP/IP 처리

관련연구(2/2) 임베디드 시스템상에서 TCP/IP를 소프트웨어적으로 처리하는 방법 임베디드 리눅스, VxWorks, …… 운영체제 없이 독자적으로 TCP/IP를 처리하는 프로그램 사용 Lightweight TCP/IP(lwIP) 스택 Adam Dunkels (Swedish Institute of Computer Science)에 의하여 개발 공개 소프트웨어 소형 임베디드 시스템을 위해 개발 메모리 사용을 최소화하도록 개발

소프트웨어 기반 TOE의 구현

TOE 구현을 위한 호스트 커널의 수정 2.4.27 버전의 리눅스 커널을 수정 socket() 함수의 인자로 TOE 정의 나머지 함수들은 수정할 필요 없음 TOE를 이용하는 코드들은 디바이스 계층에 구현된 소켓 함수들을 직접 호출하고 그 결과를 돌려 받음 TOE 구현을 위해서는 호스트 커널의 수정이 필요합니다. 일반적으로, 호스트에서 TCP/IP를 처리할 경우 리눅스 운영체제에서는 그림과 같이 소켓관련 함수를 거쳐 커널 영역으로 들어 간뒤 BSD 소켓 계층, INET 소켓 계층, ~ 디바이스 계층을 거치도록 되어 있습니다. 하지만 TOE를 사용할 경우, BSD 계층에서 TOE를 사용하는지 아닌지를 판별한 후 TOE를 사용하면 나머지 하위 계층을 바이패스 하고 디바이스 계층에 그 명령을 전달하도록 해야 합니다. 이렇게 BSD 계층에서의 판별을 하기 위해 커널의 수정이 필요하며 본 논문에서는 버전 2.4.27

TOE 구현을 위한 소켓 라이브러리 분류 소켓 라이브러리를 이루는 함수들을 분류 연결에 필요한 함수들 socket(), bind(), ... 데이터 전송에 필요한 함수들 send(), recv(), ... 두 종류의 소켓 라이브러리 함수들을 TOE에서 처리

임베디드 리눅스를 이용한 TOE 구현 (1/2) 소켓 라이브러리에서 연결과 관련된 함수들의 처리 앞에서 말하바와 같이 소켓라이브러리 함수의 종류는 연결관련 함수와 데이터 전송 함수로 나뉩니다. 먼저 socket함수의 처리를 통해서 연결과 관련된 함수들의 처리를 살펴보겠습니다. 호스트영역의 사용자 응용프로그램은 socket을 호출하고 이는 BSD계층을 거쳐 디바이스 드라이버 내에 있는 toe_socket을 호출합니다. toe_socket 함수는 인터럽트를 통해서 임베디드 응용프로그램

임베디드 리눅스를 이용한 TOE 구현 (2/2) 소켓 라이브러리에서 데이터 전송 함수들의 처리

임베디드 리눅스를 이용한 TOE의 성능 임베디드 리눅스를 이용한 TOE의 성능 OS 사용으로 인한 오버헤드 대역폭: 62Mbps OS 사용으로 인한 오버헤드 임베디드 응용프로그램과 커널 모듈간의 context switch 대기 상태로 진입, 대기 상태를 깨우는 작업 OS를 사용하지 않고 전용 프로그램을 개발하여 TOE를 구현 OS 사용으로 인한 오버헤드 문제를 해결 Lightweight TCP/IP Stack (lwIP)

lwIP를 이용한 TOE의 구현 (1/2) 소켓 라이브러리에서 연결과 관련된 함수들의 처리

lwIP를 이용한 TOE의 구현 (2/2) 소켓 라이브러리에서 데이터 전송 함수들의 처리

TOE의 성능 향상을 위한 lwIP의 개선 (1/3) 송수신 버퍼의 크기, 수신 윈도우의 크기, 세그먼트 크기 등의 인자들이 작은 값으로 설정이 되어있음 충분한 성능을 내기 위해서는 이러한 인자들을 상향 설정 필요가 있음

TOE의 성능 향상을 위한 lwIP의 개선 (2/3) 메모리 복사의 제거 lwIP는 수신 패킷을 저장하고 있는 디바이스 드라이버 측의 버퍼에서 lwIP 전용 패킷 버퍼 구조체로 복사하도록 구현 됨 이더넷 칩에서 lwIP 전용버퍼로 DMA하도록 수정

TOE의 성능 향상을 위한 lwIP의 개선(3/3) ACK 전송 방식의 수정을 통한 개선 지연 ACK (Delyed ACK) 방식으로 수정

개발 환경 Cyclone사의 PCI-730 PCI-730의 블록 다이어그램

실 험

실험 환경 PCI-730 카드를 장착한 1.8GHz 펜티엄 IV 서버 2대 3COM의 SuperStack3 스위치로 이더넷을 연결 send() 함수의 호출로부터 데이터가 원격 노드의 수신버퍼에 들어갈 때까지의 지연시간과 대역폭을 측정 측정치는 4byte~256KB의 데이터 전송을 1000회 반복한 평균치

lwIP 개선을 통한 성능 향상 측정 (1/2) ① 아무런 수정을 하지 않은 lwIP ② 인자 수정 ③ 메모리 복사 제거 ④ 지연 ACK

lwIP 개선을 통한 성능 향상 측정 (2/2) 개선 사항 추가 때마다, 지연시간과 대역폭 측면에서 성능이 향상되는 것을 확인, 57MBps의 성능을 보임

임베디드 운영체제를 이용한 TOE와 비교 실험 64KB까지는 lwIP 이용한 TOE의 성능이 우수하나, 이후 점차 임베디드 리눅스를 이용한 TOE의 성능이 더 좋음 이더넷 디바이스 드라이버의 불안정성 임베디드 리눅스의 드라이버와 같이 하드웨어를 충분히 활용하고 있지 않음

CPU 사용률 측정 TCP/IP를 호스트에서 처리했을 때와 TOE에서 처리했을 때의 CPU 사용률 비교 TOE를 사용하여 호스트 CPU의 TCP/IP 프로토콜 처리 오버헤드가 줄어든 것을 확인

결론 및 향후 과제 결론 향후 과제 임베디드 리눅스를 이용하여 TOE를 구현 lwIP를 이용하여 TOE를 구현 lwIP 분석을 통하여 얻은 기술을 바탕으로 독자적인 TCP/IP 처리 소프트웨어 개발