Network IP & Port

한포도·2024년 4월 17일
0

UMC-6th-NodeJS

목록 보기
2/5
post-thumbnail

IP에 대하여

IP주소는 네트워크 상에서 장치를 식별하는 데 사용되는 논리적인 주소. 이 주소는 Internet Protocol (IP)를 사용하여 데이터를 보내고 받는 장치들을 식별하기 위해 할당. IP 주소는 네트워크 상에서 컴퓨터, 스마트폰, 서버 등의 장치를 고유하게 식별하는 역할. 이것은 물리적인 장치가 아닌 논리적인 개념으로서, 네트워크 상에서 통신을 위해 사용된다.

흔히 우리가 사이트에서 활동을 하거나 구매를 하거나 하면 IP가 남는다고 들었을 것이다. IP추적이라던지 등등. 그럼 어디서 접속했는지 식별되는게 IP라고 이해 할 수있겠다. 우리가 편지를 보낼때 주소를 기재하여 발송하듯이 네트워크 데이터가 어딘가에 도달하기 위해 주소정보가 필요하다. 123.45.677.89 같은 숫자를 본적 있지 않는가?
IP주소는 현대에 사용하는 방식이 두가지 존재한다. IPv4,IPv6가 있다.

IPv4 (구세대 방식)

IP는 일반적으로 위의 예시 주소와 같이 마침표 네개로 구분된 4개의 구역의 10진수로 이루어진 형식을 가진다. 총 4바이트로서 약 43억개의 주소를 가질수 있다. 근데도 주소가 부족하여 새로 나온 형식이 IPv6이다. 43억개나 되는데 부족해????
라고 할수있지만 이제는 개인이 가지는 네트워크 주소가 아주 많다. 이제 개인이 가지고 있는 IP주소를 할당받은 기기들이 1:1이 아니기 때문이다. 때문에 사실 이미 고갈은 났다.

아이피 IPv6 (신세대 방식)

IPv6는, IPv4의 주소체계를 16바이트 크기로 확장한 프로토콜 주소이다. 16비트씩 8자리로 각 자리는 콜론으로 구분한다. 2^128개의 주소가 가능하므로 사실상 무한이다... 여러면에서 뛰어나지만 기존에 43억개가 꽉찬 주소를 모두 바꾸기엔 코스트가 많이들어서 아직 완전한 전환이 되지 않았다.

아니 주소 부족하다며

주소는 부족하지만 우리가 주변에서 IP주소가 부족해서 네트워크 전쟁이 일어난다는 둥 그런 뉴스를 접한적이 있는가? 없다! 우리는 아주 잘 IPv4방식에서 사용하고 있다. 이런게 가능한 이유는 우리는 약간의 트릭을 줘서 주소를 바꿔가며 쓰고있다. 사설IP라고 들어봤을것이다. 마인크래프트 초창기에 복돌 버전으로 아파치로 서버를 어떻게 저쩌고...

IP의 종류


사설 IP 주소와 공인 IP 주소

인터넷이라는 방대한 네트워크는 각각의 장치가 서로를 찾아 소통할 수 있도록 돕는 복잡한 시스템으로 이루어져 있다. 이 과정에서 중심 역할을 하는 것이 바로 사설 IP 주소와 공인 IP 주소다.

🌏Public IP

공중 IP 주소, 일명 공인 IP는 인터넷이라는 거대한 바다에서 네트워크 장치들이 서로를 식별하는 데 쓰이는 고유한 식별 번호다. 이 주소는 전 세계적으로 단 하나뿐인 고유성을 자랑하며, 인터넷 서비스 제공업체(ISP)가 관리하고 할당한다. 이를 통해 우리는 원하는 서버에 접속하거나, 웹사이트를 운영하거나, 멀리 떨어진 네트워크와 소통할 수 있다.

대부분의 가정이나 작은 기업들은 변동 가능한 공유 IP를 사용하게 되지만, 대기업이나 특정 서비스를 제공하는 업체들은 그들만의 고정된 공인 IP 주소를 필요로 한다. 이는 특정한 서비스나 위치에 대한 지속적인 인터넷 접근성을 보장하기 위함이다.

반면에, 사설 IP 주소는 그 이름에서 알 수 있듯, 비공개 네트워크 안에서만 사용되는 주소다. 이 주소는 외부 인터넷으로부터 직접적인 접근이 불가능하며, 주로 가정의 라우터나 기업의 내부 네트워크에서 활용된다. 사설 IP와 공인 IP는 NAT(Network Address Translation) 기술을 통해 함께 작동하여, 내부 네트워크의 여러 장치들이 인터넷과 소통할 수 있게 만든다.

요약하면, 공인 IP 주소는 인터넷상에서 고유한 식별자 역할을 하며, ISP에 의해 할당되어 다양한 인터넷 기반 통신에 필수적이다. 이 고유한 주소 시스템은 인터넷의 광활한 세계에서 각 장치가 서로를 찾고, 연결하며, 소통하는 데 필수적인 역할을 한다.

🔒Private IP

사설 IP 주소?

사설 IP 주소(Private IP Address)는 인터넷 상에서 공개되지 않고 내부 네트워크에서만 사용되는 IP 주소다.

이러한 주소는 일반적으로 가정이나 회사 내부의 컴퓨터, 라우터, 서버 등에 할당되어 사용된다. 사설 IP 주소는 인터넷에서 접근할 수 없으며, 주로 내부 네트워크에서 통신하거나 인터넷에 연결하기 위해 공인 IP 주소로 변환되어야 한다.

사설 IP 주소의 종류

IPv4 사설 주소 범위

IPv4에서는 사설 IP 주소를 다음과 같은 범위에서 할당:

  • 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8 대역)
  • 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12 대역
  • 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16 대역)

이러한 주소 범위는 IPv4 주소 고갈 문제를 해결하기 위해 IANA(Internet Assigned Numbers Authority)에서 정의한 것

사설 IP 주소의 사용 용도

내부 네트워크 통신

가장 일반적인 용도는 내부 네트워크에서의 통신이다. 회사나 가정에서 사용하는 컴퓨터, 프린터, 라우터 등이 사설 IP 주소를 할당받아 내부적으로 통신한다. 이러한 주소들은 외부 인터넷에서는 접근할 수 없으며, 보안을 유지하기 위해 사용된다.

부족한 IPv4 주소의 보완&높은 보안성

WI-FI를 사용할 때, 공용 아이피가 공유기에 할당되고, 디바이스에는 사설 아이피가 할당된다.

외부로 요청을 보내거나 받을 때, 공유기를 통해 요청이 전달되며, 공유기는 연결된 디바이스를 구분하여 요청을 처리한다.

이를 가능하게 하는 것이 Network Address Translation (NAT) 서비스다. 따라서 아이피 주소뿐만 아니라 포트 번호도 함께 사용하여 디바이스를 식별하고, 더 나아가 프로세스를 구분하여 요청을 처리한다.

그럼 두번째 이유인 보완성에 대해서 생각해보자. 어떤 정보가 전달되기 위해 무조건적으로 공유기를 거쳐야 한다면 보완성 면에서 좋지 않을까? 맞다. 때문에 VPC의 사설 서브넷은 이런 측면에서 사용 되는구나 하고 이해 할 수 있다.


NAT(Network Address Translation)

인터넷에 연결하려는 경우, 사설 IP 주소는 공인 IP 주소로 변환되어야 한다. 이를 위해 라우터나 방화벽 등에서 NAT(Network Address Translation)을 사용하여 사설 IP 주소를 공인 IP 주소로 변환한다.

내부 네트워크에 있는 디바이스들이 외부와 통신할 때, NAT 장치가 사설 IP 주소를 공인 IP 주소로 변환하여 외부로 패킷을 전달한다. 이를 통해 사설 IP 주소의 부족을 완화하며, 변환된 주소는 외부 네트워크와 통신하는 데 사용된다.


☎️ Port Number

1. 포트 번호란?

포트 번호는 네트워크 상에서 컴퓨터나 프로세스를 식별하는 데 사용되는 숫자이다. TCP/IP 프로토콜 스택에서 포트 번호는 데이터를 주고받는 프로세스를 식별하는 데 사용된다.

2. 포트 번호의 종류

포트 번호는 크게 Well-Known Ports, Registered Ports, Dynamic or Private Ports로 나뉜다.

  • Well-Known Ports (0-1023): 이 포트 번호는 잘 알려진 서비스에 할당. 예를 들어, HTTP의 경우 80번 포트를 사용하고, HTTPS의 경우 443번 포트를 사용.
  • Registered Ports (1024-49151): 이 포트 번호는 사용자가 정의한 서비스나 애플리케이션에 할당. 이 범위의 포트 번호는 IANA(Internet Assigned Numbers Authority)에 등록되어 있다.
  • Dynamic or Private Ports (49152-65535): 이 포트 번호는 클라이언트 프로그램이 동적으로 할당하는 데 사용된다. 클라이언트가 서버와 통신할 때, 임시로 사용하는 포트 번호다.

3. 포트 번호의 사용

포트 번호는 네트워크 통신에서 프로세스서비스를 식별하는 데 사용됩니다. 예를 들어, 웹 브라우저는 HTTP 요청을 보낼 때 목적지 서버의 IP 주소와 함께 포트 번호를 지정하여 해당 서버의 웹 서비스에 연결한다. 이렇게 포트 번호를 사용하여 여러 서비스나 프로세스가 동시에 동작하고 통신할 수 있다.

4. 포트 번호의 예시

  • HTTP (HyperText Transfer Protocol): 80번 포트를 사용.
  • HTTPS (HyperText Transfer Protocol Secure): 443번 포트를 사용.
  • FTP (File Transfer Protocol): 21번 포트를 사용.
  • SSH (Secure Shell): 22번 포트를 사용.
  • SMTP (Simple Mail Transfer Protocol): 25번 포트를 사용.

5. 포트 번호의 중요성

포트 번호는 네트워크 통신에서 핵심적인 역할을 한다. 올바른 포트 번호를 사용하여 서버와 클라이언트가 효율적으로 통신할 수 있도록 관리하는 것이 중요한 포인트다. 포트 충돌을 피하고 보안을 유지하기 위해 포트 번호를 적절히 관리하고 할당해야 한다.

포트리스닝

포트리스닝은 서버가 특정 포트를 열어놓고 클라이언트의 연결 요청을 기다리는 상태를 말한다. 이는 네트워크 통신에서 중요한 개념 중 하나로, 서버가 클라이언트의 요청을 받아들일 준비가 되어 있음을 의미한다.

예를 들어, 웹 서버가 HTTP 요청을 처리하기 위해 80번 포트를 열어놓고 포트리스닝 상태에 있다. 클라이언트가 웹 브라우저를 사용하여 해당 서버에 접속하면, 서버는 80번 포트에서 클라이언트의 연결 요청을 기다리고 있다. 이때 서버는 리스닝 상태에 있으며, 클라이언트의 요청이 들어오면 이를 받아들이고 처리한다.

6. 포트 번호의 표기법

포트 번호는 IP 주소와 함께 콜론(:)을 사용하여 표기한다 예를 들어, HTTP 서비스의 경우 IP 주소 뒤에 콜론을 붙이고 80번 포트를 지정하여 표기한다. (예: 192.168.0.1:80)

profile
응애 개발맨

0개의 댓글