저녁 8시에 네트워크가 끊기는 이유

프록시는 하루 종일 잘 작동합니다. 그러다 저녁 8시가 되면 상황이 달라집니다. 갑자기 연결이 멈추고, 지연 시간(latency)이 급증하며, 앱 연결이 끊어집니다.

Wi-Fi를 탓할 수도 있겠지만, 진짜 문제는 글로벌 네트워크 인프라에 있습니다.

저녁 8시가 되면 수백만 명의 사람들이 동영상 스트리밍과 게임을 시작합니다. 이로 인해 국제 게이트웨이에 엄청난 트래픽이 발생합니다.

연결이 끊어지는 이유는 다음과 같습니다:

  • 게이트웨이 포화(Gateway Saturation): 라우터가 용량에 도달하면 '테일 드롭(Tail Drop)'을 수행합니다. 남은 공간이 없기 때문에 새로운 패킷을 단순히 폐기해 버리는 것입니다.
  • TCP 패닉(TCP Panic): 대부분의 시스템은 Cubic 알고리즘을 사용합니다. 패킷 손실이 감지되면 속도를 절반으로 줄여버립니다. 이는 재전송과 지연 시간 증가가 반복되는 '데스 루프(death loop)'를 만듭니다.
  • BGP 플래핑(BGP Flapping): 피크 시간 동안 라우터는 심한 패킷 손실을 감지하고 새로운 경로를 찾으려 시도합니다. 이 경로 재계산 과정에서 활성 연결이 끊어지게 됩니다.

일반적인 공용 라우팅(Public routing)으로는 이 부하를 감당할 수 없습니다. 기업들은 안정적인 연결을 유지하기 위해 전용 회선을 사용합니다.

공용 라우팅과 전용 회선 비교:

• 경로(Routing Path): 공용 라우팅은 공유 경로를 사용합니다. IPLC와 IEPL은 고정된 전용 광케이블을 사용합니다. • 지연 시간(Latency): 공용 라우팅은 급격한 변동이 심하지만, 전용 회선은 안정적입니다. • 패킷 손실(Packet Loss): 공용 라우팅은 밤 시간대에 5%~10%의 손실이 발생할 수 있지만, 전용 회선은 손실률이 0%입니다. • 보안(Security): 공용 라우팅은 방화벽을 거치지만, 전용 회선은 이를 우회합니다.

IPLC는 물리적인 전용 통로입니다. 공용 인터넷을 거치지 않으므로 저녁 8시의 트래픽 급증에 영향을 받지 않습니다. IEPL은 데이터 링크 계층(data link layer)에서 작동하는 유사한 솔루션입니다.

전용 회선을 구매할 수 없다면, Linux 서버에서 다음 두 가지 해결 방법을 시도해 보세요:

  1. BBR 혼잡 제어(Congestion Control)로 전환하세요. Cubic과 달리 BBR은 패킷 손실이 발생해도 당황하지 않습니다. 실제 네트워크 용량을 모델링하여 속도를 유지합니다.

sysctl.conf를 업데이트하려면 다음 명령어를 실행하세요: net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr

  1. MTU를 낮추세요. 최대 전송 단위(Maximum Transmission Unit)를 1500에서 1420 또는 1360으로 변경하세요. 이렇게 하면 라우터가 암호화된 패킷을 더 작은 조각으로 쪼개는 것을 방지할 수 있습니다.

출처: https://dev.to/wenrugou/why-does-your-network-proxy-keep-disconnecting-at-8-pm-the-engineering-behind-iplc-lines-and-node-4ld