지금까지
- 네트워크 아키텍처들 (LAN, WAN, 서버-클라이언트 구조)
- OSI 모델, TCP/IP 모델이 무엇인지
- 어떤 주소체계를 통해서 데이터 패킷이 목적지로 향할 수 있는지 (포트, IP, MAC)
- IP 프로토콜의 한계를 보완한 TCP, UDP 프로토콜이 무엇인지
- 프로세스가 네트워크 기능을 사용할 수 있도록 해주는 소켓이 무엇인지
를 공부했다.
이번에는 실질적으로 1) 데이터라는 게 어떤 형태로 전달되며, 2) 어떤 과정으로 전송되는지를 추가하여
네트워크 | 네트워크를 이해하는 큰 그림에서의 3차원 이미지를 마저 완성해보면 좋을 것 같다.
TCP/IP 계층별 데이터 단위
우리 애플리케이션에서 출발한 데이터가 네트워크 세상으로 빠져나가면서 점차 어떤 모습으로 바뀌게 되며,
왜 그렇게 되는지, 또 각 단계에서의 모습을 뭐라고 부르는지를 알아보자.
계층별 데이터 단위 (TCP 프로토콜 사용)
1. 애플리케이션 계층 (HTTP)
- Message/Data: 클라이언트와 서버 간의 데이터 교환에 사용되며, 헤더와 본문으로 구성된다.
2. 전송 계층 (TCP)
- Stream: 연속된 데이터 흐름을 의미하며, 데이터의 경계가 명확하지 않은 연속적인 데이터 시퀀스이다.
- Segment: 데이터의 신뢰성 있는 전송을 위해 사용되며, TCP 헤더와 데이터로 구성된다.
3. 네트워크 계층 (IP)
- Packet/Datagram: 라우팅을 위해 사용되며, IP 헤더와 데이터를 포함한다.
4. 네트워크 접근 계층(데이터 링크 계층)
- Frame: 물리적 네트워크를 통한 데이터 전송의 기본 단위로, MAC 주소와 데이터를 포함한다.
계층별 데이터 단위 (UDP 프로토콜 사용)
1. 애플리케이션 계층 (HTTP)
- Message/Data: 애플리케이션 계층에서의 데이터 단위로, HTTP 메시지와 동일하다.
2. 전송 계층 (UDP)
- User Datagram: 경량화된 전송을 위해 사용되며, UDP 헤더와 데이터로 구성된다.
3. 네트워크 계층 (IP)
- Packet/Datagram: 네트워크 계층에서의 데이터 단위로, IP 패킷과 동일하다.
4. 네트워크 접근 계층(데이터 링크 계층)
- Frame: 물리적 네트워크를 통한 데이터 전송을 위한 프레임은 TCP와 UDP 모두에서 사용되는 기본 단위이다.
캡슐화(Encapsulation), 디캡슐화(Decapsulation)
위 그림과 설명을 보면, 계층을 내려오면서 점차 데이터에 꼬리표가 붙는 식으로 데이터가 두꺼워지는 것을 확인할 수 있다.
그리고 이를 '포장한다'고 보통 비유를 많이 하는데, 그래서 그런지 이러한 행위를 캡슐화(Encapsulation)라고 부른다.
- 캡슐화는 데이터를 전송하는 쪽에서 하는 행위이다.
- 데이터를 네트워크를 통해 안전하고 효율적으로 전송하기 위해 필요한 정보를 추가하는 것이다.
- 필요한 정보는 각 계층에서 헤더(Header)에 담아서 붙인다.
- 디캡슐화는 데이터를 수신하는 쪽에서 하는 행위이다.
- 수신된 데이터에서 추가로 붙은 헤더 정보를 제거하고 원본 데이터를 복원하는 과정이다.
- 데이터가 수신측의 네트워크 스택을 통과하면서, 각 계층은 자신의 헤더를 제거하고 데이터를 상위 계층으로 전달한다.
Encapsulation (캡슐화)
계층별 캡슐화:
- 애플리케이션 계층: HTTP, FTP와 같은 프로토콜 헤더가 데이터에 추가된다.
- 전송 계층 (TCP/UDP): TCP 세그먼트 또는 UDP 데이터그램이 생성된다. 여기에는 포트 번호와 순서 번호 등이 포함된다.
- 네트워크 계층: IP 패킷이 형성되며, 소스 및 대상 IP 주소 등이 추가된다.
- 데이터 링크 계층: 프레임이 생성되고, MAC 주소가 포함된다.
Decapsulation (디캡슐화)
계층별 디캡슐화:
- 데이터 링크 계층: 수신된 프레임에서 MAC 헤더가 제거된다.
- 네트워크 계층: IP 헤더가 제거되며, 패킷은 전송 계층으로 이동한다.
- 전송 계층 (TCP/UDP): TCP 또는 UDP 헤더가 제거되고, 데이터가 애플리케이션 계층으로 전달된다.
- 애플리케이션 계층: 최종적으로 애플리케이션은 순수한 데이터만을 받게 된다.
엔드포인트간 라우팅 과정
[입문용] 프로토콜과 OSI 7 layer 설명! 네트워크의 기능들이 어떻게 구조화 돼서 동작하는지를 설명합니다! 👍
<널널한 개발자 TV> 네트워크 데이터 단위 정리