tioon's Devlog

MAC주소와 ARP 본문

네트워크

MAC주소와 ARP

tioon 2023. 5. 2. 18:22
MAC주소란?

-MAC주소는 네트워크 인터페이스를 식별하는 고유한 식별자이며,MAC 주소는 물리적 주소, 하드웨어 주소라고도 불린다. 보통 MAC주소는 6바이트의 길이를 가지며 16진수로 표현됩니다. (EX. 00:1A:2B:3C:4D:5D) 이 주소는 네트워크 인터페이스 제조사에 의해 할당되며, 유일한 값입니다.물리적 계층(2 계층)에서 사용되며 LAN 카드를 다른곳으로 옮겨도 MAC주소는 같습니다.

 

MAC주소의 예시는 아래와 같습니다.

 

 

 

ARP 프로토콜이란?

-MAC주소를 알고 있는 IP주소를 찾기위한 프로토콜. 즉 상대방의 MAC주소를 모를때, 상대방의MAC주소를 알기위해 진행되는 과정입니다.

  1. A가 B에게 데이터를 보내려함
  2. B의 MAC주소를 알기위해 ARP패킷(B의 IP주소포함)을 브로드캐스트 방식으로 전송함(도착지 MAC주소 =FF-FF-FF-FF-FF-FF)
  3. B가 ARP 패킷을 받으면 A에게 자신의 MAC주소를 보냄 (자신의 IP인걸 확인해야함)
  4. A가 B의 MAC주소를 받으면 자신의 ARP table에 저장

 

 

ARP 테이블

-MAC주소와 IP주소를 매핑해놓은 테이블, IP주소와 MAC주소가 쌍으로 저장되어있으며, 최근에 통신된 주소들이 들어가있습니다. 이는 일정시간동안 테이블에 저장되어있으며, 그이후에는 삭제가 됩니다.

 

 

ARP 헤더
struct arp_packet {
    u_int16_t htype;  //하드웨어 타입 
    u_int16_t ptype;  //프로토콜 타입
    u_char hlen;  //MAC 주소 길이
    u_char plen;  //IP 주소 길이
    u_int16_t oper;  //ARP 동작 지정 (1 = 요청 , 2 = 응답)
    struct arp_ha ar_sha; //출발지 MAC 주소
    struct arp_ha ar_spa; //출발지 IP 주소
    struct arp_ha ar_tha; //도착지 MAC 주소
    struct apr_ha ar_tpa; //도착지 IP 주소
};