•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

유닉스 도메인 소켓

최근 수정 시각 : 2022-07-17 21:53:27 | 조회수 : 26

이 문서의 내용 중 전체 또는 일부는 넥스32 위키에서 가져왔으며 GNU Free Documentation License 1.3에 따라 이용할 수 있습니다.
본 문서의 원본은 링크에서 확인할 수 있습니다.

유닉스 도메인 소켓(Unix Domain Socket)은 프로세스간의 데이터 교환을 위한 기술 중 하나로, 파일 시스템을 통해 소켓통신 방식으로 내부 프로세스간의 통신을 하는 구조로 이뤄져있다. 약칭으로 UDS라고 표기하며, 간단하게 ‘유닉스 소켓(Unix socket)‘이라고 부르기도 한다. IPC(Inter Process Communication)의 일부로서 분류할 때는 ‘IPC소켓’이라고 부르기도 한다. POSIX의 표준 운영체제 구성요소 중 하나로 포함되어있다.

UDS의 가장 큰 특징은 소켓통신 방식을 써서 만든 프로세스에 사용이 가능하기 때문에 소켓프로그래밍 구조를 유지한 채로 로컬 프로세스와의 효율적 통신을 가능케 한다는 점이다. TCP, 혹은 UDP형식 데이터를 파일 시스템을 이용해서 통신하는 구조로, 파일 시스템을 통해 파일 주소 및 inode로 각 프로세스에서 참조되며, 통신은 운영체제의 커널상에서 이뤄지기 때문에 inet소켓을 이용해서 네트워크단을 이용해 전달하는 것보다 빠르며 부하가 적게 걸린다.(기본적으로 소켓통신 방식이 TCP/IP의 4계층을 거쳐 전달되기 때문에 지연이 발생하는데 반해서 유닉스 소켓은 어플리케이션 계층에서 TCP계층으로 내려가 바로 데이터를 전달하고, 수신측도 TCP계층에서 수신해 어플리케이션 계층으로 올라간다)

이러한 특성 때문에 네트워크 관련 프로그램에서 널리 사용되며, X윈도우 등의 프로젝트에서도 활용되고 있다.

C언어를 비롯해 php, 자바, 펄 등 다양한 언어에서 지원을 위한 라이브러리를 기본 제공하고 있다.

마이크로소프트의 윈도우 시리즈에서는 사용이 불가능하기 때문에 윈도우로 포팅될 땐 보통 localhost(128.0.0.1)의 임의 포트를 이용하도록 변경된다. NGINX(엔진엑스) 등의 서버 어플리케이션이 윈도우 상에서 효율이 나쁜 이유 중 하나이기도 하다.

추가로 프로세스는 sendmsg()와 recvmsg() 시스템콜을 이용해서 유닉스 도메인 소켓에 접속해 파일 기술자(file descriptors)를 주고받을 수도 있다.

목차

1. 외부

1. 외부