
Kernal을 추상화한 interface file인 Socket 레벨에서의 데이터 단위는 Stream 이다.
이 때, file input/output을 생각해보면 file은 정해진 용량이 없이 계속 증가할 수 있는 형태이다. (운영 체제의 정해진 한계 안에서는)
즉 socket stream은 유저가 입력하는 값에 따라 크기가 정해지는 유동적이고, 일렬로 늘어진 형태의 data가 된다.

Stream data가 TCP로 전달될 때, TCP 레벨에 맞는 데이터 단위로 변환이 되는데 이 단위가 Segment이고, Stream이 분해되어 Segment로 변환되는 과정을 Segmentation이라고 한다.
Segmentation 시 Stream data는 일정 길이로 분해되는데, 이 길이의 명칭이 MSS(Maximum Segmentation Size)로 IP에서 전송할 수 있는 단위를 기준으로 정해지게 된다.

Segment data가 IP로 전달될 때, IP에서의 데이터 단위는 Packet이 된다.
위에서 언급한 대로 Segmentation MSS는 IP에서 전송할 수 있는 최대 단위를 기준으로 정해지는데, 이 단위를 MTU(Maximum Transform Unit)이라고 하며 대체적으로 1500 byte 정도이다.
Packet data가 하드웨어 레벨로 전송될 때는 Frame이라는 데이터 단위로 변환되며, 이를 Incapsulation 이라고 한다.
Incapsulation 된 Frame data가 최종적으로 유선을 통해 전송되는 데이터가 된다.