인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보의 규약(프로토콜[약속과 같은 것])이며,
OSI 네트워크 계층에서 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당한다.

ver (version number): IP 프로토콜의 버전번호로, IPv4의 주소체계 혹은 IPv6의 주소체계 중 어떤 버전을 사용하는지 명시head length : header의 길이(bytes)type of service : IP 데이터의 타입 (거의 사용하지 않음)length : 전체 데이터의 길이16-bit identifier, flags, fragment offset : 단편화(fragmentation)와 재결합(reassembly)를 위해 사용time to live (TTL) : 데이터가 건너갈 수 있는 남아있는 hop 의 수upper layer : 전송(transport) 계층의 프로토콜 표시 (TCP 또는 UDP), 혹은 ICMP 프로토콜checksum : 받은 데이터에 에러가 있는지 검출하기 위해 사용source IP address, destination IP address : 출발지와 목적지의 IP 주소options : 추가적인 정보 기록data : 전송 계층에서 내려온 데이터(payload)그래서 이러한 IP 프로토콜의 한계를 보완한 프로토콜이 TCP 프로토콜이다.
IP주소는 네트워크ID와 호스트ID로 나누어 질 수 있는데,
네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크 크기를
조정할 수 있다. 이런 네트워크 크기를 클래스라는 개념으로 구분한다.
💡 A Class / B Class / C Class / D Class / E Class
| IP 주소 | 네트워크 비트 | 네트워크 | 호스트 | ||
|---|---|---|---|---|---|
| A Class | 0~127 | 0 | 8 bit | 24 bit | 대규모 네트워크 |
| B Class | 128~191 | 10 | 16 bit | 16 bit | 중간규모 네트워크 |
| C Class | 192~223 | 110 | 24 bit | 8 bit | 소규모 네트워크 |
| D Class | 224~239 | 1110 | 멀티캐스트 (1:M) - 여러 명에게 전송 | ||
| E Class | 240~255 | 1111 | Reserved |
예시)
192.168.10.10 → 11000000.10101000.00001010.00001010
네트워크 주소는 11000000.10101000.00001010 이 되고, 나머지 빨간 부분인 00001010은 호스트 주소가 된다.
서브넷 마스크의 형태는 IP주소와 똑같이 32bit의 2진수로 되어있으며, 8bit(1byte)마다, .(dot)으로 구분하고 있다.
혹시 IP주소 뒤에 /24 같은 것들이 붙어 있다. 이는 Prefix(접두어)로 서브넷 마스크의 bit 수를 의미한다. (CIDR (Classless Inter-Domain Routing))
서브넷팅 : IP주소 낭비를 방지하기 위한 원본 네트워크를 여러 개의 네트워크로 분리하는 과정(자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)을 말한다.
예시)
192.168.32.0/24 라는 네트워크 주소 하나를 25개씩의 호스트가 있는 각각의 네트워크로 분할
| ip Address | Subnet mask |
|---|---|
| 192.168.32.0 | 255.255.255.0 |
| 11000000.10101000.00100000.00000000 | 11111111.11111111.11111111.00000000 |