TCP Port Selection

When a call is first set up, the Oracle® Enterprise Session Border Controller inspects the SDP message's m-line to see if any media will be transported via TCP. If the SDP message indicates that some content will use TCP, the Oracle® Enterprise Session Border Controller allocates a configured number of steering ports for the media-over-TCP traffic. These TCP media ports are taken from the each realm’s steering pool.

Each endpoint can initiate up to four end-to-end TCP flows between itself and the other endpoint. The Oracle® Enterprise Session Border Controller assigns one port to receive the initial TCP packet (server port), and one to four ports assigned to send TCP traffic (client ports) to the receiving side of the TCP flow. The number of TCP flows for each call is configured globally.

In order to configure the Oracle® Enterprise Session Border Controller to facilitate and support this process, you need to specify the number of ports per side of the call that can transport discrete TCP flows. You can configure one to four ports/flows. For configuration purposes, the Oracle® Enterprise Session Border Controller counts this number as inclusive of the server port. Therefore if you want the Oracle® Enterprise Session Border Controller to provide a maximum of one end-to-end TCP flow, you have to configure two TCP ports; one to receive, and one to send. The receiving port (server) is reused to set up every flow, but the sending port (client) is discrete per flow. For example: for 2 flows in each direction, set the configuration to 3 TCP ports per flow; for 3 flows in each direction, set the configuration to 4 TCP ports per flow, etc.

The server port is used for initiating a new TCP connection. An endpoint sends the first packet to a server port on the ingress interface. The packet is forwarded out of the Oracle® Enterprise Session Border Controller through a client port on the egress interface toward an endpoint:

The endpoint responds back to the client port on the egress interface. This message traverses the Oracle® Enterprise Session Border Controller and is forwarded out of the server port on the ingress interface where the initial packet was sent. The remainder of the TCP flow uses the server and client port pair as a tunnel through the Oracle® Enterprise Session Border Controller:

When the second TCP connection is set up in the same direction as in the first example, the first packet is still received on the server port of the ingress interface. The next unused client port is chosen for the packet to exit the Oracle® Enterprise Session Border Controller:

The response takes the same path back to the caller. The remainder of the second TCP connection uses this established path:

When the callee initiates a TCP connection, it must send its initial traffic to the server port on its Oracle® Enterprise Session Border Controller ingress interface. The packet is forwarded out of the first free client port on the egress side of this TCP connection toward the caller.

The caller’s response takes the same path back to the callee that initiated this TCP connection. The remainder of the third TCP connection uses this established path.

The Oracle® Enterprise Session Border Controller can support a total of eight media-over-TCP connections per call. A maximum of 4 connections are supported as initiated from each side of the call.