최근에 집에 있는 무선 공유기를 이용하여 다른 방에 있는 PC를 리모트에 부팅하는 방법을 알아놓은 이후로 나는 조금더 게을러 졌다. 바로 옆방에 컴퓨터가 놓여 있음에도 불구하고 말이다.

위키 디피아에서 Wake On LAN 찾아 보니, 아래와 같은 항목으로 정리 되어 있었다.

 
  • 1 Technical details
  • 2 See also
  • 3 Additional resources
  • 4 References
     

  • 간략하게 요약하면,
    최초에는 PC의 마더보드와 Eathernet 카드로 부터 시작이 되었는데, 이는 현재 802.11 프로토콜을 이용하는 Wake On Wireless LAN(WoLAN)으로 그 규격이 확장 되었다.

    WON을 이용하기 위해서는 시스템의 Power가 최소한으로 Eathernet Card로 공급되어야 하는데, 만약 시스템의 BIOS에서 정상적으로 등록이 되지 않는다면, 이의 사용이 어려울 것이다. 그렇기 때문에 기본적인 동작을 위한 BIOS의 설정이 필요하다.

    WOL이란 무엇일까?
    Wake On LAN은 LAN 트래픽에 상충되지 않는다. Remote의 컴퓨터를 네트워크 상에서 동작시키는 작업을 요청할 뿐이다.
    타겟 컴퓨터는 Shut down 상태에서 우리가 원하는 다른 상태로 전이 될 수 있는데 여기서 이야기하는 Shut down 상태는 "Sleeping", "Hibernateing" 또는 "Soft Off" 등이 될 수 있는데, 이 경우 역시 Power Reserved 되어 네트워크 상에서 특별한 패킷을 기다리게 된다. 이패킷을 "Magic Packet" 라고 부른다. 이 매직 패킷을 Broad casting 되어 네트워크 망을 통해서 전송된다. 그리고 이 패킷을 컴퓨터가 받았을때, Network 카드는 Packet가 정확한 정보를 포함하고 있는지 확인하게 된다. 만약 정확한 정보를 받았을 경우 Network card는 컴퓨터를 동자시키기 위해 Power을 공급하고, 시스템을 뷰팅 시키게된다.

    Magic Packet에 대해서 간략하게 정리하면, 이는 Broadcate 패킷 안에 6바이트의 (FF FF FF FF FF FF)를 포함하고 있다. 그리고 타켓 컴퓨터의 MAC Address를 16회 반복하게 된다.  (아래 셈플 참조)

        FFFFFFFFFFFF010203040506010203040506010203040506010203040506
        010203040506010203040506010203040506010203040506010203040506
        010203040506010203040506010203040506010203040506010203040506
        010203040506010203040506

    그리고 이 패킷을 일반적으로 UDP 프로토콜을 통해서 전송이 된다.

    참고 할 수 있는 자료로는,
    http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-2.html#ss2.1

    를 참조하면 이해 하는데 도움이 될 것 이다.

    개인적으로 구현하는 코드가 궁긍하였는데, 코드 프로젝트 사이트에 C#으로 작성된 코드가 올라와 있다.

    "Wake On Lan samsple for C#"이라는 제목으로 올라와 있는데, 위에 설명한 내용을 참고하여 코드를 보면 좀더 쉽게 이해가 될 것이다.


    그리고 자바 소스도 코드 프로젝트에 올라와 있다.
     - http://java.codeproject.com/KB/IP/WOL.aspx




    '공부하는 것 > Wake on LAN' 카테고리의 다른 글

    Wake On LAN에 대해서 간략한 정리.  (2) 2008.11.28
    Wake On Lan 기능 사용하기  (2) 2008.11.28
    Posted by 행복상자