Skip to content

필사 모드: [컴퓨터 네트워크] 04. 프로토콜 계층과 서비스 모델

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

본 포스팅은 James Kurose, Keith Ross의 Computer Networking: A Top-Down Approach (6th Edition) 교재를 기반으로 정리한 내용입니다.

1. 프로토콜 계층화의 필요성

인터넷은 매우 복잡한 시스템이다. 수많은 애플리케이션, 다양한 종단 시스템, 패킷 스위치, 링크, 프로토콜이 존재한다.

이 복잡성을 관리하기 위해 **계층화(layering)** 를 사용한다.

1.1 항공 여행 비유

항공 여행도 여러 계층으로 나눌 수 있다:

출발지 목적지

────── ──────

티켓 구매 수하물 수취

↓ ↑

수하물 위탁 수하물 찾기

↓ ↑

탑승 게이트 하차 게이트

↓ ↑

이륙 착륙

↓ ↑

항로 비행 ─────────────────────> 항로 비행

각 계층은 자신의 기능을 수행하고, 아래 계층의 서비스를 이용한다.

1.2 계층화의 장점

- **모듈화**: 각 계층의 내부 구현을 독립적으로 변경 가능

- **복잡성 관리**: 전체 시스템을 작은 부분으로 나누어 이해

- **유연성**: 한 계층의 프로토콜을 다른 것으로 교체 가능

2. 인터넷 프로토콜 스택 (5계층 모델)

┌─────────────────┐

│ 애플리케이션 계층 │ Application Layer

├─────────────────┤

│ 전송 계층 │ Transport Layer

├─────────────────┤

│ 네트워크 계층 │ Network Layer

├─────────────────┤

│ 링크 계층 │ Link Layer

├─────────────────┤

│ 물리 계층 │ Physical Layer

└─────────────────┘

2.1 애플리케이션 계층 (Application Layer)

네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 존재하는 계층이다.

- **HTTP**: 웹 문서 요청과 전송

- **SMTP**: 이메일 전송

- **FTP**: 파일 전송

- **DNS**: 도메인 이름을 IP 주소로 변환

애플리케이션 계층의 정보 패킷을 **메시지(message)** 라 부른다.

2.2 전송 계층 (Transport Layer)

애플리케이션 계층의 메시지를 종단 시스템 간에 전달한다.

- **TCP**: 연결 지향, 신뢰적 전송, 혼잡 제어, 흐름 제어

- **UDP**: 비연결, 비신뢰적 전송, 최소한의 서비스

전송 계층의 패킷을 **세그먼트(segment)** 라 부른다.

TCP 서비스:

✓ 신뢰적 데이터 전달 (재전송)

✓ 흐름 제어 (수신자 과부하 방지)

✓ 혼잡 제어 (네트워크 과부하 방지)

UDP 서비스:

✓ 빠른 전송 (오버헤드 최소)

✗ 신뢰성 보장 없음

✗ 흐름/혼잡 제어 없음

2.3 네트워크 계층 (Network Layer)

한 호스트에서 다른 호스트로 **데이터그램(datagram)** 을 전달한다.

- **IP 프로토콜**: 데이터그램의 필드 정의, 주소 체계

- **라우팅 프로토콜**: 출발지에서 목적지까지의 경로 결정

네트워크 계층의 패킷을 **데이터그램(datagram)** 이라 부른다.

네트워크 계층의 두 가지 핵심 기능:

1. 포워딩(Forwarding): 패킷을 적절한 출력 링크로 이동

2. 라우팅(Routing): 출발지-목적지 경로 결정

> IP 프로토콜은 하나뿐이므로, 네트워크 계층을 흔히 **IP 계층**이라고도 부른다.

2.4 링크 계층 (Link Layer)

네트워크 계층은 출발지에서 목적지까지의 경로를 결정하지만, 실제로 한 노드에서 다음 노드로 데이터그램을 전달하는 것은 **링크 계층**의 역할이다.

- **이더넷(Ethernet)**

- **WiFi (802.11)**

- **PPP**

링크 계층의 패킷을 **프레임(frame)** 이라 부른다.

경로: A → R1 → R2 → R3 → B

링크 계층의 역할:

A --[이더넷]--> R1 --[WiFi]--> R2 --[PPP]--> R3 --[이더넷]--> B

각 구간(링크)마다 다른 링크 계층 프로토콜을 사용할 수 있다.

2.5 물리 계층 (Physical Layer)

링크 계층이 프레임 단위로 데이터를 전달한다면, 물리 계층은 프레임 내의 **개별 비트**를 한 노드에서 다음 노드로 이동시킨다.

- 실제 전기 신호, 빛 신호, 무선 신호를 다루는 계층

- 매체(구리선, 광섬유, 무선)에 따라 프로토콜이 다름

3. OSI 7계층 모델과의 비교

ISO에서 제안한 **OSI(Open Systems Interconnection)** 모델은 7개 계층으로 구성된다.

OSI 7계층 인터넷 5계층

────────── ────────────

애플리케이션 계층 ─┐

표현 계층 ─┤── 애플리케이션 계층

세션 계층 ─┘

전송 계층 ──── 전송 계층

네트워크 계층 ──── 네트워크 계층

데이터 링크 계층 ──── 링크 계층

물리 계층 ──── 물리 계층

표현 계층 (Presentation Layer)

- 데이터 압축, 암호화, 데이터 형식 변환

- 인터넷 모델에서는 애플리케이션이 직접 처리

세션 계층 (Session Layer)

- 데이터 교환의 동기화, 체크포인팅, 회복

- 인터넷 모델에서는 애플리케이션이 직접 처리

> 인터넷 프로토콜 스택에서는 표현/세션 계층의 기능이 필요하면 **애플리케이션 개발자**가 직접 구현한다.

4. 캡슐화 (Encapsulation)

4.1 캡슐화 과정

각 계층은 상위 계층에서 받은 데이터에 자신의 **헤더 정보**를 추가한다.

애플리케이션: [메시지]

전송: [Ht|메시지] ← 세그먼트

네트워크: [Hn|Ht|메시지] ← 데이터그램

링크: [Hl|Hn|Ht|메시지] ← 프레임

물리: 01011001010110... ← 비트

| 계층 | PDU (Protocol Data Unit) | 추가되는 헤더 |

| ------------ | ------------------------ | ------------------ |

| 애플리케이션 | 메시지 (Message) | - |

| 전송 | 세그먼트 (Segment) | 전송 계층 헤더 |

| 네트워크 | 데이터그램 (Datagram) | 네트워크 계층 헤더 |

| 링크 | 프레임 (Frame) | 링크 계층 헤더 |

4.2 전체 캡슐화 흐름

출발지 호스트 라우터 목적지 호스트

┌──────────┐ ┌──────────────┐ ┌──────────┐

│애플리케이션│ │ │ │애플리케이션│

├──────────┤ │ │ ├──────────┤

│ 전송 │ │ │ │ 전송 │

├──────────┤ ├──────────────┤ ├──────────┤

│ 네트워크 │ │ 네트워크 │ │ 네트워크 │

├──────────┤ ├──────────────┤ ├──────────┤

│ 링크 │ │ 링크 │ │ 링크 │

├──────────┤ ├──────────────┤ ├──────────┤

│ 물리 │ │ 물리 │ │ 물리 │

└──────────┘ └──────────────┘ └──────────┘

호스트: 5개 계층 모두 구현

라우터: 하위 3개 계층만 구현 (네트워크, 링크, 물리)

스위치: 하위 2개 계층만 구현 (링크, 물리)

5. 네트워크 보안 기초

5.1 인터넷 초기와 보안

초기 인터넷은 신뢰할 수 있는 소수의 사용자만 사용하는 것을 전제로 설계되었다. 따라서 보안이 원래 설계에 포함되지 않았다.

오늘날 네트워크 보안은 필수적이며, 다음과 같은 위협이 존재한다.

5.2 주요 네트워크 보안 위협

멀웨어 (Malware)

멀웨어의 종류:

├── 바이러스(Virus): 사용자 상호작용으로 감염

├── 웜(Worm): 자동으로 네트워크를 통해 전파

├── 트로이 목마(Trojan): 정상 소프트웨어로 위장

└── 봇넷(Botnet): 감염된 컴퓨터의 네트워크

서비스 거부 공격 (DoS: Denial of Service)

네트워크, 호스트, 또는 인프라를 정상 사용자가 사용할 수 없게 만드는 공격이다.

DoS 공격의 3가지 유형:

1. 취약점 공격: 특정 취약점을 이용

2. 대역폭 범람: 대량의 패킷으로 링크 포화

3. 연결 범람: 반쪽 연결(half-open)을 대량 생성

**DDoS (Distributed DoS)**: 여러 출처에서 동시에 공격

봇넷 PC1 ──┐

봇넷 PC2 ──┼──> 공격 대상 서버 (과부하)

봇넷 PC3 ──┤

... ──┘

패킷 스니핑 (Packet Sniffing)

공유 매체 환경에서 지나가는 패킷의 복사본을 가로채는 행위다.

공유 매체 (WiFi 등):

A ──────────────── B

└── 스니퍼(패킷 도청기)

모든 패킷의 복사본을 수신

IP 스푸핑 (IP Spoofing)

가짜 출발지 IP 주소를 가진 패킷을 생성하여 다른 사용자로 위장하는 공격이다.

공격자가 출발지 IP를 위조:

실제 IP: 192.168.1.100

위조 IP: 10.0.0.1 (신뢰받는 호스트)

서버는 패킷이 신뢰받는 호스트에서 온 것으로 오인

5.3 보안의 중요 원칙

네트워크 보안의 핵심 요소:

├── 기밀성(Confidentiality): 송수신자만 내용을 이해

├── 무결성(Integrity): 전송 중 데이터 변조 탐지

├── 인증(Authentication): 상대방의 신원 확인

└── 가용성(Availability): 서비스가 항상 이용 가능

6. 정리

인터넷 프로토콜 스택 요약:

계층 PDU 핵심 프로토콜 역할

────── ────── ──────────── ──────

애플리케이션 메시지 HTTP,SMTP,DNS 네트워크 애플리케이션

전송 세그먼트 TCP, UDP 종단 간 데이터 전달

네트워크 데이터그램 IP 호스트 간 라우팅

링크 프레임 이더넷, WiFi 인접 노드 간 전달

물리 비트 - 비트의 물리적 전송

캡슐화의 핵심:

- 각 계층은 상위 계층의 PDU를 **페이로드(payload)** 로 취급하고 자신의 헤더를 추가한다

- 수신 측에서는 각 계층이 자신의 헤더를 제거하고 상위 계층에 전달한다 (**역캡슐화**)

7. 확인 문제

| 계층 | PDU |

| ------------ | --------------------- |

| 애플리케이션 | 메시지 (Message) |

| 전송 | 세그먼트 (Segment) |

| 네트워크 | 데이터그램 (Datagram) |

| 링크 | 프레임 (Frame) |

| 물리 | 비트 (Bit) |

라우터는 하위 **3개 계층**(물리, 링크, 네트워크)을 구현한다. 라우터는 IP 데이터그램의 헤더를 확인하여 포워딩 결정을 내리므로 네트워크 계층까지 필요하지만, 전송 계층과 애플리케이션 계층은 구현하지 않는다.

**표현(Presentation) 계층**과 **세션(Session) 계층**이다.

- 표현 계층: 데이터 압축, 암호화, 형식 변환 담당

- 세션 계층: 데이터 교환의 동기화, 체크포인팅 담당

인터넷에서는 이 기능들이 필요한 경우 애플리케이션 개발자가 직접 구현한다.

현재 단락 (1/168)

본 포스팅은 James Kurose, Keith Ross의 Computer Networking: A Top-Down Approach (6th Edition) 교재를 기반으로 정리한...

작성 글자: 0원문 글자: 4,414작성 단락: 0/168