Wake-On-LAN 패킷에 대상 MAC 주소가 16 개 중복 된 이유는 무엇입니까? 웹 페이지 : Target MAC

로부터 와이어 샤크 웹 페이지 :

Target MAC 블록에는 중단 또는 중단없이 대상의 IEEE 주소에 대한 16 개의 중복이 포함됩니다.

16 개의 복제에 대한 특별한 이유가 있습니까?



답변

제 생각에는 값은 정확히 16이어야합니다.

Magic Packet Technology ( 백서 , 간행물 # 20213)는 1995 년경 AMD와 Hewlett Packard간에 개발되었습니다.

“이더넷 컨트롤러에는 이미 주소 일치 회로가 내장되어 있기 때문에” IEEE는 16 개의 중복 주소를 세는 카운터를 추가하여이를 재사용 할 것을 제안합니다 .

그들은 WOL을 추가하는 것이 쉽지만 실제 구현은 크게 열어 두어야한다고 생각합니다. 다음과 같은 이유로 역사적으로 임의적이지 않은 것으로 보입니다 ( “오, 16은 충분히 길게 보입니다”).

  1. 당신이 가진 것 / 당신이 알고있는 것에 기초하십시오. 예를 들어, 우리는 2의 거듭 제곱과 16 진수를 좋아한다고 가정합니다. 16 진수 (4 비트)는 0 ~ 15의 양수 값을 유지하는 것이 편리합니다. 우리의 프로세서는 모든 수학을 검사하고 이미 “max”값에 1을 추가하려고하면 오버플로 “플래그”(예 : 15)를 설정합니다. 그것이 일반적이기 때문에 의사 코드에서 오버플로 조건에 대한 특별한 지시가있을 수도 있습니다.

    Initialize a single counter that holds values from 0-15.
    Set it to 0.
    Watch the network. When I see the signal:
    Loop:
      Do I see my address at the right spot?
      Yes: Add 1 to counter.
        Did I just overflow? (15+1 = 0?)
        Yes: Jump out of loop to "wake up" code.
    ...otherwise
    Loop again.
    
  2. 칩 신호 라인. “회로”에 대한 AMD의 참조는 깊은 끝을 가져옵니다. 따라서 실제로 알아야 할 것은 “1로 설정된 비트”가 칩의 어딘가에서 “높은”전압에 해당하는 간단한 경우를 상상할 수 있다는 것입니다. “핀”.

Arduino는 좋은 예입니다. 메모리 비트를 1로 설정하고 Arduino는 출력 핀을 “높음”으로 설정합니다. 이 전압 변화는 종종 LED를 구동함으로써 시연되지만, 트랜지스터의 마법을 통해 다른 회로 나 칩을 자동으로 활성화, 중단 또는 “깨울”수 있습니다.

좀 더 자연스러운 16 진수 표현 (FF, IP, 마스크 및 MAC 주소에서 자주 볼 수있는 2 개의 16 진수)을 가정하고 Arduino의 “출력 핀 5″를 카운터의 “비트 위치 5″에 연결합니다.

Memory      Value  Event
0000 0000   00     Nothing, so keep adding 1...
0000 1111   0F     Nothing, but add 1...
0001 0000   10     Arduino pin 5 high. New voltage interrupts other circuits.

메모리 위치는 해당 핀에 묶여 있기 때문에 우아하고 모든 하드웨어입니다. 1을 계속 추가하면 드라이버 나 BIOS 개발자 코드를 방해 할 필요가 없습니다. 당신은 어쨌든 회로 제작자입니다. 다른 칩 메이커의 실리콘이 소비하는 높은 핀을 제공 할 것입니다. 이는 모든 사람이하는 일입니다. 실제로는 조금 더 복잡하지만 (예를 들어, ENC28J60 사양은 끔찍한 세부 사항으로 설명되어 있습니다), 그것은 요점입니다.

이 후, 인간의 명확성은 목표보다 부작용으로 보입니다. 컴퓨터의 경우, MAC 사본 4 개로 충분하지만 이제는 카운터가 넘치지 않으며 더 이상 간단하지 않습니다. 따라서 가능한 많은 실리콘, 드라이버 및 BIOS 디자이너가 구현할 수 있도록하는 것이 목표 인 것으로 보이며, 16은 재구성 및 재 툴링없이 모든 사용자에게 “오버플로”와 직접 신호 전달 중에서 선택할 수 있습니다.

인간 탐지를위한 악마의 옹호자 역할을 수행하면 다음과 같은 유연성을 가진 다음 더 높은 숫자는 어떻습니까? 작동하지 않습니다. 데이터 세그먼트만으로는 이더넷 프레임보다 큰 WOL 패킷을 생성 할 수 있습니다 ( 당시 ).

16 WOL 세그먼트가 유일한 값이 너무 나에게이 의미 할 수 있습니다 합니다.


답변

예. 간단하고 누군가 실수로이 데이터를 보낼 가능성은 사실상 제로입니다.

NIC의 초 저전력 마이크로 컨트롤러는 원시 이더넷 네트워크 트래픽을 영구적으로 감시 할 수 있어야하고이 패턴이 표시되면 조치를 취해야하며 임의의 네트워크 스트림으로 인해 우연히 시스템을 켜고 싶지 않기 때문에 간단합니다. data는 시스템을 켜는 명령입니다.


답변

매직 패킷 만 실제로 컴퓨터를 깨울 수 있도록하는 방법이라고 생각합니다. 프로토콜 헤더 (예 : IP 주소, 포트 번호) 보지 않고이 순서로 패킷을 스캔 할 때 패킷을 쉽게 식별 할 수 있어야하고 오 탐지 수가 0에 가까워 야합니다. 임의의 네트워크 프로토콜이 컴퓨터의 MAC 주소의 16 배를 포함하는 패킷을 전송할 확률은 0에 가깝지만 단일 반복 만 있으면 오 탐지 확률이 훨씬 높습니다.


답변

16은 셀 수없는 논리이기 때문에 16으로 계산됩니다. 칩에 주소 일치 논리가 이미 있으므로 MAC 주소를 반복합니다. AMD 백서


답변