유저 모드에서 다루는 스트림 데이터가 존재합니다. 이 스트림 데이터는 크기가 정해져 있지 않고 사용자에 의해 결정되는 특징을 가지고 있습니다.
스트림 데이터가 소켓을 통해 TCP로 전달될 때, 세그먼트이션이라는 스트림 데이터를 일정 단위로 자르는 과정을 통해 세그먼트 형태로 전달합니다. 세그먼트를 인캡슐레이션하게 되면 패킷이 되고, 패킷을 다시 인캡슐레이션하면 프레임이 됩니다.
패킷의 최대 크기 즉, MTU (Maximum Transmission Unit)는 일반적으로 1500bytes입니다. 패킷은 header와 payload로 구성됩니다. header는 IP header 와 TCP header로 구성되고 각각 20bytes의 크기를 갖습니다. 따라서 paylaod는 1460bytes가 되고 이는 특별한 이유가 없으면 MSS (Maximum Segment Size)가 됩니다.
보안 등의 이유로 패킷의 payload을 조사해야하는 경우가 있습니다. 이를 DPI (****deep packet inspection)****라고 부릅니다. 그러나 이를 잘못할 경우 도감청이 될 수 있다는 점을 주의해야 합니다.