글 검색

공개된 글의 제목과 본문을 검색합니다.

    닫기 Esc

    Mac addresses and ARP#

    • ARP = Address Resolution Protocol
    • 네트워크 계층에선 32Bit의 IP주소를 가지고 목적지를 찾아감
    • 노드와 노드간 통신시 물리적 특성에 의해서 결정된 Frame에 캡슐화 한다.
    • MAC 주소
      • 48Bit의 MAC 주소 = 생산시 정해져서 나오게 됨

    ARP : Address Resolution Protocol#

    데이터를 전송할때 Frame을 MAC 주소로 보내야하는데 우리가 아는건 IP 주소뿐임

    그렇다면 이 문제를 어떻게 해결할 것인가 ⇒ 해당 문제를 해결하기 위한것이 ARP

    • IP와 MAC 주소간의 매핑을 저장해놓는 테이블 = ARP table
    • 해당 매핑을 TTL 시간만큼만 유지됨
      • TTL ⇒ 일반적으로 20분

    ARP protocol: same LAN#

    ARP table은 어찌생성이 될까? ⇒ 그건 ARP protocol을 이용하게 됨

    • 전송자 A가 처음엔 B의 MAC 주소를 모름
      • A가 B의 IP를 첨부해서 ARP 쿼리를 브로드캐스트함
      • 목적지 MAC 주소는 Broadcast를 뜻하는 FF-FF-FF-FF-FF-FF로 보냄
      • B는 ARP 패킷을 통해서 MAC 주소를 보내주게 됨
    • ARP table은 일종의 캐시 역할임
      • 일정 시간동안 캐시를 가지는 이유는 A가 B의 MAC주소를 알아낼 경우 앞으로 한동안 데이터를 보낼 확률이 높기 때문에 미리 캐싱해두는게 좋음

    Addressing: routing to another LAN#

    1. A는 IP계층에서 목적지 B로 가기 위해서는 R로 보내야 한다는걸 알게 됨
      1. IP의 datagram엔 A와 B의 IP주소가 수신지, 목적지로 적히게 됨
    2. 해당 datagram이 link계층으로 넘어오면 A의 src MAC 주소와 나가야 하는 R의 dest MAC주소를 만들게 됨
    3. R에서는 MAC이 제대로 자신에게 온건지 캡슐을 풀어서 확인하게 됨
    4. 이후 IP계층으로 넘어가서 목적지를 확인함
    5. 다시 B에게 전달하기 위한 MAC 주소를 캡슐화 함
      1. R의 인터페이스 src 1A-23-F9-CD-06-9B / B의 MAC 주소 dest 49-BD-D2-C7-56-2A

    시나리오#

    학생이 노트북을 들고 캠퍼스 네트워크에 연결했고, 구글에 송/수신 하는 시나리오

    1. 노트북이 네트워크에 참여했을때 DHCP를 통해서 IP주소를 할당받음
      1. 이때 DHCP를 통해서 firts-hop라우터, DNS서버 정보도 함께 정보를 가져옴
      2. DHCP 클라이언트는 UDP를 통해서 메세지를 브로드캐스팅함
    2. 구글의 URL을 가져올 수 있도록 DNS 서버에서 주소를 가져와야 함
      1. DNS쿼리 메세지를 만듦
      2. UDP 세그먼트로 캡슐화됨
      3. firts-hop라우터의 MAC주소를 ARP로 알아내서 link계층에 실어서 라우터로 보냄
      4. 라우터는 inter-AS protocol을 통해서 작성된 라우팅 테이블을 lookup함
      5. DNS 서버로 전송된 쿼리는 구글의 IP를 lookup해서 replies해줌
    3. 가져오게 된 IP주소로 HTTP 요청을 보내게 됨
      1. 먼저 TCP 커넥션을 맺기위한 handshake 를 위해서 메세지를 생성함
      2. HTTP 메세지를 생성하고 구글의 IP를 목적지로 요청을 보내게 됨
    4. 이제 응답을 보내주게 되어서 사용자의 화면에 구글 페이지가 나타나게 됨
    전체 글 둘러보기