Socket

이준혁·2022년 8월 22일
0

network-knowledge

목록 보기
3/3

Socket
2022.08.22 공부 내용


Socket Basic

Host

네트워크에 연결된 모든 장치 중에서 IP를 할당받은 것

Process

Host 내부에서 실행중인 프로그램. 다른 종단점에서 동작하는 프로세스는 message를 주고 받음으로써 동작함.

Client / Server

연결을 시작하는 프로세스를 client, 연결을 기다리는 프로세스를 server라고 부름. P2P에도 해당

Socket

프로세스가 통신하기 위해 메시지를 보내거나 받는 소프트웨어 인터페이스. Application process와 transport-layer protocol 사이의 문 역할.

Port (Number)

한 호스트 내에서 프로세스를 식별하기 위해 사용되는 번호. 웹 서버의 경우에는 80번을 사용한다. socket이 생성될 때 할당된다.

File Descriptor

시스템이 파일에 할당해준 값. 소켓을 여는 경우에도 할당받을 수 있음.

Port number는 외부에서 socket을 식별하기 위해 사용하는 값이라면, 이 값은 시스템 내부에서 소켓에 엑세스하는 용도로 사용됨.

Socket System Call

소켓을 활용하기 위한 라이브러리 함수들.

Socket()

소켓을 생성하며, 소켓의 디스크립터를 반환

bind()

생성된 소켓에 포트 번호를 부여

listen()

소켓이 client로부터의 요청을 받을 수 있도록 설정하는 함수. 인자 값 만큼의 연결을 맺을 수 있음.

accept()

client로부터의 요청을 기다리다가 요청이 온 경우 실행되는 함수.

connect()

client가 server에게 연결을 요청하는 함수. TCP 연결에 사용됨.

send() / sendto()

연결형 / 비연결형 통신에서 데이터를 송신하는 함수.

recv() / recvfrom()

연결형 / 비연결형 통신에서 데이터를 수신하는 함수.

close()

소켓을 닫는 함수.

요약

어떤 process가 통신을 위해 소켓을 통해 메시지를 송/수신함. 운영체제는 이를 위해 다양한 system call 제공.

참고자료

  1. Computer Networking: A Top-Down Approach, James. F. Kurose and Keith W. Ross
  2. Socket, Port
  3. Socket System Call
  4. Socket File Descriptor
profile
만들고 개선하는 것을 좋아하는 개발자

0개의 댓글