[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로 제공한다.

출처 TCP/IP 소켓 프로그래밍

Categories:

Updated:

Leave a comment