정보보호론/네트워크 보안

IP 패킷, MAC 프레임 구조

retro_blue 2020. 9. 13. 20:51
반응형

■ IPv4 패킷 구조

 

1) IPv4 패킷의 헤더 형식

 - IPv4의 헤더는 13개의 필드로 구성

 - IP option 필드를 제외하고 12개는 필수적으로 사용하며 길이는 20바이트

 - IPv4는 1980년대 초반에 만들어진 프로토콜이다보니 사용하지 않아도 되는 필드들도 정의되어 있어 비효율적

 

출처 : https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%ED%8C%A8%ED%82%B7#cite_note-2

 

2) 각 필드 설명

 

 ① Version (버전 숫자) : IP 프로토콜의 버전을 정의한다. IPv4는 4의 값을 가진다

 ② HLEN (Header Length : 헤더 길이)

    - 패킷 헤더의 전체 길이를 4바이트 단위로 표시한다

    - 헤더의 전체 바이트 수는 헤더 길이에 4를 곱하여 구한다

 ③ TOS (Type of Service : 서비스 유형)

    - 서비스 품질에 따라 패킷의 등급을 구분한다. 높은 값을 우선처리하게 된다

    - 8비트로 구성된 필드로서 앞의 3비트는 우선순위를 결정하는 비트이고, 뒤의 5비트는 서비스 유형을 나타내는 비트

 ④ Total Length (전체 길이) : 헤더+데이터의 크기, 즉 패킷의 전체 길이를 나타내주는 필드이다

 ⑤ Identification (식별자)

    - 모든 IP 패킷은 생성될 당시, 식별번호를 부여 받는다. 식별번호는 16비트 필드 안에 있는데, IP 패킷은 더 작은 조각난 패킷으로 분리되어 목적지에 전송되는 경우가 있다

    - 이것을 조각난 패킷, Fragment 패킷이라고 한다. 각각의 Fragment 패킷은 고유 번호가 같기 때문에, 전송된 패킷이 다른 전송된 패킷과 같은 식별자를 가진다면 같은 패킷에서 조각난 것을 알 수 있다

 ⑥ Flags (플래그 필드) : 3개의 비트로 이루어진 플래그이며, Fragment 패킷의 상태나 생성 여부를 결정하는 플래그이다

비트 의미
첫 비트 (예약된 비트) - 사용되지 않는다
두 번째 비트 (D 비트) - 단편화 여부를 나타낸다
- DF 0 : 단편화 가능 (라우터나 호스트가 IP 데이터그램을 분할 할 수 있다)
- DF 1 : 단편화 불가능 (Do not fragment), 즉 데이터그램을 분할하면 안된다는 의미
세 번째 비트 (M 비트) - 추가 단편화 비트 (more fragment bit)
- MF 0 : 마지막 프레임이라는 의미
- MF 1 : 분할 된 패킷의 경우 수신자 측에서 보면 들어올 단편 (Fragment)이 더 있다는 의미

 

 ⑦ Fragment offset (단편 옵셋) : 전체 패킷에서 해당 Fragment(단편)의 offset을 나타내며 8바이트 단위로 표기.

                                            즉, 단편의 옵셋이 100이면 800바이트에서 Fragment(단편)가 시작된다

 ⑧ TTL (Time To Live : 수명 필드)

    - IP 패킷이 라우터를 지나칠 때마다 라우터는 TTL 값을 1씩 감소한다

    - 그래서 TTL이 0이 되면, 패킷은 더 이상 전송하지 않고 폐기한다. 즉 TTL값이 0이 될 때까지 전송되지 않는 것은 전송할 수 없다고 생각하고 패킷을 버리게 된다

 ⑨ Protocol (프로토콜 타입 필드) : IP층의 서비스를 사용하는 상위 계층 프로토콜에서 부여된 번호

Protocol Number Protocol Type
1 ICMP (Internet Control Message Protocol)
2 IGMP (Internet Group Management Protocol)
6 TCP (Transmission Control Protocol)
17 UDP (User Datagram Protocol)

 

 ⑩ Header Checksum (헤더 검사 합)

    - IP 헤더가 생성되거나 수정될 때마다 IP 헤더 내 비트를 검사한다. IP 패킷이 전송되고 계산 결과가 똑같이 나타난다면, IP 헤더의 모든 비트는 정확하게 전송된 것이다

    - 결과가 다르게 나타나면, 이는 전송 중에 IP 패킷의 일부가 손상되거나 조작되었다는 것을 의미

 ⑪ Source Address/Destination Address (송/수신자 IP Address)

    - 각각 32비트로 이루어진 필드로, IP의 시작 발신주소와 도착주소가 기록되는 필드로서, 주소의 개수는 32비트 주소를 정의하며 약 43억 개의 주소가 있다

 

☆ IPv4의 문제점

  - 네트워크 아이디와 호스트 아이디를 가지고 A, B, C, D, E와 같이 나누어져 있어 주소 공간의 사용이 비효율적이다

  - 실시간 멀티미디어 정보의 QoS 지원이 어렵다

  - 보안의 방법을 고려하지 않은 설계로 해킹 등의 공격에 취약하다

  - 주소 부족 문제 해결을 위해 한정된 IP주소를 다수의 호스트가 사용하는 NAT (Network Address Translation) 또는 DHCP (Dynamic Host Configuration Protocol) 방법 사용 (IPv4의 근본적인 한계와 성능 저하 문제를 극복하지는 못함)

 

■ IPv6

 - 현재 인터넷의 폭발적인 확산으로 인해 32bit로 구성된 IPv4 주소 고갈 위기로 128비트 주소체계인 IPv6으로 전환이 요구되고 있다

 - IPv6은 차세대 인터넷이 요구하는 보안, 서비스 품질 보장, 멀티캐스트, 이동성 지원 등 새로운 요구사항들에 대한 지원이 용이하여, 앞으로의 인터넷을 한 단계 발전시키는 데 많은 공헌을 할 것으로 예상됨

 

1) IPv6 표현 방식

 - 128bit 중 앞의 64bit를 네트워크 주소, 64bit를 네트워크 인터페이스 주소로 활용한다

 - IPv6은 128비트를 16비트로 나누고, 이 16비트를 다시 4자리의 16진수로 표시하고 16진수로 표기된 것은 콜론(:)으로 구분한다

  (ex, 2001:2ba8:11bb:1211:0000:0000:0000:abba)

 - 각 필드에서 앞에 오는 0은 생략 가능

  (ex, FBBE:00C2:0001:00AA:DDEE:FEFE:EEFF:00CC → FBBE:C@:1:AA:DDEE:FEFE:EEFF:CC)

 - 0으로만 필드가 구성되어 있을 경우 그 필드를 생략하고 ::으로 표현 가능

  (ex, FAEE:0000:0000:0000:DDEE:EEFF:FFEE:23AA → FAEE::DDEE:EEFF:FFEE:23AA (단, 생략은 한 번만 할 수 있음)

      FAEE:0000:0000:0000:DDEE:EEFF:0000:23AA → FAEE::DDEE:EEFF:0000:23AA

                                                               → FAEE:0000:0000:0000:DDEE:EEFF::23AA

 - IPv4와 IPv6 동시에 표현 가능 : 하위 32비트를 IPv4 형식으로 표기

  (ex, FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:203.100.213.121)

 

 

■ IPv6 패킷구조

 ① VER (버전숫자)

   - IP 프로토콜의 버전을 정의한다. IPv6은 6의 값을 가진다

 ② Traffice class (트래픽 분류)

   - 8비트 트래픽 분류 필드는 IPv4의 서비스 유형 필드와 유사하다

   - IP 패킷마다 서로 다른 서비스 요구사항을 구분하기 위함이다

 ③ Flow label (흐름 레이블)

   - 20비트 필드로 데이터의 특정한 흐름을 위한 특별한 처리를 제공한다

 ④ Payload length (페이로드 길이)

   - 2바이트의 페이로드 길이 필드는 기본 헤더를 제외한 IP 패킷의 길이를 정의한다

   - IPv4에서는 헤더 길이 필드와 전체 길이 필드의 2개의 필드가 있지만, IPv6은 기본 헤더의 길이가 40바이트로 고정되어 있어 페이로드의 길이만 정의하면 된다

 ⑤ Next header (다음 헤더)

   - 기본 헤더 다음에 위치하는 확장 헤더의 종류를 표시하며 IPv4의 프로토콜과 같은 역할을 한다

 ⑥ Hop limit (홉 제한)

   - IPv4의 TTL 필드와 같은 목적으로 사용된다

 ⑦ Source IP Address (근원지 주소)

   - 송신자 주소 필드는 128비트 인터넷 주소이다

 ⑧ Destination IP address (목적지 주소)

   - 수신자 주소 필드는 128비트 인터넷 주소이다

 

 

■ IPv6 기능

 ⓐ 헤더 포맷의 단순화

   - IPv4에서 자주 사용하지 않는 헤더 필드를 제거하고 추가적으로 필요한 기능은 확장 헤더를 사용하여 수행한다

   - IPv6의 기본 헤더는 40바이트로 고정하고 단순한 몇 개의 필드로만 구성된다

   - 헤더 필드의 단순화는 라우터에서 헤더를 분석하는 부하의 감소와 패킷 처리 속도의 향상을 의미한다

   - 체크섬 필드를 제거하여 매번 헤더 체크섬 필드를 다시 계산해야 하는 오버헤드를 줄인다

 ⓑ 향상된 서비스의 지원

   - Flow Label 필드를 통하여 응용서비스에 따라 차별화 된 QoS를 제공한다

   - 화상이나 음성과 같이 시간 지연에 민감한 데이터, 그리고 메일 전송과 같이 시간에 덜 민감한 데이터 등을 특성에 맞게 분류 및 처리한다

 ⓒ 보안과 개인 보호에 대한 기능

   - IPv4에는 보안 기능이 포함되어 있지 않기 때문에 IPSec(Internet Protocol Security)이라는 보안 관련 프로토콜을 별도 설치가 필요하다. 하지만 IPv6에서는 보안과 관련된 인증절차, 데이터 무결성 보호, 선택적인 메시지 발신자 확인 기능 등을 프로토콜 차원에서 지원한다

   - IPv6에서는 확장 헤더를 이용하여 종단 간 암호화 기능을 지원하기 때문에 패킷에 대한 변조를 방지한다

 ⓓ 자동 주소 설정

   - 자동 주소 생성은 라우터가 제공하는 네트워크 prefix 정보와 MAC(Media Access Control) 주소를 사용한다 

 ⓔ 브로드캐스트가 멀티캐스트로 대체됨 (애니캐스트 추가)

   - 애니캐스트란 유니캐스트와 비슷하나 적절한 라우팅 토폴로지를 통해 주소로 식별되는 가장 가까운 이웃 라우터로 전송한다

   - IPv6은 유니캐스트, 애니캐스트, 멀티캐스트 전송 방식을 적용한다

 ⓕ 이동성 지원에 관한 기능이 내장 (MIPv6)

 ⓖ Aggregation (집합)이 가능

   - IPv6의 헤더에 있는 Flow Label을 통해 같은 방향으로 이동하는 패킷을 묶어서 한꺼번에 보냄으로써 트래픽을 감소시킬 수 있다

 

 

★ 특징

 - 128비트로 늘어난 주소 공간으로 IP주소 공간의 부족을 해결할 수 있다

 - IPv6은 16진수로 표기된다

 - 보안과 인증확장 헤더를 사용한다

 - 주소의 선택사항 부분을 기본 헤더에서 분리하여 필요할 때 기능을 추가할 수 있다

 - 선택사항 부분의 분리로 인하여 라우팅 처리가 간단해지고 고속화 됐다

 - 자원할당의 지원으로 TOS 필드가 없어지고 흐름 표지 (Flow Label)라 부르는 방법이 추가되어 실시간 트래픽 지원이 더욱 용이해졌다

 

 

□ IPv4와 IPv6의 헤더 구조 비교

 - IPv4 필드의 Header Length, Header Checksum이 삭제되었다

 - IPv6에서 IPv4의 Header Length 삭제 이유는 IPv4에서는 헤더길이가 가변이였으나 IPv6에서는 헤더길이가 고정이 되었다. 그래서 IPv4에서 필요한 Header Length 필드는 IPv6에서는 필요없게 되었다

 

항목 IPv4 IPv6
주소 크기 32비트 128비트
사용가능 주소 43억 43억 x 43억 x 43억 x 43억
헤더 포맷 복잡 간단하며 확장헤더 사용
이동환경 불가능 Mobile IP 지원
보안성 미흡 (IPsec 별도 설치) IPsec 기본 탑재
QoS 어려움 용이함
라우팅 규모 조정 불가능 규모 조정 가능
Flow Label 지원하지 못함 지원
주소 자동설정 DHCP 서버 필요 가능
웹캐스팅 곤란 가능

 - 웹캐스팅 (Web Casting) : 요약 사용자가 컴퓨터를 사용하지 않는 동안에도 개인의 요구에 맞추어 선택된 정보를 받아 두었다가 화면 보호기가 작동될 때 이를 보여 주는 기술

 - IPsec : IPsec은 차세대 IP인 IPv6 기본 탑재되어 향후 IPv6이 사용되어도 호환성을 유지할 수 있는 장점이 있는 보안 프로토콜이다

 

 

■ MAC 프레임의 구조

 - 상위 계층인 LLC에서 내려온 프레임을 상대 호스트에 전송하려면 MAC 계층에서 정의된 프레임 구조에 맞게 포장해야 한다

 - MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것을 MAC 프레임(MAC Frame)이라고 하며, 이더넷 프로토콜에서는 이더넷 프레임이라고 한다. MAC 프레임은 LLC 계층에서 보낸 모든 정보를 전송 데이터로 취급하며, 데이터의 앞에는 헤더가, 뒤에는 트레일러가 위치한다

 

* Ethernet Frame

 - 필드의 크기 단위는 바이트. Source Address와 Destination Address 필드는 2바이트나 6바이트 중 선택할 수 있으며, Data와 Pad 필드는 가변 길이를 지원한다

 - 이더넷 프레임의 Data 필드 왼쪽이 위치한 필드는 헤더에 속하고, 오른쪽은 트레일러에 속한다.

 

  ⓐPreamble (프리엠블)

    - 7바이트 크기

    - 수신 호스트와 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적

    - 각 바이트는 10101010비트 패턴을 포함한다

  ⓑ Start Frame Delimite (SFD : 시작 구분자)

    - 프레임의 시작 위치

    - Preamble 필드와 구분해 값이 11이다

  ⓒ Source Address/Destination Address (송신 호스트 주소/수신 호스트 주소)

    - MAC 계층에서는 호스트를 구분하는 고유의 MAC 주소를 사용

    - 주소 값은 일반적으로 LAN카드에 내장되어 제공됨

    - 두 필드는 전송되는 프레임의 송신 호스트와 수신 호스트 주소를 표현한다

    - 수신 호스트 주소는 최상위 비트가 1이면 그룹 주소를 의미하고, 0이면 일반 주소이다

    - 그룹 주소에는 특정 그룹에 속한 호스트에 프레임을 전송하는 멀티캐스팅과 네트워크에 연결되어 모든 호스트에 전송하는 브로드캐스팅이 있다

    - 브로드캐스팅에서는 주소부의 모든 비트가 1이다

    - 송신 호스트 주소에서 최상위 비트는 0으로 지정된다

    - 현재 구현되어 사용되는 이더넷 프로토콜은 모두 6바이트 주소를 지원한다

 ⓓ Length (길이)

    - Data 필드에 포함된 가변 길이의 전송 데이터 크기를 나타내며, 최대값은 1,500이다

 ⓔ Frame Checksum (FCS : 체크섬) : 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 송신 호스트가 값을 기록해준다

반응형

'정보보호론 > 네트워크 보안' 카테고리의 다른 글

TCP 세그먼트  (0) 2020.09.13
OSI 7 Layer와 TCP/IP  (0) 2020.09.12
네트워크 개요  (0) 2020.09.12