MAC 주소가 필요한 가장 핵심적인 이유는 같은 네트워크(LAN) 내에서 데이터를 받을 최종 목적지 컴퓨터를 정확하게 찾아내기 위해서입니다.[1] 인터넷 주소인 IP 주소만으로는 바로 옆에 있는 컴퓨터에게 데이터를 전달할 수 없기 때문입니다.
쉽게 비유하자면 다음과 같습니다.
- IP 주소: "서울시 강남구 테헤란로 123"과 같은 아파트 주소입니다. 전 세계 어디서든 이 아파트까지 편지를 보낼 수 있습니다.
- MAC 주소: 아파트에 도착한 편지를 "101동 505호"에 사는 '김OO' 씨에게 정확히 전달하기 위한 동호수와 이름표입니다. 경비실(라우터)이나 집배원(스위치)은 이 동호수 정보가 있어야만 최종 주인에게 편지를 배달할 수 있습니다.
이처럼 MAC 주소는 전 세계적인 통신이 아닌, 우리 집이나 사무실 같은 지역 네트워크(Local Area Network, LAN) 안에서의 통신을 위해 반드시 필요합니다.
더 자세한 이유 3가지
MAC 주소의 필요성을 기술적으로 나누어 보면 다음과 같은 3가지 중요한 역할 때문입니다.
1. 로컬 네트워크(LAN) 내에서의 최종 식별자 역할[2]
- 우리가 인터넷을 통해 데이터를 받을 때, 데이터는 먼저 우리 집 공유기(라우터)까지 전달됩니다. 이때 사용되는 주소가 IP 주소입니다.
- 공유기에는 컴퓨터, 스마트폰, TV 등 여러 기기가 연결되어 있습니다. 공유기는 전달받은 데이터를 이 중에서 어떤 기기에게 주어야 할지 결정해야 합니다.
- 이때 공유기(또는 스위치)는 각 기기가 가진 고유한 하드웨어 주소인 MAC 주소를 보고 "아, 이 데이터는 안방 컴퓨터로 보내야겠구나"라고 판단하여 정확한 목적지로 데이터를 최종 전달합니다.[3]
2. 데이터 전송 단위(이더넷 프레임)의 필수 정보[4]
- 데이터 링크 계층에서 데이터는 '이더넷 프레임'이라는 단위로 포장되어 전달됩니다.
- 이 이더넷 프레임의 헤더(송장)에는 **'보내는 곳 MAC 주소'**와 **'받는 곳 MAC 주소'**를 반드시 적도록 규칙이 정해져 있습니다.[1]
- 이 주소가 없으면 데이터 패킷은 LAN 안에서 길을 잃고 아무에게도 전달되지 못합니다.
3. IP 주소와 상호 보완하는 관계[5]
- IP 주소는 네트워크 환경에 따라 바뀔 수 있는 논리적, 가변적 주소입니다. (예: 카페 와이파이에 접속할 때마다 새로운 IP를 받음)
- 반면 MAC 주소는 랜카드(NIC)에 고정되어 출고되는 물리적, 불변의 주소입니다.[6][7]
- 네트워크 통신은 이 두 주소가 함께 사용될 때 비로소 완성됩니다.[8]
- IP 주소 (네트워크 계층): 멀리 떨어진 네트워크까지 데이터를 전달하는 역할 (서울에서 부산까지)
- MAC 주소 (데이터 링크 계층): 목적지 네트워크에 도착한 데이터를 최종 기기에게 전달하는 역할 (부산 터미널에서 특정 아파트 현관문까지)
| 항목 | 접근 링크 (골목길) | 핵심 링크 (고속도로) |
| 역할 | 내 차 한 대(내 컴퓨터 데이터)를 큰길(네트워크)까지 연결하는 것 | 수많은 차들(수천 명의 데이터)을 한 번에, 빠르게 다른 도시(다른 네트워크)로 실어 나르는 것 |
| 길이 | 짧을 수밖에 없습니다. 우리 집에서 동네 큰길까지는 몇십 미터면 충분하죠. | 길어야만 합니다. 서울에서 부산까지 연결하려면 수백 km가 필요합니다. |
그리고 질문하신 대로 MAC 주소는 정확히 2계층(데이터 링크 계층)에서 필요합니다.
왜 그런지 아주 직관적인 비유로 다시 설명해 드릴게요.
'교실에서 쪽지 전달하기'에 비유해 봅시다.
- 하나의 네트워크 (LAN) = 하나의 교실
- 컴퓨터, 스마트폰 등 기기들 = 교실 안의 학생들
- 데이터를 보내는 기기 (스위치 등) = 선생님
- 데이터 (이더넷 프레임) = 쪽지
상황 1: 공유 링크 (이더넷) - 학생이 여러 명인 교실
선생님이 '철수'라는 학생에게 쪽지를 전달하고 싶습니다. 교실에는 영희, 민수, 지혜 등 여러 학생이 함께 앉아 있습니다.
- 선생님(스위치)의 고민:
"이 쪽지를 누구에게 줘야 하지?"
만약 그냥 "이 쪽지 받을 사람!" 하고 외치면, 모든 학생이 쳐다보거나 엉뚱한 학생이 가져갈 수 있습니다. - 해결책 (MAC 주소):
선생님은 쪽지 겉면에 "받는 사람: 철수" 라고 정확히 이름을 씁니다.
이 "철수"라는 이름표가 바로 MAC 주소입니다. 각 학생(기기)이 태어날 때부터 가지고 있는 고유하고 변치 않는 이름표죠. - 전달 과정:
선생님이 "자, 이 쪽지는 '철수' 군에게 전달!" 이라고 말하며 쪽지를 전달하면, 다른 학생들은 자기 이름이 아니니 무시하고, 오직 '철수'만이 그 쪽지를 받습니다.
이것이 바로 공유 링크이므로, 링크에 연결된 여러 노드 중 특정 수신자를 지정하기 위한 MAC 주소가 포함됨 이라는 말의 의미입니다. 여러 명이 함께 쓰는 통신 환경(공유 링크)에서 진짜 내 데이터를 받을 '단 한 명'을 콕 집어내기 위해 MAC 주소가 반드시 필요한 것입니다.
상황 2: 점대점 링크 (PPP) - 1:1 과외
이번에는 선생님과 학생 '철수'가 단둘이 과외를 하고 있습니다. 교실에는 다른 학생이 아무도 없습니다.
- 선생님의 행동:
선생님이 철수에게 쪽지를 줄 때, 굳이 쪽지에 "받는 사람: 철수" 라고 쓸 필요가 있을까요?
없습니다. 어차피 그 공간에는 쪽지를 받을 사람이 철수밖에 없으니까요. - 전달 과정:
그냥 쪽지를 건네주면 됩니다. 받는 사람은 100% 철수입니다.
이것이 바로 점대점 링크인 PPP에는 (MAC 주소가) 없음 이라는 말의 의미입니다. 어차피 연결된 상대방이 딱 한 명으로 정해져 있기 때문에, 굳이 주소를 써서 누구인지 지정할 필요가 없는 것입니다.
결론
- MAC 주소는 왜 필요한가?
- 여러 장치가 함께 연결된 환경(공유 링크)에서, 데이터를 받을 정확한 '한 놈'을 콕 집어내기 위해 필요합니다.
- 몇 계층에서 필요한가?
- 바로 이 '같은 교실(로컬 네트워크) 내에서' 정확한 학생에게 쪽지를 전달하는 역할이 데이터 링크 계층(2계층)의 핵심 임무입니다. 따라서 MAC 주소는 2계층에서 사용됩니다.
- 공식: 0부터 (2^m - 1) 까지
1997년 발표된 IEEE 802.3x에 흐름 제어 추가
데이터 링크 계층에서 플래그의 필요성
물리 계층 프레임이 반드시 하나의 데이터 링크 계층 프레임을 포장하지는 않음
<이게 뭔소리지,
잘못된 가정: "1계층(물리 계층)이 '짠!' 하고 데이터를 보내면, 2계층(데이터 링크 계층)은 그걸 '착!' 하고 온전하게 하나씩 받는다." -> 이것은 사실이 아닙니다.
'소리'와 '문장'에 비유해 봅시다.
- 1계층 (물리 계층)이 보내는 신호 = 끊임없이 들려오는 '소리의 흐름' (아아아아가가나나다다라라...)
- 2계층 (데이터 링크 계층)이 만들고 싶은 것 = 의미 있는 '하나의 문장' (예: "안녕하세요 반갑습니다")
컴퓨터 A가 컴퓨터 B에게 "안녕하세요 반갑습니다" 라는 문장(프레임)을 보낸다고 상상해 보세요.
1계층 (물리 계층)의 역할 - '소리'를 전달할 뿐
1계층(랜선, 전파 등)의 역할은 그냥 소리를 전기 신호로 바꿔서 전달하는 것뿐입니다. 1계층은 '문장'이라는 개념 자체가 없습니다. 그냥 들려오는 소리의 흐름을 그대로 전달합니다.
그래서 컴퓨터 B의 귀(랜카드)에 들리는 소리는 아래와 같을 수 있습니다.
"...(조용함)...안녕하세ㅇㅛ반갑습ㄴㅣ다...(조용함)...또다른문장ㅇㅣㅇㅓ서...(조용함)..."
이처럼 1계층이 전달하는 신호의 흐름 속에는,
- 아무도 통신하지 않는 침묵(Idle) 구간이 있을 수 있고,
- **하나의 문장(프레임)**이 통째로 들어올 수도 있고,
- **여러 문장(프레임)**이 연달아 들어올 수도 있습니다.
이것이 바로 물리 계층이 보내는 신호의 흐름이 반드시 하나의 데이터 링크 계층 프레임을 포장하지는 않는다는 말의 진짜 의미입니다. 물리 계층은 그냥 신호를 흘려보낼 뿐, 2계층의 '프레임' 단위로 깔끔하게 포장해서 배달해주지 않습니다.
그래서 '플래그(Flag)'가 필요합니다.
이제 컴퓨터 B(2계층)의 입장이 되어봅시다. 위와 같이 의미 없는 소리의 강물이 계속 흘러들어오는데, 어디서부터 어디까지가 하나의 의미 있는 문장인지 어떻게 알 수 있을까요?
바로 이때 '시작'과 '끝'을 알려주는 특별한 신호가 필요합니다. 이것이 바로 **플래그(Flag)**입니다.
마치 우리가 대화를 시작할 때 "자, 지금부터 내가 말할게" 라고 신호를 주고, 말이 끝나면 "이상이야" 라고 알려주는 것과 같습니다.
PPP나 HDLC 같은 프로토콜은 01111110 이라는 아주 특별한 비트 패턴을 '플래그'로 사용합니다.
- 시작 플래그: 컴퓨터 B는 계속 소리의 강물을 듣고 있다가, 01111110 (시작 신호) 이 들리는 순간 정신을 차리고 "아! 지금부터 문장이 시작되는구나!" 라고 인지합니다. 그리고 그 뒤에 오는 비트들을 전부 기록하기 시작합니다.
- 데이터 기록: "안녕하세요반갑습니다" 에 해당하는 비트들을 쭉 기록합니다.
- 종료 플래그: 데이터를 기록하다가 또다시 01111110 (종료 신호) 이 들리면, "아! 여기까지가 하나의 문장이구나!" 라고 인지하고 기록을 멈춥니다.
이제 컴퓨터 B는 [시작 플래그] 와 [종료 플래그] 사이의 데이터 덩어리를 성공적으로 잘라내어, 비로소 **'하나의 온전한 프레임'**을 얻게 됩니다.
결론
플래그는 왜 필요한가?
의미 없는 신호의 강물(1계층) 속에서, 의미 있는 데이터 덩어리(2계층 프레임)의 '시작'과 '끝'을 구분해내기 위해 반드시 필요합니다.
플래그가 없다면, 수신 측은 어디서부터 어디까지가 하나의 데이터인지 전혀 알 수 없어 통신 자체가 불가능해집니다.
'25년2학기 > 컴퓨터 네트워크' 카테고리의 다른 글
| 컴넷)예상문제 (10.15) (0) | 2025.10.15 |
|---|---|
| 컴넷) (10.15) (0) | 2025.10.15 |
| 컴 네트윀)사진복습(10.06) (0) | 2025.10.06 |
| 컴퓨터 네트워크) 강의 정리 (2025.10.01) (0) | 2025.10.01 |
| 컴 네트웤)지난주 복습(10.01) (0) | 2025.10.01 |