Type-aware object that manages (de)segmentation and a transfer queue.
Each endpoint type has a dedicated buffer type