TCP / IP [송수신 과정, 캡슐화, PDU]

2024. 9. 20. 18:53·CS/Network
반응형

 

저번 시간에는 네트워크를 통해 데이터를 주고 받을 때 어떤 계층을 거쳐야하는 지, 그 계층에는
어떤 규칙 (protocol)이 있는지 살펴봤다.

 

이번시간은 실제 데이터를 요청할 때 일어나는 일을 계층별로 알아보자.

 

해당 과정은 클라이언트에서 서버로 보내는 상황을 기반으로 학습해보자.

 

캡슐화


클라이언트 쪽에서 요청을 보내면 요청은 각 계층에서 캡슐화 과정을 거친다.

 

캡슐화란 데이터를 전달할 때 각 계층마다 아래로 전달할 때 그 계층에 헤더를 삽입하여 전달하는 과정이다.

 

1. 전송계층

  • 데이터가 세그먼트(TCP) 또는 데이터그램(UDP)가 되며 TCP(L4) 헤더가 붙게 된다.

2. 인터넷 계층

  • IP(L3) 헤더가 붙으며 패킷화가 진행된다.

3. 링크 계층

  • 프레임 헤더와 프레임 트레일러가 붙어 프레임화가되어 서버로 전송된다.

비캡슐화

 

서버는 캡슐화된 클라이언트의 프레임을 전달 받아 비캡슐화 과정을 거친다.

 

비캡슐화는 정확히 캡슐화의 반대로 각 계층의 헤더 부분을 제거하는 과정이다.

 

1.링크 계층

  • 프레임 헤더와 프레임 트레일러가 제거 되어 패킷화가된다.

2.인터넷 계층

  • IP(L3) 헤더가 제거되며 세크먼트화(TCP) 또는 데이터그램화(UDP)가 되고

3. 전송계층

  • TCP(L4) 헤더가 제거되며 메시지화되어 비캡슐화 작업이 마무리된다.

 

위 과정을 정리하면 다음과 같다.

 

클라이언트가 요청을 보낼 때: 클라이언트에서 캡슐화 → 서버에서 비캡슐화

 

서버가 응답을 보낼 때: 서버에서 캡슐화 → 클라이언트에서 비캡슐화


PDU

캡슐화 / 비캡슐화에서 우리는 헤더라는 것을 추가하고 제거하는 것을 집중했다.

 

PDU란 protocol data unit의 약자로 각 계층 마다 데이터가 전달 될 때 그 데이터의 한덩어리의 단위를 의미한다.

여기서 데이터는 헤더 + 실제 전달되는 데이터를 의미한다.

 

정리하면 다음과 같다.  

 

PDU 구성요소

  • 헤더 : 제어 관련 정보
  • 페이로드: 실제 전달되는 데이터

부르는 명칭은 계층별로 다르다.

  • 애플리케이션 계층: 메시지
  • 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
  • 인터넷 계층: 패킷
  • 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
반응형

'CS > Network' 카테고리의 다른 글

RESTful 이란  (0) 2025.02.03
HTTP [ HTTP Version, HTTPS ]  (1) 2024.09.20
TCP / IP 4계층 [ 계층 구조 ]  (0) 2024.09.19
HTTP [HTTP Response]  (0) 2024.09.18
HTTP [HTTP Request]  (0) 2024.09.17
'CS/Network' 카테고리의 다른 글
  • RESTful 이란
  • HTTP [ HTTP Version, HTTPS ]
  • TCP / IP 4계층 [ 계층 구조 ]
  • HTTP [HTTP Response]
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (325) N
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (41)
        • swift (34)
        • python (6)
        • Kotlin (1)
      • iOS (133) N
        • UIKit (37)
        • Combine (1)
        • SwiftUI (33) N
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (20)
        • 어노테이션 (6)
        • 튜토리얼 (13)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (9)
        • 이론 (9)
        • MCP (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    boostcamp
    dp
    백준
    투포인터
    Tuist
    CS
    lifecycle
    dispatch
    dfs
    concurrency
    GIT
    property
    프로그래머스
    Swift
    UIKit
    SwiftUI
    AVFoundation
    IOS
    protocol
    Spring
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
TCP / IP [송수신 과정, 캡슐화, PDU]
상단으로

티스토리툴바