한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L4 인터넷 회선

ECMP 경로 하나의 불량 ECMP / link bundle member fault

원인 ID isp-ecmp · 주 담당 인프라팀·네트워크 인프라 · 함께 게임개발팀·서버 개발, 외부·외부

그림과 실험이 있는 원본 카드로 열기 →

통신사와 데이터센터는 같은 목적지로 가는 경로를 여러 개 두고 연결마다 경로 하나를 정해 보냅니다. 경로 하나만 고장 나면 그 경로에 배정된 사람만 계속 렉을 겪습니다.

왜 여러 회선을 묶은 구간에서 한 회선이나 장비 하나가 불량이거나 붐빔 → 그러면 주소·포트 조합(해시)으로 경로가 정해져, 그 경로에 배정된 연결만 손실·지연 → 화면에서는 같은 지역·같은 통신사인데 일부만 꾸준히 순간이동. 재접속하면 멀쩡해지기도 함

증상
순간이동, 고무줄, 뚝뚝 끊김
요인
손실, 지터
누가 겪나
나만, 특정 지역·통신사
언제
항상
담당
주 담당 인프라팀·네트워크 인프라 · 함께 게임개발팀·서버 개발, 외부·외부
게임개발팀 할 일
연결별 손실·재전송 통계를 남겨 겪는 사람의 IP·포트와 시각을 뽑을 수 있게 하기(TCP는 TCP_INFO의 재전송 수, UDP는 빠진 패킷 순번으로 계산).
인프라팀 할 일
겪는 사람의 IP·포트와 시각을 모아 통신사·데이터센터에 전달, 경로별 손실 모니터링, 경로 측정은 게임과 같은 프로토콜·포트로(mtr --tcp·--udp와 --port), 우리 장비의 경로면 불량 회선·장비를 묶음에서 빼기.
외부 할 일
통신사에 불량 경로 확인·교체 요청, 유저에게 재접속으로 임시로 피하도록 안내(재접속으로 포트가 바뀌는 경우).
수치 감각
경로가 4개면 사용자의 약 4분의 1만 겪습니다. 핑 측정은 게임과 다른 경로로 가서 멀쩡하게 나오기도 합니다.
그래프에서는
일부만 높음 · 연결별 손실·재전송(IP·포트별)
확인할 곳
연결별 손실·재전송을 출발 IP·포트로 나눠 보고 mtr을 UDP(-u)로 게임 포트(-P)에 보내며 출발 포트(-L)를 정해 재고, 출발 포트를 바꿔 여러 번 되풀이함. -L 없이 -P만 주면 요청마다 출발 포트가 바뀌어 여러 경로가 섞임
이러면 맞음
같은 지역·통신사 안에서 특정 출발 포트(또는 주소) 조합만 꾸준히 손실이 나고, 재접속해 포트가 바뀌면 멀쩡해짐
이러면 아님
포트를 바꿔도 모두 나쁘면 한 구간 전체의 혼잡·장애
확인 수단
인프라 도구로 확인(게임 코드 불필요)
더 알아보기
한 연결의 패킷 순서가 뒤섞이지 않게, 장비는 주소와 포트(장비 설정에 따라 주소만)로 계산한 값에 따라 연결마다 경로를 고정합니다(ECMP, LAG). 주소만 쓰는 곳에서는 재접속해도 같은 경로라 나아지지 않습니다. “핑은 멀쩡한데 게임만 렉”, “재접속하니 나아짐” 같은 제보가 함께 들어오면 이 원인을 의심합니다.

출처

  1. RFC 7424: Mechanisms for Optimizing Link Aggregation Group (LAG) and Equal-Cost Multipath (ECMP) Component Link Utilization in Networks IETF
    LAG·ECMP는 헤더 필드의 해시로 흐름마다 링크 하나를 정해 패킷 순서를 지킴(흐름→링크 다대일 대응)
  2. RFC 2991: Multipath Issues in Unicast and Multicast Next-Hop Selection IETF
    흐름 구분 기준은 구현마다 다름(목적지 주소만, 주소 쌍, 포트까지), 다중 경로에서는 ping·traceroute 결과를 믿기 어려움
  3. mtr(8) manual page source mtr
    -u(UDP), -P(목적지 포트), -L(UDP 출발 포트) 옵션, -P만 주면 출발 포트에 요청 순번을 넣어 요청마다 바뀜

함께 보면 좋은 원인

같은 층: L4 인터넷 회선

같은 증상(순간이동)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기