기술(Tech, IT)/네트워크 (Networking)

[Networking] Host vs Port

Daniel803 2024. 5. 8. 04:19

네트워킹 및 소켓 프로그래밍의 맥락에서 "Host"라는 용어는 일반적으로 네트워크 주소를 통해 액세스할 수 있는 네트워크 상의 모든 컴퓨터 또는 장치를 의미한다. 다음은 "Host"와 "Port"의 개념에 대해 좀 더 자세한 설명이다. 소켓 프로그래밍에서 Host와 Port를 지정하면 네트워크 endpoint를 정의하는 것이다. Port 번호는 Host와 관련이 있으며, 해당 Host의 어떤 프로그램이나 서비스가 특정 Port로 들어오는 네트워크 데이터를 처리해야 하는지를 지정한다.

 

  • Host
    : Host는 네트워크에서 IP 주소로 식별할 수 있으며, 이 주소는 192.168.1.1과 같은 IPv4 주소이거나 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 IPv6 주소일 수 있다. Host는 DNS(Domain Name System)을 통해 IP 주소로 확인할 수 있는 example.com과 같은 Host 이름으로도 식별할 수 있다.

  • IP 주소 (IP Address)
    : IP 주소는 네트워크에 있는 컴퓨터의 고유 식별자로 다음과 같이 사용할 수 있다.
    • Static
      : 컴퓨터 또는 장치에 영구적으로 할당
    • Dynamic
      : HDCP (동적 호스트 구성 프로토콜, Dyanmic Host Configuration Protocol) 서버가 사용 가능한 주소 풀에서 임시로 할당
  • Port
    : Port는 Host 내에서 특정 프로세스나 서비스 유형을 지정하여 네트워크에서 트랜잭션을 고유하게 식별하는 데 사용되는 숫자 값이다. 예를 들어, 웹 서버는 일반적으로 HTTP 트래픽에서 Port 80을, HTTPS 트래픽에서는 Port 443을 사용한다. TCP 또는 UDP의 문맥에서 소켓이 생성되면 특정 Port 번호에 바인딩 되어 TCP 스택이 수신 데이터와 관련된 애플리케이션을 식별할 수 있다.

  • Host와 Port의 관계
    : Port는 기본적으로 Host의 endpoint이며, 네트워크 통신을 처리하기 위한 Host 네트워크 인터페이스의 일부다. IP 주소와 Port 번호의 조합은 네트워크 상호 작용을 위한 고유 식별자를 형성하며, 네트워크 트래픽을 올바르게 라우팅하는 데 필요하다. 이 조합을 네트워크 프로그래밍에서는 흔히 "Socket (소켓)"이라고 한다.