네트워크에서 다른 pc에 접속하기 위해서는, pc를 가르키는 주소를 알아야 한다.
네트워크에 연결된 특정 pc의 주소를 나타내는 체계를 IP(Internet Protocol) 주소라고 한다.
IP 주소 체계는 네 덩이의 숫자로 구분되어 IPv4라고 한다.
하지만 IP 주소가 부족함에 따라 IPv6도 생겨났다.
용도가 정해져 있는 IP 주소
- localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭한다.
- 0.0.0.0, 255.255.255.255 : broadcast address로, 모든 기기에서 서버에 접근할 수 있도록 한다.
나는 현재 스터디 카페 WIFI에 연결 중이라 WI-FI(LANG_WIFI2)로 표시되어있다. 내 private IP 주소는 IPV4 주소(172.30.1.72)이고, 공유기의 private IP 주소는 IPV4 기본 게이트웨이(172.30.1.254)이다.
WAN IP 주소는 다음과 같이 MY IP 찾기를 통해 알 수 있다.(우리는 Public IP 주소로 해당 사이트를 접속하기 때문)
지금까지 우리는 우리의 컴퓨터를 클라이언트로 사용했을 때만을 살펴봤다.
하지만 IP 주소만으로 우리 컴퓨터를 서버로 사용하지는 못한다! (Public IP 주소만으로 어떤 노드인지 알 수 없기 때문)
PORT(포트)는 애플리케이션 상호 구분을 위해 사용하는 번호로, IP 주소가 가르키는 PC에 접속할 수 있는 통로를 의미한다.
0~1023 포트번호는 예약된 포트로, 사용하면 안된다.
우리가 컴퓨터에 웹 서버를 깔면, 해당 웹 서버는 기본적으로 80번 포트에 연결되도록 약속되어 있다. (기본적으로 톰캣의 포트 번호는 8080이다)
포트번호는 IP주소와 함께 쓰여 해당하는 프로토콜에 의해 사용된다.
(80 포트번호는 웹 서버로 잘 알려진 포트번호이므로 생략 가능하지만, 8080 포트번호는 생략할 수 없다.)
포트 포워딩이란 공유기의 포트를 통해 공유기와 연결된 기기들의 특정 포트에 진입할 수 있게 하는 기능이다.
그냥 공유기 주소 + 포트 번호를 입력한다면 공유기의 어느 기기 포트로 들어가야하는지 알 수 없다. 따라서 포트 포워딩은 공유기에 연결된 기기의 특정 번호를 통해 전달(forwarding) 해주는 것이라고 이해할 수 있다.
*EC2 인스턴스는 AWS에 의해 고유한 공인 IP 주소를 할당받으므로 포트포워딩이 필요하지 않다.