테마
데이터 단위와 캡슐화
계층별 데이터 단위
네트워크에서 데이터는 각 계층마다 고유한 단위로 다루어진다. 이 단위들을 정확히 구분하는 것이 네트워크 이해의 핵심이다.
| 계층 | 데이터 단위 | 연관 키워드 |
|---|---|---|
| L5~L7 (소켓/애플리케이션) | Stream | 소켓(Socket), 연속적 데이터 |
| L4 (TCP) | Segment | MSS (Maximum Segment Size) |
| L3 (IP) | Packet | MTU (Maximum Transmission Unit) |
| L1~L2 (이더넷) | Frame | 이더넷, MAC 주소 |
| L4 (UDP) | Datagram | 비연결형 단위 |
연관 검색어처럼 외우자. 소켓 = Stream, TCP = Segment + MSS, IP = Packet + MTU, 이더넷 = Frame
MTU와 MSS: 크기 제한
인터넷에서 데이터를 유통할 때는 최대 크기 제한이 있다.
| 용어 | 정의 | 크기 |
|---|---|---|
| MTU | Maximum Transmission Unit -- 패킷의 최대 크기 | 1500 bytes (일반적) |
| MSS | Maximum Segment Size -- TCP 세그먼트의 최대 크기 | ~1460 bytes |
MTU 1500에서 IP 헤더(20 bytes)와 TCP 헤더(20 bytes)를 빼면 MSS가 약 1460 bytes가 된다. 만약 보내려는 데이터가 4MB라면, 1460 bytes 크기의 세그먼트 약 2,800개 이상으로 쪼개져서 전송된다.
캡슐화(Encapsulation)와 디캡슐화(Decapsulation)
캡슐화는 데이터를 한 계층의 단위로 감싸는 과정이다. 러시아 전통 목각 인형 마트료시카에 비유하면 이해하기 쉽다.
캡슐화의 3가지 특징
- 단위화: 데이터를 일정 크기의 단위로 만든다 (택배 박스에 담기)
- 포장: 각 계층의 헤더를 앞에 붙인다 (송장 부착)
- 은닉: 내부 내용을 바깥에서 알 수 없다 (택배 박스 안을 모름)
택배로 이해하는 캡슐화
세그먼테이션(Segmentation): 큰 데이터의 분할
에펠탑을 택배로 보내려면 어떻게 해야 할까? 분해 → 운송 → 조립이다. 네트워크에서도 마찬가지이다.
소켓에서 내려오는 Stream 데이터는 크기가 수 MB에 달할 수 있지만, 네트워크에서 유통 가능한 최대 크기는 MTU(1500 bytes)뿐이다. 따라서 TCP 스택에서 **세그먼테이션(분할)**이 일어난다.
- 송신 측에서 분해(세그먼테이션)가 일어난다
- 수신 측에서 조립(재조립)이 일어난다
- TCP는 각 세그먼트에 **순서 번호(Sequence Number)**를 부여하여 올바른 순서로 재조립할 수 있도록 한다
프레임의 특성: 수시로 바뀌는 트럭
패킷은 출발지에서 목적지까지 내용이 유지되지만, 프레임은 경유 구간마다 바뀐다. 택배 박스(패킷)는 그대로이지만, 그것을 실어 나르는 트럭(프레임)은 물류센터를 지날 때마다 다른 트럭으로 옮겨 실린다.
핵심 정리
- Stream(소켓) → Segment(TCP) → Packet(IP) → Frame(이더넷)
- MTU = 1500 bytes, MSS ≈ 1460 bytes
- 캡슐화는 마트료시카 -- 안으로 넣으면 Encapsulation, 꺼내면 Decapsulation
- 송신 시 Encapsulation + 세그먼테이션, 수신 시 Decapsulation + 재조립
- 패킷은 유지되지만, 프레임은 경유 구간마다 바뀐다
- 각 계층의 헤더에는 보통 송신자와 수신자를 식별하기 위한 정보가 들어 있다