All Articles

컴퓨터 네트워크 강의 - 8장. 네트워크 계층 프로토콜 (3) 기타 네트워크 계층 프로토콜

8장. 네트워크 계층 프로토콜

(3) 기타 네트워크 계층 프로토콜

강의 목표

  • ARP/RARP의 필요성과 원리
  • ICMP와 IP 제어
  • IGMP와 멀티캐스트

ARP (Address Resolution Protocol)

  • IP 주소와 MAC 주소 사이의 변환 기능 수행
  • MAC 주소

    • 송신 호스트의 MAC 주소: 송신 호스트의 LAN 카드에서 얻을 수 있음
    • 수신 호스트의 MAC 주소: ARP 프로토콜이 제공
  • ARP 프로토콜

    • 특정 호스트의 IP 주소로부터 MAC 주소를 제공하는 프로토콜
    • ARP request라는 특수 패킷을 브로드캐스팅 = “IP 주소 A에 해당하는 하드웨어 주소를 알려주세요”라고 방송(브로드캐스팅)
    • IP 주소에 해당하는 호스트만 ARP reply로 MAC 주소를 회신
    • 과도한 트래픽 유발 방지를 위해 캐시 기능 제공
    • 사용 예

      • 일반 호스트: 같은 망에 엮인 하드웨어 -> 실제 MAC 주소 바로 전달
      • 라우터: 다른 망에 있는, 먼 하드웨어면 응답할 호스트가 없기 때문에 라우터가 대신 응답

RARP(Reverse Address Resolution Protocol)

  • 특정 호스트의 MAC 주소로부터 IP 주소를 제공하는 프로토콜

    • “내 하드웨어 주소(MAC 주소)는 이건데, 내 IP 알려줘”라고 방송
  • 하드디스크가 없는 시스템은 자신의 IP 주소를 알 수 없음

    • ROM에 기본 프로토콜만 존재
    • 서버에서 관련 정보를 받아 메모리에 저장
    • 예 - X 터미널: 입출력 장치는 있지만 하드가 없음

BOOTP와 DHCP

  • BOOTP(Bootstrap Protocol)

    • DHCP 전에 개발된 호스트 구성 프로토콜
    • 부팅 시 기본 설정값 설정
  • DHCP(Dynamic Host Configuration Protocol)

    • 동적으로 호스트 설정 가능
    • BOOTP 바탕으로 개선되어 BOOTP가 갖고있는 특정 제한 해결
  • BOOTP와 DHCP 유사점

    • 서버와 클라이언트 간에 메시지를 교환하는 데 사용하는 형식 구조

      • 거의 동일한 요청 메시지와 응답 메시지
    • 클라-서버 통신 포트로 잘 알려진 UDP 포트(67, 68) 사용
    • 구성 서비스의 필수적인 부분으로 IP 주소 배포

      • 시작하는 동안 IP 주소를 클라이언트에 할당
  • BOOTP와 DHCP 차이점 BOOTP와 DHCP 차이점

DHCP

DHCP 헤더

  • DHCP 헤더 구성

    • op

      • 1이면 BOOTREQUEST
      • 2면 BOOTREPLY
    • htype (hardware address type)
    • hlen (hardware address length)
    • hops

      • 클라이언트는 0으로 세팅
      • relay agents에게 선택적으로 사용됨
    • xid(Transaction IP)

      • 클라이언트가 임의의 숫자 선택
    • secs

      • 클라이언트가 쓰는 초단위 시간
      • 주소를 얻거나 갱신하기 위해 시작한 이후에 시간이 얼마나 지났는지 초단위로 표현
    • flags

      • B: Broadcast flag
    • ciaddr (Client IP address)
    • yiaddr (‘your’ (client) IP address)
    • siaddr (IP address of next server to use in bootstrap)

      • 부트스트랩에서 그 다음에 사용할 서버를 지칭하는 IP 주소
    • giaddr (Relay agent IP address)
    • sname (Optional server host name)
    • file (Boot file name)
    • options (Optional parameters field)
  • DHCP 기능

    • 설정 파라미터 저장소

      • 서버에서 관련 정보를 가지고 있다가 요청이 오면 확인할 수 있도록 해주는 역학
    • 네트워크 주소 동적 할당

      • 한정된 IP 주소를 가지고 많은 호스트에 할당했다가 다시 회수하는 방식으로 공유
      • 주소 리스 개념
  • DHCP 메시지

    • DHCPDISCOVER

      • 클라이언트 브로드캐스트로 사용할 서버 확인
    • DHCPOFFER

      • 서버 -> 클라이언트에게 전달하는 정보 설정 방식을 오퍼
    • DHCPREQUEST

      • 클라이언트 -> 서버에게 보내는 메시지
      • 파라미터 요청
      • 앞서 할당된 주소를 다시 확인
      • 할당된 주소 리스 확장
    • DHCPACK (Acknowledge)
    • DHCPNACK (Negative Acknowledge)
    • DHCPDECLINE
    • DHCPRELEASE
    • DHCPINFORM
  • DHCP 프로토콜 동작 DHCP 프로토콜 동작

    • 클라이언트가 DHCPDISCOVER를 브로드캐스트함
    • 양쪽 서버에 도착
    • 두 서버 모두 DHCPOFFER 보냄
    • 클라이언트는 둘 중 먼저 들어온 오퍼에 응답해 DHCPREQUEST 보냄. 이때 선택받은 쪽이 selected가 됨
    • 선택받지 않은 서버(Not selected)는 request를 받더라도 무시
    • 선택받은 서버에서 Commit configuration을 응답(DHCPACK)

ICMP(Internet Control Message Protocol)

  • 인터넷을 제어하는 메시지 전달 프로토콜
  • 인터넷 환경에서 오류에 관한 처리를 지원
  • ICMP 메시지

    • ECHO REQUEST, ECHO REPLY: 해당 시스템이 살아있는지 확인

      • 이 원리로 구현한 것이 ping 프로그램
    • DESTINATION UNREACHABLE: 수신 호스트에 접근이 불가능
    • SOURCE QUENCH: 네트워크에 필요한 자원 부족으로 패킷 폐기
    • TIME EXCEEDED: 시간 초과로 패킷 폐기
    • TIMESTAMP REQUEST, TIMESTAMP REPLY: 네트워크 지연 측정
  • ICMP 헤더 형식 ICPM 헤더

    • 처음 8바이트는 모든 메시지에 반드시 포함됨
    • 8바이트보다 더 커질수도, 아닐 수도 있음
    • Type: 메시지를 구분
    • Code: 메시지 내용에 대한 자세한 정보
    • Checksum: 전체 메시지 체크섬 기능
    • ICMP 메시지 내용 1: 메시지 종류에 따라 값이 결정됨
    • ICMP 메시지 내용 2

      • ICMP 오류 메시지
      • 오류 원인을 제공한 IP 패킷의 헤더와 이어지는 8바이트의 정보가 포함됨
  • ICMP 메시지 전송 ICMP 메시지 전송

    • ICMP는 기능적으로 IP 프로토콜과 같은 계층의 역할 수행
    • ICMP 메시지는 IP 프로토콜에 캡슐화되어 전송

IGMP(Internet Group Management Protocol)

  • 그룹 관리 프로토콜
  • 멀티캐스트

    • 특정 그룹에 속한 모든 호스트에게 메시지를 전송하는 방식
  • 그룹 관리

    • 그룹의 생성/제거, 그룹 참가/멤버 탈퇴
  • 멀티캐스팅을 지원하기 위한 방안

    • 다중 호스트를 표시하는 멀티캐스트 크룹 주소 표기 방법의 통일. IPv4, IPv6에서 이 형식 제공
    • 라우터가 멀티캐스트 주소와 이 그룹에 속하는 호스트 사이의 연관성 처리

      • 라우터에서도 주솔르 받았을 때 관련 호스트에 전달할 수 있도록 연관성 처리. 특히 멤버를 동적으로 추가/삭제하는 환경 대응
  • IGMP 헤더 형식 IGMP 헤더

    • 임의의 호스트가 멀티캐스트 그룹에 가입하거나 탈퇴할 때 사용
    • 질의 메시지: 라우터에서 호스트로 전달
    • 보고 메시지: 질의 메시지에 대한 응답으로 호스트가 회신
    • Type

      • 0x11: 질의 메시지
      • 0x16: 보고 메시지
      • 0x17: 그룹 탈퇴에 관한 메시지
    • Max Response Time

      • 질의 메시지에서 사용하며, 보고 메시지가 전송되어야 하는 최대 응답 시간
    • Checksum

      • IP와 동일한 방식으로 적용
    • Group Address

      • 질의 메시지: 0으로 채움
      • 보고 메시지: 호스트가 가입을 원하는 그룹 주소 표기
  • IGMP 동작 과정 IGMP 동작 과정

    • 그룹 가입 시 호스트는 라우터에게 보고 메시지 전송

      • 보고 메시지 내용: Type=0x16, Addr=Group Address(본인이 속한 그룹 주소)
    • 라우터에서는 해당 호스트가 그룹게 속해있는지 주기적으로 확인하기 위해 질의 메시지를 전송하고 호스트는 보고 메시지 전송

      • 질의 메시지 내용: Type=0x11, Addr=0
      • 보고 메시지 내용: Type=0x16, Addr=Group Address
    • 그룹 탈퇴 시 라우터에서 주기적으로 오는 확인 메시지에 호스트는 응답하지 않음

      • 질의 메시지 내용: Type=0x11, Addr=0
      • 보고 메시지 내용: 보고 메시지 없음
  • IGMP 메시지 전송 IGMP 메시지 전송

    • IGMP는 IP 프로토콜과 동등한 계층의 기능 수행
    • IP 패킷에 캡슐화되어 전송