노드는 네트워크에 연결된 모든 장치나 프로그램을 의미한다. 컴퓨터, 스마트폰, 프린터, 서버 등이 모두 노드에 해당한다. 네트워크는 이러한 노드들이 서로 연결되어 데이터를 주고받을 수 있는 구조이다.
서버는 네트워크에서 클라이언트에게 서비스를 제공하는 역할을 하는 노드이다. 클라이언트는 이 서비스를 요청하는 노드이다. 즉, 서버는 요청을 받아 데이터를 제공하고, 클라이언트는 그 데이터를 받아서 사용한다.
노드: 서버, 클라이언트 모두 노드의 한 종류이다. 서버는 데이터를 제공하는 노드이고, 클라이언트는 데이터를 요청하는 노드이다.
네트워크: 서버와 클라이언트, 그리고 다른 모든 노드들은 네트워크를 통해 서로 연결된다. 네트워크는 이들 노드 간의 데이터 전송을 가능하게 해준다.
서버와 클라이언트: 클라이언트는 네트워크를 통해 서버에게 데이터를 요청한다. 서버는 네트워크를 통해 클라이언트에게 필요한 데이터를 전달한다.
예시
사용자가 웹 브라우저(클라이언트)를 열고 "www.example.com"을 입력하면, 이 요청이 네트워크(인터넷)를 통해 웹 서버(서버)로 전달된다. 웹 서버는 요청된 웹 페이지를 찾아 네트워크를 통해 사용자의 브라우저(클라이언트)로 전송한다.
사용자가 온라인 게임에 접속하면, 게임 클라이언트는 게임 서버에 접속한다. 이 과정에서 클라이언트는 서버에 게임 데이터를 요청하고, 서버는 그 데이터를 처리하여 클라이언트에게 전송한다. 이 모든 것은 네트워크를 통해 이루어지는 것이다.
노드는 네트워크에 연결된 모든 장치나 프로그램이며, 서버와 클라이언트도 노드의 한 종류이다.
네트워크는 이 노드들이 서로 데이터를 주고 받을 수 있게 해주는 연결 구조이다.
서버는 데이터를 제공하는 노드이고, 클라이언트는 그 데이터를 요청하고 사용하는 노드이다.
차이점
목적과 기능
게임 서버: 실시간 상호작용과 빠른 데이터 전송이 중요.
애플리케이션 서버: 웹 페이지 렌더링과 데이터베이스 접근이 주요 기능.
데이터 전송 방식
게임 서버: 지속적인 연결로 실시간 데이터 전송.
애플리케이션 서버: 요청-응답 패턴을 따르는 HTTP/HTTPS 기반 전송.
성능 요구사항
게임 서버: 초단위 이하의 낮은 지연 시간 필요.
애플리케이션 서버: 안정성과 보안이 중요한 성능 요소.
확장성 및 상태 관리
게임 서버: 실시간 상태 관리와 동시 접속자 처리 중점.
애플리케이션 서버: 주로 세션 기반 상태 관리와 대규모 트래픽 처리.
공통점
OSI 모델: 네트워크 통신 과정을 7개의 계층으로 나눈 모델
1계층: 물리 계층 (Physical Layer): 실제 데이터 전송을 담당하는 물리적 매체 (예: 케이블, 무선 신호).
2계층: 데이터 링크 계층 (Data Link Layer): 물리 계층을 통해 데이터를 전송하며, 오류 검출과 수정 역할을 담당.
3계층: 네트워크 계층 (Network Layer): 데이터 패킷을 목적지까지 경로를 결정하고 전달.
4계층: 전송 계층 (Transport Layer): 데이터 전송의 신뢰성 보장, 데이터 흐름 제어, 오류 복구.
5계층: 세션 계층 (Session Layer): 두 장치 간 통신 세션 관리 (연결 설정 및 종료).
6계층: 표현 계층 (Presentation Layer): 데이터 형식 변환, 암호화/복호화.
7계층: 응용 계층 (Application Layer): 사용자와 직접 상호작용하는 응용 프로그램과 관련된 통신.
TCP/IP 모델: 인터넷 통신에서 주로 사용되는 4계층 모델.
네트워크 인터페이스 계층: OSI 모델의 1, 2계층에 해당, 물리적 전송 매체와 네트워크 인터페이스 관리.
인터넷 계층: OSI 모델의 3계층에 해당, IP 프로토콜을 사용하여 데이터 패킷의 주소 지정과 라우팅을 담당.
전송 계층: OSI 모델의 4계층에 해당, TCP 또는 UDP를 사용하여 데이터의 신뢰성 있는 전달을 보장.
응용 계층: OSI 모델의 5~7계층에 해당, HTTP, FTP, SMTP 같은 프로토콜을 통해 응용 프로그램 간 데이터 교환.
프로토콜이란 네트워크 통신에서 데이터를 주고받는 규칙과 절차를 정의하는 규약이다. 이는 서로 다른 장치나 시스템 간의 데이터 교환을 원활하고 일관되게 하기 위해 필요한 "통신의 언어"이다.
TCP: 데이터 전송의 신뢰성을 보장하는 연결 지향 프로토콜. 예를 들어, 웹 페이지를 로드할 때 모든 데이터가 손실 없이 전달되도록 보장.
UDP: 빠른 데이터 전송이 필요하지만 신뢰성보다는 속도가 중요한 경우에 사용. 온라인 게임, 스트리밍 등에 활용.
HTTP/HTTPS: 웹 브라우징을 위한 프로토콜. HTTPS는 보안(SSL/TLS)을 추가하여 안전한 통신을 보장.
FTP: 파일을 서버와 클라이언트 간에 전송하는 프로토콜.
SMTP: 이메일 전송을 위한 표준 프로토콜.