CS

[네트워크] 데이터 링크 계층

Patti Smith 2024. 8. 5.

MAC Address

맥 주소는 네트워크 카드에 부여되는 고유 번호다. Media Access Control의 약어로 LAN 카드 주소라고도 불린다.

 

네트워크 카드

NIC(Network Interface Card) 마다 고유의 MAC주소가 부여된다. MAC주소는 제조 과정에서 직접 기록된다. 길이는 48비트이며, 상위 24비트는 제조사 구별 코드고, 하위 24비트는 제조사가 제품에서 부여한 일련번호다. IEEE에서 MAC주소를 unique하게 관리하며 글로벌하게 동일한 MAC주소를 가진 LAN 카드는 존재하지 않는다. 

 

물리적 주소 = MAC 주소

 

NIC 카드와 프레임 데이터

ethernet에 올라오는 데이터에는 frame을 전송한 호스트 NIC의 MAC주소와 수신 호수트 NIC의 MAC주소가 저장되어 있다. 각 NIC는 ethernet 통신 라인 상 올라오는 frame 데이터를 항상 체크하고 있다.

목적지 호스트의 MAC 주소 정보를 읽어 자신의 MAC주소와 일치하는지 체크하고, 일치 시 해당 프레임을 처리한다(=상위 계층으로 프레임을 올려보낸다)

 

Ethernet

유선 LAN에서 가장 널리 사용되는 기술이다. 등장 당시 사용되고 있던 링 방식에 비해 설치 및 유지 비용이 저렴하여 널리 퍼졌다. 

  • 헤더 : MAC주소부터 PayLoad 전까지
  • tail : CRC 에러 체크용 코드가 저장되어 있다
  • payload(data) : 데이터그램이 저장되며 최대 길이는 1500바이트
  • 헤더 앞부분은 동기화에 사용된다.
    • 네트워크 장치들의 통신 타이밍을 맞춘다는 의미
    • 네트워크 장비들은 자신만의 클럭을 가지고 있다. 수신 장치의 클록을 송신 장치의 클록과 동기화시켜 타이밍을 맞춘다.
    • SFD는 프레임의 실제 시작을 의미한다.

MAC 주소와 IP 주소

MAC주소를 이용하여 LAN을 통해 데이터를 전송한다곤 하지만 송신자는 수신자의 MAC주소를 어떤 경로로 알게 되는가? 브라우저 주소창에 www.naver.com 을 입력했다고 가정해보자. 브라우저는 DNS를 통해 IP주소를 알아낸다. 그리고 ARP(Address Resolution Protocol)을 이용하여 IP주소를 통해 MAC 주소를 얻을 수 있다.

ARP 프로토콜

IP주소에 기반한 인터넷과 다르게 MAC주소 기반 데이터링크 계층이 MAC주소를 알아내려면 IP-MAC 주소 간 맵핑이 필요하다. ARP는 데이터 링크 계층의 프로토콜로서 맵핑을 한다. 물론 프레임을 생성할 때마다 ARP를 수행하는 것은 아니다. 호스트는 알아낸 MAC 주소를 캐시하여 사용하며, 캐시된 주소가 재사용되지 않는다면 20 후 지워진다.

ARP에 의해 웹 서버의 MAC 주소를 알아내는 방법은 다음과 같다.

  1. 웹 서버의 MAC 주소를 질의하도록 설계된 프레임을 전송한다.
  2. 브로드케스트 프레임을 LAN상에 보낸다.
    • 목적지 MAC 주소 값이 FF.FF.FF.FF.FF.FF라면 브로드 캐스트 프레임이다.
    • 브로드캐스트는 모든 호스트에 프레임을 보내기 때문에 이에 맞춰 웹 서버는 MAC 주소를 알려준다. (NIC에서 상당히 걸러진다)
    • 하지만 브로드캐스트를 모든 서버가 받을 수 없으므로 라우터가 브로드캐스트를 걸러준다. 대개 IP주소는 DNS 서버에서 가져온다.
  3. 웹서버가 브로드캐스트 프레임을 읽어 페이로드에 저장되어 있는 ARP 질의 데이터를 체크한다.
    • 질의 내용에 자신의 IP가 있다면 MAC주소를 질의한 것으로 확인하고 응답 프레임을 ARP 질의를 보낸 호스트로 보낸다.
    • 이때 응답은 유니캐스트로 전달된다.

ARP에 사용된 데이터 형태

IP주소

IP 프로토콜에서 사용하는 주소로 네트워크 계층 프로토콜에 포함된다. 4바이트 데이터를 사용하며, 서브 내트워크(LAN)을 나타내는 부분과 서브 네트워크 안에서 호스트를 구별하는 부분으로 나뉜다. IPb6 주소의 경우 16바이트, 가변적인 IPv4와 다르게 서브 네트워크의 길이가 64비트로 고정되어 있다.

CIDR

기존 클래스 주소 체제(고정된 네트워크 비트수로 할당하는 방식)로 서브 네트워크를 구성하다보니 서브넷 크기의 종류가 너무 제한적이다. (A: 2^7, B:2^14, C:2^21) 따라서 구별 가능한 서브넷 개수가 너무 작아 확장되고 있는 네트워크 환경에 맞지 않아 다양한 크기의 서브넷을 만들 수 있는 방법으로 CIDR 주소 체계가 등장하였다.

CIDR 주소 체계는 앞선 클래스 주소 체제의 대안으로 등장하였으며 가변적으로 네트워크 크기를 조절하기 때문에 IP주소 낭비를 막을 수 있다.

  • a.b.c.d/x의 형태로 x는 서브넷 구별 비트 수를 표시한다.

댓글