줌 "네트워크 대역폭이 낮습니다" 해결책

AI·2025년 10월 15일

작성 이유 : 줌을 하는데 계속 "대역폭이 낮습니다"메세지가 뜨며 줌이 끊겨서 찾게 됨

클라이언트(사용자)와 서버 사이에 정해진 크기의 파일을 주고받는 데 걸리는 시간을 측정하여 속도를 계산하는 원리 =>

핑(Ping), 다운로드, 업로드

을 기준으로 네트워크 속도 확인함

과정

1. 가장 가까운 테스트 서버 찾기

정확한 측정을 위해, 지리적으로 가장 가깝거나 네트워크 지연이 가장 적은 서버를 먼저 찾습니다. 여러 서버 목록에 아주 작은 데이터를 보내 응답이 가장 빨리 오는 서버를 선택합니다.

2. 지연 시간 (Latency/Ping) 측정 📡

원리: 클라이언트가 서버로 아주 작은 데이터 패킷을 보냅니다.

과정:

클라이언트가 서버로 "측정 시작" 신호를 보냅니다.

서버는 신호를 받자마자 즉시 "응답" 신호를 되돌려 보냅니다.

클라이언트는 신호가 왕복하는 데 걸린 시간(ms, 1/1000초)을 측정합니다.

이 과정을 여러 번 반복하여 안정적인 평균값을 계산합니다. 이것이 바로 '핑'입니다. 핑이 낮을수록 반응 속도가 빠른 인터넷입니다.

3. 다운로드 속도 측정 📥

원리: 서버에서 일정 시간 동안 얼마나 많은 데이터를 다운로드할 수 있는지 측정합니다.

과정:

클라이언트가 서버에 큰 파일(보통 임의의 데이터로 생성된 파일)을 요청하며 시간 측정을 시작합니다.

(핵심) 하나의 큰 파일을 통째로 받지 않고, 여러 개의 연결(Multi-connection)을 동시에 만들어 데이터를 병렬로 다운로드합니다. 이렇게 해야 인터넷 회선을 최대한 사용하여 정확한 최고 속도를 측정할 수 있습니다.

정해진 시간(예: 10초) 동안 다운로드한 총 데이터양을 측정합니다.

측정이 끝나면 다음 공식으로 속도를 계산합니다.

속도(Mbps) = (총 다운로드한 용량(Bytes) × 8) ÷ 측정 시간(초) ÷ 1,000,000

4. 업로드 속도 측정 📤

원리: 다운로드와 반대로, 클라이언트에서 서버로 얼마나 많은 데이터를 보낼 수 있는지 측정합니다.

과정:

클라이언트가 브라우저 메모리상에 임의의 데이터(큰 덩어리)를 생성합니다.

시간 측정을 시작하며, 여러 개의 연결을 통해 이 데이터를 서버로 동시에 전송합니다.

서버는 받은 데이터를 그냥 버립니다. 서버의 역할은 최대한 빨리 받기만 하는 것입니다.

정해진 시간 동안 서버로 보낸 총 데이터양을 측정합니다.

다운로드와 동일한 공식으로 속도를 계산합니다.

속도(Mbps) = (총 업로드한 용량(Bytes) × 8) ÷ 측정 시간(초) ÷ 1,000,000

이를 구현하기 위한 주요 구현 고려사항
서버 성능: 테스트 서버는 10Gbps 이상의 매우 빠른 인터넷에 연결되어 있어야 합니다. 서버 속도가 사용자 속도보다 느리면 안 되기 때문입니다.

캐시(Cache) 방지: 브라우저나 네트워크 장비가 이전에 테스트한 데이터를 재사용하지 못하도록, 요청하는 파일 주소에 매번 다른 임의의 문자열(예: testfile.bin?t=12345678)을 붙여야 합니다.

자바스크립트: 웹 기반 속도 테스트는 주로 자바스크립트의 Fetch API나 XMLHttpRequest를 사용하여 서버와 통신하며, Web Worker를 이용해 브라우저가 멈추지 않도록 백그라운드에서 계산을 수행합니다.

Pseudo code

async function testDownloadSpeed() {
  const fileSizeInBytes = 100 * 1024 * 1024; // 100MB 파일이라고 가정
  const startTime = Date.now();

  // 캐시 방지를 위해 랜덤 쿼리 추가
  const response = await fetch('/download?t=' + startTime);
  await response.blob(); // 파일 다운로드가 끝날 때까지 기다림

  const endTime = Date.now();
  const durationInSeconds = (endTime - startTime) / 1000;
  
  const speedBps = (fileSizeInBytes * 8) / durationInSeconds;
  const speedMbps = (speedBps / 1000 / 1000).toFixed(2);

  console.log(`Download Speed: ${speedMbps} Mbps`);
}

원인 - 네트워크 트래픽의 우선순위를 화상 회의에 몰아줌 => 사용 가능한 대역폭의 대부분을 줌이 선점하고 나머지 프로그램들은 남은 적은 양의 대역폭을 나눠 써야해서 느려짐
=> 그럼에도 줌이 느려지는 이유는?

컴퓨터나 인터넷 회선 외부에 문제>

1. 인터넷 '속도'가 아닌 '품질'의 문제

  • 패킷 손실 (Packet Loss): 영상/음성 데이터는 잘게 쪼개진 '패킷' 형태로 인터넷을 통해 전달됩니다. 이 패킷 중 몇 개가 중간에 사라지면, 목소리가 로봇처럼 들리거나 화면이 순간적으로 멈추는 현상이 발생합니다.
  • 지터 (Jitter): 패킷이 일정하게 도착하지 않고 들쭉날쭉하게 도착하는 현상입니다. 실시간 통신의 품질을 크게 저하시키는 원인이 됩니다.
  • Wi-Fi의 불안정성: Wi-Fi는 간섭에 매우 취약해 패킷 손실과 지터가 쉽게 발생합니다. 안정적인 회의를 위해서는 유선랜(LAN) 연결이 가장 좋습니다.

2. 다른 참가자의 네트워크 문제
화상 회의는 다자간 통신입니다. 나의 네트워크가 아무리 좋아도, 다른 참가자 중 한 명이라도 인터넷 환경이 나쁘면 전체적인 회의 품질이 떨어질 수 있습니다.

특히 상대방의 업로드 속도가 매우 느리면, 그 사람의 영상과 음성 데이터가 줌 서버로 제대로 전달되지 않습니다. 그 결과, 내 화면에서는 그 사람의 화면이 계속 끊기고 느리게 보이게 됩니다.

3. 줌(Zoom) 서버의 문제

  • 서버와의 물리적 거리: 한국에서 접속했는데, 회의가 미국에 있는 줌 서버를 통해 연결된다면 데이터가 오가는 거리가 멀어져 지연이 발생할 수 있습니다.
  • 서버 과부하: 특정 시간대에 사용자가 몰리면 줌 서버에 부하가 걸려 전체적으로 서비스가 느려질 수 있습니다.

4. 내 컴퓨터의 성능(리소스) 부족
네트워크 최적화 기능은 '인터넷' 사용 순서만 정해줄 뿐, 컴퓨터 자체의 성능을 올려주지는 않습니다.

  • CPU 및 메모리(RAM) 부족: 줌은 실시간으로 영상을 압축하고 해제(인코딩/디코딩)해야 하므로 생각보다 많은 CPU 자원을 사용합니다. 회의 중에 다른 무거운 프로그램을 실행하면 컴퓨터가 느려져 줌의 영상 처리도 함께 버벅거릴 수 있습니다.

해결법
dell의 경우, Dell Optimizer를 작동시켜 네트워크 부분에서,
회의 대역폭 성능에 있는 것을 OFF 시키면 위와 같은 우선순위를 없애기에 대역폭 문제가 없어진다고 한다.

참고>
https://community.zoom.com/t5/Zoom-Meetings/Zoom-or-Team-slows-down-internet-speed-by-30-times/m-p/122236/thread-id/69875
https://blog.naver.com/sw4r/223458573377

0개의 댓글