프로그래밍/서버(23)
-
[서버] 데드 레커닝(Dead Reckoning)
서론 실시간 달리기 게임을 만들기 위해 서버에서 패킷을 보내는데 1초에 60번을 랜더링하는 화면에 패킷을 1초에 60개를 뿌릴 수 없다. 그래서 이것 저것 찾아서 알게 된 개념이다. 데드 레커닝 정의 분산 네트워크 기반 실시간 시뮬레이션 환경에서 트래픽 데이터(traffic data)를 감소시키기 위해 사용하는 기법. 데드(dead)라는 말은 신호를 받지 못하고 있는 상태를 말하며 레커닝(reckoning)은 추산한다는 의미로 신호가 없는 동안에는 추측하여 상태 정보를 갱신하는 것을 말한다. 영어로 찾아보니 추측 항법이라는 용어를 찾을 수 있었다. 배의 방향, 여행 경로를 추측하는데 쓰이는 방법이라고 한다. 게임에 적용하면 캐릭터의 이동경로를 예측하는 방법이라고 할 수 있겠다. 현재 위치 = 이전위치 +..
2015.05.23 -
Overlapped I/O 모델
특징- 비동기 데이터 송수신을 할 수 있다.- 소켓 내부 버퍼를 사용하지 않고 직접 TCP 전송 버퍼에서 데이터를 본재고 받을 수 있다. 비동기 송수신, WSAAsyncSelect Model vs Overlapped I/O Model WSAAsyncSelect 데이터를 송수신 하면서 다른 일을 할 수 있다고 생각할 수 있지만 윈도우 메시지가 왔을 때 send(), recv()를 통해 데이터를 송수신 한다.프로그래머가 직접 데이터를 송수신 하겠다는 의미이다. Overlapped I/O커널에 데이터를 송수신 하겠다고 요청을 하고나서 따로 데이터를 송수신을 할 필요가 없다.WSASend()나 WSARecv()를 이용해 Overlapped I/O로 데이터를 송수신 하는 것이다.한 마디로 커널이 직접 데이터를 송..
2015.05.17 -
IOCP 정리
IOCPIOCP는 Overlapped I/O에 스레드 풀링(Thread pooling)과 큐(Queue)라는 매커니즘을 동시에 접목시킨 기술 Overlapped I/O와 차이는?CreateCompletionPort() 함수를 통해 소캣과 컴플리션 키를 관리하는 디바이스 리스트 자료구조 사용, 디바이스 리스트는 컴플리션포트 객체에 등록된 디바이스를 관리한다.IOCP 큐 자료구조 : Overlapped는 모델을 요청하면 작업이 완료되는 순간 이벤트나 콜백함수로 결과를 돌려줬다. IOCP는 커널이 프로그래머가 요청한 Overlapped 작업이 완료되었을 때 곧바로 사용자에게 알리는 것이 아니라 완료된 작업 결과를 IOCP 큐에 넣은 후 컴플리션 객체를 이용해 사용자에게 알린다. 커널 스레드 풀링을 통해 IOC..
2015.05.14 -
TCP/IP 프로토콜 개요
1. TCP/IP 프로토콜 개요TCP/IP 프로토콜 구조기본 개념호스트 응용 프로그램을 수행하는 주체; 피시, 노트북, 휴대전화 라우터 호스트에서 생성된 데이터를 전송, 교환할 수 있는 장비 프로토콜호스트 - 라우터, 라우터 - 라우터, 호스트 - 호스트가 통신할 수 있는 절차와 방법 TCP/IP인터넷에서 사용하는 핵심 프로토콜은 TCP와 IP로, 이를 비롯한 각종 프로토콜을 총칭하여 TCP/IP 프로토콜이라 부른다. 위 사진은 OSI 7게층과 TCP/IP 모델의 비교 네트워크 계층물리적 네트워크를 통한 실제 데이터를 송수신을 처리하는 계층.하드웨어적으로 정의된 물리 주소를 통해 통신한다. 인터넷 계층소프트웨어적으로 정의된 논리 주소인 IP 주소(Internet Protocol Address)를 사용한다..
2015.04.27 -
메모리 풀(Memory Pool)
단편화(Fragmentation)분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서 사용되지 않고남는 기억장치의 빈 공간 조작을 의미한다. 단편화의 종류내부 단편화(Internal Fragmentation)- 분할된 영역이 할당될 프로그램의 크기보다 커서 사용되지 않고 남아 있는 빈 공간.외부 단편화(External Fragmentation)- 분할된 영역이 할당될 프로그램의 크기보다 작아서 할당할 수 없어 모두 빈 공간으로 남아 있는 전체 영역. 단편화 해결 방법통합(Coalescing) 기법- 인접해 있는 단편화된 공간을 하나의 공간으로 통합하는 작업을 의미한다.압축(Compaction) 기법- 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 큰 가용 공간을 만드는 작..
2015.03.18