delphi ( network 관련 자료 조사 )

14
EZNIX_ 최최최 1 Delphi ( NetWork 최최 최최 최최 ) 작작작 : 작 작 작

Upload: mackensie-short

Post on 30-Dec-2015

170 views

Category:

Documents


0 download

DESCRIPTION

Delphi ( NetWork 관련 자료 조사 ). 작성자 : 최 영 일. 목 차. TCP/IP 란 무엇인가 ? TCP 와 UDP 의 차이점 윈속 (WinSock) 이란 무엇인가 ? 소켓의 I/O 모델 조사 (None Blocking, Blocking, 비동기 , 동기 , IOCP 등의 소켓 IO 모델 조사 ) 프로토콜은 무엇인가 ?. 1.TCP/IP 란 무엇인가 ?(1). TCP(Transmission Control Protocol) 큰 정보 블록을 여러 개의 세그먼트로 분리 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 1

Delphi( NetWork 관련 자료 조사 )

작성자 : 최 영 일

Page 2: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 2

목 차 TCP/IP 란 무엇인가 ?

TCP 와 UDP 의 차이점

윈속 (WinSock) 이란 무엇인가 ?

소켓의 I/O 모델 조사 (None Blocking, Blocking, 비동기 , 동기 , IOCP 등의 소켓 IO

모델 조사 )

프로토콜은 무엇인가 ?

Page 3: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 3

1.TCP/IP 란 무엇인가 ?(1) TCP(Transmission Control Protocol)

큰 정보 블록을 여러 개의 세그먼트로 분리 각 세그먼트를 순서에 맞게 번호 부여 세그먼트 전송 후 TCP 가상회선 세션으로부터 승인 응답

기다림 비정상적으로 수신된 세그먼트는 재전송 TCP 특징

연결형 서비스 가상회선을 통한 ‘신뢰성’ 있고 ‘순서적’인 데이터 스트림 전달

포트 대 포트 (port-to-port) 전송 ( 프로세스간 통신지원 ) 오류 검출 및 재전송 , 흐름제어 , 순서제어 , 폭주제어기능포함

Page 4: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 4

1.TCP/IP 란 무엇인가 ?(2) IP(Internet Protocol)

한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는데 사용 되는 프로토콜 , 인터넷상의 각 컴퓨터 즉 호스트들은 다른 컴퓨터와 구별될 수 있도록 적어도 한 개 이상의 고유한 주소를 갖는다 .

특징 무결성 보장 않음 순서 보장 않음 비연결형 프로토콜

통신을 위해 양단간의 접속이 확립되지 않음 각 패킷들은 독립적인 단위로 취급

데이터 그램 (Datagram) 여러 조각으로 나누어진 패킷이 수신지에 도착할 때 각각 다른

경로를 통해 도착하는 방식 가상회선 (Virtual Circuit)

데이터를 송신하기 전에 경로가 네트워크를 통해 정의되고 그 경로를 통해 순서대로 도착하는 방식

Page 5: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 5

2.TCP 와 UDP 의 차이점 (1)

UDP(User DatagramProtocol) 응용 프로세스의 데이터를 비신뢰적 이며 비순서적으로 전달 비연결형 (connectionless) 전송계층 프로토콜 포트 대 포트 (port-to-port) 전송 ( 프로세스간 통신지원 ) UDP 의 특징

UDP 에는 포트번호를 사용하여 응용 프로그램 프로세스를 식별하기 위한 준비가 되어있다 .UDP 는 연결을 열고 , 유지하고 닫는 부담이 없어 비연결 지향적이다 .동보전송과 다중전송 응용 프로그램에 능률적이다 .데이터의 순서화가 없어서 데이터가 정확하게 전달된다고 보장할 수 없다 .UDP 는 생략할 수 있는 데이터의 오류검사만 사용한다 .UDP 는 TCP 보다 빠르고 단순하고 , 능률적이다 .

Page 6: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 6

2.TCP 와 UDP 의 차이점 (2) TCP (Transmission Control Protocol) 연결 지향적이고 데이터 전송을 보장하는 프로토콜이다 . 연결

지향적인 환경에서는 연결은 정보의 전달이 시작되기 전에 두 종단 사이에서 먼저 연결이 확립된다 . TCP 는 메시지들을 세그먼트로 나누고 목적지 스테이션에서 재조립하고 , 수신되지 않은 것을 재전송하고 , 세그먼트들을 재조립하여 메시지로 만드는 것에 대해서 책임지고 있다 . TCP 는 종단 (End Station) 간에 가상 회선을 제공한다 . 주로 FTP,HTTP,SMTP,DNS 를 IP 로 연결해 주는 역할이다 .  전화통화

UDP (User Datagram Protocol) 비연결형이고 ACK 가 없는 프로토콜이다 . UDP 는 메시지를

전송하는 책임을 가지고 있지만 세그먼트 배달에 대해서 검사하는 기능이 이 계층에서는 제공되지 않는다 . UDP 는 데이터 전송을 보장하기 위해 상위 계층 프로토콜에 의존한다 . 주로 DNS,TFTP,SNMP,RIP 를 IP 로 연결해 주는 역할이다 . 우편배달 서비스

Page 7: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 7

( 참고 ) OSI 7 계층

전송할 데이터의 주소 지정 , 패키징 , 라우팅을 책임진다 .프로토콜 ) IP, ICMP, IGMP, ARP

데이터를 패킷 단위로 나누어서 보내는 역활을 하게 된다 .

Page 8: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 8

3. 윈속 (WinSock) 이란 무엇인가 ?

WinSock 마이크로소프트 (Microsoft) 윈도우 3.1 또는 윈도우 95 에서

제공하는 TCP/IP 프로그래밍을 위한 API(Application Program Interface) 로서 사용방법 및 기본 동작이 UNIX 의 BSD 소켓과 거의 같으며 BSD 소켓과 마찬가지로 클라이언트 -서버 모델을 기초로 하여 이용된다 .

윈속의 사용방법과 문법이 BSD 소켓의 경우와 유사하기는 하지만 윈속과 BSD 소켓용으로 작성된 프로그램은 서로 호환성이 없으며 이 두 가지 소켓 응용 프로그램이 호환성을 갖기 위해서는 많은 부분을 수정하여야 한다 .

Page 9: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 9

4. 소켓의 I/O 모델 조사 (1) 소켓의 I/O 모델이라 함은 소켓을 사용하여 데이터를 주고받는

실질적인 방법을 의미합니다 . 전체적으로는 6 가지 정도의 방법이 있습니다 . 블로킹 모델 ,

셀렉트 모델 , WSAAsyncSelect 모델 , WSAEventSelect 모델 , Overlapped, Completion Port 모델입니다 .

Page 10: Delphi ( NetWork  관련 자료 조사  )

4. 소켓의 I/O 모델 조사 (2)

블로킹모델 (BlockingModel) 소켓을 있는 그대로 사용하면 된다 . 쉽게 구현할 수 있고 이해도 쉽지만 실제로 여러 명의 사용자가 동시에 사용하는

서버 응용 프로그램을 구현하는 데는 크게 도움이 되지 못함 . 오히려 TM 레드나 다수의 프로세스를 구성해야 하는 문제로 인하여 더욱

복잡하고 안정적이지 못한 구조를 가지게 될 수 있다 . 따라서 , 실제로 사용하는 과정에서는 다른 방법들을 활용하는 것이 좋다 .

셀렉트모델 (SelectModel) – Non BlockingModel 셀렉트모델의 가장 핵심은 select() 함수를 사용 . select() 함수는 UNIX 소켓의 시초 중 하나로 현재 UNIX 계열의 OS 에서 가장 널리 사용되는 소켓인 버클리 소켓 (Berkeley Socket) 에서 사용하던 것 .

오래 전부터 사용 그만큼 단순하면서도 나름대로 막강한 능력을 발휘하여 온 것 또한 사실 . 실제로 select() 함수를 사용하는 것은 크게 어렵지 않다 .

select() 함수가 해주는 일은 기본적으로 소켓에 데이터가 존재하는지의 유무를 판단 데이터의 종류 응용 프로그램이 해당 데이터를 수신 /송신 또는 처리가 가능한지를 확인할 수 있도록 해준다 .

EZNIX_ 최영일 10

Page 11: Delphi ( NetWork  관련 자료 조사  )

4. 소켓의 I/O 모델 조사 (3)

IOCP IOCP(I/O Completion Port) 는 어떤 I/O 핸들에 대해서 , 블록 되지

않게 함으로 프로그램 대기시간을 줄이는 목적으로 사용된다 . 우선 Overlapped IO( 비동기 IO 작업 ) 의 개념이 기반이 된다 .

IOCP 는 이런 Overlapped IO 가 실행이되고 알려주는 방법에 대한 것이다 .

그리고 IOCP 는 커널객체이다 . 뮤텍스나 스레드와 같이 커널에서 제공을 한다 .

사용이점 사용자가 설정한 버퍼만을 사용하기 때문에 더 효율적으로 작동한다 .

( 기존에는 OS 버퍼 , 사용자 버퍼로 따로 분리되는 개념이었다 .) IO요청에 대해서 효율적으로 접근한다 . 디스크 IO 의 경우 디스크에 접근을 똑똑하게 한다 ( 순서대로가 아닌 효율적인 순서에 따라 접근하기도 한다 .)

Raid 나 여러개의 랜카드같은 Deviced-level Parallelism 을 지원한다 . 역시나 효율적으로 할 수 있다 .

EZNIX_ 최영일 11

Page 12: Delphi ( NetWork  관련 자료 조사  )

4. 소켓의 I/O 모델 조사 (4)

비동기 비동기 모드는 non-blocking 모드에서처럼 block 될 수 있었던 소켓

시스템 콜에 대해서 일단 리턴을 하고 시스템 콜의 해당 동작이 완료되면 비동기적으로 (asynchronously) 그 결과를 응용 프로그램에게 알려주는 소켓의 동작 모드이다 .

동기 읽기 : Read Buffer 가 비어 있을 경우 내용이 들어 올 때까지 Blocking 쓰기 : Write Buffer 가 꽉 차 있을 경우 Buffer 가 비어 있을 때까지

Blocking 된다 . 접속 : 연결의 완전히 이루어 질 때까지 Blocking 된다 . Blocking : 프로그래밍에서 쉽게 말하자면 다음 작업을 실행하않는다 .

동기 소켓은 Blocking 상태일 경우 어떠한 작업도 실행하지 않는다 . 이러한 단점을 보완하기 위해서 Thread 를 이용하거나 이벤트를 이용할 수 있다 .

EZNIX_ 최영일 12

Page 13: Delphi ( NetWork  관련 자료 조사  )

EZNIX_ 최영일 13

5. 프로토콜은 무엇인가 ? 프로토콜 정의

정보기기 사이 즉 컴퓨터끼리 또는 컴퓨터와 단말기 사이 등에서 정보교환이 필요한 경우 , 이를 원활하게 하기 위하여 정한 여러 가지 통신규칙과 방법에 대한 약속 즉 , 통신의 규약을 의미한다 .

통신규약이라 함은 상호간의 접속이나 절단방식 , 통신방식 , 주고받을 자료의 형식 , 오류검출방식 , 코드변환방식 , 전송속도 등에 대하여 정하는 것을 말한다 .

프로토콜 분류의 필요성 복잡한 네트워킹 기능을 모듈화 프로토콜 간의 관계 정립 가능 이종 프로토콜 집단간의 비교 가능

Page 14: Delphi ( NetWork  관련 자료 조사  )

The End

작성일 : 2007년 10월 16 일작성자 : 최 영 일

EZNIX_ 최영일 14