안녕하십니까. C++ 게임 서버 프로그래머를 목표로 기술 면접을 준비하는 분들을 위한 CS 이론 연재입니다.
지난 글까지는 컴퓨터 내부의 동작 원리인 컴퓨터 구조, 프로세스, 메모리 등에 대해 알아보았습니다. 이번 글부터는 컴퓨터와 컴퓨터가 서로 통신하는 기술, 즉 네트워크에 대해 다루고자 합니다. 서버는 클라이언트와의 통신이 존재의 이유이므로, 네트워크에 대한 이해는 서버 프로그래머에게 가장 중요한 역량 중 하나입니다.
그 첫 번째 순서로, 모든 네트워크 통신의 기본 설계도인 OSI 7계층 모델과 현재 인터넷에서 사실상의 표준으로 사용되는 TCP/IP 4계층 모델에 대해 알아보겠습니다.
## OSI 7계층 모델이란 무엇입니까?
OSI(Open Systems Interconnection) 모델은 국제표준화기구(ISO)에서 개발한 컴퓨터 네트워크 프로토콜 디자인의 계층적 모델입니다. 이는 통신 과정을 7개의 논리적인 계층으로 나누어, 각 계층이 특정 기능에만 집중하도록 설계한 개념적인 참조 모델입니다.
이렇게 계층을 나눔으로써 얻는 이점은 명확합니다. 통신 과정 중 특정 구간에 문제가 생겼을 때, 다른 계층과 독립적으로 해당 계층만 분석하고 수정할 수 있어 문제 해결이 용이해집니다.
각 계층은 하위 계층의 기능을 이용하여 상위 계층에 기능을 제공하는 방식으로 동작합니다. 데이터는 송신 측에서 7계층에서 1계층으로 내려가면서 각 계층의 정보(헤더)가 추가(캡슐화)되고, 수신 측에서는 1계층에서 7계층으로 올라오면서 헤더가 제거(역캡슐화)됩니다.
OSI 7계층의 구성
- 7계층: 응용 계층 (Application Layer)
- 사용자가 네트워크 자원에 접근하는 방법을 제공하는 최상위 계층입니다.
- 사용자와 직접 상호작용하는 응용 프로그램들이 포함됩니다.
- 주요 프로토콜: HTTP, FTP, SMTP, DNS
- 6계층: 표현 계층 (Presentation Layer)
- 데이터의 형식(Format)을 정의하고, 데이터를 암호화하거나 압축하는 역할을 합니다.
- 응용 계층에서 전달받은 데이터를 모든 시스템이 이해할 수 있는 표준화된 형태로 변환합니다.
- 예시: JPEG, MPEG, ASCII
- 5계층: 세션 계층 (Session Layer)
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공합니다.
- 통신 세션을 설정, 유지, 동기화 및 종료하는 역할을 담당합니다.
- 4계층: 전송 계층 (Transport Layer)
- 송신자와 수신자, 즉 종단 간(End-to-end)의 신뢰성 있는 데이터 전송을 책임집니다.
- 데이터를 분할하고(Segmentation), 각 분할된 데이터의 순서를 맞추거나 오류를 검증합니다.
- Port 번호를 사용하여 특정 프로세스를 식별합니다.
- 주요 프로토콜: TCP, UDP
- 3계층: 네트워크 계층 (Network Layer)
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(Routing)을 담당합니다.
- 논리적 주소인 IP 주소를 사용하여 데이터를 패킷(Packet) 단위로 분할하여 전송합니다.
- 주요 프로토콜: IP, ICMP
- 2계층: 데이터 링크 계층 (Data Link Layer)
- 동일한 네트워크 내에서, 즉 직접 연결된 두 노드 간의 신뢰성 있는 정보 전송을 담당합니다.
- 물리적 주소인 MAC 주소를 사용하며, 데이터를 프레임(Frame)이라는 논리적 단위로 구성합니다.
- 주요 프로토콜: Ethernet, PPP
- 1계층: 물리 계층 (Physical Layer)
- 데이터를 전기적인 신호(0과 1)로 변환하여 실제 물리적인 매체(케이블, 무선 등)를 통해 전송하는 역할을 합니다.
- 데이터 전송 단위는 비트(Bit)입니다.
## TCP/IP 4계층 모델
OSI 7계층 모델은 통신 전반을 이해하기 위한 훌륭한 참조 모델이지만, 너무 복잡하고 이론적이라는 단점이 있습니다. 실제 오늘날의 인터넷은 이보다 더 실용적인 TCP/IP 4계층 모델을 기반으로 동작합니다.
TCP/IP 모델은 OSI 모델의 특정 계층들을 하나로 묶어 4개의 계층으로 단순화한 실용적인 모델입니다.
TCP/IP 4계층의 구성
- 4계층: 애플리케이션 계층 (Application Layer)
- OSI의 5, 6, 7계층(세션, 표현, 응용)의 기능을 모두 포함합니다.
- 프로토콜: HTTP, FTP, DNS
- 3계층: 전송 계층 (Transport Layer)
- OSI의 4계층과 동일한 역할을 합니다. 종단 간 통신을 제어합니다.
- 프로토콜: TCP, UDP
- 2계층: 인터넷 계층 (Internet Layer)
- OSI의 3계층과 동일한 역할을 합니다. 데이터의 최종 목적지까지의 경로를 설정합니다.
- 프로토콜: IP
- 1계층: 네트워크 인터페이스 계층 (Network Interface Layer)
- OSI의 1, 2계층(물리, 데이터 링크)의 기능을 포함합니다.
- 물리적인 네트워크를 통해 실제 데이터를 전송하는 역할을 합니다.
- 프로토콜: Ethernet
## 정리
이번 글에서는 모든 네트워크 통신의 기반이 되는 OSI 7계층과 TCP/IP 4계층 모델에 대해 알아보았습니다. 면접에서는 "OSI 7계층에 대해 설명해 보세요" 또는 "TCP/IP 모델에서 IP는 어떤 계층에 속하며 무슨 역할을 합니까?"와 같은 질문을 통해 네트워크의 기본 개념을 이해하고 있는지를 확인합니다.
- OSI 7계층은 통신 과정을 체계적으로 이해하기 위한 개념적 참조 모델입니다.
- TCP/IP 4계층은 현재 인터넷에서 사용되는 실질적인 프로토콜 모델입니다.
- 서버 프로그래머는 이 모델들을 바탕으로 통신 과정에서 발생하는 문제를 진단하고, 효율적인 데이터 전송 방식을 설계할 수 있어야 합니다.
다음 연재 글에서는 게임 서버 개발의 핵심 질문인 **"TCP와 UDP의 차이점"**에 대해 더 깊이 파고들어 보겠습니다.
'네트워크이론' 카테고리의 다른 글
기술면접 대비이론 - TCP 와 UDP 의 차이점 (1) | 2025.07.10 |
---|