<이전 자료>
[TIL_250310] 네트워크 개념 이해
💭회고오늘은 네트워크 개념과 OSI 모델, TCP/UDP 프로토콜, IP 주소 체계를 학습했다. 게임 개발에서 성능과 안정성을 높이기 위해 네트워크의 이해는 필수적이다...! 근데 어렵다...!🗺️마인드맵
raindrovvv.tistory.com
🗺️마인드맵
📒학습 내용
1. IP와 서브넷 마스크 이해하기
IP 주소는 네트워크상의 디바이스를 식별하는 고유 주소다. 개발자로서 네트워크 문제를 해결하기 위해서는 IP 체계에 대한 기본적인 이해가 필요하다. 복잡한 2진수의 개념을 외우기 보다는 https://jodies.de/ipcalc?host=192.168.0.1&mask1=24&mask2=](https://jodies.de/ipcalc?host=192.168.0.1&mask1=24&mask2=) 에서 다음의 결과를 이해할 수 있으면 족하다.
CIDR 표기법과 서브넷 마스크
서브넷 마스크는 "255.255.255.0"과 같은 형태로 표기하거나, CIDR(Classless Inter-Domain Routing) 표기법으로 "/24"와 같이 표현한다. CIDR 표기법은 0~32 사이의 값으로 네트워크 비트 수를 나타낸다.
서브넷 마스크 "/24"는 192.168.0.1~192.168.0.254까지 총 254개의 디바이스가 접속 가능한 네트워크를 의미한다.
DHCP와 동적 IP 할당
DHCP(Dynamic Host Configuration Protocol) 서버는 IP 주소 풀을 관리하며, 네트워크에 연결되는 디바이스에 자동으로 IP 주소를 할당한다. 이는 제한된 IP 주소를 효율적으로 관리하기 위한 방법이다.
2. IP 포트: 서비스 연결의 관문
IP 포트는 전송 계층에서 특정 프로세스나 서비스를 식별하기 위한 주소 체계이다. 0~65535 사이의 값을 가지며, 하나의 IP 주소에서 여러 서비스를 동시에 제공할 수 있게 한다.
포트 번호 대역별 분류
- 0 ~ 1023 (잘 알려진 포트)
- HTTP: 80
- HTTPS: 443
- FTP: 21
- SSH: 22
- SMTP: 25
- IMAP: 143, 993
- 1024 ~ 49151 (등록된 포트)
- 응용 프로그램이나 서비스를 위해 등록된 포트 대역
- 49152 ~ 65535 (동적/사설 포트)
- 임시 연결이나 사설 용도로 사용되는 포트 대역
💡 실무 팁: 언리얼 엔진의 기본 멀티플레이어 포트는 7777. 개발 중 방화벽이나 라우터 설정에서 이 포트를 개방해야 멀티플레이어 테스트가 가능하다. 실제 배포 시에는 DefaultEngine.ini 파일에서 Port=7777을 조정하여 다른 포트를 사용할 수 있다.
PAT (Port Address Translation)
IP 주소와 마찬가지로, 포트 번호도 공인 IP와 사설 IP 간에 변환이 필요하다. 이를 PAT(Port Address Translation)라고 한다.
3. 도메인 이름 시스템: 기억하기 쉬운 웹 주소
IP 주소는 기억하기 어렵기 때문에, 도메인 이름 시스템(DNS)을 통해 사람이 읽고 이해하기 쉬운 주소체계를 사용한다.
DNS의 작동 원리
DNS 서버는 도메인 이름을 IP 주소로 변환하는 작업을 수행. 이 과정은 왼쪽에서 오른쪽으로 진행된다.
예를 들어, www.example.com의 경우:
- 루트 도메인 .(생략 가능)
- 최상위 도메인 .com
- 도메인 네임 example
- 서브도메인 www
한국의 경우 .kr 도메인은 한국 인터넷 진흥원(KISA)의 krDNS에서 관리한다.
💡 실무 팁: 언리얼 엔진으로 개발한 온라인 게임에서는 자체 서버를 도메인 이름으로 접근하게 설정하는 것이 일반적. 이를 위해 DNS 설정과 함께 언리얼의 DefaultEngine.ini 파일에서 ServerName 파라미터를 설정하여 게임이 특정 도메인을 통해 서버에 연결되도록 구성할 수 있다.
4. 네트워크 장비의 이해
현대 네트워크 환경에서는 다양한 장비들이 각자의 역할을 수행하며 원활한 통신을 가능하게 한다. 게임 개발자로서 이러한 장비들의 기본적인 기능을 이해하는 것은 네트워크 문제 해결에 도움이 된다.
주요 네트워크 장비
1. HUB
- 과거에 많이 사용되었으나, 성능과 효율이 떨어져 현재는 스위치로 대체.
- 소규모 네트워크에서는 여전히 사용되는 경우가 있다.
2. 스위치
- LAN 내부에서 MAC 주소를 기반으로 데이터를 직접 전달.
- 허브와 달리 데이터를 필요한 포트로만 전송하여 효율성이 높다.
3. 라우터
- 서로 다른 네트워크 간에 IP 주소를 기반으로 데이터를 전송.
- 최적의 경로를 찾아 패킷을 전달하는 역할을 수행.
4. 모뎀
- 디지털 신호를 아날로그 신호로, 아날로그 신호를 디지털 신호로 변환.
- 케이블 인터넷 서비스에 필수적인 장비.
5. 방화벽
- 네트워크 보안을 담당하며, 특정 IP나 도메인의 트래픽을 제어.
- NAT 기능을 통해 내부 IP를 외부로부터 보호하고, VPN 연결 지원.
6. VPN (Virtual Private Network)
- 사용자의 IP 주소를 VPN 서버의 주소로 변경하여 익명성 제공.
- 지역 제한을 우회하거나 보안 연결을 구성할 때 활용.
7. 캐시 서버
- 자주 요청되는 데이터를 임시 저장하여 응답 시간을 단축.
- 서버 부하를 줄이고 사용자 경험을 향상시키는 역할.
💡언리얼 엔진으로 개발한 멀티플레이어 게임을 테스트할 때 방화벽 설정이 중요하다. Windows 방화벽에서 언리얼 에디터와 패키징된 게임 실행 파일이 네트워크 접근 권한을 가지도록 설정해야 한다. 또한, 언리얼의 Steam 또는 Epic Online Services 온라인 서브시스템을 사용하면 P2P 연결을 위한 NAT 관통(NAT Punchthrough)이 자동으로 처리되어 편리하다고 한다.
5. 개발자가 알아야 할 네트워크 핵심 용어(정리)
게임 개발자로서 네트워크 관련 용어에 익숙해지는 것은 중요하다. 특히 언리얼 엔진의 네트워크 기능을 활용할 때 이러한 개념들이 자주 등장하기 때문이다.
네트워크 핵심 용어 정리
OSI 모델 | 네트워크 통신을 7개 계층으로 나눈 표준 모델 |
프로토콜 | 네트워크 통신을 위한 약속된 규약 |
TCP | 신뢰성을 우선하는 연결 지향적 프로토콜 |
UDP | 속도를 우선하는 비연결 지향적 프로토콜 (게임에서 많이 사용) |
Reliable UDP | UDP의 속도와 TCP의 신뢰성을 결합한 프로토콜 |
QUIC | HTTP/3에서 사용되는 UDP 기반의 프로토콜 |
IP | 인터넷 기반 전송 프로토콜 |
MAC Address | 네트워크 장비에 할당된 고유 식별자 |
도메인 이름 | 사람이 기억하기 쉬운 주소 체계 |
DNS | 도메인 이름을 IP 주소로 변환하는 시스템 |
DHCP | IP 주소를 동적으로 할당하는 서비스 |
웹 서버 | HTTP/HTTPS 서비스를 제공하는 서버 |
Restful API 서버 | JSON 기반 데이터를 송수신하는 서버 |
API 서버 | 데이터베이스 접근을 제어하는 중간 계층 서버 |
🔗참고 링크
🟣오늘의 옵시디언 현황
'Dev. > 게임 네트워크' 카테고리의 다른 글
[TIL_250312] 온라인 게임과 네트워크 구성 이해 (0) | 2025.03.12 |
---|---|
[TIL_250310] 네트워크 개념 이해 (0) | 2025.03.10 |