데이터? 세그먼트? 패킷? 헷갈릴 땐 PDU를 알아보며 된다.
프로토콜 데이터 단위(Protocol Data Unit)는 데이터 통신에서 상위 계층이 전달한 데이터에 붙이는 제어정보를 뜻한다.
모든 계층에서, 우리가 전송하는 데이터
를 데이터라고 부를까?
PDU를 알고난 후 부터는 그렇지 않을 것이다. 물론 데이터 자체는 동일하지만 각 레이어를 거치면서 헤더 정보가 추가되면서 이름이 달라진다.
OSI 7 Layer
data unit | layers |
---|---|
Data (L7) | Application |
(Network Process to Application) | |
Data (L6) | Presentation |
(Data Representation and Encryption) | |
Data (L5) | Session |
(Interhost Communication) | |
Segments (L4) | Transport |
(End-to-End Connections and Reliability) | |
Packets (L3) | Network = Internet |
(Path Determination and Logical Addressing) - IP | |
Frames (L2) | Data Link |
(Physical Addressing) - MAC and LLC | |
Bit (L1) | Physical |
(Media, signal and Binary Transmission) |
쉽게 생각하면 사용자는 Data
라고 부르고, TCP는 Segment
라고 부르고, IP는 Packet
이라고 부르고, 데이터링크는 Frame
, 컴퓨터 하드웨어는 그것을 Bit
로 연산하고 다루게 되는 것.
예를 들면, 상위 계층에서 데이터를 전달받은 전송계층에서는 아래의 정보들을 추가해 그룹화한다.
이때 부터 데이터는 데이터가 아니라, 세그먼트
라고 불리는 것이다.
출발지 PORT : 발신하는 application의 포트
목적지 PORT : 수신해야 할 application의 포트
순서 번호 : 순차적 전송할 경우 순서를 붙이며, 순서가 어긋나면 목적지 프로토콜이 이를 바로 잡는다.
오류검출코드 : 출발지와 목적지 프로토콜은 세그먼트
를 연산하여 오류 검출 코드를 각각 만든다.
만약 출발지에서 전송한 세그먼트에 포함된 오류 검출 코드와 목적지에서 만든 오류 검출 코드가 다르다면 전송되는 과정에서 오류가 발생한 것이다. 이 경우 수신측은 그 세그먼트를 폐기하고 복구 절차를 밟는다. 오류검출코드는 체크섬
, 프레임 체크 시퀀스
라고도 부른다.