실시간 RTSP프로토콜로 카메라를 연결하는 것은 성공했고
이제 직접 연결이 아닌 원격으로도 연결을 해야 했기에
회사 라우터를 공부하며 포트포워딩을 적용 시킨 사례를 정리 하고자 함
비전공이었지만 그래도 cs공부는 천천히 하고 있었는데 IP개념이 너무 헷갈려서
조금 오래 걸렸던것 같음.. 그래서 IP정리하고 포트포워딩 정리해보고자 함
IP주소
IP주소(Internet Protocol Address)는 인터넷 프로토콜(IP)에 따라,
컴퓨터나 네트워크 장치에 부여되는 고유한 주소를 의미 함.
IP주소는 인터넷 상의 장치들이 서로 정보를 주고받을 때,
정보가 정확한 목적지에 도달하도록 안내하는 역할을 한다.
IP주소는 크게 IPv4와 IPv6 두 가지 방식이 있음
- IPv4
전 세계에서 가장 널리 사용되는 IP주소
총 4바이트(32비트)로 구성되며, 점으로 구분된 4개의 0부터 255까지의 숫자로 표현
예를 들면, '192.168.0.1'과 같은 형식
하지만 46억개 까지정도의 개수 때문에 밑의 v6가 등장 - IPv6
IPv4가 주소 공간의 한계로 인해 새롭게 도입된 IP주소
총 16바이트(128비트)로 구성되며, 콜론으로 구분된 8개의 4자리 16진수로 표현.
예를 들면, '2001:0db8:85a3:0000:0000:8a2e:0370:7334'과 같은 형식
또 두가지로 나뉘는게 있는데 IP주소는 공인 IP주소와 사설 IP주소로 나뉨.
- 공인 IP주소
인터넷 서비스 제공자(ISP)로부터 할당받아 사용하는 IP주소, 인터넷 상에서 고유한 주소를 가짐.
이를 통해 외부와 통신이 가능 - 사설 IP주소
LAN(Local Area Network) 내에서만 사용되는 IP주소, 외부와의 직접적인 통신은 불가능,
인터넷에 접속하기 위해서는 공인 IP주소를 사용하는 장치를 통해야 한다.
정도로 요약할 수 있는게 IP주소
PORT(포트)
포트는 네트워크에서 데이터를 주고받는 통신의 끝점을 의미하는데,
컴퓨터 상에서 실행되는 각각의 프로그램이 네트워크를 통해 통신을 할 때,
각각 고유의 포트 번호를 사용함.
이유는 컴퓨터가 받은 정보가 어느 애플리케이션에게 전달되어야 하는지를 알 수 있게 하기 위함임.
포트도 두가지로 나뉘게 되는데
- 물리적 포트(Physical Port)
컴퓨터의 뒷면이나 무선 라우터 등에 위치한 실제적인 연결구멍을 의미.
이를 통해 네트워크 케이블이나 USB 케이블 등을 연결함 그냥 꽂는 구멍임 - 논리적 포트(Logical Port)
네트워크 통신에서 특정 프로토콜이나 서비스를 구분하기 위해 사용되는 가상의 연결 지점을 의미.
TCP나 UDP와 같은 프로토콜에서 데이터 전송을 위해 사용.
논리적 포트는 번호로 구분되며, 이 번호는 0부터 65535까지의 범위를 가지고 있음.
--- Well-Known Ports (0~1023): 통신에서 주로 사용하는 프로토콜들이 이 범위의 포트를 사용. 예를 들어, HTTP는 80번, HTTPS는 443번, FTP는 20번과 21번 등을 사용합니다.
--- Registered Ports (1024~49151): 특정 프로그램이 사용하기 위해 IANA(Internet Assigned Numbers Authority)에 등록된 포트 범위
--- Dynamic or Private Ports (49152~65535): 동적 또는 사설 포트로, 일반적으로 클라이언트 애플리케이션에 의해 임시적으로 사용되는 포트 범위.
처음에는 진짜 모르겠었는데 지금도 조금 어렵긴 하다 ㅎㅎ
포트부분들에 대해서는 그림설명들도 많이 보면 좋은듯 함
마지막으로 포트포워딩 설명과 예시
Port Forwarding
라우터를 통해서 특정 IP 주소와 포트를 다른 IP와 포트로 리다이렉션하는 기술을 의미(걍 프론트관점으로 라우팅 생각하세염)
외부 네트워크에서 내부 네트워크의 특정 장치나 서비스에 접근할 수 있도록 해주는 역할을 함.
포트포워딩의 과정은 --
1. 외부에서 특정 IP 주소와 포트로 요청 들어옴
2. 라우터는 미리 설정된 규칙에 따라 해당 요청을 내부 네트워크의 다른 IP 주소와 포트로 전달
3. 내부 네트워크의 장치는 요청을 처리하고 결과를 라우터로 다시 보냄
4 .라우터는 이를 외부로 다시 전달하고, 이 과정을 통해서 외부와 내부 네트워크간의 통신이 성공
EX)
가정용 라우터의 공인 IP 주소가 211.45.67.89라고 가정
이 라우터에 연결된 내부 네트워크의 웹 서버의 사설 IP 주소가 192.168.0.2라고 가정
웹 서버는 일반적으로 80번 포트를 사용.
이제 외부에서 우리의 웹 서버에 접근하려면, 우리의 공인 IP 주소211.45.67.89와 80번 포트로 요청을 보내야 함
하지만 일반적으로 가정용 라우터는 외부에서 내부 네트워크로의 모든 요청을 차단하게 설정
이 경우에 포트포워딩을 설정
라우터는 외부에서 들어오는 80번 포트의 요청을 내부 네트워크의 웹 서버 192.168.0.2의 80번 포트로 전달
따라서, 외부에서 211.45.67.89 주소와 80번 포트로 요청을 보내면
요청은 라우터를 통해 192.168.0.2 주소의 80번 포트로 전달
이를 통해 집에 있는 웹 서버에 접근이 가능.
쉬운것 같지만 어렵기도 하고 예시를 보면 조금 이해가 잘 갈 것 같아서 정리해놓음
'WebDev > CS & 자료구조' 카테고리의 다른 글
웹의 쿠키와 스토리지에 대해 알아보자 (0) | 2024.07.09 |
---|---|
DataBase 개념 정리 (1) | 2024.02.01 |
스키마란(schema)? (0) | 2023.11.28 |
라우팅이란? (0) | 2023.11.15 |
프론트엔드 아키텍처 (1) | 2023.11.14 |