IP의 개념, 특성, 종류 등을 정리한 글
IP주소에 대해서 간단하게 설명하지만 서브넷팅등의 디테일한 개념은 들어가지 않음
오로지 IP 프로토콜을 다룬 글
개념 뿐만 아닌 IP 프로토콜의 패킷을 뜯어서 실습까지 진행
- 송신측과 수신측이 네트워크에서 데이터를 주고 받을 때 사용하는 프로토콜
- OSI 참조모델 3계층인 네트워크 계층에 해당
IP의 데이터그램(패킷)이 목적지에 성공적으로 도달한다는 것을 보장하지 않는다
-> 이 이유는 TCP와 같은 상위 계층에서 제공해야 함
IP 패킷에 대한 연결과정 설정과 연결유지 기능을 제공하지 않는다.
->이 이유도 위와 같이 TCP와 같은 상위 계층에서 3way handshake를 통해 연결 유지
각 네트워크상에 접속해 있는 노드의 주소 지정
-> 이를 통해 목적지를 지정해주는 역할을 함
목적지의 주소를 가지고 패킷을 전송하기 위해 최적의 경로를 설정(라우터)
- 인터넷 프로토콜(IP)을 사용하는 컴퓨터 네트워크에서 각 컴퓨터와 장치들을 식별하기 위해 사용되는 고유한 식별자
- ipv4, ipv6 두가지 종류가 있다.
xxx.xxx.xxx.xxx 구분점 기준 10진수 3자리로 표현되며, 2진수 8bit로 표현(32bit)
다만 42억개의 ip가 부족해 128비트 길이의 ipv6가 등장하게됨
일반적으로 IP헤더의 크기는 20byte (option 사용(선택사항)시 60byte)
현재 프로토콜 버전을 입력한다
만약 4라면 0100, 6이라면 0110
Option을 포함한 헤더의 길이를 나타낸다. 4비트 필드이기때문에 헤더의 길이 60바이트로 제한
패킷의 우선순위, 처리속도, 신뢰도 등과 같은 정보를 나타내는데 사용
최근에는 DSCPf를 사용
전체 길이를 바이트로 나타냄 (16bit) -> 패킷의 최대 크기는 2^16바이트
호스트가 보낸 패킷 식별
통신중에 한번에 보낼 수 있는 데이터의 양을 넘으면 패킷이 단편화된다.
만약 단편화되었다면 이 값을 통해 패킷을 합치게 된다(식별자)
3개의 비트로 구성
첫 비트는 사용하지 않으며 두번째 비트는 단편화금지비트 세번째비트는 단편화확인 비트
두번째비트는 만약 패킷이 분할되어있다면 0, 분할되어있지 않다면 1
세번째 비트는 자신이 마지막 패킷이면 0, 마지막 패킷이 아니면 1
ex)
010 -> 패킷이 분할되어 있지 않음
001 -> 패킷이 분할되어 있는데 마지막패킷아님
000 -> 패킷이 분할되어 있는데 마지막 패킷임
단편화된 조각들을 하나의 데이터그램으로 합칠때의 위치를 나타낸다
패킷이 경유할 수 있는 라우터의 수에 대한 상한 설정(라우터 지날때마다 1감소)
IP보다 상위 계층의 프로토콜을 의미 ex) TCP : 6, UDP : 17
출발지의 IP 주소값
도착지의 IP 주소값
해당 패킷을 보면 원래는 2진수지만 와이어샤크로 보여주기 쉽게하기 위해 16진수를 사용
45 => 8bit = 4 : ipv4 의미, 5 : 헤더의 길이 4 * 5 = 20byte
00 => TOS우선순위 일반적이라면 0
00 34 : total length = 52
00 00 : 식별자
40 00 : flag + fragment offset 0100 + 0 => 단편화되지 않은 패킷
36 => TTL 패킷이 경유할 수 있는 라우터는 54개
11 => 프로토콜이 17 즉 UDP를 가리킨다
fb 0f -> checksum 즉 ip헤더를 모두 더하면 FFFF가 나오게 됨
ac c9 19 ae : 수신지 주소(DA)
c0 a8 c2 79 : 송신지 주소(SA)