[Network] 3 계층 (Network) (2)

2020. 1. 18. 22:32Network

1. IP 정의
   : OSI 7 계층에서 3계층에 해당하는 Protocol
   : Packet을 지정된 목적지 Network까지 전달하는 역할을 담당
   : 비연결지향적, 비신뢰성, 종단간 연결 보장
   : IP 주소에 따라 Network간 전송경로를 제어
   : 필요에 따라 단편화(Fragment) 작업을 수행
   : Router가 연결하고 있는 MTU 차이, PC에서 4계층을 통과하지 못하고 MTU 크기를 초과할 때(ICMP) 단편화 수행

2. IP Header
   : Header의 크기는 Option Field의 크기에 따라 가변적 (최소 20Byte - 최대 60Byte)

전체적인 IP Header 구조


IP Header 첫 번째 (0 - 4Byte Field)

   1) Version (4 Bit)
      : IP Version 정보 (IPv4 Header의 Version Field는 항상 4로 고정, IPv6는 개발되면서 별도의 프로토콜을 발표)

   2) IHL (4 Bit)
      : IP Header Length의 약어로 가변적인 IP Header의 크기를 명시
      : 4개의 Bit로 표현되고, 4Byte단위로 표시됨 (최대 길이 60Byte)

   3) Different Service (1 Byte)
      : 데이터의 우선순위를 표시 (Router에서 우선순위를 확인하고 Routing 수행)
      : D - 지연, T - 처리율, R - 신뢰성

   4) Total Length (2 Byte)
      : IP Packet의 전체 크기 (IP Header + Payload)
      : IP Packet의 전체 크기는 MTU 값을 가짐


IP Header 두 번째 (5 - 8Byte Field)

   5) Identification (2 Byte)
      : IP 계층에서 단편화(Fragmentation)가 수행 되기 전 원본 데이터의 식별 값
      : 단편화가 되어진 모든 데이터는 동일한 Identification 값을 지니거나 1이 증가한 값
      : 통신의 시작 데이터는 무작위의 값으로 할당되며 연속된 통신의 다음 데이터는 +1 증가한 값을 할당 받음

   6) IP Flags (3 Bit)
      : 단편화 유무를 체크하기 위한 Field
      : X - 사용하지 않는 Bit
      : D - Don't Fragment로 단편화를 할 수 있는 경우 0이며 할 수 없는 경우 1
      : M - More Fragment로 단편화된 마지막 조각이면 0이며 추가의 조각이 있는 경우 1

   7) Fragment Offset (13 Bit)
      : 단편화된 데이터의 순서를 나타내기 위한 Field
      : IP Header를 제외한 Payload의 시작 크기 값을 순서 번호로 사용
         A. Payload의 크기가 2000Byte인 경우 최대 1500을 넘게 됨
            - 2000Byte → 1480Byte(헤더값 제외), 520Byte로 단편화하여 데이터 전송


IP Header 세 번째 (9 - 12Byte Field)

   8) Time To Live (1 Byte)
      : Network 환경에서 Packet이 생존할 수 있는 시간 (통과할 수 있는 최대 Router 수)
      : Router가 데이터를 내보낼 때 TTL 값이 1씩 감소하며 TTL 값이 0이 되는 장비에서 Packet 폐기
      : Looping 현상을 방지하기 위해 사용
      : 초기 Default TTL 값은 운영체제 종류에 따라 달라짐 (Window - 128, Linux/Unix - 64, 기타 - 255)

   9) Protocol (1 Byte)
      : Payload에 포함된 상위계층의 Protocol (ICMP, UDP, TCP, ...)

   10) Header Checksum (2 Byte)
      : IP Header의 오류나 위변조여부를 확인하기 위한 값으로 Header를 word 단위(2Byte)로 Checksum


IP Header 네 번째 (13 - 20Byte Field)

   11) Source IP / Destination IP Address (4 Byte)
      : 출발지, 목적지 IP 주소


IP Header 다섯 번째 (Variable Field)

   12) Options (0 - 40 Byte)
      : Network Testing이나 Debugging에 사용
      : Option 필드가 사용된 경우 IP Header의 전체 크기가 32Bit 단위가 되지 않으면 폐기 되므로 Padding값을 부여
      : IP Packet을 제어 및 관리하기 위한 추가 정보
         A. Source Routing
            - 출발지 경로 지정
         B. Traceroute
            - 패킷 전송 경로 확인
         C. Security
            - IP Packet의 보안 등급 지정

3. IP Header 동작 과정

IP Header 동작 과정


   실습 1)
      : Ping 데이터 크기 조정하여 전송 (Fragment 단편화 확인)

ping -l 3000 [IP 주소]

3000크기의 Ping을 전송시 1480, 1480, 48 Byte씩 단편화되어 보내지는것을 확인

   실습 2)
      : Ping TTL 값을 조정하여 전송 (TTL 값 감소 확인)

ping -i 1 [IP 주소]

728x90

'Network' 카테고리의 다른 글

[Network] 3 계층 (Network) (4)  (0) 2020.01.19
[Network] 3 계층 (Network) (3)  (0) 2020.01.19
[Network] 3 계층 (Network) (1)  (0) 2020.01.18
[Network] 2 계층 (Data Link) (2)  (0) 2020.01.18