Computer Science/네트워크

[네트워크] MAC Address

  • -
728x90

전공과목인 네트워크를 학습하며 어려웠던 내용과 중요한 내용을 정리한 것으로, 잘못된 내용이 있는 경우 알려주시면 감사하겠습니다.

MAC Address

MAC 주소

  • 네트워크 카드에 부여되는 고유 번호
  • Media Access Control의 약어(acronym)
  • LAN 카드 주소라고도 불림
  • PCIe 버스에 대해 잠깐 설명 (링크)

네트워크 카드

  • NIC (Network Interface Card) 마다 unique한 MAC 주소가 부여됨
    • MAC 주소의 길이는 48비트(6바이트)
    • 상위 24 비트는 제조사 구별 코드, 하위 24 비트는 제조사가 제품에 부여한 일련 번호
  • IEEE에서 MAC 주소를 unique하게 관리
    • Global하게 동일한 MAC 주소를 가진 LAN 카드는 존재하지 않아야 함. 정상적인 제품이라면…
    • 자신 컴퓨터의 MAC 주소 값은 “ipconfig /all”로 체크해 볼 수 있음

네트워크 카드와 프레임 데이터

  • Ethernet에 올라오는 데이터(즉, frame)에는 frame을 전송한 호스트 NIC의 MAC주소와 수신 호스트 NIC의 MAC 주소가 저장되어 있음
  • 각 NIC은 통신 라인(즉, Ethernet) 상에 올라오는 frame 데이터를 항상 체크하고 있음. 즉, destination 호스트의 MAC 주소 정보를 읽음
    • 읽혀진 MAC 주소와 자신의 MAC 주소가 일치하는지 체크. 일치 시에 해당 프레임을 처리함
    • 즉, 상위 계층(= Network)으로 프레임 데이터(= datagram) 올려보냄

frame을 보내는 source 호스트와 해당 frame을 받을 상대편 destination 호스트의 주소가 기록됨: 프레임의 앞쪽(header)에 위치

 

이더넷 프레임 구조

아래 그림에서 octet는 1바이트로 생각하면 됨

헤더 부분: MAC 주소로 시작, payload 필드 전까지의 부분

Tail 부분: CRC라는 에러 체크 용 코드가 저장

데이터 부분: Payload 파트. 이곳에 datagram이 저장. 최대 길이는 1500바이트

헤더 앞 부분은 동기화에 사용됨 (”데이터 간다~~”)

이더넷 패킷과 프레임 구조

신호 8B | 첫번째 x: Mac destination 6B → 이 목적지 MAC 주소를 알고 싶을때 물어보기 | 두번째 x: Mac Source 6B | length 2B | payload (=data) 28B: 길이가 가변적이다. | time gap 12B

Mac 의 주소를 알아내기 위해 ARP 라는 프로토콜을 사용한다.

payload 부분에 들어가는 데이터는 데이터그램에 해당한다고 볼 수 있다.

  • 이더넷 프레임의 전체 길이는 32바이트 (0번지부터 31번지까지)
  • 7번지까지인 28바이트가 데이터를 담을 수 있음. → 데이터는 4바이트씩 나누어져서 전송되므로 이더넷 프레임은 7개의 4바이트 = 28바이트를 표현

패킷 **packet**: 앞에 header + 쪼개진 **segment**

**datagram**: header + **packet**

**frame**: header + **datagram**

→ 운영 데이터에 header 붙이면 packet이고, packet에 header 붙이면 datagram, 이 데이터 그램을 실제로 lan 카드가 보냈을 때 만드는게 프레임이다.

실제상황에서의 적용

실습실에 40대의 PC가 있다. 이들 PC는 모두 NIC을 가지고 Ethernet LAN에 연결되어 있다

PC S가 PC R로 데이터를 보낸다면, S는 LAN 상에 프레임 전송(버스 상에 전자기 신호가 브로드캐스팅)

해당 프레임의 헤더에 R의 MAC 주소, S의 MAC 주소가 기록

한편, R의 NIC은(다른 호스트의 NIC도…) LAN에 올라오는 프레임을 계속 체크하고 있음. 프레임 헤더의 목적지 MAC 주소가 자신의 MAC 주소와 같기에 이를 버퍼로 복사하고, 에러 체크 후에 상위 계층으로 올림

  • 올려줄 때 payload 부분에 있는 데이터를 올려 줌
  • 응답이 필요하다면 R도 프레임을 만들어 S로 전송
  • 물론, 다른 PC들은 프레임 무시
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.