[TCP/IP] #1-3. 소켓의 특징과 구조
소켓
윈도우 소켓을 중심으로 소켓의 특징과 구조를 알아보고, 리눅스의 소켓과 비교해본다.
1. 소켓 특징
- 유닉스 기반
- 윈도우 소켓은 유닉스 소켓 구조를 따르므로 호환성이 높다.
- 윈도우 소켓이 유닉스 소켓과 다른 특징
- 대부분의 기능이 DLL(Dynamic-Link Library)을 통해 제공 → DLL 초기화 및 종료용 윈도우 전용 함수 필요
- GUI(Graphic User Interface) 기반 응용 프로그램에서 메시지 방식 동작 → 이를 위한 확장 함수 필요
- OS 차원에서 멀티스레드를 지원 → 안정적인 구조와 멀티 스레드 대응 함수 필요
- 윈도우와 리눅스 소켓 공통 지원 프로토콜
프로토콜 | 윈도우 지원 버전 |
IPv4 | Windows 95 이상 |
IPv6 | Windows XP SP1 이상 |
Bluetooth | Windows XP SP2 이상 |
IrDA(적외선) | Windows 98 이상 |
- 장점
- 소스 코드 호환성이 높다. → 코드 이식 용이
- 범용성 높은 인터페이스 → 다양한 OS에서 사용 가능
- 다양한 프로토콜 지원 → TCP/IP 외의 프로토콜도 지원, 소규모 수정으로 적용 가능
- 저수준 프로그래밍 인터페이스 → 세부 제어 가능, 고성능 프로그램 제작 가능
- 단점
- 응용 프로그램 수준의 프로토콜을 설계가 필요하다.
- 주고 받는 데이터 형식, 전송 절차 등 직접 정의 및 구현
- 설계 변경 시 코드 수정 필요
- 호스트 간 데이터 처리 방식 차이(바이트 순서 등)를 응용 프로그램 수준에서 처리해야 한다.
- 응용 프로그램 수준의 프로토콜을 설계가 필요하다.
2. 소켓 구조
- 윈속(Windows Socket)
- 윈도우 OS는 윈속 응용 프로그램을 위해 다음과 같은 구조를 제공한다.
- 윈속이 지원하는 대부분의 기능은
WS2_32.DLL
로 제공된다.- 응용 프로그램이 사용할 하부 프로토콜을 선택하여 연결해준다.
- 표준 윈속 API 외에도 MS에서 확장한
MSWSOCK.DLL
로 제공한다.
- 윈도우 OS는 윈속 응용 프로그램을 위해 다음과 같은 구조를 제공한다.
Leave a comment