MAC 주소의 정확한 사용법은 무엇입니까?


126

IP 주소는 계층 적이므로 인터넷의 라우터가 패킷을 전달할 방향을 알 수 있습니다. MAC 주소를 사용하면 계층 구조가 없으므로 패킷 전달이 불가능합니다. 따라서 MAC 주소는 패킷 전송에 사용되지 않습니다.

나는 그것이 아무 이유없이 거기에 앉아 있다고 생각하지 않습니다. 그래서 제 질문은 패킷 전송 중에 MAC 주소가 정확히 어디서 사용됩니까?

답변:


57

TL; DR> MAC 주소는 이더넷 네트워크 (및 WiFi와 같은 다른 유사한 표준)의 하위 레벨 구성 요소입니다. 이를 통해 장치는 로컬 물리적 네트워크 (LAN)의 컴퓨터와 통신 할 수 있으며 인터넷을 통해 라우팅 할 수 없습니다. 물리적 하드웨어는 이론적으로 전세계 어느 곳에 나 연결될 수 있기 때문입니다.

반대로 IP 주소는 전체 인터넷을 포괄하며 라우터는 대상에 도달하기 위해 여러 홉이 필요한 경우에도 데이터를 보낼 위치를 파악하기 위해 사용하지만 로컬 네트워크의 물리적 하드웨어와의 인터페이스에는 도움이되지 않습니다.

이더넷보다 더 나은 표준을 찾은 경우 MAC 주소를 사용할 수는 없지만 인터넷의 다른 사람이 들어 본 적이없는 경우에도 인터넷의 IP 트래픽이 계속 흐를 수 있습니다.

IP보다 더 나은 표준을 찾은 경우 (예 : 모든 IPv4 주소가 소진 된 경우 IPv6) 대부분의 이더넷 하드웨어는 수정없이 새로운 종류의 트래픽을 전달할 수 있으며 간단한 소프트웨어 / 펌웨어 업데이트로 나머지 대부분을 수정할 수 있습니다.

로컬 이더넷 (또는 wifi) 네트워크 기능을 사용하려면 MAC 주소가 필요합니다. 물리적 연결이 공유 되더라도 네트워크 장치가 직접 연결된 단일 장치의 관심을 끌 수 있습니다. 단일 조직 내에서 수천 개의 장치가 함께 연결된 경우에 중요 할 수 있습니다. 더 넓은 인터넷에서는 작동하지 않습니다.

이 질문에 대한 답을 실제로 이해하려면 OSI (때로는 7 계층) 모델 을 이해해야합니다 .

물리적으로 직접 연결되지 않은 별도의 시스템에서 실행되는 두 응용 프로그램간에 통신이 이루어 지려면 많은 작업이 필요합니다.

예전에는 각 응용 프로그램이 응용 프로그램에 도달하여이를 해독 할 수있는 적절한 신호를 생성하기 위해 실행해야하는 머신 코드 명령을 정확히 알고있었습니다. 모든 커뮤니케이션은 사실상 지점 간이었으며 소프트웨어는 배포 될 정확한 상황에 맞게 작성되어야했습니다. 분명히, 그것은 지속 불가능했습니다.

대신 네트워킹 문제는 계층으로 나뉘어졌으며 각 계층은 원격 시스템에서 일치하는 계층과 대화하는 방법과 로컬 시스템에서 계층 (아래)과 통신하는 방법을 알고있었습니다. 웹 브라우저는 토큰 링, 이더넷 또는 Wi-Fi 네트워크를 사용하는 컴퓨터에서 실행되는지 여부를 신경 쓸 필요가 없으며 하드웨어가 무엇인지 알 필요가 없습니다. 원격 기계가 사용합니다.

이 작업을 수행하기 위해 7 레이어 모델은 중첩 된 봉투와 같은 시스템을 사용합니다. 응용 프로그램은 데이터를 작성하고 운영 체제가 제공 할 수 있도록 봉투에 넣습니다. OS는 이것을 다른 봉투에 싸서 네트워크 드라이버로 전달합니다. 네트워크 드라이버는 이것을 다른 봉투에 싸서 물리적 케이블에 넣습니다. 등등.

맨 아래 레이어 인 레이어 1 은 물리 레이어입니다. 이것은 전선과 트랜지스터 및 전파의 층이며,이 층에서 통신은 대부분 단지 하나의 것 및 필요의 흐름입니다. 데이터는 물리적으로 연결된 모든 곳으로갑니다. CAT-5 케이블을 사용하여 컴퓨터의 네트워크 포트를 스위치에 연결합니다.

레이어 2 는 데이터 링크 레이어입니다. 이것은 구조와 기능에 일부 구조, 오류 감지 및 수정 기능, 메시지에주의를 기울여야하는 물리적으로 연결된 장치 (여기서 실제 연결은 실제로 Wi-Fi가 될 수 있음)에 대한 일부 표시를 제공합니다. 이것은 MAC 주소가 사용되는 계층이며 나중에 다시 올 것입니다. 그러나이 계층에서는 MAC 주소 만이 유일한 가능성은 아닙니다. 예를 들어, 토큰 링 네트워크에는 다른 데이터 링크 구현이 필요합니다.

계층 3 은 네트워크 계층입니다. 이것은 IP가 작동하는 계층입니다 (단, 네트워크 계층 프로토콜 중 하나는 아니지만). 이것은 컴퓨터가 "네트워크"의 어느 시스템 에나 도착할 수있는 메시지를 보낼 수있게하는 계층입니다. 문제의 머신을 직접 연결할 필요는 없습니다.

레이어 4-7 은 상위 레벨 프로토콜입니다. 하드웨어에서 멀어지고 응용 프로그램에 더 가깝습니다. 예를 들어, TCP는 IP 위에 위치하며 누락 된 메시지를 자동으로 재전송하는 메커니즘을 제공합니다.

따라서 MAC 주소는 계층 2에서 작동하며 서로 물리적으로 연결된 두 시스템이 동일한 물리적 연결을 공유하는 다른 시스템에서 무시할 메시지를 보낼 수 있습니다.

IP 주소 8.8.8.8을 사용하여 일부 데이터를 컴퓨터로 보내려는 응용 프로그램이 있다고 가정합니다.

레이어 3은 무엇보다도 IP 주소 8.8.8.8을 포함하는 봉투에 데이터를 싸서 레이어 2로 전달합니다.

계층 2는이 IP 주소를보고 직접 연결된 시스템이이 메시지를 처리 ​​할 수 ​​있는지 결정합니다. 해당 컴퓨터에있는 네트워크 카드의 해당 MAC 주소와 함께 직접 연결된 IP 주소를 선택하는 조회 테이블이 있습니다. 이 룩업 테이블은 네트워크 카드가 직접 연결된 다른 장치에 대한 질문을 할 수있는 ARP라는 프로토콜을 사용하여 구성됩니다. 이더넷은 특별한 MAC 주소 인 FF : FF : FF : FF : FF : FF를 예약하여 장치가 물리적으로 연결된 모든 장치와 통신 할 수 있도록 합니다.

IP 주소가 테이블에 있거나 ARP를 통해 확인할 수있는 경우 새 헤더의 MAC 주소를 사용하여 레이어 3 봉투를 레이어 2 봉투에 싸고 전체 번들을 레이어 1의 하드웨어에 전달합니다. 일치하는 MAC 주소를 가진 네트워크 카드는 메시지를 수신하고 네트워크 드라이버는 Layer 2 엔벨로프를 열고 운영 체제의 특정 IP 주소에서 메시지를받을 것으로 예상되는 부분까지 내용을 전달합니다.

또는 IP 주소가 로컬 네트워크에 없으면 새 엔벨로프는이 네트워크 인터페이스에 대해 구성된 기본 게이트웨이 (예 : 라우터)의 MAC 주소를 갖게되고 하드웨어는 패킷을 라우터로 전송합니다.

라우터는 계층 2 엔벨로프에서 고유 한 MAC 주소를 확인하고 레벨 2 패킷을 엽니 다. 레벨 3 엔벨로프의 IP 주소를보고 메시지가 다음에 어디로 가야하는지 알 수 있습니다. 이는 아마도 ISP의 라우터 일 것입니다. 라우터가 NAT (또는 이와 유사한)를 사용하는 경우 내부 IP 주소를 개인용으로 유지하기 위해이 시점에서 레벨 3 엔벨로프를 수정할 수도 있습니다. 그런 다음 ISP의 라우터의 MAC 주소로 주소가 지정된 새 레벨 2 봉투에 레벨 3 봉투를 싸서 메시지를 보냅니다.

외부 봉투를 제거하고 체인의 다음 단계로 주소가 지정된 새 봉투에 내용을 포장하는 과정은 메시지가 대상 시스템에 도달 할 때까지 계속됩니다.

그런 다음 메시지가 의도 한 수신자에게 도달 할 때까지 메시지가 레이어를 다시 걸 으면서 봉투가 계속 찢어지게됩니다. 메시지가 거기에 도착하고 실제로 원래 기계로 응답을 얻는 데 필요한 모든 단계가 있습니다.

그러나 그것은 모두 마술처럼 작동합니다!

네트워크 스위치는 MAC 주소를 사용하여 네트워크 트래픽 흐름을 최적화 할 수 있습니다. 이더넷 허브는 단순히 모든 들어오는 트래픽을 모든 포트로 전달하는 반면, 스위치는 패킷의 대상 MAC 주소가 연결된 단일 포트로만 트래픽을 전달할 수 있습니다. 이것은 네트워크의 유효 대역폭을 증가시킵니다. 스위치는 특정 포트를 대상으로하므로 불필요한 네트워크 세그먼트에서 트래픽을 전달하지 않습니다. 스위치는 ARP 또는 패킷 스니핑을 사용하여 어떤 장치가 어떤 포트에 연결되어 있는지 식별합니다. 스위치는 레이어 2 패킷의 내용을 완전히 무시합니다.


안녕하세요! 답변 해주셔서 감사합니다. 내가 읽은 한, 당신의 대답이 가장 좋습니다. 시나리오에 ARP 및 NAT와 같은 개념을 더 포함시킬 수 있다면 좋을 것입니다.
비슈누 비벡

1
ARP 및 네트워크 스위치에 대한 참조가 추가되었습니다. NAT가 MAC 주소와 관련이 없다고 생각합니다. 계층 3 기능입니다.
Bill Michell

@BillMichell : IPv6에서 MAC 또는 다른 로컬 ( '하드웨어') ID를 사용하여 IP를 작성할 수 있습니다.
Luciano

답은 커뮤니티 위키입니다. OP의 질문에 대답하는 데 도움이된다고 생각되면이 추가 정보를 포함하도록 편집 할 수 있습니다.
Bill Michell

TL; DR이 필요합니다.
AJMansfield

113

MAC 주소는 무엇입니까?

MAC 주소는 로컬 이더넷 기반 네트워크가 작동하도록하는 기본 수준입니다. 로컬은 네트워크 장치가 케이블 또는 WiFi를 통해 또는 네트워크 허브 또는 네트워크 스위치를 통해 직접 연결됨을 의미합니다.

네트워크 카드에는 각각 고유 한 MAC 주소가 있습니다. 이더넷으로 전송 된 패킷은 항상 MAC 주소에서 전송되어 MAC 주소로 전송됩니다. 네트워크 어댑터가 패킷을 수신하면 패킷의 대상 MAC 주소를 어댑터의 자체 MAC 주소와 비교합니다. 주소가 일치하면 패킷이 처리되고, 그렇지 않으면 삭제됩니다.

특별한 MAC 주소가 있습니다. 예를 들어 ff : ff : ff : ff : ff : ff는 브로드 캐스트 주소이며 네트워크의 모든 네트워크 어댑터에 주소를 지정합니다.

IP 주소와 MAC 주소는 어떻게 작동합니까?

IP는 이더넷 위의 계층에서 사용되는 프로토콜입니다. 예를 들어 다른 프로토콜은 IPX입니다. IP는 서로 다른 로컬 네트워크를 연결하여 회사 네트워크 또는 글로벌 인터넷을 형성합니다.

컴퓨터가 일부 IP 주소 xxxx로 패킷을 보내려고 할 때 첫 번째 확인은 대상 주소가 컴퓨터 자체와 동일한 IP 네트워크에 있는지 확인하는 것입니다. xxxx가 동일한 네트워크에 있으면 대상 IP에 직접 도달 할 수 있으며, 그렇지 않으면 구성된 라우터로 패킷을 보내야합니다.

현재 두 가지 IP 주소가 있기 때문에 상황이 더 나빠진 것 같습니다. 하나는 원래 IP 패킷의 대상 주소이고 다른 하나는 패킷을 보내야하는 장치의 IP입니다 (다음 홉, 마지막 대상 또는 라우터).

이더넷은 MAC 주소를 사용하므로 발신자는 다음 홉의 MAC 주소를 가져와야합니다. 이를 위해 사용되는 특수 프로토콜 ARP (address resolution protocol)가 있습니다. 발신자가 다음 홉의 MAC 주소를 검색하면 해당 대상 MAC 주소를 패킷에 쓰고 패킷을 보냅니다.

ARP는 어떻게 작동합니까?

ARP 자체는 IP 또는 IPX와 같은 이더넷 위의 프로토콜입니다. 장치가 주어진 IP 주소에 대한 MAC 주소를 알고 자 할 때 "누가 IP 주소가 yyyy입니까?"를 묻는 패킷을 브로드 캐스트 MAC 주소로 보냅니다. 모든 장치는 해당 패킷을 수신하지만 IP 주소가 yyyy 인 장치 만 "It 's me"패킷으로 응답합니다. 요청 장치는 응답을 수신하고 ARP 패킷의 소스 MAC 주소가 사용하기에 적합한 MAC 주소임을 알게되었습니다. 물론 결과는 캐시되므로 장치는 매번 MAC 주소를 확인할 필요가 없습니다.

라우팅

MAC 주소를 기반으로 한 라우팅이 없습니다. 저수준 이더넷 및 MAC 주소는 동일한 네트워크 (연결 또는 무선)의 모든 장치에만 도달 할 수 있습니다 . 사이에 라우터가있는 두 개의 네트워크가있는 경우 네트워크 A에있는 장치가 네트워크 B에있는 장치의 MAC 주소로 패킷을 보낼 수 없습니다. 네트워크 A에있는 장치는 네트워크 B에있는 장치의 MAC 주소가 없습니다. 이 MAC 주소에 대한 패킷은 네트워크 A의 모든 장치 (라우터)에 의해 삭제됩니다.

라우팅은 IP 수준에서 수행됩니다. 라우터가 위에서 설명한 "IP 주소와 MAC 주소는 어떻게 작동합니까?" 라우터는 고유 한 MAC 주소로 다른 IP 주소로 패킷을 수신합니다. 그런 다음 대상 IP 주소에 직접 도달 할 수 있는지 확인합니다. 그렇다면 패킷을 대상으로 보냅니다. 그렇지 않으면 라우터 자체에도 업스트림 라우터가 구성되어 있으며 해당 라우터로 패킷을 보냅니다.

물론 여러 라우터를 구성 할 수 있습니다. 홈 라우터에는 하나의 업스트림 라우터 만 구성되지만 인터넷 백본에는 큰 라우터에 큰 라우팅 테이블이 있으므로 모든 패킷에 가장 적합한 방법을 알 수 있습니다.

MAC 주소의 다른 사용 사례

  1. 네트워크 스위치는 모든 포트에서 볼 수있는 MAC 주소 목록을 저장하고 패킷을 볼 필요가있는 포트로만 패킷을 전달합니다.

  2. 무선 액세스 포인트는 종종 액세스 제어를 위해 MAC 주소를 사용합니다. 올바른 암호로 알려진 장치 (MAC 주소는 고유하고 장치를 식별)에 대한 액세스 만 허용합니다.

  3. DHCP 서버는 MAC 주소를 사용하여 장치를 식별하고 일부 장치에 고정 IP 주소를 제공합니다.


16
실제로 답변을 모르는 사람들이 이해할 수있는 방식으로 질문에 실제로 답변합니다.
푹신한

MAC / IP가 상호 작용하는 방식이 매우 흥미 롭습니다. 어쨌든 멋진 인포 그래픽 / 다이어그램을 만들려는 충동을 느낄 수는 없습니다!
NRGdallas

1
MAC 주소는 이더넷이 아닌 장치에도 사용되며 기본적으로 IP 스택과 함께 사용되는 모든 데이터 링크 계층을 보유한다고 기술 했습니까?
kriss

Wi-Fi MAC에 대한주의 할 점 : 일반적으로 고유하고 장치를 식별하는 데 사용할 있지만 스푸핑이 용이하고 무선으로 투명하게 전송됩니다. 연결에 사용 된 다른 암호화 / 인증이 없거나 다른 암호화 / 인증 메커니즘이 약한 경우 (예 : WEP) 공격자가 승인 된 장치를 가장하여 네트워크에 참여하는 것은 매우 사소한 일입니다.
Iszi

1
@Rick 맞습니다. 연결 대상 IP는 변경되지 않습니다. 그러나 인용 단락에서 패킷의 직접 대상에 대해 이야기했습니다. 라우터 일 수 있으며 연결 중에 라우터가 변경 될 수 있습니다. 두 번째 의견에 대해서는 텍스트를 "ARP 패킷의 소스 MAC 주소"로 변경했습니다. 나는 그것이 더 명확하기를 바랍니다.
베르너 헨지

47

MAC- 주소 (미디어 액세스 제어 주소)는 일반적으로 네트워크의 장치 식별자입니다. 따라서 모든 NIC (라우터, PC, 네트워크 프린터, 서버 등에있는 네트워크 인터페이스 컨트롤러)에는 MAC 주소가 있습니다. 일부 서버에는 둘 이상의 네트워크 카드가 내장되어 있으므로 여러 MAC 주소가 있습니다. MAC 주소의 길이는 6 바이트 (6 옥텟)입니다. 왼쪽은 가장 중요한 바이트이고 오른쪽은 가장 작은 바이트입니다. 아래 그림에서 볼 수 있듯이 처음 3 바이트는 조직 고유 식별자 입니다. 이 장치를 만든 제조업체를 나타냅니다.

조직 고유 식별자 목록은 다음과 같습니다 . Standards.ieee.org

위의 대안은 다음과 같습니다. MAC-Vendor-Lookup

알려진 일반적인 제조업체의 몇 가지 예 :

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (넷기어 주식회사)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (삼성 전자)

마지막 3 바이트 (3 옥텟)는 제조업체에서 임의로 할당합니다.

pjc50이 올바르게 언급했듯이 이더넷 네트워크의 MAC 주소는 스위치가 어느 패킷을 어디로 보낼지를 결정하는 데 도움이됩니다. Broadcast-MAC-Address도 있습니다. ff : ff : ff : ff : ff : ff는 Broadcast-MAC-Address에 사용됩니다. MAC 주소는 변경 될 수 있으므로 명확한 장치 식별자로 사용하십시오. MAC 주소는 ARP (Address Resolution Protocol) 프로토콜과 함께 사용됩니다. 작동 방식은 PC A가 자체 IP 주소, MAC 주소, 수신기의 IP 주소 및 위에서 언급 한 브로드 캐스트 주소 (ff : ff : ff : ff : ff)를 사용하여 ARP 요청을 PC B로 보냅니다. : ff). 그 후 PC B는 패킷이 자신에게 전송되었는지 여부를 확인합니다. 그렇다면 PC B는 자체 MAC 주소, IP 주소, 수신기의 MAC 주소 및 수신기의 IP 주소를 다시 보냅니다. 다른 장치는 패킷을 폐기합니다.

PC A와 B는 일반적으로 소위 ARP-Cache에 성공적인 연결을 저장합니다. PC가 연결을 저장하는 방법은 장치마다 다릅니다. IP 주소를 모르면 RARP (Reverse Address Resolution Protocol)를 사용하여 IP 주소를 얻을 수 있습니다. RARP를 사용하면 장치가 중앙 클라이언트에 연결하여 IP 주소를 묻습니다. 그러나이 방법은 오늘날 거의 사용되지 않습니다.

다음 기술은 MAC-48 식별자 형식을 사용합니다.

  • 이더넷
  • 802.11 무선 네트워크
  • 블루투스
  • IEEE 802.5 토큰 링
  • 대부분의 다른 IEEE 802 네트워크
  • FDDI
  • ATM (NSAP 주소의 일부로 전환 된 가상 연결 만 해당) 파이버 채널 및 직렬 연결 SCSI (World Wide Name의 일부로)

4
더 정확하게 "모든 장치 (...)은 MAC-주소를 갖는다."보다는 각 NIC를 갖고 MAC 주소 . (사용자 정의 MAC 주소를 설정하는 기능은 고려하지 않았습니다.) 모든 프린터에 네트워크 카드가 내장되어 있지는 않으며 많은 서버에 둘 이상의 네트워크 카드가 있으므로 둘 이상의 MAC 주소가 있습니다.
CVn

2
PC-1이 패킷을 PC-2로 보냅니다. 이제 스위치는 PC-1의 MAC 주소 만 읽고 테이블에 저장합니다. 작동 방식에 대한 자세한 내용을 보려면 다음을 읽으십시오. LAN 스위치 작동 방식 :)
Meintjes

3
또 다른 요점은 MAC 주소가 NIC가 폐기 할 내용과 처리를 위해 프로세서로 보낼 내용을 결정하는 방법입니다. 유선에서 발견 된 이더넷 프레임의 대상 MAC 주소는 NIC MAC 주소와 XOR되며 결과가 모두 0이면이 NIC를위한 프레임입니다.
bbayles

7
-1 : 질문은 MAC 주소가 아니라 MAC 주소가 어떻게 사용되는지를 물었습니다. 질문에 대한 답변의 유일한 부분은 끝에있는 글 머리 기호 목록이며 자세한 내용은 다루지 않습니다.
Kevin

4
이 그림은 wikipedia : en.wikipedia.org/wiki/File:MAC-48_Address.svg 에서 가져온 것입니다. 크리에이티브 커먼즈에 따라 라이센스가 부여 된 사진은 사용시 작성자에게 귀속되어야합니다.
Étienne

24

이들은 되는 이더넷 네트워크에서, 다수의 디바이스가 존재하고, MAC 어드레스는 패킷을 수신해야 할 장치를 지정 패킷 전송을 위해 사용된다. 이더넷 스위치는이를 사용하여 수신 패킷을 보낼 포트를 선택합니다.


5
이더넷은 원래 모든 매체가 물리적으로 동일한 매체를 공유하는 버스 매체였습니다 (이는 여전히 무선 네트워크에 해당됨). 논리적으로 그렇게 작동합니다.
LawrenceC

여전히 허브를 사용하는 네트워크의 경우에도 마찬가지입니다. :)
Doon

따라서 스위치는 단지 시설 일뿐입니다 (실제로 RJ-45 LAN으로 널리 보급되었습니다). 허브 나 802.11을 사용하는 IP 네트워크 없이도 IP 네트워크를 구축 할 수 있습니다.
kriss

7

이 경우 계층 구조를 잊어 버리는 것은 그리 중요하지 않습니다.

MAC 주소는 ISO / OSI 또는 TCP / IP 모델에서 계층 2 (링크 계층)의 주소입니다. IP 주소는 동일한 모델의 계층 3 (네트워크 계층)에서 가져옵니다.

계층 2 네트워크, 예를 들어 공통 이더넷 네트워크에는 연결된 모든 장비가 모든 엔드 포인트에서 모든 프레임 (계층 2 단위 데이터)을 수신 할 수있는 충돌 도메인이 있습니다. 그러나 네트워크 외부의 누구도 이러한 프레임을 수신 할 수 없습니다. MAC 주소는이 도메인의 주소입니다.

패킷은 계층 3 단위 데이터, 일반적으로 IP 패킷입니다. 그들은 하나 이상의 충돌 도메인을 통과합니다. IP 주소는이 도메인의 주소입니다.

스위치는 MAC 주소 테이블을 사용하는 계층 2 장치 및 전달 프레임입니다. 라우터는 계층 3 장치이며 IP 주소 테이블을 사용하여 패킷을 전달합니다.


6

이더넷은 통신하려는 다른 컴퓨터 (다른 MAC)가 네트워크 어댑터에서 직접 연결할 수 있다고 가정합니다. IP는 그렇지 않습니다. IP는 전 세계의 다른 IP에 도달 할 수 있다고 가정하고 현재 서브넷에서 도달 할 수없는 경우 라우터가 NAT에 상관없이 IP를 전달한다고 가정합니다. 게이트웨이 개념은 계층 2 또는 이더넷에 존재하지 않습니다.

스위치에 여러 대의 컴퓨터가 연결되어 있고 라우터를 통해 다른 네트워크 / 인터넷과 트래픽을 교환 할 필요가 없다면 IP를 가동 할 필요가 없습니다. 물론 거의 모든 OS와 응용 프로그램에서 항상 TCP / IP를 사용한다고 가정하기 때문에 응용 프로그램은 계층 2 위에 자체 프로토콜을 구현하거나 제공해야합니다.

항상 IP에서 '인터넷'을 기억하는 의미 '인터'정말이 트래픽을 얻기에 관한 한 의미 사이 보다 더 많은 네트워크 에서 너무 그 사용 분명히있을 수 있지만, 네트워크를 (하고있다).


첫 번째 단락은 완벽한 답변입니다! 조명!
Milind R

6

MAC 주소는 실제 전송에 사용됩니다. 이더넷 어댑터는 IP에 대해 아무것도 모릅니다. 따라서 이더넷 어댑터는 MAC 주소를 사용하여 데이터 패킷의 수신자를 지정합니다.

이더넷 어댑터가 IP에 대해 알고 있다면 IPv4에서 IPV6와 같은 새로운 프로토콜로 전환하기 위해 모든 펌웨어를 업그레이드해야합니다.

또한 MAC 주소에는 제조업체에 대한 일부 정보가 있습니다.


3
라우터는 MAC 주소를 사용하여 아무것도 라우팅하지 않습니다. 그들은 IP 주소를 사용합니다. 허브는 포트에서 수정되지 않은 트래픽을 복사하지만 트래픽이 다른 네트워크를 통과하지 않고 동일한 네트워크를 통과하므로 브리징이라고합니다.
LawrenceC

5

IPv4의 ARP (Address resolution protocol) 또는 IPv6의 NDP (Neighbor Discovery Protocol)가 IP 주소를 MAC 주소로 변환하여 프레임을 보내야하는 고유 호스트를 판별 할 때 사용됩니다.


이것은 매우 가깝지만 모든 사용법을 다루지는 않습니다. 이것이 MAC이 TCP / IP와 관련되는 방법이지만 MAC은 그 이상으로 사용됩니다. 이것은 내가 -1을주지 않은 첫 번째 대답입니다 (페이지 하단에서 작동).
Mark Henderson

@Mark Henderson 비판에 감사드립니다. 글쎄, 방금 질문에 대답하려고 시도한 How MAC addresses were used in packet transfer후 이더넷 수준에 있다고 가정했습니다. 그리고 네, 그것은 간단한 대답이지만, 나는 내 자신의 수준에 맞는 수준에서 대답하고 있습니다 :)
Jesper Jensen

3

다른 답변을 완료하려면 MAC 주소가 스위치보다 라우터에 더 중요하다고 덧붙입니다. 내가 의미하는 더 중요한 것은 스위치의 존재에 IP 네트워크에 대한 정말 필요하지 않은 것입니다. RJ-45 이전 20 년 전의 모습 로컬 IP 네트워크는 스위치없이 완벽하게 작동했습니다.

반면 IP 네트워크는 라우팅을 지원하기 위해 고안되었으며 MAC 및 IP 주소 지정 체계에 의존합니다.

IP 네트워크에서 패킷을 라우팅한다는 것은 대상 시스템에 직접 액세스 할 수 없을 때 최종 IP 대상에 가장 가까운 다른 시스템 (게이트웨이)으로 먼저 전송됨을 의미합니다.

네트워크 패킷 헤더와 관련하여 게이트웨이로 전송 된 패킷은 이더넷 레벨 헤더에서 게이트웨이의 MAC 주소를 대상으로하며 IP 레벨 헤더는 변경되지 않습니다.

또한 MAC 주소는 일반적으로 오늘날 MAC-48 (물리적 장치 주소) 또는 EUI-48 (논리적 장치 주소) 또는 더 큰 네트워크에서 사용되는 8 바이트 EUI-64 주소를 의미합니다. 역사적으로 MAC은 이더넷 기술을 위해 Xerox에 의해 개발되었으며 나중에 장치를 식별해야하는 다른 네트워크 전송 기술 (802.11, Bluetooth, FibreChannel, BlueTooth)에 재사용되었습니다.

내가 말했듯이 이더넷 대신 다른 레이어 2를 사용할 수 있지만 대부분 MAC 주소를 네트워크 식별자로 사용하고 기본 MAC / IP 대응 체계가 유지되며 여전히 ARP를 사용할 수 있습니다. 내가 아는 한 모든 IP 스택은 MAC 주소와 IP 주소 사이의 대응 테이블에 의존합니다.

비 IP 스택에는 다른 종류의 장치 노드 식별자가 있습니다. 예를 들어 X.25는 MAC 주소에 의존하지 않지만 연결별로 설정된 가상 채널에 의존하거나 ATM 장치는 SNPA를 사용하여 ATM 네트워크에서 식별됩니다. 그러나 X.25 나 ATM은 IP 스택이 아니며 ATM에서도 MAC 주소 형식을 SNA의 일부로 ATM의 IP 주소와 거의 같은 MAC 주소 형식을 사용합니다.


라우터는 MAC 주소를 신경 쓰지 않습니다. 최소 2 개의 NIC 각각에 대한 서브넷 할당은 신경 쓰지만 실제로 MAC 주소는 신경 쓰지 않습니다. 이들은 IP에서 MAC으로 또는 그와 유사한 것이 아니라 한 IP에서 다른 IP로 트래픽을 전달 (즉, 복사)합니다.
LawrenceC

4
@ultrasawblade, 귀하의 진술은 터무니 없습니다 . 라우터가 이더넷 네트워크에 연결된 경우 이더넷 프로토콜을 사용하여 통신해야합니다. IP 패킷은 이더넷 프레임에 캡슐화됩니다. 즉, 모든 ** 직접 이더넷 호스트 ** 시스템의 mac 주소를 알아야합니다. 계층 3 디바이스는 계층 3 프로토콜에서 마술처럼 통신하는 것이 아니라 계층 2 프로토콜 내에 계층 3 프로토콜을 캡슐화 한 다음 계층 1 매체를 통해 전송해야합니다.
Zoredache

3
나는 당신의 첫 문장에 동의하지 않습니다 – 그것들은 스위치보다 라우터에 "더 중요하지 않습니다"– 전체 이더넷 네트워크에서 모두 동일하게 중요합니다.
Mark Henderson

1
기본 레이어 2를 완전히 다른 것으로 바꿀 수 있지만 (무엇을 모르겠지만) IP는 여전히 똑같이 작동합니다. IP 프로토콜 (계층 3)은 개별 호스트가 MAC 또는 다른 체계에 의해 처리되는지 여부는 상관하지 않습니다. 물론 IP-MAC 매핑을 유지해야하지만 ARP가 실제로 계층 3 또는 계층 2에 속하는지 알기가 어렵습니다. 핵심은 계층 2 프로토콜이 이더넷 일 필요는없고 IP가 신경 쓰지 않는 것입니다 레이어 2 프로토콜이 무엇인지 알아야합니다.
LawrenceC

2
@ Mark Henderson : 나이가 들었을 때 스위치가 없었던 시간을 기억합니다. IP 네트워크가 스위치없이 작동 할 수있는 중요한 장비는 아닙니다. 스위치는 기존의 데이터 네트워크 레이아웃 만 사용했습니다. 우리가 현재 그것들을 어디에나 가지고 있다면, 오래된 버스를 대체하는 RJ 포인트 투 포인트 기술의 결과입니다. 다시 말해, MAC 주소는 스위치 작동을 위해 고안되지 않았습니다. 반면 IP 네트워크는 라우팅 목적으로 개발되었으므로 MAC-IP 관계가 중요합니다.
kriss

2

스위치 전 일 (허브)로 돌아가십시오.

사람들이 컴퓨터 인 경우 MAC 주소는 이름입니다.

많은 사람들 (컴퓨터)이 같은 전화 통화를하고 있다고 가정합니다. 모두가 동시에 이야기하고 있습니다.

여러분 (한 대의 컴퓨터)은이 대화 내용을 모두들을 수 있지만, 어떤 내용을들을 지 모른다면, 누군가가 문장의 시작 부분에 당신의 이름 (MAC 주소)을 말할 때까지 (패킷).

"FRED, THERE IS ICE CREAM!"

물론, 당신은 또한 방송 주소로 전송 된 문장을 듣습니다 . 누군가 고함을 지르고

"EVERYONE, THERE IS ICE CREAM!"

더 많은 사람 (컴퓨터)이 전화 회의에 참여할수록 더 많이 걸러 내야합니다. 기술 고급 및 스위치를 통해 한 사람 (컴퓨터 / MAC)과 직접 대화 할 수 있으므로 모든 노이즈를 필터링하고 더 많은 대역폭을 확보하기 위해 열심히 노력할 필요가 없습니다.

IP는 기본 비유와 매우 유사하지만 MAC 주소 지정에 더 많은 기능과 계층이 있습니다. OSI 모델 의 계층 2와 3 .


미리 전환 된 날로 다시 생각할 필요가 없습니다. MAC 주소는 살아 있고 현재 이더넷 어댑터를 떠나는 모든 단일 패킷에 사용됩니다 .
Mark Henderson

매우 사실입니다. 그러나 그것은 비유에 도움이됩니다. 그리고 NIC는 여전히 같은 방식으로 동작합니다.
랜디 제임스

2

"버스"(이더넷 네트워크)에 여러 개의 주소가 연결되어 있으므로 MAC 주소가 필요합니다. 발신자는 수신자를 식별 할뿐만 아니라 수신자를 식별 할 수 있어야합니다.

여러 발신자와 수신자가 동일한 회선을 공유하고 메시지가 특정 수신자에게 전달되고 발신 발신자를 식별해야하기 때문에 모든 하드웨어 버스는 주소 지정이 필요합니다.

I2C, PCI, 이더넷으로 이름을 지정하십시오.

하드웨어 수준 주소는 특정 물리적 네트워크에만 국한되어 있기 때문에 인터 네트워킹에 여러 주소 (IP 주소 및 하드웨어 주소)가 있습니다. 데이터 그램이 네트워크에서 네트워크로 이동함에 따라 네트워크 레벨 주소를 유지하는 경향이 있지만 하드웨어 주소는 여러 번 변경됩니다. 일부 네트워크를 통과 할 때는 하드웨어 주소가 전혀없고 다른 네트워크에서는 이더넷 MAC이 아닌 하드웨어 주소가있을 수 있습니다. 물론 네트워크 주소는 NAT 게이트웨이로 다시 쓸 수 있지만 패킷이 라우터를 통과 할 때마다 하드웨어 주소가 제거되고 다른 주소로 바뀝니다.


1

예전에는 네트워크가 공유 버스였습니다. 네트워크로 연결된 각 장치는 동일한 회선 또는 허브에 연결되어 전송 한 모든 패킷이 네트워크의 모든 장치에서 수신되었음을 의미합니다.

네트워킹 소프트웨어는 더 간단했습니다. 모든 장치에는 고유 한 MAC 주소가 있습니다. 다른 네트워크 일 필요는 없습니다. 동일한 네트워크에있는 두 개의 장치가 동일한 주소를 갖지 않도록하는 것이 전부였습니다.

장치가 다른 장치와 통신하기를 원하면 수신자의 MAC 주소가 포함 된 패킷을 전송하고 수신자는 네트워크에서 해당 장치를 선택합니다. 다른 모든 장치는 무시합니다. MAC 주소로 주소가 지정되지 않았습니다.

시간이 지남에 따라 사람들은 너무 많은 장치를 네트워크에 연결했고 트래픽을 따라갈 수 없었기 때문에 네트워크 분리를 시작했으며 스위치가있는 두 개의 네트워크를 연결했습니다. 이 스위치에는 각 네트워크의 어느 MAC 주소를 알려주는 거대한 테이블이 있습니다. 한 네트워크에서 다른 네트워크의 MAC 주소로 주소가 지정된 패킷을 본 경우 다른 네트워크로 메시지를 복사합니다. 그러나 모든 메시지를 복사하지는 않고 다른 네트워크로 이동해야하는 메시지 만 복사합니다.

이로 인해 정체가 줄어들고 더 많은 장치를 네트워크로 연결하고 더 많은 전체 트래픽을 처리 할 수있었습니다. 이것은 패킷 교환 네트워크 입니다.

그러나 모든 문제를 해결하지는 못했고 스위치 테이블이 커질수록 네트워크 속도가 느려져 큰 단점이있었습니다. 스위치와 상호 연결된 50 개의 서로 다른 네트워크에 5,000 대의 컴퓨터를 연결 한 경우 각 스위치는 5,000 개의 MAC 주소를 모두 알고이를 기반으로 패킷을 라우팅해야했습니다.

대학과 같은 다른 기관의 사람들이 네트워크를 연결하기를 원하고 필요한 테이블이 엄청나게 될 때까지 큰 문제가되지 않았습니다. 오늘날 수십만 개의 MAC 주소를 추적하는 것은 큰 문제가되지 않지만 1970 년대에는 메모리와 속도가 제한된 컴퓨터 자체가 스위치였으며 패킷을 추적하고 신속하게 몇 개의 패킷을 전환했습니다 백은 문제였다.

해결책은 IP 네트워크로 가고 라우터를 사용하는 것입니다. 이것은 MAC 주소 기반 교환 패킷 네트워크 위에 구축됩니다. 원시 데이터가 아닌 패킷에 이제 IP 패킷 (패킷 내의 패킷)이 포함됩니다.

이제 더 큰 네트워크가 라우터에 연결되었습니다. 이들은 MAC 주소가있는 패킷을 볼 때까지 기다린 다음 IP 패킷을 꺼내고 IP 주소를 검사합니다. 그런 다음 IP 패킷을 새 MAC 주소 수신자가있는 다른 패킷으로 다시 랩핑하여 새 네트워크로 보냅니다. 해당 MAC 주소는 새 네트워크의 다른 라우터에 대한 것일 수도 있지만 IP 주소가있는 시스템 일 수도 있습니다.

오늘날의 네트워크에서는 허브와 버스가 거의 보이지 않으며 (매체가 기본적으로 공유되는 무선 네트워크 제외) 대신 내 컴퓨터가 스위치에 직접 연결되어 라우터에 연결됩니다.

내 컴퓨터에는 다양한 알고리즘과 프로토콜이 있으므로 네트워크 설정 방법을 알고 있습니다.

로컬 네트워크의 컴퓨터로 IP 패킷을 보내면 내 컴퓨터는 올바른 MAC 주소를 가진 패킷에 넣습니다. 스위치는 로컬로 올바른 네트워크로 스위치를 전환하고 올바른 MAC 주소를 가지고 있기 때문에 대상 컴퓨터가 수신합니다. IP 패킷을 꺼내고 IP 주소도 의도 된 것인지 다시 확인하고 그에 따라 조치합니다.

인터넷 어딘가에있는 컴퓨터 용 IP 패킷을 보내면 내 컴퓨터는 라우터로 보내는 것을 알고 있으므로 라우터의 MAC 주소가있는 패킷에 넣습니다. 라우터가 켜져있는 네트워크에 도달 할 때까지 네트워크에서 로컬로 다시 전환됩니다. 그런 다음 라우터가 가져와 IP 패킷을 꺼내고 IP 패킷을 검사 한 다음 인터넷에 대한 지식을 바탕으로 다른 라우터로 보냅니다. 의도 한 라우터 또는 대상 컴퓨터의 MAC 주소를 사용하여 패킷으로 포장하는 다른 네트워크.

내가 자세히 살펴본 많은 세부 사항과 모든 것이 작동하게 만드는 정말 흥미로운 알고리즘과 프로토콜이 있지만 MAC 주소가 오늘날에도 우리에게 어떤 영향을 미치는지에 대한 기본적인 이야기입니다.


1
당신은 잘 시작했지만 상호 연결된 네트워크에 대해 이야기하기 시작하는 중간에 그것을 잃었습니다. 스위치는 90 년대까지 일반적이지 않았지만 20 년 전에 라우팅이 존재했습니다.
Mark Henderson

-1

근본적인 차이점은 제조시 MAC이 제조업체에 의해 할당되고 연결시 IP 주소가 할당된다는 것입니다.

MAC은 네트워크에 연결하기 전에 장치를 식별하는 데 사용될 수 있기 때문에 필요 합니다. 그러나 정적으로 할당되기 때문에 거의 무작위로 배포되므로 단일 네트워크 이상을 효율적으로 라우팅하기에 적합하지 않습니다 (행구상의 모든 장치가 지구상의 다른 모든 장치에 대한 거대한 라우팅 테이블을 가져야 함) ). 따라서 IP 주소는 연결시 할당되기 때문에 필요하며 할당 된 방식으로보다 효율적인 장거리 라우팅이 가능합니다 (IP를 사용하면 대부분의 장치는 인접한 네트워크 만 알면 됨).

IP 주소 만있는 경우 IP 주소가 할당되지 않은 장치는 자신에게 어떤 메시지가 있는지 알 수 없습니다. 이 DHCP가 귀하를위한 것이며 다른 사람도 같은 시간에 주소 할당을 요청하는 것이 아니라고 어떻게 판단하십니까?

물론 MAC은 패킷 전송의 다른 부분에도 사용되지만, 대부분의 경우는 거의 부수적이며 (적어도 이론적으로는) 동적 할당 번호 (예 : IP 주소)로 대체 될 수 있습니다.


MAC 주소를 계속 사용하지 않은 이유 는 +1입니다 .
deed02392

3
첫 번째 단락은 기술적으로 정확하지만 근본적인 차이는 아닙니다. 근본적인 차이점은 MAC은 이더넷에 속하고 IP는 TCP / IP에 속한다는 것입니다. 여러 계층 2 프로토콜 (예 : ATM)을 통해 TCP / IP를 실행할 수 있으며 Etherhet을 통해 실행되는 TCP / IP 이상이 있습니다. "네트워크에 연결하기 전에"와 같은 것은 없지만 "DHCP에서 IP 주소를 가져 오기 전에"는 있습니다. 그러나 MAC은 OSI 모델에서 다른 계층에 있기 때문에 여전히 사용됩니다. 마지막 단락은 완전히 잘못 되었습니다. 네트워킹에서 MAC 주소를 대체 할 수 는 없습니다 .
Mark Henderson

@MarkHenderson : 필자의 요점은 이더넷에 속하는 MAC과 TCP / IP에 대한 IP는 거의 역사적 사고입니다. 이론적으로 전체 인터넷 스택을 처음부터 다시 디자인하면 (OSI 및 다른 네트워크와의 호환성은 무시) 대부분의 공장 할당 번호 (예 : MAC)를 동적 할당 번호 (예 : IP)로 대체 할 수 있습니다. 동적으로 할당 된 수를 획득하기 전에 전송 / 수신해야하는 많은 패킷이 있으므로 공장에서 할당 한 전역 고유 식별자가 필요합니다.
Lie Ryan

@MarkHenderson : IMO, MAC이 계층 2이고 IP가 계층 3이기 때문에 MAC과 IP가 필요하다고 말하는 것은 "인터넷을 그렇게 설계했기 때문에 필요합니다"라고 말하는 것과 같습니다. 요점을 놓치고 유용한 정보를 제공하지 않습니다. 도대체 무엇이. 여기서 대답하는 것은 문제의 특성으로 인해 공장 할당 및 동적 할당 식별자가 모두 필요한 이유와 인터넷 스택에서 발생하는 것이 무엇입니까? (동적 할당 ID가없고 라우팅 효율이 떨어짐 공장에서 할당 한 ID가없는 경우 동적 ID를 할당하기 전에 장치를 고유하게 주소 지정).
Lie Ryan

@LieRyan, 사실 우리 는 PC의 MAC 주소를 변경할 수 있습니다 .......
Pacerier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.