1. 회사의 서버문제

-가정-
회사의 서버에서 제때에 응답하지 못했다고 가정했을때에..
서버 하드가 순간적으로 스와핑을 하느라 응답을 하는데 0.3초정도 멈췄거나
또는 회사서버 프로그램 설계를 잘못 짜서 게임서버가 DB(데이터 베이스)를 읽을려고
DB서버의 응답을 기다리는 동안 아무것도 안하게 되어있을때 이런경우를...


내부적인 블러킹이라고 말합니다.

※주: block = 가로막다


-결론-
회사쪽 서버의 문제 또는 프로그램 로직의 문제 (블러킹)




2. 회선 문제

-가정-
회선문제라고 해서 중간에 쥐세끼가 회선을 갉아먹어서 그런 것이 아니고(웃음)

회사 서버의 이더넷 포트와 우리집 내 컴퓨터의 이더넷 포트사이에는
선만 있는 것이 아니라 라우터도 있고 리피터도 있고 공유기도 있겠죠?

그런 기계들은 모두 하나같이 '버퍼'가 달려있죠.

그냥 220v 볼트 전원넣는다고 막 전깃줄로 패킷이 오고가는게 아니라
일단 받으면 패킷들을 전부 버퍼에 쌓았다가 다음 넘겨받을 놈에게 다시 주는 식인데
넘겨받을 놈에게 주는 속도보다 나한테 오는 속도가 빠르면 버퍼가 넘치겠죠?

버퍼에 넘치면 어떻게 될까요?

씹거나 하겠죠.
어쨌든간에 처리를 못하게 되면 나한테 보내는 놈은 다시 그쪽도 넘치고 뭐 그런 식인데
물론 버퍼가 넘치면 알아서 안 다치게 알아서 씹던가 하니깐 어떻게든 가긴 가는데
문제는 그렇게 씹히고 나면 내가 씹혔는지 판단해서 다시 보낼때까지

TCP/IP 수준에서 한박자 늦어지게 되고

다른 버퍼처리과정에서 클라이언트에 가기까지 전부 한박자 늦어지게 되는것이죠.
결국 (?)이 아니라(?)이 발생.

처리를 못한다는거죠.
1이라는 패킷이 넘쳤으니 ( )공백이 되서 연산을 못하게 되니 ( ) -> 연산 -> ( ). 이렇게 되는거죠.


-결론-
버퍼의 패킷처리의 문제



3. 클라이언트 즉, 사용자 측. (사용자 PC.)

-가정-
간단합니다.
클라이언트측(사용자측)에서 하드 긁느라고 패킷은 받아놓을 시간이 없어서 쌓여있다가 한번에
읽어들이는 식.


-결론-
사용자 PC의 하드웨어/소프트웨어 적인 사양문제.

이상 3가지 범주 내에서 렉이 일어납니다.