본문 바로가기
네트워크/네트워크 기초

2계층 (데이터 링크): 바로 옆 장비와 통신하는 방법 (이더넷, MAC 주소)

by 절차탁마 2025. 4. 8.

[들어가며]

 

인터넷이라는 큰 세상 말고, 바로 옆에 있는 컴퓨터와는 어떻게 이야기할까요? 네트워크 모델의 2계층(데이터 링크 계층)은 바로 이 '가까운 사이'의 통신 규칙을 다룹니다. 우리가 흔히 말하는 LAN 환경에서의 통신이 주 무대죠.


1. 2계층의 핵심 역할: 같은 동네 안에서의 배달

  • 주요 역할: 같은 네트워크 대역(LAN) 내부에 있는 장비들끼리 데이터를 직접 주고받도록 돕는 것.
  • 세부 기능:
    • 데이터 전달: 바로 옆 장비까지 데이터(정확히는 '프레임')를 안전하게 전달.
    • 주소 지정: 데이터를 받을 장비를 구분하기 위한 물리적 주소(MAC 주소) 사용.
    • 오류 제어: 데이터 전송 중 오류가 발생했는지 검사 (예: 이더넷 프레임의 FCS 필드).
    • (선택적) 흐름 제어: 받는 쪽의 처리 속도에 맞춰 데이터 전송량 조절 (일부 프로토콜).

2. 2계층의 활동 범위: 딱 우리 네트워크 안까지만!

  • 통신 범위: 하나의 네트워크 대역(LAN, 브로드캐스트 도메인)으로 제한됨. 즉, 라우터(공유기 등 3계층 장비)를 거치지 않고 직접 통신 가능한 범위.
  • 다른 네트워크와 통신하려면?
    • 2계층의 힘만으로는 불가능. '동네 밖'으로 나가려면 3계층(네트워크 계층)의 도움이 필요합니다.
    • 3계층 장비(라우터)가 IP 주소를 보고 다른 네트워크로 가는 길을 안내해 줍니다.

3. 2계층 주소: 기기 고유의 이름표, MAC 주소

  • 사용 주소: MAC 주소 (Media Access Control Address) - 물리적 주소.
  • 특징: 네트워크 카드(랜 카드)마다 제조 시 부여되는 고유한 식별자. 사람의 주민등록번호처럼, 각 장비를 구분하는 데 사용됩니다.
  • 형식: 총 6바이트 (48비트), 보통 16진수로 표기 (예: 6C-29-95-04-EB-A1 또는 6C:29:95:04:EB:A1).
    • 앞 3바이트 (예: 6C-29-95): OUI (Organizationally Unique Identifier)
      • IEEE(국제 전기 전자 기술자 협회)가 네트워크 장비 제조사에게 할당하는 고유 코드. (이 주소만 봐도 어느 회사 제품인지 알 수 있죠!)
    • 뒤 3바이트 (예: 04-EB-A1): 고유 번호 (UAA - Universally Administered Address 부분)
      • 해당 제조사가 개별 네트워크 카드에 중복되지 않게 부여하는 일련번호.
  • 변경 가능성: 기본적으로는 고유하지만, 소프트웨어적으로 변경 가능한 경우도 있습니다 (MAC 스푸핑 등). 하지만 일반적인 사용 환경에서는 변경하지 않습니다.

4. 2계층 대표 프로토콜: 이더넷 (Ethernet)

  • 가장 널리 쓰이는 2계층 프로토콜: 이더넷 (Ethernet). 우리가 흔히 사용하는 유선 LAN 환경의 표준 기술입니다.
    • 요즘은 유선 LAN보다 무선을 더 많이 쓰지 않나요? ㅎㅎㅎㅎ
  • 이더넷 프레임 (Ethernet II 기준): 2계층에서 데이터를 주고받는 정해진 형식(틀). 주요 구성 요소는 다음과 같습니다.
    • (Preamble & SFD): 프레임 시작을 알리고, 수신 측과 타이밍을 맞추기 위한 신호 (실제 데이터는 아님).
    • 목적지 MAC 주소 (Destination MAC Address, 6바이트): 데이터를 받을 장비의 MAC 주소.
    • 출발지 MAC 주소 (Source MAC Address, 6바이트): 데이터를 보내는 장비의 MAC 주소.
    • 이더타입 (EtherType, 2바이트): 매우 중요! 이 이더넷 프레임 안에 담겨 있는 상위 계층(3계층) 데이터가 무엇인지 알려주는 식별 코드.
      • 예: 0x0800 -> "이 안에 든 건 IPv4 패킷이야!"
      • 예: 0x86DD -> "이건 IPv6 패킷이야!"
      • 예: 0x0806 -> "ARP 메시지야!"
      • 왜 필요할까? 이 코드를 보고 데이터를 받은 장비는 "아, 이 데이터는 IP 담당팀에게 넘겨줘야겠군!" 하고 판단할 수 있습니다. (다른 계층 헤더에도 비슷한 역할의 필드가 존재합니다.)
    • (데이터/페이로드): 실제 전달할 상위 계층 데이터 (예: IP 패킷).
    • (FCS - Frame Check Sequence, 4바이트): 프레임 전송 중 오류가 발생했는지 검사하기 위한 값 (꼬리표처럼 붙음 - 푸터/트레일러).

[궁금할 수 있는 포인트 🤔]

  • Q: "IP 주소도 있는데 왜 MAC 주소가 또 필요한가요?"
    • A: IP 주소는 '어느 네트워크의 누구'인지 알려주는 논리적 주소(집 주소)이고, MAC 주소는 '이 네트워크 안에서 실제 어떤 장비'인지 알려주는 물리적 주소(집배원이 사용하는 동/호수)와 같습니다. 같은 네트워크 안에서는 최종적으로 MAC 주소를 보고 데이터를 직접 전달합니다. 다른 네트워크로 가려면 일단 우리 동네 출구(라우터)까지 가야 하는데, 이때도 라우터의 MAC 주소가 필요하죠.
  • Q: "LAN이랑 이더넷은 같은 건가요?"
    • A: LAN은 '가까운 지역 네트워크'라는 개념/범위를 의미하고, 이더넷은 그 LAN 환경에서 가장 널리 사용되는 기술 표준(프로토콜)의 이름입니다. 즉, '우리 동네(LAN)'에서 쓰는 '표준 통신 규칙(이더넷)' 같은 관계죠.
  • Q: "EtherType 필드는 왜 그렇게 중요한가요?"
    • A: 2계층은 자신에게 온 데이터(프레임)를 풀어서 그 안의 내용물을 어떤 상위 계층(주로 3계층 IP)에게 전달해야 할지 알아야 합니다. EtherType이 바로 그 '내용물 종류 표시' 역할을 하기 때문에 매우 중요합니다. 이게 없으면 받은 데이터를 어떻게 처리해야 할지 알 수 없게 됩니다.
  • Q: "MAC 주소는 바꿀 수 있다는데, 그럼 고유한 게 아닌 거 아닌가요?"
    • A: 제조 시 부여된 원래 주소는 고유합니다. 소프트웨어로 변경하는 것은 가능하지만, 이는 일반적인 사용 목적이 아니며 네트워크 관리나 특정 테스트, 혹은 악의적인 목적(MAC 스푸핑)으로 사용될 수 있습니다. 기본적으로는 '고유한 하드웨어 주소'로 생각하는 것이 맞습니다.

[마무리하며]

 

2계층은 바로 옆 장비와 통신하기 위한 '근거리 통신 규칙'입니다. 고유한 MAC 주소를 사용하고, 대표적인 기술인 이더넷을 통해 데이터를 프레임 단위로 주고받죠. 다른 네트워크와의 통신은 3계층에게 맡기고, 자신은 같은 네트워크 내에서의 확실한 데이터 전달에 집중합니다.