티스토리 뷰
서버의 부하를 줄일 수 있는 부하 조절 정책으로, 블리자드의 디아블로2팀이 조치한 방법이 어떤 방법인지 알아보자.
1. 서버에 요청하는 액션이 일정 횟수 이상 반복되면 Trouble 유저로 판단.
* 방 입장/퇴장 반복
* 방 생성 후 일정 시간 이내에 빠른 퇴장
* 로그인/로그아웃 반복
2. Trouble 유저 (계정)로 판단시 해당 캐릭이 사용된 IP를 차단.
* Trouble 유저가 일정 시간내에 다른 IP에서 재사용된다면 그 IP도 차단.
* 한번 Trouble 유저로 인식되면 문제가 된 Trouble 사유가 아니더라도 (예: 방생성/퇴장 반복) 로그인만으로도 IP차단.
3. 빠른 방생성 입장/퇴장의 경우 ProcessID도 인식하는 것 같음. (정확하지 않음)
* 배틀넷 로그아웃후에 로그인을 통해 방 입장/퇴장 반복시에 간격이 짧으면 렐름 다운이 되는 경우가 발생.
4. 유저가 적은 새벽시간이나 낮시간에는 제약이 약한편
* 분명히 낮시간에는 잦은 반복과 더 빠른 반복도 유연하게 넘어갔었음.
* 유저가 훨씬 많은 시간 대에 같은 시간단위로 시도했음에도 Trouble 유저로 판정된다. (판단 규칙이 강화됨.)
5. 차단된 IP나 계정을 일정 시간 이내에 사용하면, 블럭 시간이 늘어남.
* 블럭되었다면 해당 계정을 묵혀두는 것이 좋다. 유동 IP의 경우는 IP를 재발급 받아서 시도 할 수 있었는데, 계정에 대한 제제가 들어가 있는 상태라, 바로 바뀐 IP도 블럭되었고, 블럭 시간은 계정단위로 지정이 되어있는 것 같다.
* 일반적으로 알려진 시간 (1시간)동안 사용하지 않았어야 했는데, 사용했더니 블럭 시간이 2배로 늘어났음. (정확치는 않음)
* 기본적으로 계정에 대한 블럭 개념 + IP에 대한 블럭 두가지 제약이 동시에 걸리는 구조로 예상됨.
6. 기타 사항
* 디아2의 경우 월간 사용료나 캐쉬템을 파는 게임이 아니기 때문에 강경한 정책을 사용할 수 있는편.
* 실제로 핵툴 유저 등 비정상 유저 계정 블럭은 CD-KEY단위로 이루어짐.
* 즉시 제제가 없다는 점은 좀 아쉽다.
* 서버 유지비를 줄일 수 있는 강경한 정책을 유지할 수 있는 장점이 있는 반면 사용자들이 불편한 점도 많이 갖고 있다. (디아2 배틀넷 초기에는 이렇지 않았음. 초기의 길고 잦았던 렐름다운을 겪고나서 취한 방법이 이 방식이라 생각됨.)
'Software Engineering > Knowhow' 카테고리의 다른 글
조엘 온 소프트웨어 - 손쉬운 소프트웨어 스케줄 관리법 (0) | 2014.10.22 |
---|---|
서버 제어 시스템에 대한 썰 (0) | 2013.07.11 |
멀티스레드 로직 구현 방식 (0) | 2013.01.26 |
서버 프로그래밍 핵심 정리 (0) | 2013.01.26 |
문제 해결 노트 (0) | 2009.02.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리버스 엔지니어링
- EasyExec
- 루비 온 레일즈
- Ruby on Rails
- SQLite Spy
- RoR
- 임백준
- CppSQLite
- NDC2013
- 바로가기 프로그램
- svn
- perfmon
- 디버깅
- 게임개발포에버
- 엘키
- 좋은 프로그래머
- ruby
- 멀티스레드
- 루비
- ftp
- c언어
- 게임데브포에버
- 조엘 온 소프트웨어
- Rails
- EzShortcut
- TraceRoute
- TDD
- 디자인 패턴
- MS-SQL
- SDL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함