4/10/2016

Wireshark로 RTSP 와 H.264 분석

1. 개발 분석 환경 

RTSP Protocol을 인식하지 못한다면, Port문제 일수 있으니, IP Address와 Port를 찾아 이 관련 Packet을 RTSP로 Decode 시키면 자동으로 RTP도 전부 인식이 된다.

  • Network 분석환경 
  1. TEST Device: IP Camera  ( Target Device)
  2. TEST Program:  VLC Player ( Host Device)

  • Host의 VLC Player 환경설정 
  1. VLC의 네트워크 스트림 열기-> 네트워크 설정
  2. rtsp://192.168.1.168:8557/PSIA/Streaming/channels/2?videoCodecType=H.264

WIFI CaptureSetup
  https://wiki.wireshark.org/CaptureSetup/WLAN
  https://www.acrylicwifi.com/en/blog/how-to-capture-wifi-traffic-using-wireshark-on-windows/

2. Wireshark 설치

  • Wireshark Download
  https://www.wireshark.org/download.html


3. Wireshark 분석 및 설정 

Wireshark의 사용법은 간단하며, Capture 를 진행한 후 분석하거나, 다른 Capture된 파일을 분석을 하면된다. 

3.1 Wireshark의 기본 Filter 사용법

필터는 말그대로 전체 패킷 중에서 본인 원하는 패킷을 필터링하여 보고 싶은 것만 보는 것이다. 
간단히 예를 들면 

       ip.addr eq 192.168.1.168  : ip 주소가 source or destistion 검색 

필터에 관련된 내용을 외울 필요는 없으며, 개별 패킷에서 본인이 필터링 하고자 하는부분
or 관련부분 
즉 예를 들면 TCP의 Port 부분에 적용하고 싶다면 그곳에서 우측마우스를 눌러 Apply as Filter 기능으로 선택하면된다. 

하지만 빠른 사용을 위해서 본인이 간단히 and 와 or 연산을 조합하여 정교한 필터를 만들자.

3.2 H.264 분석 

Wireshark에서 H.264의 NAL를 분석에 대해 알고 싶어 이부분을 찾았다. 
  1. Capture를 한 후 RTP 분석에서 Payload Type을 확인한다. 
  2. Edit->Preferences->Protocols->H264  (H264 dynamic payload type 설정) 
  3. RTP Payload Type 설정을 해준다. 

  • RTP Packet에서 Payload Type 확인  


  • H264 dynamic payload type: 96 


  • 아래와 같이 H.264 기본분석 가능 
H.264의 FU부분만 나오고 더 이상은 Decode 되지않아 문제가 발생 이 부분은 추후 다시 한번 TEST



  • H.264 Fragmentation Units(FU)

  https://tools.ietf.org/html/rfc3984#page-27


3.3 Statistics 기능 사용

Statistic에서는 다양한 기능을 제공하는 데, 이를 이용하여 Protocol의 Flow 와 사용빈도 와 구조도 를 세부 분석이 가능하다

  • Statistics->Protocol Hierarchy 
프로토콜 구조도라는데, 사용빈도도 확인할 수 있고, 전체 구조를 확인 가능하다.




  • Statistics->IO Graphs
필터에 본인이 원하는 필터를 넣어 증가 추세를 확인 및 추적이 가능하며 각 Line을 본인이 직접설정이 가능하다.



  • Statistics->Flow Graph  
Protocol의 전체분석이 쉬어지고, 보기도 너무 쉽다.



  http://stackoverflow.com/questions/26164442/decoding-rtp-payload-as-h264-using-wireshark
  https://ask.wireshark.org/questions/35544/how-i-know-it-is-h264-packet-capture
  https://www.wireshark.org/lists/wireshark-users/201007/msg00162.html
  https://www.wireshark.org/docs/dfref/h/h264.html