LG U+ Google TV (u+ tv G) 비디오 요청 및 전달 방식 분석
1. 소개
▶ 2. TV에서 실시간 방송 시청 (LiveTV on TV)
3. TV에서 영화 및 TV 다시보기 시청 (VoD on TV)
4. TV에서 YouTube 동영상 시청 (YouTube on TV)
5. Mobile 단말에서 실시간 방송 시청 (LiveTV on Mobile)
LiveTV on TV: TV에서 실시간 방송 시청
이번 시간에는 전통적인 IPTV 기술인 IGMP/Multicast 기반의 실시간 방송 전달 로직과 특성에 대해서 소개해 드리겠습니다.
1. 실시간 방송 전달 로직
아래 그림의 좌측 댁내 환경에는 TV와 LG U+에서 제공하는 u+ tv G STB 및 IPTV 유무선 공유기(CAPx-6000 시리즈)가 있으며, 우측에는 컨텐츠 제공자(방송사)와 LG U+ IPTV Headend가 위치해 있습니다. 그리고 중간에 LG U+ IP 망이 위치합니다.
댁내 IPTV 유무선 공유기(AP)는 LG U+ 망의 L2 스위치와 연결되고, 그 이후의 LG U+ 망 토폴로지는 개념적으로 표현하였습니다.
■ 실시간 방송을 위한 프로토콜
- 실시간 방송은 IPTV Headend에서 댁내 STB까지 Multicast 패킷으로 전달됩니다. 즉, 스위치/라우터는 업링크로 Multicast 스트림을 수신하여 여러개의 다운링크 포트로 멀티캐스팅합니다.
- 이용자가 방송 채널을 선택하면 STB은 해당 채널에 할당된 Multicast 주소를 포함한 IGMP Join(정확한 표현은 IGMPv2 Membership Report) 메시지를 IPTV 유무선 공유기를 거쳐 LG U+ 망의 L2 스위치로 전송합니다.
- 여기서 IGMP Join 메시지를 송신하는 STB이 IGMP Client, IPTV 유무선 공유기와 L2 스위치는 IGMP Snooping 역할을 수행합니다.
- LG U+ IP 망의 라우터들은 Multicast Routing Protocol인 PIM(Protocol Independent Multicast)을 이용해 상단 라우터에게 Multicast 트래픽을 요청(PIM Join) 및 수신합니다.
■ Static Join
- 이용자와 가까운 LG U+ 망의 라우터에는 Static Join이 설정(Cisco, Juniper)되어 있어
- 이용자들이 실시간 방송을 시청하고 있지 않아도 방송 전채널이 항상 이용자와 인접한 곳까지 내려오게 됩니다. 이는 이용자의 채널 변경에 대해 실시간 방송을 보다 빠르게 전달해 주기 위함인데요. 이렇게 하지 않으면 (재수가 없는 경우) 이용자의 채널 요청이 각 스위치(IGMP Join), 라우터(PIM Join)의 "Control Plane을 거쳐" IPTV Headend까지 가게 되어 채널 변경 시간이 매우 오래 걸리게 됩니다.
■ STB Power On
- STB 전원을 키면 먼저 이 STB이 LG U+ IPTV 서비스를 받아도 되는지 확인하는 인증 단계를 거치게 되고, 이후 STB은 126개 채널에 대한 Mulitcast 주소 정보를 IPTV Headend에 있는 서버로 부터 수신합니다. (예. CH9(KBS1)=233.18.145.192, CH11(MBC)=233.18.145.194)
- 이후 이용자가 9번 채널(KBS1)을 선택하면 STB은 이 채널에 할당된 Multicast 주소를 포함한 IGMP Join(233.18.145.192) 메시지를 망으로 보내고
- STB은 KBS1 실시간 방송을 Multicast Stream(233.18.145.192)을 통해 수신하여 HDMI 케이블을 통해 TV로 영상을 전달합니다.
■ Channel Zapping
- 9번 채널을 시청하던 이용자가 11번(MBC)으로 채널 변경을 하면 STB은 먼저 9번 채널에 대한 Multicast Stream(233.18.145.192) 전송을 중지하라는 의미로 IGMP Leave(233.18.145.192) 메시지를 망으로 보내고, (그러면 233.18.145.192 Multicast Stream은 더 이상 STB으로 오지 않고)
- 바로 이어서 11번 채널에 할당된 Multicast 주소를 포함한 IGMP Join(233.18.145.194) 메시지를 보내어
- MBC 실시간 방송을 Multicast Stream(233.18.145.194)을 통해 수신합니다.
2. 실시간 방송 전달 특성
아래 그림은 KBS1을 시청하다가 MBC로 채널 변경을 하는 과정을 Wireshark를 이용해서 캡쳐한 것입니다.
두 채널 모두 아주 일정하게 10Mbps 대역폭으로 Multicast 스트림이 전달됨을 볼 수 있고, 패킷에 DSCP 값은 0xb8(EF: Expedited Forwarding)로 마킹되어 DiffServ 등급 중에 가장 높게 설정 되어 있음을 확인 할 수 있습니다.
실시간 방송은 Multicast로 전달되기 때문에 패킷 손실 시 재전송이 불가능하고 또한 채널 변경시에 최대한 빨리 영상이 TV에 보여져야 하기 때문에(Fast Channel Zapping) STB에서 버퍼링할 수 없습니다. 따라서 패킷 손실이 발생하면 바로 TV 화면에 모자이크(화면 깨짐)가 생기게 되므로, IP 망에서 가장 높은 QoS 등급을 부여하여 망에 혼잡이 발생 해도 전송 지연이나 패킷 손실이 발생하지 않게 합니다.
KT IPTV 역시 Static Join/IGMP/PIM/Multicast 로직은 LG U+와 동일하며(아마도 전세계 IPTV 사업자가 다 동일 할 것입니다), KT의 실시간 방송 전달 특성은 아래와 같습니다. (2012년 여름 시험 결과)
- 실시간 방송 전달 대역폭: 아주 일정하게 8Mbps로 전달
- 실시간 방송 패킷의 QoS: DSCP = 0x80 (Class Selector = 4)
대용량 트래픽을 처리할 때 장비들이 DSCP 필드에 따라 다른 queue에 쌓여서 처리는 되는 것일까요?
주로 어떤 제품군들을 쓰고 있는지 궁금합니다.
저희는 네트워크와 STB 제품에 대해서 유심히 보고 있습니다.
STB에서 Multicast 재생에는 큰 문제가 없는가 봅니다. 그리고 IGMP 조인시 생기는 시간 타임- 채널변경 타임 (재핑)에는 얼마나 걸리게 되는지요?
IPTV, VoD, VoIP, Internet 트래픽에 대해 서로 다른 DSCP 값을 마킹하고 이 DSCP 별로 서로 다른 Output Queue를 할당합니다. (보통 스위치/라우터는 출력 포트당 4개~8개의 Queue를 가지고 있습니다.)
그리고 각 Queue간에 Scheduling 알고리즘은 Strict Priority Queueing(SPQ), Weighted Fair Queueing(WFQ)등을 적용해서 우선 순위가 높은 Queue의 패킷을 먼저 출력 포트로 전달하게 될 것입니다.
(통상적으로 서비스별 우선 순위는 VoIP = IPTV > VoD > Internet이 되겠죠)
혹시 IP QoS/Scheduling 알고리즘에 대해서 좀 더 알고 싶으시면 아래 링크를 클릭하세요.
▶ https://www.netmanias.com/bbs/view.php?id=blog&no=258
▶ https://www.netmanias.com/bbs/view.php?id=elearning&no=179
KT와 LG U+ 모두 채널 변경에 1초~2초 정도 소요됩니다.
그리고 채널 변경 시간은 일정하지 않고 그때 그때 다릅니다.
채널 변경시 바로 영상이 나오지 않는 이유, 채널 변경시 어쩔때는 시간이 오래 걸리는 이유는 아래와 같을 것으로 예상합니다. (2000년대 중반에 수행한 업무 지식으로 설명 드리는 것이라 지금은 좀 다를 수도 있지만요...)
1. STB의 리모콘 반응 시간
: 이용자가 리모콘을 누르고 그 신호가 STB으로 전달되어 STB에서 IGMP 메시지를 보내는데 까지 걸리는 시간
2. IGMP Join 메시지가 망의 어디까지 올라가나? (복불복)
: 집과 연결된 L2 스위치로 이미 KBS1 영상이 수신되고 있는 상태(옆집에서 이미 보고 있음)에서 내가 KBS1 채널을 선택하면 L2 스위치가 바로 우리집으로 KBS1 영상을 전달 해 주지만, L2 스위치로 KBS1 영상이 수신되고 있지 않으면(아무도 안보고 있었음) KSB1에 대한 IGMP Join이 L2 스위치의 상단 스위치/라우터, 또 재수 없으면 그 위에 스위치/라우터까지 올라가야 함.... 올라가면 올라갈 수록 느려짐.
즉, 내가 시청하고자 하는 영상 데이터가 우리집과 얼마나 가까운 곳(스위치/라우터)까지 오고 있느냐에 따라 채널 변경 시간이 달라짐
3. DRM Key 수신 (복불복)
: 실시간 방송 데이터는 암호화 되어 있고, Multicast 패킷에는 영상 데이터와 함께 암호를 풀 수 있는 Key Index가 포함되어 있음. STB은 이 Key Index를 수신해야 암호화된 영상을 풀어 TV로 보여 줌. 운이 좋으면 채널 변경 후 수신한 첫번째 Multicast 패킷에 Key Index가 포함되어 있을 것이고, 그렇지 않으면 Key Index를 수신 할때까지 TV에 영상을 보여 줄 수 없음 (Multicast로 전달되므로 채널 변경 후 Key Index가 먼저 들어온다는 보장 없음)
4. I-frame 수신(복불복)
: 채널 변경 후 TV에 화면이 나오기 위해서는 영상 데이터(I-frame, B-frame, P-frame) 중에 I-frame을 받아야 함. 운이 좋으면 채널 변경 후 수신한 Multicast 패킷이 I-frame이라서 바로 TV로 영상을 보여 줄 수 있고, 그렇지 않은 경우 I-frame을 수신할 때까지 기다려야 함 (Multicast로 전달되므로 채널 변경 후 I-frame이 먼저 들어온다는 보장 없음)
이 중 3번, 4번의 시간을 최적화한 솔루션을 2006년 홍콩에서 열린 ITU-T WorldForum에서 전시한 적이 있습니다.
이 솔루션을 통한 채널 변경 시간은 200ms ~ 400ms 였었구요.
아래 URL 클릭 하시면 전시회에서 보인 채널 변경 동영상을 보실 수 있습니다.
▶▶▶ https://www.youtube.com/watch?v=1w2GKy6xvGU
위에서 IPTV 유무선 공유기 IGMP Snooping 역할을 해주는 것으로 이해했습니다.
보통 구매하는 인터넷 공유기에서도 Multicast 기능이 있어서 이를 체크하면 IGMP Snooping을 해주기 때문에 실시간 TV를 볼 수 있는 것 같습니다.
저 역시 DIR-860L 이라는 모델을 사용하고 있는데 LGU+에서 제공하는 IPTV 유무선 공유기 (홈 게이트웨이라고 부르더군요) 대신 공유기를 사용하고 있습니다.
의문이 되는 현상이 발생하는데 이렇습니다.
정확하게 3분 50초 동안은 실시간 방송이 문제 없이 나오다가 10-20초 멈춤이 발생하고 또 3분 50분 동안 실시간 10-20초 멈춤.... 그래서 그 원인을 찾다가 이곳에 오게 되었는데요. 3분 50초라는 규칙성이 궁금해지더라고요.
IPTV는 UDP 패킷을 사용하는데 포트의 범위가 정해져 있는지 궁금합니다. 혹시 3분 50초라는 시간에 대해 힌트를 주실 수 있는지 궁금하고요.
감사합니다.
참고로 VOD 는 끊김이 없어요. :)
정확한 원인 규명을 위해서는 공유기의 uplink port를 통해 송수신되는 패킷을 wireshark으로 캡쳐하여 분석해야 할 것 같네요.
궁금한게 있어서 남깁니다.
잘 모르겠지만, 방송 주소만 알면 vlc로 실시간 TV 시청이 가능한지가 궁금해집니다.
저는 VLC 네트워크 플레이는 URL + (디렉토리) + 파일명으로 알고 있는데...
IGMP가 뭔지도 잘 모르겠고 UDP가 뭔지도 잘은 모릅니다.
가능하다면 굳이 STB가 필요한거인지 궁금해져서 질문 남깁니다. ㅇ^^ㅇ
URL 기반은 Unicast 방식으로 각 단말에 방송이 전달되는 것입니다. 예를 들어 10명이 동일 채널(예. KBS)을 시청하게 되면 10개의 video stream이 발생하게 됩니다. 네트웍에 부하가 심해지겠죠.
반면 IGMP 기반은 Multicast 방식을 사용하는 것으로, 10명이 동일 switch에 연결되어 있다면 영상소스에서 switch까지는 하나의 video stream만 전달 되고, switch에서 10개의 단말로 video를 전달하는 방식이죠. 즉, Unicast 대비 망내 트래픽 발생을 최소화 할 수 있습니다.
방송 주소만 알면 VLC로 실시간 TV 시청이 가능한가?
말씀하신 '방송 주소'는 multicast IP입니다. 그리고 VLC는 말씀하신 URL 방식 외에 IGMP도 지원을 합니다. 하지만 multicast IP 주소를 알고 있다고 해도 방송 시청을 불가능합니다. 왜냐면 모든 IPTV 사업자는 영상을 암호화(data encryption by DRM, CAS)하여 단말(STB)로 전달하고, 인증된 단말(즉, 돈낸 가입자)에게만 해당 암호를 풀 수 있는key를 전달해 주기 때문입니다.
정식으로 가입되있는 상태에서 VLC나 기타 프로그램으로 암호화된 방송을 볼수는 없나요???
통신사IPTV에 정식으로 가입되어 있다는 말은 "통신사가 제공하는 IPTV STB을 사용해서 TV를 시청"한다는 의미로, 해당 STB은 사업자IPTV 플랫폼으로 부터 인증을 받으며 각 채널에 대해 암호화를 풀 수 있는 키를 받게 됩니다. 가입자가 정식 가입 상태라 해도 VLC를 사용하면 통신사IPTV플랫폼 입장에서는 정식 가입자인지 알 길이 없읍니다. IPTV multicast stream이 VLC로 도달 할 수는 있겠으나 제 생각에 암호화를 풀 수는 없을 것 같습니다.
SK B TV는 암호화 되어 있지 않습니다.
(vlc로 보기 성공)
롤리팝님 아직도 sk vlc로 시청이 가능하던가요>...? 막힌것 같은데
금일 현재 SKB, KT, LG U+ 모두 VLC로 시청 가능합니다.