[Computer Network] 컴퓨터 네트워크 개요
네트워크 구조 이해: 네트워크 프로토콜과 계층 구조
네트워크는 현대 사회의 필수 기술 중 하나다. 이 글에서는 2024-2학기 모바일 컴퓨팅 수업 자료를 바탕으로, 학습했던 네트워크의 계층 구조와 프로토콜의 기본 개념을 정리한다. 특히 OSI 모델과 TCP/IP 스택을 중심으로, 프로토콜이 데이터를 어떻게 전달하고 통신을 가능하게 하는지 설명한다.
1. 네트워크 계층의 중요성: 계층 구조와 추상화
계층 구조란?
네트워크 계층 구조는 복잡한 네트워크 작업을 단계별로 나누어 처리하기 위해 설계된 체계다. 각 계층은 특정 역할과 기능을 담당하며, 상호 독립적으로 작동한다.
예를 들어:
- 데이터 링크 계층은 오류 검출 및 수정, 프레임 전송을 담당한다.
- 네트워크 계층은 패킷 전달 및 라우팅 역할을 한다.
- 전송 계층은 데이터의 신뢰성을 보장하고 흐름 제어를 수행한다.
현대에서는 정말 다양한 네트워크 장비가 존재한다. 각 네트워크 장비들은 제조사가 다르고, 모델이 다르고, 심지어 같은 뿌리의 네트워크 장비라고 하더라도 버전이 다를 수 있다. 이러한 네트워크 장비들이 서로 통신하기 위해서는 각 장비들이 서로의 프로토콜을 알고 있어야 한다.
그러나 정말 다양한 환경의 네트워크 장비들이 서로의 상황을 완벽하게 이해하기란 불가능에 가까우므로 이를 프로토콜을 사용하여 추상화하여 각 장비들이 서로의 상황을 이해하도록 한다.
추상화의 장점
계층 구조는 복잡한 네트워크 프로세스를 단순화하고, 특정 계층의 변화가 다른 계층에 영향을 미치지 않도록 설계된다. 이는 시스템 확장성과 상호 운용성을 크게 향상시킨다.
2. OSI 모델과 TCP/IP 프로토콜 스택
OSI 모델
OSI (Open Systems Interconnection) 모델은 7개의 계층으로 구성된다:
- 물리 계층: 하드웨어 전송 기술.
- 데이터 링크 계층: 프레임 생성, MAC 주소.
- 네트워크 계층: 라우팅 및 IP 주소.
- 전송 계층: TCP, UDP.
- 세션 계층: 통신 관리.
- 표현 계층: 데이터 변환 (암호화 등).
- 응용 계층: HTTP, FTP 등 응용 프로그램 프로토콜.
TCP/IP 프로토콜 스택
실제 네트워크에서는 TCP/IP 스택이 주로 사용된다. TCP/IP는 4계층 구조로, OSI 모델과 비교하면 다음과 같다:
- 링크 계층: 이더넷, PPP(Point-to-Point Protocol).
- 네트워크 계층: IP, ARP.
- 전송 계층: TCP, UDP.
- 응용 계층: HTTP, DNS.
TCP/IP 프로토콜 스택과 OSI 계층은 다음과 같이 서로 대응이 된다.
| OSI 계층 | TCP/IP 계층 |
|---|---|
| 물리 계층 (Layer 1) | 링크 계층(Layer 1) |
| 데이터 링크 계층 (Layer 2) | 링크 계층(Layer 1) |
| 네트워크 계층 (Layer 3) | 네트워크 계층(Layer 2) |
| 전송 계층(Layer 4) | 전송 계층(Layer 3) |
| 세션 계층(Layer 5) | 응용 계층(Layer 4) |
| 표현 계층(Layer 6) | 응용 계층(Layer 4) |
| 응용 계층(Layer 7) | 응용 계층(Layer 4) |
각 네트워크 계층의 프로토콜들을 정리하여 그림으로 나타내면 다음과 같다.
3. 프로토콜의 역할과 상호작용
프로토콜이란?
프로토콜은 통신 규칙을 정의한 표준이다. 데이터를 전송하는 방법, 오류를 검출하는 방식 등을 규정한다. 주요 프로토콜은 다음과 같다:
- TCP는 신뢰성 있는 데이터 전송을 보장한다.
- UDP는 빠르지만 신뢰성이 낮은 전송 방식을 제공한다.
- IP는 패킷을 목적지로 전달하는 역할을 한다.
프로토콜 계층 간의 상호작용
프로토콜은 계층 간 상호작용을 통해 데이터를 처리한다:
- 상위 계층에서 요청한 데이터는 하위 계층에서 캡슐화(encapsulation)된다.
- 반대로, 수신된 데이터는 하위 계층부터 상위 계층으로 전달되며 디캡슐화(decapsulation)된다.
통신을 수행하는 각 네트워크 장비는 서로의 프로토콜 계층에 데이터 통신을 주고 받는다.
즉, A 네트워크 장비가 B 네트워크 장비와 통신을 수행하고 있는 상황이라고 하면 A 네트워크 장비의 IP 계층에서 캡슐화된 데이터 패킷이 B 네트워크 장비에 도달하여 B 네트워크 장비의 IP 계층에서 디캡슐화되어 데이터 패킷이 다뤄지는 것이다.
4. 데이터 전송과 PDU
PDU (Protocol Data Unit)
각 계층에서 처리되는 데이터 단위를 PDU라고 한다. PDU는 각 계층마다 다르게 정의된다:
- 데이터 링크 계층: 프레임(Frame).
- 네트워크 계층: 패킷(Packet).
- 전송 계층: 세그먼트(Segment).
캡슐화(Encapsulation)와 디캡슐화(Decapsulation)
- 캡슐화: 데이터가 각 계층에서 헤더를 추가하며 전송 준비를 한다.
- 디캡슐화: 수신된 데이터에서 헤더를 제거하며 원래 데이터를 복원한다.
캡슐화는 내가 상대방에게 보내고자 하는 데이터를 보내기 위해 각 계층에서 헤더를 추가하는 것이고, 디캡슐화는 상대방에게서 받은 데이터를 원래 데이터로 복원하는 것이다.
기본적으로 네트워크 장비의 각 계층은 다른 계층의 데이터 구조를 전혀 건들이지 않는 것이 원칙이다. 따라서 원본 데이터 구조를 변경하는 작업을 하지 않고 단순히 헤더를 붙여서 필요한 정보만을 헤더에 기록하도록 한다.
즉, 각 TCP 계층들에서 캡슐화가 수행되면 다음 사진과 같이 각 계층 별 헤더가 추가된다.
이렇게 캡슐화된 데이터는 상대방 네트워크 장비의 각 계층의 헤더를 제거하며 디캡슐화가 수행된다. 캡슐화와 마찬가지로 디캡슐화를 수행하는 계층이 아닌 다른 계층의 헤더를 제거하는 것은 불가능하도록 설계되어 있다.
TCP 링크계층까지 캡슐화가 완료되어 외부로 나가는 데이터 프레임의 전체적인 구조는 다음과 같이 파싱된다.
상단의 사진은 인간이 이해하기 쉽도록 표현된 것이고, 실제로는 헤더를 포함한 모든 데이터가 컴퓨터가 읽을 수 있는 형태로 변환된다.
/// caption
Wireshark 패킷 캡처 예시
///
5. 데이터 링크 계층과 CRC
데이터 링크 계층의 역할
데이터 링크 계층은 프레임을 통해 데이터를 전달하고, 오류 검출 기능을 제공한다. 대표적으로 **CRC (Cyclic Redundancy Check)**가 사용된다.
CRC의 기능
CRC는 데이터 오류를 검출하기 위한 방법이다. 송신자가 CRC 값을 계산하여 프레임에 추가하고, 수신자는 이를 다시 계산해 비교함으로써 데이터 손상을 확인한다.
6. 멀티캐스트와 브로드캐스트
브로드캐스트
브로드캐스트는 네트워크의 모든 노드에 데이터를 전달하는 방식이다. 예를 들어 ARP 요청은 브로드캐스트로 MAC 주소를 탐색한다.
멀티캐스트
멀티캐스트는 특정 그룹에 속한 노드에만 데이터를 전달한다. IP TV와 같은 서비스에서 주로 사용된다.
7. 프로토콜과 상호 운용성의 미래
네트워크 기술은 계속 발전하고 있으며, TCP/IP 프로토콜 스택과 OSI 모델은 여전히 중요한 역할을 하고 있다. 향후 IPv6, SDN(소프트웨어 정의 네트워크) 등 차세대 기술이 도입되더라도, 계층 구조의 핵심 원칙은 계속 유지될 것이다.
결론
네트워크 계층 구조와 프로토콜은 데이터 통신의 근본적인 토대다. OSI 모델과 TCP/IP 프로토콜 스택을 통해 네트워크의 동작 방식을 이해하면, 더 나은 네트워크 설계와 문제 해결 능력을 갖출 수 있다.