글로벌 네트워크 지연 시간(Latency) 설명
지연 시간(Latency)은 현대 소프트웨어를 망가뜨립니다. 네트워크 계층에서의 1밀리초 지연은 애플리케이션에서 수 초의 랙(lag)을 유발할 수 있습니다. 이는 실시간 도구와 AI 스트리밍의 사용자 경험을 저해합니다.
대부분의 엔지니어는 인터넷을 마법 같은 클라우드로 생각합니다. 하지만 현실은 물리적이며 매우 경직되어 있습니다.
빛의 속도 한계 데이터는 해저 광섬유 케이블을 통해 이동합니다. 빛은 진공 상태보다 유리 내부에서 더 느리게 이동합니다. 광섬유를 통과하는 빛의 속도는 초당 약 204,500km입니다.
태평양을 가로지르는 9,000km의 경로는 최소 88ms의 지연이 발생합니다. 이 한계는 극복할 수 없습니다. 물리학이 성능의 하한선을 결정하기 때문입니다.
Anycast vs Unicast Unicast 네트워크에서는 모든 서버가 고유한 하나의 IP를 가집니다. 런던의 사용자가 뉴욕 서버에 접속하면, 패킷은 수많은 홉(hop)을 거쳐 먼 거리를 이동해야 합니다. 이는 높은 지연 시간을 유발합니다.
Anycast는 이를 변화시킵니다. 여러 엣지(edge) 위치에 동일한 IP를 할당할 수 있습니다.
- 라우터는 BGP를 사용하여 최단 경로를 찾습니다.
- 패킷은 물리적으로 가장 가까운 노드로 전송됩니다.
- 연결이 사용자 근처에서 시작됩니다. 이를 통해 네트워크를 고객과 더 가까운 곳에 배치할 수 있습니다.
패킷 손실(Packet Loss)의 위험성 많은 관리자는 1%의 패킷 손실은 괜찮다고 생각합니다. 하지만 고속 API에게 이는 재앙입니다.
Cubic과 같은 표준 TCP 프로토콜은 패킷 손실을 전체적인 혼잡(congestion)으로 취급합니다. 패킷이 하나라도 떨어지면 시스템은 전송 속도를 30%나 급격히 줄입니다. 손실이 반복되면 연결은 결코 최대 속도에 도달할 수 없습니다.
연결이 타임아웃(timeout)에 걸리면 대기 시간은 매번 두 배로 늘어납니다. 아주 작은 손실만으로도 애플리케이션이 몇 초 동안 멈출 수 있습니다.
해결 방법 현대의 팀들은 이러한 한계를 극복하기 위해 주로 두 가지 도구를 사용합니다.
- BBR: 이 알고리즘은 모든 패킷 손실에 맹목적으로 반응하는 대신 실제 대역폭을 측정합니다. 이를 통해 속도를 안정적으로 유지합니다.
- QUIC: 이 프로토콜은 UDP 위에서 동작합니다. 패킷 하나가 손실되어도 다른 데이터 스트림이 중단되는 것을 방지합니다. 이는 기존 TCP에서 발생하는 프리징(freeze) 현상을 막아줍니다.
이러한 물리적 법칙과 라우팅 규칙을 이해하면 더 빠른 글로벌 시스템을 구축하는 데 도움이 됩니다.