Socket   소켓

(2022-10-21)

1. 소켓 (Socket) 이란?

  ㅇ [일반]  전선/리드선,플러그 등을 접속하기 위한 홀/구멍을 말함

  ㅇ [전산]  소프트웨어로 구현시킨 추상적포트를 말함
     - 원격 및 동일 호스트프로세스프로세스 통신(IPC) 기능을 범용화시킨 추상적포트
        . 통신 상의 양 끝점(endpoint)
     - 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)
     - 서비스 인터페이스에 중점을 둔 개념
     - OSISAP(Service Access Point)와 비슷

  ㅇ 응용 프로세스전송계층 프로토콜 간의 인터페이스
     - 또는, 전달하려는 메세지에 대한 출입구


7. [전산]  `프로세스` 및 `TCP 프로토콜` 간의 소켓 연결 例클라이언트 측의 프로세스는 요청용 소켓을 생성할 때,
     - 서버 측의 IP 주소,포트번호 (소켓 주소)를 명시하고, TCP 연결 요청을 함

  ㅇ 서버 프로세스는 그 응답으로 서버용 소켓을 생성하며,
     - 양 소켓 간에는 TCP 연결 회선이 확립됨

[IPC ⇩]1. IPC(프로세스간 통신)   2. 세마포어   3. 공유 메모리   4. 파이프   5. Named Pipe   6. 소켓  

[소켓 ⇩]1. 소켓   2. 소켓 구조   3. 소켓 인터페이스   4. 소켓 주소   5. 윈속(WinSock)  

  1. Top (분류 펼침)      :     1,591개 분류    6,514건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)          편집 후원          편집 이력