서버/도커
포트(Port)와 소켓(Socet)
최고관리자
최고관리자 가입일:2022.11.19

작성일시:2013.07.28 02:26:00

IP:121.162.195.♡

  • 조회 14
  • 댓글 0
  • 좋아요 0
  • 싫어요 0
  • 121.162.195.♡

일반적으로 서비스를 제공하는 호스트(Host)를 서버(Server)라고 하고, 서비스를 제공받는 호스트를 클라이언트(Client)라고 한다. 리눅스(Linux)는 다양한 네트워크 서비스(Network Service)를 제공하며, 경우에 따라 하나의 서버에 다수의 서비스를 제공하기도 한다. 포트는 이러한 다수의 서버의 네트워크 서비스를 식별하기 위해 부여된 번호를 의미한다. 서버에는 특정 포트로 부터 오는 서비스 요청을 기다리는 데몬(Daemon)들이 존재한다. 이들은 클라이언트가 지정한 포트를 이용하여 요청한 서비스를 구분하여 제공한다. 즉 클라이언트는 IP 주소로 서버에 접속하고, 포트로 서비스를 지정한다고 할 수 있다.

포트의 범위는 0~65535개 이다. 이 중에서 0~1023 범위의 포트는 IANA (Internet Assigned Numbers Authority)에서 지정한 포트들로, 이 범위의 서비스를 이용하는 클라이언트는 항상 지정한 포트를 사용하여 접속하도록 설계 및 제작된다. 즉 웹 브라우저(Web Browser)를 이용하여 웹 서비스를 받는 경우 IP 주소만 입력하고, 80 포트를 지정하지 않아도 80 포트에 해당하는 웹 서비스를 제공받는다.

각 서비스별 포트 및 프로토콜(Protocol)에 대한 정의는 /etc/services 파일(File)에서 확인 할 수 있다.

한 서버가 다수 클라이언트로부터 접근될 때 어떻게 구분하여 자료를 전송할 수 있을까? 한 클라이언트가 다수의 서버를 연결하고 있는 경우 어떤 서버로부터 온 자료인지 어떻게 구분 할 수 있을까? 이 질문에 대한 답은 소켓(Socet)이다. 소켓은 네트워크 상에서 클라이언트 프로그램(Program)과 서버 프로그램 사이의 통신 방법으로 서버의 IP 주소, 포트 번호와 클라이언트의 IP 주소, 포트 번호를 이용한 데이터 전송을 위해 형성한 연결을 의미한다.

일반적으로 서버의 서비스 프로세스(Process)는 하나 이상이 동작하면서 서비스를 제공하고, 그 중 첫번째 프로세스는 연결을 담당한다. 따라서 클라이언트로부터 서비스 요청이 올 경우, 첫 번째 프로세스는 다음 프로세스를 호출하여 새로운 소켓을 열어 서비스를 제공한다.만약 호출할 다음 프로세스가 존재하지 않는 경우에는 새로운 프로세스를 생성한다. 다음 요청이 올 경우, 다음 프로세스를 호출하여 새로운 소켓을 열어 서비스를 제공한다. 하나의 클라이언트가 다수의 서버를 접속하는 경우, 각 클라이언트 프로세스마다 새로운 클라이언트 포트를 열고, 서버의 서비스 포트를 접속한다. 서버는 클라이언트의 포트 번호를 이용하여 클라이언트를 식별하여 서비스를 제공한다. 클라이언트 포트 번호는 1024부터 65535 포트 중에서 사용하지 않는 포트를 순차적으로 사용한다.

댓글 0

리눅스에서 인터넷 속도 측정하기

  • 최고관리자
  • 2023.05.01
  • 조회 29
  • 추천 0
리눅스에서  인터넷 속도 측정하기

MySQL DB 암/복호화 방법

  • 최고관리자
  • 2023.04.25
  • 조회 36
  • 추천 0

Jenkins와 Github 연동하기 2

  • 최고관리자
  • 2023.02.18
  • 조회 31
  • 추천 0
Jenkins와 Github 연동하기 2

Jenkins와 Github 연동하기 1

  • 최고관리자
  • 2023.02.18
  • 조회 26
  • 추천 0
Jenkins와 Github 연동하기 1

MSSQL 17 버전 이하 연결 오류 해결 (TCP Provider: Error)

  • 최고관리자
  • 2023.02.16
  • 조회 60
  • 추천 0

VirtualBox 환경에서 symlink() 오류 해결

  • 최고관리자
  • 2023.02.16
  • 조회 21
  • 추천 0

윈도우 IIS 환경에서 PHP 확장자 관리 방법

  • 최고관리자
  • 2023.02.16
  • 조회 23
  • 추천 0
윈도우 IIS 환경에서 PHP 확장자 관리 방법

Nginx 디렉토리 인식 설정

  • 최고관리자
  • 2023.02.16
  • 조회 27
  • 추천 0

CentOS Steam 에서 Docker 설치 시 exec 실행 오류 해결 방법

  • 최고관리자
  • 2023.02.16
  • 조회 24
  • 추천 0
CentOS Steam 에서 Docker 설치 시 exec 실행 오류 해결 방법

Apache httpd.conf 설정 환경 정리

  • 최고관리자
  • 2017.01.22
  • 조회 23
  • 추천 0

서버에서 오는 경고 문자 설명

  • 최고관리자
  • 2017.01.02
  • 조회 34
  • 추천 0

CentOS 6.5 APM Configure

  • 최고관리자
  • 2014.11.23
  • 조회 27
  • 추천 0

CentOS 6.5 Minimal APM 설치과정

  • 최고관리자
  • 2014.11.19
  • 조회 47
  • 추천 0

CentOS 6.5 원격 부팅 설정하기 (WOL)

  • 최고관리자
  • 2014.11.04
  • 조회 22
  • 추천 0

Mod_Security 설치방법 - CentOS 6.5

  • 최고관리자
  • 2014.07.09
  • 조회 23
  • 추천 0
처리 중...