[서버네트워크]
계층 별 데이터 캡슐화
펭귀니
2024. 9. 9. 13:24
1. **PDU(Protocol Data Unit)**와 **SDU(Service Data Unit)**란?
- SDU(Service Data Unit): 상위 계층에서 하위 계층으로 전달되는 데이터의 원본 형태입니다. 상위 계층에서 받은 데이터가 하위 계층에서 처리되기 전 상태를 의미합니다.
- PDU(Protocol Data Unit): 각 계층에서 데이터를 처리한 후 생성된 데이터 단위입니다. 각 계층에서 자신의 헤더(또는 트레일러)를 추가하여 데이터를 캡슐화한 후, 하위 계층으로 전달합니다.
즉, SDU는 상위 계층에서 받은 데이터의 원본 형태이고, PDU는 각 계층에서 처리된 데이터 단위입니다. PDU는 데이터가 하위 계층으로 이동할 때 캡슐화된 상태를 나타내며, 각 계층마다 다르게 불립니다.
2. **캡슐화(Encapsulation)**란?
캡슐화는 데이터를 전송할 때 각 계층이 데이터에 추가적인 정보를 덧붙이는 과정입니다. 각 계층은 상위 계층으로부터 받은 데이터를 처리하고, 그 데이터 앞에 헤더(때로는 뒤에 트레일러도 포함)를 추가하여 하위 계층으로 전달합니다. 이 과정이 계속 반복되면서, 최종적으로 물리적인 네트워크를 통해 데이터가 전송됩니다.
3. OSI 7계층에서의 PDU와 캡슐화 과정
데이터가 OSI 7계층을 통과하면서 캡슐화되고, 각 계층에서 PDU의 이름이 바뀝니다. 아래는 각 계층에서의 PDU 이름과 캡슐화 과정을 설명합니다.
① 응용 계층, 표현 계층, 세션 계층: 데이터
- SDU: 사용자가 웹 브라우저에서 웹페이지를 요청하는 데이터를 예로 들 수 있습니다.
- 이 세 계층은 통신을 위한 데이터를 준비하는 역할을 합니다. 이때 PDU는 **데이터(data)**라고 불립니다.
② 전송 계층 (Transport Layer): 세그먼트(segment) 또는 데이터그램(datagram)
- PDU: 전송 계층에서 데이터를 처리하여 TCP나 UDP 헤더를 추가합니다.
- TCP를 사용하는 경우: **세그먼트(segment)**라고 부릅니다.
- UDP를 사용하는 경우: **데이터그램(datagram)**이라고 부릅니다.
- 캡슐화: 이 계층에서 상위 계층의 데이터를 세그먼트로 변환하고, 헤더를 추가합니다. 이 헤더에는 데이터의 순서, 오류 검출 정보, 포트 번호 등의 정보가 포함됩니다.
③ 네트워크 계층 (Network Layer): 패킷(packet)
- PDU: 네트워크 계층에서는 **패킷(packet)**이라고 불립니다.
- 캡슐화: 네트워크 계층에서 상위 계층에서 받은 세그먼트 또는 데이터그램에 IP 헤더를 추가하여 패킷으로 변환합니다. 이 IP 헤더에는 출발지 IP 주소, 목적지 IP 주소, 라우팅 정보 등이 포함됩니다.
④ 데이터 링크 계층 (Data Link Layer): 프레임(frame)
- PDU: 데이터 링크 계층에서는 **프레임(frame)**이라고 불립니다.
- 캡슐화: 네트워크 계층에서 전달받은 패킷에 데이터 링크 헤더와 트레일러(주로 오류 검출을 위한 체크섬) 등을 추가하여 프레임으로 변환합니다. 이 계층은 데이터를 물리적으로 전달하기 위해, MAC 주소 같은 정보를 추가합니다.
⑤ 물리 계층 (Physical Layer): 비트(bits)
- PDU: 물리 계층에서는 데이터를 **비트(bit)**로 처리합니다.
- 캡슐화: 이 계층에서는 프레임을 0과 1의 비트 신호로 변환하여, 실제로 데이터를 네트워크 매체(유선 케이블, 무선 신호 등)를 통해 전송합니다.
4. 데이터 전송 시 SDU와 PDU의 관계
데이터가 상위 계층에서 하위 계층으로 이동할 때, 상위 계층에서 받은 SDU는 해당 계층에서 헤더를 추가해 PDU로 변환됩니다. 그리고 이 PDU는 하위 계층으로 전달되며, 각 계층은 PDU를 다시 SDU로 받아들인 후, 자신만의 헤더를 추가하여 새로운 PDU를 만듭니다.
- 상위 계층에서 하위 계층으로: 상위 계층의 SDU는 하위 계층에서 PDU로 변환됩니다.
- 하위 계층에서 상위 계층으로: 데이터를 수신할 때는 하위 계층에서 PDU의 헤더를 제거하여, 상위 계층에 SDU로 전달합니다. 즉, **역캡슐화(decapsulation)**가 발생합니다.
5. 캡슐화 과정 예시
웹 브라우저에서 웹페이지를 요청할 때 데이터를 캡슐화하는 과정은 다음과 같습니다:
- 응용 계층 (HTTP 요청): 사용자가 웹사이트를 요청하면 HTTP 요청 메시지가 생성됩니다. 이 데이터는 SDU이며, 전송 계층으로 전달됩니다.
- 전송 계층 (TCP): HTTP 요청 메시지를 세그먼트로 분할하고, TCP 헤더를 추가하여 PDU로 변환합니다. 그 후 네트워크 계층으로 전달합니다.
- 네트워크 계층 (IP): TCP 세그먼트에 IP 헤더가 추가되어 패킷이 됩니다. 이 패킷은 데이터 링크 계층으로 전달됩니다.
- 데이터 링크 계층 (이더넷): IP 패킷에 이더넷 프레임 헤더와 트레일러가 추가되어 프레임이 됩니다.
- 물리 계층 (비트 전송): 프레임이 **비트 스트림(0과 1)**으로 변환되어 네트워크 케이블이나 무선으로 전송됩니다.
요약:
- SDU는 상위 계층에서 받은 원본 데이터로, 하위 계층에서 처리되기 전 상태입니다.
- PDU는 계층에서 데이터를 처리하고 헤더를 추가한 후, 하위 계층으로 전달되는 데이터 단위입니다.
- 캡슐화는 각 계층이 데이터를 처리할 때마다 헤더와 트레일러를 추가하여, 데이터를 전송 가능한 형태로 변환하는 과정입니다.
- OSI 모델의 각 계층에서 데이터는 캡슐화되고, PDU의 이름도 데이터 -> 세그먼트 -> 패킷 -> 프레임 -> 비트로 변합니다.
이렇게 PDU, SDU, 그리고 캡슐화 과정은 네트워크 통신에서 데이터가 정확하고 효율적으로 전달될 수 있도록 도와주는 중요한 개념입니다.