네트워크 개요
데이터 전송 단위
각 네트워크 계층에서는 데이터를 특정 단위로 나누어 처리한다.
| 계층 | 데이터 단위 | 설명 |
|---|
| 응용 계층 | 데이터(Data) | 사용자가 입력한 원본 데이터 |
| 전송 계층 | 세그먼트(Segment) | TCP/UDP 헤더가 추가된 데이터 |
| 네트워크 계층 | 패킷(Packet) | IP 주소가 포함된 데이터 |
| 데이터 링크 계층 | 프레임(Frame) | MAC 주소가 포함된 데이터 |
| 물리 계층 | 비트(Bit) | 0과 1로 이루어진 신호 |
예시: 웹 사이트에 접속할 때
- 사용자가 웹 브라우저에서 URL 입력 → 데이터 생성
- TCP 포트 번호 추가 → 세그먼트 생성
- IP가 목적지 IP 추가 → 패킷 생성
- MAC 주소 추가 → 프레임 생성
- 물리적 신호로 변환 → 비트 전송
캡슐화(Encapsulation)와 역캡슐화(Decapsulation)
네트워크에서 데이터를 전송할 때 송신 측은 데이터를 점진적으로 포장(캡슐화)하고, 수신 측은 이를 해제(역캡슐화)하여 원래 데이터로 복원한다.
캡슐화(Encapsulation)
- 정의: 데이터를 보낼 때 각 네트워크 계층이 제어 정보를 추가하여 데이터를 포장하는 과정
- 과정:
- 응용 계층: 사용자가 입력한 데이터를 생성
- 전송 계층: TCP/UDP 헤더 추가 (세그먼트 형성)
- 네트워크 계층: IP 헤더 추가 (패킷 형성)
- 데이터 링크 계층: MAC 주소 추가 (프레임 형성)
- 물리 계층: 신호로 변환하여 전송
역캡슐화(Decapsulation)
- 정의: 수신 측에서 데이터를 받으면 계층별로 헤더를 제거하여 원래 데이터로 복원하는 과정
- 과정:
- 물리 계층: 전기 신호 → 프레임으로 변환
- 데이터 링크 계층: 프레임 해제, MAC 주소 확인
- 네트워크 계층: 패킷 해제, IP 주소 확인
- 전송 계층: 세그먼트 해제, TCP/UDP 정보 확인
- 응용 계층: 사용자 데이터 복원 및 처리
캡슐화와 역캡슐화의 핵심
데이터를 보내는 과정에서 헤더를 추가하며 점점 커지고(캡슐화), 받는 과정에서 헤더를 제거하며 원래 데이터로 되돌린다(역캡슐화).
네트워크 모델
OSI 7 Layer
물리 계층(Physical Layer)
- 역할: 데이터를 전기 신호, 빛, 전파 등의 물리적 형태로 변환하여 전송
- 특징: 신호의 형태, 전송 매체, 속도 결정
- 장비: 허브(Hub), 리피터(Repeater), 케이블, 광섬유, 안테나
- 예시:
- 랜(LAN) 케이블을 통해 데이터가 전송될 때 신호 변환
- Wi-Fi 신호를 통해 무선 데이터 전송
물리 계층에서는 데이터가 '비트(Bit)' 단위로 전송된다.
데이터 링크 계층(Data Link Layer)
- 역할: 같은 네트워크(LAN) 내에서 신뢰성 있는 데이터 전송
- 특징: MAC 주소를 사용하여 장치 간 데이터 전달, 오류 검출 및 수정
- 장비: 스위치(Switch), 브리지(Bridge)
- 프로토콜: 이더넷(Ethernet), Wi-Fi(802.11)
- 예시:
- 스위치가 MAC 주소를 기반으로 올바른 기기로 데이터 전달
- Wi-Fi에서 무선으로 데이터 전송
데이터 링크 계층에서는 데이터가 '프레임(Frame)' 단위로 전송된다.
네트워크 계층(Network Layer)
- 역할: 다른 네트워크 간 데이터 전달 및 최적 경로(라우팅) 선택
- 특징: IP 주소를 기반으로 패킷 전송, 라우터를 사용하여 네트워크 간 이동
- 장비: 라우터(Router), L3 스위치
- 프로토콜: IP(IPv4, IPv6), ICMP, ARP
- 예시:
- 라우터가 목적지 IP 주소를 확인하고 패킷을 올바른 네트워크로 전달
- 네트워크 간 데이터를 주고받을 때 경로를 설정하는 과정
네트워크 계층에서는 데이터가 '패킷(Packet)' 단위로 전송된다.
전송 계층(Transport Layer)
전송 계층은 송·수신 간 신뢰성 있는 데이터 전송을 보장하는 역할을 한다.
주요 기능은 다음과 같다.
전송 계층의 주요 기능
- 애플리케이션 간 데이터 전송: 응용 프로그램 간 데이터 송·수신을 관리
- 데이터 분할 및 재조립: 데이터를 작은 조각(세그먼트)으로 나누고, 수신 측에서 재조립
- 신뢰성 보장: 오류 감지, 흐름 제어, 혼잡 제어 (TCP만 해당)
- 포트 번호 관리: 여러 애플리케이션이 네트워크를 동시에 사용할 수 있도록 포트 번호로 구분
- 연결 방식: 연결 지향 방식(TCP)과 비연결 지향 방식(UDP) 제공
전송 계층에서 대표적인 프로토콜은 TCP와 UDP가 있다.
세션 계층 (Session Layer)
세션 계층은 두 장치 간의 연결(세션)을 설정, 유지, 종료하는 역할을 한다.
세션 계층의 주요 기능
- 세션 설정(Session Establishment) → 통신을 위한 연결 생성
- 세션 유지(Session Maintenance) → 데이터 전송 중 연결 유지
- 세션 종료(Session Termination) → 데이터 전송 완료 후 연결 해제
- 동기화(Synchronisation) → 장시간 데이터 전송 시 체크포인트 삽입
세션 계층 예시
- 로그인 시스템 (예: 온라인 은행, 웹사이트 로그인)
사용자가 로그인하면 세션이 생성되고 일정 시간 활동이 없으면 자동 종료됨
- 화상 통화, 스트리밍
연결을 지속적으로 유지해야 하는 애플리케이션
- NetBIOS, RPC (원격 프로시저 호출)
네트워크를 통해 프로세스 간 통신을 지원
세션 계층은 연결을 관리하여 안정적인 데이터 교환을 보장한다.
표현 계층 (Presentation Layer)
표현 계층은 데이터를 이해할 수 있는 형식으로 변환(인코딩, 압축, 암호화)하는 역할을 한다.
표현 계층의 주요 기능
- 데이터 변환(Data Translation) → 서로 다른 시스템 간 호환성을 유지
- 데이터 압축(Data Compression) → 파일 크기를 줄여 네트워크 효율 증가
- 데이터 암호화(Data Encryption) → 보안을 위해 데이터 암호화 및 복호화
표현 계층 예시
- 파일 형식 변환:
- 텍스트 인코딩 (ASCII, Unicode)
- 이미지, 동영상 압축 (JPEG, PNG, MP4)
- 보안 프로토콜:
- SSL/TLS → 웹사이트 보안(HTTPS)
- VPN 암호화 → 보안 터널링
- 멀티미디어 데이터 전송:
표현 계층은 데이터 형식의 차이를 해결하고, 압축 및 암호화를 통해 데이터 보안과 성능을 향상시킨다.
응용 계층 (Application Layer)
응용 계층은 사용자가 네트워크 서비스를 직접 이용하는 계층이다.
응용 계층의 주요 기능
- 네트워크 서비스 제공 → 웹, 이메일, 파일 전송 등
- 프로토콜 정의 → HTTP, FTP, SMTP, DNS 등
- 사용자 인터페이스 → 웹 브라우저, 이메일 클라이언트
응용 계층 프로토콜 예시
| 프로토콜 | 설명 |
|---|
| HTTP / HTTPS | 웹 브라우징 (웹사이트 접속) |
| FTP | 파일 전송 (다운로드/업로드) |
| SMTP / IMAP / POP3 | 이메일 송·수신 |
| DNS | 도메인 이름 변환 (IP 주소 조회) |
| DHCP | 동적 IP 주소 할당 |
응용 계층은 사용자가 네트워크를 쉽게 활용할 수 있도록 다양한 서비스를 제공한다.
TCP/IP 모델
OSI 7 계층은 이론적 모델이며, 실제 인터넷에서 사용하는 모델은 TCP/IP 모델이다.
TCP/IP 모델은 4계층 구조로 구성되며, OSI 모델의 기능을 단순화하였다.
TCP/IP 모델의 4계층
| 계층 | 역할 |
|---|
| 응용 계층 | 사용자 서비스 제공 |
| 전송 계층 | 신뢰성 있는 데이터 전송 (TCP/UDP) |
| 인터넷 계층 | IP 주소 기반 라우팅 |
| 네트워크 인터페이스 계층 | 물리적 데이터 전송 (LAN, MAC) |
TCP/IP 모델의 특징
- 실제 인터넷에서 사용 (현실적인 모델)
- OSI보다 단순하고 효율적
- 애플리케이션 중심의 구조
TCP/IP 모델은 인터넷에서 실질적으로 사용되는 표준 네트워크 모델이다.
네트워크 프로토콜
TCP vs UDP 프로토콜 비교
TCP (Transmission Control Protocol)
TCP는 신뢰성을 보장하는 연결 지향 프로토콜이다.
데이터가 정확하게 전달되도록 3-way handshake를 사용해 연결을 설정하고, 오류 검출 및 재전송 기능을 제공한다.
TCP 특징
- 신뢰성 보장: 데이터 손실, 순서 오류 시 재전송
- 연결 지향: 3-way handshake를 통해 연결 설정 후 데이터 전송
- 흐름 제어: 수신 측의 처리 속도를 고려해 전송 속도를 조절
- 혼잡 제어: 네트워크 과부하 방지를 위해 전송 속도 조절
- 속도가 느림: 신뢰성 보장을 위해 추가적인 오버헤드 발생
TCP 사용 사례
- 웹 통신 (HTTP, HTTPS): 웹사이트 전송
- 이메일 (SMTP, IMAP, POP3): 메일 송수신
- 파일 전송 (FTP): 안정적인 파일 다운로드/업로드
UDP (User Datagram Protocol)
UDP는 빠른 데이터 전송을 위한 비연결형 프로토콜이다.
신뢰성보다 속도를 우선하며, 데이터 손실이 발생해도 재전송하지 않는다.
UDP 특징
- 빠른 속도: 추가적인 연결 설정 없이 즉시 전송
- 비연결형: 3-way handshake 없이 데이터 전송
- 오버헤드 낮음: TCP보다 가벼운 구조
- 신뢰성 낮음: 데이터 손실, 순서 오류 가능
- 흐름 제어 없음: 네트워크 상태에 따른 조절 기능 부족
UDP 사용 사례
- 스트리밍 서비스 (YouTube, Netflix, IPTV): 실시간 영상/음성 데이터 전송
- 온라인 게임 (VolP, FPS 게임, MOBA 게임): 지연 시간이 중요한 환경
- DNS (도메인 네임 서비스): 빠른 응답이 필요한 도메인 변환
TCP vs UDP 프로토콜 비교
| - | TCP | UDP |
|---|
| 연결 방식 | 연결 지향 (3-way handshake) | 비연결형 (연결 설정 없음) |
| 데이터 전달 보장 | 신뢰성 보장 (순서 보장, 재전송) | 신뢰성 없음 (데이터 손실 가능) |
| 흐름 제어 | O | X |
| 혼잡 제어 | O | X |
| 속도 | 느림 (오버헤드 존재) | 빠름 (오버헤드 적음) |
| 사용 사례 | 웹, 이메일, 파일 전송 | 스트리밍, 게임, VolP, DNS |
포트 번호(Port Number)
포트 번호는 하나의 IP 주소 내에서 여러 애플리케이션이 동시에 통신할 수 있도록 하는 식별자이다.
TCP와 UDP는 각각 포트번호를 사용해 데이터를 특정 애플리케이션으로 전달한다.
포트 번호 구조
포트 번호는 0~65535 범위를 갖는다.
- 0~1023 (Well-Known Port): 널리 알려진 표준 서비스 (HTTP, FTP, SMTP 등)
- 1024~49151 (Registered Port): 특정 애플리케이션이 등록하여 사용
- 49152~65535 (Dynamic/Private Port): 임시 포트, 클라이언트가 랜덤하게 할당
주요 포트 번호
| 포트 번호 | 프로토콜 | 설명 |
|---|
| 20, 21 | FTP | 파일 전송 |
| 22 | SSH | 원격 접속 |
| 25 | SMTP | 이메일 전송 |
| 53 | DNS | 도메인 네임 변환 |
| 80 | HTTP | 웹사이트 (비보안) |
| 443 | HTTPS | 웹사이트 (보안) |
| 123 | NTP | 시간 동기화 |
| 3389 | RDP | 원격 데스크톱 |