[컴퓨터네트워크] ARP & RARP & ICMP & IGMP & RIP & OSPF 프로토콜

[컴퓨터네트워크] ARP & RARP & ICMP & IGMP & RIP & OSPF 프로토콜

ARP(Address Resolution Protocol)

  • IP address를 이용해 mac address를 알아내는 프로토콜이다.
    • 즉 IP주소만 알고 있을 때 그 IP에 해당하는 MAC주소를 결정하는 프로토콜
    • IP -> MAC
  • 논리적 주소를 물리적 주소로 변환
  • ARP 요청은 해당 네트워크 상의 모든 호스트와 라우터에게 브로드캐스트된다.
  • ARP 응답은 ARP 요청을 전송한 요청자에게 유니캐스트된다.
송신 호스트 MAC주소는 자신의 LAN 카드에 내장되어 있기에 값을 알 수 있지만 수신 호스트는 MAC주소를 모르기 때문에 수신 호스트는 ARP 기능을 통해 수신 호스트 MAC주소를 얻어야 한다.

A host가 B host의 MAC주소를 얻으려면 ARP Request라는 특수 패킷을 브로드캐스팅 or 플로딩을 해야 한다.B가 아닌 다른 호스트들은 모두 패킷을 받게 되는데 관계가 없기 때문에 패킷을 무시하고 B는 동일함을 인지하기 때문에 ARP reply 패킷을 사용하여 B host의 MAC주소를 A host에게 회신한다.

계속해서 ARP Request를 하게 되면 브로드캐스팅을 사용하게 된다. 브로드캐스팅을 지속적으로 하게 된다면 네트워크 트래픽이 증가해 CPU의 부담을 줄 수 있기에 최근에 얻은 IP주소와 MAC주소 mapping값을 보관하는 캐시 정보를 이용한다.

송신 호스트 ARP Request 패킷을 브로드 캐스팅하면서 패킷을 수신한 모든 호스트는 IP주소와 MAC 주소 mapping값을 자동으로 얻을 수 있다. 이러한 방식을 이용해 ARP 트래픽에 의 한 부담을 줄일 수 있다.



RARP(Reverse Address Resolution Protocol)

  • MAC address를 IP로 매핑 시키는 역할
    • MAC -> IP
  • 특이한 경우에 사용한다,(일반적인 경우에는 사용하지 않는다.)
    • 특이한 경우 : 디스크가 없는 컴퓨터! 즉 디스크 없는 컴퓨터는 중앙 서버를 두고 각 클라이언트가 디스크 없이 서버의 데이터를 받아 사용하도록 하는 것! 하드웨어 비용을 줄일 수 있다는 큰 이점이 있다.
      컴퓨터가 처음 전원이 들어오면서 통신을 하기 위해 RARP 서버로부터 IP를 얻기 위해 사용이 됨

하드디스크가 없는 호스트에서는 송신 호스트 IP 주소를 보관할 방법이 없으므로 LAN카드에 내장된 MAC주소를 매개변수로 사용하여 RARP기능을 수행하여 자신의 IP주소를 얻어야 한다.
MAC주소와 IP주소의 mapping 값을 보관하고 있는 호스트로부터 IP주소를 얻어야만 한다.

RARP의 기능을 전담하는 서버가 하나 이상 존재하므로 모든 호스트는 RARP 변환 요청을 받아도 해당 정보를 보관하고 있는 RARP 서버만 응답할 수 있다.



ICMP(Internet Control Message Protocol)

  • 오류처리 + 전송 경로의 변경
  • 이 때 라우터에서 발생한 오류를 송신측으로 전송하는데 사용되는 프로토콜
  • ICMP는 네트워크 계층에 상주하지 않고, IP 데이터그램에 캡슐화되어 인터넷으로 전송된다.
  • TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP계층에서 필요한 기타 기능들을 수행하기 위해 사용되는 프로토콜
  • IP와 하나의 쌍을 이루어 동작
  • ex) UNIX의 traceroute, Windows 운영체제의 tracert



IGMP(Internet Group Message Protocol)

  • 인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알릴 수 있는 수단을 제공하는 프로토콜
  • WAN구간에서 라우터들간에 사용되는 프로토콜
  • 멀티캐스팅은 네트워크의 한 호스트 컴퓨터가 미리 지정된 다수의 컴퓨터에 메시지를 보낼 수 있도록 허용
  • 동작 방법
    1. 멀티캐스트 라우터가 주기적으로 서브넷 호스트 컴퓨터 그룹에 IGMP Query 메시지를 전송
    2. 호스트 컴퓨터는 IGMP Query 메시지에 응답
    3. 자신이 가입하려는 그룹 주
    4. 소 정보를 IGMP 리포트 메시지를 이용하여 라우터에 통보


RIP(Routing Information Protocol)

RIP는 거리값(Distance vector)에 근거한 알고리즘으로서, 이는 목적지까지의 거리가 최적 경로 결정의 판단기준이 됨을 의미한다.

RIP에서는 거리값으로서 각 경유 네트워크에 1이란 값을 부여하는데 이를 홉(Hop)이라고 한다.
즉 어떤 목적지까지의 홉(경로값)이 2라면, 그 목적지까지 가기 위해서는 2개의 네트워크를 경유함을 알 수 있다.
이와 같은 종류의 알고리즘은 매우 간단하고 견고한 특징을 가지고 있는데, RIP에서는 요청과 응답이라는 2가지 종류의 패킷 형태만이 존재한다.


  • 요청패킷
    • 라우터가 처음으로 부팅되었을 때, 혹은 어떤 특정 목적지의 정보가 타임아웃 되었을 때 보내지게 되며, 전체 목적지 정보 혹은 특정 부분의 목적지 정보들을 요청할 수 있다.
  • 응답패킷
    • 실제 목적지에 대한 정보를 담고 있는 패킷

RIP의단점
  • 홉계수가 15를 넘어서는 인터넷과 같은 큰 규모의 망에는 적합하지 않는다.
  • 서브넷 마스크를 지원하지 않으므로 IP 주소 영역의 활용을 제한한다.
  • 경로 테이블의 전체를 매 30초마다 전송해야 하므로 효율적인 네트워크 대역폭 사용을 제한한다.
  • 최적의 경로를 산출하기 위한 정보로서 홉(거리값)만을 고려하므로, RIP가 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생 할 수 있다.

OSPF(Open Shortest Path First)

OSPF는 Area(에어리어)라는 개념을 사용해서 전체 OSPF 네트워크를 작은 영역으로 나누어 관리한다.
Link-State방식의 라우팅 프로토콜

네트워크 변화에 빠르게 대처할 수 있다.
최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.
멀티캐스팅을 지원한다.

OSPF는 표준 라우팅 프로토콜이고, 링크 스테이트 라우팅 알고리즘이다.(참고로 RIP는 디스턴스 벡터 알고리즘)
링크 스테이트 알고리즘은 한 라우터가 목적지까지의 정보를 모두 알고 있기 때문에 링크에 대한 정보(어디에 어떤 네트워크가 있고, 거기까지 가려면 어떤 라우터를 통해야 하는지)를 토폴로지 데이터베이스로 만든다.
라우터는 이러한 토폴로지 데이터베이스를 바탕으로 SPF(Shortest Path First) 알고리즘을 계산하고 이 계산 결과를 가지고 SPF트리를 만든다.

  • SPF 트리 :출발지에 목적지까지를 마치 나뭇가지처럼 펼쳐놓은 다음 가장 바른 경로를 찾아가는 방식. 이러한 트리정보를 가지고 라우팅 테이블을 만든다.

특성

  • 모든 경로를 알고 있기 때문에 링크의 변화에 유연하다. 테이블 교환 또한 자주 필요하지 않다.
  • CPU가 일을 많이 해야하기 때문에 커다란 네트워크의 고용량 라우터에 적합하다


출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?