[OSI 7 Layer] 네트워크 계층 - IP 프로토콜

2021. 3. 30. 03:31

* 아래의 책을 참고하여 공부한 내용입니다.

book.naver.com/bookdb/book_detail.nhn?bid=15813735

 

네트워크 공격패킷 분석

보안 관제, 보안 담당자, 보안 분석가 등 보안 현업에 종사하는 실무자를 위한 패킷 분석 기술서이다. 포트 스캔, DDoS 공격, 웹 해킹, 악성 코드 트래픽, 무선랜 해킹, 시스템 취약점 공격, 대용량

book.naver.com


네트워크 계층은 데이터를 전송하는 여러 경로 중에서 가장 안전하고 빠른 경로를 찾아주는 역할을 하는데, 이를 라우팅이라고 한다. 

 

네트워크 계층에서 운영되는 프로토콜은 IP, ICMP, ARP 세가지가 있는데, 이 중 IP 프로토콜에 대해 알아보자.

 


IP 프로토콜

IP 프로토콜에서 목적지 위치를 알려주는 고유한 32비트 주소값을 IP 주소라고 하는데, IP 주소는 네트워크 부분과 호스트로 구분된다.

 

하나의 IP 주소에서 네트워크와 호스트를 나누는 방법을 네트워크 클래스라고 한다. 

[출처] 한국인터넷정보센터

네트워크 1~126으로 시작하는 것을 A클래스, 네트워크 128.0 ~ 191.255 로 시작하는 것을 B클래스, 네트워크 192.0.0 ~ 233.255.255로 시작하는 것을 C클래스라고 한다. D클래스와 E클래스는 각각 멀티캐스트와 실험용으로 사용된다.

 


IP 헤더

IP 프로토콜을 헤더별로 구분하는데, IP 헤더의 구조는 아래와 같다. 

 

1) Version(4 bits) : IP의 버전을 저장한다. IPv4, IPv6이 있으며 일반적으로 IPv4를 이용한다.

 

2) Internet Header Length(4 bits) : 헤더의 길이 정보를 나타낸다.  32비트(4바이트) 워드 단위로 헤더 길이를 표시하며 최소 20바이트, 최대 60바이트까지 표현한다.

 

3) Type of Service(8 bits) : 서비스 종류 및 혼잡 알림을 나타낸다. DSCP 필드(6비트) + ECN 필드(2비트)로 구성되어 있다. DSCP는 IP 데이터그램이 라우터에서 어떻게 처리되어야 하는지 정의하고 있는 것을 의미하며, CS0~CS7 중 숫자가 커질수록 우선순위가 높다. ECN은 라우터가 패킷ㅇ르 즉각 폐기하지 않고 최종 노드에게 혼잡을 알린다.

 

4) Total Length(16 bits) : IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 바이트 단위로 길이를 표시한 것이다. 최대 65,535바이트(2의 16승-1)까지 사용할 수 있다. 

 

5) Identification(16 bits)

   - MTU(Maximum Transfer Unit) : 네트워크 기기가 전송할 수 있는 최대 전송 단위이다. 대부분 이더넷 환경의 1500바이트로 통용된다.

   - Fragmentation(단편화) : MTU 이상 크기의 데이터가 전송되면 MTU 크기에 맞춰서 패킷을 분할시키고, 이 때 분할된 패킷들은 같은 ID 값이 부여된다.

 

6) Flags : 단편화된 추가 패킷이 있는지 알려주는데, 수신 측에서는 이를 바탕으로 원래의 패킷으로 재조합한다. 0비트는 예약필드를 의미하며, 1비트에서 분할된 패킷이 없을 때 1로 표시된다. 2비트에서는 분할된 패킷이 더 있을 때 1, 분할된 패킷이 더 이상 존재하지 않을 때 0으로 표시된다.

 

7) Fragment offset : 분할되기 전 패킷들의 순서를 파악하기 위해 사용된다.

    - 첫번재 패킷 : 항상 0

    - 두번째 패킷 : 첫번째 보낸 데이터의 크기

    - 세번째 패킷 : 두번째까지 보낸 데이터의 크기

           :

 

8) Time to Live(TTL) : 패킷 수명을 제한하기 위해 데이터그램이 통과하는 최대의 홉(Hop) 수를 지정할 수 있다. 패킷을 전달할 때 라우터 등을 통과하면 TTL이 감소하는데 0이 될 경우 라우터에서 폐기하여 불필요한 패킷이 네트워크에 방치되는 것을 방지한다.

 

9) Protocol : IP 헤더에 올 상위 계층의 프로토콜을 지정하는 것으로, ICMP(1), TCP(6), UDP(17), GRE(47) 등이 있다.

 

10) Source Address : 송신자(출발지)의 IP 주소값

 

11) Destination Address : 수신자(목적지)의 IP 주소값

 

12) Header checksum : 헤더의 오류를 검증하기 위해 사용하며, 시작(version 필드)부터 끝(목적지 IP 필드)까지 모두 더한다. 이 때 체크섬 필드값은 제외하며, 만일 올림수가 발생하면 합산하여 계산한다. 더한 값을 2진수로 표기한 후 1의 보수화를 하면 체크섬 값이 나오고 이 값을 비교하여 에러 발생 여부를 확인한다.

 

13) Option + Padding : 헤더 정보에 추가 정보를 표시하고자 만들어졌지만 거의 사용하지 않는다.

BELATED ARTICLES

more