US10944680B2 - Communications methods and apparatus - Google Patents
Communications methods and apparatus Download PDFInfo
- Publication number
- US10944680B2 US10944680B2 US15/803,435 US201715803435A US10944680B2 US 10944680 B2 US10944680 B2 US 10944680B2 US 201715803435 A US201715803435 A US 201715803435A US 10944680 B2 US10944680 B2 US 10944680B2
- Authority
- US
- United States
- Prior art keywords
- sbc
- rtcp
- packet stream
- session
- sdn controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 154
- 238000004891 communication Methods 0.000 title claims abstract description 119
- 230000000977 initiatory effect Effects 0.000 claims abstract description 16
- 230000011664 signaling Effects 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 25
- 229920006132 styrene block copolymer Polymers 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004873 anchoring Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000854350 Enicospilus group Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
Definitions
- the present invention relates to communications methods, systems and apparatus for collecting metrics, e.g., Quality of Service (QOS), and/or routing of traffic (based on collected metrics) using Software Defined Networking (SDN) Principles.
- QOS Quality of Service
- SDN Software Defined Networking
- SBCs session border controllers
- SDN software defined network
- the present invention is directed to various features relating to communications methods, systems and apparatus.
- One or more embodiments of the present invention addresses one or more of the various technical problems described above and herein and improves upon the efficiency of SDN systems.
- the present invention is directed to solving communications centric technological problems, e.g., Internet Protocol communications centric problems.
- the present invention also provides a new and/or improved system architectures to solve technological problems discussed herein with respect to SDN systems.
- One exemplary embodiment of the invention includes a method of operating a communication system, the method comprising: operating a SBC to receive a session initiation signal used to initiate a first media session, operating the SBC to send to an SDN controller session identification information (such as for example, 5 tuple information—source Internet Protocol (IP) address, source transport port, protocol type, destination IP address, destination transport port) identifying a first Real-time Transport Control Protocol (RTCP) packet stream corresponding to the first media session and causing said SDN controller to control a first open flow switch to establish an entry in a flow table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the first RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the first RTCP packet stream towards the intended RTCP packet stream destination.
- the session identification information may, and in some embodiments does, include other metadata information such as DSCP (Differentiated Services Code Point) value and VLAN (
- the method further comprises operating the SDN controller to generate an entry in a group table, said entry including RTCP packet flow identification information identifying the first RTCP packet flow and an address of the SBC to which copies of packets in the first RTCP flow are to be forwarded.
- the group table is in an Open-Flow controlled switch.
- the entry contains a first bucket and a second bucket, said first bucket containing instructions to copy the packets of the first RTCP packet flow and forward said packets toward the SBC, said second bucket containing instructions to forward the packets of the first RTCP flow toward the intended RTCP packet stream destination, e.g., other peer, after performing topology hiding.
- the method includes operating the first open flow switch to forward copies of the RTCP packets for the first media session to the SBC using the SBC address included in the group table as a destination address.
- the method further includes operating the SBC to receive the forwarded copies of the RTCP packets for the first media session from the first open flow switch; identifying that said received RTCP packets correspond to said first RTCP stream based on the SBC IP address port pair at which the RTCP packets are received or from information contained in the received RTCP packets (5 Tuple); analyzing at the SBC the received RTCP packets to determine one or more Quality of Service (QoS) metrics; and operating the SBC to determine optimized routes based on QoS metrics and communicate network routing information to said SDN network controller.
- QoS Quality of Service
- the method further comprises operating the SBC to send the SDN controller session identification information identifying a second RTCP packet stream corresponding to the first media session and causing said SDN controller to control said first open flow switch to establish an entry in a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the second RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the second RTCP packet stream towards the intended RTCP packet stream destination.
- the second RTCP packet stream destination typically is different from said first RTCP packet stream destination.
- the media session may include two unidirectional RTCP streams wherein the first RTCP stream originates at an endpoint device 1 and is sent to an endpoint device 2 while the second RTCP packet stream originates at an endpoint device 2 and is sent to an endpoint device 1 .
- the present invention is applicable to apparatus and system embodiments wherein one or more devices implement the steps of the method embodiments.
- the SBC, SDN controller and SDN switches include a processor and a memory.
- the memory including instructions when executed by the processor control the apparatus to operate to perform the steps of various method embodiments of the invention.
- FIG. 1 illustrates an exemplary SDN network system in accordance with an embodiment of the present invention.
- FIG. 2 illustrates an exemplary system and signaling flow in accordance with an embodiment of the present invention.
- FIG. 3 illustrates an exemplary computing device in accordance with an embodiment of the present invention.
- FIG. 4 illustrates an exemplary SDN switch that is an open flow switch along with an open flow controller.
- FIG. 5 illustrates components of an exemplary group table of an open flow switch.
- FIG. 6 illustrates the protocol levels which may be modified by an Open Flow switch.
- FIG. 7 illustrates an exemplary private cloud system with multiple virtual signaling session border controllers (S-SBCs) in accordance with an embodiment of the present invention.
- S-SBCs virtual signaling session border controllers
- FIG. 8 comprises the combination of FIGS. 8A and 8B .
- FIG. 8A illustrates a first part of a flowchart of an exemplary method in accordance with an embodiment of the present invention.
- FIG. 8B illustrates a second part of a flowchart of an exemplary method in accordance with an embodiment of the present invention.
- SDN Software Defined Networking
- SBC Session Border Controller
- the traditional model for an SBC is a more or less vertically integrated unit, with a tightly coupled control and data plane of its own.
- the control plane is call signaling (Session Initiation Protocol) aware, and uses this information to dictate how the Internet Protocol (IP) packets for media pass through its data plane. And by virtue of this interaction the SBC is able to police, control and otherwise impact on the packets that are specifically routed through it.
- IP Internet Protocol
- the integrated SBC can be deployed as a Virtual Network Function (VNF) in European Telecommunications Standards Institute (ETSI) defined Network Function Virtualization (NFV) architecture.
- VNF Virtual Network Function
- ETSI European Telecommunications Standards Institute
- NFV Network Function Virtualization
- each component of the decomposed SBC component is realized as a cluster providing one or more services.
- These services include call control, routing and policy, signaling normalization, gating and metering, Network Address Translation (NAT) detection, transcoding, transrating, etc.
- NAT Network Address Translation
- the SBC is able to police media traffic specifically routed through it.
- This approach has performed as required for many years now, the application/approach has technical problems.
- the approach can be made more effective and efficient if it were able to influence IP flows at other points in the network and not just as the packets hit its media plane. For example, it is typically desirable to block “bad” flows/packets as early as possible by moving the decision to forward or drop packets as close to the source as possible.
- an SBC is often expected to guarantee bandwidth for certain classes of traffic and indeed prioritize how to allocate contended bandwidth to the most important (based on policy) flows.
- the SBC's effectiveness in performing this task is constrained however by the fact that it is only performing this task at the point where the packets cross the SBC's data plane. The SBC has no visibility or influence on how bandwidth is utilized at all other points in the network.
- the entire network's forwarding plane i.e., SDN-enabled switch infrastructure
- SBC Software Defined Networking
- the SBC control plane acting similar to an application on top of the SDN controller
- programming flow forwarding rules typically via a controller
- OF Open Flow
- the SBC can adjust the flow behavior of packets dynamically across the network.
- media forwarding rules can be applied at SDN/OF-enabled switches directly as opposed to routing media streams to yet another media-aware node such as for example an M-SBC (described above).
- OpenFlow protocol is the most well-known of the SDN protocol for southbound Application Programming Interfaces (APIs), it is not the only one available.
- IPs Application Programming Interfaces
- the same or similar approach can be used for non-openflow enabled or vendor specific switches using Network Configuration Protocol (NetConf), HTTP, or OPFlex to communicate with the switches and routers to install and make configuration changes.
- NetworkConf Network Configuration Protocol
- HTTP HyperText Transfer Protocol
- OPFlex OPFlex
- FIG. 1 illustrates an SDN network system 100 including IP Endpoint 1 102 , IP Endpoint 2 104 , Edge Switch 1 106 , Core Switch 108 , Edge Switch 2 110 , SDN controller 112 , cloud service provider data center 114 and communications links 116 , 118 , 120 , 122 , 124 , 126 , 128 , 130 and 132 .
- the IP Endpoint device 1 102 optionally includes a video device 1 160 for recording and/or playing video.
- the IP Endpoint device 2 104 optionally includes a video device 2 162 for recording and/or playing video such as video exchanged during a multimedia session between the IP Endpoint device 1 102 and the IP Endpoint device 2 104 .
- the cloud service provider data center 114 includes S-SBC 1 134 node/device, optional M-SBC 1 136 node/device, and optional T-SBC 1 138 node/device.
- the S-SBC 1 134 , M-SBC 1 136 , and T-SBC 1 138 are each hardware devices including a processor, memory, hardware input/output interfaces including transmitters and receivers and programming instructions which is executed to operate the S-SBC 1 134 , M-SBC 1 136 and T-SBC 1 138 .
- the cloud service provider data center 114 is a cloud computing system/network in which the S-SBC 1 134 , M-SBC 1 136 , and T-SBC 1 138 are applications operating on compute nodes in the cloud computing system/network operated by the service provider.
- Communications link 116 couples/connects IP endpoint 1 102 to edge switch 1 106 .
- Communications link 118 couples/connects IP edge switch 1 106 to core switch 1 108 .
- Communications link 120 couples/connects core switch 108 to end switch 2 110 .
- Communications link 122 couples/connects edge switch 2 to IP endpoint 2 104 .
- Communications link 124 couples/connects edge switch 1 to SDN controller 112 .
- Communications link 126 couples/connects core switch 108 to SDN controller 112 .
- Communications link 128 couples/connects edge switch 2 110 to SDN controller 112 .
- Communications links 130 and 132 couples/connects the SDN controller 112 to the cloud service provider data center 114 .
- the SBCs communicate with the SDN Controller in some embodiments using a protocol that is not bounded.
- the communication protocol used to communicate between the SDN controller 112 and various devices in the cloud service provider data center is based on extending a representational state transfer Application Programming Interface (REST API) provided by the SDN Controller to the device, e.g., SBCs of the cloud.
- the SDN controller 112 dynamically programs flows in the SDN system 100 .
- the signaling plane of the SBC receives the signaling packets and uses this to determine what type of session (or other traffic) they relate to.
- the signaling SBC decodes the Session Description Protocol (SDP) information in Session Initiation Protocol (SIP) messages and determines the IP 5-tuple information (source IP address/port number, destination IP address/port number and the IP protocol in use) pertaining to a flow (RTP or RTCP). Based on the session state information that the signaling SBC maintains, the signaling SBC (S-SBC) determines if the packets should be discarded, rate limited, simply forwarded after providing topology hiding, or routed to some specific agent (such as a transcoding device) for media manipulation.
- SDP Session Description Protocol
- SIP Session Initiation Protocol
- the traditional functions that the media layer of an SBC performs are offloaded to SDN-enabled/OF-controlled switches.
- These functions for example include: (1) rate limiting/policing (e.g., allowing RTP packets to pass through only from established session and perform bandwidth policing based on the codec negotiated), (2) Topology Hiding (e.g., based on the Session Description Protocol messages exchanged in the Session Initiation Protocol signaling, the signaling SBC (e.g., S-SBC 1 134 ) (via SDN controller 112 ) can instruct the OF-enabled switch to rewrite IP address(es) as it forwards the RTP/RTCP packets from the untrusted side to the trusted side (and vice versa)); (3) V4-V6 Interworking, (4) VLAN Tagging, (5) Differentiated Services Code Point (DSCP) marking; (6) Far end NA(P)T (Net).
- M-SBC functions can be offloaded to SDN-enabled switches, e.g., SDN-enabled/supported Open Flow switches. Only those call-flows needing/requiring media processing/interworking need to be anchored at T-SBC and these would typically be only a specific percentage of calls. Offloading relay aspects to a switch provides a huge cost-advantage for the operator of the system. In those embodiments in which all of the M-SBC functions are off loaded to SDN-enabled switches, the M-SBC 136 is not necessary and is not included in the system.
- RTCP Real-time Transport Control Protocol
- a mechanism in which the value added (RTCP) streams used for generating QoS metrics are duplicated using SDN principles without needing to have every call go through yet another hop which would increase the media latency and media backhaul costs.
- the invention therein solves the problem of how to generate QoS metrics in an SDN system without adding media latency and media backhaul costs.
- a media interworking application is required to anchor the media and collect RTCP based statistics which results in increases in backhaul costs and reduction in Quality of user Experience (QoE) due to increased media latency.
- QoE Quality of user Experience
- the media interworking application is required to anchor the media to collect the RTCP based statistics, it requires that a media interworking appliance be in the loop for every call/media session.
- a SDN enabled distributed SBC directs OF-enabled switches using SDN principles to duplicate/fork specific media stream(s) toward a particular destination, i.e., RTCP media streams are forked towards the signaling SBC (S-SBC) so that the signaling SBC can collect/generate value added media statistics that, may be, and in some embodiments are, used to decipher, derive and/or generate the quality of the RTP media stream corresponding to the RTCP stream, e.g., determine QoS metrics and/or a QoS level for the RTP media stream.
- S-SBC signaling SBC
- the signaling SBC and/or SDN controller uses the determined quality of media stream to make key decisions to re-program/re-route the media stream flow in real time and/or make routing decisions on new and/or other existing media flows to optimize one or more network parameters, e.g., network bandwidth utilization, network congestion, network delays, etc.
- the invention does not require that the endpoint devices, e.g., user equipment devices be modified in any way or include API (application programming interface) or software to collect/capture and/or report QoS metrics.
- the QoS metrics are collected/captured and used without knowledge of this activity by the endpoint devices.
- FIG. 2 illustrates an exemplary system 200 and exemplary signaling and media paths/routes in accordance with an exemplary embodiment of the present invention.
- the system 200 includes endpoint device A 202 , endpoint device B 204 , a SDN network 206 including a plurality of communications switches, a SDN controller 208 and a signaling SBC (S-SBC) 210 .
- Endpoint devices A 202 and B 204 may be, and in some embodiments are, user equipment devices such as for example communications devices (e.g., cell phones, mobile phones, smartphones, IP phones, computers, lap tops, notepads, VOIP phones).
- the plurality of communications switches include switch 1 212 , switch 2 214 , switch 3 216 , . . .
- the communications switches of the SDN network 206 including switches 212 , 214 , 216 , . . . , 218 are SDN-enabled/supported switches such as for example SDN-enabled/supported Open Flow switches.
- the S-SBC 210 , SDN Controller 208 , and communications switches are part of a software defined network (SDN) system and are coupled together via communications links.
- the plurality of switches include edge switches and in some embodiments one or more core network communications switches which couple edge switches to other devices and switches in the SDN network. Both the edge switches and the core network communications switches are controlled by the SDN controller 208 .
- the edge switches which are positioned on the edge of the software defined network are controlled by the SDN controller and serve as ingress/egress switches for session initiation requests and media sessions being routed through the software defined network controlled by the SDN controller 208 .
- switch 1 206 and switch N 218 are edge switches which are positioned on the edge of the software defined network controlled by the SDN controller 208 .
- endpoint devices 202 and 204 are illustrated as being coupled to the SDN network 206 for purposes of simplifying the example for explanatory purposes, the system 200 may, and in most embodiments does, include a plurality of endpoint devices coupled to the SDN network 206 .
- the S-SBC 210 is coupled to the SDN controller 208 via a communications link 220 .
- the communication protocol used to communicate between the SDN controller 208 and S-SBC 210 is based on extending a representational state transfer Application Programming Interface (REST API) provided by the SDN Controller to the S-SBC 210 .
- the SDN controller 208 dynamically programs flows in the SDN network 206 .
- the cloud 224 represents communications links of the SDN network that couple/connect the switches of the SDN network 206 together.
- the SDN controller 208 is coupled to the communications switches 1 212 , switch 2 214 , switch 3 216 , . . . , switch N 218 via communications link 222 shown as coupled to cloud 224 .
- S-SBC 210 is coupled to the communications switches 1 212 , switch 2 214 , switch 3 216 , . . . , switch N 218 via communications link 226 which is illustrated as being connected to cloud 224 .
- the endpoint device A 202 is coupled to the SDN network 206 cloud 224 via communications link 228 .
- the endpoint device B 204 is coupled to the SDN network 206 cloud 224 via communications link 230 .
- Lines 232 and 233 represents signaling traffic communicated between endpoint device A 202 and endpoint device B 204 via switch 1 212 , S-SBC 210 , switch N 218 and communications links 226 , 228 , and 230 .
- Line 236 represents the media traffic communicated between endpoint A 202 and endpoint B 204 via switch 1 212 , switch N 218 and communications links of the system 200 including communications links 228 and 230 .
- Line 234 represents the forked RTCP traffic transmitted from switch 1 212 to S-SBC 210 over communications link 226 .
- System 200 of FIG. 2 illustrates how RTCP QoS metrics are collected without anchoring media streams at an external media-aware node (such as for example an SBC) but instead are collected in an optimized manner by forking RTCP streams using Software Defined Network principles resulting in better quality of experience, dynamic real-time routing and re-routing of media streams to achieve optimizations, and optimization of backhaul costs.
- an external media-aware node such as for example an SBC
- the signaling plane of the S-SBC 210 uses the SDN control plane interface and communications link 220 to communicate information, requests and/or instructions to the SDN controller 208 .
- the SDN controller 208 acts on the received information, requests and/or instructions and communicates instructions to one or more of the plurality of communications switches of the SDN network, e.g., communications switch 1 212 or switch N 218 , to duplicate and/or fork a copy of one or more specific media streams, e.g., the RTCP media stream from endpoint A 202 to endpoint B 204 and/or RCTP media stream from endpoint B 204 to endpoint A 202 , towards a specific entity, e.g., S-SBC 210 .
- a specific entity e.g., S-SBC 210 .
- the communications switches are software controlled switches that support programmable unidirectional flows.
- the software controlled switches are programmed by the SDN controller 208 .
- One, some, or all of the plurality of communications switches support duplicating and/or forking a specific flow using a group table so that a copy of the specific stream can be redirected to a new destination.
- the corresponding flows are established and/or programmed on the switches dynamically.
- the S-SBC 210 programs one or more of the communications switches (via SDN controller) through which the RTP and RTCP media streams are programmed to duplicate only the RTCP stream using a Group Table and by modifying the Level 2 and/or Level 3 destination transport address (i.e., Ethernet destination which is a level 2 destination transport address and/or an Internet Protocol (IP) destination address which is a level 3 destination transport address) for the RTCP stream since the RTCP stream contains value added statistics for the corresponding RTP stream.
- Diagram 600 of FIG. 6 illustrates the levels L 1 , L 2 , L 2 . 5 , L 3 and L 4 which may be modified by an Open Flow switch.
- the copied RTCP stream is then forked towards the S-SBC 210 which correlates the RTCP stream in the context of an existing session and collects/generates QoS (Quality of Service) metrics for an on-going session and in some embodiments for a given trunk group (i.e. group of endpoints/peers).
- QoS Quality of Service
- the SDN network 206 is configured so that the S-SBC 210 will anchor session signaling traffic traversing the network.
- the SDN controller 208 sends programming instructions to edge communications switches programming them to forward signaling traffic received from outside the SDN network to the S-SBC 210 .
- the signaling traffic between endpoint A (peer A) 202 and S-SBC 210 is represented by line 232 . Note it passes through switch 1 212 .
- the signaling traffic between S-SBC 210 and endpoint B 204 (peer B) is represented by line 233 which passes through switch N 218 .
- the media traffic (which includes RTP/RTCP flows) is represented by line 236 .
- Line 234 represents the forked RTCP traffic.
- the signaling from endpoint A and endpoint B is anchored at S-SBC 210 —this is depicted by lines 232 and 233 respectively shown in FIG. 2 .
- the switch 1 212 e.g., an Open Flow-enabled switch
- the switch 1 212 forks the RTCP packets (that are meant to be received on a specific RTCP UDP port) towards S-SBC 210 shown as line 234 .
- S-SBC 210 correlates these RTCP packets to one of the ongoing sessions. In some embodiments, S-SBC 210 correlates these RTCP received forked packets based on one of the following mechanism:
- Some of the various statistics that can be used for each leg are R-Factor, network-packet loss, packets discarded due to jitter, duplicate frames etc.
- an input can be provided by the S-SBC 210 to the SDN controller 208 , which can select an alternative path for a given flow.
- QoS statistics can be used to dynamically select routes.
- the diagram 400 of FIG. 4 illustrates typical software controlled logical switch data structures namely for an Openflow switch.
- a description of an open flow switch and the switch's capabilities can be found in the OpenFlow Switch Specification version 1.5.0 (Protocol Version 0x06 published by the Open Networking Foundation dated Dec. 19, 2014.
- the open flow switch 402 illustrated via its logical data structures includes a control plane 403 and a forwarding plane 404 .
- the open flow switch 402 is coupled via an Openflow Interface 410 which is part of the data plane 404 to an external Openflow Controller 406 (e.g., SDN controller 112 of FIG. 1 or 208 of FIG. 2 ) via a TCL/SSL (TCL/Secure Socket Layer) Channel 408 .
- TCL/SSL TCL/Secure Socket Layer
- the forwarding plane includes a set of flow tables 412 including Flow Table 1 , 2 , 3 , . . . , N; a group table 414 and a meter table 416 .
- Each of the flow tables of the set of flow tables 412 contains a flow entry.
- the main components of a flow entry in a flow table are shown in element 418 .
- Each flow table entry contains match fields, priority, counters, timeouts, cookie and instructions.
- a flow entry may also contain flags.
- the match fields are used to match against packets.
- the match fields include the ingress port and packet headers and optionally other pipeline fields such as metadata specified by a previous table.
- the priority is used for matching the precedence of the flow entry.
- the counters are updated when packets are matched.
- the instructions are used to modify the action set or pipeline processing.
- a flow entry instruction may, and sometimes does, contain actions to be performed on the packet at some point of the pipeline.
- the set-field action can be used to specify some header fields to rewrite.
- the timeouts are the maximum amount of time or idle time before flow is expired by the switch.
- the cookie is an opaque data value chosen by the SDN OpenFlow controller and is sometime used by the SDN controller to filter flow entries affected by flow statistics, flow modification and flow deletion requests. It is not used when processing packets.
- the flags alter the way flow entries are managed.
- a flow table entry is uniquely identified by its match fields and priority. The match fields and priority together identify a unique flow entry in a specific flow table.
- the Group table 414 of the forwarding plane 404 includes a group of entries.
- a flow entry in a flow table can point to a group.
- Each group entry is identified by its group identifier.
- the main components of the group entry are shown in group entry 420 and include Group Identifier, Group Type, Counters and Action Buckets. These items will be explained in further detail in connection with FIG. 5 which illustrates group table 414 in further detail with group entry 420 further illustrated.
- the group identifier 502 is integer uniquely identifying the group on the OpenFlow switch
- the group type 504 is used to determine group semantics and in this case is set to ALL
- the counters 506 are counters which are updated as packets are processed by the group
- the action buckets 508 , 510 , . . . , 512 are an ordered list of action buckets.
- Each action bucket 508 , 510 , . . . , 512 includes a set of actions to execute and associated parameters.
- the meter table 416 which is part of the forwarding plane is table that consists of meter entries which define per-flow meters which enable the implementation of various simple QoS operations.
- the main components of a meter entry 424 in the meter table 416 include meter identifier, meter bands and counters.
- the meter identifier is an integer that uniquely identifies the meter.
- the meter bands are an unordered list of meter bands with each meter band specifying the rate of the band and the way to process the packet.
- the counters are counters which are updated as packets are processed by the meter.
- the main components of a meter band are shown in element 422 and include band type, rate, burst, counters and arguments.
- the band type defines how a packet is processed the rate is used by the meter to select the meter band.
- the burst defines the granularity of the meter band.
- the counters are counters which are updated as packets are processed by a meter band.
- the meter band entry may also include band type specific arguments.
- the SDN switch e.g., open flow switch
- the SDN switch includes one or more modules or logic that may be implemented in software, hardware, e.g., circuits, or a combination of software and hardware to perform the functionality described herein.
- a processor and/or device in the switch performs the functionality described herein in connection with SDN switches.
- RTCP flow entries for each real time stream are added in a Flow Table by the OpenFlow Controller 408 which in connection with system 200 is SDN controller 208 .
- the open flow switch e.g., switch 1 212
- the group table 414 is then used to make one or more copies of the packet matching a RTCP entry.
- One copy is sent towards the S-SBC 210 , e.g., S-SBC VM (virtual machine), while the other copy or original is forwarded to the endpoint or peer (e.g., endpoint B 204 ).
- a typical group table created by the SDN controller 208 is shown in FIG. 5 as described above.
- the Group ID is associated in each flow entry created for a RTCP packet.
- a group ID can be created in the group table for a S-SBC, e.g., S-SBC VM instances, by the SDN controller when a S-SBC (e.g., S-SBC VM) registers with the controller or a group of S-SBC instances. While only a single S-SBC 210 is shown in FIG. 2 , in some embodiments, a cluster of S-SBCs is used.
- FIG. 7 described in further detail below illustrates a cloud implementation including a cluster of virtual S-SBCs (S-SBCs VM).
- each of the S-SBCs of the plurality or cluster is assigned a group ID.
- the group table created for each S-SBC includes two entries. One bucket entry is used to forward the packet normally and other bucket entry is used to forward the packet to the S-SBC (e.g., S-SBC VM instance).
- S-SBC e.g., S-SBC VM instance
- an “all” group type 504 with a unique OpenFlow-controller-assigned identifier 502 say, 50 can have two buckets: bucket 1 508 and bucket 2 510 .
- the action associated with bucket 1 508 is to forward the packet normally while the action associated with bucket 2 510 is to modify the destination transport address to be the address of the S-SBC 210 and forward the packet to the S-SBC 210 .
- the SDP offer message from Peer A contains the IP-Address and port number of Peer A on which Peer A would like to receive/send RTP/RTCP packets (e.g., SDP offer message c line, UDP/RTP port, RTP+1 used for RTCP port). In this example, this will be IP-A and Port A.
- SBC acts like a B2BUA (Back-to-Back User Agent) and forwards the SIP INVITE towards egress Peer B (Endpoint Device B 204 ).
- the SBC While forwarding the SIP INVITE message, the SBC changes the media-ports to point to itself in the egress SDP offer.
- the SBC changes the SDP offer message changes the media-ports to point to IP-SBC-E and Port E.
- the egress Peer B responds with a SIP 200 OK with an SDP Answer message and the SDP answer message from Peer B contains the IP-Address and port number of Peer B on which Peer B would like to receive/send RTP/RTCP packets (e.g., SDP answer message c-line and UDP/RTP port, RTP+1 shall be used for RTCP port).
- the IP-Address and port number of Peer B on which Peer B would like to receive/send RTP/RTCP packets are IP-B and Port B.
- SBC (continues to) act(s) as a B2BUA and forwards the SIP 200 OK message towards egress Peer A. While forwarding the SIP 200 OK message, SBC changes the media-ports to point to itself in the SDP answer message (sent towards Peer A). In this example, the SBC 210 changes the IP address and port from IP-B and Port B to IP-SBC-I and Port I.
- the signaling component of SBC e.g., S-SBC 210
- S-SBC 210 installs rules (via SDN controller 208 ) in SDN-enabled switches to perform the topology hiding as described above i.e. Origination/Destination IP-address/ports are re-written at SDN-enabled switches directly.
- the modified RTP/RTCP packets are directly sent towards Peer B.
- S-SBC signaling component of the SBC
- SDN controller installs rules (via SDN controller) in the SDN-enabled switches to re-write/manipulate IP addresses/port of RTP/RTCP packets on a per-session basis to perform topology hiding. This has to be done for both RTP and RTCP packets.
- the signaling component of SBC installs a group table that has two buckets/rules—a) the first rule doing IP-address/port re-writing/manipulations to perform topology hiding (as described above) b) the second rule doing the forking of IP packet i.e. the ingress RTCP packet is duplicated to a different destination (S-SBC in this case).
- the S-SBC address here points to a given IP-address and port.
- a similar group table is created to duplicate RTCP packet(s) coming from the other direction.
- the RTCP packet When the RTCP packet is duplicated, it is sent towards the S-SBC's IP-address and port. There are multiple mechanisms by which the S-SBC can map the received RTCP packet to a given ongoing session. Two of these mechanisms are discussed below.
- the destination address is configured to point to a S-SBC's IP address and a dynamic port (that S-SBC allocates on a per-session basis).
- the “port” on which it is received itself directly maps to an ongoing session. For example, for a media session between Peer A and Peer B (in that direction), S-SBC IP address and port A 1 is allocated and configured as the destination for the duplicated RTCP packet.
- the duplicated RTCP packet is received on port A 1 , it directly maps to a session between Peer A and Peer B (in that direction).
- S-SBC IP address and port A 2 is allocated and configured as the destination for the duplicated RTCP packet.
- S-SBC uses the information in the RTCP packet to calculate QoS/QoE metrics for that specific session.
- the destination address is configured to point to a S-SBC's IP address and a static port.
- S-SBC inspects the RTCP packet and based on the origination IP address of the IP packet, i.e. peer's IP address, the ongoing session can be fetched based on peer's IP address. For example, if the origination IP-address is IP-A and Port A, it maps to the ongoing to session between Peer A and Peer B in that direction. If the origination IP-address is IP-B and Port B, it maps to the ongoing to session between Peer B and Peer A in that direction. S-SBC uses the information in the RTCP packet to calculate QoS/QoE metrics for that specific session.
- the S-SBC receives the forwarded RTCP packets for the media session or call.
- These RTCP packets contain reports in the form of RR (Receiver Report)/SR (Sender Report) or XR (X-tended Report). These reports may be, and in some embodiments are, used by the S-SBC for each RTP stream to get an insight into the quality of experience/service experienced by the user.
- Some of the RTCP fields that are of importance and in some embodiments are used by the S-SBC to generate QoS and/or QoE metrics and/or are collected as QoS or QoE metrics or network information metrics are: (i) cumulative number of packets lost, (ii) xtended highest sequence number received, (iii) fraction lost, (iv) inter-arrival jitter, (v) delay since last SR (DLSR).
- QoS and/or QoE metrics that are generated by the S-SBC (that receives the collected information from the RTCP fields) are: R-Factor, MoS score, Packet Loss and Discard Metrics, Burst Metrics, Delay Metrics, Signal Related Metrics, Call Quality or Transmission Quality Metrics, and/or Jitter Buffer Parameters.
- the S-SBC 210 sends the following information to the SDN controller 208 :
- the SDN controller 208 performs the following tasks so that open flow switch forks the RTCP stream and sends a copy to the S-SBC 210 .
- the SDN controller based on it topology manager and path computation modules identifies peer- 1 (endpoint A 202 ) and peer- 2 (endpoint B 204 ) are connected to which of the underlying openflow switches. The SDN controller then identifies the shortest and the most optimal path (based on bandwidth need of the flow and sends instructions to the open flow switch). Both the flows may be present on the same open flow switch. Standard Open Flow messages (as defined in Open Flow Specification v1.3 and beyond) are used to specify a flow entry (carrying 5 tuple information, including modify primitive to update the tuple information (from IP-A and Port A, IP-SBC-I and Port I to IP-B and Port B and IP-SBC-E and Port E).
- the SDN controller 208 Based on the bandwidth requirement the SDN controller 208 also specifies to the open flow switch which meter entry is required to be associated to the flow entry. This results in the flows to be policed as per the meter rate.
- the meter tables are pre-configured based on the codec rate(s) supported by the SBC as part of instantiation.
- the group table entries in the open flow switches are configured based on SBC packet duplication logic discussed above. It can be either predefined or specified as part of the call.
- FIG. 3 illustrates a computing device 300 which may be used to implement an S-SBC, edge switch, SDN switch, an open flow switch, SDN controller or core switch in one or more embodiments of the present invention.
- the S-SBC is implemented in the cloud as an S-SBC application on compute node.
- FIG. 3 illustrates an exemplary computing device 300 , e.g., a SIP processing device, a signaling Session Border Controller (S-SBC), Endpoint device, peer device, SDN controller, or SDN switch, e.g., open flow switch, in accordance with an embodiment of the present invention.
- Exemplary computing device 300 includes an optional display 302 , an input device 304 , a processor 306 , e.g., a CPU, I/O interfaces 308 and 309 , which couple the computing device to networks or communications links and/or various other devices, memory 310 , and an assembly of components 319 , e.g., circuits corresponding to different components, coupled together via a bus 325 over which the various elements may interchange data and information.
- a processor 306 e.g., a CPU, I/O interfaces 308 and 309
- Memory 310 includes an assembly of components 318 , e.g., an assembly of software components, and data/information 320 .
- the assembly of software components 318 includes a control routines component which includes software instruction which when processed by processor 306 control the operation of the computing device to perform various functions and/or one or more steps of the various method embodiments of the invention.
- the I/O interface 308 includes transmitters 330 and receivers 332 .
- the I/O interface 309 includes transmitters 334 and receivers 336 .
- the computing device is also configured to have a plurality of Internet Protocol (IP) address/port number pairs, e.g., logical IP address/port pairs, for use in exchanging signaling information.
- IP Internet Protocol
- the I/O interfaces include IP address/port pairs.
- the I/O interfaces in some embodiments are configured to communicate in accordance with the IP, Transport Control Protocol (TCP), User Datagram Protocol (UDP), Session Initiation Protocol (SIP), Session Description Protocol (SDP), Real-time Transport Protocol (RTP), and RTP Control Protocol (RTCP).
- TCP Transport Control Protocol
- UDP User Datagram Protocol
- SIP Session Initiation Protocol
- SDP Session Description Protocol
- RTP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- RTCP Real-time Transport Protocol
- FIG. 7 illustrates an exemplary private cloud system 1400 with multiple virtual signaling session border controllers (S-SBCs) in accordance with an embodiment of the present invention.
- the exemplary cloud system 100 shown is a private cloud but the system may be, and in many embodiments is, implemented in a public cloud. While only signaling S-SBCs are shown in the figure, additional compute nodes may include media relay and interworking network elements namely T-SBCs and M-SBCs in the cloud network. The M-SBCs would be included for example when there are certain media services like SRTP, lawful interception to be provided that cannot be provided by OF-enabled switches.
- the system includes physical hardware resources including computing, storage, and network that provide processing, storage and connectivity which will be described in further detail below.
- the computing hardware includes one or more processors and commercial off the shelf (COTS) hardware that is commonly pooled. In some embodiments, the computing hardware is specialized and configured for use as session border controllers.
- COTS commercial off the shelf
- the system includes a storage module 1402 , a controller 1406 , a plurality of compute nodes, an optional SIP application server 1414 , a SIP endpoint device 1 1416 , a SIP endpoint device 2 1418 , an inside private communications network 1420 , an outside private communications network 1422 , a plurality of SDN edge switches including Open Flow Edge Switch 1 1470 , Open Flow Edge Switch 2 1472 , . . .
- Open Flow Edge Switch M 1474 (where M is a positive integer), a management network 1424 , and a plurality of communications links 1426 , 1428 , 1430 , 1431 , 1432 , 1434 , 1436 , 1438 , 1440 , 1442 , 1444 , 1446 , 1448 , 1450 , 1452 , 1454 , 1468 , 1476 , and 1478 .
- the inside private communications network 1420 , the outside private communications network 1422 , the management network 1424 , and the plurality of communications links 1426 , 1428 , 1430 , 1432 , 1434 , 1436 , 1438 , 1440 , 1442 , 1444 , 1446 , 1448 , 1450 , 1452 , 1453 , 1454 , 1468 , 1476 and 1478 are used to exchange messages, information and instructions between the various devices, endpoints, nodes and entities in the system.
- the plurality of compute nodes includes a compute node 1 1408 , a compute node 2 1410 , . . . , a compute node N 1412 where N is a positive number.
- the compute node 1 includes a virtual machine 1456 and a signaling session border controller (S-SBC) application 1458 .
- a compute node running a signaling session border controller application e.g., S-SBC APP 1458 , is a virtualized signaling-session border controller.
- Each of the compute nodes 2 1410 , . . . , N 1412 include a virtual machine and a SBC application.
- the SBC application can be a S-SBC, a M-SBC or a T-SBC.
- the plurality of compute nodes 1 . . . N executing software instructions to operate as a signaling session border controller form a cluster of N computing devices or SIP processing devices.
- the resources, e.g., SIP processing capabilities, available to each of the virtual signaling session border controllers may be, and typically is, different, for example based on how the virtual S-SBC is configured.
- the compute node 1 1408 is coupled to: the inside private network 1420 via communication link 1434 , the outside private network 1422 via communications link 1436 , and the management network 1424 via communications link 1438 .
- the communications node 2 1410 is coupled to: the inside private network 1420 via communication link 1440 , the outside private network 1422 via communications link 1442 , and the management network 1424 via communications link 1444 .
- the communications node N 1412 is coupled to: the inside private network 1420 via communication link 1446 , the outside private network 1422 via communications link 1448 , and the management network 1424 via communications link 1450 .
- the storage module 1402 is a storage device, e.g., memory, for storing instructions, information and data.
- the storage module 1402 is coupled to the inside private network 1420 via communications link 1426 and to the management network 1424 via communications network 1428 .
- the controller 1406 operates to configure and manage the private cloud system.
- the controller 1406 performs the functions of the SDN controller.
- the controller 1406 is coupled to the inside private network 1420 via communications link 1430 over which it communicates with the S-SBCs and can get the flow requests from the S-SBCs, the outside private network 1422 via communications link 1431 over which it communicates and sends instructions to the switches, e.g., edge switches 1470 , 1472 , . . . , 1474 , and the management network 1424 via communications link 1432 for operational purposes such as performing and communicating management functions.
- the controller includes an orchestrator device or module, a Virtual Network Function manager device or module, and an element management system device or module.
- the orchestrator controls the orchestration and management of network function virtualized infrastructure and software resources, and realizing network services on network function virtualized infrastructure.
- the Virtual Network Function manager device or module operates to control virtual network function lifecycle management including for example instantiation, update, query and termination.
- a virtual network function as described in the ETSI GS NFV 002 V1.1.1 is a virtualisation of a network function.
- the virtualized network functions are session border controllers.
- the element management system or module performs management functions for one or several of the virtual network functions, e.g., virtual SBCs.
- Each compute node includes one or more processors.
- one or more of the compute nodes in the system include a single processor upon which multiple virtual SBCs, e.g., S-SBCs, of the cluster are instantiated.
- each virtual SBC, e.g., S-SBC, of the cluster is a set of programming instructions forming a SBC, e.g., S-SBC, application which is executed on a processor of a compute node.
- the SIP application server 1414 is coupled to the inside private network 4120 via communications link 1468 .
- the Edge Switch 1 1470 , Edge Switch 2 1472 , . . . , Edge Switch M are coupled to the outside private network 1422 via communications links 1452 , 1453 , . . . 1454 respectively.
- the SIP Endpoint device 1 1416 is coupled to the outside private network 1422 via communications link 1476 , Edge Switch 1 1470 and communications link 1452 .
- the SIP Endpoint 2 1418 is coupled to the outside private network 1422 via communications link 1478 , Edge Switch 2 1472 and communications link 1453 .
- the system 1400 also includes a DNS server.
- S-SBCs may also be implemented on the private cloud system 1400 of FIG. 7 .
- FIG. 8 is a flowchart 800 of an exemplary communications method in accordance with an exemplary embodiment.
- the exemplary method 800 may be, and in some embodiments is implemented on system 100 of FIG. 1 , the system 200 of FIG. 2 , and the system 1400 of FIG. 7 .
- the SBC is S-SBC 210
- the SDN controller is SDN controller 208
- the first open flow switch is switch 1 212 .
- the first media session is established between Endpoint device A 202 and Endpoint device B 204 .
- the origination of the RTCP packets of the first RTCP packet stream is Endpoint device A 202 with a destination of the S-SBC 210 media IP address towards Endpoint A 202 as part of the communication of the RTCP packets from Endpoint device A 202 to the Endpoint device B 204 .
- the origination of the RTCP packets of the first RTCP packet stream is Endpoint device B 204 with a destination of the S-SBC 210 media IP address towards Endpoint device B 204 as part of the communication of the RTCP packets from Endpoint device B 204 to the Endpoint device A 202 .
- step 802 Operation starts in step 802 in which the communications system is powered on and initialized. Operation proceeds from step 802 to step 804 .
- an SBC e.g., S-SBC 134 in system 100 of FIG. 1 , S-SBC 210 of system 200 of FIG. 2 , or S-SBC 1408 of system 1400 of FIG. 7 .
- step 804 an SBC, e.g., S-SBC 134 in system 100 of FIG. 1 , S-SBC 210 of system 200 of FIG. 2 , or S-SBC 1408 of system 1400 of FIG. 7 , is operated to receive a session initiation signal used to initiate a first media session. Operation proceeds from step 804 to step 806 .
- step 806 the S-SBC, is operated to send an SDN controller (e.g., SDN controller 112 of system 100 of FIG. 1 , SDN controller 208 of system 200 of FIG. 2 , or SDN controller 1406 of FIG. 7 ) session identification information identifying a first RTCP packet steam corresponding to the first media session and causing said SDN controller to control a first open flow switch to establish an entry into a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the first RTCP packet stream to the SBC while also communicating, e.g., forwarding, the RTCP packets corresponding to the first RTCP packet stream toward the intended RTCP packet stream destination i.e. the other party in the session.
- SDN controller e.g., SDN controller 112 of system 100 of FIG. 1 , SDN controller 208 of system 200 of FIG. 2 , or SDN controller 1406 of FIG. 7
- session identification information identifying a first RTCP packet steam
- the session identification information is 5 tuple information including: source IP address, source transport port, protocol type, destination IP address and destination transport port.
- the SBC learns the session identification information identifying the first RTCP packet stream corresponding to the first media stream based on information included/exchanged in an SDP Offer-Answer exchange with a first peer device. The SDP offer and answer messages being incorporated in SIP messages passing through the SBC during session establishment. Operation proceeds from step 806 to step 808 .
- step 808 the SDN controller is operated to generate an entry into a group table, said entry including RTCP packet flow identification information identifying the first RTCP packet flow and an address of the SBC to which copies of the packets in the first RTCP flow are to be forwarded.
- the SDN 112 For example with respect to system 100 in which a media session is established between endpoint 1 102 and endpoint 2 104 , the SDN 112 generates an entry in the group table of edge switch 1 which includes information that identifies the RTCP packets of a RTCP packet flow being sent from Endpoint device 1 102 with a destination of SBC's IP address facing towards Endpoint 1 to be used when communicating RTCP packets from Endpoint 1 to Endpoint device 2 104 and also an address for S-SBC 134 to which copies of the packets in the RTCP flow are to be forwarded.
- the group table is in an Open-Flow controlled switch (e.g., open flow switch 106 of FIG. 1 or open flow switch 212 of FIG. 2 ).
- said entry contains a first bucket (e.g., bucket 508 ) and a second bucket (e.g., 510 ), said first bucket containing instructions to copy the packets of the first RTCP packet flow and forward the packets toward the SBC (e.g., S-SBC 134 of system 100 , S-SBC 210 of system 200 , S-SBC 1458 of system 1400 , said second bucket containing instructions to forward the packets of the first RTCP flow toward the identified RTCP packet stream destination, e.g., other peer (e.g., Endpoint device 2 104 of system 100 , Endpoint device B 204 of system 200 , or SIP endpoint 2 1418 of system 1400 assuming the RTCP packets are being sent from Endpoint device 102 to Endpoint device 104 in system 100 , from End
- step 810 the first open flow switch is operated to forward copies of the RTCP packets for the first media session to the S-SBC using the SBC address included in the group table as a destination address. Operation proceeds from step 810 to step 812 .
- step 812 the S-SBC is operated to receive the forwarded copies of the RTCP packets for the first media session from the first open flow switch. Operation proceeds from step 812 to step 814 .
- step 814 the S-SBC identifies that the received RTCP packets correspond to said first RTCP packet stream based on the SBC IP address port pair at which the RTCP packets are received or from information contained in the received RTCP packets. Operation proceeds from step 814 to step 816 .
- step 816 the SBC analyzes the received RTCP packets to determine one or more quality of service metrics. Operation proceeds from step 816 to step 818 .
- the SBC is operated to communicate network control information to said SDN network controller.
- the network control information includes at least one or one or more Quality of Service (QoS) metrics.
- QoS Quality of Service
- the network control information includes a subset of Quality of Service metrics determined by analyzing the received RTCP packets.
- the network control information includes all of the Quality of Service metrics determined by analyzing the received RTPC packets over a specified time period.
- the network control information includes an indication that a Quality of Service level specified for the media session is not being met.
- the one or more Quality of Service metrics includes at least one of the following: R-Factor, network-packet loss, or packets discarded due to jitter.
- step 818 proceeds from step 818 , via connecting node A 820 , to step 822 .
- step 822 the SDN controller is operated to receive said network control information.
- operation proceeds from step 822 to step 824 .
- step 825 in which the SDN controller communicates the network control information to a routing engine for use in making future network routing decisions.
- the SBC communicates the network control information to a routing engine for use in making future network routing decisions.
- both the SDN controller and the SBC communicate network control information to a routing engine for use in making future network routing decisions.
- step 824 the SDN controller analyzes said network control information. Operation proceeds from step 824 to step 826 .
- step 826 the SDN controller stores or logs the RTCP information into one or more call data records. Operation proceeds from step 826 to step 828 .
- step 828 the SDN controller is operated to determine if a condition has been satisfied.
- Step 828 includes steps 830 , 832 and 834 .
- step 830 the SDN controller determines if a QoS level has not been met for said first media session based on said network control information.
- step 830 determines that a QoS level has not been met for said first media session based on said network control information. If the determination of step 830 is that a QoS level has not been met for said first media session based on said network control information, then operation proceeds from step 830 to step 832 in which the SDN controller determines that the condition has been satisfied. However, if the determination of step 830 is that a QoS level has been met, e.g., for each of the QoS metrics being evaluated, for said first media session based on said network control information, then operation proceeds from step 830 to step 834 in which the SDN controller determines that the condition has not been satisfied. Operation proceeds from step 828 to step 836 .
- the SDN controller determines that a QoS level has not been met for said first media session when said network control information includes an indication that a QoS level has not been met for the first media session.
- said indication that a QoS level has not been met in network control information is a flag that is set and the network control information further includes session identification information.
- step 830 includes checking the status of a flag in the network control information.
- step 830 includes checking a plurality of flags in the network control information, e.g., one flag corresponding to each quality of service metric being tested.
- step 836 the SDN controller controls operation as a function of the determination as to whether or not the condition has been satisfied. If the determination of step 828 is that the condition has been satisfied, then operation proceeds from step 836 to step 838 ; otherwise, operation proceeds from step 836 , via connecting node B 837 to step 812 , where the SBC is operated to receive more forwarded copies of the RTCP packets for the first media session from the first open flow switch.
- step 838 the SDN controller is operated to: i) indicate to the first open flow switch a new priority level for the RTP packets of the first media session, ii) control at least one switch to alter a path for the first media session, or iii) control at least one switch to alter a path for a second media session to alleviate a detected quality of service problem based on the received network control information, e.g., redirect second media session RTP packets so that it is no longer flowing through the first open switch thereby providing additional first switch bandwidth to the first media session. Operation proceeds from step 838 to step 840 .
- step 840 the SDN controller determines network routing paths in response to new media session requests which optimize network bandwidth utilization based on the received network control information. Operation proceeds from step 840 to step 842 .
- step 842 the SDN controller sends to one or more open flow switches commands to implement the determined network routing paths. Operation proceeds from step 842 to step 844 . In step 844 the one or more open flow switches are operated to implement received routing commands. Processing proceeds from step 844 via connection node 837 to step 812 where the SBC is operated to receive more forwarded copies of the RTCP packets for the first media session from the first open flow switch and the method continues as previously described.
- the RTP packets of the first media session are sent to the SBC. In some embodiments, the RTP packets of the first media session do not pass through the SBC. In SDN systems, the RTP packets of the first media session do not pass through the SDN controller.
- the SBC is a signaling SBC (S-SBC).
- S-SBC signaling SBC
- the SBC and the SDN controller communicate using a Representation State Protocol (REST) or a proprietary protocol.
- REST Representation State Protocol
- said SDN controller and said first open flow switch communicate using Open Flow protocol.
- Method Embodiment 1 A communications method, the method comprising: operating a session border controller (SBC) to receive a session initiation signal used to initiate a first media session; operating the SBC to send to an SDN controller session identification information (5 tuple information—source IP address, source transport port, protocol type, destination IP address, destination transport port) identifying a first RTCP packet stream corresponding to the first media session and causing said SDN controller to control a first open flow switch to establish an entry in a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the first RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the first RTCP packet stream towards the intended first RTCP packet stream destination.
- SBC session border controller
- Method Embodiment 2 The method of method embodiment 1, wherein said SBC learns the session identification information identifying the first RTCP packet stream corresponding to the first media stream based on information included in an SDP Offer-Answer exchange with a first peer device.
- Method Embodiment 3 The method of method embodiment 1 further comprising: operating the SBC to send the SDN controller session identification information identifying a second RTCP packet stream corresponding to the first media session and causing said SDN controller to control said first open flow switch to establish an entry in a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the second RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the second RTCP packet stream towards the intended second RTCP packet stream destination.
- Method Embodiment 4 The method of method embodiment 1 wherein said second RTCP packet stream destination (e.g., Endpoint device 1 ) is different from said first RTCP packet stream destination (Endpoint device 2 ).
- said second RTCP packet stream destination e.g., Endpoint device 1
- said first RTCP packet stream destination Endpoint device 2
- Method Embodiment 5 The communications method of method embodiment 1, further comprising: operating the SDN controller to generate an entry in a group table, said entry including RTCP packet flow identification information identifying the first RTCP packet flow and an address of the SBC to which copies of packets in the first RTCP flow are to be forwarded.
- Method Embodiment 6 The communications method of method embodiment 5, wherein said group table is in an Open-Flow controlled switch.
- Method Embodiment 7 The communications method of method embodiment 5, wherein said entry contains a first bucket and a second bucket, said first bucket containing instructions to copy the packets of the first RTCP packet flow and forward said packets toward the SBC, said second bucket containing instructions to forward the packets of the first RTCP flow toward the intended RTCP packet stream destination, e.g., other peer, after performing topology hiding.
- Method Embodiment 8 The communications method of method embodiment 5, further comprising: operating the first open flow switch to forward copies of the RTCP packets for the first media session to the SBC using the SBC address included in the group table as a destination address.
- Method Embodiment 9 The method of method embodiment 8, further comprising: operating the SBC to receive the forwarded copies of the RTCP packets for the first media session from the first open flow switch; identifying that said received RTCP packets correspond to said first RTCP stream based on the SBC IP address port pair at which the RTCP packets are received or from information contained in the received RTCP packets (5 Tuple); analyzing at the SBC the received RTCP packets to determine one or more Quality of Service (Qos) metrics; and operating the SBC to communicate network control information to said SDN network controller.
- Qos Quality of Service
- Method Embodiment 10 The method of method embodiment 9 wherein the network control information includes at least one of one or more Quality of Service metrics.
- Method Embodiment 11 The method of method embodiment 9 wherein the network control information includes a subset of the Quality of Service metrics determined by analyzing the received RTCP packets.
- Method Embodiment 12 The method of method embodiment 9 wherein the network control information includes all of the Quality of Service metrics determined by analyzing the received RTCP packets over a specified time period.
- Method Embodiment 13 The method of method embodiment 9 wherein the network control information includes an indication that a Quality of Service level specified for the media session is not being met.
- Method Embodiment 14 The method of method embodiment 9 wherein the one or more Quality of Service metrics includes at least one of the following: R-Factor, network-packet loss, or packets discarded due to jitter.
- Method Embodiment 15 The method of method embodiment 9 further comprising: operating the SDN controller to receive said network control information; analyzing by the SDN controller said network control information; and when said SDN controller determines that a condition has been satisfied operating the SDN controller to: i) indicate to the first open flow switch a new priority level for the RTP packets of the first media session, ii) control at least one switch to alter a path for the first media session, or iii) control at least one switch to alter a path for a second media session to alleviate a detected Quality of Service problem based on said received network control information (e.g., redirect second media session RTP packets so that it is no longer flowing through the first open flow switch thereby providing additional first switch bandwidth to the first media session).
- said received network control information e.g., redirect second media session RTP packets so that it is no longer flowing through the first open flow switch thereby providing additional first switch bandwidth to the first media session.
- Method Embodiment 16 The method of method embodiment 15 wherein said SDN controller determines that said condition has been satisfied when the SDN controller determines that a QoS level has not been met for said first media session based on said network control information.
- Method Embodiment 17 The method of method embodiment 16 wherein said SDN controller determines that a QoS level has not been met for said first media session when said network control information includes an indication that a QoS level has not been met for said first media session.
- Method Embodiment 18 The method of method embodiment 17 wherein said indication that a QoS level has not been met in said network control information is a flag that is set and wherein said network control information further includes said session identification information.
- Method Embodiment 19 The method of method embodiment 15 further comprising: determining, by the SDN controller, network routing paths in response to new media session requests which optimize network bandwidth utilization based on the received network control information.
- Method Embodiment 20 The method of method embodiment 1 wherein the RTP packets of the first media session are not sent to the SBC.
- Method Embodiment 21 The method of method embodiment 1 wherein the RTP packets of the first media session do not pass through the SBC.
- Method Embodiment 22 The method of method embodiment 21 wherein the RTP packets of the first media session do not pass through said SDN controller.
- Method Embodiment 23 The method of method embodiment 21 wherein the SBC is a signaling SBC (S-SBC).
- S-SBC signaling SBC
- Method Embodiment 24 The method of method embodiment 23 wherein the SBC and SDN controller communicate using a Representation State Protocol (REST) or a proprietary protocol.
- REST Representation State Protocol
- Method Embodiment 25 The method of method embodiment 1 wherein said SDN controller and said first open flow switch communicate using Open Flow protocol.
- Method Embodiment 26 The method of method embodiment 9 further comprising: operating the SBC to store or log the RTCP information into one or more Call Data Records.
- Method Embodiment 27 The method of method embodiment 9 further comprising: operating the SBC to communicate QoS information to a routing engine for use in making future network routing decisions.
- a communications system comprising: a first open flow switch; a Software Defined Network (SDN) controller; and a session border controller (SBC), said SBC including: memory; and a processor that controls the SBC to: receive a session initiation signal used to initiate a first media session; and send to the SDN controller session identification information (5 tuple information—source IP address, source transport port, protocol type, destination IP address, destination transport port) identifying a first RTCP packet stream corresponding to the first media session and causing said SDN controller to control the first open flow switch to establish an entry in a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the first RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the first RTCP packet stream towards the intended first RTCP packet stream destination.
- SDN Software Defined Network
- SBC session border controller
- System Embodiment 2 The system of system embodiment 1, wherein said processor included in the SBC further controls the SBC to determine the session identification information identifying the first RTCP packet stream corresponding to the first media stream based on information included in an SDP Offer-Answer exchange with a first peer device.
- System Embodiment 3 The system of system embodiment 1, wherein said SDN controller includes a processor, said processor controls the operation of the SDN controller to generate an entry in a group table, said entry including RTCP packet flow identification information identifying the first RTCP packet flow and an address of the SBC to which copies of packets in the first RTCP flow are to be forwarded.
- System Embodiment 4 The system of system embodiment 3, wherein said group table is in the first open flow controlled switch.
- System Embodiment 5 The system of system embodiment 3, wherein said entry contains a first bucket and a second bucket, said first bucket containing instructions to copy the packets of the first RTCP packet flow and forward said packets toward the SBC, said second bucket containing instructions to forward the packets of the first RTCP flow toward the intended RTCP packet stream destination (e.g., other peer, after performing topology hiding).
- said entry contains a first bucket and a second bucket
- said first bucket containing instructions to copy the packets of the first RTCP packet flow and forward said packets toward the SBC
- said second bucket containing instructions to forward the packets of the first RTCP flow toward the intended RTCP packet stream destination (e.g., other peer, after performing topology hiding).
- System Embodiment 6 The system of system embodiment 3, wherein: operating the first open flow switch to forward copies of the RTCP packets for the first media session to the SBC using the SBC address included in the group table as a destination address.
- System Embodiment 7 The system of system embodiment 6, wherein said processor in said SBC further controls the SBC to: receive the forwarded copies of the RTCP packets for the first media session from the first open flow switch; identify that said received RTCP packets correspond to said first RTCP stream based on the SBC IP address port pair at which the RTCP packets are received or from information contained in the received RTCP packets (5 Tuple); analyze the received RTCP packets to determine one or more Quality of Service (Qos) metrics; and communicate network control information to said SDN network controller.
- Qos Quality of Service
- System Embodiment 8 The system of system embodiment 7 wherein the network control information includes at least one of one or more Quality of Service metrics.
- System Embodiment 9 The system of system embodiment 7 wherein the network control information includes a subset of the Quality of Service metrics determined by analyzing the received RTCP packets.
- System Embodiment 10 The system of system embodiment 7 wherein the network control information includes all of the Quality of Service metrics determined by analyzing the received RTCP packets over a specified time period.
- System Embodiment 11 The system of system embodiment 7 wherein the network control information includes an indication that a Quality of Service level specified for the media session is not being met.
- System Embodiment 12 The system of system embodiment 7 wherein the one or more Quality of Service metrics includes at least one of the following: R-Factor, network-packet loss, or packets discarded due to jitter.
- System Embodiment 13 The system of system embodiment 7 wherein said processor in the SDN controller controls the SDN controller to: receive said network control information; analyze said network control information; and when said SDN controller determines that a condition has been satisfied control the SDN controller to: i) indicate to the first open flow switch a new priority level for the RTP packets of the first media session, ii) control at least one switch to alter a path for the first media session, or iii) control at least one switch to alter a path for a second media session to alleviate a detected Quality of Service problem based on said received network control information (e.g., redirect second media session RTP packets so that it is no longer flowing through the first open flow switch thereby providing additional first switch bandwidth to the first media session).
- said processor in the SDN controller controls the SDN controller to: receive said network control information; analyze said network control information; and when said SDN controller determines that a condition has been satisfied control the SDN controller to: i) indicate to the first open flow switch a new priority level
- System Embodiment 14 The system of system embodiment 13 wherein said processor included in the SDN controller controls the SDN controller to determine that said condition has been satisfied when the SDN controller determines that a QoS level has not been met for said first media session based on said network control information.
- System Embodiment 15 The system of system embodiment 14 wherein said SDN controller determines that a QoS level has not been met for said first media session when said network control information includes an indication that a QoS level has not been met for said first media session.
- System Embodiment 16 The system of system embodiment 15 wherein said indication that a QoS level has not been met in said network control information is a flag that is set and wherein said network control information further includes said session identification information.
- System Embodiment 17 The system of system embodiment 13 wherein said processor included in said SDN controller further controls the SDN controller to determine network routing paths in response to new media session requests which optimize network bandwidth utilization based on the received network control information.
- System Embodiment 18 The system of system embodiment 1 wherein the RTP packets of the first media session are not sent to the SBC.
- System Embodiment 19 The system of system embodiment 1 wherein the RTP packets of the first media session do not pass through the SBC.
- System Embodiment 20 The system of system embodiment 19 wherein the RTP packets of the first media session do not pass through said SDN controller.
- System Embodiment 21 The system of system embodiment 19 wherein the SBC is a signaling SBC (S-SBC).
- S-SBC signaling SBC
- System Embodiment 22 The system of system embodiment 21 wherein the SBC and SDN controller communicate using a Representation State Protocol (REST) or a proprietary protocol.
- REST Representation State Protocol
- System Embodiment 23 The system of system embodiment 1 wherein said SDN controller and said first open flow switch communicate using Open Flow protocol.
- System Embodiment 24 The system of system embodiment 7, wherein said processor included in said SBC further controls the SBC to store or log the RTCP information into one or more Call Data Records in a memory or storage device.
- System Embodiment 25 The system of system embodiment 7, wherein said processor included in said SBC further controls the SBC to communicate QoS information to a routing engine for use in making future network routing decisions.
- a non-transitory computer readable medium including computer executable instructions which when executed by one or more processors of a session border controller (SBC) cause the SBC to perform the steps of: receiving a session initiation signal used to initiate a first media session; sending to an SDN controller session identification information (5 tuple information—source IP address, source transport port, protocol type, destination IP address, destination transport port) identifying a first RTCP packet stream corresponding to the first media session and causing said SDN controller to control a first open flow switch to establish an entry in a table to cause the first open flow switch to send a copy of the RTCP packets corresponding to the first RTCP packet stream to the SBC while also communicating (e.g., forwarding) the RTCP packets corresponding to the first RTCP packet stream towards the intended first RTCP packet stream destination.
- SBC session border controller
- inventions may be implemented using software, hardware and/or a combination of software and hardware.
- Various embodiments are directed to apparatus, e.g., signaling session border controllers, controllers including SDN controllers, switches including SDN switches, telecommunications systems, network nodes and/or network equipment devices.
- apparatus e.g., signaling session border controllers, controllers including SDN controllers, switches including SDN switches, telecommunications systems, network nodes and/or network equipment devices.
- methods e.g., method of controlling and/or operating devices, signaling session border controllers, user devices, OpenFlow switches, SDN switches, SDN controller, real-time communications entities, telecommunications systems, network nodes and/or network equipment devices.
- Various embodiments are also directed to machine, e.g., computer, readable medium, e.g., ROM, RAM, CDs, hard discs, etc., which include machine readable instructions for controlling a machine to implement one or more steps of a method.
- the computer readable medium is, e.g., non-transitory computer readable medium.
- each of the steps or elements of a method are implemented using one or more processors. In some embodiments, each of the steps or elements are implemented using hardware circuitry.
- nodes and/or elements described herein are implemented using one or more components to perform the steps corresponding to one or more methods, for example, message reception, signal processing, sending, comparing, determining and/or transmission steps.
- various features are implemented using components or in some embodiments logic such as for example logic circuits.
- Such components may be implemented using software, hardware or a combination of software and hardware.
- Many of the above described methods or method steps can be implemented using machine executable instructions, such as software, included in a machine readable medium such as a memory device, e.g., RAM, floppy disk, etc.
- various embodiments are directed to a machine-readable medium, e.g., a non-transitory computer readable medium, including machine executable instructions for causing a machine, e.g., processor and associated hardware, to perform one or more of the steps of the above-described method(s).
- a device e.g., signaling session border controller, switch or controller, including a processor configured to implement one, multiple or all of the steps of one or more methods of the invention.
- the processor or processors e.g., CPUs
- the processor or processors of one or more devices, e.g., communications nodes such as session border controllers are configured to perform the steps of the methods described as being performed by the communications nodes, e.g., signaling session border controllers.
- the configuration of the processor may be achieved by using one or more components, e.g., software components, to control processor configuration and/or by including hardware in the processor, e.g., hardware components, to perform the recited steps and/or control processor configuration.
- some but not all embodiments are directed to a device, e.g., communications node such as a signaling session border controller, with a processor which includes a component corresponding to each of the steps of the various described methods performed by the device in which the processor is included.
- a device e.g., communications node such as a signaling session border controller, includes a component corresponding to each of the steps of the various described methods performed by the device in which the processor is included.
- the components may be implemented using software and/or hardware.
- Some embodiments are directed to a computer program product comprising a computer-readable medium, e.g., a non-transitory computer-readable medium, comprising code for causing a computer, or multiple computers, to implement various functions, steps, acts and/or operations, e.g. one or more steps described above.
- the computer program product can, and sometimes does, include different code for each step to be performed.
- the computer program product may, and sometimes does, include code for each individual step of a method, e.g., a method of controlling a session border controller or node.
- the code may be in the form of machine, e.g., computer, executable instructions stored on a computer-readable medium, e.g., a non-transitory computer-readable medium, such as a RAM (Random Access Memory), ROM (Read Only Memory) or other type of storage device.
- a computer-readable medium e.g., a non-transitory computer-readable medium, such as a RAM (Random Access Memory), ROM (Read Only Memory) or other type of storage device.
- a processor configured to implement one or more of the various functions, steps, acts and/or operations of one or more methods described above.
- a processor e.g., CPU, configured to implement some or all of the steps of the methods described herein.
- the processor may be for use in, e.g., a communications device such as a session border controller or other device described in the present application.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
-
- 1. The S-SBC (also sometimes referred to herein as a signaling SBC) is a service/component that anchors signaling and exposes signal interface(s) to the external peers and chains other SBC service components as described below on a need basis.
- 2. The M-SBC (also sometimes referred to herein as a media SBC) is a service/component that anchors media and exposes media interface(s) to the external peers. The M-SBC provides media Denial of Service (DOS)/Distributed Denial of Service (DDOS) protection, bandwidth policing, topology hiding, IPv4/IPv6 interworking, VLAN (Virtual Local Area Network) tagging, DSCP (Differentiated Services Code Point) marking, Far end Network Address and Port Translation Learning, RTP (Real-time Transport Protocol) Inactivity detection, SRTP (Secure Real-time Transport Protocol) Relay and related services.
- 3. The T-SBC (sometimes referred to herein as a transcoding SBC) is a service/component that anchors media only if media transcoding/processing is required. The T-SBC is typically hidden behind the M-SBC cluster and exposes its services only on the internal media interface. It provides media interworking related services such as for example, transcoding, transrating and/or trans-sizing of media flows.
-
- S-
SBC 210 in some embodiments listens on a specific IP Address and port (the port being dynamically allocated for every stream of a given session and installed in a rule on a switch (e.g., Open Flow (OF) switch (based on which it forks)). S-SBC 210, based on the port on which RTCP packets are received, could correlate to a given session and hence aggregate QoS statistics on a per-Trunk Group (TG) basis. - S-
SBC 210 in some embodiments listens on a specific IP address and (fixed) port—but uses the media IP-tuple information of the endpoint or peer to know which session the RTCP stream belongs to. The premise here being that the RTCP address (IP address and port) of a given peer uniquely identifies the corresponding session.
- S-
-
- Peer A sends a RTP/RTCP packet with IP-A and Port A(+1) as origination IP address and destination IP address as IP-SBC-I and Port I(+1). (The origination IP address points to Peer A (endpoint device A 202) and the destination IP address points to SBC).
- SBC performs topology hiding and forwards the RTP/RTCP packet towards egress Peer B (Endpoint Device B 204).
- SBC sends a RTP/RTCP packet with IP-SBC-E and Port E(+1) as origination IP address and destination IP address as IP-B and Port B(+1). (The origination IP address points to SBC and the destination IP address points to Egress Peer B (Endpoint Device 204).
- It should be noted that the RTCP packet is typically sent on a port which is one higher than that of a corresponding RTP packet.
-
- (1) 5-tuple information of each of the streams (RTP and RTCP) for Peer-1 (endpoint A 202) to SBC inside interface (i.e., the SBC IP network interface facing peer-1 and to which peer-1 sends media packets) representing unique flow (2) with its appropriate bandwidth requirements, including VLAN tag and DSCP, if any.
- (2) 5-tuple information of each of the streams (RTP and RTCP) for Peer-2 (endpoint B 204) to SBC outside interface (i.e., the SBC IP network interface facing peer-2 to which peer-2 sends media packets representing unique flow (2) with its appropriate bandwidth requirements, including VLAN tag, DSCP if any.
- (3) as part of the flow treatment primitive
- an IP address modification primitive to modify the 5 tuple for a packet coming from peer-1 (endpoint A) and to be sent to peer-2 (endpoint B).
- Group ID to be associated with the flow table—which is used for forking RTCP packet.
Claims (27)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/882,571 US10587502B2 (en) | 2017-05-16 | 2018-01-29 | Communications methods, apparatus and systems for providing scalable media services in SDN systems |
US16/814,847 US10938711B2 (en) | 2017-05-16 | 2020-03-10 | Communications methods, apparatus and systems for providing scalable media services in SDN systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201741017878 | 2017-05-22 | ||
IN201741017878 | 2017-05-22 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/821,475 Continuation-In-Part US10397316B2 (en) | 2016-05-31 | 2017-11-22 | Methods and apparatus for load balancing in SDN networks |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180337862A1 US20180337862A1 (en) | 2018-11-22 |
US10944680B2 true US10944680B2 (en) | 2021-03-09 |
Family
ID=64272176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/803,435 Active US10944680B2 (en) | 2017-05-16 | 2017-11-03 | Communications methods and apparatus |
Country Status (1)
Country | Link |
---|---|
US (1) | US10944680B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11140209B2 (en) | 2016-05-31 | 2021-10-05 | Ribbon Communications Operating Company, Inc. | Highly scalable methods and apparatus for balancing sip loads across a cluster of sip processing entities |
US11706135B2 (en) | 2021-03-11 | 2023-07-18 | Ribbon Communications Operating Company, Inc. | Communications methods, apparatus and systems for providing efficient and scalable media services |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10097472B2 (en) * | 2016-09-14 | 2018-10-09 | At&T Intellectual Property I, L.P. | Method and system for dynamically distributing and controlling a virtual gateway |
EP3662695A1 (en) * | 2017-08-03 | 2020-06-10 | Drivenets Ltd. | A network aware element and a method for using same |
EP3692691B1 (en) * | 2017-10-26 | 2023-08-02 | Huawei Technologies Co., Ltd. | Device and method for detecting and mitigating digital data network congestion |
US10616106B2 (en) * | 2017-12-06 | 2020-04-07 | Futurewei Technologies, Inc. | Establishing virtual network routes in a computer network |
US10966135B2 (en) | 2018-09-28 | 2021-03-30 | Intel Corporation | Software-defined networking data re-direction |
US11533253B2 (en) * | 2019-01-30 | 2022-12-20 | At&T Intellectual Property I, L.P. | Connectionless segment routing for 5G or other next generation network |
WO2020261372A1 (en) * | 2019-06-25 | 2020-12-30 | 日本電信電話株式会社 | Control device, control method, and control program |
CN117395167A (en) * | 2020-01-21 | 2024-01-12 | 华为技术有限公司 | Service level configuration method and device |
US11646961B2 (en) * | 2020-02-19 | 2023-05-09 | F5, Inc. | Subscriber-aware network controller |
US11785057B1 (en) * | 2022-05-06 | 2023-10-10 | Microsoft Technology Licensing, Llc | Increase service reliability by reusing session-stateful service instances within a single long-lived session |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100175122A1 (en) * | 2009-01-08 | 2010-07-08 | Verizon Corporate Resources Group Llc | System and method for preventing header spoofing |
US7852809B2 (en) * | 2006-02-15 | 2010-12-14 | Alcatel Lucent | Method of providing session mobility |
US8874765B2 (en) * | 2006-10-10 | 2014-10-28 | Cisco Technology, Inc. | Refreshing a session initiation protocol (SIP) session |
US9160608B2 (en) * | 2011-07-11 | 2015-10-13 | Metaswitch Networks Ltd | Communication session processing |
US20150341393A1 (en) * | 2014-05-24 | 2015-11-26 | NetTalk.com, Inc. | System and method for initiating telecommunications sessions through an electronic mail address |
US9253326B2 (en) * | 2006-10-10 | 2016-02-02 | Cisco Technology, Inc. | Handling redirect calls |
US9264944B1 (en) * | 2015-07-06 | 2016-02-16 | Peerless Network, Inc. | SBC-localized handoff |
US20160366189A1 (en) * | 2015-06-09 | 2016-12-15 | Sonus Networks, Inc. | Methods, apparatus and systems to increase media resource function availability |
US20170026512A1 (en) * | 2015-07-23 | 2017-01-26 | Avaya Inc. | Enhanced session initiation protocol recording |
US20170054764A1 (en) * | 2015-08-18 | 2017-02-23 | Sonus Networks, Inc. | Communications methods, apparatus and systems for conserving media resource function resources |
US20170180484A1 (en) * | 2015-12-22 | 2017-06-22 | Sonus Networks, Inc. | Methods and apparatus for managing the use of ip addresses |
US20170237851A1 (en) * | 2016-02-17 | 2017-08-17 | Microsoft Technology Licensing, Llc | Call leg quality differentiation in network telephony systems |
US20170251028A1 (en) * | 2016-02-29 | 2017-08-31 | Sonus Networks, Inc. | Communications methods, apparatus and systems |
US9819512B2 (en) * | 2016-01-06 | 2017-11-14 | Cisco Technology, Inc. | Network service header (NSH) metadata-based end-to-end multimedia session identification and multimedia service optimization |
US9854091B2 (en) * | 2011-08-26 | 2017-12-26 | Comcast Cable Communications, Llc | Fault routing of an emergency communication |
US20180063764A1 (en) * | 2016-08-24 | 2018-03-01 | Sonus Networks, Inc. | Optimizations for voice handovers over wireless data access |
US9992331B2 (en) * | 2015-08-25 | 2018-06-05 | Avaya Inc. | Continuous call recording |
US10003641B2 (en) * | 2014-09-16 | 2018-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system of session-aware load balancing |
US20180287931A1 (en) * | 2017-03-28 | 2018-10-04 | Microsoft Technology Licensing, Llc | Provisioning a Network Node for Attribute Sharing |
US10320655B1 (en) * | 2016-07-21 | 2019-06-11 | Ribbon Communications Operating Company, Inc. | Methods and apparatus for determining and using SDN link and/or path status |
-
2017
- 2017-11-03 US US15/803,435 patent/US10944680B2/en active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7852809B2 (en) * | 2006-02-15 | 2010-12-14 | Alcatel Lucent | Method of providing session mobility |
US8874765B2 (en) * | 2006-10-10 | 2014-10-28 | Cisco Technology, Inc. | Refreshing a session initiation protocol (SIP) session |
US9253326B2 (en) * | 2006-10-10 | 2016-02-02 | Cisco Technology, Inc. | Handling redirect calls |
US20100175122A1 (en) * | 2009-01-08 | 2010-07-08 | Verizon Corporate Resources Group Llc | System and method for preventing header spoofing |
US9521203B2 (en) * | 2011-07-11 | 2016-12-13 | Metaswitch Networks Ltd. | Communication session processing |
US9160608B2 (en) * | 2011-07-11 | 2015-10-13 | Metaswitch Networks Ltd | Communication session processing |
US9854091B2 (en) * | 2011-08-26 | 2017-12-26 | Comcast Cable Communications, Llc | Fault routing of an emergency communication |
US20150341393A1 (en) * | 2014-05-24 | 2015-11-26 | NetTalk.com, Inc. | System and method for initiating telecommunications sessions through an electronic mail address |
US10003641B2 (en) * | 2014-09-16 | 2018-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system of session-aware load balancing |
US20160366189A1 (en) * | 2015-06-09 | 2016-12-15 | Sonus Networks, Inc. | Methods, apparatus and systems to increase media resource function availability |
US9264944B1 (en) * | 2015-07-06 | 2016-02-16 | Peerless Network, Inc. | SBC-localized handoff |
US20170026512A1 (en) * | 2015-07-23 | 2017-01-26 | Avaya Inc. | Enhanced session initiation protocol recording |
US20170054764A1 (en) * | 2015-08-18 | 2017-02-23 | Sonus Networks, Inc. | Communications methods, apparatus and systems for conserving media resource function resources |
US9992331B2 (en) * | 2015-08-25 | 2018-06-05 | Avaya Inc. | Continuous call recording |
US20170180484A1 (en) * | 2015-12-22 | 2017-06-22 | Sonus Networks, Inc. | Methods and apparatus for managing the use of ip addresses |
US9819512B2 (en) * | 2016-01-06 | 2017-11-14 | Cisco Technology, Inc. | Network service header (NSH) metadata-based end-to-end multimedia session identification and multimedia service optimization |
US20170237851A1 (en) * | 2016-02-17 | 2017-08-17 | Microsoft Technology Licensing, Llc | Call leg quality differentiation in network telephony systems |
US20170251028A1 (en) * | 2016-02-29 | 2017-08-31 | Sonus Networks, Inc. | Communications methods, apparatus and systems |
US10320655B1 (en) * | 2016-07-21 | 2019-06-11 | Ribbon Communications Operating Company, Inc. | Methods and apparatus for determining and using SDN link and/or path status |
US20180063764A1 (en) * | 2016-08-24 | 2018-03-01 | Sonus Networks, Inc. | Optimizations for voice handovers over wireless data access |
US20180287931A1 (en) * | 2017-03-28 | 2018-10-04 | Microsoft Technology Licensing, Llc | Provisioning a Network Node for Attribute Sharing |
Non-Patent Citations (6)
Title |
---|
ITU T Recommendation G.107, ITU T entitled, Series G: Transmission Systems and Media, Digital Systems and Networks The E-model: a computational model for use in transmission planning 2014, Feb. 2014, pp. 1-30, published by International Telecommunication Unit. |
OpenFow Switch Specification Version 1.0.0, Open Networking Foundation, dated Dec. 31, 2009. |
OpenFow Switch Specification Version 1.3.0, Open Networking Foundation, dated Jun. 25, 2012. |
OpenFow Switch Specification Version 1.4.0, Open Networking Foundation, dated Oct. 14, 2013. |
OpenFow Switch Specification Version 1.5.0, Open Networking Foundation, dated Dec. 19, 2014. |
OpenFow Switch Specification Version 1.5.1, Open Networking Foundation, dated Mar. 26, 2015. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11140209B2 (en) | 2016-05-31 | 2021-10-05 | Ribbon Communications Operating Company, Inc. | Highly scalable methods and apparatus for balancing sip loads across a cluster of sip processing entities |
US11706135B2 (en) | 2021-03-11 | 2023-07-18 | Ribbon Communications Operating Company, Inc. | Communications methods, apparatus and systems for providing efficient and scalable media services |
Also Published As
Publication number | Publication date |
---|---|
US20180337862A1 (en) | 2018-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10944680B2 (en) | Communications methods and apparatus | |
US10938711B2 (en) | Communications methods, apparatus and systems for providing scalable media services in SDN systems | |
US20210135978A1 (en) | Intelligent adaptive transport layer to enhance performance using multiple channels | |
US10263951B2 (en) | Network address family translation method and system | |
US9407557B2 (en) | Methods and systems to split equipment control between local and remote processing units | |
US9596173B2 (en) | Method and system for traffic pattern generation in a software-defined networking (SDN) system | |
CN114009089B (en) | Estimating quality metrics of delay sensitive traffic flows in a communication network | |
Montazerolghaem et al. | OpenSIP: Toward software-defined SIP networking | |
US11706135B2 (en) | Communications methods, apparatus and systems for providing efficient and scalable media services | |
US10469559B2 (en) | Quality of service for web real-time communication networks | |
WO2019012546A1 (en) | Efficient load balancing mechanism for switches in a software defined network | |
Adami et al. | Towards an SDN network control application for differentiated traffic routing | |
WO2018150223A1 (en) | A method and system for identification of traffic flows causing network congestion in centralized control plane networks | |
Caraguay et al. | Framework for optimized multimedia routing over software defined networks | |
Karrakchou et al. | EP4: An application-aware network architecture with a customizable data plane | |
Zaw | Delay-Aware Elephant Flow Rerouting in Software-Defined Networking (SDN) | |
Alharbi | SDN-based mechanisms for provisioning quality of service to selected network flows | |
Wibowo | Automatic provisioning in multi-domain software defined networking | |
Gandotra et al. | NFEH: An SDN Framework for Containerized Network Function-enabled End Hosts | |
Emmanuel | Proposed New SD-WAN Architecture to Facilitate Dynamic Load Balancing | |
Lin et al. | Software-defined networking (SDN) for cloud applications | |
Kfoury | Leveraging Programmable Switches to Enhance the Performance of Networks: Active and Passive Deployments | |
Zhang et al. | Multipath transport based on application-level relay service and traffic optimization | |
Santos | Flexible Software-Defined Networks | |
WO2024189410A1 (en) | Method and system for data processing pipeline planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: SONUS, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GAHLAUT, SIDDHARTH;REEL/FRAME:044169/0622 Effective date: 20171116 Owner name: SONUS, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHARMA, ASHISH;BOLLAPALLI, NAGESH KUMAR;REEL/FRAME:044483/0855 Effective date: 20171113 |
|
AS | Assignment |
Owner name: SONUS NETWORKS, INC., MASSACHUSETTS Free format text: CHANGE OF NAME;ASSIGNOR:SONUS, INC.;REEL/FRAME:044957/0213 Effective date: 20171128 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNORS:GENBAND US LLC;SONUS NETWORKS, INC.;REEL/FRAME:044978/0801 Effective date: 20171229 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: SECURITY INTEREST;ASSIGNORS:GENBAND US LLC;SONUS NETWORKS, INC.;REEL/FRAME:044978/0801 Effective date: 20171229 |
|
AS | Assignment |
Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC., MASSACHUSETTS Free format text: CHANGE OF NAME;ASSIGNOR:SONUS NETWORKS, INC.;REEL/FRAME:048078/0036 Effective date: 20181220 Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC., MAS Free format text: CHANGE OF NAME;ASSIGNOR:SONUS NETWORKS, INC.;REEL/FRAME:048078/0036 Effective date: 20181220 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: FIRST SUPPLEMENT TO SECURITY AGREEMENT;ASSIGNORS:GENBAND US LLC;RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.;REEL/FRAME:049035/0939 Effective date: 20190429 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: FIRST SUPPLEMENT TO SECURITY AGREEMENT;ASSIGNORS:GENBAND US LLC;RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.;REEL/FRAME:049035/0939 Effective date: 20190429 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALI Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE PREVIOUSLY RECORDED ON REEL 049035 FRAME 0939. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST SUPPLEMENT TO PATENT SECURITY AGREEMENT;ASSIGNORS:GENBAND US LLC;RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.;REEL/FRAME:050705/0001 Effective date: 20190429 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE PREVIOUSLY RECORDED ON REEL 049035 FRAME 0939. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST SUPPLEMENT TO PATENT SECURITY AGREEMENT;ASSIGNORS:GENBAND US LLC;RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.;REEL/FRAME:050705/0001 Effective date: 20190429 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT, MASSACHUSETTS Free format text: SECURITY INTEREST;ASSIGNOR:RIBBON COMMUNICATIONS OPERATING COMPANY, INC.;REEL/FRAME:052076/0905 Effective date: 20200303 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.), MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:058949/0497 Effective date: 20200303 Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.), MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF FIRST SUPPLEMENT OT PATENT SECURITY AGREEMENT AT R/F 049035/0939;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:058740/0265 Effective date: 20200303 |
|
AS | Assignment |
Owner name: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.), MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIZENS BANK, N.A.;REEL/FRAME:067822/0433 Effective date: 20240620 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |