안녕하세요. 구독자님, 이제 '아프리카TV 프로그램 분석'의 마지막 이야기입니다. 저도 오랜만에 프로그램 분석을 제대로 해본 듯 한데요. 덕분에 많은 공부가 되었네요. 마지막편도 재밌게 봐주시고, 다음에 새로운 시리즈로 또 돌아올 수 있도록 하겠습니다 :)
이번 포스팅의 주제는 P2P 패킷에 대해 분석한 내용을 다루었습니다. 나름의 Handshake 과정이 있었으며, 이번 분석으로 실제 미디어 파일을 받기까지 어떠한 작업이 이루어졌는지 알 수 있었는데요. 프로그램이 좀 방대하지만 이 포스팅에서는 720p 영상에 한하여 분석한 내용이 있으니 참고하셔서 봐주세요 :D
목차
1. 아프리카TV에서의 P2P 프로토콜 통신 순서
이 프로그램에서 P2P 통신을 할 때 나름의 명칭이 있었는데요.(물론, 다른 P2P에서도 동일한 네이밍을 쓸수도 있음)
데이터를 요청하는 시청자를 Child, 영상 데이터를 제공해주는 시청자를 Parent라고 합니다. 나의 역할이 무엇인지에 따라서 Child와 Parent로 나뉘지만, 이 글에서는 Child 입장에서 글을 풀어가겠습니다.
Child 시청자는 인터넷 방송을 보기위해 방송을 들어갑니다. 이 때는 [아프리카TV 분석] 시청자의 IP,PORT 추출하기 (2부) 글에서 다루었다시피, 각종 정보를 주고받고 Parent시청자의 정보도 획득하게 되는데요. Parent 시청자 정보를 받게된 후에는 아래 그림과 같은 Flow로 통신이 이루어지며, 실시간 스트리밍 영상을 전달받게 됩니다.
각 Flow 별 설명이 간단히 풀어보면 아래와 같습니다. 참고로 Command로 적힌 항목은 이 프로그램에서 정의해둔 2Byte 정수인데요. 아프리카TV 프로그램을 분석하다보면 매우 다양한 Command가 있지만, 기본적인 통신에 필요한 아래 4개의 Command만 다루겠습니다.
댓글
의견을 남겨주세요