본문 바로가기

Old/Network8

Protobuf Protocol Buffers Google에서 개발한 데이터 직렬화 형식으로, 구조화된 데이터를 이진 형식으로 효율적이고 컴팩트하게 저장하여 네트워크 연결을 통해 더 빠르게 전송할 수 있음 작성된 프로그램을 다른 플랫폼으로 쉽게 포팅할 수 있고, 다양한 응용프로그램에서 사용할 수 있는 구조화된 데이터를 만드는 효율적이고 강력한 방법 언어 독립적 구문을 사용하면 선택한 서로 다른 프로그래밍 언어를 사용하여 작성된 프로그램이 서로 안정적으로 통신할 수 있음 구조화된 데이터는 바이너리 형식으로 저장되기 때문에 XML이나 JSON과 같은 텍스트 기반 형식보다 훨씬 작아 네트워크를 통한 전송이 더 빠름 확장하기 쉽게 설계되어 빠르게 변화하는 데이터 구조와 새로운 기능을 처리하는 데 이상적 활용 시스템 간의 데이터.. 2024. 1. 22.
게임 네트워크 엔진 프라우드넷의 네트워크 모듈 1. NetServer 클래스: 게임 서버의 메인 모듈 클라이언트의 연결을 받으며, 클라이언트와 메시지를 주고받는 역할을 함 각 클라이언트의 네트워크 상황 등을 열람할 수 있음 2. NetClient 클래스: 게임 클라이언트에서 네트워크 모듈 서버로 연결을 맺은 후 메시지 주고받기를 수행할 수 있음 다른 클라이언트와 P2P 통신도 가능 NetServer 인스턴스를 생성하고 NetServer가 클라이언트 접속을 받으려면 다음 작업이 필요 CNetServer.Create()로 CNetServer 인스턴스를 생성 CNetServer.Start()로 서버가 클라이언트 접속을 받을 수 있게 함 Start()에 들어가는 필수 매개변수는 프로토콜 버전과 리스닝 포트 번호로, 프로토콜 버전은.. 2023. 7. 31.
게임 네트워킹 모든 역할을 서버에서 하기 클라이언트가 하는 역할 사용자 입력(키 입력, 마우스 좌표) 화면 출력 서버에서 하는 역할 게임 로직 연산 화면 렌더링 (그래픽 데이터 보유) 화면 송출(비디오 스트리밍) 온라인 게임을 방해하는 레이턴시가 길어지는 요인 서버가 멀리 있으면 네트워킹 중에 레이턴시가 추가됨 클라우드 서버 안에서 가상머신은 다른 가상머신이 CPU 사용량을 잠식하면서 조금씩 지연 시간이 있을 수 있음 패킷 드롭으로 인한 재송신은 간헐적인 큰 지연 시간을 일으킴 인구가 낮은 국가에서는 인터넷이 느림 무선 네트워크에서는 레이턴시와 패킷 드롭률이 크게 증가함 서버 운영의 경제성 문제 고퀄리티 그래픽을 60프레임으로 렌더링하려면 그래픽카드 하나가 모든 능력을 동원해야 함 (서버에서 이것을 하려고 하면 서버에.. 2023. 7. 27.
게임 서버와 클라이언트 패키지 게임: 소규모의 플레이어가 같이 모여서 하는 온라인 게임 (Offline이 가능한 경우도 많음), MOG라고도 함 (Multiple Online Game) 서버 플레이어 세 명 이상이 게임을 하려면 그들의 게임 플레이 상태를 저장하는 곳이 필요하고, 이를 위해 플레이어 중 한 명의 컴퓨터가 모든 플레이어의 게임 플레이 상태를 취합하여 유지하는 역할을 해야 함 패키지 게임에서 게임 서버가 하 역할은 지금 플레이어가 두세 명 혹은 많아야 십여 명 참여하여 게임 플레이를 하는 상태, 즉 세션 처리를 담당하는 것 데디케이티드 서버: 클라이언트 프로그램과 같은 엔진을 사용하지만 렌더링과 사용자 입력 처리를 받지 않고, 순전히 클라이언트 연결을 받는 세션을 처리만 하는 프로그램이 따로 운용하는 경우 MUD(.. 2023. 7. 24.
Socket Programming 블로킹 : 디바이스에 처리 요청을 걸어 놓고 응답을 대기하는 함수를 호출할 때 스레드에서 발생하는 대기 현상 소켓뿐만 아니라 파일 핸들에 대한 함수를 호출했을 때도 이러한 대기 현상이 발생하는 것을 모두 블로킹이라고 함 송신 버퍼와 수신 버퍼 송신 버퍼: 일련의 바이트 배열이라고 보면 됨 송신 버퍼의 크기는 고정 되어 있으나, 마음대로 크기를 변경할 수 있음 수신 버퍼가 가득 차면 발생하는 현상 수신 함수가 수신 버퍼에서 데이터를 꺼내는 속도가 운영 체제가 수신 버퍼의 데이터를 채우는 속도보다 느리면 TCP 송신 함수로 송신 버퍼에 데이터를 쌓는 속도보다 수신 함수로 수신 버퍼에서 데이터를 꺼내는 속도가 느리다고 해서 TCP 연결은 끊어지지 않음 (실제 송신 속도가 느린 쪽에 맞추어 작동할 뿐) UDP .. 2023. 7. 24.
컴퓨터 네트워크 클라이언트: 사람이 만지는 컴퓨터 서버: 많은 사람들이 만지는 단말기에 서비스를 제공하는 무인 컴퓨터 -> 클라이언트에서 오는 데이터를 받아서 처리한 후 그 결과를 클라이언트에 회신 OSI 모델: 컴퓨터 네트워크 통신에 대한 국제 표준 -> 이 표준만 잘 지키면 어떤 기기든, 어떤 형태의 통신 선로를 사용하든 컴퓨터 간 통신을 할 수 있음 계층 1: 물리계층 계층 2: 데이터 링크 계층 계층 3: 네트워크 계층 계층 4: 전송 계층 계층 5: 세션 계층 계층 6: 표현 계층 계층 7: 응용 계층 OSI 모델의 계층 2 각 단말기는 고유한 주소를 가짐 단말기는 데이터를 프레임이라는 단위로 주고 받음 보다 많은 컴퓨터를 연결할 때의 문제점 스위치 하나가 연결할 수 있는 단말기 수가 제한되어 있음 단말기들 각.. 2023. 7. 24.