본문 바로가기
Category/정보처리기사

포트 번호란?

by Corinee 2024. 10. 10.
728x90
반응형

포트 번호컴퓨터에서 네트워크 서비스를 구분하기 위해 사용되는 숫자입니다. IP 주소네트워크 상의 장치(컴퓨터)를 식별하지만, 포트 번호는 그 장치 내에서 어떤 서비스로 통신을 할지를 결정하는 역할을 합니다.

예를 들어, 하나의 컴퓨터가 여러 네트워크 서비스를 제공할 수 있습니다. 웹 서버, 이메일 서버, FTP 서버 등 여러 서비스가 동일한 컴퓨터에서 동작할 수 있지만, 각각의 서비스는 다른 포트 번호를 통해 구분됩니다.

포트 번호의 구조

  • 16비트 크기로 표현되며, 0부터 65535까지의 범위를 가집니다.
  • TCPUDP 같은 전송 프로토콜에 따라 구분됩니다.
    • TCP 포트: 신뢰성 있는 연결을 위한 포트.
    • UDP 포트: 빠르고 비연결성 통신을 위한 포트.

포트 번호의 범위

  1. 0 ~ 1023: 잘 알려진 포트 (Well-known Ports)
    • 0부터 1023번까지의 포트 번호는 일반적으로 알려진 서비스를 위한 포트입니다.
    • 이 포트들은 IANA(Internet Assigned Numbers Authority)에서 관리하며, 특정 서비스에 표준적으로 할당되어 있습니다.
    • 예시:
      • HTTP (웹): 80번
      • HTTPS (보안 웹): 443번
      • FTP (파일 전송): 21번
      • SSH (원격 접속): 22번
      • SMTP (이메일 전송): 25번
      • DNS (도메인 이름 시스템): 53번
  2. 1024 ~ 49151: 등록된 포트 (Registered Ports)
    • 1024번부터 49151번까지의 포트는 등록된 서비스에 할당됩니다. 특정 애플리케이션이나 서비스를 위해 예약되었지만, 모든 사용자가 사용할 수 있습니다.
    • 이 포트들은 공용으로 사용할 수 있으며, 특정 애플리케이션이 등록되어 있지 않은 경우 사용자 정의 애플리케이션에 사용될 수 있습니다.
    • 예시:
      • MySQL 데이터베이스: 3306번
      • PostgreSQL 데이터베이스: 5432번
      • MSSQL: 1433번
  3. 49152 ~ 65535: 동적 포트/사설 포트 (Dynamic/Private Ports)
    • 49152번부터 65535번까지의 포트는 동적으로 할당됩니다. 클라이언트 측에서 임시로 사용되며, 특정 서비스에 할당되지 않고 임의로 사용됩니다.
    • 클라이언트가 서버와 통신할 때, 임시적으로 할당되는 포트 번호입니다.
    • 예시:
      • 사용자 정의 애플리케이션.
      • 클라이언트 소켓의 포트 번호로 사용.

주요 포트 번호 예시

HTTP (웹 통신)

  • 포트 번호: 80 (TCP)
  • 설명: HTTP는 웹 브라우저와 웹 서버가 비암호화된 데이터를 교환할 때 사용하는 프로토콜입니다.

HTTPS (보안 웹 통신)

  • 포트 번호: 443 (TCP)
  • 설명: HTTPS는 SSL/TLS 암호화를 사용하여 보안된 웹 통신을 제공합니다. 대부분의 웹사이트가 HTTPS를 사용해 데이터를 암호화합니다.

FTP (파일 전송 프로토콜)

  • 포트 번호: 21 (TCP)
  • 설명: FTP는 파일을 전송할 때 사용하는 프로토콜로, 클라이언트와 서버 간의 파일 송수신을 담당합니다.

SSH (보안 원격 접속)

  • 포트 번호: 22 (TCP)
  • 설명: SSH는 원격 접속을 통해 데이터를 암호화하여 안전하게 통신하는 프로토콜입니다. 주로 원격 서버 관리에 사용됩니다.

SMTP (이메일 전송)

  • 포트 번호: 25 (TCP)
  • 설명: SMTP는 이메일을 전송할 때 사용하는 프로토콜입니다.

DNS (도메인 이름 시스템)

  • 포트 번호: 53 (TCP/UDP)
  • 설명: DNS는 도메인 이름을 IP 주소로 변환하는 프로토콜입니다.

Telnet (원격 접속)

  • 포트 번호: 23 (TCP)
  • 설명: Telnet은 원격 서버에 접속하는 프로토콜로, 보안이 제공되지 않으며 현재는 SSH로 많이 대체되었습니다.

MySQL (데이터베이스)

  • 포트 번호: 3306 (TCP)
  • 설명: MySQL 데이터베이스 서버와의 통신에 사용되는 포트입니다.

RDP (Remote Desktop Protocol)

  • 포트 번호: 3389 (TCP)
  • 설명: RDP는 원격 데스크톱 연결을 통해 원격 컴퓨터를 제어할 때 사용하는 프로토콜입니다.

DHCP (Dynamic Host Configuration Protocol)

  • 포트 번호: 67 (서버, UDP), 68 (클라이언트, UDP)
  • 설명: DHCP는 IP 주소를 동적으로 할당하기 위해 사용하는 프로토콜입니다.

포트 번호 사용 예시

  1. 웹 브라우징:
    • 브라우저가 http://example.com 요청할 때, 80번 포트로 서버에 접속하여 데이터를 요청합니다.
    • https://example.com 443번 포트를 사용하여 암호화된 데이터를 요청합니다.
  2. 파일 전송:
    • FTP 클라이언트가 서버에 파일을 업로드하거나 다운로드할 때 21번 포트를 사용하여 통신합니다.
  3. 원격 서버 접속:
    • SSH 클라이언트를 사용해 원격 서버에 접속할 때 22번 포트를 사용하여 안전한 원격 연결을 수행합니다.
  4. 이메일 전송:
    • 이메일 클라이언트가 SMTP 서버로 이메일을 전송할 때 25번 포트를 통해 연결합니다.

포트 번호 정리

20, 21 FTP 파일 전송 프로토콜
22 SSH 원격 접속 프로토콜, 암호화된 통신
23 Telnet 보안 없는 원격 접속
25 SMTP 이메일 전송 프로토콜
53 DNS 도메인 이름을 IP 주소로 변환
67, 68 DHCP 동적 IP 주소 할당
80 HTTP 비암호화된 웹 통신
110 POP3 이메일 수신 프로토콜
143 IMAP 이메일 수신 및 관리
443 HTTPS 암호화된 웹 통신
3306 MySQL MySQL 데이터베이스 통신
3389 RDP 원격 데스크톱 프로토콜