프로토콜 데이터 단위(Protocol Data Unit)는 데이터 통신에서 상위 계층이 전달한 데이터에 붙이는 제어정보를 뜻한다.
모든 계층에서, 우리가 전송하는 데이터를 데이터
라고 부를까? PDU를 알고난 후 부터는 그렇지 않을 것이다. 물론 데이터 자체는 동일하지만 각 레이어를 거치면서 헤더 정보가 추가되면서 이름이 달라진다.
쉽게 생각하면 -
사용자는
Data
라고 부르고,TCP는
Segment
라고 부르고,IP는
Packet
이라고 부르고,데이터링크는
Frame
,컴퓨터 하드웨어는 그것을
Bit
로 연산하고 다루게 되는 것.
예를 들면, 상위 계층에서 데이터
를 전달받은 전송계층에서는 아래의 정보들를 추가해 그룹화 한다. 이때부터 데이터는 데이터가 아니라, 세그먼트
라고 불리는 것이다.
세그먼트
를 연산하여 오류 검출 코드를 각각 만든다. 만약 발신지에서 전송한 세그먼트에 포함된 오류 검출 코드와 목적지에서 만든 오류 검출 코드가 다르다면 전송되는 과정에서 오류가 발생한 것이다. 이 경우, 수신측은 그 세그먼트를 폐기하고 복구 절차를 밟는다. 오류검출코드는 체크섬
, 프레임 체크 시퀀스
라고도 부른다.자세한 내용은 이전 글의 TCP Header 항목 확인.
전송 계층으로 부터 전달받은 세그먼트
는 네트워크 계층의 정보를 포함해 패킷
이라고 불리게 된다.
전반적인 네트워킹에서의 packet의 의미
Circuit switching vs Packet switching 의 개념으로 회선교환(circuit switching)에 대비되는 모든 데이터 교환을 일컬어 packet switching이라고 할 수 있다. ATM cell switching은 물론이고, Ethernet frame switching, Frame Relay frame switching, 등등 회선교환이 아닌 모든 데이터 단위가 packet의 범주에 들어간다.
패킷의 구조는 이 블로그에서, 패킷의 자세한 전달과정은 여기서 확인할 수 있다.
Datagram : 데이터그램은 사용자의 순수한 message
를 다르게 부르는 말이다.
IP Packet : IP packet에서의 packet은 이 사용자 datagram을 layer-2의 MTU에 맞춰서 토막을 낸 상태. 그러니까 packet은 토막난 상태의 사용자 정보 스트림을 말한다.
SDU(Service Data Unit) : PDU와 SDU는 다른 용어이니 헷갈리면 안된다. SDU는 상향/하향 통신 레이어 간에 전달되는 실제 정보를 말한다. PDU는 동일 레이어 내에서 데이터 단위를 부르는 이름이고.
즉, PDU
= PCI
(프로토콜 통신 유닛의 줄인말로 쉽게 말하면 헤더 정보) + SDU
라고 생각하자.
네트워크 공부하다가 이해가 잘 안가 들렀는 데, 궁금했던 부분들을 해소해주셨습니다!! 감사합니다!!