1. 소켓 (Socket) 이란?
  ㅇ [일반]  전선/리드선,플러그 등을 접속하기 위한 홀/구멍을 말함
  ㅇ [전산]  소프트웨어로 구현시킨 추상적인 포트를 말함
     - 통신 상의 양 끝점(endpoint)
        . 원격 및 동일 호스트 간 프로세스 대 프로세스 통신(IPC) 기능을 범용화시킨 추상적인 포트
     - UNIX 등 대부분의 운영체제에서 이를 지원
2. [전산]  소켓의 출현 및 확산
  ㅇ BSD 계열의 UNIX 시스템에서부터 시작됨
     - 프로세스간 통신(IPC)에 공통적인 연결 방법을 제공하고,
     - 복잡한 네트워크 프로토콜들을 단순하게 사용하는 Socket 이라는 메커니즘을 개발함
  ㅇ 오늘날에는 BSD 계열 UNIX 이외에도 소켓 기능이 기본적으로 실장되어 있음
     - 소켓은 통신 관련 어느 표준화 기구에서도 표준화 노력이 없었으나,
     - 산업계에서는 사실상의 표준으로 받아들여지고 있음
     - 심지어 MS社의 윈도우즈에서도 이를 활용하고 있음  ☞ Winsock 참조
3. [전산]  소켓 인터페이스의 특징
  ㅇ 소켓 인터페이스 그 자체는  TCP/IP 표준이 아니나,
     - 소켓은 네트워킹 프로그램을 작성할 때 매우 유용한 도구역할을 함
  ㅇ 소켓 API는 주로 운영체제에서 제공됨
     - 응용 프로그램과 통신 프로토콜들과의 인터페이스(API)를 위함
        . 결국, 특정 운영체제 및 프로그램 언어에 의존적으로 동작함
  ㅇ 소켓은 기본적으로, 네트워킹을 위한 I/O (입출력) 임     ☞ 아래 5.항 및 파일 I/O 참조
     - 양 종단 간의 통신
  ㅇ 소켓 통신은 클라이언트/서버 모델에 기초함
4. [전산]  소켓의 구조, 호출, 주소, 연결
  ㅇ 소켓 구조
     - 인터넷 통신용 소켓은, 응용 프로그램이 읽고 쓸 수 있는 소프트웨어 자료 구조임
  ㅇ 소켓 호출
     - 소켓의 생성,읽기,쓰기,종료 등
  ㅇ 소켓 주소  :  (Socket address = IP Address + Port Number)
     - 통신 상의 양 끝점 각각에서 소켓 주소를 갖음 
        . 모든 소켓은, 항상 유일해야 만 함   ☞ 소켓 식별 (소켓 주소) 참조
  ㅇ 소켓 연결  :  한 쌍의 소켓으로 구성됨
     - (양끝단에 하나씩 서로 연결 관계를 갖음)
  ㅇ 소켓 방향성  :  데이터 전달이 양방향성으로 가능
5. [전산]  소켓 I/O 및 화일 I/O 비교
  ※ UNIX 에서는 기존 I/O 방식과 네트워크 I/O 방식이 비슷하면서도 약간 다르게 취급
  ㅇ 기존 I/O 방식     : 화일, 장치, 파이프
     - 어떠한 입출력이라도 기본적으로 표준 화일식별자를 사용하여 입출력을 수행
  ㅇ 네트워크 I/O 방식 : 소켓
     - 소켓의 생성
        . 일반적인 표준 화일과 관련된 시스템 호출을 사용하지 않고,
        . 자체 소켓 시스템 호출(BSD)을 사용하게 됨 
     - 소켓 (연결)의 식별
        . 일단 생성된 소켓은, 소켓 식별자로 구분되며, 
        . 이때부터, 소켓,파일 간에 구분 없이, 파일 식별자에 의해서도 해당 소켓에 접근 가능함
           .. 저수준 입출력 함수들(read,write,close; open은 제외)에 의해,
           .. 마치 파일 처럼 소켓에 접근 가능
     - 소켓의 방향성
        . 통상, 소켓 데이터 흐름은, 양방향성(bi-directional)의 특징을 갖음
6. [전산]  통신계층 상에서 소켓의 의미
  ㅇ 양방향 (two-way) 통신 경로 상의 양끝점(End Point)
     - 서비스 인터페이스에 중점을 둔 개념
     - OSI의 SAP(Service Access Point)와 비슷
  ㅇ 응용 프로세스와 전송계층 프로토콜 간의 인터페이스
     - 또는, 전달하려는 메세지에 대한 출입구
7. [전산]  `프로세스` 및 `TCP 프로토콜` 간의 소켓 연결 例
  ㅇ 클라이언트 측의 프로세스는 요청용 소켓을 생성할 때,
     - 서버 측의 IP 주소,포트번호 (소켓 주소)를 명시하고, TCP 연결 요청을 함
  ㅇ 서버 프로세스는 그 응답으로 서버용 소켓을 생성하며,
     - 양 소켓 간에는 TCP 연결 회선이 확립됨