들어가며
LINE 앱은 전 세계 많은 사 용자들이 이용하는 다양한 실시간 커뮤니케이션 서비스를 제공하고 있습니다. 저희 팀은 그중에서 1:1 통화와 그룹 통화, LINE 미팅과 같은 통화 서비스를 맡고 있으며, 각 기능들이 안정적으로 작동해 사용자에게 좋은 품질 경험을 제공할 수 있도록 지속적으로 기술 개선에 힘쓰고 있습니다.
이번 글에서는 LINE 통화의 품질을 높이기 위해 적용하고 있는 다양한 기술 중 하나인 네트워크 적응 기술을 개선한 사례를 소개하려고 합니다.
네트워크 적응 기술이란
LINE 통화나 라이브 스트리밍과 같은 실시간 커뮤니케이션 서비스에서는 음성이나 영상 등의 미디어 데이터가 인터넷을 통해 패킷 단위로 사용자 간에 전송됩니다. 이때 패킷들은 네트워크를 통해 상대방에게 전달되는 과정에서 전송이 지연되거나 손실될 수 있으며, 이는 실시간 통신 품질을 떨어뜨리는 주요 원인이 됩니다.
지연이나 패킷 손실로 인한 품질 저하를 최소화하려면 네트워크 적응 기술을 적용해야 합니다. 네트워크 적응 기술이란 네트워크의 상태에 따라 전송 비트레이트(bitrate)나, 전송 타이밍, 미디어 품질 등을 실시간으로 조절해 끊김 없이 통신할 수 있게 해주는 기술들을 의미하며, 현재 LINE 통화 품질에 큰 영향을 미치는 기술 중 하나입니다.
그런데 LINE 통화에 적용된 네트워크 적응 기술은 다른 실시간 서비스들에 적용된 기술과는 조금 차이가 있습니다. 예를 들어 한 방향으로만 데이터를 전송하는 라이브 스트리밍에서는 어느 정도의 버퍼링을 통해 지연을 감수하면서도 안정적인 품질을 유지할 수 있습니다. 영상이 몇 초 늦게 도착하 더라도 시청자는 큰 불편을 느끼지 않을 수 있기 때문입니다. 반면 LINE 통화와 같은 양방향 실시간 통신에서는 상대방의 말이 1초라도 늦게 들리면 자연스러운 대화가 어렵습니다. 이 때문에 네트워크 상태에 따라 즉각 반응하는 전송 제어가 필요합니다. 더 민감하고 정교한 네트워크 적응 기술이 요구되는 것입니다.
네트워크 혼잡과 혼잡 제어
네트워크 적응 기술 중에서 특히 중요한 것이 '네트워크 혼잡(network congestion)'을 효과적으로 회피하는 기술입니다. 네트워크 혼잡이란 네트워크 경로에 패킷이 과도하게 몰리는 상황을 말합니다. 아래 그림과 같이 입력이 출력보다 더 커지면 네트워크가 패킷을 원활하게 처리하지 못하며, 이로 인해 패킷이 네트워크 큐에 누적되면서 점진적으로 지연이 증가하고 결국 패킷 손실로 이어집니다.
이런 상황이 발생하는 것을 방지하기 위해 사용하는 기술이 바로 '혼잡 제어(congestion control)'입니다. 혼잡 제어는 네트워크가 혼잡할 때 전송 속도를 조절해 지연과 손실을 줄여서 안정적인 품질을 유지하기 위한 기술입니다. 네트워크 상태는 시간에 따라 빠르게 변화하기 때문에 영상 통화처럼 큰 대역폭이 필요한 서비스에서는 혼잡 제어 성능이 영상 재생 품질에 큰 영향을 미칩니다.
제가 이번 글에서 소개하고자 하는 내용은 LINE 통화의 지표를 분석하던 중 발견한 이상 패턴의 원인을 분석 하고, 이를 개선하기 위해 LINE 통화의 혼잡 제어 기술을 개선한 이야기입니다.
LINE 통화의 지표 분석 중 발견한 이상 패턴과 발생 원인
먼저 LINE 통화의 혼잡 제어 기술을 개선하게 된 계기를 구체적인 데이터와 함께 살펴보겠습니다.
LINE 통화의 월중 지표 변화 관측 중 발견한 이상 패턴
아래는 일본과 태국에서 각각 4개월간 측정한 LINE 1:1 영상 통화에서의 영상 디코딩 FPS(frame per second), 즉 초당 재생 프레임 수의 변화 추이를 그래프로 나타낸 것입니다. 이 지표는 사용자에게 영상이 얼마나 부드럽게 재생됐는지 보여주는 품질 지표 중 하나로, 값이 높을수록 영상이 끊김 없이 매끄럽게 재생된다는 것을 의미합니다.
이 지표의 변화를 관측하던 중 위 왼쪽 일본의 경우와 같이 특이한 패턴을 발견했습니다. 일본에서는 월초에 FPS가 가장 높았다가 월말로 갈수록 점차 감소하고 다시 월초에 FPS가 높아지는 독특한 패턴이 반복해서 나타나고 있었습니다. 반면 태국에서는 이런 패턴이 나타나지 않았는데요. 전반적으로 살펴본 결과 일본과 같은 패턴이 뚜렷하게 나타나는 국가도 있었고, 그렇지 않은 국가도 있었습니다.
이상 패턴 관련 통계 분석
일본에서 위와 같은 패턴이 나타난 원인을 분석해 보니 비디오 패킷 손실이 월말로 갈수록 점점 증가하다가 다시 월초에 감소하고 있다는 것을 알 수 있었습니다.
영상 재생 품질에 영향을 미치는 주요 요인 중 하나는 패킷 손실입니다. 패킷이 일부 손실되면 해당 프레임을 구성하는 정보도 함께 손실돼 정상적인 비디오 디코딩(decoding)이 불가능해지는데요. 일본에서는 아래 그래프와 같이 월초에는 패킷 손실률이 낮게 시작해서 월말로 갈수록 점차 증가하다가 다음 달 1일에 다시 낮아지는 흐름이 반복되고 있었습니다. 이는 월초에서 월말로 시간이 흐를수록 네트워크 환경이 점차 악화되다가 월초에 다시 회복되고 있다는 것을 의미합니다.
이 현상의 특성을 보다 정확히 파악하기 위해 다양한 조건에 따라 패킷 손실률을 분류해 분석해 봤습니다.
먼저 아래는 한 달간의 패킷 손실률을 네트워크 유형별로 나눠 살펴본 그래프입니다. 왼쪽 그래프는 1:1 통화의 두 사용자가 모두 4G 모바일 네트워크에 접속한 경우이고, 오른쪽 그래프는 두 사용자가 모두 Wi-Fi에 접속한 경우의 패킷 손실률을 나타냅니다. 월말로 갈수록 패킷 손실률이 증가하는 패턴이 두 사용자가 모두 Wi-Fi인 Wi-Fi 간 통화에서는 나타나지 않고, 모바일 네트워크 간 통화에서만 나타난다는 것을 확인할 수 있습니다.
다음 그래프는 모바일 네트워크 간 통화를 음성 통화와 영상 통화로 나눠 비교한 결과입니다. 영상 통화에서 패킷 손실 증가 패턴이 훨씬 더 두드러지게 발생하고 있다는 것을 확인할 수 있으며, 이를 통해 패킷 손실 증가가 더 높은 비트레이트를 사용하는 영상 통화의 특성과 관련 있다고 분석할 수 있습니다.
지표가 독특한 패턴으로 변화하는 원인 - 모바일 요금제
이와 같은 분석 결과를 바탕으로 내린 결론은, 상기 설명한 현상은 사용자의 월간 모바일 데이터 소진과 밀접한 관련이 있다는 것입니다. 국가별 혹은 통신사별로 차이가 있으나 모바일 요금제는 데이터를 월 단위로 정산하는 경우가 많습니다. 또한 정해진 데이터 용량을 모두 소진한 사용자는 속도, 즉 비트레이트에 제한이 적용되는 경우가 있습니다.
즉, 월초에는 정상 속도로 통신할 수 있는 사용자의 비율이 높았다가 월말에 가까워질수록 비트레이트 제한을 받는 사용자의 비율이 증가하면서 특히 영상 통화에서 전반적인 품질이 하락한 것입니다. 이 비트레이트 제한은 보통 그다음 달 1일에 초 기화되기 때문에 패턴이 반복되는 것 또한 설명할 수 있습니다.
모바일 요금제의 속도 제한에도 통화 품질을 유지하려면
LINE 통화는 모바일 환경에서도 HD 화질의 영상 통화를 지원하기 때문에 그만큼 사용하는 최대 비트레이트도 높습니다. 만약 모바일 요금제 정책 등의 이유로 비트레이트가 제한된 환경에서 제한을 초과해서 계속 전송하면 어떤 현상이 발생할까요? 앞서 말씀드린 것처럼 출력보다 입력이 더 커지면서 네트워크 혼잡이 발생할 것입니다.
그런데 만약 혼잡 제어 알고리즘이 이상적으로 작동했다면 이와 같은 네트워크 환경의 변화에도 손실이 발생하지 않도록 적응해서 화질을 낮추더라도 원활하게 재생하도록 작동했어야 합니다. 하지만 앞서 확인한 독특한 지표 변화 패턴은 그렇게 작동하지 않았다는 것을 나타내고, LINE 통화의 혼잡 제어를 개선할 필요가 있다는 것을 의미합니다.
LINE 통화의 혼잡 제어 작동 방식과 개선 방법
그럼 이제 LINE 통화의 혼잡 제어가 어떻게 작동하는지 살펴보고 어떤 부분을 개선했는지 말씀드리겠습니다. 먼저 국제 인터넷 표준화 기구(Internet Engineering Task Force, 이하 IETF)에서 네트워크 혼잡에 대응하기 위해 채택한 표준 기술이 무엇인지 소개하고, 다음으로 저희가 자체 개발해 LINE 통화에 적용한 CCFS라는 기술을 소개한 뒤, 앞서 살펴본 문제를 개선하기 위해 CCFS를 어떻게 개선했는지 말씀드리겠습니다.