ARP, 플러딩, RARP

2021. 7. 31. 14:30·기초 지식 정리

클라이언트 A와 B가 통신하려고 할때, 상대방 IP주소는 아는데 MAC주소를 모르고있는데 어떻게 통신을 할까?

→ 이를 위해 ARP프로토콜을 통해서 MAC주소를 알아낸다

 

ARP

IP주소를 이용해 상대방의 MAC주소를 알아오는 프로토콜이다

A와 B클라이언트가 하나의 스위치내에 존재하는 서브넷내에 존재하고 서로 통신하려한다고 생각해보자

A 클라이언트는 B클라이언트와 통신하기위해 MAC주소를 알아야 하는데, 이 경우 A는 자신의 서브넷 게이트웨이의 스위치에게 ARP요청을 보낸다

 

스위치는 2계층 장비로 2계층까지만 확인하게 된다. 스위치는 MAC주소를 확인해보고 그에 맞는 곳으로 보내주는 역활을 한다. 하지만 해당 요청은 MAC주소를 알기위한 브로드캐스팅이므로 스위치도 브로드캐스팅임을 확인하고 같은 네트워크에 있는 모두에게 보내준다.

 

같은 네트워크 군에 있는 모든 클라이언트는 해당 요청을 보고 자신의 MAC주소와 동일하니 데이터를 받아들이고 3계층까지 확인해준다

3계층 IP주소까지 확인해보고 목적지 IP주소랑 자기 주소랑 다르면 패킷을 폐기하고, 동일하면 자신의 MAC주소를 적어서 유니캐스트형식으로 ARP응답을 준다

 

A에서 ARP응답을 받으면 해당 IP주소의 MAC주소를 ARP 캐시 테이블에 적어놓는다. 이후 이뤄지는 통신은 캐시 테이블을 확인해서 목적지에 해당 MAC주소랑 IP주소를 같이 적어서 보내게 된다

 

플러딩

위에서 목적지의 MAC주소를 모르는 경우 스위치에게 브로드캐스팅으로 MAC 주소 요청을 한다고 했다. 그러면 스위치는 허브처럼 이를 위해 들어온 패킷을 제외한 자신과 연결된 모든 포트에 같은 내용의 패킷을 전달하게되고 이러한 동작방식을 플러딩이라고 한다

플러딩이 발생하는 경우

  1. MAC주소 테이블이 완전히 비어있는 경우
  2. MAC주소 테이블이 가득 차있는 경우 (네트워크 공격)
  3. MAC주소 테이블에 없는 목적지 MAC주소인 경우
  4. 보내고자 하는 목적지 MAC주소가 브로드캐스팅인 경우 (위에서 말한 경우에 해당한다)

RARP

역 ARP프로토콜로 MAC주소에 해당하는 IP주소를 알아오는 프로토콜이다

ARP와 동일한데 IP와 MAC주소만 바꾸면된다

MAC주소를 브로드캐스팅해서 IP주소를 묻고, 스위치는 브로드캐스팅해주고, 수신한 클라이언트는 IP주소를 유니캐스트로 송신자에게 다이렉트로 알려준다

→ 이를 위해 ARP프로토콜을 통해서 MAC주소를 알아낸다

반응형
저작자표시 (새창열림)

'기초 지식 정리' 카테고리의 다른 글

Java Garbage Collection  (0) 2021.07.30
'기초 지식 정리' 카테고리의 다른 글
  • Java Garbage Collection
구름뭉치
구름뭉치
구름의 개발일기장
  • 구름뭉치
    구름 개발일기장
    구름뭉치
  • 전체
    오늘
    어제
    • ALL (283)
      • 프로젝트 (23)
        • 토스페이먼츠 PG 연동 시리즈 (12)
        • JWT 방식 인증&인가 시리즈 (6)
        • 스우미 웹 애플리케이션 프로젝트 (1)
        • 스프링부트 기본 보일러 플레이트 구축 시리즈 (2)
        • 마이크로서비스 아키텍쳐 시리즈 (1)
      • 스프링 (43)
        • 스프링부트 API 설계 정리 (8)
        • 스프링부트 RestAPI 프로젝트 (18)
        • 스프링부트 WebSocket 적용기 (3)
        • 스프링 JPA 정리 시리즈 (5)
        • 스프링 MVC (5)
        • 스프링 배치 (2)
        • 토비의 스프링 정리 (2)
      • 기술 학습 (28)
        • 아파치 카프카 (9)
        • 클린 코드 (4)
        • 디자인 패턴의 아름다움 (2)
        • 모던 자바 인 액션 (7)
        • JVM 스레드 딥다이브 (6)
      • Web (25)
        • 정리글 (20)
        • GraphQL 정리글 (2)
        • Jenkins 정리글 (3)
      • 취업 (6)
      • CS (77)
        • 네트워크 전공 수업 정리 (11)
        • OSI 7계층 정리 (12)
        • 운영체제 정리 (19)
        • 데이터베이스 정리 (5)
        • MySql 정리 (17)
        • GoF의 Design Pattern 정리 (12)
      • 알고리즘 (70)
        • 백준 (56)
        • 프로그래머스 (12)
        • 알고리즘 정리본 (1)
      • 기초 지식 정리 (2)
      • 일상 (8)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    부다페스트
    크로아티아
    키보드 손목 받침대
    동유럽
    마우스 패드
    레이저
    류블라냐
    mx master s3 for mac
    마우스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
구름뭉치
ARP, 플러딩, RARP
상단으로

티스토리툴바