IP를 사용하지 않고 이더넷 네트워크를 만들 수 있습니까


14

ISO-OSI 모델에서 알 수 있듯이 MAC 주소는 IP 주소와 다른 계층에서 작동합니다. 이것은 나에게 분명하다.

이더넷 (LAN)은 IP 주소를 사용하여 통신을 수행하는 것이 아니라 MAC 주소를 사용한다는 점을 받아 들일 수 있습니다. 이 MAC 주소는 계층 적으로 정의되어 있지 않으므로 LAN 외부로 라우팅하는 데 사용할 수 없습니다. 또한 IP가 대규모 인터넷을 통한 라우팅을 수행하는 가장 좋은 방법이라는 것도 알고 있습니다. 내가 완전히 확신하지 못하는 것은 MAC 주소가 LAN에서 통신하는 가장 좋은 방법이라는 것입니다


내 질문은 다음과 같습니다.

  1. 이더넷이 IP 주소를 사용하여 메시지를 보낼 수 없습니까? 나는 그것이해야한다고 말하지 않고 단지 그렇게 할 수 있는지 묻고 있습니다.
  2. 이더넷이 통신에 MAC 주소를 사용하므로 장치에 IP 주소가없고 MAC 주소 만있는 이더넷 네트워크를 만들 수 있습니까?

이더넷 네트워크는 장치에 IP 주소가없는 네트워크입니다. 지적한 바와 같이 TCP / IP 네트워크는 완전히 다른 것이며 IP는 IEEE 802.3, 802.11 또는 802.5를 통해 실행되는지 여부를 신경 쓰지 않습니다.
miken32

답변:


5

이더넷이 자체 데이터 링크 계층 주소 대신 IP 주소를 사용할 수 있습니까? 어떤 레이어 3 프로토콜을 사용했는지에 대해 불가지론을 원한다면 확실히 아닙니다.

레이어를 혼합하여 일치시킬 수 있도록 네트워킹 프로토콜을 레이어로 설계합니다.

이더넷은 원래 Bob Metcalfe 등이 Xerox PARC에서 네트워크 계층에 구애받지 않기 위해 개발했습니다. 그 목표는 TCP / IP 액세스뿐만 아니라 Xerox 고유의 XNS 네트워크 프로토콜 스택 / 스위트를위한 것이기 때문입니다.

DEC (Digital Equipment Corporation)는 DECnet 프로토콜 스택 / 스위트에 주로 사용하는 또 다른 얼리 어답터가되었습니다.

80 년대 후반과 90 년대 초반에는 회사 이더넷 LAN에서 실행되는 경쟁 LAN 프로토콜 스위트 (TCP / IP와 완전히 독립적)가 많이있었습니다. XNS와 DECnet 외에도 Apple의 AppleTalk (EtherTalk), Novell의 IPX, Banyan VINES, NetBEUI, DLC / LLC, IBM SNA, OSI / ISO 등이 있습니다.

따라서 IP없이 이더넷을 사용할 수 있습니다. 많은 기업 네트워크가 80 년대와 90 년대에 해냈습니다.

이더넷은 실행중인 Layer-3 (Network Layer) 프로토콜에 신경 쓰지 않도록 설계 되었기 때문에 회사 LAN이 다양한 공급 업체 장비의 혼합을 지원하는 것이 상대적으로 쉬웠으며 LAN이 IPv4를 추가하는 것이 상대적으로 쉬웠습니다. 인터넷이 90 년대 중반에서 후반에 시작되었을 때 지원이 가능해졌으며, 이제 IPv6 지원을 추가하는 것이 상대적으로 쉬웠습니다.


1
상황에 맞는 답변을 주셔서 감사합니다. 질문의 두 번째 부분에서 조금 더 확장했으면 좋겠습니다. 네트워크 계층 프로토콜을 사용하지 않고 작동하는 이더넷 기반 LAN을 만들 수 있습니까? 교차 호스트 이더넷 연결을 다른 호스트에 설정 한 경우 IP를 사용하여 해당 호스트와 통신해야하는 이유는 무엇입니까? TCP over IP 대신 MAC over TCP 를 사용할 수 있습니까?
jj_

4

이더넷이 통신에 MAC 주소를 사용하므로 장치에 IP 주소가없고 MAC 주소 만있는 이더넷 네트워크를 만들 수 있습니까?

모든 소프트웨어를 처음부터 작성했다면 확실히 할 수 있습니다. 소프트웨어가 해당 프로그램에 해당하는 IP 주소를 받아 들일 수있는 곳이라면 어디에서나 MAC 주소를 받도록하십시오. 모든 시스템 호출을 사용하여 IP 주소 대신 원시 이더넷 패킷을 보내면 작동하지만 큰 번거 로움이 될 것입니다.

일반적으로 네트워크의 MAC 주소는 어떤 패턴도 따르지 않습니다. 제조업체가 하드웨어에 태 웁니다. 그들은 길고 부피가 크다. 지금은 C8-60-00-CA-4B-9A입니다. 내 옆의 컴퓨터는 00-40-F4-48-1B-88입니다.

머신이 서로 대화 할 수 있도록하기 위해 각 머신에 네트워크의 다른 모든 머신의 모든 MAC 주소에 대한 하드 코딩 된 목록을 제공하여 패킷을 보낼 위치를 알 수 있습니다. 이것은 오류가 발생하기 쉬운 많은 오류이며 네트워킹 하드웨어를 변경할 때마다 새로운 MAC 주소를 반영하도록 모든 목록을 변경해야합니다.

이는 매우 번거로운 일이므로 네트워크의 컴퓨터가 브로드 캐스트 패킷을 사용하여 서로의 MAC 주소를 자동으로 검색하는 방법을 찾게 될 것입니다. 그런 다음 의미있는 주소로 자신을 식별 할 수있는 방법을 제공하므로 "telnet C8-60-00-CA-4B-9A"와 같은 명령을 입력해야합니다.

이것이 정확히 IP가하는 것임이 밝혀졌습니다. MAC 주소를 하드 코딩하는 대신 의미있는 숫자를 사용하여 네트워크의 호스트를 처리하는 방법입니다. IP 위에 DNS를 추가하면 "telnet webserver"와 같은 명령을 입력 할 수 있습니다.

이더넷이 IP 주소를 사용하여 메시지를 보낼 수 없습니까? 나는 그것이해야한다고 말하지 않고 단지 그렇게 할 수 있는지 묻고 있습니다.

MAC 주소는 6 바이트의 정보이고 IP 주소는 4 바이트에 불과하므로 어떤 종류의 1 대 1 매핑도 수행 할 수 없습니다. IP 주소 (네트워크의 다른 호스트와 통신하려는 소프트웨어에서 제공)에서 MAC 주소 (패킷에 넣을)를 찾는 방법이 필요합니다.

이를 수행하는 한 가지 (하드 코어) 방법은 네트워크의 모든 시스템에 들어가서 상위 2 바이트를 0 (또는 동일한 다른 고정 숫자)으로 만들어 하드웨어 MAC 주소를 IP 주소처럼 보이도록 변경하는 것입니다. 네트워크에있는 모든 컴퓨터에 대해) 아래 4 바이트를 네트워크에서 원하는 "IP 주소"로 설정하십시오. (대부분의 네트워크 카드를 사용하면 공급 업체 할당 MAC 주소를 입력하고 수정할 수 있습니다)

이 기능을 실제로 사용하려면 다음으로이 시스템을 실제로 사용하기 위해 네트워킹 스택의 코드를 해킹해야합니다. 기본적으로 ARP와 관련된 모든 것을 제거합니다 (IP가 IP 주소를 MAC 주소로 변환하는 데 사용하는 방법). IP 헤더를 작성 / 읽는 부분을 제거했습니다. 대신, 주소 wxyz에서 호스트로 IP 패킷을 보내면 DEST 주소가 00-00-wxyz로 설정된 이더넷 프레임을 작성하는 매우 간단한 코드로 모든 것을 대체하십시오.

또한 패킷의 수신자에게 해당 프로토콜 (UDP, TCP)을 나타내는 방법이 필요합니다. 기존 필드를 재정 의하여 이더넷 헤더의 어딘가에이를 붙일 수 있습니다. 소스 주소의 상위 2 바이트 중 하나를 사용할 수 있습니까? 이는 대상 시스템의 수신 기능에는 영향을 미치지 않지만 일부 스위치를 망칠 수 있습니다. 이더넷 프레임의 시작 또는 끝에 프로토콜을 추가하고 페이로드 크기를 1 씩 늘릴 수 있지만 IP 헤더 냄새가 나기 시작합니다.

이 모든 일이 당신을 어떻게 사겠습니까?

먼저 모든 발신 패킷에서 ARP 테이블 조회의 오버 헤드를 줄입니다. 아마도 마이크로 초 정도일 것입니다.

IP 헤더 체크섬 계산 작업과이를 유지하는 데 필요한 메모리를 저장합니다. 이것은 현대 하드웨어에서는 중요하지 않습니다.

IP 헤더가 없으므로 네트워크의 모든 패킷에 16 바이트를 저장합니다. 응용 프로그램에 따라 더해질 수 있습니다.

가장 큰 장점은 ARP 요청을 할 필요가 없다는 것입니다. 표준 IP 패킷을 새 호스트로 보내면 밀리 초가 걸리고 예측할 수없는 ARP 교환이 트리거됩니다. 대기 시간과 지터에 매우 민감한 일부 응용 프로그램의 경우 큰 이득이 될 수 있습니다.

일부 매우 특수한 응용 프로그램의 경우 실제로 수행하는 것이 좋습니다. 한 번은 ARP 시퀀스가 ​​발생하지 않고 지연 및 지터가 발생하는 것을 피할 수 있기 때문에 모든 호스트 간 통신에 브로드 캐스트 UDP 패킷 만 사용하는 실시간 시스템을 사용했습니다. 또한 한 번은 리소스 제한이있는 임베디드 시스템에서 작업했으며, 모든 ARP와 넷 마스크 및 추가 체크섬을 구현하는 데 필요한 모든 복잡성과 메모리를 저장했기 때문에 IP 패킷 내부에서 UDP 페이로드를 직접 전송하여 작동했습니다 (IP 헤더 없음).


1

이더넷이 IP 주소를 사용하여 메시지를 보낼 수 없습니까? 나는 그것이해야한다고 말하지 않고 단지 그렇게 할 수 있는지 묻고있다.

이더넷이 6 바이트 주소 대신 IPv4와 같은 4 바이트 주소를 사용했을 수 있습니다. 그들이 지금까지 숫자가 부족했을 때 그들이하지 않은 것이 좋을 것입니다.

이더넷이 통신에 MAC 주소를 사용하므로 장치에 IP 주소가없고 MAC 주소 만있는 이더넷 네트워크를 만들 수 있습니까?

IP 주소 대신 MAC 주소로 작동하는 프로그램이있는 경우 가능합니다. 물론 당신은 그 네트워크에 갇혀있을 것이며 어떤 해커 없이는 다른 사람들에게 접근 할 수 없습니다.

라우팅을 수행하려는 경우 특히 다른 네트워크에서 이더넷과 다른 계층 2 기술 (예 : 토큰 링)을 사용하는 경우 IP 계층 만 있으면됩니다. 미래에 또 다른 Layer 2 기술이 언제 어디에서나 유비쿼터스 화 될 수 있는지를 아는 사람은 IP와는 독립적입니다.


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

이더넷을 네트워크 계층으로 언급하고 있다면 아닙니다. 네트워크 계층에는 네트워크 장치의 물리적 주소가 필요합니다. IP 주소는 간단히하기 위해 MAC 주소에 할당되는 임의의 숫자입니다. IP 주소는 하드웨어 솔루션 인 네트워크 카드의 일부가 아닌 소프트웨어 솔루션입니다. 그렇기 때문에 IP 주소를 쉽게 변경할 수 있고 MAC 주소는 카드에 하드 코딩되어 변경할 수 없습니다 (MAC- 주소 스푸핑 소프트웨어와 상관없이 주소가 무엇인지에 따라 주소를 변경하지는 않음) )

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

예, 가능하지만 기능이 매우 제한적이며 사용자에게 친숙하지 않기 때문에 사용하는 것을 좋아하지 않습니다. 전송 계층이 구현 된 이유가 있습니다.

에서 위키 전송 계층은 플로우 제어, 분할 / 티 메틱, 에러 제어를 통해 소정의 링크의 신뢰성을 제어한다. 일부 프로토콜은 상태 및 연결 지향적입니다. 이는 전송 계층이 세그먼트를 추적하고 실패한 세그먼트를 재전송 할 수 있음을 의미합니다. 전송 계층은 또한 성공적인 데이터 전송에 대한 확인을 제공하고 오류가 발생하지 않으면 다음 데이터를 전송합니다.

따라서 현재 TCP / IP 프로토콜을 의미하는 전송 계층을 사용하지 않으면 데이터가 대상에 도달했는지 확인하거나 누락 된 조각을 자동으로 재설정 할 수 없습니다.


MAC 주소는 확실히 변경 될 수 있습니다. ADSL 제공 업체가 연결하고 변경 비용을 청구하고 며칠이 걸렸기 때문에 (장기 사망 한) PC에서 깨진 이더넷 카드의 MAC을 몇 년 동안 사용했습니다.
vonbrand

0

로컬 네트워크의 컴퓨터가 라우팅 계층없이 통신 할 수 있습니다. 당신은 이더넷 프레임에 메시지를 포함하고 최선을 다하겠습니다. 엽서에 메모를 적고 우체국에서 일하기를 바라고 있습니다.

수신자가 수신 대기하고 있기를 바라며 응답 메시지 ( 다른 노드의 다른 많은 메시지 중에서)를 주의 깊게 들어보십시오 . 이러한 모든 메시지를 직접 정렬해야 할 책임이 있습니다.

1 : 1 메시징과 같은 것을 원한다면 이더넷 프레임 위에 다른 모든 프로토콜이 필요합니다. 이를 위해 PPP (Point to Point Protocol)가 종종 사용되며, 이더넷을 통해이를 PPPoE라고합니다. PPPoE는 브로드 캐스트 네트워크에서 매우 유용한 아이디어 인 인증 및 암호화를 제공합니다.

그러나 어떤 형태의 라우팅 정보가 없으면 로컬 네트워크의 노드와 만 통신 할 수 있습니다. 라우팅 정보를 사용하여 메시지 (예 : 인터넷)를 릴레이하기 시작하면 IP 또는 IPX와 같은 라우팅 프로토콜 형식이 필요합니다. 전송 제어 (TCP)도 원할 것입니다.


0

IP 네트워크는 추상화 계층, 즉 간접 계층, 즉 특정 물리적 통신 방법이나 장치에 영구적으로 바인딩되지 않은 가상 네트워크 입니다.

이더넷 호스트에는 전 세계적으로 고유하게 식별하는 하나의 MAC 주소 (NIC 당)가 있습니다. 그러나이 호스트는 항상 하나의 MAC 주소를 사용하면서 각 IP 주소가 다른 여러 IP 네트워크에 동시에 속할 수 있습니다.

이러한 물리적 및 논리적 주소 지정의 분리 또는 주소 지정 가상화는 다른 MAC 주소를 사용하여 다른 호스트를 재구성 할 필요없이 IP 호스트 (예 : 서버)를 한 물리적 시스템에서 다른 물리적 시스템으로 이동하는 것과 같은 특정 유연성을 허용합니다. (예 : 클라이언트 소프트웨어).

IP 또는 인터넷 프로토콜 및 이더넷은 다른 문제를 해결합니다. 이더넷은 LAN 수준에서 단일 LAN에서만 통신을 제공하며 LAN을 라우터를 통해 어떤 다른 네트워크에 연결할 수 있는지 상관하지 않습니다. 반면 IP는 인터 네트워킹 과 관련이 있으므로 LAN에 구애받지 않습니다. 이더넷이 MAC 주소 대신 IP 주소를 사용할 수 있었습니까? 물론, 그 메시지가 여전히 LAN으로 제한되어 있기 때문에 실제로는 아무것도 얻지 못합니다.

두 번째 질문에 대한 답변으로, 이러한 상황 은 IP 주소 할당을 위해 DHCP (Dynamic Host Configuration Protocol) 를 사용하는 이더넷 LAN에서 서로 다른 시간에 존재합니다 . 새 호스트가 LAN에 연결되면 IP 주소가 없으므로 브로드 캐스트 된 이더넷 프레임을 모든 장치에 전송하고 DHCP 서버의 응답을 기다립니다. 이 시점에서 클라이언트는 DHCP 서버의 MAC 주소 나 IP 주소를 모르므로 브로드 캐스트됩니다. 요청을 받으면 서버는 이제 클라이언트의 MAC 주소를 알고 있으므로 응답의 주소를 올바르게 지정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.