Computer Science/네트워크 (Network)

네트워크 모델 | (5) 데이터 단위와 흐름 이해하기

hyuga_ 2023. 11. 20. 09:33

지금까지

  • 네트워크 아키텍처들 (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 헤더와 데이터로 구성된다.

TCP Segment 포맷 (https://www.myreadingroom.co.in/notes-and-studymaterial/68-dcn/850-tcp-segment.html)

 

3. 네트워크 계층 (IP)

  • Packet/Datagram: 라우팅을 위해 사용되며, IP 헤더와 데이터를 포함한다.

IP 패킷 포맷 (https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:the-internet/xcae6f4a7ff015e7d:routing-with-redundancy/a/ip-packets)

 

4. 네트워크 접근 계층(데이터 링크 계층)

  • Frame: 물리적 네트워크를 통한 데이터 전송의 기본 단위로, MAC 주소와 데이터를 포함한다.

이더넷 Frame 포맷 (https://www.javatpoint.com/ethernet-frame-format)

 

 

계층별 데이터 단위 (UDP 프로토콜 사용)

 

1. 애플리케이션 계층 (HTTP)

  • Message/Data: 애플리케이션 계층에서의 데이터 단위로, HTTP 메시지와 동일하다.

2. 전송 계층 (UDP)

  • User Datagram: 경량화된 전송을 위해 사용되며, UDP 헤더와 데이터로 구성된다.

3. 네트워크 계층 (IP)

  • Packet/Datagram: 네트워크 계층에서의 데이터 단위로, IP 패킷과 동일하다.

4. 네트워크 접근 계층(데이터 링크 계층)

  • Frame: 물리적 네트워크를 통한 데이터 전송을 위한 프레임은 TCP와 UDP 모두에서 사용되는 기본 단위이다.

 

캡슐화(Encapsulation), 디캡슐화(Decapsulation)

위 그림과 설명을 보면, 계층을 내려오면서 점차 데이터에 꼬리표가 붙는 식으로 데이터가 두꺼워지는 것을 확인할 수 있다.

그리고 이를 '포장한다'고 보통 비유를 많이 하는데, 그래서 그런지 이러한 행위를 캡슐화(Encapsulation)라고 부른다. 

 

  1. 캡슐화는 데이터를 전송하는 쪽에서 하는 행위이다.
    • 데이터를 네트워크를 통해 안전하고 효율적으로 전송하기 위해 필요한 정보를 추가하는 것이다.
    • 필요한 정보는 각 계층에서 헤더(Header)에 담아서 붙인다. 
  2. 디캡슐화는 데이터를 수신하는 쪽에서 하는 행위이다.
    • 수신된 데이터에서 추가로 붙은 헤더 정보를 제거하고 원본 데이터를 복원하는 과정이다. 
    • 데이터가 수신측의 네트워크 스택을 통과하면서, 각 계층은 자신의 헤더를 제거하고 데이터를 상위 계층으로 전달한다. 

https://stackoverflow.com/questions/31446777/difference-between-packets-and-frames

 

Encapsulation (캡슐화)

 

계층별 캡슐화:

  • 애플리케이션 계층: HTTP, FTP와 같은 프로토콜 헤더가 데이터에 추가된다. 
  • 전송 계층 (TCP/UDP): TCP 세그먼트 또는 UDP 데이터그램이 생성된다. 여기에는 포트 번호순서 번호 등이 포함된다. 
  • 네트워크 계층: IP 패킷이 형성되며, 소스 및 대상 IP 주소 등이 추가된다.
  • 데이터 링크 계층: 프레임이 생성되고, MAC 주소가 포함된다.

 

Decapsulation (디캡슐화)

계층별 디캡슐화:

  • 데이터 링크 계층: 수신된 프레임에서 MAC 헤더가 제거된다.
  • 네트워크 계층: IP 헤더가 제거되며, 패킷은 전송 계층으로 이동한다.
  • 전송 계층 (TCP/UDP): TCP 또는 UDP 헤더가 제거되고, 데이터가 애플리케이션 계층으로 전달된다.
  • 애플리케이션 계층: 최종적으로 애플리케이션은 순수한 데이터만을 받게 된다.

 

 

엔드포인트간 라우팅 과정

 

 

 

 


[입문용] 프로토콜과 OSI 7 layer 설명! 네트워크의 기능들이 어떻게 구조화 돼서 동작하는지를 설명합니다! 👍

 

 

<널널한 개발자 TV> 네트워크 데이터 단위 정리