검수요청.png검수요청.png

랙 (통신)

위키원
kskim5223 (토론 | 기여)님의 2020년 8월 7일 (금) 16:15 판 (특징)
이동: 둘러보기, 검색

(lag, Latency)은 보통 컴퓨터 통신이 일시적으로 지연되는 것을 나타내는 말이다. 하지만 가끔 컴퓨터의 입력 장치 등이 일시적으로 응답이 없는 것을 가리키는 말로도 쓰인다. 전문적인 용어로는 패킷이 컴퓨터에서 목적지로 전송된 뒤에 다시 돌아올 때까지 지연되는 시간을 말한다.

개요

컴퓨터상의 랙, 간단하게 설명하자면 일시적인 지연 현상을 뜻한다. 특히 받은 입력을 처리하여 관련 출력을 낼 때까지 걸리는 랙에 관련할 때 인풋랙이라고도 한다. lag이라는 단어의 몇 가지 뜻 중에서 '시간 차이'라는 의미를 가져와서 활용하는 용어이다. 서버클라이언트 간의 시간 차이, 디바이스 간의 입력과 출력 시간 차이 등 여러 가지 경우에 사용된다. 사실 일반 pc 사용자들 사이에서는 랙이라고 하면, 온라인 게임 혹은 웹서핑 등의 인터넷 환경에서 서버나 클라이언트, 혹은 다른 클라이언트 간에 시간적인 차이가 얼마나 발생하는지에 대해서 언급하는 경우라고 보면 된다. 현재 일반적인 컴퓨터의 경우 어떤 장치들을 어떤 방식으로 연결했든지 간에 동기화를 아무리 잘해도 장치들 간의 미세한 시간 차이는 존재할 수밖에 없으며, 당연히 이 시간 차이가 크면 클수록 문제가 되므로 이때 랙이 있다, 심하다 등으로 표현하게 된다. 컴퓨터의 성능이 프로그램이 요구하는 사항을 따라가지 못하거나, 혹은 하드 디스크 드라이브에서 한 번에 많은 데이터를 읽어올 때 화면이 끊기는 현상(하드 스왑)도 일반적으로 랙이라고 불린다. 이 경우는 흔히 컴랙이라고 불리는데, 컴퓨터를 3~5년마다 한 번씩 바꿔야 하는 주요 원인이 되기도 했으나 2010년대부터 SSD가 대중화되고 나서부턴 줄어드는 경향을 보이고 있다. 사실 컴퓨터의 하드웨어가 뒤떨어져서 컴퓨터의 처리 속도가 게임이 요구하는 수준을 따라가지 못해 생기는 현상이니 lag이라는 단어 자체의 뜻에 부합하기는 하지만, 이쪽 의미의 처리 속도 지연은 보통 프리징이라고 한다. 랙이 걸릴 경우, 프로그램(주로 게임)에 따라 온갖 진귀한 이상 현상들이 펼쳐지는 경우가 많다. 애초에 랙이 걸리는 모든 상황을 고려해서 예외 처리를 해가면서 프로그래밍을 하기가 매우 힘들기 때문에 예측할 수 없는 버그가 나오게 되는데, 몇몇 온라인 게임들은 이런 랙을 이용한 버그를 악용하여, 일부러 랙을 걸어서 온라인 게임상에서 부당한 방법으로 이익을 얻는 경우도 있다. 각종 온라인 게임에서 어떤 유저가 이것에 걸리면 주위 사람들이 짜증을 내게 되며, 반응속도가 매우 중요한 대전 액션 게임과 리듬게임은 이게 심해버리면 아무리 게임성이 좋아도 버림받게 된다. 이는 인터넷 브라우저들도 못 피해 가는 문제. 랙이 자주 유발된다는 이유로 인터넷 브라우저를 갈아타기도 하고, 랙이 유독 잘 걸리는 특정 사이트나 서버는 자연히 사람들이 꺼리게 되기도 한다. 시중에 랙을 해결하기 위한 여러 방안들을 담은 자료들이 블로그나 유튜브 영상 등으로 돌아다니나 사실 잘 해결될 확률이 100%라고 하긴 힘들다. 무선랜 자체를 다른 기기로 갈아야 하는 문제, 혹은 컴퓨터 저사양의 문제 등 하드웨어 자체의 문제라면 제아무리 소프트웨어 쪽을 건드린다 해도 무용지물이기 때문이다.[1]

특징

랙의 가장 흔한 원인은 말 그대로 네트워크 지연 때문이다. 온라인 게임은 대부분 네트워크를 전제로 게임이 진행된다. 응당 서버/클라이언트가 있게 되고 이 사이에 통신 속도가 존재한다. 게이머들은 흔히 이를 두고 핑(ping)이라 표현한다. 이 핑이 일정 수준 이상으로 높으면 지연이 발생하고 있다는 것을 직접적으로 말해준다. 지연 속도가 특정 수치 이상이 되면 불일치가 발생한다. 게임 클라이언트에서는 공격 모션이 나왔음에도 실제로 공격 대상에는 피해 수치가 적용되지 않는 것과 같은 상황이 발생하는 것이다. 이게 점점 심해지면 어느 순간 자신도 모르게 멀미가 나오는 것을 느낄 수 있다. 이런 온라인 게임의 네트워크 품질은 비단 자신의 인터넷 회선에만 영향을 받는 것은 아니다. P2P 방식으로 게이머들끼리 네트워크를 형성해서 진행되는 게임의 경우에는 다른 게이머의 네트워크 회선 속도에 자신도 같이 영향을 받는다. 빛의 속도에 근접하면 전혀 다른 세상이 펼쳐지는 것처럼, 핑이 일정 수준 이상으로 높아지면 개발자들이 전혀 예측하지 못했던 새로운 문제들이 발생하기도 한다. 이런 버그들을 악용해서 일부 게이머들은 랜선을 뽑았다 다시 연결하는 태핑이나 특정 패킷을 특정 주소로 무한대로 전송하는 누킹, 자신의 PC에 랙을 의도적으로 유발하는 랙핵과 같은 방법을 사용해서 추가적인 이득을 얻기도 한다. 랙의 또 다른 요인은 게임 서버에 존재한다. 최근 온라인 게임의 추세는 클라이언트는 뷰어 역할만 하고 게임 서버에서 모든 게임 상태를 모델링 하는 방식으로 진화하고 있다. 이렇게 이루어지는 이유는 해킹을 막기 위해서이다. 예를 들어서 디아블로 3에서는 간단한 조작으로 화면에 표시되는 골드 값을 변경할 수 있을지 몰라도 실제 그 표시되는 데이터로 경매장을 이용할 수는 없는데, 그것과 동일한 이치다. 실제 데이터는 서버에 모두 저장돼 있고 그 값을 토대로 계산이 진행되기 때문이다. 이렇게 서버가 복잡해지다 보니 서버의 상태 이상이 고스란히 랙으로 전달된다. 스스로가 속해 있는 게임 서버의 상태 이상으로 모델링 처리 속도가 지연될 시 그 모든 영향을 그대로 받는다는 말이다. 이런 점들을 본다면 이런 종류의 랙에 대해서 게이머가 할 수 있는 것은 하나도 없다. 그저 게임 개발사에서 서버를 안정화 시키기를 기다리는 수밖에는 없다. 랙을 유발하는 이유 중 한 가지로서 모든 게이머가 잘 알고 있듯이 컴퓨터 사양이 있다. 컴퓨터 사양이 해당 게임을 구동할 수 있을 정도로 충분히 빠르지 않다면 필연적으로 심각한 랙이 발생한다. 이 경우에는 당연히 업그레이드 말고는 답이 없다. 물론 게임의 그래픽 옵션 사양을 낮추고, 해상도를 낮추는 방법을 통해서 어느 정도의 가용성을 확보할 수 있기도 하지만 실질적으로 쾌적한 게임을 즐기기 위해서는 컴퓨터 업그레이드가 유일한 답이다.[2]

스터터링

일시적 랙으로 인해 게임이 버벅거리는 현상을 주로 지칭한다. 특히 오픈 월드 게임에서 프리 로드할 데이터가 HDD에 있는 경우 잘 발생한다. 심할 경우 프리징이라고 하기도 한다. 물론 해당 문서에도 있듯이 랙과 프리징은 엄밀히 구별되지는 않는 유의어 관계이기 때문에 스터터링/프리징이라는 말만으로는 정확히 어느 정도 심한지 알 수 없다. 따라서, 객관적 증거가 필요한 상황이라면 후술할 내용을 참고해서 정확한 측정을 해보는 것이 좋다. 실시간 평균 프레임 측정으로는 잘 잡히지 않는 미세한 랙이 반복되는 현상을 따로 마이크로스터터링이라고도 한다. NVIDIA가 이걸 이용해서 경쟁사를 곤경에 빠뜨린 적도 있다. 이후부터 이를 확인하기 위해 평균 프레임과 1% Low를 비교하는 방식을 주로 사용한다. 여기서 1% Low는 가장 높은 프레임부터 낮은 프레임까지 순서대로 정렬 후 최하위에서 딱 1%에 해당하는 값을 쓰는 방식이다. 근본적으로 중앙값과 같은 개념이지만 중앙(백분위 50%)이 아니라 하위 특정 위치(백분위 99%)를 사용한다는 점만 다르다. 따라서 평균값 대신 중앙값을 쓰는 경우가 왜 있는지를 알아야 1% Low의 의미를 더 정확히 알 수 있다. 1% Low는 상위 99%이기 때문에 99th 프레임이라고 쓰기도 하며, 0.1% Low도 같이 보여주는 곳도 있다. 초기엔 평균/최저/최고 프레임을 표기하는 방식이 주류였으나, 최저/최고 프레임은 단 한 프레임의 측정치라는 특성상 측정 오차가 무지막지하게 날 수가 있어서 처음부터 큰 의미를 부여받진 못했다. 그나마 최고 프레임은 사람의 체감 성능과 관계도 거의 없는 편이다. 그래서 NVIDIA가 정확한 측정 툴인 FCAT를 개발하여 마이크로스터터링 폭로 사건을 일으켰으나, 해당 문서에도 있듯이 2 PC 녹화를 사후 분석하는 방식이라 비용상 대중화되지 못했다. 결국 효율적이면서도 신뢰도가 괜찮은 마이크로스터터링 분석 방식을 찾다 보니, 퍼센테일 분석을 거쳐서 대세로 자리 잡은 방식이 1% Low이고, 더 민감하게 측정을 원할 경우 쓰는 게 0.1% Low인 것. 다만, 드물게 특이한 값(4% Low, 0.5% Low 등)을 쓰는 경우도 있다. 퍼센테일 및 1%, 0.1% Low는 편리하고 효율적이나, 완벽하진 않다. 단점은 벤치 구간을 너무 길게 잡으면 프레임이 안 나오는 구간에서 나온 스터터링 프레임들이 집계 대부분을 차지하게 되어서 나머지 구간 성능을 알 수 없게 된다는 점. 그리고 맵을 열거나 로딩이 나오는 구간이 들어가 버리면 해당 부분에서 체감 성능과 관계없는 스터터링 프레임들이 집계 대부분을 차지해서 이상하게 낮은 값이 나오게 된다. 따라서 해당 방법으로 마이크로스터터링을 정확히 측정하려면, 측정할 구간을 정확히 정하고 체감 성능과 상관없는 동작을 피해야 된다(특히 맵이나 메뉴를 연다거나, 전체 화면 로딩 스크린이 나오면 안 된다).

각주

  1. 랙(컴퓨터) 나무위키 - https://namu.wiki/w/%EB%9E%99(%EC%BB%B4%ED%93%A8%ED%84%B0)
  2. codewiz, 〈게임 보안: 랙에 관한 모든 것〉, 《지니야》, 2012-07-06

참고자료

같이 보기

  검수요청.png검수요청.png 이 랙 (통신) 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.