Server 1

Dog발자·2024년 4월 8일

서버

목록 보기
1/1

1. 네트워크 기초

1. TCP/IP Stack

TCP(Transmission Control Protocol) : 전파 제어 통신 규약
IP(Internet Protocal) : 인터넷 규약
TCP/IP : 인터넷을 사용하는 모든 통신의 기본적인 프로토콜

2. RFC 1122

-데이터 링크,IP, 전송, 응용

3. OSI 7(Open Systems Interconnection 7)

물리 > 데이터 링크 >네트워크> 전송> 세션> 표현> 응용

순서대로 데이터를 주고 받음

4. 물리 계층(Physical Layer)

  • 네트워크 데이터가 전송되는 물리적인 매체
  • 전압, 허브, 네트워크 어답터
  • 중계기 및 케이블 사양
  • 랜선
  • TP CAT-6(Twisted Pair Category 6)
  • 전화선, 동축 케이브 , 광섬유 케이블 등
  • 무선 WI-Fi, 기타 전파
  • 양자 메체
  • Ethernet
  • IEEE 802.3
  • MAC 주소(Media Access Control address), 48bit
    고유한 번호를 받는다.
  • NIC (Network Interface Controllor)

랜선으로 온 데이터를 각 컴퓨터에 전달

255: 8비트(사실 2의 8제곱이 256인데 0부터 시작하기 때문에 255가 나오는거임) 근데 255가 최대값이라서 1

기본 웨이트웨이를 겨쳐서
서브넷 마스크는 최대치
IPv4는 주소가 나뉘어짐

6. 네트워크 계층(Network Layer)

IPv4 (Internet Protocol 4)

:32비트(8비트 * 4)
IPv6 : 128비트

ARP(Address Resolition Protocol, 주소 결정 프로토콜)

램카드에 마다 MAC주소(물리 주소)가 정해진다
IP주소를 MAC주소로 바꾸어 주는 것이 ARP

서브넷 마스크(Subnet Mask)

  • IP 주소를 네트워크 주소와 호스트 주소로 분리하는 역할을 하는 32비트의 숫자입니다.

  • IP 주소의 네트워크 부분을 반영하며, 이를 통해 네트워크의 구조와 크기를 결정합니다.

  • 네트워크와 호스트 부분을 나타내는데, '1’의 비트는 네트워크 부분을, '0’의 비트는 호스트 부분을 나타냅니다.

ex) A : 18.17.100.1

게이트 웨이

다른 네트워크로 들어가는 관문 (입구) 역할을 하는 네트워크 포인트입니다

7. 전송 계층(Transprot Layer)

  • port(16bit 부호없는 숫자)
  • 사용자 포트 or 등록 포트, 시스템 포트 or 예약 포트, 동적포트
  • 소켓(Socket)
  • 포트번호가 IP주소보다 좀더 디테일하게 들어가는 정도

전송 제어 프로토콜* TCP 프로토콜 번호 6
사용자 데이터그램 프로토콜 UDP 17
데이터그램 혼잡 제어 프로토콜 DCCP 33
스트림 제어 전송 프로토콜 SCTP 132

전송하는 방식

TCP : 데이터 -> 재대로 갔는지 -> 잘 받으면 -> 회신
단점 : 속도느림 정확성 o

UDP : 신경안쓰고 보냄
단점 : 속도빠름 정확성 x

요즘은 TCP와 UDP를 섞어서 한다.

100MB 자체를 보내는 거는 아니다.
하나하나 분해서 보낸다. TCP 규약에 맞쳐서 조금씩 보낸다. 순서대로 넣는것은 아닌다. 컴퓨터는 가장 빠른 회선으로 보낸다. 그다음 패키지를 짜집기를 한다음에 조각들이 다 모아지면 파일 하나가 만들어진다.

8. 응용 계층(Application Layer)

인터넷 브라우저 역할

DHCP(Dynamic Host Configuration Protocol)
동적 호스트 설정 프로토콜

DNS(Domain Name System)
도메인 주소 : 홈페이지 주소 IP주소를 도메인주소로 바꾸어준다.
ex)www.google.com -> 74.125.224.112

NAT(Network Address Translation, 네트워크 주소 변환)

9. 용어 정리

패킷 : 데이터를 보내는 단위(박스)
라우팅 : 제일 빠른 회선을 찾아내는 과정
오버플로우 : 패킷을 너무 많아서 한계가 넘어가비리는 경우
레이턴시 : TCP에서 패킷을 보내고 나서 응답이 걸리는 시간
타임 아웃 : 응답이 기다리는데. 응답이 없으면 끊던지, 아님 한번더 보낸다.
케이블

TCP/IP Packet

직렬화(Serialization)
이것은 데이터 구조나 객체 상태를 저장하거나 전송할 수 있는 형식으로 변환하는 과정입니다. 예를 들어, 컴퓨터 게임에서 캐릭터의 상태를 저장하려면 그 캐릭터의 모든 정보(예: 위치, 체력, 아이템 등)를 직렬화하여 파일에 저장해야 합니다.

역직렬화(Deserialization)
이것은 직렬화의 반대 과정으로, 직렬화된 데이터를 원래의 데이터 구조나 객체 상태로 복원하는 것입니다. 예를 들어, 저장된 게임을 다시 시작하려면 저장된 파일에서 캐릭터의 정보를 읽어와 역직렬화하여 캐릭터를 원래 상태로 복원해야 합니다.

빅 엔디언(Big-Endian)
a. 하위 바이트르 먼저 기록
b. 패키지가 따로 따로 오는데. 순서를 정한다.
-IBM PowerPC, XBox 360, One, Playstation 4, Andioid

리틀 엔디언
a. 상위 바이트를 먼저 기록
exx86 x64 ios XBox One, Playstation 4, Android

용어정리
-Scale UP : 서버 크기 증가
-Scale Out: 서버 대수 증가

10. 게임 서버의 역할 분산

사용자 인증만을 담당하는 인증 서버
사용자가 먹은 아이템이나 키운 캐릭터 정보를 저장하는 DB서버
랭킹을 보여주기 위한 통계 서버
해킹 차단을 하기 위한 미들웨어 서버와 방화벽 머신 -> 클라우드 서버로 한다.
인던이나 방 만들기를 담당하는 로비 서버
게임을 플레이하면서 사람들과 같이 활동하는 것을 중재하는 zone서버
몹들을 움직여주는 NPC서버

사용자 간 채팅과 욕설 필터링을 담당하는 채팅 서버
사용자 간 일대일 대화를 위한 메신저 서버
GM과의 소통과 기록을 위한 운영서버
모든 서버들의 상태를 관리하고 지휘하는 중앙 서버 관리자
게임 서버에서 일어나는 모든 일들을 기록으로 남기는 로그 서버 부분
부분 유료화 아이템(캐시템) 구매와 사용을 처리해주는 아이템 현금 구매 서버

10-1. 혼합

Stateless + Stateful
비동기 온라인 게임 + 실시간 채팅
비동기 온라인 게임 + 실시간 PVP 인스턴스 던전

Stateful + Stateless
실시간 온라인 게임 + 토탈 랭킹 컨탠츠
실시간 온라인 게임 + 로비, 캐릭터 꾸미기
실시간 온라인 + 느슨한 상호작용 컨탠츠

11. 온라인 네트워크 구성

Network Topology

Client / Server 방식 : 서버가 중앙에 위치하고 클라이언트들이 서버에 연결하여 통신

P2P(Peer to Peer) 방식 : 유저들 끼리 게임

Dedicated Server 방식(단일 서버) : 서버를 기준으로 다른 컴퓨터로 전달

Host 기반 P2P (Super Peer) : 한 컴퓨터를 서버로 두고 유저들끼리 게임
두 방식을 썩어서도 사용

12. Client /Server

장점
-서버 단독 처리
-일관성 있는 결과 및 동기화
-해킹이나 핵 사용에 강함
-대규모 유저 상호작용 가능

단점
-게임서버 로직의 부담
-개발 기술 및 유지보수 비용
-모든 클라이언트가 서버를 경유해야 하므로 응답성 떨어짐
-서버의 부하나 통신 지연 등으로 인해 정교한 액션 처리 어려움

13. P2P(Peer to Peer)

리슨 서버(Listen Server)
-Host Server
-유저 한명이 서버

P2P (Peer to Peer)
모두가 호스트


잠정
메세지를 직접 상대방에게 전달
네트워크 지연 최소화
클라이언트에서 로직을 처리하므로 정교하고 빠른 처리 가능
서버의 부담이 적음

단점
핵, 치트 등에 취약
개별적인 로직 처리로 동기화 어려움 (충돌 처리 등)

14. 네트워크 기법

전달 미보장 데이터
전달 보장 데이터
최신 상태 데이터
특급 전달 보장 데이터
ex) 베틀넷

결정론적 락스탭(Deterministic Lockstep)
위치가 아닌 입력 값 넘기기
ex)에이지 엠파이어

데드 레커닝(Dead Reckoning) : 항법추척
ex) 공 굴려가는 거보고 다음 프레임이 플레이 계산을 해서 예측 플레이어들의 계산
링크텍스트

게임 서버 엔진 : Firebase, FLox, Kii

0개의 댓글