네트워크 1주차 정리 -6-

HanJaeHoon·2024년 2월 2일

Client-Server, P2P

Client-Server구조 : 서버 호스트는 상시 켜져 있으며, 고정된 IP를 가지고 있습니다.
클라이언트 호스트들은 서버에 서비스를 요청하고 서버는 서비스 요청에 응답하는 방식으로 이루어집니다.

P2P구조: 상시 켜져 있는 독립서버를 사용하기 보다는 피어(Peer)들 끼리 모여서​
서로 직접 통신하여 서비스를 주고 받는 방식입니다.

소켓 프로그래밍은 기본적으로 Client-Server구조를 가지기 때문에,​
P2P는 상호가 서버이자 클라이언트로 연결을 맺는 구조로 하거나,​
순간 특정 인원이 Listen서버를 켜면 불특정 다수가 클라이언트로 동작하는 구조 중에 하나를 사용합니다.

오늘날에는 대부분의 서비스를 Client-Server구조로 동작 시킵니다.
웹, 도메인서버, 메일서버, DHCP서버, 게임 Dedicate서버들은 대표적인 Client-Server구조입니다.

P2P보다 부하가 많이 걸리면서도 비효율 일 것 같아 보이지만,​
그럼에도 해당 구조를 고수할 수밖에 없는 이유는 보안과 심플한 구조가 너무 중요하기 때문입니다.

물론 P2P를 전혀 안 쓰는 것은 아닙니다 (다만, 이는 보안에 심각할 수 있어 주의가 필요합니다)​
uTorrent나 Peer_Upload 프로그램은 복잡한 구조와 추적의 난해함을 이용하면서도​
무거운 파일의 빠른 이동(높은 대역폭)을 이점으로 사용하고 있고,​
게임 Listen서버는 게임사에서 서버관리 자원(인적, 물적)이 부족한 경우에 자주 사용하는 방식입니다

profile
게임 개발자

0개의 댓글