2009년 11월 4일 수요일

[study] 2.윈속 디자인

Chapter 2. 윈속 디자인

 

 

시스템 구조

대부분의 윈속 API들은 WINSOCK2.H에 선언,  WS2_32.DLL에 구현.

응용 프로그램이 윈속 API를 호출하면 WS2_32.DLL에 존재하는 함수들을 호출하게 된다.

 

* 윈속 DLL 의 함수들의 동작 방법

1.  입력된 파라메터들이 올바른지 검사

2.  어떤 프로토콜 서비스 프로바이더 (protocol service provider)에게 명령을 전달할지 결정

3.  WS2_32.DLL은 어떤 프로바이더에게 이 호출을 전달할지 결정

*  프로바이더

1. 베이스 프로바이더 (base provider)

          전송 프로토콜 (transport protocol)의 바로 위에 놓여짐.

          Microsoft TCP/IP, UDP/IP, RSVP(Resource Reservation Protocol) 같은 것이 있음

2. 레이어드 프로바이더 (layered provider)

          WS2_32.DLL과 베이스 프로바이더 사이에 놓여짐.

          윈속 함수의 호출을 가로챈다.

          하위 프로바이더로 내려가는 모든 호출을 블록하고 가공한다.

          혹은 아무 처리도 하지 않은채 하위 프로바이더에게 호출을 그대로 전달하기도 한다.

[ 이 그림은 제가 머릿속에서 이해하기 쉽게 구상한 모습입니다. 실제와 다를수 있음..ㆀ ]

 

 

 << 윈속 시스템 구성도 >>

 

 

 메시지 중심 (Message-Oriented) 프로토콜

- 하나의 메시지를 주고 받으며 각각의 메시지들은 분리되어 전송된다. 또한 수신측에서는 분리된 메시지로 데이터를 받게 된다.

- 수신측은 하나 이상의 데이터를 이어서 받을 수 없다.

- 네트워크 게임에서 주고 받는 데이터가 메시지 경계의 보호(preserving message boundary)의 좋은 예다.

스트림 중심 (Stream-Oriented) 프로토콜

- 메시지 경계를 가지지 않는 프로토콜을 말한다.

- 스트림 서비스 (Stream service) : 연속적인 데이터를 전송하는 것.

                수신측 = 메시지의 경계가 없이 읽을 수 있을 만큼 데이터를 읽음.

                송신측 = 메시지가 더 작은 조각으로 나누어지거나 다른 메시지와 함케 큰 패킷들로 병합되어 전송 가능.

 

댓글 없음:

댓글 쓰기