본문 바로가기
CS/Network

5-4. 네트워크 계층과 라우팅 : 인터넷 계층 프로토콜

by pizzz 2022. 12. 27.

인터넷 계층 프로토콜

 

IP(Internet Protocol)

  • IP는 데이터 단위를 송신 호스트에서 목적지 호스트로 전달
  • 각 호스트와 라우터에서 동작
  • 데이터 단위 : IP 데이타 그램 또는 패킷
  • 비연결 데이터 전달 서비스(Connectionless, 데이터 전달하기 전에 연결 설정 기능 없음) 제공
    • 흐름제어나 오류회복을 하지 않음
    • 발생가능한 오류
      • 손실된 IP데이타그램
      • 순서화 되지 않은 (out-of-sequence) IP데이타그램
      • 중복 IP데이타그램
  • IP : 신뢰성 있는 서비스 제공 불가
  • TCP : 오류들을 탐지해서 회복할 수 있는 기능을 책임 (신뢰성있는 서비스 제공)

 

IP 데이터그램 형식

 

버전 - 수신IP주소 = 헤더

  • 버전(Version)
    • IP의 현재 버전을 표시, 4비트(IPv4 = 0100, IPv6 = 0110) 크기
  • 헤더길이 (Header Length)
    • 헤더의 길이를 나타내는 4비트 필드, 4바이트 단위로 표현
      • 헤더 필드의 값이 5(0101)라고 한다면 헤더의 길이는 5x4바이트 = 20바이트
  • 서비스 타입 (Service Type)
    • 특정 서비스 품질(Quality of Servie) 기능을 제공하려고 고안된 8비트 필드
    • 각 비트는 0과 1의 값을 가질 수 있음 , 8비트 중  오직 한 비트만 1의 값을 가짐
    • 서비스 유형 : 지연, 처리량, 신뢰성, 비용 등
  • 데이터그램 길이 (Datagram Length)
    • 헤더와 데이터 길이를 합한 전체 길이 표시
  • ID(Identification), 플래그(Flag), 단편화 옵셋(Fragment Offset)
    • ID : 호스트가 송신한 각 IP 데이터그램을 식별
    • 플래그 : IP데이터그램이 단편화 되었고 마지막 단편화 패킷이 아니면 1, IP데이터그램이 단편화 되지 않았거나 마지막 단편화된 패킷이면 0
    • 단편화 옵셋 : IP payload의 옵셋 위치
  • TTL(Time to live)
    • IP데이터그램이 인터넷에서 존재할 수 있는 최대의 시간 (홉 수)
  • 프로토콜 (Protocol)
    • IP의 상위 계층 프로토콜(TCP,UDP)을 표시
  • 헤더 첵섬 (Header Checksum)
    • IP데이터그램 헤더의 오류 검출을 위해 사용
  • 송신 IP주소, 수신 IP주소 : 송신과 수신 호스트의 IP주소
  • 옵션 (Option) : 선택사항
  • PAD(Padding) 
    • 헤더 길이 필드가 4바이트 단위의 크기를 가지므로 PAD를 붙여 4바이트의 배수가 되게 함
  • 데이터
    • TCP 또는 UDP와 같이 상위 계층에서 제공된 데이터

 

IP패킷 분석

-> IP데이터그램의 헤더정보를 와이어샤크 프로토콜 분석기로 분석

 

IP 라우팅

라우팅은 IP의 가장 대표적인 기능으로 임의의 IP데이터그램이 송신 호스트에서 수신 호스트의 네트워크로 전달되는 경로를 결정

각 호스트는 같은 네트워크에 존재하는 호스트의 목록(IP주소, MAC주소)을 포함하는 ARP 캐시(Cache)를 관리하기 위해 ARP사용

- ARP의 역할 : 목적지 호스트의 IP주소로 대응하는 MAC주소를 알기 위해 사용

 

 

IP 라우팅 동작절차

 

- 두 개의 LAN이 라우터를 이용하여 연결된 네트워크 예시

  • 네트워크 관리자는 각각의 호스트에 IP주소(IP), 서브넷 마스크(SM), 게이트웨이 주소(DG) 값을 설정(MAC 주소는 LAN카드에 이미 내장)
  • 각 호스트는 하나의 NIC, 라우터는 두 개의 NIC

- 호스트에서 IP라우팅 할 때 두 가지 경우

1. 목적지가 같은 네트워크 내에 있는 경우 -> 바로 목적지 호스트에게 IP데이터그램 전달

2. 목적지가 다른 네트워크에 있는 경우 -> IP라우팅 기능을 사용하여 라우터에게 전달

 

- 각 호스트는 각각의 라우팅 테이블을 유지

- 라우팅 테이블은 적어도 하나의 default router(기본적인 라우터)의 주소를 포함 

 

 

ARP(Address Resolution Protocol) 

  • 계층 간의 주소 구조
    • IP계층 : IP주소
    • IP하위 계층 : MAC주소 (물리적 하드웨어 주소)
  • 임의의 호스트가 다른 호스트에 데이터를 전송하려면 수신 호스트의 IP주소 뿐만 아니라 MAC주소도 알아야 함
  • 응용 프로그램 사용자가 프로그램을 실행하는 과정에서 수신 호스트의 IP주소를 입력
  • IP주소로부터 수신 호스트의 MAC주소를 얻는 작업이 추가로 필요
  • ARP는 IP주소를 받아서 IP주소에 대응하는 MAC주소를 얻는 프로토콜
  • IP가 ARP사용

 

IP와 ARP 관계

  • IP는 IP 데이터그램을 전달할 필요가 있을 때 ARP 캐시 내에 목적지 IP주소를 검색
    • 만일 캐시가 그 IP주소에 대한 정보를 가지고 있다면 
      • 목적지 MAC주소를 조회하고 데이터그램을 목적지 호스트로 전달
    • 만일 캐시가 그 IP주소에 대한 정보를 가지고 있지 않으면
      • IP는 ARP를 실행

 

ARP 패킷 형식