Description
The Data Channel Establishment Protocol (DCEP) is a standardized application-layer protocol defined within the 3GPP architecture, primarily specified in TS 24.371 and TS 24.803. It functions as a control protocol dedicated to the setup, maintenance, and termination of data channels used by various services, most notably within the IP Multimedia Subsystem (IMS) framework and for Mission Critical Push To Talk (MCPTT) services. DCEP operates independently of the underlying user data transport, providing a signaling plane that negotiates the parameters necessary for establishing a reliable data path between endpoints, such as User Equipment (UE) and application servers.
Architecturally, DCEP is designed to be carried over reliable transport protocols, primarily Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP). The protocol defines a set of messages and procedures for channel negotiation. A typical establishment sequence involves a DCEP initiation message from one endpoint, which contains proposed parameters for the data channel. The receiving endpoint responds with an acceptance or rejection message. Upon acceptance, the data channel is considered established, and the actual user-plane data transfer can commence over a separate transport association or within the same association using different streams, as negotiated. DCEP also includes messages for gracefully closing a data channel and for reporting errors.
Key components of the protocol include the message format, state machines for channel management, and parameter negotiation mechanisms. Messages contain fields for a unique channel identifier, channel type (defining the nature of the data to be carried), reliability parameters, priority, and optional label information. The protocol's state machine manages the lifecycle of a channel from the 'Idle' state through 'Establishing' to 'Open' and finally 'Closing'. DCEP's role is crucial for services that require guaranteed, in-order delivery of data streams, such as file transfer during an MCPTT session or sharing of location data, where simple best-effort IP transport is insufficient.
Within the broader network, DCEP integrates with higher-layer service logic. For instance, in an MCPTT call, the service layer logic determines that a data channel (e.g., for sending an image or location) is needed. It then invokes the DCEP layer to establish the channel with the intended recipient(s). Once the DCEP handshake is complete, the service layer is notified, and the application can begin transmitting data over the newly established channel. This separation of control (DCEP) and user data planes allows for flexible and service-aware data delivery.
Purpose & Motivation
DCEP was created to address the need for a standardized, reliable, and service-aware mechanism to establish data channels within the 3GPP service architecture. Prior to its specification, services requiring dedicated data paths often relied on ad-hoc methods or proprietary signaling, leading to interoperability issues and complex service implementation. The proliferation of rich communication services, especially mission-critical services requiring guaranteed data delivery (like image share or file transfer in conjunction with voice), highlighted the limitation of using basic HTTP or SIP extensions for all data transfer scenarios.
The protocol's development was motivated by the requirements of Mission Critical Services (MCS) defined from 3GPP Release 12 onwards, particularly MCPTT. These services demanded low-latency, reliable, and prioritized data channels that could be established dynamically during a session. DCEP provides this by offering a lightweight protocol specifically designed for channel negotiation, separate from the session control protocol (like SIP) and the actual media transport. This separation of concerns simplifies the application logic and improves reliability.
Historically, the approach solved the problem of how to seamlessly add a data sharing component to an existing voice or messaging session without re-negotiating the entire session. It allows parameters like reliability (e.g., ordered/unordered, max retransmissions) and priority to be agreed upon per data channel, giving the network and endpoints clear directives on how to handle the traffic. This was a significant advancement over simply opening a TCP connection at the application layer, as DCEP provides a standardized negotiation framework understood by all 3GPP-compliant network elements and devices.
Key Features
- Standardized channel establishment and teardown procedures
- Negotiation of channel parameters (type, reliability, priority, label)
- Operation over reliable transports like TCP and SCTP
- Separation of control signaling from user data transport
- Support for multiple concurrent data channels within a session
- Integration with 3GPP service frameworks like IMS and MCPTT
Evolution Across Releases
DCEP was initially introduced in Release 12 to support Mission Critical Push To Talk (MCPTT) services. The initial specification defined the core protocol for establishing reliable data channels, including message formats for Open, Open-Ack, Open-Reject, Close, and Error. It established the fundamental state machine and the use of SCTP streams for data transport, providing the foundation for in-session data sharing like file and image transfer.
Defining Specifications
| Specification | Title |
|---|---|
| TS 24.371 | 3GPP TS 24.371 |
| TS 24.803 | 3GPP TS 24.803 |