Wireshark wiki에 monitor mode에 대한 설명이 나온다. 그런데 airport를 사용하는 내용이라서 별 의미가 없다. Wireshark에서 무선랜 데이터를 캡쳐하려면 monitor mode를 enable해야 하는데, 이 옵션은 윈도우즈를 오른쪽으로 많이 드래그를 해야 옵션을 찾을 수 있다. 그리고 link-layer를 802.11로 변경은 그냥 프로그램을 재실행하면 된다.
웹 디버깅 툴
Wake on LAN
Wake on LAN은 네트워크 패킷(매직 패킷)으로 컴퓨터를 켜거나, 깨우는 기능을 하는 AMD와 HP에서 만든 표준이다.
요즘 PC들은 전원을 꺼도 이더넷 잭에 연결된 LED가 깜박이는 것을 볼 수 있는데, 즉 LAN은 패킷을 받을 수 있는 모드에 있다.
AMD의 White paper
cfile26.uf.1225CD3F5022E8BF13F2F0.pdf
매직 패킷의 구성
매직 패킷은 2가 있는데, ether-wake와 UDP상에서 구현하는 패킷이 있다. 대부분의 PC 프로그램이 보내는 패킷은 후자이다.
아래 내용은 ether-wake패킷의 구성이다. 출처) http://wiki.wireshark.org/WakeOnLAN
이 사이트에서 관련 패킷 샘플도 다운로드 가능하다.
Synchronization Stream |
Target MAC |
Password (optional) |
6 |
96 |
0, 4 or 6 |
-. Synchronization Stream : FF FF FF FF FF FF
-. Target MAC: 깨울 상대의 맥 어드레스
-. Password: 옵션
즉 옵션이 없고 맥 어드레스가 01:02:03:04:05:06 이면 패킷의 형태는 다음과 같다.
FFFFFFFFFFFF010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506
아래 첨부 파일은 매직 패킷을 Wireshark로 캡쳐한 것이다.[출처: Wireshark.org]
Ether-wake와 UDP 패킷 2가지가 나와있다.
cfile26.uf.125CBA4350259BC91C8AB5.pcap
매직 패킷을 보낼 수 있는 프로그램
Fusion WOL
http://fusionfenix.com/product/wol-1-0
찾아보면 이것말고 꽤 있다.
W5200의 WOL 기능
-. Wake On LAN과 Power down mode와는 아무 관련이 없다. 그리고 power down mode를 enable하면 패킷을 못 받는다.
-. 즉 WOL은 MCU가 sleep하고 있고, W5200은 동작하고 있는 상태에서 WOL기능을 이용해서 매직 패킷을 받으면 인터랍트가 떠서 MCU 깨울때 사용하면 다.
-. 단 주의 사항은 W5200은 ether-wake 패킷만 지원을 한다.
따라서 PC에서 raw Ethernet Packet을 보낼 수 있는 프로그램이 필요하다.
참고
http://en.wikipedia.org/wiki/Wake-on-LAN
임베디드 보드에서 트위터하기
이 블로그 포스트는 Twitter API Proxy 서비스인 supertweet.net를 이용해서 PC나 스마트폰이 아닌 임베디드 보드에서 트위터 메시지를 보내는 방법을 설명한다.
참조 사이트:mbed의 post to Twitter via SuperTweet
먼저 트위터 아이디가 필요한데, 테스트를 위해 twitter.com 에서 ID를 하나 만들었다. EspressoDopio2. 참고로 내 트위터 아이디는 EspressoDopio
Supertweet.net 에 접속해서 docoment link에 가면 3가지 step으로 설명을 해 놓고 있다.
1. Sign UP/ Sign in now를 클릭해서 MyAuthAPIProxy가 계정 사용을 승인하도록 한다.
2. Basic Auth를 위한 패스워드를 설정한다. 이 password는 패스워드와 다르게 설정함.
이 설정이 되면 다음과 같이 Username이 나타다고 Secret 밑에 Show 를 클릭하면 내가 정한 password가 나타난다.
3. 이젠 임베디드 보드에서 트위터 메시지를 보내면 되는데, Twitter.com 대신에 http://api.supertweet.net 로 보내면 된다.
구체적인 방법은 http://www.supertweet.net/about/api 링크를 확인하면 되는데, 간단히 메시지 post하는 것을 설명하면…
아래 예제는 curl를 사용해서 메세지를 보내는데, user:password는 위 테이블의 Username 즉 트위터 아이디가 되겠고, password는 Supertweet에서 설정한 password이다. 트위터 메시지는 “playing with cURL and the SuperTweet.net API” 이게 되겠다.
실제 트위터에 메시지가 올라간 경우.
Wireshark로 실제 날라가는 패킷을 잡아보면 다음과 같다.
빨간색이 보낸 패킷이고 파란색이 받은 패킷이다.
보낸 패킷에서 2번째 줄이 Authorization인데, Basic 뒷 부분은 “Username:password” 가 base64로 인코딩되어 있고, 보낸 패킷의 마지막 부분의 status= 뒷부분이 보낸 메시지 이다.
따라서 임베디드 보드에서 이것을 구현을 하려면,
-. DNS: api.supertweet.net에 접속을 위해
-. HTTP Client
-. Base64 encoding 함수등이 구현이 되야 겠다.
구체적인 구현 결과물은 다음 기회에……
패킷 생성기 (Colasoft Packet Builder)
윈도우즈 기반의 패킷 생성기입니다. GUI 기반으로 되어 있어서 직관적이네요.
네트워크 패킷 생성기 (NPG: Network Packet Generator)
요즘은 제가 필요한 것을 인터넷에서 찾으면 다 있네요. 누군가는 같은 고민을하고 고맙게도 만들었다는 사실… ^^
- npg
- npg [-?hlw]
- npg [-vvvw] -fF <packet file name> -d <device interface>
- npg [-rtvvv] -p <packet byte stream> -d <device interface>
# : 주석
Wireshark Display Filter
Wireshark Header Checksum Error
와이어샤크를 사용해서 패킷을 잡다보면 패킷에 “Header Checksum Error“라고 표시가 되어 있는 것을 볼 수 있다. 그리고 친절하게도 어떤값이 되어야 한다고 알려주기까지 한다.