IP는 Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜을 의미한다. IP에서 IP 기기의 주소를 나타내는 것이 바로 IP주소이다. 흔히 우리가 사용하는 IP는 이 IP주소를 의미한다.
우편배달을 예로 들자면 IP주소는 배달 주소를 나타내게 된다. 즉 IP주소를 사용하는 이유는 각각의 host들을 구분하여 데이터를 정확하게 송수신하기 위해서이다.
IP는 컴퓨터 주소가 아니라 LAN Card에 연결되어 있는 회선의 주소를 말한다. 즉 IP는 고정되어 있는 것이 아니라 인터넷망에 접속할 때마다 달라진다.
MAC 주소는 LAN Card의 주소를 말한다. 네트워크 상에서 서로를 구분하기 위하여 Device 마다 할당된 물리적인 주소이다.
인터넷이 가능한 장비(PC, 휴대폰 등)들이 가지고 있는 물리적인 주소이고 고정되어 있는 주소이기 때문에 특별한 조작이 없으면 달라지지 않는다.
IPv4는 3자리 숫자가 4마디로 표기되는방식이다. 각 마디는 옥텟(octet)이라고 부른다. 위 주소는 내부적으로 32비트(각 마디당 8bit)로 처리된다. 예를 들어 192.168.123.123은 11000000.10101000.1111011.1111011으로 표시된다.
IPv4는 한 옥탯당 256개(2^8)의 수를 나타낼 수 있어 256^4 = 4,294,967,296 개의 주소를 만들 수 있다. 약 42억 개의 IP를 각각의 컴퓨터에 할당할 수 있는 것이다. 하지만 인터넷 환경이 발달함에 따라 상당히 많은 수의 IP주소가 필요해져 IPv4 주소 체계로는 IP주소를 할당하기가 어려워졌다. 따라서 새로운 주소 체계인 IPv6가 나오게 되었다.
IPv4 주소는 prefix와 suffix로 나뉜다.
32 bit주소 중 앞 부분은 prefix, 나머지 부분이 suffix이다.
prefix는 Network를 판별하기 위한 Network ID로 사용되며 suffix는 Host를 구분하기 위한 Host ID로 사용된다.
서브넷 마스크는 IP 주소 중에서 network 부분을 구분해주는 비트이다. 특정 주소를 서브넷마스크와 AND 연산을 수행하면 네트워크 주소를 얻을 수 있다.
IP 주소는 대역에 따라 A,B,C,D,E 클래스로 나뉜다. 이 클래스들을 구분함으로써 클래스 내에서 Network ID와 Host ID를 구분하게 된다.
CIDR는 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한 최신의 IP 주소 할당 방법이다. CIDR는 기존의 IP 주소 할당 방식이었던 네트워크 클래스를 대체하였다. CIDR는 IP 주소의 영역을 여러 네트워크 영역으로 나눌 때 기존 방식에 비해 유연성을 더해 준다.
IPv4 를 표기할때 192.168.0.0/12 와 같은 방법으로 표기하는 경우가 있다.
IP는 마침표로 구분되는 4개의 영역을 가지며 각각의 영역을 옥텟(Octect)이라고 한다.
1개의 옥텟은 1byte의 크기를 가지며 0~255까지 표현이 가능하다. (총 4byte, 0.0.0.0 ~ 255.255.255.255)
IP는 Net ID와 Host ID로 나누어 사용한다.
CIDR은 IP/(subnet bit 수)와 같이 IP 주소 뒤에 subnet bit 로 표시하며 1.1.1.1/24의 경우 앞의 24자리는 1, 나머지 8자리는 0으로 표시하는 subnet과 동일하다.
Subnet mask 표기법 | CIDR 표기법 | IP 주소 범위 |
---|---|---|
1.1.1.1 (255.255.255.255) | 1.1.1.1/32 (11111111.11111111.11111111.11111111) | 1.1.1.1 |
1.1.1.1 (255.255.255.0) | 1.1.1.1/24 (11111111.11111111.11111111.00000000) | 1.1.1.0 ~ 1.1.1.255 |
1.1.1.1 (255.255.0.0) | 1.1.1.1/16 (11111111.11111111.00000000.00000000) | 1.1.0.0 ~ 1.1.255.255 |
1.1.1.1 (0.0.0.0) | 1.1.1.1/0 (00000000.00000000.00000000.00000000) | 0.0.0.0 ~ 255.255.255.255 |
ICMPv4는 IP 프로토콜의 오류 보고와 수정 및 호스트나 라우터의 동작 여부를 확인하기 위한 프로토콜이다.
IP는 신뢰성이 없는 프로토콜이기 때문에 오류 보고가 중요하다.
ICMP는 에러를 올바르게 수정하는 것이 아니고 탐지하고 보고만 한다.
ICMP는 다음과 같은 상황에서는 생성되지 않는다.