지난 시간에 이어 오늘은 LG U+ 가입자의 경우 LG U+ Google Global Cache(이하 GGC)로 부터 어떤 흐름으로 동영상이 다운로드 되는지 설명드리도록 하겠습니다. 먼저 LG U+ GGC내에 사용자가 요청한 동영상이 있는 경우(Cache Hit)의 흐름을 알아보고, 이후 동영상이 없는 경우(Cache Miss)의 흐름에 대해서 살펴 보도록 하겠습니다.
LG U+ 회선을 통한 YouTube 다운로드
(1) LG U+ Google Global Cache에 동영상이 있는 경우 (Cache Hit)
LG U+ 망 내부에(LG U+ IDC;Internet Data Center에) GGC가 들어 있다는 점 외에는 지난 시간의 KT 그림과 동일한 구성입니다.
- LG U+ 가입자가 브라우져에서 www.youtube.com을 입력하고, 단말에서 LG U+ DNS 서버로 DNS Query를 보냅니다. 반드시 LG U+ DNS일 필요는 없습니다. 어떤 DNS 서버이든 상관 없습니다.
- 그리고 LG U+ DNS는 YouTube 서버 주소 74.125.71.136을 가입자 단말로 전달합니다.
- 가입자는 Avatar 동영상을 클릭합니다.
- 이제 HTTP GET을 통해 Avatar 동영상 요청 메시지가 YouTube 서버로 전달됩니다.
- 이 대목이 아주 중요하니다! HTTP GET 메시지를 받은 YouTube 서버는 단말의 IP 주소 대역을 확인합니다. 이 경우 동영상을 요청한 가입자의 IP 주소 대역이 LG U+입니다. 그러면 YouTube 서버는 LG U+내에 위치한 GGC를 선택하여
- 그 hostname(o-o.preferred.lgupluswireline-gmp1.v9.lscache5.c.youtube.com)을 가입자 단말로 전달합니다.
- 가입자 단말은 hostname에 대한 DNS Query를 하고 (역시 DNS 서버가 LG U+ 일 필요는 없음)
- 그 응답으로 IP 주소 61.36.166.12를 받아 옵니다. 이 주소는 LG U+ 내의 GGC 주소입니다.
- 이제 단말에서 LG U+ GGC로 Avatar 동영상을 요청하고
- 여기서 또 중요! LG U+ GGC는 다시 HTTP GET을 보낸 단말의 IP 주소 대역을 확인합니다. 만약 이 주소 대역이 LG U+ 가입자 대역이 아니면 HTTP 302 Found 메시지를 단말로 보내어 미국에 있는 GGC로 붙도록 합니다(HTTP Redirect). 즉, 내 가입자 아니면 안받아 주겠다는 거죠. 위 경우는 LG U+ 가입자이므로 밑에 11번 단계로 넘어가게 됩니다.
- 이제 LG U+ GGC는 가입자가 요청한 동영상(Avatar)이 나한테 있는지(storage에 있는지) 확인합니다. 다행히 있습니다! (Cache Hit)
- 따라서 LG U+ GGC는 동영상을 가입자 단말로 전달합니다. RTT 10ms 이하입니다. 무지 빠르게 가입자 단말로 동영상이 전달됩니다.
(2) LG U+ Google Global Cache에 동영상이 없는 경우 (Cache Miss)
이번 그림에서는 설명을 단순화 하기 위해 DNS flow는 제외 시켰습니다.
- LG U+ 가입자가 YouTube 웹페이지에서 Avatar 동영상을 클릭합니다.
- 가입자 단말은 HTTP Get 메시지를 YouTube 서버로 보내고
- YouTube 서버는 단말의 IP 주소를 확인하고, LG U+ 가입자 이므로
- LG U+ GGC hostname(o-o.preferred.lgupluswireline-gmp1.v9.lscache5.c.youtube.com)을 단말로 전달합니다.
- 가입자 단말은 이제 LG U+ GGC로 Avatar 동영상을 요청하고,
- LG U+ GGC가 단말 IP 주소를 확인하였더니 자사 가입자입니다.
- 이제 가입자가 요청한 Avatar 동영상의 캐싱 여부를 확인합니다. 그런데 그 동영상이 없습니다! (Cache Miss)
- 이제부터 시험을 통해 확인된 내용과 일부 추측을 기반으로 설명을 드리겠습니다. LG U+ GGC는 Avatar 동영상이 미국내 어느 GGC에 들어 있는지 알길이 없을 것 같습니다. 따라서 미리 configuration되어 있는 상위 GGC 서버로 HTTP Redirection을 시킵니다. 시험으로 확인하 결과 아래와 같이 hostname의 숫자값이 동일한 매핑 규칙을 발견할 수 있었습니다. 즉
- LG U+ GGC "o-o.preferred.lgupluswireline-gmp1.v9.lscache5.c.youtube.com"의 상위 Cache 서버는 -> 미국에 "v9.nonxt5.c.youtube.com"
- LG U+ GGC "o-o.preferred.lgupluswireline-gmp1.v12.lscache6.c.youtube.com"의 상위 Cache 서버는 -> 미국에 "v12.nonxt6.c.youtube.com"
- 가입자 단말은 LG U+ GGC가 알려준 v9.nonxt5.c.youtube.com으로 Avatar 동영상을 요청하고,
- 이 서버에도 해당 동영상이 없으면 다시 redirector.c.youtube.com으로 HTTP Redirection을 합니다. 추측컨데 redirector.c.youtube.com이 최상위에 위치한 서버로써 모든 동영상의 위치(어느 Cache 서버에 그 동영상이 있는지)를 관리하는 듯 합니다.
- 가입자 단말은 redirector.c.youtube.com으로 Avatar 동영상을 요청하고,
- 드디어 Avatar 동영상이 위치해 있는 GGC 서버의 hostname(o-o.preferred.lax04t01.v1.lscache6.c.youtube.com)을 받아 옵니다.
- 가입자 단말은 그 hostname으로 Avatar 동영상을 요청하고,
- 미국에 있는 GGC로 부터 동영상을 다운로드 받습니다.
여기서 그럼 LG U+ GGC 서버는 언제 Cache Fill을 하나? 라는 의문이 생기는데요. Cache Miss가 난 이후 다시 동일 동영상을 요청해 봤지만 여전히 미국에 있는 GGC로부터 다운로드 받는 것으로 보아, 각 GGC에는 "동일 컨텐츠를 몇번 이상 요청하면 Cache Fill한다"라는 식의 정책이 들어 있는 것으로 추측이 됩니다.
결언
위와 같이 미국에 있는 YouTube 서버 및 LG U+에 도입된 GGC는 HTTP GET 메시지을 보낸 단말 IP 주소 대역을 확인하여 어느 지역의 GGC를 통해 다운로드 받게 할지 결정합니다. 즉, KT 가입자는 KT IP 주소 대역을 사용하므로 DNS만 LG U+로 변경한다 해서 LG U+ GGC에 접속할 수는 없습니다. (그렇다고 KT 가입자가 단말의 IP 주소를 LG U+ 대역으로 바꾸면 라우팅이 안되어 아예 인터넷을 사용할 수 없게 되구요.)
이 말은 곧, LG U+ 가입자가 KT DNS를 사용해도 아무 문제 없이 LG U+ GGC를 통해 동영상을 다운로드 받게 됩니다.
마지막으로 한가지 더 말씀드리자면...
저희 회사가 LG U+ 기업용 회선을 사용하고 있습니다. 회사에서 확인을 해 보니, LG U+ 기업용 회선 가입자의 경우 LG U+ GGC로 부터 동영상 다운로드가 안되고, 그래도 RTT가 좀 짧은(100ms 정도) 홍콩에 위치한 GGC(o-o.preferred.hkg05s01.v20.lscache7.c.youtube.com)로 부터 동영상을 다운로드 받음을 확인하였습니다.
즉, 미국에 있는 YouTube 서버는
1) LG U+ 홈 가입자 IP 대역이면 LG U+ GGC를 선정해 주고
2) LG U+ 기업용 가입자 IP 대역이면 홍콩에 위치한 GGC를 선정하고
3) 나머지 경우(예. KT IP 대역이면) 미국에 위치한 GGC를 선정함
http://www.scribd.com/embeds/70272969/content?start_page=1&view_mode=list&access_key=key-7ps4pzk21b7lpx3drsa
감사합니다 (- -) (_ _)
가장 간단히 확인할 수 있는 방법은 동영상을 다운로드하는 서버의 IP 주소를 wireshark으로 캡쳐하여,
1) 그 IP 주소가 통신사업자의 IP 주소 대역이면 (www.whois.co.kr에서 IP 소유기관 확인 가능) GGC이고,
2) 그 주소가 Google 대역인데 저녁 9시 ~ 12시 사이에 다운로드 속도가 수십Mbps가 나오면 TIC가 도입된 것입니다.
감사합니다. 박인천님.
https://plus.google.com/u/0/106245733588215293509/posts/etZKiaq9Am7
1) Cache Hit 경우에서 5번 Flow에서 이미 가입자가 LGU+ IP Addr라고 확인이 되었는데, 10번에서 다시 Range를 Check할 필요가 있는 건지? 만약 10번에서 내 가입자 아니라고 redirect하는 경우가 발생하는 case는 어떤 경우인지 알고 싶습니다.
KT 가입자의 경우 5번 과정에서 LG U+ GGC가 아닌 (예를 들어) 미국에 위치한 YouTube 다운로드 서버의 host name을 받아 오게 될 것인데요. 예를 들어 hostname = o-o.preferred.lax04t01.v1.lscache6.c.youtube.com와 같이요.
그런데 이 이용자가 자기 PC의 hosts 파일(windows/system32/drivers/etc/)에 다음과 같이 기록을 합니다.
61.36.166.17 o-o.preferred.lax04t01.v1.lscache6.c.youtube.com # 61.36.166.17 = LG U+ GGC IP address
즉, 원래 DNS resolution 절차에 따르면 해당 hostname에 대한 IP 주소는 미국에 있는 YouTube 다운로드 서버의 IP 주소를 받아 오게 되는데, 이용자가 hosts 파일에 해당 host name에 대한 IP 주소를 LG U+ GGC 주소를 적었으니 단말은 YouTube 동영상 요청을 LG U+ GGC로 하게 되고, 이 단계에서 GGC가 이용자 IP 주소를 확인하지 않으면 KT 가입자에게도 LG U+ GGC가 동영상을 다운로드 해 줄 수 있게 됩니다.
그래서 10번 단게에서도 GGC에 의해 이용자 IP 주소를 확인하는 것으로 생각이 됩니다.
이 원리로
이후 GGC는 LG U+와 SKBB에 설치가 되었습니다.
SKB의 GGC host name = o-o.preferred.skbroadband-gmp1.v6.lscache2.c.youtube.com의 IP 주소를 확인해 보면,
211.117.39.17로 해당 IP 주소는 SKBB의 것으로 조회가 됩니다.
혹시 가능하시면 아래 내용을 확인해 주실 수 있는지요?
호스트 파일 수정을 통해 LG U+ (혹은 SK BB)의 GGC로 강제 우회 시킨 상황에서,
유튜브 시청을 하시고 Wireshark으로 패킷을 캡쳐하여 YouTube 서버의 IP 주소를 확인.
결과적으로 아래 2개 정보를 부탁드립니다.
1. 사용 단말의 IP 주소
2. Wireshark을 통해 확인된 YouTube 다운로드 서버의 IP 주소
2. 싸이 (/officialpsy)의 Gentleman M/V와 MC Hammer의 U Can't Touch This 라이브 영상을 샘플로 테스트한 결과
처음에는 61.111.58.56 (KISA에서 주식회사엘지유플러스로 조회)이라는 IP주소와 관련된 로그가 쭉 남다가 그 다음에는 74.125.102.80 (KISA에서 구글로 조회)이라는 IP주소와 관련된 로그가 남습니다. 특히 74.125.102.80과 관련된 기록에는 PCSYNC라는 태그가 자주 보입니다.
싸이의 Gentleman M/V는 7000kbps까지도 떨어지나 평균적으로 54000kbps 내외를 유지합니다. 특히 싸이의 Gentleman M/V 업로드 직후에는 1000kbps로 속도가 매우 저조했으나 업로드 이후 두시간 뒤에는 평균 84000kbps 최대 95000kbps까지 갔습니다.
U Can't Touch This 라이브 영상에서는 처음에 55000kbps에서 시작하다가 18000kbps까지 떨어지더니 그 이후 28000~30000 kbps를 계속 유지합니다.
강남스타일 M/V에서는 줄곧 7000~8000kbps를 유지합니다.
1시간짜리 아이리스2 방영본 풀녹화 영상은 어느 영상이던지 50000~80000kbps을 계속 유지합니다.
그리고 KBS에서 하는 유희열의 스케치북 관련 영상들은 대부분 35000kbps의 속도를 보여줍니다.
그러나 일부 조회수가 낮은 영상은 속도가 잘 안나옵니다. 그리고 SD화질은 대부분 1000~4000kbps 안밖의 속도를 보입니다.
가정: 리슈몽님 단말로 동영상을 다운로드 해준 YouTube 서버 IP 주소 = 74.125.102.80
1. KT 회선 이용자(리슈몽님) 단말은 host 파일에 따라 먼저 LG U+ GGC(61.111.58.56)로 동영상을 요청합니다.
2. 하지만 LG U+ GGC는 단말의 IP 주소가 LG U+ 대역이 아니므로 미국 캘리포니아에 위치한 YouTube 서버(74.125.102.80)로 redirection 시키고 이 서버에서 다운로드 받습니다.
3. 74.125.102.80이 LG U+ GGC가 아닌 미국 캘리포니아 YouTube 서버인 이유는 아래와 같습니다.
- 74.124.102.80이란 IP 주소의 소유자는 말씀하신 바와 같이 Google로 나옵니다.
- 소유자 = Google이란 정보만을 가지고는 해당 서버의 위치(국가)를 알 수 없습니다.
- 그래서 이 주소로 ping을 해보았더니 RTT가 160~170ms 정도 나옵니다. 이 정도 걸리면 미국이 유력합니다.
- IP Geo DB 서비스 사이트(http://www.ip2location.com/demo )에서 해당 IP 주소를 입력해 보았더니 그 위치가 미국 캘리포니아로 나옵니다. 혹시나 싶어(IP Geo DB가 오류가 있을 수도 있으니...) 웹(https://ipdb.at/reg/US-California )에서 미국 캘리포니아 IP 주소을 찾아 ping을 해보았더니 역시 160~170ms 정도입니다.
- 결론적으로 YouTube 서버 IP 주소 74.125.102.80은 미국 캘리포니아에 위치해 있음을 알 수 있습니다.
- 그리고 참고로 말씀드리면 LG U+에 위치한 GGC의 IP 주소는 whois/KISA에서 검색해 보면 그 소유자가 LG U+로 나오지 Google로 나오지 않습니다.
4. 생각하신 것 보다 속도가 잘 나오는 이유는 Windows 7에 Max TCP Windows Size가 크기 때문일 것입니다.
(참고 링크: https://www.netmanias.com/bbs/view.php?id=blog&no=299)
결론
- Host 파일을 수정하셔도 LG U+나 SK BB에 GGC로 부터 동영상을 다운로드 받을 수 없습니다.
- 그리고 현재 KT 가입자는 미국이 아닌 홍콩(RTT = 40~60ms)에 위치한 YouTube 서버로 부터 동영상을 다운로드 받을 수 있도록 바뀌었습니다. (올해 초에 바뀌지 않았나 싶네요)
- 따라서 Host 파일을 수정하시면 홍콩이 아닌 미국에서 다운로드 받게 되니 오히려 속도가 안 나올 것입니다.
제가 설명을 단언적으로 하였지만 직접 시험한게 아닌 리슈몽님의 결과를 가지고 분석한 것이라 "혹시나" 오류가 있을 수도 있습니다~*
단말의 IP 주소를 속일 경우(KT 가입자 단말에 LG U+ IP 주소를 설정) 패킷이 LG U+ GGC로 갈 수는 있겠으나 (라우터의 RPF: Reverse Path Forwarding 기능에 의해 사실 이것도 안 갈 확률이 높습니다), GGC의 응답 패킷의 목적지 주소가 LG U+ 대역이므로(즉, KT 대역이 아니므로) LG U+ IP 망은 이 패킷을 절대로 KT 가입자 단말(스푸핑 단말)로 전달하지 않습니다.
이 패킷은 해당 IP 주소를 가진 LG U+ 단말로 가겠죠. 그리고 이 단말은 내가 보낸 패킷의 응답이 아니므로(즉, socket이 열려 있지 않으므로) 버리겠죠.
아래 설명 중에 RPF(Reverse Path Forwarding)가 뭔지 설명 부탁드려요.
라우터의 RPF(Reverse Path Forwarding) 기능은 "패킷 포워딩" 기능을 수행 하기 전에 "수신 패킷의 Source IP 주소로 Forwarding Table을 참조"하는 개념으로 IP spoofing(IP 주소를 속인 단말)을 막을 수 있는 기능입니다.
위 설명(GGC를 이용하기 위해 단말 IP 주소를 변경)을 예로 설명드리면요.
1. KT 가입자가 자신의 단말(1.1.1.10/24) IP 주소를 LG U+ 대역인 2.2.2.10/24으로 변경하여 패킷을 전송합니다.
2. 이를 수신한 KT의 라우터(RPF 기능이 enable된 라우터)는 수신 패킷의 Source IP 주소가 자신의 Forwarding Table에 존재하는지 확인합니다.
3. 이 경우 KT 라우터의 Forwarding Table에는 1.1.1.0/24만 존재할 뿐 2.2.2.0/24 대역은 없습니다.
4. 따라서 KT 라우터는 이 패킷이 "Source IP 주소가 변조된 것"이라 판단하고 폐기시킵니다.
아래 링크 내용도 참조하세요.
http://cafe.naver.com/softwarequality/book1719468/993
http://cafe.naver.com/neteg/123697?social=1
정말 읽는 내내 지루하질 않네요..
대단하시네요 이런 정보를