호스트가 네트워크 상에서 다른 호스트와 논리적으로 연결되기 위해서는 "IP 주소"가 필요하다.
논리적으로 연결된다는 말은, LAN선, 케이블 등으로 물리적으로 연결되는 것이 아니라 네트워크 상에서 논리적인 매개체를 이용하여 각 호스트끼리 연결되는 것을 의미한다.
즉, IP 주소란 인터넷 상에서 호스트의 위치를 의미하는 개념이자
호스트가 네트워크 상에서 다른 호스트와 논리적으로 연결될 수 있도록 해주는 매개체인 것이다.
택배로 물건을 주문하고 배송받는 과정을 한번 생각해보자.
물건을 주문할 때 배송지 주소를 입력하면 내가 원하는 배송지로 물건을 배송을 해달라는 요청을 하게되고, 며칠 후 배송이 시작되었을 때 택배기사님이 배송지 주소를 확인해서 해당 주소지까지 물건을 배송하게 된다.
여기서 내가 주문한 물건을 "데이터"로, 배송지 주소는 호스트의 "IP 주소"로 치환하여 다시 생각해보면 IP 주소가 무엇인지 쉽게 이해할 수 있을 것이다.
현재 사용되고 있는 IP버전은 IPv4버전으로, 8비트 * 4 = 32비트로 표현된 IP주소를 이용한다.
2^32 = 약 40억이므로 IPv4 버전에서는 대략 40억개 정도의 IP를 각각의 호스트에 부여할 수 있다.
그래서 IP 주소라고 하면 IPv4 주소라고 이해하면 된다.
IP 주소는 네트워크 주소와 호스트 주소로 구분되어 있고,
IP를 분배하는 방법은 Classful 방식과 Classless 방식이 있다.
특수 목적을 위해 일반적인 호스트에 부여되지 않고 이용되는 IP 주소도 있는데
그 IP들의 리스트는 다음과 같다.
