답변:
주요 차이점은 IP 주소는 네트워크 프로토콜 인 IP에 의해 사용되고 MAC 주소는 이더넷에 의해 링크 계층 (2) 프로토콜에 의해 사용된다는 것입니다. IP는 다른 계층 2 프로토콜을 통해 실행될 수 있으므로 "미디어 액세스"기능이 포함되어 있지 않습니다. 직렬 회선, 이더넷, DSl, ISDN 등을 통해 IP를 실행할 수 있습니다.
예를 들어 DHCP는 이더넷을 통한 동적 IP 주소를 제공합니다. DHCP 서버는 MAC 주소가 필요하므로 PC에 IP 주소를 할당 할 수 있습니다.
이것을 보는 또 다른 방법은 반대의 질문을하는 것입니다. MAC 주소가 이미 하드웨어에 할당되어 있는데 왜 IP 주소가 필요한가요?
이 내용은 Security Now 팟 캐스트 ( HTML transcript ) # 29에서 논의되었습니다 .
MAC 주소를 사용하면 컴퓨터가 단일 컴퓨터와 직접 통신 할 수 있습니다. 그러나 도착하는 방법을 알기 위해서는 패킷을 라우팅해야합니다. 각 컴퓨터에 글로벌 MAC 주소 조회 테이블이있는 것은 비현실적입니다.
반면에 IP 주소는 계층 적으로 구성됩니다. 당사의 컴퓨터는 LAN에있는 IP 주소를 결정하고 나머지는 LAN의 게이트웨이 (예 : 홈 라우터)로 전송됩니다. LAN을 떠난 후 연속 라우터는 IP 주소를보고 패킷을 다른 라우터로 라우팅합니다. 결국 LAN에 대상 IP 주소가있는 라우터는 MAC 주소를 식별하고 대상 컴퓨터로 패킷을 보낼 수 있습니다.
네트워크 스택에서 서로 다른 계층을위한 것입니다. MAC 주소는 이더넷 네트워킹 계층에 관한 것이고 IP 주소는 IP 계층에 관한 것입니다. 이더넷이 없기 때문에 MAC이없는 SLIP와 같은 다른 전송을 통해 IP를 사용할 수 있습니다. 원하는 경우 이더넷을 통한 IP와 다른 프로토콜을 사용할 수도 있습니다.
SLIP 연결을 통해 전화를 걸면 하나의 IP 패킷이 MAC과 연결되지 않은 상태로 시작한 다음 인터넷을 통해 최종 IP 대상으로 전달 될 때 한 라우터에서 다른 라우터로 홉핑 할 때 다른 MAC을 가질 수 있습니다.
다른 질문으로 귀하의 질문에 대답 할 수 있습니다. 전화 번호가 있는데 왜 사회 보장 번호 / 국가 식별 번호가 필요한가요?
다시 말해, 그들은 다른 목적으로 사용됩니다. 하나는 자신이 누구인지 식별하기위한 것이고 (SSN, MAC), 다른 하나는 연락 방법 (전화 번호, IP 주소)을 정의하기위한 것입니다.
또한 SSN (예 : 다른 국가)이없는 경우 전화를 통해 다른 사람에게 연락 할 수 있습니다. MAC이없는 경우 인터넷을 통해 다른 사람에게 연락 할 수있는 것처럼 (다른 유형의 링크 계층) . 서로 다른 링크 계층에는 데이터 패킷의 대상과 소스를 식별하는 다른 방법이 있습니다.
예를 들어 보자
회사에서 구직을 신청할 경우 신원을 몰라도 그 사실을 알 수 있습니까? 확실히 .... 그래서 실제 신원 증명은 Mac 주소입니다
회사에 가입하면 회사 직원들과 의사 소통 할 다른 직원 ID를 제공합니다. IP 주소입니다.
회사를 변경하면 직원 ID를 수정할 수 있지만 실제 정보는 절대 변경할 수 없습니다 (나이, 이름 등).
귀하의 질문은 매우 합법적 인 것입니다! 사실은 MAC 주소 지정 시스템이 없어도 이론적으로 IP 전용 시스템을 만들고 제대로 작동 할 수 있다는 것입니다. 데이터 링크 계층은 MAC 필터링을 무시하고이 기능을 네트워크 계층에 남겨두고 자체 IP 주소에 따라 필터링하도록 만들 수 있습니다. 이러한 시스템은 UART (예 : RS232) 포트를 통한 장치 연결 기반 네트워크와 같이 과거에 존재했습니다. 분명히 이러한 네트워킹 인터페이스는 MAC 주소 나 다른 형태의 고유 한 물리적 ID를 전달하지 않았습니다. 그러나 장치가 각 장치에 허용 된 미리 정해진 수의 IP 주소보다 더 많은 IP 주소를 얻지 못하게 할 방법이 없기 때문에 IP 주소를 중앙 집중적으로 할당 할 수 있습니다 (예 : DHCP 서버 등). 또한, 각 장치를 명확하고 개별적으로 식별하는 것은 어려울 것입니다. 적어도 하위 네트워크 내에서 고유 한 MAC 주소는 고유 식별 토큰으로 사용됩니다. 물론 장치에 IP 주소를 개별적으로 할당하면 문제를 해결할 수 있지만 네트워크에 많은 장치가있는 경우 그러한 체계를 설정하고 유지 관리하는 것은 비현실적입니다.