Completion Port기반의 채팅프로그램

Slides:



Advertisements
Similar presentations
신입생 Study 커리큘럼 OneScore. Contents 후니의 시스코 네트워킹 (4 주 ) 01/ Network 생활코딩 – 웹 서비스 만들기 (4 주 ) Wowhacker 웹 게임 (4 주 ) 02/ Web 뇌를 자극하는 윈도우 시스템 프로그래밍 (4 주 ) 리버싱.
Advertisements

7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
컴퓨터 운영체제의 역사 손용범.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
캡스톤 디자인 이해경 조나라.
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Dongseo univ. Computer engineering
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Index SendMemo 기능 Q & A 팀 소개 배경 및 목적 구현
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Network Lab. Young-Chul Hwang
Chapter 4 Multi-Threaded Socket
PHP입문 Izayoi 김조흔.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
8장. 원격지 시스템 관리하기.
FTP 프로그램 채계화 박재은 박수민.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
TCP/IP Socket Programming…
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
Network Programming - 최종보고서 -
IOCP 2005/11/10.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
자바로 만든 채팅 프로그램 임경진 조주경 지도교수님 : 이광세 교수님.
채팅프로그램 Good Day클럽 나윤영 신윤정 김시한.
01. 개요 Windows Server 2003은 네트워크에서 인쇄 서버의 역할
다중처리 기술 School of Electronics and Information. Kyung Hee University.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
프로젝트 제안서 -TCP/IP를 이용한 메신저 구현-
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
웹(WWW).
(Dynamic Host Configuration Protocol)
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
Chapter 04. TCP 서버/클라이언트.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
System Security Operating System.
다자간 채팅프로그램 김형도 허영민
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
채팅 및 파일전송 프로그램 권 경 곤 김 창 년.
Network Lab. Young-Chul Hwang
CODE INJECTION 시스템B 김한슬.
M.B.TEAM 중간 발표 (5.18) 이 제걸 백 인호.
중간 결과 보고 ( Server & Client )
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

Completion Port기반의 채팅프로그램 20021688 김창수

IOCP 란? ‘Input Output Completion Port’의 약자. Win32에서 제공하는 커널 오브젝트 중 하나. 윈도우 NT계열 컴퓨터에서 가장 빠른 네트워크 성능을 내는 I/O모델. 기술적으로 Overlapped I/O와 I/O를 처리하는 ‘스레드 풀(Tread Pool)’ 사용으로 성능 극대화. P443~449참조

Overlapped I/O의 장점 여러 입출력이 중첩되어 병렬적으로 처리. 비동기 방식인 SCAN 스케줄 방식으로 효율적인 스케줄링

IOCP의 필요성 IOCP를 사용하지 않을 경우 – 단점 윈도우 운영체제는 스레드마다 약 20ms의 시간과 1MB의 메모리를 할당한다. 멀티 스레드로 클라이언트를 처리할 경우 스레드 전환(Context switching)에 많은 시간을 소비하고 클라이언트 수에 비례해서 많은 메모리 자원을 소비하게 된다. IOCP를 사용할 경우 - 장점 IOCP를 이용하면 작업 스레드(2~3개)가 작업이 주어질 경우에만 작동하므로 스레드 전환 시간이 거의 없다. 멀티스레드 보다 사용하는 스레드의 개수가 적기 때문에 메모리 자원을 절약할 수 있다. 많은 수의 클라이언트 접속시 메모리 풀을 이용하여 메모리 할당과 해제를 하기 때문에 메모리 단편화가 발생하지 않는다.

Overlapped I/O의 장점 여러 입출력이 중첩되어 병렬적으로 처리. 비동기 방식인 SCAN 스케줄 방식으로 효율적인 스케줄링

Overlapped I/O의 장점 디바이스로부터 읽어온 데이터를 중간 버퍼에 복사하는 과정없이 직접 사용자 버퍼로 데이터로 데이터를 들어오게 함으로써 버퍼링 오버헤드가 준다.

Thread Pool 작업을 처리함에 있어 매번 스레드를 생성하는 것이 아니라 여러 스레드를 미리 생성한 후 필요할 때 가져다가 사용하고 반환. CPU의 개수에 따라 실행되는 스레드를 조절하며 스레드 컨텍스트 스위칭 오버헤드를 줄일 수 있다.

Overlapped I/O Overlapped I/O방식 서버 소켓 1 소켓 2 소켓 3 스레드 1 스레드 2 스레드 3

Overlapped I/O와 Thread Pool 혼합 방식 서버 소켓 1 소켓 2 소켓 3 스레드 1 스레드 2 스레드풀

구조도 및 관계 1 클라이언트를 100개까지 생성할 수 있게 설계.

실행 순서 서버가 준비되어지고 START버튼을 누르면 bind, listen이 실행되어진다. 클라이언트가 IP, PORT번호를 입력하고 서버에 연결된다. 클라이언트가 메시지를 입력하고 전송되어지면 모든 클라이언트에게 전송되어진다. 서버는 연결된 클라이언트 수, 해지 클라이언트, 메시지 전송 성공 또는 실패 정보를 실시간으로 출력한다. # 추가적으로 파일 전송 기능도 구현

서버 GUI SEND : 모든 클라이언트에게 일괄적으로 텍스트를 보냄 START : 내부적으로 BIND(), LISENT()함수를 실행시킴

클라이언트 GUI CONNECT : IP, PORT입력 팝업 창이 실행 SEND : 다른 클라이언트에게 텍스트 전송

기대효과 모든 소켓 입출력 모델 중 가장 뛰어난 성능을 제공함으로써 채팅 및 파일 전송에서 신뢰성 있는 서버를 제공하며 보다 더 많은 클라이언트들을 동시에 연결할 수 있다. 다른 포트 방식을 사용하는 서버에 비해서 보다 더 빠른 파일 전송을 제공하며 효율적인 스레드 사용으로 클라이언트와 서버의 부하를 줄일 수 있다.

일정 1주차 2주차 3주차 4주차 자료수집 분석 및 설계 구현

참고 문헌 “TCP/IP 프로토콜”, 이재광, 미래컴 “윈도우 네트워크 프로그래밍”, 김선우