트위치는 사용자의 위치를 어떻게 파악하여 서버를 배정하는가?

카테고리 : dev

먼저 기업들은 사용자의 위치를 IP를 통해 지역을 파악할 수 있다.

IP로 ISP들을 분류 가능하므로 ISP별 연결 서버를 지정할수도 있다.

 

어느단계에서 사용자의 지역을 파악하는가 하면, 최초로 m3u8을 불러오는 시점에서 서버에서 설정된다.

 

사용자는영상 시청전 https://usher.ttvnw.net/api/channel/hls/<스트리머 아이디>.m3u8

를 접속하여 다운받을 m3u8과 화질정보등을 받는데

 

이때 사용된 IP를 이용해 지역을 특정하고 특정 서버를 배정한다.

 

해외서버(SEA,LAX 등)로 잡히는 사용자들을 위해 저희 서버에서 트위치에 영상 정보를 요청하고,

이를 사용자로 전송하는 기능을 고려했으나

IP밴, 트래픽 비용 등 문제가 좀 있을것 같아 개발을 중단하였습니다.

 

각 서버에는 m3u8에서 받은 추가정보중 인증 확인 hash를 가지고 정말 인증된 사용자인지 서버에서 확인합니다.

 

따라서 사용자가 인증정보와 다른 서버에 접속시 확인신호와, 403 forbidden 신호를 통해 접근을 제한합니다.

 

경우에 따라 m3u8은 한국(sel), 실제 영상데이터(ts)는 해외에서 스트리밍이 되기도 합니다.

 

이 경우 트위치 플레이어에서 설정을 하여 강제로 해외서버와 연결하게 됩니다.

 

새로고침시 연결과정이 재실행되므로 다른서버에 배정될 수 있습니다.