CCNP/TCP Transport Binding
CCNP/TCP is the transport binding that enables CCNP packets to traverse traditional TCP/IP networks. While CCNP is designed as a self-contained networking protocol, practical deployment requires interoperability with existing IP infrastructure. The CCNP/TCP binding provides this bridge, encapsulating CCNP packets within TCP streams for transport across networks that do not yet support native CCNP routing.
Motivation and Context
CCNP was designed as a replacement for IP-based networking, but complete replacement of global networking infrastructure proceeds gradually. Even as CCNP adoption increased, large portions of the internet remained IP-based. Backbone networks, enterprise infrastructure, and regional providers often maintained IP capabilities while deploying CCNP at the edge.
The CCNP/TCP binding addresses this transitional period. It allows CCNP-native clients to communicate across IP networks without requiring end-to-end CCNP infrastructure. This approach resembles the tunneling techniques used during the IPv4-to-IPv6 transition.
Protocol Mechanics
The CCNP/TCP binding uses TCP as a carrier for CCNP packets. The specification involves:
Encapsulation: CCNP interest and data packets are encapsulated as payloads within TCP connections. A simple framing protocol identifies packet boundaries, since TCP is a streaming rather than datagram protocol.
Port Registration: The well-known port 9695 is registered for CCNP/TCP traffic. Servers listen on this port for incoming CCNP/TCP connections. Alternative ports can be configured for deployments requiring non-standard configurations.
Handshake: Clients initiate TCP connections and perform a simple handshake identifying themselves and their capabilities. The handshake negotiates protocol version and optional features.
Packet Transmission: Once established, the connection carries multiplexed CCNP packets. Multiple interests and data flows share a single TCP connection through channel identification within the framing.
Termination: Connections can be closed gracefully or abandoned on failure. Keepalive mechanisms detect failed connections.
Addressing Model
CCNP/TCP introduces a hybrid addressing model that bridges CCNP's name-based addressing with IP's address-based routing:
Content Names: CCNP content names remain the primary addressing mechanism for content. Names are carried in CCNP packet headers as usual.
Tunnel Endpoints: The TCP connection itself is addressed using IP addresses. The transport binding adds IP address configuration for tunnel endpoints.
Resolution Integration: Name Resolution operates normally—the binding does not affect how names are resolved. Resolution may return TCP tunnel addresses for remote endpoints.
This hybrid model allows CCNP applications to operate unchanged while gaining access to IP networks.
Deployment Scenarios
CCNP/TCP is deployed in several common scenarios:
CCN-Enabled Edge: Residential or enterprise networks deploy CCNP-native edge routers but connect to upstream providers via IP. The edge router tunnels CCNP traffic across the IP backbone.
Tunnel Broker Services: Commercial services provide CCNP/IP tunneling. Customers establish TCP tunnels to broker servers that forward CCNP traffic to/from the broader CCNP network.
Mobile Devices: Smartphones on IP-based cellular networks use CCNP/TCP to access CCNP content. The mobile carrier provides IP connectivity; the device encapsulates CCNP.
Enterprise Transition: Organizations transitioning from IP to CCNP use CCNP/TCP as a过渡 Solution maintain existing IP infrastructure while deploying CCNP at the edge.
Performance Characteristics
CCNP/TCP introduces overhead compared to native CCNP transport:
- Encapsulation overhead: Additional headers for framing and channel identification
- TCP overhead: Connection establishment, flow control, and reliability mechanisms
- Tunnel latency: Additional hop through the tunnel endpoint
Despite overhead, CCNP/TCP performs adequately for most applications. Performance-critical deployments often prioritize native CCNP transport when available.
The binding supports various TCP configurations. Buffer tuning, TCP options (like selective acknowledgment), and congestion control selection affect performance.
Security Considerations
CCNP/TCP inherits TCP security concerns and adds new considerations:
Transport Security: TCP connections can be protected with TLS. The Secure CCNP/TCP variant encrypts and authenticates tunnel traffic.
Access Control: Tunnel endpoints authenticate connections to prevent unauthorized tunnel use.
Firewall Traversal: By using TCP port 9695, CCNP/TCP typically passes through firewall rules that allow HTTP/HTTPS. This simplifies deployment in restrictive environments.
Enterprise deployments may restrict CCNP/TCP to internal networks or specific tunnel endpoints.
Relationship to Native CCNP
CCNP/TCP is explicitly a transitional technology. As native CCNP infrastructure expands, deployments can migrate away from tunneling. The long-term direction is native CCNP transport, with CCNP/TCP serving as a compatibility bridge.
Major CCNP platforms like PortalHub support both native CCNP and CCNP/TCP access, allowing clients to choose the optimal transport for their network situation.
The OpenBBS specification and Search BBS networks operate over both native CCNP and CCNP/TCP, enabling broad client compatibility.