<Docker> 네트워크 기본
# 네트워크
네트워크란 쉽게 말해 PC 등의 기기 간 정보를 주고받을 수 있는 통신망을 말한다.
각 PC나 태블릿, 핸드폰 같은 기기는 고유의 IP 주소를 갖고있으며, 특정 IP -> 특정 IP로 정보를 보내 통신하는 것이다.
집과 편지에 비유하면, 집주소가 IP주소, 편지가 정보가 된다.
# IP
IP주소는 공인, 사설 IP로 구분된다.
공인 IP주소는 전세계가 함께 사용하는 주소이며, 8바이트 4자리 숫자로 구성되어있다. (ex 192.148.10.0)
우리가 흔히 인터넷 이라고 부르는 네트워크는, 각자의 집이나 회사에서 공인 IP주소를 할당받아 외부와 통신하는 것이다.
하지만 공인 IP주소는 사용해야할 기기 대비 갯수가 부족할 수밖에 없고, 그래서 등장한 것이 사설 IP이다.
사설 IP는 할당받은 공인 IP주소 아래에서만 작동하는 별도의 IP주소다.
즉, 사설 IP는 할당받은 공인 IP주소를 논리적으로 잘개 쪼개어 각각의 기기에 할당해주는 주소라고 보면 된다.
# 아키텍처
아래는 일반적인 기업의 간단한 공인망과 사설망 아키텍처인데,
라우터는 사설 IP를 각 서버(PC 또는 태블릿 등 기기)에 배분하는 역할을 한다.
그림을 보면, 외부와 통신하는 IP는 공인 IP가 유일하다.
외부서버와 사설 서버가 통신하기 위해서는 중간 다리인 기업의 공인IP를 거쳐야 한다.
자세히 설명하진 않겠지만, 이 때 사용하는 기술이 NAT와 포트포워딩이며,
기업 내 각 서버에 포트를 지정함으로써 구현되는 기술이다.
이처럼 공인 IP는 전세계 네트워크망에서 각각 고유한 주소를 갖고 있으며,
공인망과 사설망을 집에 비유하면 공인IP주소는 전세게에서 유니크한 집주소가 되는 것이고,
사설 IP주소는 그 집 내부에 있는 방 번호가 되는 것이다.