컴퓨터 네트워크 수업을 수강하며 소켓프로그래밍 실습을 하였다.
TCP / UDP 방식을 통해 간단하게 데이터 패킷을 송수신하는 프로그램을 만들었다.
이 때 IP를 입력하여 데이터 패킷을 전송하는데, 이때 의문이 생겼다.
평소에 ip주소는 공유기내에서는 같다고 알고 있었는데, 같은 네트워크 상에서는 어떻게 통신을 할까?
답의 시작은 우리가 통상적으로 쓰이는 ip주소는 2개로 나뉜다는 것 이었다.
공인ip와 사설ip로 나뉜다.
1. 공인 IP (Public IP)
인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다.
공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.
- 공인 IP는 전세계에서 유일한 IP 주소를 갖는다
- 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다.
2. 사설 IP (Private IP)
일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이다.
- IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.
3. 사설 IP와 공인 IP의 차이
💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.
🌏➡💻 : 인터넷에서 오는 데이터 패킷의 목적지도 해당하는 사설 IP로 변경한 후 개인 스마트폰 혹은 PC에 전송한다.
내가 실습했던 UDP와 TCP 프로그램은 같은 네트워크 상에서, 즉 사설 IP로 통신하는 프로그램이었다.
따라서 같은 네트워크 상에서 다른 기기들은 공인 IP가 같을지라도, 각각 고유의 사설 IP를 부여 받기 떄문에, 무리없이 통신이 가능했던 것이었다.
4. 고정 IP와 유동 IP
고정 IP란?
- 컴퓨터에 고정적으로 IP가 한번 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 IP 주소를 말한다.
유동 IP란?
- 장비에 고정적으로 IP를 부여하지 않고 컴퓨터를 사용할 때 남아 있는 IP 중에서 돌아가면서 부여하는 IP를 뜻한다.
인터넷 상에서 서버를 운영하고자 할 때는 공인 IP를 고정 IP로 부여해야 한다는 것이 중요하다. 즉, 공인 IP를 부여받지 못하면 다른 사람이 내 서버에 접속할 수가 없고, 고정 IP를 부여하지 않으면 내 서버가 아닌 다른 사람의 서버로 접속이 될 수도 있기 때문이다.
반면에 우리가 집에서 사용하는 인터넷 서비스 업체는 각 가정마다 공인 IP를 유동 IP로 부여하고, 공유기 내부에서는 사설 IP를 유동 IP로 부여하는 것이 일반적이라고 보면 될 것이다.