<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Telecom R &#38; D</title>
	<atom:link href="https://telecom.altanai.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://telecom.altanai.com</link>
	<description>WebRTC , SIP , IMS, VoLTE , SaaS , SBC , REST , Cloud , IOT , media Streams</description>
	<lastBuildDate>Wed, 18 Mar 2026 01:08:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">51969632</site><cloud domain='telecom.altanai.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://secure.gravatar.com/blavatar/21cc9f0c24488201ce8b991b56333b01afc4a667f2fca750d814c8c26d37dfdf?s=96&#038;d=https%3A%2F%2Fs0.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Telecom R &#038; D</title>
		<link>https://telecom.altanai.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://telecom.altanai.com/osd.xml" title="Telecom R &#38; D" />
	<atom:link rel='hub' href='https://telecom.altanai.com/?pushpress=hub'/>
	<item>
		<title>OBS Studio + WebRTC: Building and Testing Ultra-Low Latency Streaming</title>
		<link>https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/</link>
					<comments>https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 23:45:04 +0000</pubDate>
				<category><![CDATA[WHIP and WHEP]]></category>
		<category><![CDATA[adaptive bitrate]]></category>
		<category><![CDATA[audio codecs]]></category>
		<category><![CDATA[broadcast]]></category>
		<category><![CDATA[browser streaming]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[Chrome WebRTC internals]]></category>
		<category><![CDATA[conference streaming]]></category>
		<category><![CDATA[frame rate]]></category>
		<category><![CDATA[HTTP streaming]]></category>
		<category><![CDATA[libdatachannel]]></category>
		<category><![CDATA[live streaming]]></category>
		<category><![CDATA[low-latency video]]></category>
		<category><![CDATA[Media server]]></category>
		<category><![CDATA[NAT traversal]]></category>
		<category><![CDATA[OBS Studio]]></category>
		<category><![CDATA[quality metrics]]></category>
		<category><![CDATA[real-time media]]></category>
		<category><![CDATA[RFC 9725]]></category>
		<category><![CDATA[rtsp]]></category>
		<category><![CDATA[sdp]]></category>
		<category><![CDATA[ultra-low latency]]></category>
		<category><![CDATA[WebRTC]]></category>
		<category><![CDATA[WHEP]]></category>
		<category><![CDATA[WHIP]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=8099</guid>

					<description><![CDATA[OBS Studio is a powerful open-source tool for streaming and recording, now enhanced with WebRTC's WHIP and WHEP protocols. These protocols simplify WebRTC implementations by enabling seamless stream ingestion and playback over HTTP, eliminating complex signaling. Users benefit from low latency and improved functionality, making real-time media interactions more efficient.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">OBS Studio (Open Broadcaster Software) has been my go-to tool for video streaming and recording for years. It&#8217;s an absolutely&nbsp;<strong>awesome open-source project</strong>&nbsp;that powers everything from live gaming streams to professional broadcasts. The flexibility, plugin ecosystem, and cross-platform support make it indispensable for anyone working with real-time media.</p>



<p class="wp-block-paragraph">It&#8217;s been quite a while since I last built OBS from source and really dove into its internals. With the recent addition of <strong>WebRTC  WHIP/WHEP protocols</strong>, I wanted to revisit the project and test out this exciting new capability. Having attended IETF meetings where these draft specifications were being developed, I was particularly excited to see them implemented in production software.</p>



<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/#about-whip-and-whep">About WHIP and WHEP</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/#so-why-these-protocols-matter">So Why These Protocols Matter ?</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/#download-mediamtx-and-run-the-server-no-configuration-needed">Download mediamtx and Run the server (no configuration needed!)</a></li></ol>



<h3 id="about-whip-and-whep" class="wp-block-heading">About WHIP and WHEP</h3>



<p class="wp-block-paragraph"><strong>WHIP (WebRTC-HTTP Ingestion Protocol)</strong> and <strong>WHEP (WebRTC-HTTP Egress Protocol)</strong> are IETF draft standards </p>



<ul id="pragma-line-14" class="wp-block-list">
<li><strong>WHIP (RFC 9725):</strong> <a href="https://datatracker.ietf.org/doc/rfc9725/">https://datatracker.ietf.org/doc/rfc9725/</a> &#8211; <strong>Published Standard</strong> for WebRTC stream ingestion via HTTP</li>



<li><strong>WHEP (Internet-Draft):</strong> <a href="https://datatracker.ietf.org/doc/draft-ietf-wish-whep/">https://datatracker.ietf.org/doc/draft-ietf-wish-whep/</a> &#8211; Tries to standardize WebRTC stream distribution via HTTP.</li>
</ul>



<h3 id="so-why-these-protocols-matter" class="wp-block-heading">So Why These Protocols Matter ?</h3>



<p class="wp-block-paragraph">From the IETF specifications, these protocols were designed to address fundamental challenges in WebRTC deployment:</p>



<p class="wp-block-paragraph"><strong>WHIP (RFC 9725)&#8217;s objective </strong>is to Provide a <strong>simple HTTP-based protocol</strong> for WebRTC stream ingestion that eliminate the need for custom signaling protocols and WebSocket connections. This enable <strong>interoperability</strong> between encoders and media servers from different vendors and also support <strong>authentication and authorization</strong> through standard HTTP mechanisms (Bearer tokens). Similarly, it provides a standardized way to terminate sessions via HTTP DELETE</p>



<p class="wp-block-paragraph"><strong>WHEP (Draft) Objective</strong> is to mirror WHIP&#8217;s simplicity for the playback/egress side. So it aims to enable one-to-many broadcasting scenarios with WebRTC while supporting adaptive bitrate through simulcast and scalable video coding. Note that unlike WHIP, WHEP ( at the time of writing this article) is only a draft document submitted, which describes simple HTTP-based protocol for WebRTC based viewers to watch content from streaming services and/or Content Delivery Networks (CDNs) or WebRTC Transmission Network (WTNs).</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<h2 id="1-build-obs-studio-from-source" class="wp-block-heading">1. Build OBS Studio from Source</h2>



<p class="wp-block-paragraph">Instead of using pre-built OBS binaries its kinda great to compile it from scratch. The build process is surprisingly smooth thanks to CMake, though the initial setup requires downloading dependencies.</p>



<p class="wp-block-paragraph"><strong>Note:</strong>&nbsp;I&#8217;m using Visual Studio 2026 (18.4.0) on Windows, but OBS builds on Linux and macOS as well.</p>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line"># Configure CMake (downloads dependencies automatically)</div><div class="cm-line">cmake -S . -B build_x64</div><div class="cm-line"></div><div class="cm-line"># Build the project (parallel build speeds things up significantly)</div><div class="cm-line">cmake --build build_x64 --config Release --parallel</div><div class="cm-line"></div></code></pre>
		</div>
	</div>
</div>


<p class="wp-block-paragraph"><strong>Result:</strong>&nbsp;OBS executable at&nbsp;<code>build_x64/rundir/Release/bin/64bit/obs64.exe</code></p>



<pre class="wp-block-preformatted">build_x64/<br>├── frontend/<br>│   └── Release/<br>│       └── obs64.exe          ← Build output<br>└── rundir/<br>    └── Release/<br>        └── bin/<br>            └── 64bit/<br>                └── obs64.exe  ← Final runtime location </pre>



<p class="wp-block-paragraph">The build includes the&nbsp;<code>obs-webrtc</code>&nbsp;plugin by default, which is what we&#8217;ll be testing. This plugin leverages&nbsp;<strong>libdatachannel</strong>&nbsp;for WebRTC implementation and supports the WHIP protocol natively.</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<h2 id="2-run-obs-studio" class="wp-block-heading"><a></a>2. Run OBS Studio</h2>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line">Start-Process &quot;build_x64\rundir\Release\bin\64bit\obs64.exe&quot; -WorkingDirectory &quot;build_x64\rundir\Release\bin\64bit&quot;</div></code></pre>
		</div>
	</div>
</div>


<p class="wp-block-paragraph"><strong>Verify:</strong> Check<code> $env:APPDATA\obs-studio\logs</code> for runtime logs<br></p>



<pre class="wp-block-preformatted">=== Latest Log: 2026-03-17 09-29-36.txt ===<br>15:23:03.742:   id: \\?\DISPLAY#AUS270B#5&amp;6875e40&amp;1&amp;UID4353#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}<br>15:23:03.742:   alt_id: \\.\DISPLAY1<br>15:23:03.742:   setting_id: \\?\DISPLAY#AUS270B#5&amp;6875e40&amp;1&amp;UID4353#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}<br>15:23:03.742:   force SDR: false<br>15:23:06.642: [duplicator-monitor-capture: 'Display Capture'] update settings:<br>15:23:06.642:   display:  (0x0)<br>15:23:06.642:   cursor: true<br>15:23:06.642:   method: WGC<br>15:23:06.642:   id:<br>15:23:06.642:   alt_id:<br>15:23:06.642:   setting_id: DUMMY<br>15:23:06.642:   force SDR: false<br>15:23:17.226: User added source 'Video Capture Device' (dshow_input) to scene 'Scene'<br>15:23:17.235: Video Capture Device: DecodeDeviceId failed<br>15:23:17.235: Video Capture Device: Video configuration failed<br>15:23:17.480: ---------------------------------<br>15:23:17.480: [DShow Device: 'Video Capture Device'] settings updated:<br>15:23:17.480:   video device: HD Webcam eMeet C960<br>15:23:17.480:   video path: \\?\usb#vid_328f&amp;pid_003f&amp;mi_00#9&amp;124b7a38&amp;0&amp;0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global<br>15:23:17.480:   resolution: 640x480<br>15:23:17.480:   flip: 0<br>15:23:17.480:   fps: 30.00 (interval: 333333)<br>15:23:17.480:   format: YUY2<br>15:23:17.480:   buffering: disabled<br>15:23:17.480:   hardware decode: disabled<br>15:24:04.545: Loading branches from file failed: Opening file failed.<br>15:37:57.050: Max audio buffering reached!<br>15:37:57.050: adding 917 milliseconds of audio buffering, total audio buffering is now 960 milliseconds (source: Desktop Audio)<br>15:37:57.050:<br>15:37:57.071: Source Desktop Audio audio is lagging (over by 834667.38 ms) at max audio buffering. Restarting source audio.</pre>



<h2 id="3-setup-whip-server-mediamtx" class="wp-block-heading">3. Setup WHIP Server (mediamtx)</h2>



<p class="wp-block-paragraph">OBS Studio&#8217;s <code>obs-webrtc</code> plugin implements <strong>WHIP</strong>, which requires a server to:</p>



<ol id="pragma-line-95" class="wp-block-list">
<li><strong>Receive WebRTC streams</strong> from OBS via HTTP POST with SDP offer/answer negotiation</li>



<li><strong>Handle ICE/STUN/TURN</strong> for NAT traversal and peer connection setup (including trickle ICE support)</li>



<li><strong>Redistribute streams</strong> to viewers via <strong>WHEP (WebRTC-HTTP Egress Protocol)</strong>  (TODO)</li>



<li><strong>Manage session lifecycle</strong> &#8211; HTTP DELETE terminates sessions </li>



<li><strong>Support authentication</strong> via HTTP Bearer tokens</li>



<li><strong>Enable load balancing</strong> through HTTP 307 redirects</li>
</ol>



<p class="wp-block-paragraph">Unlike traditional RTMP servers, WHIP servers should enable &lt;1s using WebRTC&#8217;s RTP transport. Having been part of the IETF discussions that shaped these protocols, it&#8217;s fascinating to see the design decisions translate into real-world performance benefits. So I expect to just HTTP POST my SDP offer to the WHIP endpoint, get back a 201 Created with SDP answer and resource Location, and be streaming. No complex WebSocket signaling, no custom protocols.</p>



<h3 id="download-mediamtx-and-run-the-server-no-configuration-needed" class="wp-block-heading">Download mediamtx and Run the server (no configuration needed!)</h3>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line">Invoke-WebRequest -Uri &quot;https://github.com/bluenviron/mediamtx/releases/download/v1.8.4/mediamtx_v1.8.4_windows_amd64.zip&quot; -OutFile &quot;mediamtx.zip&quot;</div><div class="cm-line">Expand-Archive -Path &quot;mediamtx.zip&quot; -DestinationPath &quot;mediamtx&quot;</div><div class="cm-line"></div><div class="cm-line">cd mediamtx</div><div class="cm-line">.\mediamtx.exe</div><div class="cm-line"></div></code></pre>
		</div>
	</div>
</div>


<p class="wp-block-paragraph"><strong>Default Ports:</strong></p>



<ul id="pragma-line-171" class="wp-block-list">
<li>WHIP endpoint: <code>http://localhost:8889/{stream}/whip</code></li>



<li>WHEP endpoint: <code>http://localhost:8889/{stream}/whep</code></li>



<li>RTSP: <code>rtsp://localhost:8554/{stream}</code></li>



<li>HLS: <code>http://localhost:8888/{stream}</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Configuration:</strong>&nbsp;mediamtx works out-of-the-box. For advanced settings, edit&nbsp;<code>mediamtx.yml</code></p>



<p class="wp-block-paragraph">Logs snippet</p>



<pre class="wp-block-preformatted">2026/03/17 09:23:05 INF MediaMTX v1.8.4<br>2026/03/17 09:23:05 INF configuration loaded from C:\Users\altan\Downloads\OBS\obs-studio\mediamtx\mediamtx.yml<br>2026/03/17 09:23:05 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)<br>2026/03/17 09:23:05 INF [RTMP] listener opened on :1935<br>2026/03/17 09:23:05 INF [HLS] listener opened on :8888<br>2026/03/17 09:23:05 INF [WebRTC] listener opened on :8889 (HTTP), :8189 (ICE/UDP)<br>2026/03/17 09:23:05 INF [SRT] listener opened on :8890 (UDP)<br>2026/03/17 09:23:40 INF [WebRTC] [session 4c95bc04] created by [::1]:64696<br>2026/03/17 09:23:40 INF [WebRTC] [session 4c95bc04] closed: no one is publishing to path 'mystream'<br>2026/03/17 09:29:56 INF [WebRTC] [session b15a4fef] created by [::1]:53070<br>2026/03/17 09:29:56 INF [WebRTC] [session b15a4fef] closed: no one is publishing to path 'mystream'<br>2026/03/17 09:29:57 INF [WebRTC] [session 4f42ee65] created by [::1]:53070<br>2026/03/17 09:29:57 INF [WebRTC] [session 4f42ee65] closed: no one is publishing to path 'mystream'<br>2026/03/17 16:15:33 INF [WebRTC] [session b1cfc835] created by [::1]:57732<br>2026/03/17 16:15:34 INF [WebRTC] [session b1cfc835] peer connection established, local candidate: host/udp/192.168.68.90/8189, remote candidate: prflx/udp/169.254.197.35/55983<br>2026/03/17 16:15:35 INF [WebRTC] [session b1cfc835] is publishing to path 'mystream', 2 tracks (Opus, H264)<br>2026/03/17 16:16:48 INF [WebRTC] [session 079d3b5c] created by [::1]:58062<br>2026/03/17 16:16:48 INF [WebRTC] [session 079d3b5c] peer connection established, local candidate: host/udp/169.254.197.35/8189, remote candidate: prflx/udp/169.254.197.35/64607<br>2026/03/17 16:16:48 INF [WebRTC] [session 079d3b5c] is reading from path 'mystream', 2 tracks (Opus, H264)</pre>



<h2 id="4-create-html-test-player" class="wp-block-heading">4. Create HTML Test Player</h2>



<p class="wp-block-paragraph">Create <code>test-webrtc-playback.html</code> with WebRTC player </p>



<p class="wp-block-paragraph"><a href="https://github.com/altanai/quiche-webtransport-playground/blob/main/test-webrtc-playback.html">quiche-webtransport-playground/test-webrtc-playback.html at main · altanai/quiche-webtransport-playground</a></p>



<h2 id="5-configure-obs-for-whip-streaming" class="wp-block-heading">5. Configure OBS for WHIP Streaming</h2>



<p class="wp-block-paragraph">Now comes the exciting part—configuring OBS to use WHIP instead of traditional RTMP. </p>



<ol id="pragma-line-195" class="wp-block-list">
<li>Open OBS Studio</li>



<li>Add a source (Display Capture, Window Capture, your cat whatever..)</li>



<li><strong>Settings</strong> → <strong>Stream</strong>
<ul class="wp-block-list">
<li>Service: <code>WHIP</code> </li>



<li>Server: <code>http://localhost:8889/mystream/whip</code></li>



<li>Bearer Token: <em>(leave empty for local testing)</em></li>
</ul>
</li>



<li>Click <strong>Apply</strong> → <strong>OK</strong></li>



<li>Click <strong>Start Streaming</strong></li>
</ol>



<p class="wp-block-paragraph">Behind the scenes, OBS performs an HTTP POST to the WHIP endpoint with an SDP offer containing:</p>



<ul id="pragma-line-205" class="wp-block-list">
<li>Codec information (H.264/HEVC/AV1 for video, Opus for audio)</li>



<li>ICE candidates for network traversal</li>



<li>Media stream IDs and track information</li>
</ul>



<figure class="wp-block-image size-large"><img data-attachment-id="8117" data-permalink="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/image-99/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png" data-orig-size="962,749" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=863" width="962" height="749" src="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=962" alt="" class="wp-image-8117" srcset="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png 962w, https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=768 768w" sizes="(max-width: 962px) 100vw, 962px" /><figcaption class="wp-element-caption">hmmmm&#8230;..</figcaption></figure>



<p class="wp-block-paragraph">The server responds with an SDP answer, and the WebRTC peer connection is established. Simple.</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<h2 id="6-test-playback-with-whep" class="wp-block-heading"><a></a>6. Test Playback with WHEP</h2>



<p class="wp-block-paragraph">The viewer side uses&nbsp;<strong>WHEP (WebRTC-HTTP Egress Protocol)</strong>, the companion spec to WHIP. Just as WHIP simplifies publishing, WHEP makes playback straightforward.</p>



<ol id="pragma-line-217" class="wp-block-list">
<li>In the browser (test-webrtc-playback.html)</li>



<li>WHEP URL: <code>http://localhost:8889/mystream/whep</code></li>



<li>Click <strong>Connect</strong></li>



<li>Stream should appear with <strong>&lt;1 second latency</strong></li>
</ol>



<p class="wp-block-paragraph">The HTML player performs an HTTP POST to the WHEP endpoint with its SDP offer, receives the server&#8217;s answer, and establishes a WebRTC peer connection. No proprietary protocols,—just standardized WebRTC in the browser.</p>



<p class="wp-block-paragraph"><strong>What you&#8217;ll experience:</strong> </p>



<figure class="wp-block-image size-large"><img data-attachment-id="8119" data-permalink="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/image-100/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png" data-orig-size="1845,889" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=863" width="1024" height="493" src="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=1024" alt="" class="wp-image-8119" srcset="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=1440 1440w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png 1845w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Near-instantaneous stream start + Smooth playback at your source framerate</p>



<p class="wp-block-paragraph">Smooth and crisp SDP exchange </p>



<figure class="wp-block-image size-large"><img data-attachment-id="8129" data-permalink="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/image-103/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png" data-orig-size="1119,609" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=863" width="1024" height="557" src="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=1024" alt="" class="wp-image-8129" srcset="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png 1119w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Also Real-time stats showing bytes received, packet loss, jitter + True interactive latency for two-way communication use cases</p>



<pre class="wp-block-preformatted">AUDIO: 2.10 MB, 6651 packets, 0 lost, jitter: 10.00ms | VIDEO: 95.30 MB, 90393 packets, 0 lost, jitter: 23.00m</pre>



<p class="wp-block-paragraph">Or goto chrome://webrtc-internals for the detailed view </p>



<pre class="wp-block-preformatted">Statistics IT01V4267985642<br>timestamp	3/17/2026, 4:28:01 PM	<br>bytesReceived	505663558	<br>codecId	CIT01_109_level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f	<img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>decoderImplementation	ExternalDecoder (D3D11VideoDecoder)	<br>estimatedPlayoutTimestamp	3982778881401	<br>firCount	0	<br>frameHeight	720	<br>frameWidth	1280	<br>framesAssembledFromMultiplePackets	20141	<br>framesDecoded	20142	<br>framesDropped	0	<br>framesPerSecond	30	<br>framesReceived	20146	<br>freezeCount	0	<br>headerBytesReceived	5478960	<br>jitter	0.023	<br>jitterBufferDelay	1935.284545	<br>jitterBufferEmittedCount	20142	<br>jitterBufferMinimumDelay	1447.6261889999998	<br>jitterBufferTargetDelay	1924.9337189999999	<br>keyFramesDecoded	81	<br>kind	video	<br>lastPacketReceivedTimestamp	1773790082077.461	<br>mid	0	<br>minPlayoutDelay	0.113	<br>nackCount	0	<br>packetsLost	0	<br>packetsReceived	456580	<br>packetsReceivedWithCe	0	<br>packetsReceivedWithEct1	0	<br>pauseCount	0	<br>pliCount	10	<br>powerEfficientDecoder	true	<br>remoteId	ROV4267985642	<img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>ssrc	4267985642	<br>totalAssemblyTime	4.002161	<br>totalDecodeTime	7.443236	<br>totalFreezesDuration	0	<br>totalInterFrameDelay	671.397	<br>totalPausesDuration	0	<br>totalProcessingDelay	1943.1741359999999	<br>totalSquaredInterFrameDelay	23.392953000002198	<br>trackIdentifier	cd91177d-1b57-458a-9598-945f1b11ab23	<br>transportId	T01	<img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>type	inbound-rtp	<br>[framesReceived-framesDecoded-framesDropped]	4	<br>[codec]	H264 (109, level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f)	<br>[lastPacketReceivedTimestamp]	3/17/2026, 4:28:02 PM	<br>[estimatedPlayoutTimestamp]	3/17/2026, 4:28:01 PM	<br>[bytesReceived_in_bits/s]	5796213	<br>[headerBytesReceived_in_bits/s]	63158	<br>[framesReceived/s]	28.995384523752566	<br>[framesDecoded/s]	29.995225369399208	<br>[keyFramesDecoded/s]	0	<br>[totalDecodeTime/framesDecoded_in_ms]	0.30120000000000147	<br>[totalInterFrameDelay/framesDecoded_in_ms]	33.10000000000173	<br>[interFrameDelayStDev_in_ms]	5.855766388792323	<br>[jitterBufferDelay/jitterBufferEmittedCount_in_ms]	109.5702666666663	<br>[jitterBufferTargetDelay/jitterBufferEmittedCount_in_ms]	102.99999999999727	<br>[jitterBufferMinimumDelay/jitterBufferEmittedCount_in_ms]	75.22246666666585	<br>[totalProcessingDelay/jitterBufferEmittedCount_in_ms]	109.89603333333282	<br>[totalAssemblyTime/framesAssembledFromMultiplePackets_in_ms]	</pre>



<p class="wp-block-paragraph">This is a massive improvement over traditional HLS (5-30s latency) or even Low-Latency HLS (2-4s). Btw seeing it work end-to-end is incredibly satisfying.</p>



<p class="wp-block-paragraph">If you are still reading then here is the Architecture <br></p>



<figure class="wp-block-image size-large"><img data-attachment-id="8121" data-permalink="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/image-102/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png" data-orig-size="757,115" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=757" loading="lazy" width="757" height="115" src="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=757" alt="" class="wp-image-8121" srcset="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png 757w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=300 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>



<p class="wp-block-paragraph">Endpoints</p>



<ul id="pragma-line-254" class="wp-block-list">
<li><strong>OBS WebSocket:</strong> <code>ws://localhost:4455</code> (for API control)</li>



<li><strong>WHIP Ingest:</strong> <code>http://localhost:8889/mystream/whip</code> (publish)</li>



<li><strong>WHEP Playback:</strong> <code>http://localhost:8889/mystream/whep</code> (view)</li>
</ul>



<p class="wp-block-paragraph">Ports</p>



<pre class="wp-block-preformatted"> Get-NetTCPConnection -LocalPort 8889,4455<br><br>LocalAddress                        LocalPort RemoteAddress                       RemotePort State       AppliedSetting<br>------------                        --------- -------------                       ---------- -----       --------------<br>::1                                 8889      ::1                                 58062      Established Internet<br>::                                  8889      ::                                  0          Listen<br>::                                  4455      ::                                  0          Listen<br></pre>



<p class="wp-block-paragraph">I also made a stats heavy page for latency testing ( also found in the rep o<a href="https://github.com/altanai/quiche-webtransport-playground">quiche-webtransport-playground/test-webrtc-playback.html at main · altanai/quiche-webtransport-playground</a> )<br></p>



<figure class="wp-block-image size-large"><img data-attachment-id="8134" data-permalink="https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/image-107/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png" data-orig-size="1408,898" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=863" loading="lazy" width="1024" height="653" src="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=1024" alt="" class="wp-image-8134" srcset="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png 1408w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">So if you are testing things in the wild remember these key Metrics to Watch:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metric</th><th>Good</th><th>Warning</th><th>Bad</th></tr></thead><tbody><tr><td><strong>Packet Loss</strong></td><td>0%</td><td>&lt;1%</td><td>&gt;1%</td></tr><tr><td><strong>Jitter</strong></td><td>&lt;10ms</td><td>10-30ms</td><td>&gt;30ms</td></tr><tr><td><strong>RTT</strong></td><td>&lt;50ms</td><td>50-150ms</td><td>&gt;150ms</td></tr><tr><td><strong>Bitrate</strong></td><td>Stable</td><td>Fluctuating</td><td>Dropping</td></tr></tbody></table></figure>



<h2 id="resources-further-reading" class="wp-block-heading">Resources &amp; Further Reading</h2>



<ul id="pragma-line-320" class="wp-block-list">
<li><strong>OBS Studio:</strong> <a href="https://obsproject.com">https://obsproject.com</a> &#8211; Amazing open-source streaming software</li>



<li><strong>WHIP Spec (IETF):</strong> <a href="https://datatracker.ietf.org/doc/draft-ietf-wish-whip/">https://datatracker.ietf.org/doc/draft-ietf-wish-whip/</a> &#8211; WebRTC-HTTP Ingestion Protocol</li>



<li><strong>WHEP Spec (IETF):</strong> <a href="https://datatracker.ietf.org/doc/draft-murillo-whep/">https://datatracker.ietf.org/doc/draft-murillo-whep/</a> &#8211; WebRTC-HTTP Egress Protocol</li>



<li><strong>mediamtx:</strong> <a href="https://github.com/bluenviron/mediamtx">https://github.com/bluenviron/mediamtx</a> &#8211; Excellent multi-protocol media server</li>



<li><strong>libdatachannel:</strong> <a href="https://github.com/paullouisageneau/libdatachannel">https://github.com/paullouisageneau/libdatachannel</a> &#8211; WebRTC library used by OBS</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2026/03/17/obs-studio-webrtc-building-and-testing-ultra-low-latency-streaming/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8099</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2026/03/image.png?w=962" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2026/03/image-1.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2026/03/image-4.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2026/03/image-3.png?w=757" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2026/03/image-8.png?w=1024" medium="image" />
	</item>
		<item>
		<title>Digital Rights Management (DRM)</title>
		<link>https://telecom.altanai.com/2025/12/12/digital-rights-management-drm/</link>
					<comments>https://telecom.altanai.com/2025/12/12/digital-rights-management-drm/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Fri, 12 Dec 2025 19:21:55 +0000</pubDate>
				<category><![CDATA[Auxiliary Technologies for VoIP]]></category>
		<category><![CDATA[Digital rights]]></category>
		<category><![CDATA[live streaming]]></category>
		<category><![CDATA[media players]]></category>
		<category><![CDATA[MoQ]]></category>
		<category><![CDATA[QUIC]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=7208</guid>

					<description><![CDATA[DRM empowers content owners and distributors to successfully manage ad sales rights, produce accurate inventory forecasts, optimize for maximum revenue, deliver yield-optimized ads, and analyze video business performance. Why DRM Still Matters Piracy tooling now targets low-latency and browser-delivered streams, not just VOD assets. Modern stacks blend real-time WebRTC, near-real-time LL-HLS/DASH on QUIC, and traditional &#8230; <a href="https://telecom.altanai.com/2025/12/12/digital-rights-management-drm/" class="more-link">Continue reading <span class="screen-reader-text">Digital Rights Management&#160;(DRM)</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DRM empowers content owners and distributors to successfully manage ad sales rights, produce accurate inventory forecasts, optimize for maximum revenue, deliver yield-optimized ads, and analyze video business performance.</p>



<h2 class="wp-block-heading" id="why-drm-still-matters">Why DRM Still Matters</h2>



<p class="wp-block-paragraph">Piracy tooling now targets low-latency and browser-delivered streams, not just VOD assets. Modern stacks blend real-time WebRTC, near-real-time LL-HLS/DASH on QUIC, and traditional HLS/DASH, so protection must span all three delivery modes. Regulatory and contractual controls such as windowing, geography, and device caps also demand auditable enforcement, not only encryption.</p>



<p class="wp-block-paragraph">Encrypted Media Extensions (EME) is the browser API that lets a web page request protected playback, obtain licenses, and control keys; it is implemented in major browsers and delegates to a platform Content Decryption Module (CDM). CDMs—such as Widevine (Google), PlayReady (Microsoft), and FairPlay (Apple)—are the trusted components that receive licenses, decrypt media, and enforce policy like output protection, HDCP, secure decode, offline rules, renewal, and revocation. EME mediates access from JavaScript, the CDM enforces rights below the page (often in a sandbox or TEE), and the license server encodes the business rules, making EME+CDM the delivery and enforcement surface for browser-based DRM.</p>



<h2 class="wp-block-heading" id="other-live-streaming-frameworks">DRM in major Live Streaming Frameworks</h2>



<p class="wp-block-paragraph">Low-latency HLS and low-latency DASH over HTTP/2 or HTTP/3 still rely on EME with CENC and the same license services; the differentiators are shorter segment parts, tighter token expirations, and the need for license issuance fast enough to keep up with part delivery. </p>



<p class="wp-block-paragraph">HESP (High Efficiency Streaming Protocol) trades startup and channel-change latency for chunked CMAF delivery, using standard CENC licenses, so part-level entitlement and rapid license response times are the main DRM levers. </p>



<p class="wp-block-paragraph">Contribution protocols like SRT and RIST carry mezzanine feeds into the packager and do not provide DRM; security depends on transport encryption plus authentication before repackaging into HLS/DASH/CMAF. </p>



<p class="wp-block-paragraph">Emerging browser-facing paths such as WHIP/WHEP (WebRTC ingest/egress) and WebTransport/WebCodecs inherit WebRTC’s DRM gap: you need application-layer entitlement, SFrame or equivalent end-to-end encryption, and watermarking to deter capture or restreams.</p>



<h2 class="wp-block-heading" id="considerations-in-digital-rights-for-webrtc-streams">Considerations in Digital Rights for WebRTC Streams</h2>



<p class="wp-block-paragraph">WebRTC has no built-in Encrypted Media Extensions (EME) or Content Decryption Module (CDM) path; media is typically SRTP with DTLS keying, so DRM-like controls live at the application layer on top of encryption. Premium content is often handled through server-side rendering to an EME-capable player or via insertable streams with SFrame to keep media encrypted through SFUs while enforcing policy in the app.</p>



<p class="wp-block-paragraph">Key challenges include per-participant entitlement, secure key distribution to endpoints, and preventing SFU-level leakage through recording or simulcast abuse. Mitigations hinge on short-lived keys, per-subscriber identities bound to signaling, watermarking (visible or forensic), device fingerprinting, and limiting resolution or track sets per entitlement.</p>



<h2 class="wp-block-heading" id="media-on-quic--http3">Consideration for DRM in Media on QUIC / HTTP/3</h2>



<p class="wp-block-paragraph">QUIC removes head-of-line blocking for CMAF, LL-HLS, and DASH, while the DRM layer generally remains CENC (Widevine/PlayReady/FairPlay) delivered via EME in browsers or native SDKs. Effective setups rely on frequent key rotation on live edges, signed URLs or cookies tied to viewer identity, and license TTLs aligned to segment windows. Operators must watch for partial object caching issues with CDNs that do not fully support HTTP/3 and for player fallbacks to TCP/HTTP2 where latency-sensitive anti-piracy rules can weaken. QUIC datagrams for media (WebTransport/WebCodecs) are emerging, but there is no standardized DRM story yet, so most implementations still encapsulate EME-backed playback for protected content.</p>



<p class="wp-block-paragraph">Packagers work best with CMAF and CENC, typically using cbcs for Apple ecosystems, with aligned initialization data across ABR ladders to simplify license acquisition. Players such as Shaka Player, dash.js, ExoPlayer, AVFoundation, and WebKit EME depend on license servers, and consistency in robustness levels (L1 vs L3) by device class is essential. License services are often centralized—either through multi-DRM vendors or native KMS-backed services—and must enforce concurrency, device registration, and geo/IP/ASN allow/deny logic. Observability should trace license requests, key rotation cadence, and playback errors and tie these signals to watermarking hits to respond quickly to restreams.</p>



<h2 class="wp-block-heading" id="references">References</h2>



<p class="wp-block-paragraph">W3C Encrypted Media Extensions (EME) specification; IETF SFrame (draft-ietf-sframe-enc) for end-to-end encryption in WebRTC; IETF QUIC (RFC 9000) and HTTP/3 (RFC 9114) for transport of CMAF/LL-HLS/DASH; CTA-5001 Common Media Application Format (CMAF); Apple Low-Latency HLS (LL-HLS) specification; DASH-IF Interoperability Points (IOP) for live or low-latency streaming; HESP Alliance specification; SRT and RIST protocol specifications for contribution transport; WHIP/WHEP drafts for WebRTC ingest/egress.</p>


]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2025/12/12/digital-rights-management-drm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7208</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2025/12/image.png" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/12/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>
	</item>
		<item>
		<title>Scalable Multicast Media Streaming Protocols</title>
		<link>https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/</link>
					<comments>https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Fri, 07 Feb 2025 23:07:00 +0000</pubDate>
				<category><![CDATA[Live Streaming and Broadcasting]]></category>
		<category><![CDATA[VOIP]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=6026</guid>

					<description><![CDATA[The guide explores multicast media streaming protocols crucial for telecommunications and content delivery networks. It details technologies like MLDP, HLS, DASH, SRT, and emerging solutions such as MoQ and WHEP, analyzing their advantages, disadvantages, use cases, and technical specifications to aid in choosing the optimal protocol for various scenarios.]]></description>
										<content:encoded><![CDATA[
<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#mldp-multipoint-label-distribution-protocol">MLDP (Multipoint Label Distribution Protocol)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#how-mldp-works">How MLDP Works</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#hls-http-live-streaming">HLS (HTTP Live Streaming)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages-1">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages-1">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-1">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#dash-dynamic-adaptive-streaming-over-http">DASH (Dynamic Adaptive Streaming over HTTP)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages-2">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages-2">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-2">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#srt-secure-reliable-transport">SRT (Secure Reliable Transport)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#key-technologies">Key Technologies</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages-3">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages-3">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#technical-details">Technical Details</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-3">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#rist-reliable-internet-stream-transport"> RIST ( Reliable Internet Stream Transport ) </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#core-features">Core Features</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#rist-profiles">RIST Profiles</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#associated-protocols">Associated Protocols</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages-4">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages-4">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#competitive-landscape">Competitive Landscape</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-4">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#moq-media-over-quic">MoQ( Media Over QUIC)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#architecture-overview">Architecture Overview</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#key-advantages-of-quic-foundation">Key Advantages of QUIC Foundation</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#media-over-quic-features">Media Over QUIC Features</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#webrtc-sfu-scalable-video-encoding-svc-for-low-latency-decoding">WebRTC SFU + Scalable Video Encoding (SVC) for low latency decoding </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#scalable-video-coding-svc">Scalable Video Coding (SVC)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#scalability-dimensions">Scalability Dimensions</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#what-is-sfu">Selective Forwarding Unit (SFU)</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-6">Use Cases</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#implementation-considerations">Implementation Considerations</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#fanout-multicast-anycast">Fanout Multicast / Anycast</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#whep-webrtc-http-egress-protocol">WHEP (WebRTC-HTTP Egress Protocol)</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#advantages-7">Advantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#disadvantages-7">Disadvantages</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#use-cases-7">Use Cases</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#protocol-comparison-matrix">Protocol Comparison Matrix</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#1-latency-scalability-tradeoff"> Latency-Scalability Tradeoff</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#references-1">References</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#rfc--international-standards">RFC &amp; International Standards</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#open-source-specifications">Open-Source Specifications</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/#industry-standards--working-groups">Industry Standards &amp; Working Groups</a></li></ol></li></ol>



<p class="wp-block-paragraph">Multicast media streaming has become essential for modern telecommunications, broadcasting, and content delivery networks. This guide explores the protocols and technologies that enable efficient, scalable distribution of media to multiple receivers simultaneously, from MPLS-based approaches to cutting-edge QUIC-based solutions.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Mature</th><th class="has-text-align-left" data-align="left">Growing</th><th class="has-text-align-left" data-align="left">Emerging</th></tr></thead><tbody><tr><td>HLS/DASH</td><td>SRT, RIST</td><td>MoQ, WHEP</td></tr><tr><td>MLDP</td><td>WHEP</td><td></td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="mldp-multipoint-label-distribution-protocol">MLDP (Multipoint Label Distribution Protocol)</h2>



<p class="wp-block-paragraph">MLDP is an MPLS-based multicast protocol designed for establishing multicast label switched paths (LSPs) in MPLS networks. It&#8217;s particularly suited for large-scale multicast delivery scenarios like IPTV, live video broadcasting, and enterprise multimedia applications.</p>



<h3 class="wp-block-heading" id="how-mldp-works">How MLDP Works</h3>



<ul class="wp-block-list">
<li>Uses label distribution to create multicast trees</li>



<li>Optimizes bandwidth by leveraging MPLS forwarding</li>



<li>Handles packet loss and congestion through sophisticated forwarding mechanisms</li>



<li>Establishes efficient multicast paths across provider networks</li>
</ul>



<h3 class="wp-block-heading" id="advantages">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Excellent scalability for handling multicast traffic across large networks<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Efficient bandwidth utilization through label switching<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Built-in packet loss and congestion handling via MPLS forwarding<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Proven in large carrier deployments</p>



<h3 class="wp-block-heading" id="disadvantages">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Higher latency compared to UDP-based approaches,  Less suitable for real-time, ultra-low-latency applications<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requires dedicated MPLS network infrastructure<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Complex configuration and management overhead</p>



<h3 class="wp-block-heading" id="use-cases">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>IPTV Networks</strong>: Primary protocol for carrier IPTV deployments</li>



<li><strong>Live Event Broadcasting</strong>: Sports and entertainment distribution</li>



<li><strong>Enterprise Multicast</strong>: Internal network content delivery</li>
</ul>



<h2 class="wp-block-heading" id="hls-http-live-streaming"><strong>HLS (HTTP Live Streaming)</strong></h2>



<p class="wp-block-paragraph">HLS is one of the most widely deployed HTTP-based streaming protocols, created by Apple and standardized through IETF (RFC 8216). It segments media content into fixed-duration chunks and delivers them over standard HTTP/HTTPS, making it highly compatible with existing CDN infrastructure and web technologies, but it faces competition from other streaming protocols due to certain limitations, including latenc , fragmented playback, bandwidth inefficiency and limited interactivity.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="681" data-attachment-id="7882" data-permalink="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/mermaid-diagram-2025-03-27-224243/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png" data-orig-size="2438,1622" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mermaid-diagram-2025-03-27-224243" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=1024" alt="" class="wp-image-7882" srcset="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=2048 2048w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=1440 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Diagram that shows ow media is segmented, distributed through an origin server and CDN, and consumed by Subscriber in HLS.</figcaption></figure>



<p class="wp-block-paragraph" id="architecture">Architecture</p>



<ul class="wp-block-list">
<li><strong>Media Segmentation</strong>: Content divided into 2-10 second segments</li>



<li><strong>Playlist Distribution</strong>: M3U8 playlist files guide client playback</li>



<li><strong>Progressive Download</strong>: Segments downloaded sequentially over HTTP</li>



<li><strong>CDN-Optimized</strong>: Works seamlessly with content delivery networks</li>
</ul>



<h3 class="wp-block-heading" id="advantages-1">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Exceptional CDN compatibility (optimal for OTT content distribution)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Works across firewalls (uses standard HTTP/HTTPS)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Cross-platform and device compatibility<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Simple implementation and deployment<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Proven at massive scale (Netflix, YouTube, etc.)</p>



<h3 class="wp-block-heading" id="disadvantages-1">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Higher latency (due to buffering and HTTP overhead), Not suitable for live, interactive, or real-time applications<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bandwidth inefficiency from repetitive HTTP requests<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Limited interactivity and control capabilities</p>



<h3 class="wp-block-heading" id="use-cases-1">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Video-on-Demand (VOD)</strong>: Movies, TV shows, educational content</li>



<li><strong>Live Streaming</strong>: Sports, news broadcasts (with reduced interactivity)</li>



<li><strong>OTT Platforms</strong>: Netflix, YouTube, Disney+, etc.</li>



<li><strong>Podcast &amp; Audio Streaming</strong>: Music and audio-based content</li>
</ul>



<h2 class="wp-block-heading" id="dash-dynamic-adaptive-streaming-over-http">DASH (Dynamic Adaptive Streaming over HTTP)</h2>



<p class="wp-block-paragraph">DASH is an international standard (ISO/IEC 23009-1) that provides dynamic bitrate adaptation for HTTP-based streaming. Unlike HLS&#8217;s fixed approach, DASH enables clients to select the optimal quality based on network conditions, similar to HLS but with standardized mechanisms.</p>



<p class="wp-block-paragraph" id="architecture-1">Architecture</p>



<ul class="wp-block-list">
<li><strong>Media Presentation Description (MPD)</strong>: XML file describing available bitrates and segments</li>



<li><strong>Multiple Bitrates</strong>: Content encoded at various quality levels (480p, 720p, 1080p, 4K)</li>



<li><strong>Dynamic Selection</strong>: Client chooses bitrate based on available bandwidth</li>



<li><strong>CDN Integration</strong>: Works with standard HTTP/HTTPS delivery networks</li>
</ul>



<h3 class="wp-block-heading" id="advantages-2">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Dynamic adaptive streaming reduces buffering and improves QoE<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> International standardization (ISO/IEC 23009-1)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Supports multiple codecs (H.264, H.265, VP9, AV1)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Efficient bandwidth utilization<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> CDN-friendly like HLS</p>



<h3 class="wp-block-heading" id="disadvantages-2">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Similar latency limitations to HLS (10-30 seconds typical) but more complex implementation than HLS<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requires sophisticated client logic for bitrate selection<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Not optimized for real-time communication</p>



<h3 class="wp-block-heading" id="use-cases-2">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Premium VOD Services</strong>: Netflix, Amazon Prime (primary choice)</li>



<li><strong>Live Streaming Events</strong>: Sports, concerts, conferences</li>



<li><strong>4K Ultra HD Streaming</strong>: High-quality media delivery</li>



<li><strong>Mobile Streaming</strong>: Adaptive quality for variable networks</li>
</ul>



<h2 class="wp-block-heading" id="srt-secure-reliable-transport"><a href="#srt">SRT (Secure Reliable Transport)</a></h2>



<p class="wp-block-paragraph">SRT is an open-source, real-time video streaming protocol developed by Haivision and Wowza, and now governed by the SRT Alliance. It combines reliability, security, and low latency into a single protocol, specifically designed for high-quality video streaming over unpredictable networks.</p>



<h3 class="wp-block-heading" id="key-technologies">Key Technologies</h3>



<ul class="wp-block-list">
<li><strong>NAK-based Retransmission</strong>: Selective and immediate re-transmission for packet loss recovery</li>



<li><strong>Adaptive Bitrate</strong>: Adjusts to network conditions</li>



<li><strong>Advanced Encryption</strong>: TLS 1.2+ for secure transmission</li>



<li><strong>Video Processing</strong>: Optimized codec support and quality control</li>
</ul>



<h3 class="wp-block-heading" id="advantages-3">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Sub-second latency (500ms or less) comparable to WebRTC<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Codec agnostic &#8211; works with any video codec<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Strong security with built-in encryption<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Excellent compatibility across platforms<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Proven in enterprise and broadcasting environments<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> NAK-based recovery for efficient loss handling</p>



<h3 class="wp-block-heading" id="disadvantages-3">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requires dedicated SRT infrastructure<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Less widespread adoption compared to HLS/DASH<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Higher bandwidth overhead due to reliability mechanisms<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Smaller ecosystem of tools and services</p>



<h3 class="wp-block-heading" id="technical-details">Technical Details</h3>



<ul class="wp-block-list">
<li><strong>Packet Structure</strong>: Each SRT packet begins with an SRT header containing metadata</li>



<li><strong>Control &amp; Data Packets</strong>: Separate handling for media and control information</li>



<li><strong>Window-based ACK</strong>: Acknowledges reception of packet groups for efficiency</li>
</ul>



<h3 class="wp-block-heading" id="use-cases-3">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Live Event Streaming</strong>: Sports, concerts, news broadcasts</li>



<li><strong>Enterprise Video</strong>: Corporate events, remote monitoring</li>



<li><strong>Contribution Networks</strong>: Equipment to broadcast center feeds</li>



<li><strong>Low-Latency Surveillance</strong>: Security camera monitoring</li>



<li><strong>Gaming &amp; Interactive</strong>: Competitive gaming with minimal latency</li>
</ul>



<p class="wp-block-paragraph">&nbsp;Each unit of SRT media or control data created by an application begins with the SRT packet header.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="796" data-attachment-id="7189" data-permalink="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/srt/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg" data-orig-size="1150,895" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="srt" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=1024" alt="" class="wp-image-7189" srcset="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg 1150w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="rist-reliable-internet-stream-transport"> RIST ( Reliable Internet Stream Transport ) </h2>



<p class="wp-block-paragraph">RIST is an open-source specification for transporting video over lossy, unpredictable internet networks with low latency and high quality. Managed by the VESA (Video Electronics Standards Association), it&#8217;s optimized for broadcasting and professional video delivery where reliability is critical.</p>



<h3 class="wp-block-heading" id="core-features">Core Features</h3>



<ul class="wp-block-list">
<li><strong>RTP/UDP Foundation</strong>: Built on industry-standard protocols</li>



<li><strong>NACK-based Retransmission</strong>: Automatic Request (ARQ) for packet recovery</li>



<li><strong>Error Correction</strong>: Forward Error Correction (FEC) capabilities</li>



<li><strong>Profile Flexibility</strong>: Multiple profiles for different use cases</li>
</ul>



<h3 class="wp-block-heading" id="rist-profiles">RIST Profiles</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Profile</th><th class="has-text-align-left" data-align="left">Latency</th><th class="has-text-align-left" data-align="left">Use Case</th><th class="has-text-align-left" data-align="left">Complexity</th></tr></thead><tbody><tr><td><strong>Simple Profile</strong></td><td>Very Low</td><td>Point-to-point delivery, LAN</td><td>Minimal</td></tr><tr><td><strong>Main Profile</strong></td><td>Low</td><td>Broadcast networks, WANs</td><td>Standard</td></tr><tr><td><strong>Enhanced Profile</strong></td><td>Optimized</td><td>Complex networks, redundancy</td><td>Advanced</td></tr></tbody></table></figure>



<h3 class="wp-block-heading" id="associated-protocols">Associated Protocols</h3>



<ul class="wp-block-list">
<li><strong>RTP</strong> (Real-time Transport Protocol): Media transport</li>



<li><strong>RTCP</strong> (RTP Control Protocol): Feedback and statistics</li>



<li><strong>FEC</strong> (Forward Error Correction): Additional reliability layer</li>
</ul>



<h3 class="wp-block-heading" id="advantages-4">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Excellent for 2-6 second latency applications<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Built-in error correction and recovery<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> NACK-based efficiency reduces bandwidth waste<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Open-source specification promotes adoption<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Suitable for mission-critical broadcasting<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Multiple profiles for different scenarios</p>



<h3 class="wp-block-heading" id="disadvantages-4">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Higher latency than SRT or WebRTC<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requires careful network tuning<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Still building ecosystem and tooling,  Less mainstream than HLS/DASH</p>



<h3 class="wp-block-heading" id="competitive-landscape">Competitive Landscape</h3>



<ul class="wp-block-list">
<li><strong>Open-source Predecessors</strong>: SRT (more mature, lower latency)</li>



<li><strong>Proprietary Alternatives</strong>: Zixi (feature-rich), VideoFlow (specialized use cases)</li>
</ul>



<h3 class="wp-block-heading" id="use-cases-4">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Professional Broadcasting</strong>: Live TV, sports events</li>



<li><strong>Content Distribution</strong>: Reliable ingest and contribution</li>



<li><strong>Failover Networks</strong>: Redundancy with automatic recovery</li>



<li><strong>International Feeds</strong>: Transatlantic/transpacific broadcasts</li>
</ul>



<h2 class="wp-block-heading" id="moq-media-over-quic">MoQ( Media Over QUIC)</h2>



<p class="wp-block-paragraph">MoQ is under design for <strong>low-latency media streaming</strong> applications, which can be live as well as on demand streaming , e.g., interactive content, live events, gaming. MoQ represents the next evolution in low-latency media streaming, currently under standardization by the IETF Media Over QUIC Working Group. It leverages QUIC (Quick UDP Internet Connections) as its transport layer, inheriting QUIC&#8217;s advantages: multiplexing, connection migration, and built-in security.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="681" data-attachment-id="7876" data-permalink="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/mermaid-diagram-2025-03-27-223133/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png" data-orig-size="2438,1622" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mermaid-diagram-2025-03-27-223133" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=1024" alt="" class="wp-image-7876" srcset="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=2048 2048w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=1440 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Diagram showing how media is published, transmitted via QUIC servers, cached or relayed through content delivery nodes, and finally consumed by subscribers.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="681" data-attachment-id="7879" data-permalink="https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/mermaid-diagram-2025-03-27-223730-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png" data-orig-size="2438,1622" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mermaid-diagram-2025-03-27-223730" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=1024" alt="" class="wp-image-7879" srcset="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=2048 2048w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=1440 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">MoQ System where different subscribers are requesting different resolutions (1080p, 720p, and 480p) using transcoders at the content delivery node</figcaption></figure>



<ul class="wp-block-list">
<li>(+) TLS 1.3 and AES encryption</li>
</ul>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="architecture-overview">Architecture Overview</h3>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line">Publisher → QUIC Servers → CDN Nodes → Transcoding → Subscribers</div><div class="cm-line">                        ↓</div><div class="cm-line">                   Caching &amp; Relay</div><div class="cm-line"></div></code></pre>
		</div>
	</div>
</div>


<h3 class="wp-block-heading" id="key-advantages-of-quic-foundation">Key Advantages of QUIC Foundation</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>TLS 1.3 Integration</strong>: Encryption by default (AES-GCM)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Multiplexing</strong>: Multiple streams over single connection<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Connection Migration</strong>: Seamless network switching (WiFi<img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />5G)<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Reduced Latency</strong>: 0-RTT resumption, faster handshakes<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Congestion Control</strong>: Improved adaptation to network changes</p>



<h3 class="wp-block-heading" id="media-over-quic-features">Media Over QUIC Features</h3>



<ul class="wp-block-list">
<li><strong>Variable Resolution Support</strong>: Subscribers request different quality levels</li>



<li><strong>Content Transcoding</strong>: On-the-fly quality conversion at CDN nodes</li>



<li><strong>Selective Bitstream Decoding</strong>: Partial bitstream reception for lower resolutions</li>



<li><strong>Dynamic Adaptation</strong>: Real-time quality adjustment based on network conditions</li>
</ul>



<h2 class="wp-block-heading" id="webrtc-sfu-scalable-video-encoding-svc-for-low-latency-decoding">WebRTC SFU + <a href="#SVC">Scalable Video Encoding (SVC) for low latency decoding </a></h2>



<p class="wp-block-paragraph">WebRTC-based Selective Forwarding Unit (SFU) combined with Scalable Video Coding (SVC) represents a powerful architecture for real-time interactive media. Rather than mixing or transcoding media server-side, an SFU forwards selected streams while SVC enables efficient bitrate adaptation at the application layer, allowing subscribers to consume partial bitstreams matching their network conditions and device capabilities.</p>



<h3 class="wp-block-heading" id="scalable-video-coding-svc">Scalable Video Coding (SVC)</h3>



<p class="wp-block-paragraph">SVC enables transmission and decoding of partial bitstreams, allowing delivery of video services with lower temporal or spatial resolutions or reduced quality while maintaining high reconstruction fidelity relative to the partial bitstream rate.</p>



<h4 class="wp-block-heading" id="scalability-dimensions">Scalability Dimensions</h4>



<ul class="wp-block-list">
<li><strong>Quality/Fidelity Scalability</strong>: Variable compression levels and details</li>



<li><strong>Temporal Scalability</strong>: Different frame rates (30fps, 15fps, 7.5fps, 3.75fps)</li>



<li><strong>Spatial Scalability</strong>: Different resolutions (1080p, 720p, 480p, 360p)</li>



<li></li>
</ul>



<p class="wp-block-paragraph"><a href="https://www.w3.org/TR/webrtc/#dom-rtcrtpcodeccapability"><code>RTCRtpCodecCapability</code></a>&nbsp;dictionary provides information about codec capabilities such as codec MIME media type/subtype,codec clock rate expressed in Hertz, maximum number of channels (mono=1, stereo=2). With the advent of SVC there has been a rising interest in motion-compensation and intra prediction, transform and entropy coding, deblocking, unit packetization. The base layer of an SVC bit-stream is generally coded in compliance with H.264/MPEG4-AVC.</p>



<h4 class="wp-block-heading" id="what-is-sfu">Selective Forwarding Unit (SFU)</h4>



<p class="wp-block-paragraph">A Selective Forwarding Unit is a media server that:</p>



<ul class="wp-block-list">
<li>Receives media streams from multiple participants</li>



<li><strong>Does NOT mix or transcode</strong> (unlike MCU)</li>



<li>Selectively forwards streams to receivers based on:
<ul class="wp-block-list">
<li>Bandwidth constraints</li>



<li>Device capabilities</li>



<li>Application logic</li>



<li>User selection</li>
</ul>
</li>
</ul>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line">Publisher (H.264 SVC)</div><div class="cm-line">    ↓</div><div class="cm-line">SFU (receives multi-layer stream)</div><div class="cm-line">    ↓</div><div class="cm-line">  ├→ Client 1 (1080p/30fps) - receives all layers</div><div class="cm-line">  ├→ Client 2 (720p/15fps) - receives subset of layers  </div><div class="cm-line">  └→ Client 3 (480p/7.5fps) - receives base layer only</div></code></pre>
		</div>
	</div>
</div>


<h3 class="wp-block-heading" id="use-cases-6">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Multi-Party Video Conferencing</strong>: Efficient bandwidth for 4+ participants</li>



<li><strong>Interactive Streaming</strong>: Live Q&amp;A, webinars, online classes</li>



<li><strong>Gaming</strong>: Low-latency multiplayer gaming streams</li>



<li><strong>Remote Collaboration</strong>: Screen sharing + video with adaptive quality</li>



<li><strong>Live Broadcasting with Interactivity</strong>: Audience participation features</li>
</ul>



<h3 class="wp-block-heading" id="implementation-considerations">Implementation Considerations</h3>



<p class="wp-block-paragraph"><strong>Encoding Requirements</strong></p>



<ul class="wp-block-list">
<li>Encoder must support SVC profile (H.264/AVC SVC, VP9, or AV1)</li>



<li>Base layer MUST be independently decodable</li>



<li>Enhancement layers defined at encoding time</li>
</ul>



<p class="wp-block-paragraph"><strong>Client-Side Complexity</strong></p>



<ul class="wp-block-list">
<li>Clients must understand layer dependencies and perform Dynamic layer switching based on bandwidth</li>



<li>Clients also need to implement complex jitter buffer management for multi-layer streams</li>
</ul>



<p class="wp-block-paragraph"><strong>Network Considerations</strong></p>



<ul class="wp-block-list">
<li>Packet loss recovery becomes layer-aware</li>



<li>Prioritize base layer transport and perform QoS marking for different layers</li>
</ul>



<h2 class="wp-block-heading" id="fanout-multicast-anycast"><a href="#fanout-multicast-anycast">Fanout Multicast / Anycast</a></h2>



<p class="wp-block-paragraph">Fanout (multicast) and anycast are connection-less approaches to multi-recipient delivery, distinct from connection-oriented protocols that must establish individual peer connections.</p>



<p class="wp-block-paragraph">Connection-oriented protocols find it difficult to scale out to large numbers as compared to connectionless protocols like IP/UDP. It is not advisable to implement hybrid, multipoint or cascading architectures for low latency networks as every proxy node will add its buffering delays. </p>



<p class="wp-block-paragraph"><strong>Connection-Oriented Issues</strong>:</p>



<ul class="wp-block-list">
<li>Linear scaling: <code>N</code> connections for <code>N</code> receivers</li>



<li>Per-peer buffering overhead</li>



<li>Session management complexity</li>



<li>Exponential state growth</li>
</ul>



<p class="wp-block-paragraph"><strong>Connectionless Advantages</strong>:</p>



<ul class="wp-block-list">
<li>IP-level distribution efficiency</li>



<li>Single transmission, multiple receivers</li>



<li>Minimal per-connection overhead</li>



<li>Broadcast/multicast native to UDP/IP</li>
</ul>



<p class="wp-block-paragraph">As a rule of thumb In low-latency networks, avoid proxy cascades. Direct peer-to-peer or simple tree topologies minimize delay.</p>



<h2 class="wp-block-heading" id="whep-webrtc-http-egress-protocol">WHEP (WebRTC-HTTP Egress Protocol)</h2>



<p class="wp-block-paragraph">WHEP is a standardized protocol (IETF draft) for WebRTC-based media egress. It enables efficient delivery of media streams via WebRTC&#8217;s proven reliability mechanisms while maintaining compatibility with HTTP infrastructure.</p>



<p class="wp-block-paragraph">WebRTC-based egress protocol with Very Low (&lt;500ms) latency but high reliability over SRTP atop DTLS.</p>



<p class="wp-block-paragraph">Technical Specifications</p>



<ul class="wp-block-list">
<li><strong>Transport</strong>: SRTP (Secure Real-time Transport Protocol) over DTLS (Datagram TLS)</li>



<li><strong>Latency</strong>: Very low (&lt;500ms typical)</li>



<li><strong>Reliability</strong>: High confidence delivery with automatic retransmission</li>



<li><strong>Encryption</strong>: DTLS secures the transport layer</li>
</ul>



<h3 class="wp-block-heading" id="advantages-7">Advantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Sub-500ms latency with high reliability<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SRTP encryption prevents eavesdropping<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> DTLS authentication and integrity<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Leverages proven WebRTC infrastructure<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> HTTP compatibility for firewall traversal<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Standardized protocol definition</p>



<h3 class="wp-block-heading" id="disadvantages-7">Disadvantages</h3>



<p class="wp-block-paragraph"><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Requires DTLS/SRTP infrastructure<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Less established than HLS/DASH<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Client implementation complexity<br><img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Browser support still developing</p>



<h3 class="wp-block-heading" id="use-cases-7">Use Cases</h3>



<ul class="wp-block-list">
<li><strong>Interactive Broadcasting</strong>: Real-time viewer participation</li>



<li><strong>Live Event Streaming</strong>: Ultra-low latency consumption</li>



<li><strong>WebRTC Broadcasting</strong>: Native browser consumption</li>



<li><strong>Secure Streaming</strong>: Encrypted media delivery</li>
</ul>



<h2 class="wp-block-heading" id="protocol-comparison-matrix">Protocol Comparison Matrix</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Aspect</th><th class="has-text-align-left" data-align="left">MLDP</th><th class="has-text-align-left" data-align="left">HLS</th><th class="has-text-align-left" data-align="left">DASH</th><th class="has-text-align-left" data-align="left">SRT</th><th class="has-text-align-left" data-align="left">RIST</th><th class="has-text-align-left" data-align="left">MoQ</th><th class="has-text-align-left" data-align="left">WebRTC SFU+SVC</th><th class="has-text-align-left" data-align="left">WHEP</th></tr></thead><tbody><tr><td><strong>Latency</strong></td><td>Medium</td><td>High (10-30s)</td><td>High (10-30s)</td><td>Ultra-Low (&lt;500ms)</td><td>Low (2-6s)</td><td>Ultra-Low (&lt;1s)</td><td>Ultra-Low (&lt;100ms)</td><td>Ultra-Low (&lt;500ms)</td></tr><tr><td><strong>Scalability</strong></td><td>Excellent</td><td>Excellent</td><td>Excellent</td><td>Good</td><td>Good</td><td>Excellent</td><td>Excellent (multi-party)</td><td>Good</td></tr><tr><td><strong>Infrastructure</strong></td><td>MPLS</td><td>HTTP/CDN</td><td>HTTP/CDN</td><td>Custom</td><td>RTP/UDP</td><td>QUIC</td><td>WebRTC</td><td>WebRTC</td></tr><tr><td><strong>Complexity</strong></td><td>High</td><td>Low</td><td>Medium</td><td>Medium</td><td>Medium</td><td>Medium</td><td>High</td><td>High</td></tr><tr><td><strong>Reliability</strong></td><td>Built-in</td><td>Buffering</td><td>Buffering</td><td>NAK-based</td><td>NACK/FEC</td><td>QUIC</td><td>SRTP/DTLS</td><td>SRTP/DTLS</td></tr><tr><td><strong>Encryption</strong></td><td>Basic</td><td>Optional</td><td>Optional</td><td>TLS 1.2+</td><td>Standard</td><td>TLS 1.3</td><td>DTLS</td><td>DTLS</td></tr><tr><td><strong>Real-Time</strong></td><td>Fair</td><td>Poor</td><td>Poor</td><td>Excellent</td><td>Good</td><td>Excellent</td><td>Excellent</td><td>Excellent</td></tr><tr><td><strong>CDN Support</strong></td><td>No</td><td>Native</td><td>Native</td><td>Limited</td><td>No</td><td>Emerging</td><td>No</td><td>Limited</td></tr><tr><td><strong>Multi-Party</strong></td><td>No</td><td>No</td><td>No</td><td>Limited</td><td>No</td><td>Yes</td><td>Native</td><td>Yes</td></tr><tr><td><strong>Use Case</strong></td><td>IPTV</td><td>VOD/OTT</td><td>VOD/Premium</td><td>Live Events</td><td>Broadcasting</td><td>Interactive</td><td>Conferencing</td><td>WebRTC Apps</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">My Decision Framework for Choosing the Right Protocol</p>



<p class="wp-block-paragraph">For Enterprise IPTV MLDP<br>For Video-on-Demand (VOD) &amp; OTT Services chose <strong>DASH or HLS</strong><br>For Live Broadcasting (≤6s Latency) m RIST or SRT<br>For Ultra-Low Latency Interactive (&lt;1s) like cloud gaming <strong> MoQ, SRT, WebRTC SFU+SVC, or WHEP</strong></p>



<p class="wp-block-paragraph">For Multi-Party Video Conferencing <strong>WebRTC SFU + SVC</strong></p>



<h3 class="wp-block-heading" id="1-latency-scalability-tradeoff">&nbsp;Latency-Scalability Tradeoff</h3>


<div class="wp-block-code">
	<div class="cm-editor">
		<div class="cm-scroller">
			
<pre>
<code><div class="cm-line">Low Latency  ←──────────────→  High Scalability</div><div class="cm-line">  (WHEP)                          (HLS/DASH)</div><div class="cm-line">  (SRT)                           (MLDP)</div><div class="cm-line">  (MoQ)                           </div></code></pre>
		</div>
	</div>
</div>


<p class="wp-block-paragraph">Scalable multicast media streaming requires a nuanced understanding of protocol tradeoffs. <strong>There is no one-size-fits-all solution</strong>. However as QUIC deployment accelerates and MoQ/WHEP mature, we&#8217;ll likely see a convergence toward QUIC-based solutions for new projects.</p>



<p class="wp-block-paragraph">Standardization &amp; Regulatory Status (2025)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Protocol</th><th class="has-text-align-left" data-align="left">Standards Body</th><th class="has-text-align-left" data-align="left">Status</th><th class="has-text-align-left" data-align="left">Latest Version</th><th class="has-text-align-left" data-align="left">RFC/ISO Standard</th></tr></thead><tbody><tr><td><strong>HLS</strong></td><td>IETF</td><td>Finalized (RFC 8216)</td><td>7.0 (2020)</td><td>RFC 8216</td></tr><tr><td><strong>DASH</strong></td><td>ISO/IEC</td><td>International Standard</td><td>v1 (2012), v2 (2014), v3 (2019)</td><td>ISO/IEC 23009-1:2019</td></tr><tr><td><strong>MLDP</strong></td><td>IETF</td><td>Finalized (RFC 6388)</td><td>2.0</td><td>RFC 6388, RFC 6389</td></tr><tr><td><strong>SRT</strong></td><td>SRT Alliance</td><td>Open Specification</td><td>v1.4.4 (2024)</td><td>Community-managed</td></tr><tr><td><strong>RIST</strong></td><td>VESA</td><td>Open Specification (RIST 2.2)</td><td>v2.2 (2024)</td><td>VESA Technical Standard</td></tr><tr><td><strong>MoQ</strong></td><td>IETF MoQ WG</td><td>Work in Progress</td><td>Draft-11 (Jan 2025)</td><td>Expected RFC mid-2025</td></tr><tr><td><strong>WebRTC SFU+SVC</strong></td><td>W3C/IETF</td><td>Finalized (RFC 7741 SVC, RFC 3550 RTP)</td><td>1.0 (RTP payload)</td><td>RFC 3550, RFC 7741</td></tr><tr><td><strong>WHEP</strong></td><td>IETF AVT WG</td><td>Proposed Standard</td><td>Draft-12 (Jan 2025)</td><td>Expected RFC Q2 2025</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="references-1">References</h2>



<h3 class="wp-block-heading" id="rfc--international-standards">RFC &amp; International Standards</h3>



<p class="wp-block-paragraph"><strong>HTTP Streaming Protocols</strong></p>



<ul class="wp-block-list">
<li><a href="https://tools.ietf.org/html/rfc8216">RFC 8216 &#8211; HTTP Live Streaming (HLS)</a> &#8211; Apple HTTP Live Streaming Specification</li>



<li><a href="https://www.iso.org/standard/79329.html">ISO/IEC 23009-1:2019 &#8211; DASH (Dynamic Adaptive Streaming over HTTP)</a> &#8211; International standard for adaptive HTTP streaming</li>



<li><a href="https://datatracker.ietf.org/doc/html/draft-lapukhov-lhls">IETF Draft &#8211; Low-Latency DASH (LL-DASH)</a> &#8211; Extension for reduced latency HLS</li>
</ul>



<p class="wp-block-paragraph"><strong>Real-Time Transport Protocols</strong></p>



<ul class="wp-block-list">
<li><a href="https://tools.ietf.org/html/rfc3550">RFC 3550 &#8211; RTP (Real-time Transport Protocol)</a> &#8211; Foundation for media transport</li>



<li><a href="https://tools.ietf.org/html/rfc3551">RFC 3551 &#8211; RTP Payload Format</a> &#8211; Audio and video codec specifications</li>



<li><a href="https://tools.ietf.org/html/rfc3711">RFC 3711 &#8211; SRTP (Secure Real-time Transport Protocol)</a> &#8211; Encryption and authentication for RTP</li>
</ul>



<p class="wp-block-paragraph"><strong>Multicast &amp; Network Protocols</strong></p>



<ul class="wp-block-list">
<li><a href="https://tools.ietf.org/html/rfc3031">RFC 3031 &#8211; MPLS Architecture</a> &#8211; Foundation for MLDP</li>



<li><a href="https://tools.ietf.org/html/rfc6388">RFC 6388 &#8211; LDP Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths (MLDP)</a></li>



<li><a href="https://tools.ietf.org/html/rfc6389">RFC 6389 &#8211; MPLS Upstream Label Assignment for LDP</a></li>
</ul>



<p class="wp-block-paragraph"><strong>Emerging Protocols (IETF WGs)</strong></p>



<ul class="wp-block-list">
<li><a href="https://datatracker.ietf.org/wg/moq/">IETF MoQ WG &#8211; Media Over QUIC</a> &#8211; Draft-11 (January 2025)</li>



<li><a href="https://datatracker.ietf.org/doc/html/draft-ietf-wish-whep/">IETF WHEP &#8211; WebRTC HTTP Egress Protocol</a> &#8211; Draft-12 (January 2025)</li>



<li><a href="https://tools.ietf.org/html/rfc9000">RFC 9000 &#8211; QUIC: A UDP-Based Multiplexed and Secure Transport</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<h3 class="wp-block-heading" id="open-source-specifications">Open-Source Specifications</h3>



<p class="wp-block-paragraph"><strong>SRT Alliance</strong></p>



<ul class="wp-block-list">
<li><a href="https://www.srtalliance.org/">SRT (Secure Reliable Transport) Specification</a> &#8211; Version 1.4.4 (2024)</li>



<li><a href="https://www.srtalliance.org/developers/">SRT Cookbook &#8211; Best Practices Guide</a> &#8211; Implementation guidelines</li>



<li><a href="https://github.com/Haivision/srt">SRT GitHub Repository</a> &#8211; Reference implementation</li>
</ul>



<p class="wp-block-paragraph"><strong>VESA RIST</strong></p>



<ul class="wp-block-list">
<li><a href="https://www.vesa.org/">RIST (Reliable Internet Stream Transport) Official Specification</a> &#8211; Version 2.2 (2024)</li>



<li><a href="https://www.vesa.org/standards/rist/">RIST Simple, Main, Enhanced Profiles</a> &#8211; Profile definitions</li>



<li><a href="https://xn--ralliance-b1h3hm.org/">RIST Alliance Documentation</a> &#8211; Technical resources</li>
</ul>



<h3 class="wp-block-heading" id="industry-standards--working-groups">Industry Standards &amp; Working Groups</h3>



<p class="wp-block-paragraph"><strong>Broadcasting Standards</strong></p>



<ul class="wp-block-list">
<li><a href="https://www.ebu.ch/">EBU (European Broadcasting Union) &#8211; RIST Recommendations</a> &#8211; European standard adoption</li>



<li><a href="https://www.smpte.org/">SMPTE ST 2059-1 &#8211; Timecode and Control Specifications</a> &#8211; Professional video standards</li>



<li><a href="https://www.itu.int/">ITU-R BT.2020 &#8211; Ultra High Definition Television (UHDTV)</a> &#8211; 4K/8K specifications</li>
</ul>



<p class="wp-block-paragraph"><strong>WebRTC Standards</strong></p>



<ul class="wp-block-list">
<li><a href="https://www.w3.org/TR/webrtc/">W3C WebRTC Specification</a> &#8211; Real-time communication API</li>



<li><a href="https://datatracker.ietf.org/wg/rtcweb/">IETF RTCWEB WG &#8211; WebRTC Protocols</a> &#8211; Transport and codec specifications</li>
</ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2025/02/07/scalable-multicast-media-streaming-protocols/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6026</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2025/03/create-a-highly-detailed-high-resolution-image-depicting-media-streaming-to.png" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/03/create-a-highly-detailed-high-resolution-image-depicting-media-streaming-to.png" medium="image">
			<media:title type="html">create-a-highly-detailed-high-resolution-image-depicting-media-streaming-to</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-224243.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/srt.jpg?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223133.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/03/mermaid-diagram-2025-03-27-223730-1.png?w=1024" medium="image" />
	</item>
		<item>
		<title>Encapsulting Protocols</title>
		<link>https://telecom.altanai.com/2022/12/08/encapsulting-protocols/</link>
					<comments>https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Thu, 08 Dec 2022 19:43:00 +0000</pubDate>
				<category><![CDATA[Protocols]]></category>
		<category><![CDATA[DTLS]]></category>
		<category><![CDATA[GRE]]></category>
		<category><![CDATA[Ip in IP]]></category>
		<category><![CDATA[MPLS]]></category>
		<category><![CDATA[MTU]]></category>
		<category><![CDATA[Protocol design]]></category>
		<category><![CDATA[QUIC]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[TCP encapsulation]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=7536</guid>

					<description><![CDATA[Encapsulation is the process of encasing the payload sent by an endpoint into another protocol&#8217;s payload, attaching its own header and trailer. This is applied to all data being processed by the network stack layers. For example, an HTTP ( L7 application layer protocol) is encapsulated under a TCP header (L4 layer protocol ) and &#8230; <a href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/" class="more-link">Continue reading <span class="screen-reader-text">Encapsulting Protocols</span></a>]]></description>
										<content:encoded><![CDATA[
<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#secure-shell-ssh"> Secure Shell (SSH )</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#encapsulating-protocols-at-network-layer">Encapsulating protocols at Network Layer</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#ip-in-ip">IP in IP </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#multiprotocol-label-switching-mpls">Multiprotocol Label Switching (MPLS)  </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#esp-encapsulating-security-payload">ESP (Encapsulating Security Payload)</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#encapsulating-protocols-at-transport-layer">Encapsulating protocols at Transport Layer </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#tls-and-datagram-transport-layer-security-dtls">TLS and Datagram Transport Layer Security (DTLS)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#generic-routing-encapsulation-gre">Generic Routing Encapsulation (GRE)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#quic">QUIC </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#tcp-encapsulation">TCP encapsulation</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#subtle-points-of-using-encapsulation">Subtle points of using encapsulation</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#path-mtu-and-fragmentation">Path MTU and fragmentation</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#migration-of-inner-payload-from-one-to-another-protocol">Migration of inner payload from one to another protocol</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#prioritization-and-congestion-post-encapsulation">Prioritization and congestion post encapsulation</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#misordering">Misordering  </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#loss-of-ecn-signal">Loss of ECN signal </a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#classification-and-tagging">Classification and tagging</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#state-synchronization-in-multipath">State Synchronization in Multipath</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#applying-policies">Applying policies </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#anti-replay-window-synchronization">Anti-replay window synchronization </a></li></ol></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#protocol-design-for-an-encapsulating-protocol">Protocol Design for an encapsulating protocol</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#traffic-fow-confidentiality-tfc">Traffic Fow confidentiality ( TFC) </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#segmentation-of-information-into-header-and-trailer">Segmentation of information into header and trailer </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#dynamically-adjustable-anti-replay-window-sizes">Dynamically adjustable anti-replay window sizes</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/#security-constraints">Security constraints</a></li></ol></li></ol>



<p class="wp-block-paragraph">Encapsulation is the process of encasing the payload sent by an endpoint into another protocol&#8217;s payload, attaching its own header and trailer. This is applied to all data being processed by the network stack layers. For example, an HTTP ( L7 application layer protocol) is encapsulated under a TCP header (L4 layer protocol ) and further in an IP header ( L3 protocol) and so on until it is down to the physical layer. </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="1024" height="536" data-attachment-id="7592" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-7-8/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png" data-orig-size="1106,580" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-7" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=1024" alt="" class="wp-image-7592" style="width:614px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png 1106w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Network stack encapsulation accross layers</figcaption></figure>



<p class="wp-block-paragraph">This article doesn&#8217;t deal with encapsulation across the general network stack but rather focuses on encapsulating protocols that try to mask the identity of the original payload from network middleboxes to provide anonymity or virtualized networking.</p>



<p class="wp-block-paragraph">Core parts of a secure communication framework relying on encapsulation are</p>



<ul class="wp-block-list">
<li>Encapsulation and decapsulation ( encap and decap) libraries on the receiver and sender as well as a means to exchange the metadata enabling encap-decap.</li>



<li>&nbsp;The payload, which is an original packet, optionally including upper-layer protocols, can be encrypted or plain.</li>



<li>&nbsp;Algorithms and tools to order packets arriving out of order and duplicated</li>



<li>&nbsp;Provide confidentiality as well as detection against malicious activities like MITM attacks or other kinds of passive attacks such as eavesdropping and replaying.</li>
</ul>



<p class="wp-block-paragraph"><strong>Sequnece Numbers</strong> are monotonically increasing numbers that show the ordering of the packets in a stream. They do not necessarily start from 0. Most sequence numbers have a wrapping feature, especially useful for long-lived connections. At the far end of the valid sequence number range, the sequence numbers can go down to the beginning after maxing out. First used in TCP, sequence numbers have become popular in the most reliable communication protocols. Primarily meant for reordering the incoming packets in traffic in the correct order, these numbers can be used for other purposes as well.</p>



<ul class="wp-block-list">
<li>Sequence numbers in the headers, such as ESP, help maintain the <strong>anti-replay</strong> window, which prevents attacks from replaying previously captured data. Any packet coming from a sequence outside the window is either a retransmission or a replay attack and, hence, can be more scrutinized.</li>



<li>In some cases of ESP, even <strong>extended sequence numbers</strong> are used, which can be controlled by the cryptographic algorithm making it a security enhancement.</li>
</ul>



<p class="wp-block-paragraph"><strong>Security Association between the endpoints of an encapsulated path.</strong> Security Association is a critical aspect of securing a communication path with a crypto algorithm, integration, keys, etc, and is used especially in the case of IPsec.</p>



<p class="wp-block-paragraph"><strong>Sharing Keys</strong> : Maual keying , static configuration based  keying and most recommended,  Key exchange protocols such as IKE ( Internet Key exchange) can be used to share secret keys.</p>



<p class="wp-block-paragraph"><strong>Unique identification</strong> : The onus of unique identification of the multiple paths/streams and the order of packets in the individual paths/streams lies with the creator of the header that would be attached to the encapsulated payload. Such a unique identifier or set of attributes should be able to distinguish multiple coexisting tunnels. Some example of unique Id/ identifiers in multioplexed usecase in case of non tunneling usecases are</p>



<ul class="wp-block-list">
<li>HTTP/2 uses stream ID for multiplexed flows within a single connection</li>



<li>SIP uses Session ID</li>
</ul>



<p class="wp-block-paragraph">Simmilarly example of unique Id/ identifier in case of tunneling are </p>



<ul class="wp-block-list">
<li>GRE uses the key field to make distuiction between individual flows</li>



<li>MPLS uses labels to identify diferent strems associated with different classes.  </li>



<li>ESP uses SPI to attach the cryptographic SA keys to each packet for processing. </li>



<li>L2TP ( Layer 2 Tunneling protocol) also uses tunnel ID to identify coexisting tunnels.</li>



<li>SPI used in IPSec ESP protocol is a 32-bit identifier that bounds a security association to a packet. This is used to demultiplex inbound traffic at the receiver&#8217;s end.</li>



<li>QUIC uses connection ID</li>
</ul>



<p class="wp-block-paragraph">Others can rely on sequence numbers as counters or even destination address mappings to identify the path/stream. However, these approaches have many limitations. Most protocols would try to attach a new custom field.</p>



<p class="wp-block-paragraph">More description on some encapsulating protocols</p>



<h2 id="secure-shell-ssh" class="wp-block-heading"> Secure Shell (SSH )</h2>



<p class="wp-block-paragraph">While ssh is not generally thought of as a tnunneling protocol , it does create a communicaion link for remote access and file transfer to happen securly. Hence forming the crux of what is considered a VPN functionality. </p>



<h2 id="encapsulating-protocols-at-network-layer" class="wp-block-heading">Encapsulating protocols at Network Layer</h2>



<h3 id="ip-in-ip" class="wp-block-heading">IP in IP </h3>



<p class="wp-block-paragraph">As IPV4 in IPv4 , IPV4 in IPv6 , IPv6 in IPv4 , and IPv6 in IPv6, are most commonly used for network virtualization ( VPN) and other kinds of Network as service such as Secure Access Service Edge (SASE).</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="1016" height="342" data-attachment-id="7593" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-8-8/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png" data-orig-size="1016,342" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-8" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=1016" alt="" class="wp-image-7593" style="width:484px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png 1016w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=768 768w" sizes="(max-width: 1016px) 100vw, 1016px" /><figcaption class="wp-element-caption"> IPv6 over IPv4</figcaption></figure>



<h3 id="multiprotocol-label-switching-mpls" class="wp-block-heading"><strong>Multiprotocol Label Switching (MPLS)  </strong></h3>



<p class="wp-block-paragraph">MPLS can transport IP packets ( IPv4 and IPv6) over IPv4 backbone.Orignally design for forwarding and routing, instead of trraditional IP based routing MPLS uses packet labels to make next hop routing decisions. This enables creation of paths based on QoS. In contrast to ESP which is applied at layer 3, MPLs operated at layer 2.5( between layer 2 and 3).</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="739" height="522" data-attachment-id="7626" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-24-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png" data-orig-size="739,522" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-24" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=739" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=739" alt="" class="wp-image-7626" style="width:471px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png 739w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=300 300w" sizes="(max-width: 739px) 100vw, 739px" /><figcaption class="wp-element-caption">Original packet and modified packet with MPLS header format </figcaption></figure>



<h3 id="esp-encapsulating-security-payload" class="wp-block-heading">ESP (Encapsulating Security Payload)</h3>



<p class="wp-block-paragraph">ESP, part of the IPSec suite, enables confidentiality, integrity, and authenticity for IP packets it encapsulates. ESP header contains</p>



<ul class="wp-block-list">
<li>SPI ( Security Parameter Index) to links SA ( security association) with an endpoint</li>



<li>&nbsp;Sequence number, which is a counter to prevent a replay attack</li>



<li>&nbsp;payload type can be encrypted or plain</li>



<li> followed by the Next header, which specifies the type of original IP packet in the payload. </li>
</ul>



<p class="wp-block-paragraph">ESP can operate in transport mode (protecting the payload of an IP packet) or tunnel mode (protecting the entire IP packet).</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Generic <br>IP packet</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-9.png?w=394" alt="" style="width: 200px"></td></tr></tbody></table></figure>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td></td><td>Transport Mode</td><td>Tunnel Mode</td></tr><tr><td><br>Authetication Header</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-10.png?w=401" alt="" style="width: 250px"></td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-11.png?w=519" alt="" style="width: 300px"></td></tr><tr><td>ESP</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-13.png?w=666" alt=""></td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-14.png?w=603" alt=""></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Without considering encryption or authentication overhead, the basic ESP header is 8 bytes in size. The ESP H( header) is realitively smaller in transport mode than in tunnel mode. </p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>IPV4</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-16.png?w=501" alt="" style="width: 300px"></td></tr><tr><td>IPv6</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-15.png?w=473" alt="" style="width: 300px"></td></tr></tbody></table></figure>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td></td><td>Transport Mode</td><td>Tunnel Model</td></tr><tr><td>IPv4</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-17.png?w=745" alt="" style="width: 300px"></td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-21.png?w=764" alt="" style="width: 322px"></td></tr><tr><td>IPv6</td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-19.png?w=848" alt=""></td><td><img src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-20.png?w=1024" alt=""></td></tr></tbody></table><figcaption class="wp-element-caption">IPv4 and IPv6 in transport and tunnel modes for ESP. </figcaption></figure>



<h2 id="encapsulating-protocols-at-transport-layer" class="wp-block-heading">Encapsulating protocols at Transport Layer </h2>



<h3 id="tls-and-datagram-transport-layer-security-dtls" class="wp-block-heading">TLS and Datagram Transport Layer Security (DTLS)</h3>



<p class="wp-block-paragraph">While TLS is designed for TCP, DTLS securily encapsulates datagrams over UDP. In contrast to ESP which encapsulates traffic for VPN usecases , DTLS is mostly used to encapsulate real time data traffic suhc as in WebRTC, gaming.</p>



<h3 id="generic-routing-encapsulation-gre" class="wp-block-heading">Generic Routing Encapsulation (GRE)</h3>



<p class="wp-block-paragraph">Another layer 4 tunneling protocol is GRE. It is protocol agnostic to layer 3 payloads as in it can tunnel any layer 3 protocol from IPv6, IPv4 to other raw formats. The &#8220;Protocol Type&#8221; fiels in GRE header specifies the protocol type of the encapsulated packet. GRE has a minimal header structure with no out of box security such as encrytion.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="547" data-attachment-id="7599" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-12-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png" data-orig-size="1282,685" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-12" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=1024" alt="" class="wp-image-7599" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png 1282w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">GRE tunnel forming a site to site VPN</figcaption></figure>



<h3 id="quic" class="wp-block-heading">QUIC </h3>



<p class="wp-block-paragraph">QUIC encapsulates higher-layer protocols, such as HTTP/3, within its own transport layer over UDP. Besides efficient multiplexing, encryption , QUIC also excels at migration and quick handshakes.</p>



<p class="wp-block-paragraph">In contrarst to ESP , while ESP is part of IPSec suite of protocol aimed at lower underlay layer tunnleing, QUIC is aimed at application data encapsulation like web traffic and leverages UDP itself , appendning its own header with control information. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="345" data-attachment-id="7612" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-22-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png" data-orig-size="1048,354" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-22" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=1024" alt="" class="wp-image-7612" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png 1048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="740" data-attachment-id="7614" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-23-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png" data-orig-size="1089,787" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-23" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=1024" alt="" class="wp-image-7614" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png 1089w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Note that MASQUE is another enacpsulation protocol build over QUIC. As these are still nascent and eveolving I will update this section as more specificatiosn are standardised.  </p>



<h3 id="tcp-encapsulation" class="wp-block-heading">TCP encapsulation</h3>



<p class="wp-block-paragraph">Many network middleboxes that filter traffic on public hotspots block all UDP traffic. As a result, UDP traffic, such as media streams for VoIP calls or even IKEv2 UDP packets, gets blocked. But middleboxes are likely to allow TCP connections through because they appear to be web traffic</p>



<ul class="wp-block-list">
<li>(+) provides NAT support</li>



<li>&nbsp;(+) Avoids UDP fragmentation</li>



<li>&nbsp;(-) overhead of TCP or TLS</li>
</ul>



<p class="wp-block-paragraph">While designing a TCP-based encapsulation, it is recommended that Initiators should only use TCP encapsulation when traffic over UDP is blocked. TCP can leverage the streams over a single TCP connection to send data across. This way, any firewall or NAT mappings allocated for the TCP connection apply to all of the traffic associated with the encapsulated packet. This prevents large number of roundtrips.</p>



<h2 id="subtle-points-of-using-encapsulation" class="wp-block-heading">Subtle points of using encapsulation</h2>



<p class="wp-block-paragraph">In addition to encapsulation overhead and reachability, the following are concerns that occur in encapsulating the data and traversing through a complex network.</p>



<h3 id="path-mtu-and-fragmentation" class="wp-block-heading"><strong>Path MTU and fragmentation</strong></h3>



<p class="wp-block-paragraph">Path MTU discovery messages such as ICMP can be blanket blocked by firewalls, which prevents proper MTU from being set for the encapsulated and overall packet. Subsequently, the MTU of the endcap packet may exceed the path MTU, leading to fragmentation, leading to</p>



<ul class="wp-block-list">
<li>latency in transmission</li>



<li>undecipherable or unroutable packets by middleboxes / VPN hubs</li>



<li>Fragmented packets received may be unprocessable or not be able to be disassembled properly, which is countered by packet loss, leading to retransmission and further congestion.</li>
</ul>



<h3 id="migration-of-inner-payload-from-one-to-another-protocol" class="wp-block-heading">Migration of inner payload from one to another protocol</h3>



<p class="wp-block-paragraph">For IPv4 encapsulating other IPs in a dual-stack implementation, sometimes the destination can decide to upgrade, such as from IPv4 to IPv6. The upgrade involves periods of simultaneously using IPv4 and IPv6 and then a gradual transition towards IPv6. The key differenece between the IPv4 and IPv6 </p>



<ul class="wp-block-list">
<li>header size which is 20 bytes and 40 bytes for IPv4 and IPv6 repectively.</li>



<li>only IPv4 supports fragmenetation</li>



<li>IPv4 has nique adddress space thus NAT is not needed as much as with limited addressing of IPv4</li>
</ul>



<p class="wp-block-paragraph">With migration ineffect on a dual stack  impact on as the overlay depends on the underlay protocols ability to carry its traffic. For example in IPv6 over IPv4, as IPV4 underlays are well adopted in network infrastructure, original payload packets with ipv6 header use the ipv4 as encapsulating packet IP to carry accross the tunnel. BGP and OSPF are common routing and forwrading protocols for a IPv4 underlay network. </p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td></td><td>IPv4</td><td>IPv6</td></tr><tr><td>Overlay</td><td>IPv4 over IPv6 <br>IPv4 over IPv4 ( GRE)</td><td>IPv6 over IPv4 ( 6in4)<br>IPv6 over IPv6 </td></tr></tbody></table></figure>



<h3 id="prioritization-and-congestion-post-encapsulation" class="wp-block-heading">Prioritization and congestion post encapsulation</h3>



<p class="wp-block-paragraph">Many network middleboxes ( routers, cloud firewalls, gateways, and so on ) implement traffic filtering, shaping, or queue management based on prioritization( AQM at ISPs). Due to the masked nature of encapsulated packets, there is a high chance of the middleboxes not being able to ascertain their identity and, thus, making it deprioritized. </p>



<h4 id="misordering" class="wp-block-heading">Misordering  </h4>



<p class="wp-block-paragraph">To still keep the endpoints connected, the packets thus need to be put in the correct order with manageable latency at the receiving endpoint. This is especially critical for encapsulating packets for low-latency applications. For example, for video codec, a keyframe encapsulated packets arriving late could affect all subsequent packets to wait in the receiver buffer. This cascaded into a downward spiral of sending selective acknowledgments, retransmission, and discarding arrived packets, which can further intensified the problem.</p>



<h4 id="loss-of-ecn-signal" class="wp-block-heading">Loss of ECN signal </h4>



<p class="wp-block-paragraph">Some systems overcome this by copying the ECN header from the inner header of the original packet to the outside headers. However, this needs to be a mutable field as the packet traverses through the many nodes of a large network. This is not protected by the integrator algorithms, and thus, for the risk of being misused, once a feature, this is now dropped by the updated specifications of many encapsulating protocols, such as IPsec.</p>



<h3 id="classification-and-tagging" class="wp-block-heading">Classification and tagging</h3>



<p class="wp-block-paragraph">Classification and tagging of traffic within a stream of encapsulated packets is also a challenge. The payload of the encapsulated packets could contain mixed content that cannot be tagged to any specific class, which can be used to prioritize real-time or critical traffic. For example, DSCP tag propagation from inner to outer packets can help in this direction but runs the risk of traffic profiling by middleboxes.</p>



<h3 id="state-synchronization-in-multipath" class="wp-block-heading">State Synchronization in Multipath</h3>



<p class="wp-block-paragraph">Scaling to involve multiple streams in a session using encapsulation poses challenges. This problem is further amplified in the case of multi-sender and multi-receiver scenarios.</p>



<h4 id="applying-policies" class="wp-block-heading">Applying policies </h4>



<p class="wp-block-paragraph">For a stateful, contextual, and intelligent decision-making process, a sender needs to leverage the multiple available paths. It needs to discover alternate reachable paths and collect and sync network metrics to use the resources matching the needs of time sensitivity, cost, etc.</p>



<h4 id="anti-replay-window-synchronization" class="wp-block-heading">Anti-replay window synchronization </h4>



<p class="wp-block-paragraph">Difficulty in synchronizing anti-replay windows when multiple paths are involved impacts load-sharing encapsulated traffic. Additional issues may involve multicore or distributed operations.<br>A short-term solution to Sync issues is to have a very large Anti-replay window. Patching this with a short-term change of making the anti-replay window too big increases the possibility of packets being too far in sequence, which further leads to unpredictability in ordering. In high throughput scenarios, it may even be difficult for the CPU to keep the state in cache for an immensely large window size, thus causing undue latency penalties.</p>



<h2 id="protocol-design-for-an-encapsulating-protocol" class="wp-block-heading">Protocol Design for an encapsulating protocol</h2>



<h3 id="traffic-fow-confidentiality-tfc" class="wp-block-heading">Traffic Fow confidentiality ( TFC) </h3>



<p class="wp-block-paragraph">Primarily, an encapsulating protocol needs to make the traffic from outside visibility, which can be done by rewriting the source destination information as well as encrypting and/or padding the payload so as to not make it intelligible to middleboxes. Also mentioned in RFC 4303 for ESP in Tunel mode.</p>



<p class="wp-block-paragraph"><strong>Dummy Data </strong>: Other means to secure confidentiality could be to use dummy packets or even dummy streams.</p>



<h3 id="segmentation-of-information-into-header-and-trailer" class="wp-block-heading">Segmentation of information into header and trailer </h3>



<ul class="wp-block-list">
<li>Avoid leaking information on the payoad</li>



<li>enable reassembly in case of fragmentation </li>
</ul>



<h3 id="dynamically-adjustable-anti-replay-window-sizes" class="wp-block-heading">Dynamically adjustable anti-replay window sizes</h3>



<p class="wp-block-paragraph"> A smaller window is faster to process and secure but inapplicable to multi legged session, while a large window has a performance impact and can jeopardize the security of replays. By implementing a dynamically sized sliding window, the protocol can keep up the instantaneous requirements of the Network, such as keeping the window large for higher packet loss but also compressing the window size when the traffic latency-sensitive and out-of-sequence is intended to be discarded.</p>



<ul class="wp-block-list">
<li>multiple replay windows for multiple paths </li>



<li>Synchronize sequneces with minial communication between the threads</li>
</ul>



<h3 id="security-constraints" class="wp-block-heading">Security constraints</h3>



<p class="wp-block-paragraph">Enabling multiple child SAs to be linked to a session is one way to overcome both multipath and antireplay issues mentioned above. The multiple children SAs in a parent SA can be thought of as representing a child tunnel inside a parent tunnel as it enables uniquely identifying and maintaining each SA-associated path with SPI-based identification. This leads to no overhead in synchronizing sequence numbers for ordering in case of multipath or multicore. Such concepts have been proposed in a few IETF drafts using different terminologies, such as sub-tunnel, cluster-tunnel, etc</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="1024" height="390" data-attachment-id="7582" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-4-12/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png" data-orig-size="1146,437" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=1024" alt="" class="wp-image-7582" style="width:496px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png 1146w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="1024" height="251" data-attachment-id="7583" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-5-12/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png" data-orig-size="1146,281" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-5" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=1024" alt="" class="wp-image-7583" style="width:477px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png 1146w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="1024" height="310" data-attachment-id="7585" data-permalink="https://telecom.altanai.com/2022/12/08/encapsulting-protocols/image-6-10/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png" data-orig-size="1132,343" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-6" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=1024" alt="" class="wp-image-7585" style="width:459px;height:auto" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png 1132w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"></h3>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list">
<li><a href="https://en.wikipedia.org/wiki/6in4">https://en.wikipedia.org/wiki/6in4</a></li>



<li><a href="https://datatracker.ietf.org/doc/html/rfc4303" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc4303</a></li>



<li><a href="https://datatracker.ietf.org/doc/html/rfc6040">https://datatracker.ietf.org/doc/html/rfc6040</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/12/08/encapsulting-protocols/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7536</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-7.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-8.png?w=1016" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-24.png?w=739" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-9.png?w=394" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-10.png?w=401" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-11.png?w=519" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-13.png?w=666" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-14.png?w=603" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-16.png?w=501" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-15.png?w=473" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-17.png?w=745" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-21.png?w=764" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-19.png?w=848" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-20.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-12.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-22.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-23.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-4.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-5.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-6.png?w=1024" medium="image" />
	</item>
		<item>
		<title>Multihoming protocols and mobility</title>
		<link>https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/</link>
					<comments>https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Wed, 07 Dec 2022 19:24:00 +0000</pubDate>
				<category><![CDATA[Protocols]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[MultiHoming]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[Networking protocols]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=7540</guid>

					<description><![CDATA[A multihoming protocol maintains a simultaneous connection to multiple networks. Such a protocol enhances reliability, load balancing, and fault tolerance and makes an excellent candidate for signaling planes, which are lightweight packets managing the connection for the data plane. Dataplane acts as the actual data transfer protocol, which can be for multimedia such as audio-video &#8230; <a href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/" class="more-link">Continue reading <span class="screen-reader-text">Multihoming protocols and&#160;mobility</span></a>]]></description>
										<content:encoded><![CDATA[
<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#low-layer-multihoming">Low Layer Multihoming </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#layer-3-network-layer-multihoming">Layer 3 Network Layer multihoming</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#layer-4-transport-layer-multihoming">Layer 4 Transport layer multihoming </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#higher-layer-multihoming-techniques">Higher Layer Multihoming techniques</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#best-path-selection-among-multiple-paths">Best Path Selection among multiple paths</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#fifo-or-round-robin">FIFO or Round Robin</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#weights-predetermined-or-dynamically-allocated">Weights ( predetermined or dynamically allocated)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#prioritization-algorithms">Prioritization algorithms</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#multipath-protocol-design">MultiPath  protocol design</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#service-discovery">Service discovery </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#unique-identifiers">Unique Identifiers </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#path-route-and-network-identifiers">Path / Route and Network identifiers </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#header-metadata">Header metadata </a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#pre-registration">Pre &#8211; Registration </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#handover-failover-from-one-path-to-another-without-disruption">Handover / Failover from one path to another without disruption</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/#security-association-for-paths">Security association for paths</a></li></ol></li></ol>



<p class="wp-block-paragraph">A multihoming protocol maintains a simultaneous connection to multiple networks. Such a protocol enhances reliability, load balancing, and fault tolerance and makes an excellent candidate for signaling planes, which are lightweight packets managing the connection for the data plane. Dataplane acts as the actual data transfer protocol, which can be for multimedia such as audio-video content, games, streaming, and so on. Multihoming can be implemented at several levels of the network stack.</p>



<h3 id="low-layer-multihoming" class="wp-block-heading">Low Layer Multihoming </h3>



<p class="wp-block-paragraph">While lower layers of the network stack do not generally have the logic to maintain statefulness and decision-making, they can still leverage multiple paths efficiently to provide redundancy and increased BDP.</p>



<p class="wp-block-paragraph"><strong>Link Aggregation Control Protocol (LACP)</strong>, an IEEE standard and part of the IEEE 802.3ad specification, bundles individual physical links of Ethernet connections into one logical link to increase throughput using multiple NICs.</p>



<h3 id="layer-3-network-layer-multihoming" class="wp-block-heading">Layer 3 Network Layer multihoming</h3>



<p class="wp-block-paragraph"><strong>BGP</strong> can be considered an example of multihoming since it process multiple paths via logical addressing and sets up the routes.</p>



<p class="wp-block-paragraph"><strong>IP multihoming </strong>: Virtual Router Redundancy Protocol (VRRP) and Hot Standby Router Protocol (HSRP) enable routers to share IP and MAC address.</p>



<h3 id="layer-4-transport-layer-multihoming" class="wp-block-heading">Layer 4 Transport layer multihoming </h3>



<p class="wp-block-paragraph">Some protocols simultaneously use these multiple paths for a single communication session such as&nbsp;<strong>Multi-path TCP</strong>. This can be used to improve bandwidth utilization ( sometimes unfairly) and build resilience. While simultaneous usage of multiple links/ paths provides great resilience, they can lead to asymmetrical routing issues.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="341" data-attachment-id="7572" data-permalink="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/image-3-12/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png" data-orig-size="1220,407" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-3" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=1024" alt="" class="wp-image-7572" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png 1220w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Asymmetrical Routing</figcaption></figure>



<p class="wp-block-paragraph"><strong>SCTP (Stream Control Transmission Protocol)</strong>&nbsp;is another example of a transport layer protocol that provides connection-oriented reliable communication while having multiple IP addresses and interfaces. With multiple paths dynamically added, the SCTP session can switch from one path to another in the event of a failover or can load balance between paths.</p>



<h3 id="higher-layer-multihoming-techniques" class="wp-block-heading">Higher Layer Multihoming techniques</h3>



<p class="wp-block-paragraph"><strong>AnyCast</strong>&nbsp;is a networking technique that lets multiple endpoints share the same IP and dynamically select the best destination path.</p>



<p class="wp-block-paragraph"><strong>SIP Forking&nbsp;</strong>is an application layer technique to have multiple VoIP endpoints receive an incoming call either parallelly or sequentially. The first SIP phone to answer the calls establishes the connection.</p>



<p class="wp-block-paragraph"><strong>Equal-cost multipath (ECMP)</strong>&nbsp;is a routing technique that allows routers to distribute traffic across multiple equal-cost paths. This is often associated with OSPF (Open Shortest Path First) like implementations.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="353" data-attachment-id="7571" data-permalink="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/image-2-16/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png" data-orig-size="1207,417" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=1024" alt="" class="wp-image-7571" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png 1207w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Imbalanced load sharing between the paths</figcaption></figure>



<h3 id="best-path-selection-among-multiple-paths" class="wp-block-heading">Best Path Selection among multiple paths</h3>



<p class="wp-block-paragraph">Selection of the best path and routing decision in a multihomed scenario can be made by :</p>



<h4 id="fifo-or-round-robin" class="wp-block-heading">FIFO or Round Robin</h4>



<p class="wp-block-paragraph">The first path to respond can be selected first to establish a connection in FIFO, while Round Robin can select paths in order of packet arrival to prevent starvation of a path.</p>



<h4 id="weights-predetermined-or-dynamically-allocated" class="wp-block-heading">Weights ( predetermined or dynamically allocated)</h4>



<p class="wp-block-paragraph">BGP can help provide weight and preferences to paths while exchanging routing and reachability. For example, AS( Autonomous systems ) that connect to multiple ISPs use BGP to advertise their IP prefixes through each link.</p>



<h4 id="prioritization-algorithms" class="wp-block-heading">Prioritization algorithms</h4>



<p class="wp-block-paragraph">In an anycast scenario, where the same address is assigned to multiple destinations, the traffic can be assigned to the geographically nearest, shortest RTT, or best-performing path. For example, to manage ingress traffic to a service across multiple data centers. A more sophisticated algorithm can also add compound metrics such as a derivative of loss, jitter, etc.</p>



<p class="wp-block-paragraph">Cost and load balancing are often top considerations for path selection. The more complex decisions can be based on instantaneous Qos collected or even forecasted. Resource utilization or carbon footprint is also a candidate for path selection. A fairness-based approach can also be built in to avoid starvation.</p>



<h2 id="mobility-management" class="wp-block-heading">Mobility management</h2>



<p class="wp-block-paragraph">Mobility management has been long used to provide network continuity. From telecom devices&#8217; handover between base stations ( home network and visitor network ) to mobile IPv6 ( via home agent and Foreign agent), mobility is crucial to meet the needs of mobile devices for seamless connectivity.</p>



<p class="wp-block-paragraph">In cases of session-based protocols, when the source IP changes after an established connection, the mobility of the protocol should kick in to discover and migrate to another reachable address for the endpoint. This is especially crucial in the case of wireless networks and mobile devices. Examples of such cases may be</p>



<ul class="wp-block-list">
<li>when NATing changes and a host receives a new IP address.</li>



<li>&nbsp;A device with multiple interfaces or uplinks decides to tear down one of the interfaces to uplink and migrate to another one.</li>



<li>&nbsp;A user on a call travels through multiple networks, so the call is handed over from mobile data to wifi, etc.</li>



<li>&nbsp;Switching between ipv4 and ipv6 address</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="404" data-attachment-id="7550" data-permalink="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/image-77/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png" data-orig-size="1114,440" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=1024" alt="" class="wp-image-7550" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image.png 1114w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A mobile node can change its IP address each time it moves to a new network or uses a new uplink. However a mobile node is not be able to maintain transport and higher-layer connections when it changes location. One of the ways to overcome the loss of connection is to assign an independent &#8220;home address&#8221; to the node that doesn&#8217;t change when the node&#8217;s actual ip address changes, as is proposed in RFC 3775 for Mobile IPv6 protocol.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="368" data-attachment-id="7551" data-permalink="https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/image-1-15/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png" data-orig-size="1118,402" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=1024" alt="" class="wp-image-7551" srcset="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png 1118w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Mobility without relying on home network requires shared state </figcaption></figure>



<p class="wp-block-paragraph"> A mobility management protocol should be able to seamlessly update the existing sessions endpoint IP address without re-establishing all of the security protocol or handshakes or using a minimal subset of it.</p>



<h3 id="multipath-protocol-design" class="wp-block-heading">MultiPath  protocol design</h3>



<p class="wp-block-paragraph">To design a multipath protocol with multihoming and seamless session migration, any available network metrics and topologies should be identified. These help build mechanisms for discovery and selection. Multipath management is stateful, and the states are utilized to identify degradation, plan migration, and recovery. Multihoming protocol design can be divided into the following parts </p>



<h4 id="service-discovery" class="wp-block-heading"><strong>Service discovery </strong></h4>



<p class="wp-block-paragraph">The network endpoint needs to detect the presence of multiple paths to a common destination, such as a server. This can be achieved by gaining the link state information at the router, preferred policies and static routes, feedback packets sharing path alternatives, Hello&#8217;s, ICMP, or other monitoring techniques. Address Resolution Protocol(ARP), IPv6 Neighbor Discovery, and Neighbor Unreachability Detection are also instances of path discovery.</p>



<p class="wp-block-paragraph">A successful discovery is followed by routability checks, which involve checking if a BGP session is established. If it is not, then check the advertised IP prefix by each link. At this stage, reviewing the routing table at the hub( or router) to ensure the entries corresponding to each IP prefix point to a valid next-hop address is also an option. Tools like ping and traceroute can be used to confirm that the packets can reach the multihomed network through each link.<br>This prevalidation leads to quick convergence from old to new path in case the network conditions change, and this avoids blackholing traffic and downtime.</p>



<h4 id="unique-identifiers" class="wp-block-heading"><strong>Unique Identifiers </strong></h4>



<p class="wp-block-paragraph">DHCP, a client-server protocol, assigns addresses dynamically to devices as they get joined to a network. Even with rapid network changes, DHCP automates the address assignment from a pool and even relays across subnets. Since the IPV4 address is not necessarily unique across networks (32 bits), a different UUID ( 128 bits) is needed to be generated per endpoint. In the case of IPv6-enabled endpoints, the IPv6 address itself can serve as a unique identifier.</p>



<h5 id="path-route-and-network-identifiers" class="wp-block-heading"><strong>Path / Route</strong> and Network identifiers </h5>



<p class="wp-block-paragraph">To identify migration from one network to another, it is important to address each network uniquely. While the details of most ISP infrastructure itself cannot be determined by analyzing a packet that traversed it, other means of analysis can help narrow the choices, such as IP address ranges and DNS resolutions. TTL ( Time to Live) and RTT (Round Trip Time) can also help make inferences on physical distance. Fragmentation and filtering can help narrow its behavior and policies. For all different kinds of networks identified between a common source and destination, there should be a unique identifier to address the paths. Network identifiers can be in the form of</p>



<ul class="wp-block-list">
<li>Link-layer identifiers for an interface include IEEE 802 addresses on Ethernet links.</li>



<li>subnet prefixes, CIDR</li>



<li>Gateway identification</li>



<li>home address/care of address in mobile ipv6</li>



<li>Index serialization&nbsp;</li>



<li>UUID generated from its characteristics so on</li>
</ul>



<p class="wp-block-paragraph">Append the router&#8217;s address to an array of path identifiers. Such a prefix helps to identify the path.  Example </p>



<ul class="wp-block-list">
<li>SIP via header Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG45684bf9</li>



<li>SIP Route header : &lt;sip:proxy1.atlanta.com;lr&gt;, &lt;sip:proxy2.atlanta.com;lr&gt;</li>
</ul>



<p class="wp-block-paragraph">Some techniques also rely on cookies to identify the route</p>



<h5 id="header-metadata" class="wp-block-heading">Header metadata </h5>



<p class="wp-block-paragraph">In addition to the network identifiers themselves, there are more metadata that need to be part of the payload or the encapsulating header to determine that the packet is traversing the appropriate source and destination. This can be in the form of the following:</p>



<ul class="wp-block-list">
<li>unique pair of ip and port + optional magic number for NAT</li>



<li>&nbsp;tuple of transport type, ip, and port</li>



<li>&nbsp;unique ID derived from timestamp, ip , port, etc</li>
</ul>



<h4 id="pre-registration" class="wp-block-heading">Pre &#8211; <strong>Registration</strong> </h4>



<p class="wp-block-paragraph">As a mobile node detects a new network it registers its current location with the network. This can be in form of authentication as a mobile node enters a network of sending its presence with pub/sub notification. Example :</p>



<ul class="wp-block-list">
<li>SIP registration</li>



<li>acknowlege message for a new init</li>



<li>hello handshake</li>
</ul>



<h4 id="handover-failover-from-one-path-to-another-without-disruption" class="wp-block-heading"><strong>Handover</strong> / Failover from one path to another without disruption</h4>



<p class="wp-block-paragraph">A shift from one network to another can be triggered by various factors such as signal strength, load balancing, or network congestion. The decision to move over to a new network may also be gauged by algorithmically analyzing signal quality, interference, performance metrics, or cost and usage.<br><strong>L2 handover</strong>: Change in link layer connection such as disconnecting from a wireless access point and connecting to another. Another example of mobility management is the telecom network handover, which re-established link-layer connectivity instead of relying on upper layers to reconnect.<br><strong>L3 handover</strong>: change of router to which the mobile node is connected to.<br>Assuming endpoint 1 of the session has M addresses and another endpoint, i.e., endpoint 2 has an N address, then the connection should be able to migrate between any one of the M*N address pairs.</p>



<h4 id="security-association-for-paths" class="wp-block-heading">Security association for paths</h4>



<p class="wp-block-paragraph">Although more related to IPsec tunnels, SAs( security associations) in this context refer to cryptographic certainty that the endpoints are authorized and authenticated. SA uses nonce to randomize the keygen tokens. Additionally, there is anti-replay and rekeys in place to detect if there is possible interference in the communication link. A successful security association should display that the binding is successful and the endpoints are now allowed to transfer data or establish a tunnel to transfer encapsulated encrypted dat</p>



<p class="wp-block-paragraph"><strong>Token based validity </strong>: A token, often generated by nonce and session&#8217;s unique parameters, is often used to validate intermediate messages without having to cross-confirm every packet with the home network or profile database</p>



<p class="wp-block-paragraph"><strong>ESP Header </strong>: In cases of encapsulated packets like Encapsulating Security Payload (ESP), a not null payload authentication header can provide information on the authenticity of the origin.</p>



<p class="wp-block-paragraph"><strong>Pre &#8211;&nbsp;Registration / Validation</strong> : As a mobile node detects a new network, it registers its current location with the network. This can be in the form of authentication as a mobile node enters a network by sending its presence with pub/sub notification. Example: SIP registration, child SAs for various paths in IPSec</p>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list">
<li>IKEv2 Mobility and Multihoming Protocol (MOBIKE) <a href="https://datatracker.ietf.org/doc/html/rfc4555">https://datatracker.ietf.org/doc/html/rfc4555</a></li>



<li>IP mobility <a href="https://datatracker.ietf.org/doc/html/rfc3344">https://datatracker.ietf.org/doc/html/rfc3344</a></li>



<li>Mobility Support in IPv6 <a href="https://datatracker.ietf.org/doc/html/rfc3775">https://datatracker.ietf.org/doc/html/rfc3775</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/12/07/multihoming-protocols-and-mobility/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7540</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-3.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-2.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2024/01/image-1.png?w=1024" medium="image" />
	</item>
		<item>
		<title>Low Latency Media streaming</title>
		<link>https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/</link>
					<comments>https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Tue, 22 Nov 2022 15:14:00 +0000</pubDate>
				<category><![CDATA[Live Streaming and Broadcasting]]></category>
		<category><![CDATA[low latency streaming]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=6222</guid>

					<description><![CDATA[Low latency is imperative for use cases that require mission-critical communication such as the emergency call for first responders, interactive collaboration and communication services, real-time remote object detection etc. Other use cases where low latency is essential are banking communication, financial trading communication, VR gaming etc. When low latency streaming is combined with high definition (HD) quality, the complication grows tenfold. This article discusses RTMP, RTSP, LL HLS, MPEG-DASH and, WebRTC, SRT as technologies to provide low-latency streaming. It also discusses the TradeOff of Latency vs. Quality and congestion control to avoid packet loss which is detrimental to low latency.]]></description>
										<content:encoded><![CDATA[
<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#ntp-synchronization-and-measuring-latency">NTP Synchronization and measuring Latency</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#latency-reduction">Latency reduction</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#Audio-Video-Synchronization">Lip Sync ( Audio Video Synchronization)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#synchronize-clocks">Synchronize clocks</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#congestion-control-realtime-systems">Congestion Control in Real Time Systems </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#feedback-loop">Feedback loop </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#mtu-determination">MTU determination</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#rtcp-feedback">RTCP Feedback</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#resolving-congestion-via-rtcp">Resolving congestion via RTCP</a></li></ol></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#transport-protocol-optimization">Transport Protocol Optimization</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#fasten-session-establishment">Fasten session establishment</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#tradeoff-vs-latency">Trade-Off of Latency vs Quality</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#lossy-vs-lossless-compression">Lossy vs Lossless compression</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#Intra-frame-vs-Inter-frame-compression">Intra frame vs Inter frame compression</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#container-formats-for-streaming">Container Formats for Streaming</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#tcp-based-streaming">TCP based streaming</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#udp-based-streaming">UDP based streaming</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#rtmp">Real-Time Messaging Protocol (RTMP)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#rtsp">RTSP (Real-Time Streaming Protocol)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#HLS">LL ( Low Latency) &#8211; HTTP Live Streaming (HLS)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#MPEG--DASH">MPEG -DASH</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#WebRTC">WebRTC (Web Based Real Time Communication)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#transport-protocol">Transport protocol</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#p2p-peer-to-peer-connections">P2P (Peer-to-Peer) Connections</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#choice-of-codecs">Choice of Codecs</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#network-adaptation">Network Adaptation</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/#CMAF">CMAF (Common Media Application Format)</a></li></ol></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">Key components of Low latency streaming include systems that can support second or even subsecond latency. To achieve this a system should have</p>



<ul class="wp-block-list">
<li>Low latency encoders on edge devices, ideally &lt;100ms processing + small Rx buffers </li>



<li>Global distribution with many pop ( point of presence) at ideally ~50ms from user. Anycast routing works best for lowest latency</li>



<li>Stateless protocols / soft state session tracking</li>



<li>Fast codecs on fast transport as UDP</li>
</ul>



<p class="wp-block-paragraph"> Designing a low-latency streaming protocol and platform involves overcoming significant technical challenges across multiple layers of network stack.</p>



<h2 class="wp-block-heading" id="ntp-synchronization-and-measuring-latency"><a href="#measuring-latency">NTP Synchronization</a> and <a href="#measuring-latency">measuring Latency</a></h2>



<p class="wp-block-paragraph">As latency is critical to maintaining a good Qos in glass to glass streaming and also to implement congestion control, it is critical to measure latency as precisely as possible.</p>



<p class="wp-block-paragraph">A NTP Time server  measures the number of seconds that have elapsed since January 1, 1970. NTP time stamp can represent time values to an accuracy of ± 0.1 nanoseconds (ns). In RTP spec it is a 64-bit double word where top 32 bits represent seconds, and the bottom 32 bits represent fractions of a second. For measuring latency in RTP however NTP time server is not used, instead the audio capture clock forms the basis for NTP time calculation.</p>



<pre class="wp-block-preformatted">RTP/(RTP sample rate) = (NTP + offset) x scale</pre>



<p class="wp-block-paragraph">The latency is then calculated with accurate mappings between the NTP time and RTP media time stamps by sending RTCP packets for each media stream.</p>



<p class="wp-block-paragraph">Latency can be induced at various points in the systems</p>



<ol class="wp-block-list">
<li>Transmitter Latency in the capture, encoding and/or packetization</li>



<li>&nbsp;Network latency including gateways, load balancing, buffering</li>



<li>&nbsp;Media path having TURN servers for Network address traversal, delay due to low bandwidth, transcoding delays in media servers.</li>



<li>&nbsp;Receiver delays in playback due to buffer delay, playout delay by decoder due to hardware constraints</li>
</ol>



<p class="wp-block-paragraph">The delay can be caused by one or many stages of the path in the media stream and would be a cumulative sum of all individual delays. For this reason, TCP is a bad candidate due to its latency incurred in packet reordering and fair congestion control mechanisms. While TCP continues to provide signaling transport, the media is streamed over RTP/UDP.</p>



<h2 class="wp-block-heading" id="latency-reduction"><a href="#latency-reduction">Latency reduction</a></h2>



<p class="wp-block-paragraph">Although modern media stacks such as WebRTC are designed to be adaptable for dynamic network condition, the issues of bandwidth unpredictability leads to packet loss and eventually low Qos. Effective techniques to reduce latency :</p>



<ul class="wp-block-list">
<li><strong>Dynamic network analysis and bandwidth estimation</strong>&nbsp;for adaptive streaming ensure low latency stream reception at the remote end.</li>



<li><strong>Silence suppression</strong>: This is an effective way to save bandwidth
<ul class="wp-block-list">
<li>(+) typical bandwidth reduction after using silence suppression ~50%</li>
</ul>
</li>



<li><strong>Noise filtering</strong>&nbsp;and&nbsp;<strong>Background blurring</strong>&nbsp;are also efficient ways to reduce the network traffic&nbsp;</li>



<li><strong>Forward error correction</strong>&nbsp;or&nbsp;<strong>redundant encoding</strong>, techniques help to recover from packet loss faster than retransmission requests via NACK&nbsp;</li>



<li><strong>Increased Compression</strong>&nbsp;can also optimize packetization and transmission of raw data that targets low latency</li>



<li><strong>Predictive decoding</strong> and end point controlled congestion</li>
</ul>



<p class="wp-block-paragraph">Ineffective techniques that do not improve QoS even if reduce latency&nbsp;</p>



<ul class="wp-block-list">
<li>minimizing headers in every PDU: Some extra headers such as CSRC or timestamp can be removed to create RTPLite but significant disadvantages include having to functionalities using custom logic as
<ul class="wp-block-list">
<li>(-) removing timestamp would lead to issues in cross-media sync ( lip-sync) or jitter, packet loss sync</li>



<li>(-) Removing contributing source identifiers (SSRC ) could lead to issues in managing source identity in multicast or via media gateway.</li>
</ul>
</li>



<li>Too many TURN, STUN servers and candidates collection&nbsp;</li>



<li>lowering resolution or bitrate may achieve low latency but is far from the hi-definition experience that users expect.</li>
</ul>



<h2 class="wp-block-heading" id="Audio-Video-Synchronization"><a href="#Audio-Video-Synchronization">Lip Sync ( Audio Video Synchronization)</a></h2>



<p class="wp-block-paragraph">Many real time communication and streaming platforms have separate audio and video processing pipelines. The output of these two can go out of sync due to differing latency or speed and may may appear out of sync at the playback on receivers end. As the skew increases the viewers perceive it as bad quality.</p>



<p class="wp-block-paragraph">According to convention, at the input to the encoder, the audio should not lead the video by more than 15 ms and should not lag the video by more than 45 ms. Generally the lip sync tolerance is at +- 15 ms.</p>



<h2 class="wp-block-heading" id="synchronize-clocks"><a href="#synchronize-clocks">Synchronize clocks</a></h2>



<p class="wp-block-paragraph">The clock helps in various ways to make the streaming faster by calculating delays with precision</p>



<ul class="wp-block-list">
<li>NTP timestamps help the endpoints measure their delays.</li>



<li>Sequence numbers detect losses as it increases by 1 for each packet transmitted. The timestamps increase by the time covered by a packet which is useful for correcting timing order, playout delay compensation etc.</li>
</ul>



<p class="wp-block-paragraph">To compute transmission time the sender and receiver clocks need to be synchronized with milliseconds of precision. But this is unlikely in a heterogeneous environment as hosts may have different clock speeds. Clock Synchronization can be achieved in various ways </p>



<ol class="wp-block-list">
<li><strong>NTP synchronization</strong> : For multimedia conferences the NTP timestamp from RTCP SR is used to give a common time reference that can associate these independant timesatmps witha wall clock shared time. Thei allows media synchronization between sender in a single session. Additionally RFC 3550 specifies one media-timestamp in the RTP data header and a mapping between such timestamp and a globally synchronized clock( NTP), carried as RTCP timestamp mappings. </li>
</ol>



<p class="wp-block-paragraph">2. <strong>MultiCast</strong> <strong>synchronization</strong>: receivers synchronize to sender&#8217;s RTP Header media timestamp</p>



<ul class="wp-block-list">
<li>(-) good approach for multicast sessions </li>
</ul>



<p class="wp-block-paragraph">3. Round Trip Time measurement as a workaround to calculate clock sync. A round trip propagation delay can help the host sync its clock with peers.</p>



<pre class="wp-block-preformatted">roundtrip_time = send timestamp - reflected timestamp
tramission_time = roundtrip_time / 2</pre>



<ul class="wp-block-list">
<li>(-) this approach assumes equal time for sending and receiving packet which is not the case in cellular networks. thus not suited for networks which are time asymmetrical.</li>



<li>(-) transmission time can also vary with jitter. ( some packets arrive in bursts and some be delayed)</li>



<li>(-) subjected to packet loss</li>
</ul>



<p class="wp-block-paragraph">4. <strong>Adjust playout delay via Marker Bit </strong>: Marker bit indicates beginning of talk spurt. This lets the receiver adjust the playout delay to compensate fir the different click rates between sender and receiver and/or network delay jitter.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="577" height="248" data-attachment-id="6287" data-permalink="https://telecom.altanai.com/image-72/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png" data-orig-size="577,248" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=577" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=577" alt="" class="wp-image-6287" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png 577w, https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=300 300w" sizes="(max-width: 577px) 100vw, 577px" /><figcaption class="wp-element-caption">Marker Bit Header in RTP with GSM payload </figcaption></figure>



<p class="wp-block-paragraph">Receivers can perform delay adaption using marker bit as long as the reordering time of market bit packer with respect to other packets is less than the playout delay. Else the receiver waits for the next talkspurt.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="643" height="110" data-attachment-id="6289" data-permalink="https://telecom.altanai.com/image-1-11/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png" data-orig-size="643,110" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=643" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=643" alt="" class="wp-image-6289" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png 643w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=300 300w" sizes="(max-width: 643px) 100vw, 643px" /><figcaption class="wp-element-caption">Sequence of RTP with GSM payload </figcaption></figure>



<p class="wp-block-paragraph">Similar examples from WebRTC RTP dumps</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="922" height="407" data-attachment-id="6291" data-permalink="https://telecom.altanai.com/image-2-12/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png" data-orig-size="922,407" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=922" alt="" class="wp-image-6291" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png 922w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=768 768w" sizes="(max-width: 922px) 100vw, 922px" /></figure>



<h2 class="wp-block-heading" id="congestion-control-realtime-systems"><a href="#congestion-control-realtime-systems">Congestion Control in Real Time Systems </a></h2>



<p class="wp-block-paragraph">Congestion is when we have reached the peak limit the network can support and path can handle. There could be many reasons for congestion as limits by ISP, high usage at certain time, failure on some network resources causing other relay to be overloaded so on. Congestion can result in</p>



<ul class="wp-block-list">
<li>dropping excess packets =&gt; high packet loss</li>



<li>increased buffering -&gt; overloaded packets will queue and cause erratic delivery -&gt; high jitter</li>



<li>progressively increasing round trip time </li>



<li>congestion control algorithms send explicit notification which trigger other nodes to activate congestion control.</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="902" height="567" data-attachment-id="6366" data-permalink="https://telecom.altanai.com/congestion-in-network-path/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg" data-orig-size="902,567" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="congestion-in-network-path" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=902" alt="" class="wp-image-6366" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg 902w, https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=768 768w" sizes="(max-width: 902px) 100vw, 902px" /></figure>



<p class="wp-block-paragraph">A real time communication system maybe efficient performing encoding/decoding but will be eventually limited by the network. Sending congestion dynamically helps the platform to adapt and ensure a satisfactory quality without losing too many packet at network path. There has been extensive research on the subject of congestion control in both TCP and UDP transports. Simplistic methods use ACK&#8217;s for packet drop and OWD (one way delay) to derive that some congestion may be occurring and go into avoidance mode by reducing the bitrate and/or sending window.</p>



<p class="wp-block-paragraph">UDP/RTP streams have the support of well designed RTCP feedback to proactively deduce congestion situation before it happens. Some WebRTC approaches work around the problem of congestion by providing simulcast , SVC(Temporal/frame rate, spatial/picture size , SNR/Quality/Fidelity&nbsp;) , redundant encoding etc. Following attributes can help to infer congestion in a network</p>



<ul class="wp-block-list">
<li>increasing RTT ( Round Trip Time)</li>



<li>increasing OWD( One Way Delay)</li>



<li>occurance of Packet Loss</li>



<li>Queing Delay Gradient = queue length in bits / Capacity of bottleneck link  </li>
</ul>



<h3 class="wp-block-heading" id="feedback-loop">Feedback loop </h3>



<p class="wp-block-paragraph">A feedback loop between video encoder and congestion controller can significantly help the host from experiencing bad QoS.</p>



<h3 class="wp-block-heading" id="mtu-determination">MTU determination</h3>



<p class="wp-block-paragraph">Maximum transmission Unit ( MTU) determine how large a packet can be to be send via a network. MTU differs on the path and path discovery is an effective way to determine the largest packet size that can be sent.</p>



<h3 class="wp-block-heading" id="rtcp-feedback">RTCP Feedback</h3>



<p class="wp-block-paragraph">To avoid having to expend on retransmission and faulty gaps in playback, the system needs to cumulatively detect congestion. The ways to detect congestion are looking at self&#8217;s sending  buffer and observing receivers feedback. RTP supports mechanisms that allow a form of congestion control on longer time scales. </p>



<h4 class="wp-block-heading" id="resolving-congestion-via-rtcp">Resolving congestion via RTCP</h4>



<p class="wp-block-paragraph">Some popular approaches to overcome congestion are limiting speed and sending less</p>



<ul class="wp-block-list">
<li>Throttling video frame acquisition at the sender when the send buffer is full </li>



<li>change the audio/video encoding rate </li>



<li>Reduce video frame rate, or video image size at the transmitter</li>



<li>modifying the source encoder</li>
</ul>



<p class="wp-block-paragraph">The aim of these algorithms is usually a trade-off between Throughout and Latency. Hence maximizing throughout and penalizing delays is a formula use often to come up with more modern congestion control algorithms.</p>



<ul class="wp-block-list">
<li>LEDBAT </li>



<li>NADA ( Network Assisted Dynamic Adaption) which uses a loss vs delay algorithm using OWD,</li>



<li>SCREAM ( Sefl Clocked Rate Adaptation for multimedia)  </li>



<li>GCC ( google congestion control) uses kalman filter on end to end OWD( one way delay) and compares against an adaptive threhsold to throttle the sending rate.</li>
</ul>



<h2 class="wp-block-heading" id="transport-protocol-optimization"><a href="#transport-protocol-optimization">Transport Protocol Optimization</a></h2>



<p class="wp-block-paragraph">A low latency transport such as UDP is most appropriate for real time transmission of media packet, due to smaller packet and ack less operation. A TCP transport for such delay sensitive environments is not ideal. Some points that show TCP unsuited for RTP are :</p>



<ul class="wp-block-list">
<li>Missing packet discovery and retrasmission will take atleast one round trip time using ack which either results in audible gap in playout or the retransmitted packet being discarded by altogether  by decoder buffer.</li>



<li>TCP packets are heavier than UDP.</li>



<li>TCP cannot support multicast</li>



<li>TCP congestion control is inapplicable to real time media as it reduces the congestion window when packet loss is detected. This is unsuited to codecs which have a specific sampling like PCM is 64 kb/s + header  overhead. </li>
</ul>



<h2 class="wp-block-heading" id="fasten-session-establishment"><a href="#fasten-session-establishment">Fasten session establishment</a></h2>



<p class="wp-block-paragraph">Lower layer protocols are always required to have control over resources in switches, routers or other network relay points. However, RTP provides ways to ensure a fast real-time stream and its feedback including timestamps and control synchronization of different streams to the application layer.</p>



<ol class="wp-block-list">
<li><strong>Mux the stream:</strong>&nbsp;RTP and RTCP share the same socket and connection, instead of using two separate connections.</li>
</ol>



<ul class="wp-block-list">
<li>(+) Since the same port is used fewer ICE candidates gathering is required in WebRTC.</li>
</ul>



<p class="wp-block-paragraph">2.&nbsp;<strong>Prioritize PoP</strong>&nbsp;( points of presence) under quality control over open internet relays points.</p>



<p class="wp-block-paragraph">3.&nbsp;<strong>Parallelize AAA</strong>&nbsp;( authentication and authorization) with session establishing instead of serializing it.</p>



<h2 class="wp-block-heading" id="tradeoff-vs-latency"><a href="#tradeoff-vs-latency">Trade-Off of Latency vs Quality</a></h2>



<p class="wp-block-paragraph">To achieve reliable transmission the media needs to be compressed  ( made smaller) which may lead to loss of certain picture quality.</p>



<h3 class="wp-block-heading" id="lossy-vs-lossless-compression"><a href="#lossy-vs-lossless-compression">Lossy vs Lossless compression</a></h3>



<p class="wp-block-paragraph">Loss Less Compression will incur higher latency as compared to lossy compression.</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td><strong>Loss Less Compression</strong></td><td><strong>Lossy Compression</strong></td></tr><tr><td>(+) Better picture quality</td><td>(-) lower picture quality</td></tr><tr><td>(-) higher power consumption</td><td>(+) lower power consumption at encoder and decoder</td></tr><tr><td>suited for file storage</td><td>suited for real time streaming</td></tr></tbody></table></figure>



<h3 class="wp-block-heading" id="Intra-frame-vs-Inter-frame-compression"><a href="#Intra-frame-vs-Inter-frame-compressssion">Intra frame vs Inter frame compression</a></h3>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Intra frame</td><td>Inter frame</td></tr><tr><td>Intra frame compression reduce bits to decribe a single frame ( lie JPEG)</td><td>Reduce the bit to decode a series of frame by removing duplicate information<br>Type: <br>I &#8211; frame : a complete picture without any loss<br>P &#8211; frame : partical picture with delat from previous frame <br>B &#8211;  frame : a partical pictureusing modification from previous and future pictures. </td></tr><tr><td>suited for images </td><td></td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="container-formats-for-streaming">Container Formats for Streaming</h2>



<p class="wp-block-paragraph">Some time ago Flash + RTMP was the popular choice for streaming. Streaming involves segmenting a audio or audio inot smaller chunks which can be easily transmitted over networks. Container formats contain an encoded video and audio track in a single file which is then streamed using the streaming protocol. It is encoded in different resolutions and bitrates. Once received it is again stored in a container format (MP4, FLV).</p>



<p class="wp-block-paragraph">ABR formats are HTTP-based, media-streaming communications protocols. As the connection gets slower, the protocol adjusts the requested bitrate to the available bandwidth. Therefore, it can work on different network bandwidths, such as 3G or 4G.</p>



<h3 class="wp-block-heading" id="tcp-based-streaming">TCP based streaming</h3>



<ul class="wp-block-list">
<li>(-) slow start due to three way handshake , TCP Slow Start and congestion avoidance phase</li>



<li>(+) SACK to overcoming resending the whole chain for a lost packet</li>
</ul>



<h3 class="wp-block-heading" id="udp-based-streaming">UDP based streaming</h3>



<p class="wp-block-paragraph">One of the first television broadcasting techniques, such as in IPTV over fibre with repeaters , was multicast broadcasting with MPEG Transport Stream content over UDP.&nbsp; This is suited for internal closed networks but not as much for external networks with issues such as interference, shaping, traffic congestion channels, hardware errors, damaged cables, and software-level problems. In this case, not only low latency is required, but also retransmission of lost packets.</p>



<ul class="wp-block-list">
<li>(-) needs FEC for overcoming lost packets which causes overheads</li>
</ul>



<h3 class="wp-block-heading" id="rtmp"><a href="#rtmp">Real-Time Messaging Protocol (RTMP)</a></h3>



<p class="wp-block-paragraph">Developed by Macromedia and&nbsp;acquired by Adobe&nbsp;in 2005. Originally developed to support Flash streaming, RTMP enables segmented streaming. RTMP Codecs</p>



<ul class="wp-block-list">
<li>Audio Codecs: AAC, AAC-LC, HE-AAC+V1 and V2, OPUS, MP3, SPEEX, VORBIS</li>



<li>Video Codecs: H.264, VP6, VP8</li>
</ul>



<p class="wp-block-paragraph">RTMP is widely used for ingest and usually has latency ~5s. RTMP works on TCP using default port 1935. RTMP uses UDP by replaced chunked stream. It has many variations such as</p>



<ul class="wp-block-list">
<li>(-) HTTP incompatible.</li>



<li>(-) may get blocked by some firewalls</li>



<li>(-) delay from 2-3 s , upto 30 s</li>



<li>(+) multicast supported</li>



<li>(+) Low buffering</li>



<li>(-) non support for vp9/HEVC/AV1</li>



<li>(-) Medium latency 2-5s</li>
</ul>



<p class="wp-block-paragraph">RTMP forms several virtual channels on which audio, video, metadata, etc. are transmitted.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="595" height="579" data-attachment-id="7196" data-permalink="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/image-5-10/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png" data-orig-size="595,579" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-5" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=595" src="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=595" alt="" class="wp-image-7196" srcset="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png 595w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=300 300w" sizes="(max-width: 595px) 100vw, 595px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="581" height="526" data-attachment-id="7197" data-permalink="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/image-6-8/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png" data-orig-size="581,526" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-6" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=581" src="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=581" alt="" class="wp-image-7197" srcset="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png 581w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=300 300w" sizes="(max-width: 581px) 100vw, 581px" /><figcaption class="wp-element-caption">RTMP Body</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="872" height="576" data-attachment-id="7195" data-permalink="https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/image-4-10/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png" data-orig-size="872,576" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=872" alt="" class="wp-image-7195" srcset="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png 872w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=768 768w" sizes="(max-width: 872px) 100vw, 872px" /><figcaption class="wp-element-caption">RTMP packet</figcaption></figure>



<h3 class="wp-block-heading" id="rtsp"><a href="#rtsp">RTSP</a> (Real-Time Streaming Protocol)</h3>



<p class="wp-block-paragraph">RTSP is primarily used for streaming and controlling media such as audio and video on IP networks. It relies on external codecs and security. It is not typically used for low-latency streaming because of its design and the way it handles data transfer. RTSP uses TCP (Transmission Control Protocol) as its transport protocol. This protocol is designed to provide reliability and error correction, but it also introduces additional overhead and latency compared to UDP.<br>RTSP cannot adjust the video and audio bitrate, resolution, and frame rate in real-time to minimize the impact of network congestion. </p>



<ul class="wp-block-list">
<li>(-) legacy requires system software</li>



<li>(+) often used by Surveillance system or IOT system with higher latency tolerance</li>



<li>(-) mostly compatible with android mobile clients</li>
</ul>



<h3 class="wp-block-heading" id="HLS"><a href="#HLS">LL ( Low Latency) &#8211; HTTP Live Streaming (HLS)</a></h3>



<p class="wp-block-paragraph">While traditional HLS has large chunk of segments 6-10 seconds, LLHLS has 3-5 seconds or less. Additionally LLHLS also has partial segments which allow HTTP player to play them before full segment is received. Additionally leveraging HTTP2 and HTTP3 makes LLHLS even faster and better in performance, allowing faster switching in quality.</p>



<p class="wp-block-paragraph">HLS can adapt the bitrate of the video to the actual speed of the connection using container format such as mp4. Apple’s HLS protocol used the MPEG transport stream container format or .ts (MPEG-TS)</p>



<ul class="wp-block-list">
<li>Audio Codecs: AAC-LC, HE-AAC+ v1 &amp; v2, xHE-AAC, FLAC, Apple Lossless</li>



<li>Video Codecs: H.265, H.264</li>
</ul>



<p class="wp-block-paragraph">The sub 2 second latency using fragmented 200ms chunks .</p>



<ul class="wp-block-list">
<li>(+) relies on ABR to produce ultra high quality streams </li>



<li>(+) widely compatible even HTML5 video players </li>



<li>(+) secure with HTTPS and DRM ( Digital Rights Management)</li>



<li>(-) higher latency ( sub 2 second) than WebRTC</li>



<li>(-) propertiary : HLS capable encoders are not accessible or affordable </li>
</ul>



<h3 class="wp-block-heading" id="MPEG--DASH"><a href="#MPEG -DASH">MPEG -DASH</a></h3>



<p class="wp-block-paragraph">MPEG DASH (MPEG DASH (Dynamic Adaptive Streaming over HTTP)) is primarily used for streaming on-demand video and audio content over HTTP. A HTTP based streaming protocol by MPEG, as an alternative to HLS. While MPEG is an open standard, HLS is widely used by apple devices.</p>



<p class="wp-block-paragraph">MPEG-DASH and HLS are  much similar as both protocols run over HTTP, use TCP as their transport protocol, breaking video into segments with an accompanying  manifest index file, and offer adaptive bitrate streaming. MPEG-DASH uses .mp4 containers as HLS streams are delivered in .ts format.</p>



<p class="wp-block-paragraph">MPEG DASH uses HTTP (Hypertext Transfer Protocol) as its transport protocol, which allows for better compatibility with firewalls and other network devices, but it also introduces additional overhead and latency, hence unsuitable for low latency streaming</p>



<ul class="wp-block-list">
<li>(+) supports adaptive streaming (ABR)</li>



<li>(+) open source </li>



<li>(-) incompatible to apple devices  </li>



<li>(-) not provided out of box with browsers, requires system software for playback</li>



<li>(-) high latency ~10-30s</li>
</ul>



<h3 class="wp-block-heading" id="WebRTC"><a href="#WebRTC">WebRTC (Web Based Real Time Communication)</a></h3>



<p class="wp-block-paragraph">Low latency is imperative for use cases that require mission-critical communication such as the emergency call for first responders, interactive collaboration and communication services, real-time remote object detection etc. Other use cases where low latency is essential are banking communication, financial trading communication, VR gaming etc. When low latency streaming is combined with high definition (HD) quality, the complication grows tenfold. Some instance where good video quality is as important as sensitivity to delay is telehealth for patient-doctor communication.  WebRTC is the most used p2p Web bsed streaming with sub second latency. Inbuild Latency control. However it is not suited to multicast streaming usecases.</p>



<h3 class="wp-block-heading" id="transport-protocol">Transport protocol</h3>



<p class="wp-block-paragraph">WebRTC uses UDP as its transport protocol, which allows for faster and more efficient data transfer compared to TCP (Transmission Control Protocol). UDP does not require the same level of error correction and retransmission as TCP, which results in lower latency.</p>



<h3 class="wp-block-heading" id="p2p-peer-to-peer-connections">P2P (Peer-to-Peer) Connections</h3>



<p class="wp-block-paragraph">WebRTC allows for P2P connections between clients, which reduces the number of hops that data must travel through and thus reduces latency. WebRTC also use Data channel API which can transmit data p2p swiftly such as state changes or messages.</p>



<h3 class="wp-block-heading" id="choice-of-codecs">Choice of Codecs</h3>



<p class="wp-block-paragraph">Most WebRTC providers use vp9 codec ( successor to vp8) for video compression which is great at providing high quality with reduced data.</p>



<h3 class="wp-block-heading" id="network-adaptation">Network Adaptation</h3>



<p class="wp-block-paragraph">WebRTC adapts to networks in realtime by adjusting bitrate, resolution, framework with changes in networks conditions. This auto adjusting quality also helps WebRTC mitigate the losses under congestion buildup.</p>



<ul class="wp-block-list">
<li>(+) open source and support for other open source standardized techs such as Vp8, Vp9 , Av1 video codecs , OPUS audio codec. Also supported H264 certain profiles and other telecom codecs </li>



<li>(+) secure E2E SRTP</li>



<li>(-) evolving still </li>
</ul>



<h3 class="wp-block-heading" id="CMAF"><a href="#CMAF">CMAF (Common Media Application Format)</a></h3>



<p class="wp-block-paragraph">Format to enable HTTP based streaming. It is compatible with DASH and HLS players by using a new uniform transport container file. Apple and Microsoft proposed CMAF to the Moving Pictures Expert Group (MPEG) in 2016 . CMAF features </p>



<ul class="wp-block-list">
<li>(+) Simpler </li>



<li>(+) chunked encoder and chunked transfer</li>



<li>(-) 3-5 s of latency </li>



<li>(+) increases CDN efficiency </li>
</ul>



<p class="wp-block-paragraph">CMAF Addressable Media Objects : CMAF header , CMAF segment , CMAF chunk , CMAF track file. Logical components of CMAF</p>



<ul class="wp-block-list">
<li><strong>CMAF Track</strong>: contains encoded media samples, including audio, video, and subtitles. Media samples are stored in a CMAF specified container. Tracks are made up of a CMAF Header and one or more CMAF Fragments.</li>



<li><strong>CMAF Switching Set</strong>: contains alternative tracks that can be switched and spliced at CMAF Fragment boundaries to adaptively stream the same content at different bit rates and resolutions.</li>



<li><strong>Aligned CMAF Switching Set</strong>: two or more CMAF Switching Sets encoded from the same source with alternative encoding; for example, different codecs, and time aligned to each other.</li>



<li><strong>CMAF Selection Set</strong>: a group of switching sets of the same media type that may include alternative content (for example, different languages or camera angles) or alternative encoding (for example,different codecs).</li>
</ul>



<p class="wp-block-paragraph">CMAF Presentation: one or more presentation time synchronized selection sets.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="cbJLX7kvSB"><a href="https://telecom.altanai.com/2020/06/22/media-architecture/">Media Architecture, RTP&nbsp;topologies</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Media Architecture, RTP&nbsp;topologies&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2020/06/22/media-architecture/embed/#?secret=MHBgc9uMTf#?secret=cbJLX7kvSB" data-secret="cbJLX7kvSB" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph"></p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">Ref :</p>



<ul class="wp-block-list">
<li>BufferBloat: What&#8217;s Wrong with the Internet?A discussion with Vint Cerf, Van Jacobson, Nick Weaver, and Jim Gettys</li>



<li>RTSP
<ul class="wp-block-list">
<li><a href="https://datatracker.ietf.org/doc/html/rfc7826" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc7826</a></li>
</ul>
</li>



<li>SRT
<ul class="wp-block-list">
<li>SRT wikipedia <a href="https://en.wikipedia.org/wiki/Secure_Reliable_Transport" rel="nofollow">https://en.wikipedia.org/wiki/Secure_Reliable_Transport</a></li>



<li><a href="https://github.com/Haivision/srt/" rel="nofollow">https://github.com/Haivision/srt/</a></li>
</ul>
</li>



<li>CMAF
<ul class="wp-block-list">
<li><a href="http://www.reznik.org/papers/PeckR_BEITC2019.pdf" rel="nofollow">http://www.reznik.org/papers/PeckR_BEITC2019.pdf</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/11/22/low-latency-media-streaming/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6222</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2022/11/pexels-photo-290470.jpeg" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/pexels-photo-290470.jpeg" medium="image">
			<media:title type="html">asphalt blur car city</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image.png?w=577" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-1.png?w=643" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-2.png?w=922" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/congestion-in-network-path.jpg?w=902" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/image-5.png?w=595" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/image-6.png?w=581" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/image-4.png?w=872" medium="image" />
	</item>
		<item>
		<title>Fault Tolerance and Error Correction in WebRTC</title>
		<link>https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/</link>
					<comments>https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 07:09:52 +0000</pubDate>
				<category><![CDATA[WebRTC standards]]></category>
		<category><![CDATA[Congestion]]></category>
		<category><![CDATA[Error Correction]]></category>
		<category><![CDATA[Fault Tolerance]]></category>
		<category><![CDATA[FEC]]></category>
		<category><![CDATA[FIR]]></category>
		<category><![CDATA[GCC]]></category>
		<category><![CDATA[Jitter Buffer]]></category>
		<category><![CDATA[low latency]]></category>
		<category><![CDATA[PLI]]></category>
		<category><![CDATA[RED]]></category>
		<category><![CDATA[RTCP]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=6118</guid>

					<description><![CDATA[Fluctuating Networks WebRTC has build in capabilities to detect network glitches and adapt itself to changing situations. Some of the methodologies used are listed below. Dynamic Bandwidth estimation Bandwidth are dependent on network strength and is affected by the other users on the network. Under hetrogenious network conditions Bandwidth estimation is a critical step to &#8230; <a href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/" class="more-link">Continue reading <span class="screen-reader-text">Fault Tolerance and Error Correction in&#160;WebRTC</span></a>]]></description>
										<content:encoded><![CDATA[
<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#fluctuating-networks">Fluctuating Networks</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#dynamic-bandwidth-estimation">Dynamic Bandwidth estimation </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#jitterbuffer">JitterBuffer </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#sdp-renegotiation"> SDP renegotiation</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#Demand-for-High-Quality-Video">Demand for High Quality Video </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#tradeof-latency-quality">Tradeoff between Latency vs Quality </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#adaptive-streaming">Layering for adaptive streaming</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#Better-compression-algorithms-vs-CPU-compute">Better compression algorithms vs CPU compute</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#fir">Full INTRA-frame Request (FIR)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#pli">Picture Loss Indication (PLI)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#red">Redundant Encoding (RED) in Media Packets </a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#congestion">Congestion</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#feedback-loop">Feedback Loop </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#lower-bitrate">Overcome congestion with lower bitrate </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#reduce-resolution">Reduce frame quality and resolution </a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#gcc">Congestion control Algorithms : Google Congestion Control ( GCC)</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#high-packet-loss">Low Network Strength and High Packet Loss</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#recovering-packet-loss">Recovering Lost packets</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#ack">Acknowledgement to identify packet loss</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#forward-error-correction-fec">Forward Error Correction (FEC) </a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#highrtt">Long distance Calls and High Round Trip Time</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#sender-receiver-report">Using Receiver reports and Sender Reports from RTCP to adjust to network conditions</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#low-latency">Low Latency Media Streaming </a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#measuring-latency">Measuring latency</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#NTP-sync">NTP Synchronization of Audio Video Sync</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#webrtc-security">Demand for higher security on WebRTC&#8217;s CPaaS</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#end-to-end-encryption">End to End Encryption</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/#rtcp-mux">Minimize Public-private mapping pairs vai RTCP-mux</a></li></ol></li></ol>



<hr class="wp-block-separator has-css-opacity" />



<h2 class="wp-block-heading" id="fluctuating-networks"><a href="#fluctuating-networks">Fluctuating Networks</a></h2>



<p class="wp-block-paragraph">WebRTC has build in capabilities to detect network glitches and adapt itself to changing situations. Some of the methodologies used are listed below. </p>



<h3 class="wp-block-heading" id="dynamic-bandwidth-estimation"><a href="#dynamic-bandwidth-estimation">Dynamic Bandwidth estimation </a></h3>



<p class="wp-block-paragraph">Bandwidth are dependent on network strength and is affected by the other users on the network. Under hetrogenious network conditions Bandwidth estimation is a critical step to improve call quality and end user exeprince.</p>



<h3 class="wp-block-heading" id="jitterbuffer"><a href="#jitterbuffer">JitterBuffer</a> </h3>



<p class="wp-block-paragraph">An unreliable network / fluctiating one will cause some packets to be delivered on time and some to be delayed more thn others, causing them to come in bursts. JitterBuffer is an effective methodology for Jitter management which ensures a steady delivery of apckets even when the peers transmit at flucting rates. </p>



<p class="wp-block-paragraph">A jitter buffer is a buffer that consumes packets as soon as they arrive and keep them untill the frame can be fully reconstructed. At the point when all apckets have bee filled in buffer ( in any order ) it emiits it for decoding which the play can playback to user. Note that serveral RTP packet can have the same timestamp is they are part of the same video frame. </p>



<ul class="wp-block-list">
<li>(+) dynamically manages unordered packets and reconstrcts a frame after accumulating all packets</li>



<li>(-) can introduce latency for packets that arrive early </li>



<li>(-) Need active resisizing by means of feedback
<ul class="wp-block-list">
<li>for hi speed and goog network jitterbuffer can ve small sized</li>



<li>for congested and disruptive networks it is better to keep a longer buffer which can also add some latency</li>
</ul>
</li>



<li>(-) buffer has limited capacity so the packet can expire if not received within a duration &#8220;jitterBufferDealy&#8221;.  </li>
</ul>



<h3 class="wp-block-heading" id="sdp-renegotiation"> SDP renegotiation</h3>



<p class="wp-block-paragraph">-TBD</p>



<h2 class="wp-block-heading" id="Demand-for-High-Quality-Video"><a href="#Demand-for-High-Quality-Video">Demand for High Quality Video </a></h2>



<p class="wp-block-paragraph">Applications telehealth, advertising or broadcasting on WebRTC media streams </p>



<h3 class="wp-block-heading" id="tradeof-latency-quality"><a href="#tradeof-latency-quality">Tradeoff between Latency vs Quality </a></h3>



<p class="wp-block-paragraph">Reduced resolution, framerate, bit rate are effective for congestion control however not suited to the case of High defintaion  video conferecing such as gaming , telehealth of broadcast of concert as it may hinder with user experience. </p>



<h3 class="wp-block-heading" id="adaptive-streaming"><a href="#adaptive-streaming">Layering for adaptive streaming</a></h3>



<p class="wp-block-paragraph">using the I-frame , P-frame and B frame efficiently in the codec combines with predictive machine learning models make packet loss unnoticible to the human eye. Marker ( M bit) in the RTP packet structure marks keyframes.</p>



<ul class="wp-block-list">
<li>(-) more complex compression algorithms </li>
</ul>



<h3 class="wp-block-heading" id="Better-compression-algorithms-vs-CPU-compute"><a href="#Better-compression-algorithms-vs-CPU-compute">Better compression algorithms vs CPU compute</a></h3>



<p class="wp-block-paragraph">A better performing compression algorithm produces fewer bits to encode the same video quality as its predecessor. </p>



<ul class="wp-block-list">
<li>(-) Higher performing compression engines most always has higher energy consumption and carbon footprint </li>



<li>(+) resilent to network fluctuations   </li>
</ul>



<h3 class="wp-block-heading" id="fir"><a href="#fir">Full INTRA-frame Request (FIR)</a></h3>



<p class="wp-block-paragraph">Requests a key frame to decode the frame. Can be used when a new peer joins the conference a key frane is required to start decoding its video strea,. </p>



<h3 class="wp-block-heading" id="pli"><a href="#pli">Picture Loss Indication (PLI)</a></h3>



<p class="wp-block-paragraph">Partial frames given to decoder are unprocessable, then PLI message is send to the sender. As the sender receives pli message it will produce new I-frames to help the reciver decore the frames. </p>



<pre class="wp-block-preformatted has-small-font-size">a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100</pre>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>FIR</td><td>PIL</td></tr><tr><td>request a full key frame from the sender , when new memeber enters the session.</td><td>request a full key frame from the sender, when partial frames were given to the decoder, but it was unable to decode them</td></tr><tr><td></td><td>causes of making PLI request could be decoder crash or heavy loss</td></tr></tbody></table></figure>



<h3 class="wp-block-heading" id="red"><a href="#red">Redundant Encoding (RED) in Media Packets </a></h3>



<p class="wp-block-paragraph">Recovers packet loss under lossy networks by adding extra bits of information in following packets. </p>



<ul class="wp-block-list">
<li>(+) good for unpredictable networks </li>
</ul>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="182" height="123" data-attachment-id="6188" data-permalink="https://telecom.altanai.com/image-12-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png" data-orig-size="182,123" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-12" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png?w=182" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png?w=182" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png?w=182" alt="" class="wp-image-6188" style="width:269px;height:182px" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png 182w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png?w=150 150w" sizes="(max-width: 182px) 100vw, 182px" /></figure>



<p class="wp-block-paragraph">LBRR ( low bit-rate redundancy) &#8211; tbd</p>



<h2 class="wp-block-heading" id="congestion"><a href="#congestion">Congestion</a></h2>



<p class="wp-block-paragraph">Congestion is created when a network path has reached its maximum limits which could be due to </p>



<ul class="wp-block-list">
<li>failures(switches, routers, cables, fibres ..) </li>



<li>over subscription and operating at peak bandwidth. </li>



<li>broadcast storms </li>



<li> Inapt BGP routing and congestion detection </li>



<li>BGP is responsisble for finiding the shortest routable path for a packet </li>
</ul>



<p class="wp-block-paragraph">The direct consequences of congestion for any network transport can be </p>



<ul class="wp-block-list">
<li>High Latency</li>



<li>Connection Timeouts </li>



<li>Low throughput</li>



<li>Packet loss </li>



<li>Queueing delay</li>
</ul>



<p class="wp-block-paragraph">With respect to WebRTC streams too, if a network has congestion, the buffer will overflow and packets will be droppped. Due to excessive dropping of packets both transmission time and jitter increases.To overcome this adaptive buffereing is used as jitter increases or decreases.</p>



<h3 class="wp-block-heading" id="feedback-loop"><a href="#feedback-loop">Feedback Loop </a></h3>



<p class="wp-block-paragraph">A  congestion notifier and detection algorithm can analyze the RTCP metrics for possible congestion in the network route and suggest options to overcome it. Part of Adaptive Bitrate and Bandwidth Estimation process.</p>



<h3 class="wp-block-heading" id="lower-bitrate"><a href="#lower-bitrate">Overcome congestion with lower bitrate </a></h3>



<p class="wp-block-paragraph">Rate limiting the sending information is one way to overcome congestion, even though it could lead to bad  call quality at the reciver&#8217;s end and non typical for realtime communciation systems </p>



<h3 class="wp-block-heading" id="reduce-resolution"><a href="#reduce-resolution">Reduce frame quality and resolution </a></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" width="215" height="127" data-attachment-id="6161" data-permalink="https://telecom.altanai.com/image-7-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png" data-orig-size="215,127" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-7" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png?w=215" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png?w=215" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png?w=215" alt="" class="wp-image-6161" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png 215w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png?w=150 150w" sizes="(max-width: 215px) 100vw, 215px" /><figcaption class="wp-element-caption">Full HD constraint</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" width="196" height="119" data-attachment-id="6159" data-permalink="https://telecom.altanai.com/image-6-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png" data-orig-size="196,119" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-6" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png?w=196" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png?w=196" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png?w=196" alt="" class="wp-image-6159" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png 196w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png?w=150 150w" sizes="(max-width: 196px) 100vw, 196px" /><figcaption class="wp-element-caption">vga constraints </figcaption></figure>
</div>
</div>



<h3 class="wp-block-heading" id="gcc"><a href="#gcc">Congestion control Algorithms : Google Congestion Control ( GCC)</a></h3>



<p class="wp-block-paragraph">Bandwidth estimation and congestion control are ofetn paird in as a  operational unit. Primarily packet loss and inter packet arrival times drives the bandwidth estimation and enable GCC to flagcongestion.</p>



<ul class="wp-block-list">
<li>On the receiver side <strong>TMMBR/TMMBN</strong> (Temporary Maximum Media Stream Bit Rate Request/Notification) and  <strong>REMB</strong>(Receiver Estimated Maximum Bitrate ) exchange the bandwodth estimates.</li>



<li>On the sender side <strong>TWCC</strong>(Transport wide congestion control) can be used.</li>
</ul>



<p class="wp-block-paragraph">Other congestion control algorithms </p>



<ul class="wp-block-list">
<li>QUIC Loss Detection and Congestion Control RFC 9002</li>



<li>Coupled Congestion Control for RTP Media rfc8699</li>



<li>NADA: A Unified Congestion Control Scheme for Real-Time Media &#8211; Network Working group</li>



<li>Self-Clocked Rate Adaptation for Multimedia RMCAT WG</li>



<li>SCReAM &#8211; Mobile optimised congestion control algorithm by Ericson</li>
</ul>



<h2 class="wp-block-heading" id="high-packet-loss"><a href="#high-packet-loss">Low Network Strength and High Packet Loss</a></h2>



<p class="wp-block-paragraph">Packet loss is the loss of packets in transmission which could be owing to  </p>



<ul class="wp-block-list">
<li>network resources and path</li>



<li>transmission medium congestion </li>



<li>applications inability to absord delayed packets.</li>



<li>Maximum Transmission Unit size : measure of how large a single apcket can be.</li>
</ul>



<h3 class="wp-block-heading" id="recovering-packet-loss"><a href="#recovering-packet-loss">Recovering Lost packets</a></h3>



<p class="wp-block-paragraph">High definition video stream requires low/no packet loss and fast recovery if any. RTP intrinsically has no means for recovering packet loss. Instead, low bit rate redundancy can be added to packets themselves to make up for any loss. Retransmission of lost packets can be a feature developed over RTP using sequence numbers head in RTP.</p>



<h3 class="wp-block-heading" id="ack"><a href="#ack">Acknowledgement to identify packet loss</a></h3>



<p class="wp-block-paragraph">A receiver can notifiy the sender of the possible concerns around packet loss by means of sendings acks.</p>



<ul class="wp-block-list">
<li><strong>Selective Acknowledgement (SACK) :</strong> notifies the sender of multiple packets and thereby indicating gaps </li>



<li><strong>Negative Acknowledgements (NACK ) </strong>: notifies the sender of packets lost
<ul class="wp-block-list">
<li>RTCP Packet Type 193 denotes NACK.</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li>(+) higher NACK count is suggestive of high packet loss </li>



<li>(-) round trip time for NACK to send and waiting for packet to be retransmitted and receive in response can cause significant delay</li>
</ul>



<h3 class="wp-block-heading" id="forward-error-correction-fec"><a href="#fec">Forward Error Correction (FEC) </a></h3>



<p class="wp-block-paragraph">The sender proactively send redundant data such that lost packets dont affact the stream on receiver&#8217;s end. </p>



<ul class="wp-block-list">
<li>(+) receiver doesnt have to request for exgtra data to be sent , the sender does it by itself at RTP level</li>



<li>(+) less delay than NACK which incurs round trip time</li>



<li>(-)  involve extra bandwidth.</li>
</ul>



<h2 class="wp-block-heading" id="highrtt"><a href="#highrtt">Long distance Calls and High Round Trip Time</a></h2>



<p class="wp-block-paragraph">Geographical distances can add significant delay in Transmission time.Transmission time is an important metric in  the Call Quality analysis however calculating transmission time as sthe different of timestamp of sending and timestamp of receiving requires perfect sync of systems clock which is unreliable. </p>



<pre class="wp-block-preformatted has-small-font-size">transmission_time = timestamp_send - timestamp_receive</pre>



<p class="wp-block-paragraph">For this reason RTT( Round Trip Time)is a better means to avoid clock synchoronization errors. </p>



<pre class="wp-block-preformatted has-small-font-size">transmission_time = rtt /2 </pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" width="314" height="186" data-attachment-id="6149" data-permalink="https://telecom.altanai.com/image-2-11/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png" data-orig-size="314,186" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=314" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=314" alt="" class="wp-image-6149" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png 314w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=300 300w" sizes="(max-width: 314px) 100vw, 314px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="312" height="185" data-attachment-id="6151" data-permalink="https://telecom.altanai.com/image-4-7/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png" data-orig-size="312,185" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=312" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=312" alt="" class="wp-image-6151" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png 312w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=300 300w" sizes="(max-width: 312px) 100vw, 312px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" width="315" height="181" data-attachment-id="6150" data-permalink="https://telecom.altanai.com/image-3-7/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png" data-orig-size="315,181" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-3" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=315" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=315" alt="" class="wp-image-6150" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png 315w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=300 300w" sizes="(max-width: 315px) 100vw, 315px" /></figure>
</div>
</div>



<h3 class="wp-block-heading" id="sender-receiver-report"><a href="#sender-receiver-report">Using Receiver reports and Sender Reports from RTCP to adjust to network conditions</a></h3>



<p class="wp-block-paragraph">Sender and receiver reports (SR and RR) provide a highlight of the connection and media quality streaming on this connection.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="579" data-attachment-id="6173" data-permalink="https://telecom.altanai.com/image-8-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png" data-orig-size="1363,771" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-8" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=1024" alt="" class="wp-image-6173" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png 1363w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">RTCP Senders report for WebRTC media stream</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="640" data-attachment-id="6175" data-permalink="https://telecom.altanai.com/image-9-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png" data-orig-size="1364,853" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-9" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=1024" alt="" class="wp-image-6175" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png 1364w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">RTCP receivers report for WebRTC media stream</figcaption></figure>



<h2 class="wp-block-heading" id="low-latency"><a href="#low-latency">Low Latency Media Streaming </a></h2>



<p class="wp-block-paragraph">Latency is calculated from getting user media encoding transmission , network delays , buffering , decoding and playback. There are many factors involved in latency management such as queing delays , media path, CPU utilization etc.</p>



<p class="wp-block-paragraph">Optimize Compute resource </p>



<ul class="wp-block-list">
<li>mobile agents have lesser computative power</li>



<li>Camera with features such as auto focus or other adjustments will taker more time to cappture</li>



<li>network should be of suited bandwidth and strength</li>
</ul>



<p class="wp-block-paragraph">Reduce information to be encoded and sent</p>



<ul class="wp-block-list">
<li>Subject focus and blurring backgroud</li>



<li>Filtering noise at source</li>



<li>Voice Activity Detection (VAD)
<ul class="wp-block-list">
<li>send extra data in FEC only is there is voice activity detected in packet</li>
</ul>
</li>



<li>Echo Cancellation</li>
</ul>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="fxB5RCc0vr"><a href="https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/">AEC (Echo Cancellation) and AGC (Gain Control) in&nbsp;WebRTC</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;AEC (Echo Cancellation) and AGC (Gain Control) in&nbsp;WebRTC&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/embed/#?secret=EWn9WtQZLS#?secret=fxB5RCc0vr" data-secret="fxB5RCc0vr" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h3 class="wp-block-heading" id="measuring-latency"><a href="#measuring-latency">Measuring latency</a></h3>



<p class="wp-block-paragraph">Since we know that synchorinizaing clocks in distributed systems is a tough task and mostly avoided by wither using NTP or using other means of synchronization </p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="ij05df5PBy"><a href="https://telecom.altanai.com/2014/10/04/webrtc-media-streams/">WebRTC Media Streams and Quality&nbsp;metrics</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;WebRTC Media Streams and Quality&nbsp;metrics&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2014/10/04/webrtc-media-streams/embed/#?secret=RlAhwFCV5l#?secret=ij05df5PBy" data-secret="ij05df5PBy" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading" id="NTP-sync"><a href="#NTP-sync">NTP Synchronization of Audio Video Sync</a></h2>



<p class="wp-block-paragraph">During the buffereng of incoming [ackets ( which canrage from few ten of miliseconds to few hundred milisecond ) the streams are synchronized.</p>



<p class="wp-block-paragraph">Time used by RTP for sync is NTP and RTP based ( which are not required to be in sync).</p>



<ul class="wp-block-list">
<li><strong>NTP Timestamp </strong>: 64-bit unsigned value that indicates the time at which this RTCP SR packet was sent. Formatted as fractional seconds since Jan 1, 1900</li>



<li><strong>RTP Timestamp</strong> : RTP timestamp corresponds to the same instant as the NTP timestamp. Expressed in the units of the RTP media clock.
<ul class="wp-block-list">
<li>Majority of video formats use a 90kHz clock.</li>



<li>For receiver to sync audio and video streams these two streasm must be from same clock</li>
</ul>
</li>
</ul>



<pre class="wp-block-preformatted has-small-font-size">Frame 300: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface 0 (outbound)<br>....<br>Packet type: Sender Report (200)<br>Length: 6 (28 bytes)<br>Sender SSRC: 0x39a659b4 (967203252)<br>Timestamp, MSW: 3855754463 (0xe5d224df)<br>Timestamp, LSW: 2364654374 (0x8cf1c326)<br>[MSW and LSW as NTP timestamp: Mar 8, 2022 18:54:23.550563999 UTC]<br>RTP timestamp: 1110449770</pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" width="869" height="416" data-attachment-id="6208" data-permalink="https://telecom.altanai.com/image-18-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png" data-orig-size="869,416" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-18" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=869" alt="" class="wp-image-6208" style="width:625px;height:299px" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png 869w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=768 768w" sizes="(max-width: 869px) 100vw, 869px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="606" data-attachment-id="6177" data-permalink="https://telecom.altanai.com/image-10-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png" data-orig-size="1054,624" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-10" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=1024" alt="" class="wp-image-6177" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png 1054w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="webrtc-security"><a href="#webrtc-security">Demand for higher security on WebRTC&#8217;s CPaaS</a></h2>



<p class="wp-block-paragraph">Webrtc uses <strong>Stream Control Transmission Protocol (SCTP) over DTLS</strong> connection as an alternative to TCP and UDP.</p>



<p class="wp-block-paragraph">Features : </p>



<ul class="wp-block-list">
<li><strong>multihoming</strong> : one or both endpoints of a connection can consist of more than one IP address. This enables transparent failover between redundant network paths</li>



<li><strong>Multistreaming</strong> transmit several independent streams of chunks in parallel</li>



<li>SCTP has similarities to TCP retransmission and partial reliability like UDP.  </li>



<li>Heartbest to keep connection alive with exponential backoff if packet hasnt arrived.</li>



<li>Validation and acknowledgment mechanisms protect against flooding attack</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="283" height="317" data-attachment-id="6331" data-permalink="https://telecom.altanai.com/image-11-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png" data-orig-size="283,317" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-11" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png?w=268" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png?w=283" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png?w=283" alt="" class="wp-image-6331" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png 283w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png?w=134 134w" sizes="(max-width: 283px) 100vw, 283px" /></figure>



<p class="wp-block-paragraph">SCTP frames data as datagrams and not as a byte stream</p>



<ul class="wp-block-list">
<li>(+) SCTP enables WebRTC to be multiplexing </li>



<li>(+) It has flow control and congestion avoidance support</li>



<li>(+)  </li>
</ul>



<h3 class="wp-block-heading" id="end-to-end-encryption"><a href="#end-to-end-encryption">End to End Encryption</a></h3>



<p class="wp-block-paragraph">End to end encryption model of WebRTC is a good defence to MIM ( man in middle ) attacks howver it is not yet 100% foolproof. I discussed more security loopholes and concerns in WebRTC and Realtime communication platfroms in this article WebRTC App and webpage&nbsp;Security.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="6Iuvm6Kbc8"><a href="https://telecom.altanai.com/2015/04/24/webrtc-security/">WebRTC Security Architecture</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;WebRTC Security Architecture&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2015/04/24/webrtc-security/embed/#?secret=PzSJ67CbLJ#?secret=6Iuvm6Kbc8" data-secret="6Iuvm6Kbc8" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h3 class="wp-block-heading" id="rtcp-mux"><a href="#rtcp-mux">Minimize Public-private mapping pairs vai RTCP-mux</a></h3>



<p class="wp-block-paragraph">Traditionally 2 separte ports for RTP aand RTCP were used in SIP / RTP based realtime communications systems. Thus demultiplexisng of the traffic of these data streams is peformed at the transport later. </p>



<p class="wp-block-paragraph"> With rtcp-mux the NAT tarversal si simplified as onlya  single port is used for media and control messages . </p>



<ul class="wp-block-list">
<li>(+) easier to manage security by gathering ICE candidates for a single port only  instead of 2 </li>



<li>(+)  increases the systesm capacity for media session using the same number of ports </li>



<li>(+) further simplified using BUNDLE as all media session and their control messages flow on the same port . </li>



<li>WebRTC has rtcp-mux capabilities thus simplifying the ICE candidate pairing </li>
</ul>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list">
<li><a href="https://www.w3.org/TR/webrtc-stats/" rel="nofollow">https://www.w3.org/TR/webrtc-stats/</a></li>



<li>RTP: A Transport Protocol for Real-Time Applications RFC 3550</li>
</ul>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="aGQWRYDi1h"><a href="https://telecom.altanai.com/2020/10/03/security-for-webrtc-applications/">Performance of WebRTC sites and electron&nbsp;apps</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Performance of WebRTC sites and electron&nbsp;apps&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2020/10/03/security-for-webrtc-applications/embed/#?secret=CnHPbOHbZc#?secret=aGQWRYDi1h" data-secret="aGQWRYDi1h" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/03/09/fault-tolerance-and-error-correction-in-webrtc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6118</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2022/03/create-a-highly-detailed-and-visually-engaging-image-depicting-the-4.png" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/create-a-highly-detailed-and-visually-engaging-image-depicting-the-4.png" medium="image">
			<media:title type="html">create-a-highly-detailed-and-visually-engaging-image-depicting-the</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-12.png?w=182" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-7.png?w=215" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-6.png?w=196" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-2.png?w=314" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-4.png?w=312" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-3.png?w=315" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-8.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-9.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-18.png?w=869" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-10.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-11.png?w=283" medium="image" />
	</item>
		<item>
		<title>AEC (Echo Cancellation) and AGC (Gain Control) in WebRTC</title>
		<link>https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/</link>
					<comments>https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 05:42:17 +0000</pubDate>
				<category><![CDATA[WebRTC Media Stack]]></category>
		<category><![CDATA[AEC]]></category>
		<category><![CDATA[CNG]]></category>
		<category><![CDATA[Comfort noide generation.MOS]]></category>
		<category><![CDATA[echo cancellation]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=2537</guid>

					<description><![CDATA[Acoustic Echo Hybrid / Electronic Echo in PSTN phones Noise Suppression in WebRTC Echo Cancellation WebRTC Echo Cancellation Automatic Gain Control (AGC) Echo is the sound of your own voice reverberating. If the amplitude of such a sound is high and intervals exceed 25 ms, it becomes disruptive to the conversation. Its types can be &#8230; <a href="https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/" class="more-link">Continue reading <span class="screen-reader-text">AEC (Echo Cancellation) and AGC (Gain Control) in&#160;WebRTC</span></a>]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li><a href="#acoustic-echo">Acoustic Echo</a></li><li><a href="#echo-pstn-phone">Hybrid / Electronic Echo in PSTN phones</a></li><li><a href="#noise-suppression-webrtc">Noise Suppression in WebRTC</a></li><li><a href="#echo-cancellation">Echo Cancellation</a></li><li><a href="#webrtc-echo-cancellation">WebRTC Echo Cancellation</a></li><li><a href="#automatic-gain-control">Automatic Gain Control (AGC) </a></li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">Echo is the sound of your own voice reverberating. If the amplitude of such a sound is high and intervals exceed 25 ms, it becomes disruptive to the conversation. Its types can be acoustic or hybrid. Echo cancellers need to eliminate the echo while still preserving call quality and not disrupting tones such as DTMF.</p>



<h2 class="wp-block-heading" id="acoustic-echo"><strong><a href="#acoustic-echo">Acoustic Echo </a></strong></h2>



<p class="wp-block-paragraph">Usually the background or reflected noise which is an undesired voiceband energy transfers from the speaker to the microphone and into the communication network. Mostly found in a hands-free set or speakerphone. In a multiparty call scenario, it could also occur due to unmatched volume levels, challenging network conditions on one party, background noise, double talk or even proximity between user and microphone</p>



<h3 class="wp-block-heading" id="echo-pstn-phone"><strong><a href="#echo-pstn-phone">Hybrid / Electronic Echo in PSTN phones</a></strong></h3>



<p class="wp-block-paragraph">In a public telephone system, local loop wiring is done using two-wire connections carrying bidirectional voice signals. In PBX, a two-to-four wire conversion is done using a hybrid circuit which does not perform perfect impedance matches resulting in a Hybrid echo.</p>



<figure class="wp-block-image"><img data-attachment-id="2539" data-permalink="https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/echo-aec/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC.png" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="echo AEC" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC.png" alt="echo AEC" class="wp-image-2539" /><figcaption><strong>Hybrid / Electronic Echo in PSTN phones</strong></figcaption></figure>



<h2 class="wp-block-heading" id="echo-cancellation"><a href="#echo-cancellation">Echo Cancellation</a></h2>



<p class="wp-block-paragraph">An efficient echo canceller should cancel out the entire echo tail while not leading to any packet loss. It needs to be adaptive to changing IP network bandwidth and algorithm should function equally well in conference scenarios&nbsp; where there may be more than one echo sources. Benchmarking tools like MOS (Mean Opinion scores ) are used to gauge the&nbsp; results. Often voice quality enhancement technologies are also integrated into AEC modules, such as :</p>



<ul class="wp-block-list"><li>automatic Gain control ( AGC) ,</li><li>Noise Reduction</li><li>Confort Noise Generator ( CNG)</li><li>Non linear processor</li><li>tone Disabler for SS&amp; and DTMF tones</li></ul>



<figure class="wp-block-image"><img data-attachment-id="2538" data-permalink="https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/echo-aec-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC-2.png" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="echo AEC 2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC-2.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC-2.png" alt="echo AEC 2" class="wp-image-2538" /><figcaption>Automatic Echo Cancellation</figcaption></figure>



<h2 class="wp-block-heading" id="webrtc-echo-cancellation"><a href="#webrtc-echo-cancellation">WebRTC Echo Cancellation</a></h2>



<figure class="wp-block-image size-large"><img loading="lazy" width="571" height="162" data-attachment-id="6187" data-permalink="https://telecom.altanai.com/image-11-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png" data-orig-size="571,162" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-11" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=571" src="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=571" alt="" class="wp-image-6187" srcset="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png 571w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=300 300w" sizes="(max-width: 571px) 100vw, 571px" /></figure>



<p class="wp-block-paragraph">WebRTC now actively detects and removes echo especially the local system echo resonance.</p>



<h2 class="wp-block-heading" id="noise-suppression-webrtc"><a href="#noise-suppression-webrtc">Noise Suppression in WebRTC</a></h2>



<p class="wp-block-paragraph">Noise suppression automatically filters the audio to remove background noise.</p>



<h2 class="wp-block-heading" id="automatic-gain-control"><a href="#automatic-gain-control">Automatic Gain Control (AGC) </a></h2>



<p class="wp-block-paragraph">AGC works as a circuit. When the average audio level is low , circuit raises it and if the audio level is high the circuit brings it down. </p>



<ul class="wp-block-list"><li>(+) AGC frees the user from manually tuning the audio level. </li><li>(-) During a pause too , agc tries to bring audio level to standard setting making background noises louder. </li><li>(-) subesquent audio processing make gain control progressively worse.</li></ul>



<p class="wp-block-paragraph"><strong>Audio Compressor</strong> : Due to the drawbacks with AGC , Audio Compressers carry the operation more sophistically by looking at amplitude of the sound.</p>



<p class="wp-block-paragraph">(-) not ideal for music which had varrying sound amplitude.</p>



<p class="wp-block-paragraph"><strong>Audio Peak Limiter</strong> : Limiters simply keep the audio from exceeding a set maximum level.</p>



<p class="wp-block-paragraph">(+) well suited for avoiding loud noise such as door slam from entering the processing pipeline.</p>



<p class="wp-block-paragraph"><strong>Audio Expanders </strong>:increase the dynamic (loudness) range of audio that has been overly processed.</p>



<p class="wp-block-paragraph">(+) suited for over compressed audio transmissiono such as Satellite relays </p>



<p class="wp-block-paragraph"><strong>Audio Filters</strong> :attenuate audio frequencies either above or below certain points within the audio range.</p>



<p class="wp-block-paragraph">AGC in webRTC </p>



<pre class="wp-block-preformatted has-small-font-size">navigator.mediaDevices.getSupportedConstraints();

aspectRatio: true
autoGainControl: true
brightness: true
channelCount: true
colorTemperature: true
contrast: true
deviceId: true
echoCancellation: true
exposureCompensation: true
exposureMode: true
exposureTime: true
facingMode: true
focusDistance: true
focusMode: true
frameRate: true
groupId: true
height: true
iso: true
latency: true
noiseSuppression: true
pan: true
pointsOfInterest: true
resizeMode: true
sampleRate: true
sampleSize: true
saturation: true
sharpness: true
tilt: true
torch: true
whiteBalanceMode: true
width: true
zoom: true</pre>



<p class="wp-block-paragraph">WebRTC Get User MEdia with various values of autoGainControl</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="504" height="198" data-attachment-id="6314" data-permalink="https://telecom.altanai.com/image-8-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png" data-orig-size="504,198" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-8" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=504" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=504" alt="" class="wp-image-6314" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png 504w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=300 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="502" height="201" data-attachment-id="6317" data-permalink="https://telecom.altanai.com/image-10-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png" data-orig-size="502,201" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-10" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=502" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=502" alt="" class="wp-image-6317" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png 502w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=300 300w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="504" height="202" data-attachment-id="6315" data-permalink="https://telecom.altanai.com/image-9-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png" data-orig-size="504,202" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-9" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=504" src="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=504" alt="" class="wp-image-6315" srcset="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png 504w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=300 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list"><li><a href="https://webrtc.org/blog/2011/07/11/webrtc-improvement-optimized-aec-acoustic-echo-cancellation.html" rel="nofollow">https://webrtc.org/blog/2011/07/11/webrtc-improvement-optimized-aec-acoustic-echo-cancellation.html</a></li><li><a href="http://www.ti.com/lit/wp/spraal1/spraal1.pdf" rel="nofollow">http://www.ti.com/lit/wp/spraal1/spraal1.pdf</a></li><li><a href="https://www.adaptivedigital.com/vqe-suite/echo-cancellation-explained/" rel="nofollow">https://www.adaptivedigital.com/vqe-suite/echo-cancellation-explained/</a></li><li><a href="https://github.com/webrtc-uwp/webrtc/blob/master/modules/audio_processing/aec3/echo_canceller3.h" rel="nofollow">https://github.com/webrtc-uwp/webrtc/blob/master/modules/audio_processing/aec3/echo_canceller3.h</a></li><li>Mozilla docs <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/noiseSuppression" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/noiseSuppression</a></li><li></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/03/09/aec-echo-cancellation-in-webrtc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2537</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC.png" medium="image">
			<media:title type="html">echo AEC</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2018/12/echo-AEC-2.png" medium="image">
			<media:title type="html">echo AEC 2</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/03/image-11.png?w=571" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-8.png?w=504" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-10.png?w=502" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/04/image-9.png?w=504" medium="image" />
	</item>
		<item>
		<title>SCTP (Stream Control Transmission Protocol)</title>
		<link>https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/</link>
					<comments>https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Fri, 11 Feb 2022 17:50:00 +0000</pubDate>
				<category><![CDATA[WebRTC standards]]></category>
		<category><![CDATA[IPSec]]></category>
		<category><![CDATA[SCTP]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=7699</guid>

					<description><![CDATA[SCTP (Stream Control Transmission Protocol) is a robust, message-oriented transport layer protocol designed for mission-critical applications that demand reliability and fault tolerance. Originally developed for telephony signaling—specifically for SS7 (Signaling System No. 7) over IP—SCTP has evolved into an essential protocol for modern telecommunications, WebRTC data channels, and high-availability networks. Its unique capabilities make it &#8230; <a href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/" class="more-link">Continue reading <span class="screen-reader-text">SCTP (Stream Control Transmission&#160;Protocol)</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">SCTP (Stream Control Transmission Protocol) is a robust, message-oriented transport layer protocol designed for mission-critical applications that demand reliability and fault tolerance. Originally developed for telephony signaling—specifically for SS7 (Signaling System No. 7) over IP—SCTP has evolved into an essential protocol for modern telecommunications, WebRTC data channels, and high-availability networks. Its unique capabilities make it an ideal choice for video streaming with multiple concurrent data streams and applications requiring multi-path redundancy.</p>



<ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#why-sctp-matters-in-modern-telecom">Why SCTP Matters in Modern Telecom</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#key-features-of-sctp">Key Features of SCTP</a><ol><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#message-oriented-delivery">Message-Oriented Delivery</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#multi-homing-support">Multi-Homing Support</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#multiple-independent-streams">Multiple Independent Streams</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#robust-error-handling">Robust Error Handling</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#path-mtu-discovery">Path MTU Discovery</a></li></ol></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#sctp-connection-handshake">SCTP Connection Handshake</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#sctp-vs-quic">SCTP vs QUIC</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#sctp-in-ipsec">SCTP in IPSec</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#key-takeaways">Key Takeaways</a></li><li><a class="wp-block-table-of-contents__entry" href="https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/#references">References:</a></li></ol>



<h2 id="why-sctp-matters-in-modern-telecom" class="wp-block-heading">Why SCTP Matters in Modern Telecom</h2>



<p class="wp-block-paragraph">Unlike TCP, which treats data as a continuous stream, SCTP preserves message boundaries while maintaining the reliability guarantees that critical systems demand. For telecom infrastructure and video applications requiring multiple independent data streams, SCTP eliminates the head-of-line blocking issues that plague traditional TCP connections.</p>



<h2 id="key-features-of-sctp" class="wp-block-heading">Key Features of SCTP</h2>



<p class="wp-block-paragraph">SCTP brings several powerful features to the table that set it apart from TCP and UDP:</p>



<h3 id="message-oriented-delivery" class="wp-block-heading">Message-Oriented Delivery</h3>



<p class="wp-block-paragraph">Data is transmitted in&nbsp;<strong>chunks</strong>&nbsp;or&nbsp;<strong>messages</strong>&nbsp;rather than as a continuous stream of bytes like TCP. This preserves message boundaries and eliminates the need for application-level delimiters.</p>



<h3 id="multi-homing-support" class="wp-block-heading">Multi-Homing Support</h3>



<p class="wp-block-paragraph">SCTP supports multiple IP addresses for each endpoint, enabling redundancy across multiple network paths. If one path fails, the connection seamlessly switches to an alternative path without dropping the association.</p>



<h3 id="multiple-independent-streams" class="wp-block-heading">Multiple Independent Streams</h3>



<p class="wp-block-paragraph">A single SCTP association can carry multiple streams simultaneously, each with independent reliability guarantees. This eliminates&nbsp;<strong>head-of-line blocking</strong>—when one stream&#8217;s data is delayed, other streams continue unaffected. This is critical for applications like video conferencing where audio and video must progress independently.</p>



<h3 id="robust-error-handling" class="wp-block-heading">Robust Error Handling</h3>



<p class="wp-block-paragraph">SCTP implements acknowledgments, retransmissions, and congestion control mechanisms similar to TCP, ensuring reliable delivery in lossy networks.</p>



<h3 id="path-mtu-discovery" class="wp-block-heading">Path MTU Discovery</h3>



<p class="wp-block-paragraph">SCTP automatically determines the largest data chunk size that can traverse the network without fragmentation, optimizing throughput while preventing excessive packet fragmentation.</p>



<h2 id="sctp-connection-handshake" class="wp-block-heading">SCTP Connection Handshake</h2>



<p class="wp-block-paragraph">SCTP uses a <strong>four-way handshake</strong> to establish connections, providing additional security and validation compared to TCP&#8217;s three-way handshake. This handshake design provides protection against SYN flood attacks while ensuring both endpoints are synchronized and ready for data transfer.</p>



<p class="wp-block-paragraph"><strong>Four-way handshake</strong> in SCTP</p>



<pre class="wp-block-preformatted">1. INIT        -&gt; Client sends INIT with sequence number and supported parameters<br>2. INIT ACK    &lt;- Server responds with INIT ACK and its own sequence number<br>3. COOKIE ECHO -&gt; Client sends COOKIE ECHO to confirm receipt of INIT ACK<br>4. COOKIE ACK  &lt;- Server responds with COOKIE ACK to finalize connection setup<br></pre>



<h2 id="sctp-vs-quic" class="wp-block-heading">SCTP vs QUIC</h2>



<p class="wp-block-paragraph"><strong>Is SCTP Still Relevant After QUIC?</strong></p>



<p class="wp-block-paragraph">The emergence of QUIC has raised questions about SCTP&#8217;s future. The answer is nuanced:</p>



<p class="wp-block-paragraph"><strong>No, for general web-based applications</strong>: For modern web applications, QUIC is the preferred protocol due to its low-latency and built-in security features, as well as its integration with HTTP/3. QUIC can outperform SCTP in web traffic, video streaming, and real-time communications like WebRTC.</p>



<p class="wp-block-paragraph"><strong>Yes, for specific use cases</strong>: While QUIC has gained attention for web traffic and real-time communication, SCTP is still relevant in niche use cases that demand multi-homing (e.g., cellular and telecommunication networks) or high-reliability signaling (e.g., SIP in VoIP). SCTP&#8217;s ability to handle multiple streams of data with strong error correction and congestion control makes it indispensable for telecommunication protocols. SCTP continues to be used in areas like VoIP (Voice over IP), 5G, and telecommunication systems today.</p>



<h2 id="sctp-in-ipsec" class="wp-block-heading">SCTP in IPSec</h2>



<p class="wp-block-paragraph">This combo is meant to leverage IPSec to secure SCTP communication ensuring that the transmission of SCTP packets is protected against threats such as eavesdropping, tampering, and spoofing. IPSec is a network layer protocol ( L3) while SCTP is transport layer ( L4). Therefore IPSec is often used to provide encryption, integrity, and authentication services by securing the payload and headers.</p>



<h2 id="key-takeaways" class="wp-block-heading">Key Takeaways</h2>



<ul class="wp-block-list">
<li><strong>SCTP is message-oriented</strong>: Data preserves boundaries, unlike TCP&#8217;s stream model</li>



<li><strong>Multi-homing for redundancy</strong>: Multiple paths ensure high availability</li>



<li><strong>Multiple streams eliminate head-of-line blocking</strong>: Critical for multimedia applications</li>



<li><strong>Still essential for telecom</strong>: VoIP, 5G, and carrier networks depend on SCTP</li>



<li><strong>QUIC for web, SCTP for telecom</strong>: Each excels in its domain</li>



<li><strong>IPSec integration</strong>: Adds enterprise-grade security to SCTP associations</li>
</ul>



<h2 id="references" class="wp-block-heading">References:</h2>



<ul class="wp-block-list">
<li><strong>RFC 4960</strong>: Stream Control Transmission Protocol (SCTP) &#8211; <a href="https://tools.ietf.org/html/rfc4960">https://tools.ietf.org/html/rfc4960</a></li>



<li><strong>RFC 3554</strong>: On the Use of Stream Control Transmission Protocol (SCTP) with IPsec &#8211; <a href="https://tools.ietf.org/html/rfc3554">https://tools.ietf.org/html/rfc3554</a></li>



<li><strong>IETF SIGTRAN Working Group</strong>: Signaling Transport standards &#8211; <a href="https://datatracker.ietf.org/wg/sigtran/">https://datatracker.ietf.org/wg/sigtran/</a></li>



<li><strong>Wikipedia &#8211; SCTP</strong>: <a href="https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol</a></li>
</ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2022/02/11/sctp-stream-control-transmission-protocol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7699</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2025/02/image.png" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2025/02/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>
	</item>
		<item>
		<title>VoIP API design</title>
		<link>https://telecom.altanai.com/2021/12/21/voip-api-design/</link>
					<comments>https://telecom.altanai.com/2021/12/21/voip-api-design/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Wed, 22 Dec 2021 07:29:21 +0000</pubDate>
				<category><![CDATA[cloud telephony]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=5274</guid>

					<description><![CDATA[Public API endpoints Internal API gateways API Rate Limiter Token based Rate Limiting Token bucket filter Hierarchical Token Bucket (HTB) Fair Queing CBQ (Class Based Queing) Modular QoS command-Line interface (MQC) Shaping Throttling VoIP manages Call setup and teardown using IP protocol. The APIs can be used to provide public or internal endpoinst to create &#8230; <a href="https://telecom.altanai.com/2021/12/21/voip-api-design/" class="more-link">Continue reading <span class="screen-reader-text">VoIP API design</span></a>]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li>Public API endpoints </li><li>Internal API gateways</li><li>API Rate Limiter <ul><li>Token based Rate Limiting</li><li>Token bucket filter</li><li>Hierarchical Token Bucket (HTB)</li><li>Fair Queing</li><li>CBQ (Class Based Queing)</li><li>Modular QoS command-Line interface (MQC) Shaping</li></ul></li><li>Throttling</li></ul>



<hr class="wp-block-separator" />



<p class="wp-block-paragraph">VoIP manages Call setup and teardown using IP protocol. The APIs can be used to provide public or internal endpoinst to create mnage calls , conference addon services like recording , tgranscription or even do auth and heartbeat. This article lists some external programmable Call Control APIs, internal APIs for biling , health as well as Rate limitting. </p>



<h2 class="wp-block-heading" id="public-api-endpoints">Public API endpoints </h2>



<p class="wp-block-paragraph"><strong>Programmatic call control</strong> APIs</p>



<ol class="wp-block-list"><li>Making a Call </li></ol>



<p class="wp-block-paragraph">HTTP POST <a href="https://www.altteelcom.com/voice/call" rel="nofollow">https://www.altteelcom.com/voice/call</a></p>



<p class="wp-block-paragraph">Parameters</p>



<pre class="wp-block-preformatted">to: '+14155551212',<br>from: '+18668675310'</pre>



<p class="wp-block-paragraph">Calback params</p>



<pre class="wp-block-preformatted">statusCallback: 'https://www.myapp.com/events',<br>statusCallbackEvent: ['initiated', 'answered'],<br>statusCallbackMethod: 'POST'</pre>



<p class="wp-block-paragraph">Response </p>



<pre class="wp-block-preformatted">"from": "+9999999999"
"to": "+111111111",
"status": "ongoing"

Tmestamps
"date_created": "Mon, 5 Sep 2020 20:36:28 +0000"
"start_time": "Mon, 5 Sep 2020 20:36:29 +0000"
"date_updated": "Mon, 5 Sep 2020 20:36:44 +0000"
"direction": "outbound",
"duration": ""
"end_time": ""

Price
"price": "-0.03000"
"price_unit": "USD"</pre>



<p class="wp-block-paragraph">The response can additional have SID and app version and other URI for recording , transcription , apyment and other services for this call . </p>



<p class="wp-block-paragraph">2. Ending an ongoing Call </p>



<p class="wp-block-paragraph">HTTP UPDATE <a href="https://www.altteelcom.com/voice/call/callid001" rel="nofollow">https://www.altteelcom.com/voice/call/callid001</a></p>



<p class="wp-block-paragraph">params</p>



<pre class="wp-block-preformatted">status: 'end'</pre>



<p class="wp-block-paragraph">This updates the end time of the call and sets the evenst for CDR processing</p>



<p class="wp-block-paragraph">Services API </p>



<ul class="wp-block-list"><li>Call Reording </li><li>Call transcription </li></ul>



<p class="wp-block-paragraph">Confernece APIs<br>HTTP POST <a href="https://www.altteelcom.com/voice/conferences" rel="nofollow">https://www.altteelcom.com/voice/conferences</a></p>



<ul class="wp-block-list"><li>creating a conf </li><li>fetching conf based on date or room name</li><li>updating a ongoing conf</li><li>ending a conf </li><li>set IVR announcement on ongoing conf </li></ul>



<p class="wp-block-paragraph">Auth API</p>



<p class="wp-block-paragraph">CDR APIs</p>



<p class="wp-block-paragraph">HTTP POST <a href="https://www.altteelcom.com/cdr" rel="nofollow">https://www.altteelcom.com/cdr</a></p>



<ul class="wp-block-list"><li>get CDR ( filtered per cal or acc to specific date or account)</li><li>bulk export of CDR</li></ul>



<h2 class="wp-block-heading" id="internal-api-gateways">Internal API gateways</h2>



<figure class="wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler"><div class="wp-block-embed__wrapper">
<a href="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=960"><img src="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=960" style="max-width:100%;" /></a>
</div></figure>



<h2 class="wp-block-heading" id="api-rate-limiter">API Rate Limiter </h2>



<p class="wp-block-paragraph">Noisy neighbour is when one of the clients monoplizes the bandwidth using most of the i/o or cpu or other resources which can negatively affect the performance for other users . Throttling is a good way to solve this problem by limit.</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Auto scaling </td><td>Load balancer</td><td>Rate Limiter</td></tr><tr><td>horizotal or vertical scalling can countger incoming traffic</td><td>LB can limit number of simultaneous requests. It can reject or send to queue for later operation</td><td>Can intelligently understand the cost of each operation and perform throttling.</td></tr><tr><td>(-) takes time to scale out thus cannot solve noisy neighbour problem immediately</td><td>(-) but the LB&#8217;s behaviour is indiscriminate ( cannot distinguish between the cost of diff operations)<br>(-) LB cannot ensure uniform distribution of distribution of operations among all servers.</td><td></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A rate limiter should have low latency, accurate and scalable.</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>RateLimiter inside the serviceprocess</td><td>Rate Limiter as its own process outside as a daemon</td></tr><tr><td>(+) faster , no IPC<br>(+) reisstnt to interprocess call failures </td><td>(+) programming langiage agnostic daemon<br>(+) uses its own memory space, more predictable</td></tr><tr><td>(-) service meory needs to allocate space for rate limiters </td><td> </td></tr><tr><td></td><td>widely used for auto discovery of service host </td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="971" height="548" data-attachment-id="5306" data-permalink="https://telecom.altanai.com/rate-limiter/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg" data-orig-size="971,548" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rate-limiter" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=971" alt="" class="wp-image-5306" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg 971w, https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=768 768w" sizes="(max-width: 971px) 100vw, 971px" /></figure>



<h3 class="wp-block-heading" id="token-based-rate-limiting">Token based Rate Limiting </h3>



<p class="wp-block-paragraph"> provides admission contro</p>



<h3 class="wp-block-heading" id="token-bucket-filter">Token bucket filter </h3>



<p class="wp-block-paragraph">define a users quota in terms average rate and burst capacity</p>



<h3 class="wp-block-heading" id="hierarchical-token-bucket-htb">Hierarchical Token Bucket ( HTB)</h3>



<p class="wp-block-paragraph"> uses the deficit round-robin algorithm for fair queuing</p>



<h3 class="wp-block-heading" id="fair-queing">Fair Queing </h3>



<p class="wp-block-paragraph">give paying users a bandwidth fraction of 25%</p>



<p class="wp-block-paragraph">priority queuing</p>



<p class="wp-block-paragraph">decide 1 packet/ms for free or reduce rate user </p>



<p class="wp-block-paragraph">distributes that sender’s bandwidth among the other senders</p>



<h3 class="wp-block-heading" id="cbq-class-based-queing">CBQ ( Class Based Queing)</h3>



<p class="wp-block-paragraph">Shaping is performed using link idle time calculations based on the timing of dequeue events and underlying link bandwidth. Input classes that tried to send too much were restricted, unless the node was permitted to “borrow” bandwidth from a sibling.</p>



<h3 class="wp-block-heading" id="modular-qos-command-line-interface-mqc-shaping">Modular QoS command-Line interface (MQC) Shaping </h3>



<p class="wp-block-paragraph">mplement traffic shaping for a specific type of traffic using a traffic policy</p>



<ul class="wp-block-list"><li>When the rate of packets matching the specified traffic classifier exceeds the rate limit, the device buffers the excess packets. </li><li>When there are sufficient tokens in the token bucket, the device forwards the buffered packets at an even rate. </li><li>When the buffer queue is full, the device discards the buffered packets.</li></ul>



<h2 class="wp-block-heading" id="throttling">Throttling </h2>



<ul class="wp-block-list"><li><strong>delay</strong> the packet until the bucket is ready / <strong>shaping</strong></li><li><strong>drop</strong> the packet / Policing</li><li><strong>mark</strong> the packet as non-compliant</li></ul>



<p class="wp-block-paragraph" id="failure-management-on-rate-limiter">Failure management on Rate Limiter</p>



<ul class="wp-block-list"><li>Node Crash : just less requests trolled </li><li>Leaky bucket </li><li>tokens can go into -ve </li></ul>



<h2 class="wp-block-heading" id="system-design-for-api-gateway">System Design for API gateway </h2>



<p class="wp-block-paragraph">Important points for design API gateway</p>



<ul class="wp-block-list"><li>Serialize data in company binary format</li><li>allocate buffer in memory and build frequency count hash table and flash once full or based on time  to calculate counters </li><li>aggregation on API gateway on the fly </li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="579" data-attachment-id="5361" data-permalink="https://telecom.altanai.com/distributed-system-using-message-queue-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg" data-orig-size="1040,589" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="distributed-system-using-message-queue-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=1024" alt="" class="wp-image-5361" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg 1040w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Frontend Service</td><td>Partitioned Service</td><td>Backend Service</td></tr><tr><td>Lightweight web service <br>Stateless <br>Request Validation <br>Auth / Authorization<br>TLS(SSL ) termination <br>Server sode encryption<br>Caching<br>Rate Limiting(throttling)<br>Request deduplication </td><td>Caching layer between frontend and backend<br></td><td>Replication<br>Leader Selection + Quorem </td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="504" data-attachment-id="5362" data-permalink="https://telecom.altanai.com/distributed-system/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg" data-orig-size="1040,512" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="distributed-system-" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=1024" alt="" class="wp-image-5362" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg 1040w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="distributed-messaging-system-fast-and-slow-paths-for-api">Distributed messaging system( fast and slow paths) for API  </h2>



<p class="wp-block-paragraph"> A distributed messahing system such as Apache kafka or AWs kinesis,  internally splits a msg accross serveral partitions where each parition can be placed on a single shard in a seprate machine on a clustered system. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="541" data-attachment-id="5357" data-permalink="https://telecom.altanai.com/api-gateway/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg" data-orig-size="1341,709" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="api-gateway" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=1024" alt="" class="wp-image-5357" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg 1341w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Applications of this system design </p>



<ul class="wp-block-list"><li>Find heavy hitters ( Top K problem )</li><li>Popular products / trends </li><li>Voltaile stocks</li><li>DDoS Attack Prevention </li></ul>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list"><li>[1] tc-cbq linux : <a href="https://man7.org/linux/man-pages/man8/tc-cbq-details.8.html" rel="nofollow">https://man7.org/linux/man-pages/man8/tc-cbq-details.8.html</a> </li><li>[2] <a href="http://intronetworks.cs.luc.edu/current2/html/tokenbucket.html" rel="nofollow">http://intronetworks.cs.luc.edu/current2/html/tokenbucket.html</a> </li><li>[3] Cisco <a href="https://community.cisco.com/t5/routing/qos-atm-voip-where-to-rate-limit-police/td-p/2161691" rel="nofollow">https://community.cisco.com/t5/routing/qos-atm-voip-where-to-rate-limit-police/td-p/2161691</a></li></ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2021/12/21/voip-api-design/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5274</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/rate-limiter.jpg?w=971" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-using-message-queue-1.jpg?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-system-.jpg?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/api-gateway.jpg?w=1024" medium="image" />
	</item>
		<item>
		<title>High availiability and Scalibility in VoIP platforms</title>
		<link>https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/</link>
					<comments>https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Wed, 22 Dec 2021 07:28:08 +0000</pubDate>
				<category><![CDATA[Telecom Info]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=3730</guid>

					<description><![CDATA[Load Balancers MPLS Service-discovery Keepalive, unregistering unhealthy nodes Replication Data Store Replication Quick Response / Low latency Scalability autoscalling Partitioining Multiple PoPs (point of presence) Minimal Latency and lowest amount of tarffic via public internet High availiability (HA) 5 9&#8217;s in aggregate failures HA for Load balancer (LB) HA for Call Control app server Media &#8230; <a href="https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/" class="more-link">Continue reading <span class="screen-reader-text">High availiability and Scalibility in VoIP&#160;platforms</span></a>]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li><a href="#load-balancers">Load Balancers</a> <ul><li>MPLS</li></ul></li><li><a href="#service-discovery">Service-discovery</a><ul><li><a href="#keepalive-unregistering-unhealthy-nodes">Keepalive, unregistering unhealthy nodes</a></li></ul></li><li><a href="#replication">Replication</a><ul><li>Data Store Replication </li></ul></li><li><a href="#quick-response-low-latency">Quick Response / Low latency</a></li><li><a href="https://altanaitelecom.wordpress.com/wp-admin/post.php?post=3730&amp;action=edit#scalability">Scalability</a><ul><li><a href="#autoscalling">autoscalling</a></li><li><a href="#partitioining">Partitioining</a></li></ul></li><li><a href="#multiple-pops-point-of-presence">Multiple PoPs (point of presence)</a><ul><li>Minimal Latency and lowest amount of tarffic via public internet</li></ul></li><li><a href="#ha-high-availability">High availiability (HA)</a><ul><li> 5 9&#8217;s in aggregate failures</li><li>HA for Load balancer (LB)</li><li>HA for Call Control app server </li><li>Media Server HA</li></ul></li><li><a href="#security">Security against malicious attacks</a><ul><li>MITM</li><li>DDOS </li></ul></li><li><a href="#identifying-outages-and-alerting">Identifying outages , logs and pcap analysis + alerting</a></li><li><a href="#bottlenecks">Bottlenecks</a><ul><li>Performance testing</li></ul><ul><li><a href="#robust-qa-framework-stress-and-monkey-testing-to-identify-potential-bottlenecks-before-going-live">Robust QA for potential bottlenecks before going live </a></li></ul></li><li><a href="#distributed-data-store">Distributed Data Store</a><ul><li><a href="#message-queues-vs-batch-processing">message-queues-vs-batch-processing</a></li></ul></li><li><a href="#distributed-event-management-and-event-driven-architecture-using-streams">Distributed-event-management-and-event-driven-architecture-using-streams</a></li><li><a href="#distributed-cache-for-call-control-servers">Distributed cache for call control Servers</a><ul><li><a href="#choosing-cache-host">Choosing cache host </a></li><li><a href="#cache-replacement">cache-replacement</a></li><li><a href="#consistency-and-high-availiability-in-cache-setup">Consistency and High Availiability in Cache setup</a></li></ul></li><li><a href="https://altanaitelecom.wordpress.com/wp-admin/post.php?post=3730&amp;action=edit#circuits">Circuits &#8211; fail fast , wait for circuit to recover before calling again</a></li></ul>



<hr class="wp-block-separator has-css-opacity" />



<h2 class="wp-block-heading" id="load-balancers"><a href="#load-balancers">Load Balancers</a> </h2>



<p class="wp-block-paragraph">Load Balancer(LB) is the initial point of interaction between the client application and the core system. It is pivotal in the distribution of the load across multiple servers and ensuring the client is connected to the nearest VoIP/SIP application server to minimize latency. However, the load balancers are also susceptible to security breaches and DOS attacks as they have a public-facing interface. This section lists the protocols, types and algorithms used popularly in Load balancers of VoIP systems.</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>software LB</td><td>Layer 4 / hardware LB</td></tr><tr><td>Nginx<br>Amazon ELB ( eleastic load balanecr)</td><td>F5 BIG-IP load balancer<br>CISCO system catalyst<br>Barracuda load balancer<br>NetScaler</td></tr><tr><td>used by applications in cloud<br>ADN (Application delivery network)</td><td>used by &nbsp;network address translators&nbsp;(NATs)&nbsp;<br>DNS load balancing</td></tr></tbody></table><figcaption class="wp-element-caption">examples and roles of software and hardware based load balancers</figcaption></figure>



<p class="wp-block-paragraph">Load Balancers(LB) ping each server for health status and greylists servers that are unhealthy( respond late) as they may be overloaded or experiencing congestion. The LB monitors it rechecks after a while and if a server is healthy ( ie if a server responds with responds with status update) it can resume sending traffic to it. LB should also be distributed to different data centres in primary-secondary setup for HA.</p>



<p class="wp-block-paragraph"><strong>Networking protocol </strong></p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>TCP Loadbalancer</td><td>HTTP load balancers</td><td>SIP based LB as Kamailio/ Opensips </td></tr><tr><td>can forwrad the packet without inspecting the content of the packet.</td><td>terminate the connection and look inside the request to make a load balcing decsiion for exmaple by using a cookie or a header.</td><td>domain specific to VoIP</td></tr><tr><td>(+) fast, can handle million of req per second</td><td></td><td>(+) handle SIP routing based on SIP headers and prevent flooding atacks and other malicious malformed packets from reaching application server</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Load balancing algorithms</strong></p>



<ul class="wp-block-list"><li>Weighted Scheduling Algorithm</li><li>Round Robin Algorithm</li><li>Least Connection First Scheduling</li><li>Lest response time algorithms</li><li>Hash based algorithm ( send req based on hashed value such as suing IP address of request URL)</li></ul>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Loadbalancer</td><td>Reverse Proxy</td></tr><tr><td>forward proxy server allows multiple clients to route traffic to an external server</td><td>accepts clients requestd for server and also returns the server&#8217;s response to the client ie routes traffic on behalf of multiple servers.</td></tr><tr><td>Balances load and incoming traffic endpoint</td><td>public facing endpoint for outgoing traffic<br>&nbsp;additional level of abstraction and security, compression</td></tr><tr><td></td><td>used in SBC (session border controllers) and gateways</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="service-discovery"><a href="#service-discovery">Service Discovery</a></h2>



<p class="wp-block-paragraph">Client-side or even backend service discovery uses a broadcasting or heartbeat mechanism to keep track of active servers and deactivates unresponsive or failed servers. This process of maintaining active servers helps in faster connection time. Some approaches to Service Discovery</p>



<ol class="wp-block-list"><li>Mesh <ol><li>(-) exponentially incresing network traffic </li></ol></li><li>Gossip </li><li>Distributed cache</li><li>Coordination service with Service <ul><li>(-) requesres coordination service for leader selection </li><li>(-) needs consensus</li><li>(-) RAFT and pbFT for mnaging failures</li></ul></li><li>Random leader selection <ul><li>(+) quicker</li></ul><ul><li>(-) may not gurantee one leader </li><li>(-)split brain problem </li></ul></li></ol>



<h3 class="wp-block-heading" id="keepalive-unregistering-unhealthy-nodes"><a href="#keepalive-unregistering-unhealthy-nodes">Keepalive, unregistering unhealthy nodes</a></h3>



<p class="wp-block-paragraph">Systems such as Consul, Etcd, and Zookeeper can help services find each other by keeping track of registered names, addresses, and ports. Health checks help verify service integrity and are often done using an HTTP endpoint.</p>



<h2 class="wp-block-heading" id="replication"><a href="#replication">Replication</a></h2>



<p class="wp-block-paragraph">Usuallay there is  a tradeoff between liveness and safety.</p>



<ol class="wp-block-list"><li>Single leader replication <ul><li>(-) vulnerable to loss of data is leader goes down before replication completes</li><li>used to in sql</li></ul></li><li>multileader replication and</li><li>leaderless replication <ul><li>(-) increases latencies </li><li>(-) quorem based on majority , cannot function is majority node are not down</li><li>used in cassandra</li></ul></li></ol>



<h3 class="wp-block-heading" id="data-store-replication">Data Store Replication </h3>



<p class="wp-block-paragraph">For Relatonal Dataabase</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="977" height="636" data-attachment-id="5251" data-permalink="https://telecom.altanai.com/distributed-and-replicated-data-store-sql/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg" data-orig-size="977,636" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="distributed-and-replicated-data-store-sql" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=977" alt="" class="wp-image-5251" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg 977w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=768 768w" sizes="(max-width: 977px) 100vw, 977px" /></figure>



<p class="wp-block-paragraph">For NoSQL databse replication and HA</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="491" data-attachment-id="5253" data-permalink="https://telecom.altanai.com/distributed-and-replicated-data-store-nosql/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg" data-orig-size="1136,545" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="distributed-and-replicated-data-store-nosql" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=1024" alt="" class="wp-image-5253" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg 1136w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="quick-response-low-latency"><a href="#quick-response-low-latency">Quick Response / Low latency</a></h2>



<h3 class="wp-block-heading" id="message-format">Message format </h3>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td><strong>Textual Message format</strong></td><td><strong>Binary Message Format</strong></td></tr><tr><td>human readbale like <br> json xml</td><td>diff to comprehend , need shared schema between sender and receiver to serilaize and deserialze ,</td></tr><tr><td>names for every field adds to size </td><td>no field name or only tags , reduces message size </td></tr></tbody></table></figure>



<h3 class="wp-block-heading" id="gateways-for-faster-routing-and-caching-to-services">Gateways for faster routing and caching to services </h3>



<p class="wp-block-paragraph">gateways are single entry point to route user requests to backend services .</p>



<h3 class="wp-block-heading" id="separate-hot-storage-from-cold-storage">Separate hot storage from cold storage </h3>



<p class="wp-block-paragraph">hot storage is frquently accessed data which must be near to server </p>



<p class="wp-block-paragraph">cold storage is less frequently accessed data such as archives </p>



<ul class="wp-block-list"><li>object storage </li><li>slow access </li></ul>



<h2 class="wp-block-heading" id="scalability"><a href="#scalability">Scalability</a></h2>



<p class="wp-block-paragraph">To make a system :- </p>



<ul class="wp-block-list"><li><strong>scalable</strong> : use partitioing </li><li><strong>reliable</strong> : use replication and checkpointing to not loose data in failures</li><li><strong>fast</strong> : use in -memory usage </li></ul>



<p class="wp-block-paragraph">According to CAP theorem Consistency and Availiability are difficult to achieve together and there has to be a tradeof acc to requirnments.</p>



<h3 class="wp-block-heading" id="partitioining"><a href="#partitioining">Partitioining</a> </h3>



<p class="wp-block-paragraph">Partition strategy can be based on various ways such as :-</p>



<ul class="wp-block-list"><li>Name based partition</li><li>geographic partition</li><li>names&#8217; hashed value based on identifier<ul><li>(-) can lead to hot partitions ( high density in areas of freq accessible identioers )</li><li>(-) high density spots for example all messages with a null key to go to the same partition</li><li>(-) doesnt scale </li></ul></li><li>event time based hash<ul><li>(+) data is spread evenly over time</li></ul></li></ul>



<p class="wp-block-paragraph">To create a well distributed partition we could spread hot partition into 2 partitions or  dedicate partitions for freq accessible items.  An effective partitioning keys uses </p>



<ul class="wp-block-list"><li><strong>Cardinality</strong> : total num of unique keys for a usecase. High cardinality leads to better distribution.<ul><li>high cardinatility keys : names , email address , url since they have high variatioln</li><li>low cardinatlity keys : boolean flags such as gender M/F</li></ul></li><li><strong>Selectivity</strong> : number of message with each key. High selectivity leads to hotspots and hence low selectivity is better for even distribution.</li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="494" data-attachment-id="5250" data-permalink="https://telecom.altanai.com/event-streams-partioned/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg" data-orig-size="1060,512" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="event-streams-partioned" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=1024" alt="" class="wp-image-5250" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg 1060w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading" id="autoscalling"><a href="#autoscalling">Autoscalling</a> </h3>



<p class="wp-block-paragraph">Scale Out not Up !</p>



<figure class="wp-block-image size-large"><img src="https://lh6.googleusercontent.com/5c8uCdQ_jCXeEIcFyoSaEYJmf-ZxPGTvpxWfblLAMNQyYq2OEKVArrCDafk64CfYU3XjKthuQoX60TM2_1pk7SFHZFWzx--eb4EBlIvD6UIGl-wRQEpKPOACN9jDJaDd0lkBFJab=s0" alt="" /></figure>



<p class="wp-block-paragraph">Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management used in DevOps. I have mentioned this in detail on the article on VoIP and DevOps below.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Nx0U7aTikv"><a href="https://telecom.altanai.com/2019/01/05/voip-system-devops-operations-and-infrastructure-management-automation/">VoIP system DevOps, operations and Infrastructure management,&nbsp;Automation</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;VoIP system DevOps, operations and Infrastructure management,&nbsp;Automation&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2019/01/05/voip-system-devops-operations-and-infrastructure-management-automation/embed/#?secret=11xQD9nYsn#?secret=Nx0U7aTikv" data-secret="Nx0U7aTikv" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading" id="multiple-pops-point-of-presence"><a href="#multiple-pops-point-of-presence">Multiple PoPs (point of presence)</a></h2>



<p class="wp-block-paragraph">for a VOIP system catering to many clients accross the globe or accessing multiple carriers meant for different counteries based on Prefix matching , there should be alocal PoP in most used regions . typically these regions include &#8211; US east &#8211; west coasts, UK &#8211; germany of London , Asia Pacific &#8211; Mumbai ,Hong Kong and Australia.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="945" height="629" data-attachment-id="3747" data-permalink="https://telecom.altanai.com/pop-voip/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg" data-orig-size="945,629" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pop-voip" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=945" alt="" class="wp-image-3747" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg 945w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=768 768w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<h3 class="wp-block-heading" id="minimal-latency-and-lowest-amount-of-tarffic-via-public-internet">Minimal Latency and lowest amount of tarffic via public internet</h3>



<p class="wp-block-paragraph">Creating multiple POPs and enabling private traffic via VPN in between them ensures that we use the backbone of our cloud provider such as AWS or datacentre instead of traversing via public internet which is slower and more insecure. Hopping on a private interface between the cloud server and maintaining a private connection and keepalive between them helps optimize the traffic flow while keeping the RTT and latency low.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="945" height="629" data-attachment-id="3746" data-permalink="https://telecom.altanai.com/pop-voip-2-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg" data-orig-size="945,629" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pop-voip-2-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=945" alt="" class="wp-image-3746" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg 945w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=768 768w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<h2 class="wp-block-heading" id="ha-high-availability"><a href="#ha-high-availability">HA ( High-availability )</a></h2>



<p class="wp-block-paragraph">Some factors affecting Dependability are </p>



<ul class="wp-block-list"><li>Eventual Consistency</li><li>MultiRegion failover</li><li>Disaster Recovery </li></ul>



<p class="wp-block-paragraph">A high-availability (HA) architecture implies Dependability.Usually via existence of redundant applications servers for backups: a primary and a standby. These applications are configured so that if primary fails, the other can take over its operations without significant loss of data or impact to business operations.</p>



<h3 class="wp-block-heading" id="downtime-sla-of-5-9-s-in-aggregate-failures">Downtime / SLA of 5 9&#8217;s in aggregate failures </h3>



<p class="wp-block-paragraph">4 9&#8217;s of availiability on each service components gives a downtime of 53 mins per service each year. However in aggregate failure this could amlount to (99.99)<sup>10 </sup> = 99.9 downtime which is 8-10 hours each year.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="799" height="463" data-attachment-id="5199" data-permalink="https://telecom.altanai.com/image-3-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png" data-orig-size="799,463" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-3" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=799" src="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=799" alt="" class="wp-image-5199" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png 799w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=768 768w" sizes="(max-width: 799px) 100vw, 799px" /></figure>



<p class="wp-block-paragraph">Thus, aggregate failure should be taken into consideration while designing reliable systems.</p>



<h3 class="wp-block-heading" id="ha-for-proxy-load-balancer-lb">HA for Proxy / Load balancer (LB)</h3>



<p class="wp-block-paragraph">A LB is the first point of contact for outbound calls and usually does not save the dialogue information into memory or database but still contain the transaction information in memory. In case the LB crashes and has to restart, it should</p>



<ul class="wp-block-list"><li>have a quick uptime</li><li>be able to handle in dialogue requests</li><li>handle new incoming dialogue requests in a stateless manner</li><li>verify auth/authorization details from requests even after restart</li></ul>



<h3 class="wp-block-heading" id="ha-for-call-control-app-server">HA for Call Control app server </h3>



<p class="wp-block-paragraph">App server is where all the business logic for call flow management resides and it maintains the dialog information in memory. </p>



<p class="wp-block-paragraph"><strong>Issues with in-memory call states </strong>: If the VM or server hosting the call control app server is down or disconnected, then live calls are affected, this, in turn, causes revenue loss. Primarily since the state variable holding the call duration would be able to pass onto the CDR/ billing service upon the termination of the call. For long-distance, multi telco endpoint calls running hours this could be a significant loss.</p>



<ul class="wp-block-list"><li><strong>Standby app server configuration</strong> <strong>and shared memory</strong> : If the primary app server crashes the standby app server should be ready to take its place and reads the dialog states from the shared memory.</li><li><strong>Live load balanced secondary app server + external cache for state varaibles</strong> : External cache for state variables: a cluster of master-slave caches like Redis is a good way of maintaining the dialogue state and reading from it once the app server recovers from a failed state or when a secondary server figures it has a missing variable in local memory.</li></ul>



<h3 class="wp-block-heading" id="media-server-ha">Media Server HA</h3>



<p class="wp-block-paragraph">Assuming the kamailio-RTPengine duo as App server and Media Server. These components can reside in same or different VMs. Incase of media server crash, during the process of restoring restarted RTpengine or assigning a secondary backup RTpengine , it should load the state of all live calls without dropping any and causing loss of revenue . This is achived by </p>



<ul class="wp-block-list"><li>external cache such as Redis , </li><li>quick switchover from primary to secondary/fallback media server and </li><li>floating IPs for media servers that ensures call continuity inspite of failure on active media server.</li></ul>



<p class="wp-block-paragraph">Architecturally it looks the same as fig above on HA for the SIP app server.</p>



<h2 class="wp-block-heading" id="security"><a href="#security">Security against malicious attacks</a></h2>



<p class="wp-block-paragraph">Attacks and security compromisation pose a very signficant threat to a VoIP platform. </p>



<p class="wp-block-paragraph"><strong>MITM attacks </strong></p>



<p class="wp-block-paragraph">Man in midddle attacks can be counetred by </p>



<ul class="wp-block-list"><li>End to end encryption of media using SRTP and signals using TLS</li><li>Strong SIP auth mechanism using challenges and creds where password is composed of mixed alphanumeric charecters and atleast 12 digits long </li><li>Authorization / whitelisting based on IP which adheres to CIDR notation</li></ul>



<p class="wp-block-paragraph"><strong>DDOS attacks </strong></p>



<p class="wp-block-paragraph">DDOS renders a particular network element unavailable, usually by directing an excessive amount of network traffic at its interfaces.</p>



<p class="wp-block-paragraph">dDOS – multiple network hosts to flood a target host with a large amount of network traffic. Can be created by sending falsified sip requests to other parties such that numerous transactions originating in the backwards direction comes to the target server created congestion.</p>



<p class="wp-block-paragraph">Can be counetred by </p>



<ul class="wp-block-list"><li>detect flooding and q in traffic and use Fail2ban to block</li><li>challenge questionable requests with only a single 401 (Unauthorized) or 407 (Proxy Authentication Required)</li></ul>



<p class="wp-block-paragraph">Read about SIP security practices in deatils <a href="https://telecom.altanai.com/2020/04/12/sip-security/">https://telecom.altanai.com/2020/04/12/sip-security/</a></p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="RZYFssE7wx"><a href="https://telecom.altanai.com/2020/04/12/sip-security/">Attacks on SIP&nbsp;Networks</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Attacks on SIP&nbsp;Networks&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2020/04/12/sip-security/embed/#?secret=UfZMgy96DG#?secret=RZYFssE7wx" data-secret="RZYFssE7wx" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph">Other important factors leading to security</p>



<ul class="wp-block-list"><li>Keystores and certificate expiry tracker</li><li>priveligges and roles </li><li>Test cases and code coverage</li><li>Reviewers approval before code merge</li><li>Window for QA setup and testing , to give go ahead before deployment</li></ul>



<h2 class="wp-block-heading" id="identifying-outages-and-alerting"><a href="#identifying-outages-and-alerting">Identifying outages and Alerting</a></h2>



<p class="wp-block-paragraph">Raise Event notification alerts to designated developers for any anolous behavior. It could be call based or SMS basef alert based on the sevirity of the situtaion .</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="527" data-attachment-id="5231" data-permalink="https://telecom.altanai.com/logging-and-alerting-voice-archietcture/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg" data-orig-size="1370,706" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="logging-and-alerting-voice-archietcture" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=1024" alt="Logging and Alerting for a VoIP CPaaS platform .
Raise Event notification alerts to designated developers for any anolous behavior. It could be call based or SMS basef alert based on the sevirity of the situtaion." class="wp-image-5231" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/logging-and-alerting-voice-archietcture.jpg 1370w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Sources for alert manager </p>



<ul class="wp-block-list"><li>Build failed ( code crashes, Jenkins error)</li><li>Deployment failed ( from Kubernetes , codechef, docker ..)</li><li>configuration errors ( setting VPN etc )</li><li>Server logs</li><li>Server health</li><li>homer alerts ( SIP calls responses 4xx,5xx,6xx)</li><li>PCAP alerts ( Malformed SIP SDP ..)</li><li>Internal Smoke test ( auto testing procedure done routinely to check live systems )</li><li>Support tickets from customer complaints ( treat these as high priority since they are directly impacting customers)</li></ul>



<h2 class="wp-block-heading" id="bottlenecks"><a href="#">Bottlenecks</a></h2>



<p class="wp-block-paragraph">The test bed and QA framework play a very crticial role in final product&#8217;s credibility and quality.</p>



<h3 class="wp-block-heading" id="performance-testing">Performance Testing </h3>



<ul class="wp-block-list"><li>Stress Testing : take to breaking </li><li>Load Testing : 2x to 3x testing </li><li>Soak Testing : typical network load to long time ( identify leaks )</li></ul>



<h3 class="wp-block-heading" id="robust-qa-framework-stress-and-monkey-testing-to-identify-potential-bottlenecks-before-going-live"><a href="https://altanaitelecom.wordpress.com/wp-admin/post.php?post=3730&amp;action=edit#robust-qa-framework-stress-and-monkey-testing-to-identify-potential-bottlenecks-before-going-live">Robust QA framework( stress and monkey testing) to identify</a> <a href="https://altanaitelecom.wordpress.com/wp-admin/post.php?post=3730&amp;action=edit#robust-qa-framework-stress-and-monkey-testing-to-identify-potential-bottlenecks-before-going-live">potential bottlenecks before going live</a></h3>



<p class="wp-block-paragraph">A QA framework basically validates the services and  callflows on staging envrionment  before pushing changes to production. Any architectural changes should especially be validated throughly on staginng QA framework befire making the cut. The qualities of an efficient QA platform are : </p>



<p class="wp-block-paragraph"><strong>Genric nature</strong> &#8211; QA framework should be adatable to different envrionments such as dev , staging , prod </p>



<p class="wp-block-paragraph"><strong>Containerized</strong> &#8211;  it should be easy to spn the QA env to do large scale or small scale testing and hence it should be dockerized </p>



<p class="wp-block-paragraph"><strong>CICD Integration and Automation</strong> &#8211; integrate the testcases tightly with gt post push and pull request creation . Minimal Latency and lowest amount of tarffic via public internet</p>



<p class="wp-block-paragraph">Keep as <strong>less external dependecies</strong> as possible for exmaple a telecom carrier can be simulated by using an PBX like freeswitch or asterix</p>



<p class="wp-block-paragraph"> <strong>Asynchronous</strong> <strong>Run</strong> &#8211; Test cases should be able to run asynchronously. Such as seprate sipp xml script for reach usecase </p>



<p class="wp-block-paragraph">Sample Testcases for VoIP </p>



<ul class="wp-block-list"><li>Authentication before establish a session </li><li>Balance and account check before establishing a session like whitelisting , blacklisting ,  restricted  permission in a particular geography</li><li>Transport security and adaptibility checks , TLS , UDP , TCP</li><li>codec support validation </li><li>DTMF and detection</li><li>Cross checking CDR values with actual call initiator and terminator party  </li><li>cross checking call uuid and stats </li><li>Validating for media and related timeouts</li></ul>



<p class="wp-block-paragraph"> QA frameworks tools &#8211; Robot framework </p>



<p class="wp-block-paragraph">traffic monitor &#8211; VOIP monitor</p>



<p class="wp-block-paragraph">customer simulator &#8211; sipP scripts </p>



<p class="wp-block-paragraph">network traffic analyser &#8211; wireshark</p>



<p class="wp-block-paragraph">pcap collevcter &#8211; tcpdump , sngrep</p>



<h2 class="wp-block-heading" id="distributed-data-store"><a href="#distributed-data-store">Distributed Data Store</a></h2>



<p class="wp-block-paragraph">A Distributed Database Design could have many components. It could work on static datastore like</p>



<ul class="wp-block-list"><li>SQL DB  where schema is important<ul><li>MySQL </li><li>postgress</li><li><strong>Spanner</strong>&nbsp;&#8211; Globally-distributed database from Google</li></ul></li><li>NoSQL DB for to store records in json<ul><li><strong>Cassandra</strong>&nbsp;&#8211; Distributed column-oriented database </li></ul></li><li>Cache for low latency retrivals <ul><li><strong>Memcached</strong>&nbsp;&#8211; Distributed memory caching system</li><li><strong>Redis</strong>&nbsp;&#8211; Distributed memory caching system with persistence and value types</li></ul></li><li>Data lakes for heavy sized data <ul><li><strong>AWS s3</strong> object storage </li><li>blob storage</li></ul></li><li>File System <ul><li><strong>Google File System (GFS)</strong>&nbsp;&#8211; Distributed file system</li><li><strong>Hadoop File System (HDFS)</strong>&nbsp;&#8211; Open source Distributed file system</li></ul></li></ul>



<p class="wp-block-paragraph">or work on realtime data streams</p>



<ul class="wp-block-list"><li>Batch processing ( Hadoop Mapreduce)</li><li>Stream processing ( Kafka + spark)<ul><li><strong>Kafka</strong>&nbsp;&#8211; Pub/sub message queue</li></ul></li><li>Cloud native stream processing ( kinesis)</li></ul>



<p class="wp-block-paragraph">Each component has its own pros and cons. The choice depends on requirnments and scope for system behaviour like</p>



<ul class="wp-block-list"><li>users/customer usuage and expectation , </li><li>Scale ( read and write )</li><li>Performnace  </li><li>Cost</li></ul>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Users/customers</td><td>Scale ( read / write)</td><td>Performance</td><td>Cost</td></tr><tr><td>Who uses the system ?<br>How the system will be used?</td><td>Read / writes per second ?<br>Size of data per request ?<br>cps ( calls or click per second) ?</td><td>write to read delay ?<br>p99 latency for read querries ?</td><td>should design minimize the cost of development ?<br><br>should design mikn ize the cost of mantainance ?</td></tr><tr><td></td><td>spikes in traffic </td><td>eventual consistency  ( prefer quick stale data ) as compared to no data at all </td><td></td></tr><tr><td></td><td>redundancy for failure management</td><td></td><td></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Some fundamental constrains while design distributed data structure :-</p>



<p class="wp-block-paragraph"><strong>p99 latency</strong>  : 99% of the requests should be faster than given latency. In other words only 1% of the requests are allowed to be slower.</p>



<pre class="wp-block-preformatted">Request latency:
    min: 0.1
    max: 7.2
    median: 0.2
    p95: 0.5
    p99: 1.3</pre>



<p class="wp-block-paragraph"><strong>Inidiviual Events vs Aggregate Data</strong></p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Inidividual Events ( like every click or every call metric)</td><td>Aggregate Data ( clicks per minute, outgoing calls per minute)</td></tr><tr><td>(+) fast write <br>(+) can customize/ recalculate data from raw </td><td>(+) faster reads <br>(+) data is fready for decision making / statistics </td></tr><tr><td>(-) slow reads <br>(-) costlier for large scale implementations ( many events )</td><td>(-) can only query in the data as was aggregates ( no raw )<br>(-) requires data aggregation pipeline<br>(-) hard to fix errors</td></tr><tr><td>suitable for realtime / data on fly <br>low expected data delay ( minutes )</td><td>suitable for batch processing in background where delay is acceptable from mintes to hours </td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Push vs Pull Architecture</strong></p>



<p class="wp-block-paragraph">Push : A processing server manages state of varaible in memory and pushes them to data store.</p>



<ul class="wp-block-list"><li>(-) crashed processingserver means all data is lost </li></ul>



<p class="wp-block-paragraph">Pull : A temporary data strcyture such as a queue manages the stream of data and processing service pull from it to process before pusging to data stoore.</p>



<ul class="wp-block-list"><li>(+) a crashed server has to effect on temporarily queue held data and new server can simply take on where previous processing server left.</li><li>(+) can use checkpointing </li></ul>



<h3 class="wp-block-heading" id="popular-db-storage-technologies">Popular DB storage technologies </h3>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>SQL</td><td>NoSQL</td></tr><tr><td>Structured and Strict schema <br>Relational data with joins </td><td>Semi-structured data<br>Dynamic or flexible schema<br></td></tr><tr><td>(+) faster lookup by index</td><td>(-)&nbsp;data intensive workload<br>(+) high throughput for IOPS (Input/output operations per second&nbsp;) </td></tr><tr><td>used for <br>Account information<br>transactions</td><td>best suitable for <br>Rapid ingest of clickstream and log data<br>Leaderboard or scoring data<br>Metadata/lookup tables</td></tr><tr><td></td><td><strong>DynamoDB</strong>&nbsp;&#8211; Document-oriented database from Amazon<br><strong>MongoDB</strong>&nbsp;&#8211; Document-oriented database</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A NoSQL databse can be  of type </p>



<ul class="wp-block-list" id="block-33f43e90-be59-4058-b6c0-f9ddfea4928d"><li>Quorem</li><li>Document</li><li>Key value</li><li>Graph</li></ul>



<p class="wp-block-paragraph"><strong>Cassandra</strong> is wide column supports asyn master less replication  </p>



<p class="wp-block-paragraph">Hinge base also a quorem based db also has master based preplication </p>



<p class="wp-block-paragraph"><strong>MongoDB</strong> documente orientd DB used leacder based replication </p>



<p class="wp-block-paragraph"><strong>SQL</strong> scaling patterns include:</p>



<ul class="wp-block-list"><li>Federation/&nbsp;federated database system : transparently maps multiple autonomous database systems into a single virtual/federated database.<ul><li>(-) slow since it access multiple data storages to get the value </li></ul></li><li>Sharding / horizontal partition</li><li>Denormalization : Even though normalization is more memory efficient denormalization can enhance read performance by additing redundant pre computed data in db or  grouping related data.<ul><li>Normalizing&nbsp;data&nbsp;reduces&nbsp;data warehouse disk space by&nbsp;reducing&nbsp;data duplication and dimension&nbsp;cardinality.&nbsp;In its full definition, normalization is the&nbsp;process of discarding repeating groups, minimizing redundancy, eliminating composite keys for partial dependency and separating non-key attributes. </li></ul></li></ul>



<ul class="wp-block-list"><li>SQL Tuning : &#8220;iterative process of improving SQL statement performance to meet specific, measurable, and achievable goals&#8221;</li></ul>



<p class="wp-block-paragraph"><strong>Influx DB </strong>: to store time series data </p>



<p class="wp-block-paragraph"><strong>AWS Redshift </strong></p>



<p class="wp-block-paragraph">Apache Hadoop</p>



<p class="wp-block-paragraph">Redis </p>



<p class="wp-block-paragraph">Embeed Data : RocksDB</p>



<h3 class="wp-block-heading" id="message-queues-buffering-vs-batch-processing"><a href="#message-queues-vs-batch-processing">Message Queues(Buffering) vs Batch Processing</a></h3>



<p class="wp-block-paragraph">Distributed event management, monitoring and working on incoming realtime data instead of stored Database is the preferred way to churn realtime analysis and updates. The multiple ways to handle incoming data are </p>



<ol class="wp-block-list"><li>Batch processing &#8211; has lags to produce results, not time crtical</li><li>Data stream &#8211; realtime response</li><li>Message Queues &#8211; ensures timely sequence and order</li></ol>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td><strong>Buffering</strong></td><td><strong>Batching</strong></td></tr><tr><td>Add events to buffer that can be read   </td><td>Add events to batch and send when batch is full </td></tr><tr><td>(+) can handle each event</td><td>(+) cost effective <br>(+) ensures throughput<br>(-) if some events in batch fail should whole batch fail ?<br>(-) not suited for real time processing</td></tr><tr><td> </td><td>S3 like objects storage + Hadoop Mapreduce for processing</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"> Timeout </p>



<ul class="wp-block-list"><li>Connection timeout : use latency percentiles to calculate this </li><li>Request timeout </li></ul>



<p class="wp-block-paragraph">Retries </p>



<ul class="wp-block-list"><li>exponential backoff : increase waiting time each try</li><li>jitter : adds rabdomness to retry intervals to spread out the load.</li></ul>



<p class="wp-block-paragraph"><strong>Grouping events into object storage and Message Brokers</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="874" height="653" data-attachment-id="5271" data-permalink="https://telecom.altanai.com/queue-based-event-processing/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg" data-orig-size="874,653" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="queue-based-event-processing" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=874" alt="" class="wp-image-5271" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg 874w, https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=768 768w" sizes="(max-width: 874px) 100vw, 874px" /></figure>



<p class="wp-block-paragraph">slower than stream processing but faster than batch processing.</p>



<h2 class="wp-block-heading" id="distributed-event-management-and-event-driven-architecture-using-streams"><a href="#distributed-event-management-and-event-driven-architecture-using-streams">Distributed Event management and Event Driven architecture using streams</a></h2>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p class="wp-block-paragraph">In  event driven archietcture a produce components performs and action which creates an event thata  consumer/listener would subscribes to consume. </p>



<ul class="wp-block-list"><li>(+) time sensitive</li><li>(+)Asynch</li><li>(+) Decoupled</li><li>(+) Easy scaling and Elasticity</li><li>(+) Heterogeneous</li><li>(+) contginious</li></ul>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3715" data-permalink="https://telecom.altanai.com/data-streaming-scalable-voip-platform-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="data-streaming-scalable-voip-platform-3" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=960" alt="" class="wp-image-3715" width="704" height="528" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=704 704w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg 960w" sizes="(max-width: 704px) 100vw, 704px" /></figure>



<p class="wp-block-paragraph">Expanding the stream pipeline </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="549" data-attachment-id="5235" data-permalink="https://telecom.altanai.com/event-streams-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg" data-orig-size="1091,585" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="event-streams-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=1024" alt="" class="wp-image-5235" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg 1091w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Event Streams decouple the source and sink applications. The event source and event sinks (such as webhooks) can asynchronously communicate with each other through events.</p>



<p class="wp-block-paragraph">Options for stream processing architectures</p>



<ul class="wp-block-list"><li>Apache Kafka</li><li>Apache Spark</li><li>Amazon kinesis</li><li>Google Cloud Data Flow</li><li>Spring Cloud Data Flow</li></ul>



<p class="wp-block-paragraph">Here is a post from earlier which discusses &#8211; Scalable and Flexible SIP platform building,  Multi geography Scaled  via Universal Router, Cluster SIP telephony Server for High Availability, Failure Recovery, Multi-tier cluster architecture, Role Abstraction / Micro-Service based architecture,  Load Balancer / Message Dispatcher, Back end Dynamic Routing and REST API services, Containerization and Auto Deployment, Auto scaling Cloud<strong>&nbsp;</strong>Servers<strong>&nbsp;</strong>using containerized images.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="NNHfkJOrFY"><a href="https://telecom.altanai.com/2013/11/21/what-should-a-telecom-solution-startup-do/">VoIP/ OTT / Telecom Solution startup&#8217;s strategy for building a scalable flexible SIP&nbsp;platform</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;VoIP/ OTT / Telecom Solution startup&#8217;s strategy for building a scalable flexible SIP&nbsp;platform&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2013/11/21/what-should-a-telecom-solution-startup-do/embed/#?secret=GpTNKPvB6Q#?secret=NNHfkJOrFY" data-secret="NNHfkJOrFY" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
</div></div>



<h3 class="wp-block-heading" id="lambda-architecture"><a href="#lambda-architecture">Lambda Architecture </a></h3>



<p class="wp-block-paragraph">Stream processing on top of map reduce and stream processing engine. In lambda architecture we can send events to batch system and stream processing system in parallel. The results are stiched together at query time.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="960" height="720" data-attachment-id="3714" data-permalink="https://telecom.altanai.com/lamda-archietcture/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lamda-archietcture" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=960" alt="" class="wp-image-3714" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg 960w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=768 768w" sizes="(max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption">Lambda Archietcture : stream processing on top of map reduce and stream processing engine. Send events to batch system and stream processing system in parallel. The results are stiched together at query time.</figcaption></figure>



<p class="wp-block-paragraph"><strong>Apache Kafka</strong> is used as source which is a framework implementation of a software bus using stream-processing. &#8220;.. high-throughput, low-latency platform for handling real-time data feeds&#8221;.</p>



<p class="wp-block-paragraph"><strong>Apache Spark</strong> : Data partitioning and in memory aggregation.</p>



<h2 class="wp-block-heading" id="distributed-cache-for-call-control-servers"><a href="#distributed-cache-for-call-control-servers">Distributed cache for call control Servers</a></h2>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>Dedicated Cache Cluster</td><td>Co located cache</td></tr><tr><td>Isolates cache fro service  <br>Cache and service do not share memory and CPU <br>can scale independently <br>can be used by many microservices <br>flexibility in choosing hardware </td><td>doesnt require seprate hardware <br>low operational and hardware cost <br> scales together with the service </td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="909" height="602" data-attachment-id="5318" data-permalink="https://telecom.altanai.com/ha-on-app-server-using-cache-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg" data-orig-size="909,602" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ha-on-app-server-using-cache-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=909" alt="" class="wp-image-5318" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg 909w, https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=768 768w" sizes="(max-width: 909px) 100vw, 909px" /></figure>



<h3 class="wp-block-heading" id="choosing-cache-host"><a href="#choosing-cache-host">Choosing cache host </a></h3>



<ul class="wp-block-list"><li><strong>Mod</strong> <strong>function </strong><ul><li>(-) behaves differently when a new client is added or one is removed , unsuitable for prod </li></ul></li><li><strong>Consistent hashing ( chord)</strong><ul><li>maps each value to a point on circle</li></ul></li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="805" height="469" data-attachment-id="5319" data-permalink="https://telecom.altanai.com/app-server-choosing-cache-host/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg" data-orig-size="805,469" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="app-server-choosing-cache-host" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=805" src="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=805" alt="" class="wp-image-5319" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg 805w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=768 768w" sizes="(max-width: 805px) 100vw, 805px" /></figure>



<h3 class="wp-block-heading" id="cache-replacement"><a href="#cache-replacement">Cache Replacement</a></h3>



<p class="wp-block-paragraph">Least Recently Used Cache Replacement</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="5323" data-permalink="https://telecom.altanai.com/distributed-cache-and-cache-replacement-lru-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg" data-orig-size="360,369" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="distributed-cache-and-cache-replacement-lru-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=293" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=360" src="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=360" alt="" class="wp-image-5323" width="345" height="354" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=345 345w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=146 146w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=293 293w, https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg 360w" sizes="(max-width: 345px) 100vw, 345px" /></figure>



<h3 class="wp-block-heading" id="consistency-and-high-availiability-in-cache-setup"><a href="#consistency-and-high-availiability-in-cache-setup">Consistency and High Availiability in Cache setup</a></h3>



<p class="wp-block-paragraph">ReadReplicas live in differenet data centre for disaster recovery. </p>



<p class="wp-block-paragraph">Strong consistency using Master Slave  </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1023" height="452" data-attachment-id="5322" data-permalink="https://telecom.altanai.com/app-server-choosing-cache-host-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg" data-orig-size="1023,452" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="app-server-choosing-cache-host-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=1023" alt="" class="wp-image-5322" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg 1023w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=768 768w" sizes="(max-width: 1023px) 100vw, 1023px" /></figure>



<h2 class="wp-block-heading" id="circuits"><a href="#circuits">Circuits &#8211; fail fast, wait for circuit to recover before using again</a></h2>



<p class="wp-block-paragraph">Design patterns for a circuit base setup to gracefully handle exceptions using fallback. </p>



<p class="wp-block-paragraph">Circuit breaker : stops client from repeatedly trying to exceute by calculate the error threshold. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="990" height="857" data-attachment-id="5205" data-permalink="https://telecom.altanai.com/image-4-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png" data-orig-size="990,857" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=990" alt="" class="wp-image-5205" srcset="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png 990w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=768 768w" sizes="(max-width: 990px) 100vw, 990px" /></figure>



<p class="wp-block-paragraph">Isolated thread pool in circuits and ensure full recovery before calling the service again.  </p>



<p class="wp-block-paragraph">(+) Circuit breaker event causes the entire circuit to repair itself before attempting operations.</p>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<ul class="wp-block-list"><li>[1] <a href="http://highscalability.com/blog/2013/4/15/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html" rel="nofollow">http://highscalability.com/blog/2013/4/15/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html</a></li><li>[2] <a href="http://engineering.hackerearth.com/2013/10/07/scaling-database-with-django-and-haproxy/" rel="nofollow">http://engineering.hackerearth.com/2013/10/07/scaling-database-with-django-and-haproxy/</a></li><li>[3] Mastering Chaos &#8211; A Netflix Guide to Microservices , QCon London</li><li>[4] <a href="https://dzone.com/refcardz/event-stream-processing-essentials" rel="nofollow">https://dzone.com/refcardz/event-stream-processing-essentials</a></li><li>[5] p99 latency <a href="https://stackoverflow.com/questions/12808934/what-is-p99-latency" rel="nofollow">https://stackoverflow.com/questions/12808934/what-is-p99-latency</a></li><li>[6] Oracle site on partitioing- <a href="https://docs.oracle.com/en-us/iaas/Content/Streaming/Concepts/partitioningastream.htm" rel="nofollow">https://docs.oracle.com/en-us/iaas/Content/Streaming/Concepts/partitioningastream.htm</a></li><li>[7] Mastering Chaos &#8211; A Netflix Guide to Microservices <a href="https://www.youtube.com/watch?v=CZ3wIuvmHeM&#038;ab_channel=InfoQ" rel="nofollow">https://www.youtube.com/watch?v=CZ3wIuvmHeM&#038;ab_channel=InfoQ</a></li><li>[8] Netflix cloud architecture <a href="https://netflixtechblog.com/tagged/cloud-architecture" rel="nofollow">https://netflixtechblog.com/tagged/cloud-architecture</a></li></ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3730</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-sql.jpg?w=977" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-and-replicated-data-store-nosql.jpg?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-partioned.jpg?w=1024" medium="image" />

		<media:content url="https://lh6.googleusercontent.com/5c8uCdQ_jCXeEIcFyoSaEYJmf-ZxPGTvpxWfblLAMNQyYq2OEKVArrCDafk64CfYU3XjKthuQoX60TM2_1pk7SFHZFWzx--eb4EBlIvD6UIGl-wRQEpKPOACN9jDJaDd0lkBFJab=s0" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip.jpg?w=945" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=945" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/image-3.png?w=799" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/queue-based-event-processing.jpg?w=874" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=960" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/event-streams-1.jpg?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=960" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/ha-on-app-server-using-cache-1.jpg?w=909" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host.jpg?w=805" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/distributed-cache-and-cache-replacement-lru-1.jpg?w=360" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/app-server-choosing-cache-host-1.jpg?w=1023" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/12/image-4.png?w=990" medium="image" />
	</item>
		<item>
		<title>Software Defined Networks ( SDN) and Network Function Virtulaization ( NFV) for Communication networks</title>
		<link>https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/</link>
					<comments>https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Thu, 23 Sep 2021 15:59:00 +0000</pubDate>
				<category><![CDATA[Access and Physical Layer]]></category>
		<category><![CDATA[Network functions virtualization]]></category>
		<category><![CDATA[NFV]]></category>
		<category><![CDATA[SDN]]></category>
		<category><![CDATA[Telecom]]></category>
		<category><![CDATA[Virtual Network Functions]]></category>
		<category><![CDATA[Virtulaization]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=3980</guid>

					<description><![CDATA[Innovations in telecommunication today are largely driven by the advancements in Open source tech tools, standards and stacks. IP-based video and voice communication systems, Unified Communication systems such as Enterprise CPaaS platforms or even an external independent VoIP provider. The challenge for service providers today is that operating costs are growing faster than revenues. A &#8230; <a href="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/" class="more-link">Continue reading <span class="screen-reader-text">Software Defined Networks ( SDN) and Network Function Virtulaization ( NFV) for Communication&#160;networks</span></a>]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list">
<li><a href="#nv">Network Virtualisation</a></li>



<li><a href="#sdn">Software Defined Network (SDN)</a>
<ul class="wp-block-list">
<li><a href="#SDN-planes">SDN planes</a></li>
</ul>
</li>



<li><a href="#Network-functions-virtualization">Network functions virtualization (NFV)</a></li>



<li><a href="#IMS-Virtual-Network-Functions">IMS Virtual Network Functions (VNFs)</a></li>



<li><a href="#OpenStack">OpenStack</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">Innovations in telecommunication today are largely driven by the advancements in Open source tech tools, standards and stacks. IP-based video and voice communication systems, Unified Communication systems such as Enterprise CPaaS platforms or even an external independent VoIP provider. The challenge for service providers today is that operating costs are growing faster than revenues. A large number of growing systems and vendors make operation a complex and expensive process.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="530" height="284" data-attachment-id="7228" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-1-14/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png" data-orig-size="530,284" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=530" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=530" alt="" class="wp-image-7228" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png 530w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=300 300w" sizes="(max-width: 530px) 100vw, 530px" /><figcaption class="wp-element-caption">Discrepancies between traffic growth and revenue growth (Source: Accenture)</figcaption></figure>



<p class="wp-block-paragraph">Maintaining a network for communication service providers can be a complex and challenging task for several reasons:</p>



<ol class="wp-block-list">
<li><strong>Network maintenance and upgrades</strong>: Service providers must constantly maintain and upgrade their networks to ensure that they are able to provide reliable service to their customers. This can involve replacing outdated equipment, installing new technology, and troubleshooting issues that arise.</li>



<li><strong>Managing traffic</strong>: Service providers must manage the traffic on their networks to ensure that it is distributed efficiently and that users are able to access the services they need. This can be a challenge, especially when the network is congested or there are unexpected spikes in traffic.</li>



<li><strong>Ensuring security</strong>: Communication networks are vulnerable to a variety of security threats, including hacking, malware, and denial of service attacks. Service providers must take measures to protect their networks and their customers&#8217; data from these threats.</li>



<li><strong>Managing costs</strong>: Maintaining a communication network can be expensive, and service providers must find ways to manage costs while still providing high-quality service to their customers.</li>



<li><strong>Meeting regulatory requirements</strong>: Service providers must comply with a variety of regulations, including those related to privacy, data protection, and network security. Failing to comply with these regulations can have serious consequences, including fines and reputational damage.</li>
</ol>



<h2 class="wp-block-heading" id="nv"><a href="#nv">Network Virtualisation</a></h2>



<p class="wp-block-paragraph">Network virtualization is the process of creating a virtual version of a network, including the hardware, network topology, and protocols, using software. This allows multiple virtual networks to be created and run on the same physical infrastructure, which can be used to isolate different network environments, test new network configurations, or provide network resources as a service.</p>



<p class="wp-block-paragraph"><strong>NV = NFV + SDN</strong></p>



<ul class="wp-block-list">
<li>NFV is SW-defined network functions with separation of HW and SW. Once network elements are SW-based, network HW can be managed as a pool of resources</li>



<li>SDN is  Interconnecting Virtual Network Functions with separation of control and data plane. Orchestration together with SW domain</li>
</ul>



<p class="wp-block-paragraph">There are several ways to implement network virtualization, including using software-defined networking (SDN) technologies, which allow the network to be controlled and managed using software, and using virtualization technologies such as virtual LANs (VLANs) or virtual private networks (VPNs) to create isolated network segments within a larger network. In a virtualized network the setup network functionalities are SW-based over COTS HW. Multiple roles can be made over same HW.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7461" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-59-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png" data-orig-size="1004,626" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-59" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=1004" alt="" class="wp-image-7461" width="601" height="374" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=601 601w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png 1004w" sizes="(max-width: 601px) 100vw, 601px" /><figcaption class="wp-element-caption"><a href="#nv">Network Virtualisation</a> for Telcos</figcaption></figure>



<p class="wp-block-paragraph">Network Virtualisation is an opportunity to build mouldable networks and redefine the architecture to make the infrastructure uniform.Virtual network services lowered CAPEX. Lessening dependencies on proprietary hardware and dedicated appliances.</p>



<ul class="wp-block-list">
<li>(+) Improves management of risk in a changing and ambiguous environment</li>



<li>(+) capacity alteration Network flexibility</li>



<li>(+) scalability</li>



<li>(+) Service provisioning speed</li>



<li>(+) holistic management:</li>



<li>(+) granular security</li>
</ul>



<p class="wp-block-paragraph">There are several approaches to network virtualization that service providers can use, including:</p>



<ol class="wp-block-list">
<li><strong>Network Function Virtualization (NFV)</strong>: NFV involves virtualizing network functions, such as routers, firewalls, and load balancers, and running them on standard servers or other off-the-shelf hardware using virtualization platforms like VMware or OpenStack.</li>



<li><strong>Software-Defined Networking (SDN)</strong>: SDN involves separating the control plane (which determines how data is routed through the network) from the data plane (which carries the actual data). This allows the control plane to be more flexible and responsive to changes in the network.</li>



<li><strong>Virtual Private Network (VPN)</strong>: A VPN allows service providers to create virtual private networks (VPNs) over the public Internet, allowing them to securely connect users to the resources they need.</li>
</ol>



<p class="wp-block-paragraph">Service providers can use network virtualization to reduce costs, increase flexibility, and improve the scalability and reliability of their networks. Managed Service Providers (MSPs) can use a single viewpoint and toolset to manage virtual networking, computing and storage resources. However, implementing network virtualization can also be complex and require significant investments in hardware, software, and training.</p>



<h2 class="wp-block-heading"><a href="https://altanaitelecom.wordpress.com/wp-admin/post.php?post=3980&amp;action=edit#sdn">Software Defined Network (SDN)</a></h2>



<p class="wp-block-paragraph">A software-defined network (SDN) is a networking architecture that uses software provisioning interfaces to control and manage the flow of traffic in a network. In an SDN, the control plane, which determines how data is routed through the network, is separated from the data plane, which carries the actual data traffic.</p>



<p class="wp-block-paragraph">The main benefit of an SDN is that it allows the control of the network to be abstracted from the underlying hardware. This makes it possible to use software to dynamically configure the network, rather than relying on fixed configurations that are set using hardware switches and routers. SDN allows network administrators to easily and quickly change the way that data is routed through the network, which can be useful in a variety of scenarios. For example, an SDN can be used to optimize the flow of traffic in a data center, or to quickly reconfigure a network in response to changing traffic patterns or security threats such as DDoS.</p>



<h3 class="wp-block-heading" id="SDN-planes"><a href="#SDN-planes">SDN planes</a></h3>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7442" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-54-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png" data-orig-size="425,269" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-54" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=425" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=425" alt="" class="wp-image-7442" width="709" height="449" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png 425w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=300 300w" sizes="(max-width: 709px) 100vw, 709px" /><figcaption class="wp-element-caption">Image Credits : Shqip: Arkitektura SDN, 27 June 2021, From Wikimedia Commons, the free media repository Source <a href="https://www.researchgate.net/publication/332970813_Security_for_5G_and_Beyond" rel="nofollow">https://www.researchgate.net/publication/332970813_Security_for_5G_and_Beyond</a></figcaption></figure>



<ol class="wp-block-list">
<li><strong>Control plane</strong>: The control plane is the part of the SDN that determines how data is routed through the network. It consists of a central controller, which is a software application that runs on a server, and a series of software agents that run on the network devices (such as switches and routers). The controller communicates with the agents using a protocol such as OpenFlow, which allows it to control the flow of traffic in the network.</li>



<li><strong>Data plane</strong>: The data plane is the part of the SDN that carries the actual data traffic. It consists of the network devices (such as switches and routers) that forward data packets through the network.</li>



<li><strong>Management plane</strong>: The management plane is the part of the SDN that is responsible for configuring and managing the network. It consists of a set of tools and applications that allow network administrators to monitor and control the network.</li>



<li><strong>Application plane:</strong> The application plane is the part of the SDN that consists of the applications that run on the network. These applications may include things like web servers, email servers, and database servers.</li>
</ol>



<p class="wp-block-paragraph">Software-defined network functions separates hardware and software. Once network elements are Software-based, network harware can be managed as a pool of resources. Separating route/switching intelligence from packet forwarding reduces hardware prices as routers and switches must compete on price-performance features.</p>



<p class="wp-block-paragraph">SDN interconnects Virtual Network Function and orchestrated with SW domain. Enables separation of control and data plane.Setting up networks in an SDN can be as easy as creating VM instances, and the way SDNs can be set up is a far better complement to VMs than plain old physical networks. SDNs enable “network experimentation without impact”. Overcome SNMP limitations and experiment with new network configurations without being hamstrung by their consequences.</p>



<ul class="wp-block-list">
<li>Infrastructure Savings</li>



<li>Reducing margin of Error : By eliminating manual intervention, SDNs enable resellers to reduce configuration and deployment errors that can impact the network.</li>



<li>Operational Savings: SDNs lower operating expenses. Network services can be packaged for application owners, freeing up the networking team.</li>



<li>Flexibility: SDNs create flexibility in how the network can be used and operated. Resellers can write their own network services using standard development tools.</li>



<li>Better Management gives Better visibility into the network, computing, and storage</li>
</ul>



<p class="wp-block-paragraph">SDN protocols : OpenFlow, NETCONF. Its applications could be </p>



<ul class="wp-block-list">
<li>Bandwidth on Demand or test networks.</li>



<li>Platform Virtualization for emulation/simulation of Network Nodes (BSS/MSS) </li>



<li>SDN based Application Layer Traffic Optimization</li>



<li>Intrusion Detection System that can interact with controller in terms of capturing packets, analyzing them for anomaly and sharing results real-time / near real-time with controller.</li>



<li>Software-Defined Branch and SD-WAN</li>



<li>IP Multi-Media Subsystem (IMS)</li>



<li>Session Border Control (SBC)</li>



<li>Video Servers</li>



<li>Voice Servers</li>



<li>Universal Customer Premises Equipment (uCPE)</li>



<li>Content Delivery Networks (CDN)</li>



<li>Network Monitoring</li>



<li>Network Slicing</li>



<li>Service Delivery</li>



<li>Network security functions such as firewalls, IDS, IPS, vRR, NAT&nbsp;</li>
</ul>



<h2 class="wp-block-heading" id="Network-functions-virtualization"><strong><a href="#Network-functions-virtualization">Network functions virtualization (NFV)</a></strong></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NFV provides the basic networking functions and SDN assumes higher-level management responsibility to orchestrate overall network operations.</p>
<cite>blog.equinix.com/blog/2020/03/10/sdn-vs-nfv-understanding-their-differences-similarities-and-benefits/</cite></blockquote>



<p class="wp-block-paragraph">Network Function Virtualization (NFV) is a technology that allows network functions, such as routers, firewalls, and load balancers, to be implemented in software rather than hardware. This allows these functions to be run on standard servers or other off-the-shelf hardware, rather than dedicated appliances.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7455" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-56-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png" data-orig-size="1151,730" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-56" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=1024" alt="" class="wp-image-7455" width="559" height="354" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=559 559w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=1118 1118w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=768 768w" sizes="(max-width: 559px) 100vw, 559px" /></figure>



<p class="wp-block-paragraph">In an NFV system, network functions are implemented as software called Virtual Network Functions (VNFs). These VNFs are run on virtualization platforms, such as VMware or OpenStack, which allow multiple VNFs to be run on the same physical hardware. To use NFV, a service provider will first define the network functions that it needs in its network, and then create VNFs for each of these functions. These VNFs can then be deployed on virtualization platforms and used to build the service provider&#8217;s network.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="791" data-attachment-id="7457" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-57-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png" data-orig-size="1286,994" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-57" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=1024" alt="" class="wp-image-7457" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png 1286w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">One of the main benefits of NFV is that it allows service providers to be more flexible and agile in building and managing their networks. Because VNFs can be easily added, removed, or scaled up or down as needed, service providers can quickly respond to changes in demand or new business opportunities. NFV decouples network functions from proprietary hardware appliances (routers, firewalls, VPN terminators, SD-WAN, etc.) and delivers equivalent network functionality without the need for specialized hardware. And this way it helps service providers reduce costs, as they can use standard hardware rather than specialized appliances ( vendor lockins) to implement their network functions.</p>



<h2 class="wp-block-heading" id="IMS-Virtual-Network-Functions"><a href="#IMS-Virtual-Network-Functions">IMS Virtual Network Functions (VNFs)</a></h2>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7328" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-24-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png" data-orig-size="1544,990" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-24" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=1024" alt="" class="wp-image-7328" width="746" height="478" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=746 746w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=1492 1492w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=1440 1440w" sizes="(max-width: 746px) 100vw, 746px" /><figcaption class="wp-element-caption">IMS. Image Credits Unknown </figcaption></figure>



<p class="wp-block-paragraph">A traditional appliance based IMS setup is dedicated to every single service, limited hardware/people/process leveraging.Some drawbacks of this approach is</p>



<ul class="wp-block-list">
<li>Not suited for Heterogeneous Networks that are evolving &#8211; inflexible</li>



<li>Higher footprint cost per customer/service &#8211; high OPEX</li>



<li>New services would need a new dedicated network thus high maintenance cost for solios of operation</li>
</ul>



<p class="wp-block-paragraph">Virtualisation will help to redesign the network architecture. In an IMS (IP Multimedia Subsystem) system, VNFs might be used to implement a variety of functions, including:</p>



<ol class="wp-block-list">
<li><strong>Call Session Control Function (CSCF)</strong>: The CSCF is responsible for managing call sessions and routing signaling messages between the IMS network and other networks.</li>



<li><strong>Media Gateway Control Function (MGCF)</strong>: The MGCF is responsible for translating between different media formats, such as voice and video, and for controlling media gateways that connect the IMS network to other networks.</li>



<li><strong>Home Subscriber Server (HSS)</strong>: The HSS is a database that stores information about IMS subscribers, including their profiles and service subscriptions.</li>



<li><strong>Serving Gateway (S-GW)</strong>: The S-GW is responsible for routing data packets between the IMS network and the user&#8217;s device.</li>



<li><strong>Policy and Charging Rules Function (PCRF)</strong>: The PCRF is responsible for enforcing policy decisions and charging rules for IMS services.</li>



<li><strong>IP-SM-GW (SMS Gateway)</strong>: The IP-SM-GW is responsible for routing SMS messages between the IMS network and other networks.</li>



<li><strong>Presence Server</strong>: The presence server is responsible for managing presence information (such as availability status) for IMS subscribers.</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="391" data-attachment-id="7466" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-61-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png" data-orig-size="1301,497" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-61" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=1024" alt="" class="wp-image-7466" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png 1301w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Multi-tenant subscriber and service environment. Keeping traffic local but with common services &amp; management</figcaption></figure>



<p class="wp-block-paragraph">Local Data Centre can rapidly build Network Intelligence rationalisation using Real Time Network Analytics on virtul STB, EPC, NAT, BRAS, PE, DHCP , PCRF etc. Core can be simplified and centralised with common and standard interfaces within core network and services to interact with OSS and BSS (standardized billing and fulfillment process).</p>



<h2 class="wp-block-heading" id="OpenStack"><a href="#OpenStack">OpenStack</a></h2>


<div class="wp-block-image">
<figure class="alignright size-large"><img loading="lazy" width="140" height="141" data-attachment-id="7293" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-17-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-17.png" data-orig-size="140,141" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-17" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-17.png?w=140" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-17.png?w=140" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-17.png?w=140" alt="" class="wp-image-7293" /></figure>
</div>


<p class="wp-block-paragraph">OpenStack is an open-source virtualization platform. It enables service providers to deploy virtual network functions (VNFs) using commercial off-the-shelf (COTS) server hardware.  OpenStack is widely used in the telecommunications industry, as it allows service providers to build and manage large-scale cloud computing environments that can be used to deliver a wide range of services, including virtualized infrastructure, NFV, and containerized applications. Applying Openstack to virtualize networks :</p>



<ol class="wp-block-list">
<li>Infrastructure as a Service (IaaS): OpenStack can be used to create and manage virtualized infrastructure, including compute, storage, and networking resources. This allows service providers to offer users the ability to spin up and manage virtual machines, storage volumes, and other resources on demand.</li>



<li>Network Function Virtualization (NFV): OpenStack can be used as a platform for virtualizing network functions, such as routers, firewalls, and load balancers, and running them on standard servers or other off-the-shelf hardware.</li>



<li>Container orchestration: OpenStack can be used to manage containerized applications, allowing service providers to deploy and scale applications more quickly and efficiently.</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" width="637" height="322" data-attachment-id="7454" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-55-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png" data-orig-size="637,322" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-55" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=637" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=637" alt="" class="wp-image-7454" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png 637w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=300 300w" sizes="(max-width: 637px) 100vw, 637px" /><figcaption class="wp-element-caption">Image Credits OpenStack Wiki </figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="748" height="469" data-attachment-id="7172" data-permalink="https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/image-2-14/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png" data-orig-size="748,469" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=748" src="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=748" alt="" class="wp-image-7172" srcset="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png 748w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=300 300w" sizes="(max-width: 748px) 100vw, 748px" /><figcaption class="wp-element-caption">Example of  OpenStack implementation. Image source: <a rel="noreferrer noopener" href="https://wiki.openstack.org/wiki/XenServer/XenAndXenServer" target="_blank">OpenStack Wiki</a></figcaption></figure>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph"><strong>References</strong>:</p>



<ul class="wp-block-list">
<li><a href="https://en.wikipedia.org/wiki/Software-defined_networking" rel="nofollow">https://en.wikipedia.org/wiki/Software-defined_networking</a></li>



<li><a href="https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-overview" rel="nofollow">https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-overview</a></li>



<li><a href="https://www.vmware.com/topics/glossary/content/virtual-networking.html#:~:text=Virtual%20Networking%20enables%20the%20communication,office%20and%20data%20center%20locations" rel="nofollow">https://www.vmware.com/topics/glossary/content/virtual-networking.html#:~:text=Virtual%20Networking%20enables%20the%20communication,office%20and%20data%20center%20locations</a>.</li>
</ul>



<p class="wp-block-paragraph">More to read :</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="MZs583xjsA"><a href="https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/">High availiability and Scalibility in VoIP&nbsp;platforms</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;High availiability and Scalibility in VoIP&nbsp;platforms&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2021/12/21/high-availiability-and-scalibility-in-voip-platforms/embed/#?secret=Q7b8i8InXU#?secret=MZs583xjsA" data-secret="MZs583xjsA" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2021/09/23/software-defined-networks-sdn-and-network-function-virtulaization-nfv-for-communication-networks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3980</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-1.png?w=530" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-59.png?w=1004" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-54.png?w=425" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-56.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-57.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-24.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-61.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-17.png?w=140" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-55.png?w=637" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/11/image-2.png?w=748" medium="image" />
	</item>
		<item>
		<title>EEP (formely HEP) Extensible Encapsulation Protocol with HOMER</title>
		<link>https://telecom.altanai.com/2021/09/19/eep-formely-hep-extensible-encapsulation-protocol-with-homer/</link>
					<comments>https://telecom.altanai.com/2021/09/19/eep-formely-hep-extensible-encapsulation-protocol-with-homer/#comments</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Sun, 19 Sep 2021 15:13:00 +0000</pubDate>
				<category><![CDATA[SIP monitoring and Notification]]></category>
		<category><![CDATA[EEP]]></category>
		<category><![CDATA[HOMER]]></category>
		<guid isPermaLink="false">http://altanaitelecom.wordpress.com/?p=4851</guid>

					<description><![CDATA[<!-- wp:paragraph -->
<p>EEP duplicates and IP datagram and encapsulates and sends for remote relatime monitoring for SIP specific alerts and notifications . HEP is popular among many SIP servers including Freeswitch , Opensips , kamailio , RTP engine as an external module .</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>intended for passive duplicated for remote collection</li><li>can be used for audit storage and analysis</li><li>does not alter the orignal datagram or headers</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>HOMER is Packet and Event capture system popular fpr VOIP/RTC Monitoring  based on HEP/EEP (Extensible Encapsulation protocol)</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">EEP duplicates and IP datagram and encapsulates and sends for remote relatime monitoring for SIP specific alerts and notifications . HEP is popular among many SIP servers including Freeswitch , Opensips, Kamailio, RTP engine as an external module .</p>



<ul class="wp-block-list"><li>intended for passive duplicated for remote collection</li><li>can be used for audit storage and analysis</li><li>does not alter the orignal datagram or headers</li></ul>



<p class="wp-block-paragraph">HOMER is Packet and Event capture system popular fpr VOIP/RTC Monitoring  based on HEP/EEP (Extensible Encapsulation protocol)</p>



<h2 class="wp-block-heading" id="sip-server-integration">SIP Server Integration</h2>



<p class="wp-block-paragraph">Homer and homer encapsulation protocl (HEP) integration with sip server brings the capabilities to SIP/SDP payload retention with precise timestamping better monitor and detect anomilies in call tarffic and events correlation of session ,logs , reports also the power to bring charts and statictics for SIP and RTP/RTCP packets etc. We read about sipcapture and sip trace modules in project sipcapture_siptrace_hep.</p>



<p class="wp-block-paragraph">Both Kamailio and Opensips HEP Integration are structurally simmilar. In kamailio SIPCAPTURE [2] module enables support for &#8211;</p>



<p class="wp-block-paragraph">● Monitoring/mirroring port<br>● IPIP encapsulation (ETHHDR+IPHDR+IPHDR+UDPHDR)<br>● HEP encapsulation protocol mode (HEP v1, v2, v3)</p>



<p class="wp-block-paragraph"><img src="https://lh3.googleusercontent.com/r-0tB8zJacHhkVSE1s11DmrzHgW_hpSo6HZPN5uc0etb5k8tzqImFGZkdXDJGeKVEhfSQWfVJGjORLCiL8QQOCu4CUQNckv_Pd4xm0QYVTgsq92TBPmhTJs2jDBkcW88owq2KopN=s0" style="width:300px;"></p>



<p class="wp-block-paragraph">Figure  Opensips Capturing ( credits <a href="http://www.opensips.org" rel="nofollow">http://www.opensips.org</a>)</p>



<p class="wp-block-paragraph"><img src="https://lh4.googleusercontent.com/IddPRaNfGhpRb8AerFZZ4tY5flFVqtxWteke0tGZizjRILDGmhZRvTLCHH0hePTSuGw8lr5FxHsf5U5RU_FosKtUznRKyF0J43gZIWzh8cu-vwgxEwq0vc0GkodlYWzigCq_tft_=s0" style="width:400px;"></p>



<p class="wp-block-paragraph">Figure showing Opensips integartion with external capturing agent via proxy agent ( which can be HOMER)</p>



<p class="wp-block-paragraph">To achieve that, load and configure the SipCapture module in the routing script.</p>



<p class="wp-block-paragraph">Snippets fro Kamailio Homer docker installation as a collector  </p>



<pre class="wp-block-preformatted">git clone https://github.com/sipcapture/homer-docker.git
cd homer-docker
docker-compose build
docker-compose up</pre>



<p class="wp-block-paragraph">Outsnippets  from screen while the installation takes place</p>



<pre class="wp-block-preformatted">Creating network "homer-docker_default" with the default driver
Creating volume "homer-docker_homer-data-semaphore" with default driver
Creating volume "homer-docker_homer-data-mysql" with default driver
Creating volume "homer-docker_homer-data-dashboard" with default driver
Pulling mysql (mysql:5.6)...
5.6: Pulling from library/mysql
...
Creating mysql ... done
Creating homer-webapp   ... done
Creating homer-cron      ... done
Creating homer-kamailio  ... done
Creating bootstrap-mysql ... done
Attaching to mysql, homer-webapp, bootstrap-mysql, homer-cron, homer-kamailio
....
homer-webapp | Homer web app, waiting for MySQL
homer-cron   | Homer cron container, waiting for MySQL
homer-kamailio | Kamailio, waiting for MySQL
bootstrap-mysql | Mysql is now running.
bootstrap-mysql | Beginning initial data load....
bootstrap-mysql | Creating Databases...
bootstrap-mysql | Creating Tables...
.....
omer-kamailio | Kamailio container detected MySQL is running &amp; bootstrapped
homer-kamailio |  0(22) INFO: &lt;core&gt; [core/sctp_core.c:75]: sctp_core_check_support(): SCTP API not enabled - if you want to use it, load sctp module
homer-kamailio |  0(22) WARNING: &lt;core&gt; [core/socket_info.c:1315]: fix_hostname(): could not rev. resolve 0.0.0.0
homer-kamailio | config file ok, exiting...
homer-kamailio | loading modules under config path: //usr/lib/x86_64-linux-gnu/kamailio/modules/
homer-kamailio | Listening on 
homer-kamailio |              udp: 0.0.0.0:9060
homer-kamailio | Aliases: 
homer-kamailio | 
homer-kamailio |  0(23) INFO: &lt;core&gt; [core/sctp_core.c:75]: sctp_core_check_support(): SCTP API not enabled - if you want to use it, load sctp module
homer-kamailio |  0(23) WARNING: &lt;core&gt; [core/socket_info.c:1315]: fix_hostname(): could not rev. resolve 0.0.0.0
homer-kamailio | loading modules under config path: //usr/lib/x86_64-linux-gnu/kamailio/modules/
homer-kamailio | Listening on 
homer-kamailio |              udp: 0.0.0.0:9060
homer-kamailio | Aliases: 
homer-kamailio | 
homer-kamailio |  0(23) INFO: sipcapture [sipcapture.c:480]: parse_table_names(): INFO: table name:sip_capture
...
homer-webapp | Homer web app container detected MySQL is running &amp; bootstrapped
homer-webapp | Module php5 already enabled</pre>



<p class="wp-block-paragraph">Capture tools</p>



<h2 class="wp-block-heading" id="dialoge-module">Dialoge module</h2>



<p class="wp-block-paragraph">storing dialogs in mysql DB , requires initialising mysql</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
#!define WITH_MYSQL
...
#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif
...
#!ifdef WITH_MYSQL
# - database URL - used to connect to database server by modules such
#       as: auth_db, acc, usrloc, a.s.o.
#!ifndef DBURL
#!define DBURL "mysql://root:kamailio@localhost/kamailio"
#!endif
#!endif
</pre></div>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
loadmodule "dialog.so"
# ----- dialog params ------
modparam("dialog", "dlg_flag", 10)
modparam("dialog", "track_cseq_updates", 0)
modparam("dialog", "dlg_match_mode", 2)
modparam("dialog", "timeout_avp", "$avp(i:10)")
modparam("dialog", "enable_stats", 1)
modparam("dialog", "db_url", DBURL)
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_update_period", 120)
modparam("dialog", "table_name", "dialog")
</pre></div>


<p class="wp-block-paragraph">seting db_mode &#8211; synchronisation of dialog information from memory to an underlying database has following options<br>0 &#8211; NO_DB &#8211; the memory content is not flushed into DB;<br>1 &#8211; REALTIME &#8211; any dialog information changes will be reflected into the database immediately.<br>2 &#8211; DELAYED &#8211; the dialog information changes will be flushed into DB periodically, based on a timer routine.<br>3 &#8211; SHUTDOWN &#8211; the dialog information will be flushed into DB only at shutdown &#8211; no runtime updates.</p>



<p class="wp-block-paragraph">note :</p>



<ul class="wp-block-list"><li>use the same hash_size while using diff kamailio to restore dialogs</li></ul>



<h3 class="wp-block-heading" id="database-table-for-dialogue">database table for dialogue</h3>



<ol class="wp-block-list"><li>install mysql</li><li>define root ( with db create permissions ) and user ( with database read wrote ) permission in kamctlrc</li></ol>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
vi /usr/local/etc/kamailio/kamctlrc
</pre></div>


<ul class="wp-block-list"><li>Dialogue table schema *</li></ul>



<pre class="wp-block-preformatted">name type size default null key extra attributes description<br>id unsigned int 10 no primary autoincrement unique ID<br>hash_entry unsigned int 10 no Number of the hash entry in the dialog hash table<br>hash_id unsigned int 10 no The ID on the hash entry<br>callid string 255 no Call-ID of the dialog<br>from_uri string 128 no URI of the FROM header (as per INVITE)<br>from_tag string 64 no identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog.<br>to_uri string 128 no URI of the TO header (as per INVITE)<br>to_tag string 64 no identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog.<br>caller_cseq string 20 no Last Cseq number on the caller side.<br>callee_cseq string 20 no Last Cseq number on the caller side.<br>caller_route_set string 512 yes Route set on the caller side.<br>callee_route_set string 512 yes Route set on on the caller side.<br>caller_contact string 128 no Caller's contact uri.<br>callee_contact string 128 no Callee's contact uri.<br>caller_sock string 64 no Local socket used to communicate with caller<br>callee_sock string 64 no Local socket used to communicate with callee<br>state unsigned int 10 no The state of the dialog.<br>start_time unsigned int 10 no The timestamp (unix time) when the dialog was confirmed.<br>timeout unsigned int 10 0 no The timestamp (unix time) when the dialog will expire.<br>sflags unsigned int 10 0 no The flags to set for dialog and accesible from config file.<br>iflags unsigned int 10 0 no The internal flags for dialog.<br>toroute_name string 32 yes The name of route to be executed at dialog timeout.<br>req_uri string 128 no The URI of initial request in dialog<br>xdata string 512 yes Extra data associated to the dialog (e.g., serialized profiles).</pre>



<h2 class="wp-block-heading" id="siptrace-module">Siptrace module</h2>



<p class="wp-block-paragraph">SIPtrace module offer a possibility to store incoming and outgoing SIP messages in a database and/or duplicate to the capturing server (using HEP, the Homer encapsulation protocol, or plain SIP mode).</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
loadmodule "siptrace.so"
modparam("siptrace", "duplicate_uri", "sip:127.0.0.1:9060")
modparam("siptrace", "hep_mode_on", 1)
modparam("siptrace", "trace_to_database", 0)
modparam("siptrace", "trace_flag", 22)
modparam("siptrace", "trace_on", 1)

</pre></div>


<p class="wp-block-paragraph">integrating iut with request route to start duplicating the sip messages</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
sip_trace();
setflag(22);

</pre></div>


<ul class="wp-block-list"><li>trace_mode * 1 &#8211; uses core events triggered when receiving or sending SIP traffic to mirror traffic to a SIP capture server using HEP 0 &#8211; no automatic mirroring of SIP traffic via HEP.</li></ul>



<h2 class="wp-block-heading" id="duplicate"><a href="https://github.com/altanai/kamailioexamples/blob/master/siptrace_homer_heplifyserver/README.md#duplicate"></a>duplicate</h2>



<p class="wp-block-paragraph">address in form of a SIP URI where to send a duplicate of traced message. It uses UDP all the time.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
modparam("siptrace", "duplicate_uri", "sip:127.0.0.1:9060")

</pre></div>


<p class="wp-block-paragraph">to check the duplicate messages arriving</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
ngrep -W byline -d any port 9060 -q

</pre></div>


<h3 class="wp-block-heading" id="rpc-commands"><a href="https://github.com/altanai/kamailioexamples/blob/master/siptrace_homer_heplifyserver/README.md#rpc-commands"></a>RPC commands</h3>



<p class="wp-block-paragraph">Can ruen sip trace on or off</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
kamcmd&gt; siptrace.status on   
Enabled

</pre></div>


<p class="wp-block-paragraph">and to check</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
kamcmd&gt; siptrace.status check
Enabled

</pre></div>


<h2 class="wp-block-heading" id="store-sip-trace-in-database"><a href="https://github.com/altanai/kamailioexamples/blob/master/siptrace_homer_heplifyserver/README.md#store-sip_trace-in-database"></a>Store sip_trace in database</h2>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
modparam("siptrace", "trace_to_database", 1)
modparam("siptrace", "db_url", DBURL)
modparam("siptrace", "table", "sip_trace")

</pre></div>


<p class="wp-block-paragraph">where the sip_trace tabel description is</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
+-------------+------------------+------+-----+---------------------+----------------+
| Field       | Type             | Null | Key | Default             | Extra          |
+-------------+------------------+------+-----+---------------------+----------------+
| id          | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| time_stamp  | datetime         | NO   | MUL | 2000-01-01 00:00:01 |                |
| time_us     | int(10) unsigned | NO   |     | 0                   |                |
| callid      | varchar(255)     | NO   | MUL |                     |                |
| traced_user | varchar(128)     | NO   | MUL |                     |                |
| msg         | mediumtext       | NO   |     | NULL                |                |
| method      | varchar(50)      | NO   |     |                     |                |
| status      | varchar(128)     | NO   |     |                     |                |
| fromip      | varchar(50)      | NO   | MUL |                     |                |
| toip        | varchar(50)      | NO   |     |                     |                |
| fromtag     | varchar(64)      | NO   |     |                     |                |
| totag       | varchar(64)      | NO   |     |                     |                |
| direction   | varchar(4)       | NO   |     |                     |                |
+-------------+------------------+------+-----+---------------------+----------------+

</pre></div>


<p class="wp-block-paragraph">sample databse storage for sip traces</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
select * from sip_trace;

| id | time_stamp          | time_us | callid  | traced_user | msg         | method | status | fromip                   | toip                     | fromtag  | totag    | direction |
+----+---------------------+---------+---------------------------------------------+-------------+-----------------------------------
|  1 | 2019-07-18 09:00:18 |  417484 | MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM |             | INVITE sip:altanai@sip_addr;transport=udp SIP/2.0
Via: SIP/2.0/UDP local_addr:25584;branch=z9hG4bK-d8754z-1f5a337092a84122-1---d8754z-;rport
Max-Forwards: 70
Contact: &lt;sip:derek@call_addr:7086;transport=udp&gt;
To: &lt;sip:altanai@sip_addr&gt;
From: &lt;sip:derek@sip_addr&gt;;tag=de523549
Call-ID: MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
Supported: replaces
User-Agent: Bria 3 release 3.5.5 stamp 71243
Content-Length: 214

v=0
o=- 1563440415743829 1 IN IP4 local_addr
s=Bria 3 release 3.5.5 stamp 71243
c=IN IP4 local_addr
t=0 0
m=audio 59814 RTP/AVP 9 8 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv                                                                                                                                                                                      | INVITE |        | udp:caller_addr:27982 | udp:sip_pvt_addr:5060   | de523549 |          | in        |

|  2 | 2019-07-18 09:00:18 |  421675 | MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM |             | SIP/2.0 100 trying -- your call is important to us
Via: SIP/2.0/UDP local_addr:25584;branch=z9hG4bK-d8754z-1f5a337092a84122-1---d8754z-;rport=27982;received=caller_addr
To: &lt;sip:altanai@sip_addr&gt;
From: &lt;sip:derek@sip_addr&gt;;tag=de523549
Call-ID: MTlhY2VmNDdjN2QxZGM5ZDFhMWRhZThhZDU4YjE0MGM
CSeq: 1 INVITE
Server: kamailio (5.2.3 (x86_64/linux))
Content-Length: 0                                                                                                                                                                                                                                                                                                                                                                                                                                                           | ACK    |        | udp:caller_addr:27982 | udp:local_addr:5060   | de523549 | b2d8ad3f | in       |
...
+----+---------------------+---------+---------------------------------------------+-------------+-----------------------------------
</pre></div>


<h3 class="wp-block-heading" id="heplify"><strong>Heplify</strong></h3>



<p class="wp-block-paragraph">Multi-Protocol Go HEP Capture Agent made &nbsp; <a href="https://github.com/sipcapture/heplify">https://github.com/sipcapture/heplify</a></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz

</pre></div>


<p class="wp-block-paragraph">move package to /usr/local/go</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
mv go 

</pre></div>


<p class="wp-block-paragraph">Either add go bin to ~/.profile</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
export PATH=$PATH:/usr/local/go/bin

</pre></div>


<p class="wp-block-paragraph">and apply</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
source ~/.profile

</pre></div>


<p class="wp-block-paragraph">or set GO ROOT , and GOPATH</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
export GOROOT=/usr/local/go
export GOPATH=$HOME/heplify
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

</pre></div>


<p class="wp-block-paragraph">installation of dependencies</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
go get

</pre></div>


<p class="wp-block-paragraph">clone heplify repo and make</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
make 
</pre></div>


<h3 class="wp-block-heading" id="captagent">CAPTAGENT</h3>



<p class="wp-block-paragraph">New OSS Capture-Agent framework with capture suitable for SIP, XMPP and more. With internal method filtering , encryption and authetication this does look very promising howevr since I have perosnally not tried it yet , I will leave this space TBD for future </p>



<ul class="wp-block-list"><li>tbd</li><li><a href="http://github.com/sipcapture/captagent" rel="nofollow">http://github.com/sipcapture/captagent</a></li></ul>



<h3 class="wp-block-heading" id="sngrep">sngrep</h3>



<p class="wp-block-paragraph"><a href="https://github.com/irontec/sngrep" target="_blank" rel="noreferrer noopener">https://github.com/irontec/sngrep</a></p>



<p class="wp-block-paragraph">Other include  <a href="http://github.com/sipcapture/sipgrep">Sipgrep</a> , <a href="http://github.com/sipcapture/hepipe">HEPipe and</a> <a href="http://www.ntop.org/products/netflow/nprobe/">nProbe</a></p>



<h2 class="wp-block-heading" id="hepop"><strong>HEPop</strong></h2>



<p class="wp-block-paragraph">Multi-Protocol HEP Server &amp; Switch in NodeJS. stand-alone HEP Capture Server designed for HOMER7 capable of emitting indexed datasets and tagged timeseries to multiple backends</p>



<p class="wp-block-paragraph"><a href="https://github.com/sipcapture/HEPop" target="_blank" rel="noreferrer noopener">https://github.com/sipcapture/HEPop</a></p>



<p class="wp-block-paragraph">node hepop.js -c /app/myconfig.js</p>



<figure class="wp-block-image"><img src="https://lh3.googleusercontent.com/M5loqLGdAcCIwPFjZmzXXDjeUvGmfEQSd3fM9WJkKlHTtS893M2xpYbpAJZ1mSNJgHqtzriWerkm0A4PHJt5REW4CNv-71Vjn53GIOeyCg9K0TV_edouiF45_E1D_baFTOV3GqZ-=s0" alt="" /></figure>



<h2 class="wp-block-heading" id="pcap-monitoring-homer-server-notification-and-fraud-prevention">PCAP monitoring -&gt; Homer Server -&gt; Notification and Fraud Prevention </h2>



<p class="wp-block-paragraph">A realtime monitoring and alerting setup fom homer can best safeguard on VoIP specific attacks and suspecious activity by early warning . Some list of attacks such as DDOS , SIP SQL injections , parser , remote manipulation hijacking as cell as resource enumeration are common ifor a cloud telephony provider. </p>



<p class="wp-block-paragraph">Adiitionally homer provide session quality using varables that include [1] </p>



<p class="wp-block-paragraph">SD = Session Defects<br>[SUM(500,503,504)]</p>



<p class="wp-block-paragraph">ISA = Ineffective Session Attempts<br>[SUM(408,500,503)]</p>



<p class="wp-block-paragraph">AHR = Average HOP Requests</p>



<p class="wp-block-paragraph">ASR = Answer Seizure Ratio<br>[(&#8216;200&#8217; / (INVITES &#8211; AUTH &#8211; SUM(3XX))) * 100]</p>



<p class="wp-block-paragraph">NER = Network Efficiency Ratio<br>[(&#8216;200&#8217; + (&#8216;486&#8242;,&#8217;487&#8242;,&#8217;603&#8217;) / (INVITES -AUTH-(SUM(30x)) * 100]</p>



<h2 class="wp-block-heading" id="homer-web-interface-or-custom-dashboard">HOMER Web Interface or Custom Dashboard </h2>



<p class="wp-block-paragraph"><img loading="lazy" width="624" height="288" src="https://lh3.googleusercontent.com/OK8k7yVjSNH7n4-ii73XMq-KSlT1f8_XlOrgWGO9oY0CInxLD3fVWwjXA68o-GB-qrump3zx6898JmFBDsifK4ugKgmCI8DeYpXJ939FKl-waiH0aaLsqqDab_-qeiyqz3BrImYu=s0"></p>



<p class="wp-block-paragraph">Some more visualization for inter team communication  such as NOC team can include</p>



<h2 class="wp-block-heading" id="homer-integration-with-influx-db">Homer Integration with influx DB</h2>



<p class="wp-block-paragraph">time series Reltiem DB install</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.7_amd64.deb
sudo dpkg -i influxdb_1.7.7_amd64.deb
</pre></div>


<p class="wp-block-paragraph">start</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
 &gt;influxd
 8888888           .d888 888                   8888888b.  888888b.
   888            d88P"  888                   888  "Y88b 888  "88b
   888            888    888                   888    888 888  .88P
   888   88888b.  888888 888 888  888 888  888 888    888 8888888K.
   888   888 "88b 888    888 888  888  Y8bd8P' 888    888 888  "Y88b
   888   888  888 888    888 888  888   X88K   888    888 888    888
   888   888  888 888    888 Y88b 888 .d8""8b. 888  .d88P 888   d88P
 8888888 888  888 888    888  "Y88888 888  888 8888888P"  8888888P"

2019-07-19T07:03:04.603494Z	info	InfluxDB starting	{"log_id": "0GjGVvbW000", "version": "1.7.7", "branch": "1.7", "commit": "f8fdf652f348fc9980997fe1c972e2b79ddd13b0"}
2019-07-19T07:03:04.603756Z	info	Go runtime	{"log_id": "0GjGVvbW000", "version": "go1.11", "maxprocs": 1}
2019-07-19T07:03:04.707567Z	info	Using data dir	{"log_id": "0GjGVvbW000", "service": "store", "path": "/var/lib/influxdb/data"}

</pre></div>


<figure class="wp-block-image size-large"><img loading="lazy" width="1005" height="814" data-attachment-id="5114" data-permalink="https://telecom.altanai.com/voip-telemetry-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg" data-orig-size="1005,814" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="voip-telemetry-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=1005" alt="" class="wp-image-5114" srcset="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg 1005w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=768 768w" sizes="(max-width: 1005px) 100vw, 1005px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="889" height="873" data-attachment-id="5116" data-permalink="https://telecom.altanai.com/voip-telemetry-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg" data-orig-size="889,873" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="voip-telemetry-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=889" alt="" class="wp-image-5116" srcset="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg 889w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=768 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<p class="wp-block-paragraph">For Kamailio integration follow github instructions on <a rel="noreferrer noopener" href="https://github.com/altanai/kamailioexamples" target="_blank">https://github.com/altanai/kamailioexamples</a></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="343" data-attachment-id="4875" data-permalink="https://telecom.altanai.com/image-2-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png" data-orig-size="1863,625" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=1024" alt="" class="wp-image-4875" srcset="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=1440 1440w, https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png 1863w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><strong>References</strong> :</p>



<p class="wp-block-paragraph">[1] <a href="https://www.kamailio.org/events/2013-KamailioWorld/13-Alexandr.Dubovikov-Homer-SIP-Capture.pdf" rel="nofollow">https://www.kamailio.org/events/2013-KamailioWorld/13-Alexandr.Dubovikov-Homer-SIP-Capture.pdf</a></p>



<p class="wp-block-paragraph">[2] HEP/EEP &#8211; <a href="https://github.com/sipcapture/hep" rel="nofollow">https://github.com/sipcapture/hep</a></p>



<p class="wp-block-paragraph">[3] kamailio sipdump module &#8211; <a href="https://www.kamailio.org/docs/modules/devel/modules/sipdump.html" rel="nofollow">https://www.kamailio.org/docs/modules/devel/modules/sipdump.html</a></p>



<p class="wp-block-paragraph">[4] <a href="https://github.com/sipcapture/HEPop" rel="nofollow">https://github.com/sipcapture/HEPop</a></p>



<p class="wp-block-paragraph">[5] HOMER Big Data &#8211; <a href="https://github.com/sipcapture/homer/wiki/Homer-Bigdata" rel="nofollow">https://github.com/sipcapture/homer/wiki/Homer-Bigdata</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2021/09/19/eep-formely-hep-extensible-encapsulation-protocol-with-homer/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4851</post-id>
		<media:thumbnail url="https://telecom.altanai.com/wp-content/uploads/2021/09/homer.jpg" />
		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/09/homer.jpg" medium="image">
			<media:title type="html">homer</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://lh3.googleusercontent.com/r-0tB8zJacHhkVSE1s11DmrzHgW_hpSo6HZPN5uc0etb5k8tzqImFGZkdXDJGeKVEhfSQWfVJGjORLCiL8QQOCu4CUQNckv_Pd4xm0QYVTgsq92TBPmhTJs2jDBkcW88owq2KopN=s0" medium="image" />

		<media:content url="https://lh4.googleusercontent.com/IddPRaNfGhpRb8AerFZZ4tY5flFVqtxWteke0tGZizjRILDGmhZRvTLCHH0hePTSuGw8lr5FxHsf5U5RU_FosKtUznRKyF0J43gZIWzh8cu-vwgxEwq0vc0GkodlYWzigCq_tft_=s0" medium="image" />

		<media:content url="https://lh3.googleusercontent.com/M5loqLGdAcCIwPFjZmzXXDjeUvGmfEQSd3fM9WJkKlHTtS893M2xpYbpAJZ1mSNJgHqtzriWerkm0A4PHJt5REW4CNv-71Vjn53GIOeyCg9K0TV_edouiF45_E1D_baFTOV3GqZ-=s0" medium="image" />

		<media:content url="https://lh3.googleusercontent.com/OK8k7yVjSNH7n4-ii73XMq-KSlT1f8_XlOrgWGO9oY0CInxLD3fVWwjXA68o-GB-qrump3zx6898JmFBDsifK4ugKgmCI8DeYpXJ939FKl-waiH0aaLsqqDab_-qeiyqz3BrImYu=s0" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-1.jpg?w=1005" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/11/voip-telemetry-2.jpg?w=889" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/09/image-2.png?w=1024" medium="image" />
	</item>
		<item>
		<title>Energy Efficient VoIP systems</title>
		<link>https://telecom.altanai.com/2021/07/20/energy-efficient-voip-systems/</link>
					<comments>https://telecom.altanai.com/2021/07/20/energy-efficient-voip-systems/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Mon, 19 Jul 2021 18:48:32 +0000</pubDate>
				<category><![CDATA[Auxiliary Technologies for VoIP]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=4667</guid>

					<description><![CDATA[Data Centres are the concentrated processing units for the amazing Internet that is driving the technological innovation of our generation and has become the backbone of our global economy. DataCentres not only process , store and carry textual data rather a vast amount of computing is for multimedia content which could range from social media &#8230; <a href="https://telecom.altanai.com/2021/07/20/energy-efficient-voip-systems/" class="more-link">Continue reading <span class="screen-reader-text">Energy Efficient VoIP&#160;systems</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Data Centres are the concentrated processing units for the amazing Internet that is driving the technological innovation of our generation and has become the backbone of our global economy. DataCentres not only process , store and carry textual data rather  a vast amount of computing is for  multimedia content which could range from social media to, video streaming or  VoIP calls. In this article let us analyze the energy effiiciency , carbon footprint and scope of improvements for a VoIP related data centre which hosts SIP and related RTC technology signalling and media servers and process CDRs and/or media files for playback or recordings.</p>



<p class="wp-block-paragraph">Just like a regular IT datacentre , storage, computing power and network capacity define the usage of the server.Also unobstructed electricty of of paramount importance as any blackout could drop ongoing calls and lead to loss of revenue for the service provider not to forget the loss caused to parties engaged in call.  </p>



<p class="wp-block-paragraph">Increasing Power consumption by telecom Sector over the years </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="668" height="608" data-attachment-id="4805" data-permalink="https://telecom.altanai.com/image-16/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png" data-orig-size="668,608" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-16" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=668" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=668" alt="" class="wp-image-4805" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png 668w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=300 300w" sizes="(max-width: 668px) 100vw, 668px" /><figcaption>Global PPA(power purchase agreements) volumes by sector, 2009-2019, IEA, Global PPA volumes by sector, 2009-2019, IEA, Paris <a href="https://www.iea.org/data-and-statistics/charts/global-ppa-volumes-by-sector-2009-2019" rel="nofollow">https://www.iea.org/data-and-statistics/charts/global-ppa-volumes-by-sector-2009-2019</a></figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4802" data-permalink="https://telecom.altanai.com/image-15/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png" data-orig-size="1048,775" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-15" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=1024" alt="" class="wp-image-4802" width="647" height="477" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=647 647w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png 1048w" sizes="(max-width: 647px) 100vw, 647px" /><figcaption>source : CDP The 3% solution 2013 [19]</figcaption></figure>



<p class="wp-block-paragraph"><strong>Typical VoIP Setup :</strong> Whether a cloud  Infrstrcture provider of a hosted data centre , an aproximate number of 7 servers is required even for SME ( small to medium enterprises ) communication system and VoIP systems </p>



<ul class="wp-block-list"><li> 2 signalling servers primary and standby for HA , </li><li>2 media server for MCU  of media bridges or IVR playback etc , </li><li>1 for CDR , logs or call analytics , stats and other supplementary operation   </li><li>1 for dev or engineering team .  </li><li>1 edge server could be API server or a gateway or laodbalancer. </li></ul>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3718" data-permalink="https://telecom.altanai.com/micro-service-archietcture/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="micro-service-archietcture" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=863" alt="" class="wp-image-3718" width="512" height="383" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=512 512w, https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg 960w" sizes="(max-width: 512px) 100vw, 512px" /><figcaption>Sample voIP system</figcaption></figure>



<p class="wp-block-paragraph">VoIP solutions are more energy expensive, unless aggressive power saving schemes are in place</p>



<p class="wp-block-paragraph"><img width="533px;" height="351px;" src="https://lh6.googleusercontent.com/B-fT_bDknf0UIeUTrR80sukLNqKRRcMA-qmeOUg39TFNB7sLaud2zqYu2BcmoouHjlcuGIzopu_Ji7I8Q4h0g9-2XyOwA5tGkARSkmUU420qPxGORCVrEwkxjZ1ntVbWzJ9Sn1-qEJU"></p>



<p class="wp-block-paragraph">Comparison of energy efficiency in PSTN and VoIP systems [14]</p>



<p class="wp-block-paragraph">While PSTN and other hybrid scenarios relied on audio only communication the embedded systems involved took great pain to make then energy efficient which is not really the case with all digital and software based VoIP.   </p>



<h2 class="wp-block-heading">Power Consumption  </h2>



<p class="wp-block-paragraph"><strong>Mobile phone</strong> : &nbsp;Typical smartphone with 4,000mAh ( 4 Ah) battery that gets 1 full cycle of usage a day. Daily consumption =4Ah*3.7V=14.8 Wh</p>



<p class="wp-block-paragraph"><strong>Laptop</strong> : With &nbsp;14–15″ screen, a laptop can draw 60 watts power in active use depending on model. Runing 8 hours a day can be 60 * 8 = 480 Wh ( 0.480 kWh) energy consumed in a day.</p>



<p class="wp-block-paragraph"><strong>Desktop PC </strong>:  Runing at 50-60 Hz frequency , can upto draw 200 W power in active use. For 8 hours energy usage 200 *  8 = 1600 Wh ( 1.6 kWh ) energy a day. </p>



<p class="wp-block-paragraph"><strong>Server</strong> : Even though servers are virtual to the request maker , they caters to the request on the other end of the internet.</p>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>Server</td><td>Purpose</td><td>Server CPU consumption</td><td>Clients</td><td>Client CPU consumption</td></tr><tr><td>Application</td><td>Hosts an application, which can be run through a web browser or customized client software.</td><td>medium</td><td>Any network device with access.</td><td>low</td></tr><tr><td>Computing</td><td>Makes available CPU and memory to the client. This type of server might be a supercomputer or mainframe.</td><td>high</td><td>Any networked computer that requires more CPU power and RAM to complete an activity.</td><td>medium</td></tr><tr><td>Database</td><td>Maintains and provides access to any database.</td><td>low</td><td>Any form of software that requires access to structured data.</td><td>low</td></tr><tr><td>File</td><td>Makes available shared files and folders across a network.</td><td>medium</td><td>Any client that needs access to shared resources.</td><td>low</td></tr><tr><td>Game</td><td>Provisions a multiplayer game environment.</td><td>high</td><td>Personal computers, tablets, smartphones, or game consoles.</td><td>high</td></tr><tr><td>Mail</td><td>Hosts your email and makes it available across the network.</td><td>medium</td><td>User of email applications.</td><td>low</td></tr><tr><td>Media</td><td>Enables media streaming of digital video or audio over a network.</td><td><span class="has-inline-color has-vivid-red-color">high</span></td><td>Web and mobile applications.</td><td><span class="has-inline-color has-vivid-red-color">high</span></td></tr><tr><td>Print</td><td>Shares printers over a network.</td><td>low</td><td>Any device that needs to print.</td><td>low</td></tr><tr><td>Web</td><td>Hosts webpages either on the internet or on private internal networks.</td><td>medium</td><td>Any device with a browser.</td><td>medium</td></tr></tbody></table><figcaption>CPU consumption of various server types and their clients </figcaption></figure>



<p class="wp-block-paragraph">Typically runing on 850 Wh ( 0.850 kwh ) of energy in an hour and since server are usually up 24*7 that totals to   </p>



<p class="wp-block-paragraph">0.850 * 24 = 20.4 kWh a day [2].</p>



<p class="wp-block-paragraph"><strong>VoIP System ( 7 VM&#8217;s)</strong> : For a setup of 7 VM&#8217;s ( could on a the same PM), total energy consumed in a day </p>



<p class="wp-block-paragraph">20.4 * 7 = 142.8 kWh.</p>



<p class="wp-block-paragraph"><strong>Data centre</strong>: The data centre building consists of the infrastructure to support the servers, disks and networking equipment it contains. However, for simplicity, I will only use the consumption of servers and ignore the cooling units, networking, backup batteries charging, generators, lightning, fire suppression, maintenance etc.</p>



<p class="wp-block-paragraph">High tier DC can have 100 Megawatts of capacity having each rack was using 25 kW of power in a 52U Rack. 100,000 kW / 25 kW = 4,000 racks * 52(U) = 208000 1U servers. This number scales down depending on how much energy each server uses and idle servers.</p>



<p class="wp-block-paragraph">Total energy 100,000 kW * 24 hours = 2400000 kWh </p>



<h2 class="wp-block-heading">Carbon Footprint </h2>



<p class="wp-block-paragraph">Carbon footprint in the context of this article refers to the amount of greenhouse gas ( consisting majorly of Co2) caused by electricity consumption. The unit is carbon emission equivalent of the total amount of electricity consumed kg CO2 per kWh.</p>



<p class="wp-block-paragraph">In doing this calculation I have assumed<strong> 0.233 kg CO2 per kWh </strong>which could be less or more depending on the generation profile of the electricity provider as well as the heat produced by the machine.</p>



<p class="wp-block-paragraph"><strong>Laptop</strong>: Aside from the production which could be 61.4 kg (135.5 lbs) of Co2, a 60W laptop will produce 0.112 kg co2 eq per day.</p>



<p class="wp-block-paragraph"><strong>Desktop PC</strong>: Aside from production cost and heating, the GWG and co2 eq emission from running a desktop for a day ( 8 hours) produces 1.6* 0.233 = 0.3728 kg CO2 per kWh</p>



<p class="wp-block-paragraph"><strong>Server</strong>&nbsp;: 20.4 * 0.233 = 4.7532 kg CO2 per kWh per day .</p>



<p class="wp-block-paragraph"><strong>VoIP System ( 7 VM&#8217;s)</strong>: Again ignoring the GWG emission of associated components, 142.8 * 0.233 = 33.2724 kg CO2 per kWh per day. It is to be noted that DC&#8217;s ( datacentres) use the term PUE ( Power Usage Effectiveness) to showcase their energy efficiency and energy efficiency certification uses the same in ratings.</p>



<p class="wp-block-paragraph"><strong>Data centre</strong>: electrical carbon footprint( approximate calculation not counting the cooling, infra maintenance, lightning and possibly idle servers in datacentre) is  2400000 * 0.233 = 559200 kg CO2 per kWh  per day </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4709" data-permalink="https://telecom.altanai.com/image-4-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png" data-orig-size="1238,768" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=1024" alt="" class="wp-image-4709" width="550" height="340" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=550 550w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=1100 1100w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=768 768w" sizes="(max-width: 550px) 100vw, 550px" /></figure>



<p class="wp-block-paragraph">It is to be noted that a common figure should not be extrapolated like this to derive carbon emission. The emission depends on the fuel mix of the electricity generation as well as the life cycle assessment (LCA) of carbon equivalent emission. Countries with heavy reliance on renewables have lower co2 footprint per kWh ~ 0.013 kg co2 per kWh Sweden while others may have higher such as 0.819 kg CO2 per kWh Estonia [1].</p>



<h2 class="wp-block-heading">Flatten the Curve from Tech and Internet usage</h2>



<p class="wp-block-paragraph">Rack servers tend to be the main perpetrators of wasting energy and represent the largest portion of the IT<br>energy load in a typical data center.</p>



<p class="wp-block-paragraph">A decade ago, small enterprise IT facilities were quick to create data centres for  hosting applications from hospitals, banks, insurance companies.  While some of these is likely to have been upgrade to shared server instances runing on IaaS providers, most of them are still serving traffic or stays there for the lack of effort to upgrade.</p>



<p class="wp-block-paragraph">With the advancement in p2p technlogies such as dApps , bitcoion network , p2p webrtc streaming , more edge computed ML continue to create disruptions in existing trend , most likely to result in in many fold increase in consumption.  </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>According to the Cambridge Center for Alternative Finance (CCAF),&nbsp;Bitcoin currently consumes&nbsp;around 110 Terawatt Hours per year — 0.55% of global electricity production</p><cite>Harward Business Review [12]</cite></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>“the emissions generated by watching 30 minutes of Netflix (1.6 kg of CO<sub>2</sub>) is the same as driving almost four miles.”&nbsp;</p><cite>EnergyInnovation [13]</cite></blockquote>



<p class="wp-block-paragraph"><strong>Cloud Computing and Energy efficiency </strong></p>



<p class="wp-block-paragraph">Cloud computing ( SaaS, PaaS , IaaS and also CPaaS) minimize&nbsp;power consumption&nbsp;and consequently IT costs via virtualization, clustering and dynamic configuration.</p>



<p class="wp-block-paragraph">With cloud infrastrcture vendors such as Amazon , Google , microsoft .. and their adoption of energy efficiency computing and credible transparency has alleviated some of the stress that could have been made if onsite self &#8211; hosted data centres were used as often in mainstream as a decade ago. </p>



<p class="wp-block-paragraph">Even as cloud providers gives on -demand access to shared resources in large scale distributed computing , the ease of getting on board has inturn created a surge in cloud hosted online  applications consequently high power consumption, more operation costs and higher CO<sub>2</sub>&nbsp;emissions.</p>



<p class="wp-block-paragraph"><strong>Components of energy Consumption in Data Centre </strong></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4696" data-permalink="https://telecom.altanai.com/image-1-4/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png" data-orig-size="1080,670" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=1024" alt="" class="wp-image-4696" width="565" height="349" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=768 768w" sizes="(max-width: 565px) 100vw, 565px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4702" data-permalink="https://telecom.altanai.com/image-2-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png" data-orig-size="1290,594" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=1024" alt="" class="wp-image-4702" width="566" height="260" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=566 566w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=1132 1132w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=768 768w" sizes="(max-width: 566px) 100vw, 566px" /></figure>



<p class="wp-block-paragraph">As shown CPU, Memory, and Storage incur 45% of the costs and consume 26% of the total energy , however power distribution and colling cost 25% but consumer &gt;50% of total energy.</p>



<p class="wp-block-paragraph"><strong>Energy forcast for Data Centres</strong></p>



<p class="wp-block-paragraph">As reported by nature [3] the widely cited forcasts suggested thte total electrcity demand of ICT ( Informatioin and Communication technology ) will accelerate and while consumer devices such as smart TV , laptops and mobile are becoming energy effcient , the data centres and network devices will demand bigger portions. Reported in 2018 , 200 Twh( terawatt hours) of energy was being consumed by data centers . Although there are no figures for the telecom or specifically IP cloud telephony , the assumption that enormous multimedia data flows in every session is enouogh to assume the figure must be huge.</p>



<p class="wp-block-paragraph">Energy eficiency in data centres have also been the subject of many papers and studies. Many of the tech advancements and measures have so far been able to keep the growth in energy requirnments by tech sector to a linear/ flat one.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4680" data-permalink="https://telecom.altanai.com/image-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png" data-orig-size="985,581" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=985" alt="" class="wp-image-4680" width="594" height="350" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=594 594w, https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/07/image.png 985w" sizes="(max-width: 594px) 100vw, 594px" /><figcaption><em>past and projected growth rate of total US data center energy use from 2000 until 2020. It also illustrates how much faster data center energy use would grow if the industry, hypothetically, did not make any further efficiency improvements after 2010. (Source: US Department of Energy, Lawrence Berkeley National Laboratory)</em></figcaption></figure>



<p class="wp-block-paragraph"> </p>



<p class="wp-block-paragraph">Some noteworthy innovations made in Data centre for energy efficiency include &#8211;</p>



<ol class="wp-block-list"><li><strong>Star efficiency requirnments </strong></li></ol>



<ul class="wp-block-list"><li>Average server utilization</li><li>Server power scaling at low utilization</li><li>Average power draw of hard disk drives</li><li>Average power draw of network ports</li><li>Average infrastructure efficiency (i.e., PUE)</li></ul>



<p class="wp-block-paragraph">PUE = Total Facility power / IT equipment power</p>



<p class="wp-block-paragraph">Standard 2.0,  Good  1.4  , Better 1.1</p>



<p class="wp-block-paragraph">Low PUE indicates greater efficicny since more power would then be used by It gear . Idealistically 1 should be the perfect score where all power was used only by the IT gears.</p>



<p class="wp-block-paragraph"><strong>2. Optimizing the cooling system</strong> which takes a lot of focus is also not touched upon here but can be understood in great detail from very many sources including one here on how google uses AI for cooling its Datacentres [6]</p>



<p class="wp-block-paragraph"><strong>3. Throttle-down drive</strong> ,a device that reduces energy consumption on idle processors, so that when a server is running at its typical 20% utilization it is not drawing full power</p>



<p class="wp-block-paragraph">Energy efficiency is vital to not only productivity and performance but also to carbon neutral tech and economy. There is ample scope to designing energy efficient applications and platfroms. Some approaches are described below:</p>



<h2 class="wp-block-heading">Energy Efficiency in  VoIP Architecture and design  </h2>



<p class="wp-block-paragraph">Low Energy consumption not only lowers operating cost but also helps the enviornment by reducing carbon emission.</p>



<p class="wp-block-paragraph">1.<strong>Server</strong> <strong>Virtualization  </strong></p>



<p class="wp-block-paragraph">By consolidating multiple independant servers to a single underlying physical server helps retain the logical sepration while also maintaining the energy costs and maximizinng utilization . VM&#8217;s( Virtual machines) are instances of virtaulized portions on the same server and can be independetly accesed using its own IP and network settings.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>To reduce electricity usage in our labs and data centers, we use smart power distribution units to monitor<br>our lab equipment. We increase server utilization by using virtual machines. Our Cisco Customer<br>Experience labs use a check-in, check-out system of automation pods to allow lab employees to set up<br>configurations virtually and then release equipment when they are finished with it.</p><cite>Cisco 2020 Environment Technical Review [20]</cite></blockquote>



<p class="wp-block-paragraph">Models to place VMs on PM ( physical machine ) have been proposed  by Dong et al[8] , Huang[9] &nbsp;,Tian et al&nbsp;[10]</p>



<p class="wp-block-paragraph">2.<strong>Decommissioning old / outdated servers</strong></p>



<p class="wp-block-paragraph">While this is the most obvious way to increase efficiency , it is also the toughest since legacy applications or a small portion of it may be running on a server that service providers are not keen on updating or updates do not exist and it is past end of life yet somehow still in use. It is important to identify such components. Check if maybe an old glassfish or bea weblogic SIP servlet server needs updating and/or migration !</p>



<p class="wp-block-paragraph"><strong>3.Plan HA ( high availability ) efficiently</strong></p>



<p class="wp-block-paragraph">Redundant servers take only if at all any , partial loads so they can be activated in full swing when failover happens in other server. With quick load up times and forward looking monitoring , the analyzers can monitor logs for upcoming failure or predictable downtime and infra script can bring up pre designed containers in seconds if not minutes.  It isn&#8217;t wise to create more than 1 standby server which does no essential work but consumes as much power.</p>



<p class="wp-block-paragraph"><strong>4.Consolidate individual applications on a Server</strong> </p>



<p class="wp-block-paragraph">Map the maximum precitable load and deduce the percentage comsuption with teh same . In view of these figures it is best to consolidate applications servers to be run on a single server . A distributed microservice based architecture can also support consolidation by runing each major application in its own dockerized container.  Consolidation ensures that </p>



<ul class="wp-block-list"><li>All data can be stored and accessed centrally, which reduces the likelihood of data duplication.</li><li>while a server is drawing full power , it is also showing relataible utilization.</li><li>Single point to prevent intrusion , provide security and fix vulnerabilities against malware like ( ransomware , viruses , spyware , trojans) </li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" width="490" height="248" data-attachment-id="4720" data-permalink="https://telecom.altanai.com/image-5-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png" data-orig-size="490,248" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-5" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=490" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=490" alt="" class="wp-image-4720" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png 490w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=300 300w" sizes="(max-width: 490px) 100vw, 490px" /></figure>



<p class="wp-block-paragraph"><strong>5.Reduce redundancy</strong></p>



<p class="wp-block-paragraph">While it is a common practise to store multiple copies of data such as CDR ( call detail records ) and archiev historical logs for later  auditing , it is not the most energy efficient way since it ends up wasting stoarge space. It is infact a better approach to skim only the crtical parts and diacard the rest and definetely implement background tasks to compress the older and less referenced logs.</p>



<p class="wp-block-paragraph"><strong>6.Power management </strong></p>



<p class="wp-block-paragraph">Powering down idle server or putting unused server to sleep is an effective way to reduce operating power but is often ignored by the IT department in view of risking slower performance and failure in call continuity in case a server does go down. However power management leads to potential energy savings and should be weighted accordingly.</p>



<p class="wp-block-paragraph"><strong>7.Common Storage such as  Network Attached Storage</strong></p>



<p class="wp-block-paragraph">Power consumption is roughly linear to the number of storage modules used. Storage redundancy needs to be<br> right-sized to avoid rapid consumption of avaible storage space , CPU cycles to refer and index them, its associated power consumption [7].</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3715" data-permalink="https://telecom.altanai.com/data-streaming-scalable-voip-platform-3/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="data-streaming-scalable-voip-platform-3" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=863" alt="" class="wp-image-3715" width="464" height="347" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=464 464w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=928 928w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=768 768w" sizes="(max-width: 464px) 100vw, 464px" /></figure>



<p class="wp-block-paragraph">The process of maximizing storage capacity utilization by drawing from a common pool of shared  storage on need baisis also allows for flexixbility.</p>



<p class="wp-block-paragraph">It is sensible to take the data offline thereby reducing clutter on production system and make the existing data quickly retrievable.</p>



<p class="wp-block-paragraph"><strong>8.Sharing other IT resources  </strong></p>



<p class="wp-block-paragraph">Central Processing Units (CPU), disk drives, and memory optimizes electrical usage. Short term load shifting combined with throttling resources up and down as demand dictates improves long term hardware energy efficiency. [7] </p>



<p class="wp-block-paragraph">Hardware based approaches such as energy star rating, air conditoning , placement of server racks , air flow , cabling etc have not been touched upon in this article they can be read from energystar report here [5] . </p>



<p class="wp-block-paragraph">9. <strong>DMZ / Perimeter network</strong></p>



<p class="wp-block-paragraph">The perimeter network (also known as DMZ, demilitarized zone, and screened subnet) is a zone where resources and services accessible from outside the organization are available. Often used as barrier between internal secure green zone within company and outside partners / suppliers such as external organization gateways.</p>



<ul class="wp-block-list" id="block-1f9f72b9-923a-43bb-bfd0-40eb91780366"><li>Load balancers</li><li>API gateways</li><li>SBC ( Session Border controllers)</li><li>Media Gateways</li></ul>



<p class="wp-block-paragraph">Ways to cut down on CPU consumption in DMZ machines </p>



<ol class="wp-block-list"><li>Scrutinize incoming traffic only , trust outgoing traffic . </li></ol>



<p class="wp-block-paragraph">2. Use hardware / network firewalls to monitor and block instead of software defined ones .<strong> Hardware firewall</strong>&nbsp;can be a standalone physical device or form part of another device on your network. Physical devices like routers, for example, already have a built-in firewall.&nbsp;</p>



<p class="wp-block-paragraph">Other types of firewalls </p>



<ul class="wp-block-list" id="block-52602d62-27b2-442e-ad4e-92ad4cb86e85"><li><strong>Application-layer firewalls</strong>&nbsp;can be a physical appliance, or software-based, like a plug-in or a filter. These types of firewalls target your applications. For example, they could affect how requests for HTTP connections are inspected across each of your applications.</li><li><strong>Packet filtering firewalls</strong>&nbsp;scrutinize each data packet as it travels through your network. Based on rules you configure, they decide whether to block the specific packet or not. For example firewalls can block SSH/RDP for remote management.</li><li><strong>Circuit-level firewalls</strong>&nbsp;check whether TCP and UDP connections across your network are valid before data is exchanged. For example, this type of firewall might first check whether the source and destination addresses, the user, the time, and date meet certain defined rules. </li><li><strong>Proxy server firewalls</strong>&nbsp;secure the traffic into and out of a network by monitor, filter, and cache data requests to and from the network.</li></ul>



<h2 class="wp-block-heading">Energy Efficiency in  VoIP Applications and algorithms</h2>



<p class="wp-block-paragraph">In theory,  energy efficient algorithms would take less processing power , run fewer CPU cycles and consume less memory. For the experiments with WebRTC and SIP VoIP systems CPU performance can be reliable factor to consider for carbon emissions .  Here is list of approaches to include energy as of the parameters in programing for RTC applications.</p>



<ol class="wp-block-list"><li><strong>Take advanatge of Multi Core applications </strong></li></ol>



<p class="wp-block-paragraph">Multi-core processor chips allow simultaneous processing of multiple tasks, which leads to higher efficiency. Same power source and shared cooling leads to better efficiency . It is the same logic which applied to consolidating one power supply for a rach isntead of individual power supply to each servers on rack. </p>



<p class="wp-block-paragraph"><strong>2. Reduce Buffering </strong></p>



<p class="wp-block-paragraph">Input/Output buffer pile up comuted packets or blocks which will come inot use in near future but may be discarded all together in event of skip or shutdown. For example in case of video on Demand ( VoD) , a buffered video of 1 hour is of not much use if viewer decides to cancel the video session after 10 minutes . </p>



<p class="wp-block-paragraph"><strong>3. Optimize memeory access algorithms</strong></p>



<p class="wp-block-paragraph">4<strong>. Network energy Management to vary as per demand  </strong></p>



<p class="wp-block-paragraph">The newer generations of network equipment pack more throughput per unit of power. There are active energy management measures that can also be applied to reduce energy usage as network demand varies. In a telecoomunication system , almost always a tradeof between power consumption and network performance is made. </p>



<ol class="wp-block-list"><li>Quick switching of speed of the network to match  the amount of data that is currently transmitted. A demand following streaming session will maingtain the QoS , avoid imbalance while also reducing power consumption.</li></ol>



<p class="wp-block-paragraph">2. Avoid sudden burst and peaks and/or align them with energy availaibility . </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="592" height="250" data-attachment-id="4721" data-permalink="https://telecom.altanai.com/image-6-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png" data-orig-size="592,250" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-6" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=592" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=592" alt="" class="wp-image-4721" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png 592w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=300 300w" sizes="(max-width: 592px) 100vw, 592px" /></figure>



<p class="wp-block-paragraph">Metrics </p>



<ul class="wp-block-list"><li>computational performance (i.e., computations/second per server), </li><li>electrical efficiency of computations (i.e., computations per kWh), </li><li>storage capacity (i.e., TB per drive), and </li><li>port speeds (i.e., Gb per port)</li></ul>



<p class="wp-block-paragraph"><strong>5. Task Scheduling algorithms</strong></p>



<p class="wp-block-paragraph">Some recent researched frameworks and models take Co2 emission into prespective , while allocating resources according to queuing model. The most efficient ones not only bring down the carbon footprint but also the high operating cost [11]. </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3714" data-permalink="https://telecom.altanai.com/lamda-archietcture/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg" data-orig-size="960,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lamda-archietcture" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=863" alt="" class="wp-image-3714" width="460" height="344" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=460 460w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=920 920w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=768 768w" sizes="(max-width: 460px) 100vw, 460px" /></figure>



<p class="wp-block-paragraph">Scheduling and monitoring techniques have been applied to achieve a cost effective and power-aware cloud environment by reducing the resource exploitation</p>



<p class="wp-block-paragraph">6. <strong>Centralised operat</strong>i<strong>on </strong>&#8211; RTP topology ( Mesh , MCU and SFU)</p>



<p class="wp-block-paragraph">Instead of operating many servers at low CPU utilization, at edge of client&#8217;s end,  combines the processing<br>power onto fewer servers that operate at higher utilization. </p>



<p class="wp-block-paragraph">Modern machine learning programs are&nbsp;computationally intensive, and their integration in VoIP systems for tagging , sentiment analysis , voice quality analysis is increasingly adding additional strain already heavy processing of media server in transcoding and multiplexing . </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3694" data-permalink="https://telecom.altanai.com/rtp-topology-8/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg" data-orig-size="952,609" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rtp-topology-8" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=863" alt="" class="wp-image-3694" width="555" height="355" srcset="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=555 555w, https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg 952w" sizes="(max-width: 555px) 100vw, 555px" /><figcaption>Media Server using SFU ( Selective Forwarding unit) to transmit mediastrem</figcaption></figure>



<p class="wp-block-paragraph">As an example a SFU client sends one upstream but receives 4 downstreams which reduces the load on server but increases on clients .</p>



<p class="wp-block-paragraph">7<strong>. Distributing workload based on server performance </strong></p>



<p class="wp-block-paragraph">Aggregating tasks and runing them as Serverless , asynchronous jobs instead of standalone processes is very efficient way to cut down idle runing wastage. Additioally catagorizing server workloads based on server performance can also reduce power consumption by using idle servers efficiently. Thermal aware workload distribution also helps reducing power consumption and consequently electricity consumption in cooling .</p>



<p class="wp-block-paragraph"><strong>8 . Reduce reauthetication and challemge response mechanism when it can be avoided. </strong></p>



<p class="wp-block-paragraph">There exists multiple modes to authenticate and authorize users and application access to server content  </p>



<p class="wp-block-paragraph">Over the network  </p>



<ul class="wp-block-list"><li>password based auth ,</li><li>third party based auth ( Oauth) </li><li>2 factors authetication( phone/sms based) ,  </li><li>multi factor auth ( sms / email / other media) ,</li><li>token auth ( custom USB device/ smart card ) , </li><li>biometric auth (physical human charecteristics / scanners ) , </li><li>transactional auth ( location , hour of day , browser/ machine type)  </li></ul>



<p class="wp-block-paragraph">Computer recognition authentication</p>



<ul class="wp-block-list"><li>CAPTCHA</li><li>Single sign-on</li></ul>



<p class="wp-block-paragraph">Authentication protocols</p>



<ul class="wp-block-list"><li>Kerbos &#8211; Key Distribution Center (KDC) using a Ticker gransting Server ( TGS)</li><li>TLS/SSL</li></ul>



<p class="wp-block-paragraph">A callflow involves AAA while creating the session and may require occsional re authetication to reafform the user is intended one. Doing  re-authtication too often increases the power consumption and can be countered by caching and  timeout mechanism.</p>



<p class="wp-block-paragraph"><img width="524px;" height="508px;" src="https://lh4.googleusercontent.com/SV8-itDdW0OtLSpBs9v-7xLiP-X8Q3ZhYZ9JKio9LFYr8R0nL65qwiFauaiGQiUUdHneE031AvV4dzyahrVlOd4q8INJ5zG2WamtywF3ixTluVCnCMBpxKlc9Wt9kw9sKcUClSNCLuk"></p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Point of presence and handover using <strong>Carbon footprint in different demographics </strong></h2>



<ol class="wp-block-list"><li>Include Carbon emission from Datacentre in condieration before engaging the server in call path from load balancer gateway</li></ol>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="3746" data-permalink="https://telecom.altanai.com/pop-voip-2-1/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg" data-orig-size="945,629" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="pop-voip-2-1" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=863" src="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=863" alt="" class="wp-image-3746" width="619" height="411" srcset="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=619 619w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg 945w" sizes="(max-width: 619px) 100vw, 619px" /></figure>



<p class="wp-block-paragraph">2. Use point of presence ( PoP) for server according to their carbon emission factor in the demography .</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4786" data-permalink="https://telecom.altanai.com/image-14/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png" data-orig-size="1568,970" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-14" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=1024" alt="" class="wp-image-4786" width="801" height="495" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=801 801w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=1440 1440w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png 1568w" sizes="(max-width: 801px) 100vw, 801px" /><figcaption> Us states carbon emission rate from electricity generation (2018 report )  Source : [16]</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4780" data-permalink="https://telecom.altanai.com/image-11/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png" data-orig-size="1200,742" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-11" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=1024" alt="" class="wp-image-4780" width="623" height="385" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=623 623w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png 1200w" sizes="(max-width: 623px) 100vw, 623px" /><figcaption>UK greenhouse gas reporting source : [17]</figcaption></figure>



<h2 class="wp-block-heading">Energy Efficiency in  WebRTC browser applications and native applications </h2>



<p class="wp-block-paragraph">In a Video conferencing the over browser, WebRTC has emerged as te the default standard . The efficiency of sch webrtc browser based video conferencing web applications can be enhanced in the following ways :</p>



<p class="wp-block-paragraph"><strong>1.Use VoIP Push Notifications to Avoid Persistent Connections</strong></p>



<p class="wp-block-paragraph"><strong>2. Voice Activity detection ( Mute the spectators ) and join with video true , audio false for attendeees</strong></p>



<h2 class="wp-block-heading">Energy efficiency in VoIP phones </h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>If all eligible VoIP phones sold in the United States were ENERGY STAR certified, the energy cost savings would grow to more than $65&nbsp;million each&nbsp;year and 1.2 billion pounds of annual greenhouse gas emissions would be prevented, equivalent to the emissions from more than 119,000 vehicles.</p><cite>Energystart [15]</cite></blockquote>



<p class="wp-block-paragraph">Low-energy-consuming embedded hardware on most phones keep the average consumption low . A  analog phone can consume power between 0.07 W to 9.27 W while a VoIP phone can consume 0.1W to 3.5 W of standby power.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4728" data-permalink="https://telecom.altanai.com/image-7/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png" data-orig-size="666,851" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-7" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=235" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=666" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=666" alt="" class="wp-image-4728" width="412" height="526" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=412 412w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=117 117w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=235 235w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png 666w" sizes="(max-width: 412px) 100vw, 412px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="4730" data-permalink="https://telecom.altanai.com/image-8/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png" data-orig-size="657,734" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-8" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=269" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=657" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=657" alt="" class="wp-image-4730" width="416" height="464" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=416 416w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=134 134w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=269 269w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png 657w" sizes="(max-width: 416px) 100vw, 416px" /></figure>



<p class="wp-block-paragraph">Off mode power is often less than standby power since phone is on low power model during idle hours such as night . According to energy star  Sund transmission mechnism also plays a key role and hybrid phones consume more power. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="570" height="269" data-attachment-id="4735" data-permalink="https://telecom.altanai.com/image-9/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png" data-orig-size="570,269" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-9" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=570" src="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=570" alt="" class="wp-image-4735" srcset="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png 570w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=300 300w" sizes="(max-width: 570px) 100vw, 570px" /></figure>



<p class="wp-block-paragraph">Power allowance <img width='16' height='16' class='wp-smiley emoji' draggable='false' alt='(W)' src='https://s1.wp.com/wp-content/mu-plugins/wpcom-smileys/wordpress.svg' style='height: 1em; max-height: 1em;' /> for each of the below features of the device:</p>



<ul class="wp-block-list"><li>1.0 watt for Gigabit Ethernet</li><li>0.2 watt for Energy Efficiency Ethernet 802.3az compliant Gigabit Ethernet</li></ul>



<p class="wp-block-paragraph">Additional proxy incentive(W) for the ability to maintain network presence while in a low power mode and intelligently wake when needed </p>



<ul class="wp-block-list"><li>0.3 watt for base capability</li><li>0.5 watt for remote wake</li></ul>



<h2 class="wp-block-heading">Government bodies and groups to track Energy efficiency of Telecom and IP telephony</h2>



<ul class="wp-block-list"><li>Alliance for Telecommunications Industry Solutions (ATIS)</li><li>Telecommunications Energy Efficiency Ratio (TEER)</li><li>measurement method covers all power conversion and power distribution from the front end of the<br>system to the data wire plug, including application-specific integrated circuits (ASICs).</li><li>European Telecommunications Standards Institute (ETSI)</li><li>International Telecommunication Union (ITU)</li><li>U.S. Department of Energy (DOE), Environmental Protection Agency (EPA)</li></ul>



<p class="wp-block-paragraph"><strong>External links</strong></p>



<p class="wp-block-paragraph">Amazon  :  <a href="https://sustainability.aboutamazon.com/environment/sustainable-operations/carbon-footprint" rel="nofollow">https://sustainability.aboutamazon.com/environment/sustainable-operations/carbon-footprint</a></p>



<p class="wp-block-paragraph">Cisco : <a href="https://www.cisco.com/c/dam/m/en_us/about/csr/esg-hub/_pdf/2020_Environment_Technical_Review.pdf" rel="nofollow">https://www.cisco.com/c/dam/m/en_us/about/csr/esg-hub/_pdf/2020_Environment_Technical_Review.pdf</a></p>



<p class="wp-block-paragraph">3CX :<a href="https://askozia.com/voip/how-can-i-save-energy-with-green-voip-and-my-ip-pbx/" target="_blank" rel="noreferrer noopener"> https://askozia.com/voip/how-can-i-save-energy-with-green-voip-and-my-ip-pbx/</a></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">The purpose of the article is to raise awareness about carbon footprint from application programs to archietcture designs techniques to data centres and commuulative performance. It gives a direction to stakeholders (customers , programmers , architects , mangers , &#8230; ) to choose less carbon emitting approach whenever possible since every bit counts to help the environment.</p>



<p class="wp-block-paragraph"><strong>References</strong> </p>



<p class="wp-block-paragraph">[1] rensmart.com <a href="https://www.rensmart.com/Calculators/KWH-to-CO2" rel="nofollow">https://www.rensmart.com/Calculators/KWH-to-CO2</a></p>



<p class="wp-block-paragraph">[2] <a href="https://www.zdnet.com/article/toolkit-calculate-datacenter-server-power-usage/" rel="nofollow">https://www.zdnet.com/article/toolkit-calculate-datacenter-server-power-usage/</a></p>



<p class="wp-block-paragraph">[3] nature : <a href="https://www.nature.com/articles/d41586-018-06610-y" rel="nofollow">https://www.nature.com/articles/d41586-018-06610-y</a> </p>



<p class="wp-block-paragraph">[4] Center of Expertise for Energy Efficiency in Data Centers at the US Department of Energy’s Lawrence Berkeley National Laboratory in Berkeley, California. <a href="https://datacenters.lbl.gov/" rel="nofollow">https://datacenters.lbl.gov/</a></p>



<p class="wp-block-paragraph">[5] energy Star &#8211; <a href="https://www.energystar.gov/sites/default/files/asset/document/DataCenter-Top12-Brochure-Final.pdf" rel="nofollow">https://www.energystar.gov/sites/default/files/asset/document/DataCenter-Top12-Brochure-Final.pdf</a></p>



<p class="wp-block-paragraph">[6] <a href="https://www.blog.google/inside-google/infrastructure/safety-first-ai-autonomous-data-center-cooling-and-industrial-control/" rel="nofollow">https://www.blog.google/inside-google/infrastructure/safety-first-ai-autonomous-data-center-cooling-and-industrial-control/</a></p>



<p class="wp-block-paragraph">[7] <a href="https://www.energy.gov/sites/default/files/2013/10/f3/eedatacenterbestpractices.pdf" rel="nofollow">https://www.energy.gov/sites/default/files/2013/10/f3/eedatacenterbestpractices.pdf</a></p>



<p class="wp-block-paragraph">[8] Yin K, Wang S, Wang G, Cai Z, Chen Y. Optimizing deployment of VMs in cloud computing environment. In: Proceedings of the 3rd international conference on computer science and network technology. IEEE; 2013. p. 703–06.</p>



<p class="wp-block-paragraph">[9] Huang W, Li X, Qian Z. An energy efficient virtual machine placement algorithm with balanced resource utilization. In: Proceedings of the seventh IEEE international conference on innovative mobile and internet services in ubiquitous computing; 2013. p. 313–19.</p>



<p class="wp-block-paragraph">[10]  W.&nbsp;Tian,&nbsp;C.S.&nbsp;Yeo,&nbsp;R.&nbsp;Xue,&nbsp;Y.&nbsp;Zhong <strong>Power-aware schedulingof real-time virtual machines in cloud data centers considering fixed processing intervals</strong>Proc IEEE,&nbsp;1&nbsp;(2012), pp.&nbsp;269-273</p>



<p class="wp-block-paragraph">[11] H.&nbsp;Chen,&nbsp;X.&nbsp;Zhu,&nbsp;H.&nbsp;Guo,&nbsp;J.&nbsp;Zhu,&nbsp;X.&nbsp;Qin,&nbsp;J.&nbsp;Wu <strong>Towards energy-efficient scheduling for real-time tasks under uncertain Cloud computing environment</strong>J Syst Softw,&nbsp;99&nbsp;(2015), pp.&nbsp;20-35</p>



<p class="wp-block-paragraph">[12] <a href="https://hbr.org/2021/05/how-much-energy-does-bitcoin-actually-consume" rel="nofollow">https://hbr.org/2021/05/how-much-energy-does-bitcoin-actually-consume</a></p>



<p class="wp-block-paragraph">[13] <a href="https://energyinnovation.org/2020/03/17/how-much-energy-do-data-centers-really-use/" rel="nofollow">https://energyinnovation.org/2020/03/17/how-much-energy-do-data-centers-really-use/</a></p>



<p class="wp-block-paragraph">[14] F. Bota, F. Khuhawar, M. Mellia and M. Meo, &#8220;Comparison of energy efficiency in PSTN and VoIP systems,&#8221; 2012 Third International Conference on Future Systems: Where Energy, Computing and Communication Meet (e-Energy), 2012, pp. 1-4, doi: 10.1145/2208828.2208834. <a href="https://dl.acm.org/doi/10.1145/2208828.2208834" target="_blank" rel="noreferrer noopener">https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.720.446&amp;rep=rep1&amp;type=pdf</a></p>



<p class="wp-block-paragraph">[15] <a href="https://www.energystar.gov/products/office_equipment/voice_over_internet_protocol_voip_phone" rel="nofollow">https://www.energystar.gov/products/office_equipment/voice_over_internet_protocol_voip_phone</a></p>



<p class="wp-block-paragraph">[16] egrid summary table 2018 for carbon emission rate in Us states  : <a href="https://www.epa.gov/sites/default/files/2020-01/documents/egrid2018_summary_tables.pdf" rel="nofollow">https://www.epa.gov/sites/default/files/2020-01/documents/egrid2018_summary_tables.pdf</a></p>



<p class="wp-block-paragraph">[17] UK greenhourse gas reporting &#8211; <a href="https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2018" rel="nofollow">https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2018</a></p>



<p class="wp-block-paragraph">[19] <a href="http://assets.worldwildlife.org/publications/575/files/original/The_3_Percent_Solution_-_June_10.pdf?1371151781" rel="nofollow">http://assets.worldwildlife.org/publications/575/files/original/The_3_Percent_Solution_-_June_10.pdf?1371151781</a></p>



<p class="wp-block-paragraph">[20] <a href="https://www.cisco.com/c/dam/m/en_us/about/csr/esg-hub/_pdf/2020_Environment_Technical_Review.pdf" rel="nofollow">https://www.cisco.com/c/dam/m/en_us/about/csr/esg-hub/_pdf/2020_Environment_Technical_Review.pdf</a></p>



<p class="wp-block-paragraph">[21]  It’s Not Easy Being Green by Peter Xiang Gao, Andrew R. Curtis, Bernard Wong, S. Keshav<br>Cheriton School of Computer Sc <a href="https://dl.acm.org/doi/pdf/10.1145/2342356.2342398" rel="nofollow">https://dl.acm.org/doi/pdf/10.1145/2342356.2342398</a></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2021/07/20/energy-efficient-voip-systems/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4667</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-16.png?w=668" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-15.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/micro-service-archietcture.jpg?w=863" medium="image" />

		<media:content url="https://lh6.googleusercontent.com/B-fT_bDknf0UIeUTrR80sukLNqKRRcMA-qmeOUg39TFNB7sLaud2zqYu2BcmoouHjlcuGIzopu_Ji7I8Q4h0g9-2XyOwA5tGkARSkmUU420qPxGORCVrEwkxjZ1ntVbWzJ9Sn1-qEJU" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-4.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-1.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-2.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image.png?w=985" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-5.png?w=490" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/data-streaming-scalable-voip-platform-3.jpg?w=863" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-6.png?w=592" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/lamda-archietcture.jpg?w=863" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/05/rtp-topology-8.jpg?w=863" medium="image" />

		<media:content url="https://lh4.googleusercontent.com/SV8-itDdW0OtLSpBs9v-7xLiP-X8Q3ZhYZ9JKio9LFYr8R0nL65qwiFauaiGQiUUdHneE031AvV4dzyahrVlOd4q8INJ5zG2WamtywF3ixTluVCnCMBpxKlc9Wt9kw9sKcUClSNCLuk" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2020/06/pop-voip-2-1.jpg?w=863" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-14.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-11.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-7.png?w=666" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-8.png?w=657" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2021/07/image-9.png?w=570" medium="image" />
	</item>
		<item>
		<title>SIP Trunks</title>
		<link>https://telecom.altanai.com/2020/12/02/sip-trunks/</link>
					<comments>https://telecom.altanai.com/2020/12/02/sip-trunks/#respond</comments>
		
		<dc:creator><![CDATA[altanai]]></dc:creator>
		<pubDate>Thu, 03 Dec 2020 00:52:00 +0000</pubDate>
				<category><![CDATA[Telecom Info]]></category>
		<category><![CDATA[Kamailio]]></category>
		<category><![CDATA[Session Initiation Protocol]]></category>
		<category><![CDATA[Sip]]></category>
		<category><![CDATA[SIP trunk]]></category>
		<category><![CDATA[Telecom]]></category>
		<category><![CDATA[VOIP]]></category>
		<guid isPermaLink="false">http://telecom.altanai.com/?p=5071</guid>

					<description><![CDATA[With the dawn of IP telephony service and cloud communication platforms in recent years, the SIP has caught the attention of many application developers. while SIP is essentially a session management multimedia signalling protocol its generic stack can be used for various use cases from IoT camera streaming sessions to call centres even auto calling &#8230; <a href="https://telecom.altanai.com/2020/12/02/sip-trunks/" class="more-link">Continue reading <span class="screen-reader-text">SIP Trunks</span></a>]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list">
<li><a href="#Traditional-trunk-call">Traditional trunk call</a></li>



<li><a href="#SIP-trunk"><a href="#SIP-trunk">SIP trunk (older) systems</a></a></li>



<li><a href="#Centralized-SIP-Trunk-Model">Centralized SIP Trunk Model</a></li>



<li><a href="#ISDN">SIP trunking is an IP-based alternative to ISDN trunking services</a></li>



<li><a href="#Planning-to-set-up-SIP-trunk">Planning to set up SIP trunk</a></li>



<li><a href="#SIPTrunk">Features of SIP trunking</a></li>



<li><a href="#Future-of-SIP-trunks">Future of SIP trunks </a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">With the dawn of IP telephony service and cloud communication platforms in recent years, the SIP has caught the attention of many application developers. while SIP is essentially a session management multimedia signalling protocol its generic stack can be used for various use cases from IoT camera streaming sessions to call centres even auto calling for purpose of sharing OTP(one-time password) etc. In this I will highlight the usecase of large calltraffic and the use of SIP trunks.</p>



<p class="wp-block-paragraph">SIP based trunking can provide significant cost savings and business process improvements by supporting the native SIP protocol that controls the VoIP systems used in call centres and business communication platforms.</p>



<ul class="wp-block-list">
<li>(+) unified communication</li>



<li>(+) lower telco network </li>



<li>(+) streamline operations for multicountry/ geography </li>
</ul>



<h2 class="wp-block-heading" id="Traditional-trunk-call"><a href="#Traditional-trunk-call">Traditional trunk call</a></h2>



<p class="wp-block-paragraph">In the past, telephone systems used trunk lines to connect different parts of the network. Trunk lines were long-distance communication lines that connected telephone exchanges in different locations. Trunk calls were calls made over these trunk lines. They were typically used for long-distance communication, as they allowed calls to be made between exchanges that were geographically far apart. Trunk calls were generally more expensive than local calls, as they involved the use of long-distance communication lines.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7268" data-permalink="https://telecom.altanai.com/2020/12/02/sip-trunks/image-10-6/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png" data-orig-size="1169,342" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-10" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=1024" alt="" class="wp-image-7268" width="645" height="188" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=645 645w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png 1169w" sizes="(max-width: 645px) 100vw, 645px" /></figure>



<p class="wp-block-paragraph">Traditional trunk calls operated like a circuit with local loops , trunk lines and switching offices. The telco acted as carriers that sell of lease communication lines to facilitate communication over long distances using local exchanges and interexchange carriers. </p>



<p class="wp-block-paragraph">In the early days of telephone systems, trunk lines were typically made of copper wires or cables. Later, trunk lines were replaced with satellite links and fiber optic cables, which provided higher capacity and faster transmission speeds. Today, with the widespread adoption of VoIP (Voice over Internet Protocol) technology, many telephone systems no longer use trunk lines in the traditional sense. Instead, they use virtual connections, such as SIP trunks (Session Initiation Protocol trunks), which allow organizations to make and receive phone calls over the internet. SIP trunks are generally more flexible and cost-effective than traditional trunk lines, and do not require the installation of additional hardware.</p>



<p class="wp-block-paragraph">Voice trunk Lines in SS7 based Next Generations IN networks used media gate ways and MGCP, H323 protocols</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" data-attachment-id="7281" data-permalink="https://telecom.altanai.com/2020/12/02/sip-trunks/image-16-5/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png" data-orig-size="1758,1026" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-16" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=1024" alt="" class="wp-image-7281" width="672" height="392" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=672 672w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=1344 1344w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=768 768w" sizes="(max-width: 672px) 100vw, 672px" /><figcaption class="wp-element-caption">Image credits : Unknown</figcaption></figure>



<h2 class="wp-block-heading"><a href="#SIP-trunk">SIP trunk (older) systems</a></h2>



<p class="wp-block-paragraph">SIP is a protocol that is commonly used in VoIP (Voice over Internet Protocol) systems to set up, modify, and terminate sessions that involve the exchange of audio, video, and other media. SIP Trunks are virtual voice channels (or paths) which deliver media (voice, video, IM) over an IP network to a designated endpoint. SIP Trunks can be thought of as a virtual line or concurrent call path. SIP Trunks are delivered over an IP connection like Tier One Carrier or Voice Optimized Recommended or UDP. SIP Trunk may be over-subscribed ie can have more numbers than trunks for example  G.711 – 17 calls over T1 or  G.729a – 45 calls over T1. SIP Trunking can be provided as one-way or two-way lines. Direct Inward Dialing (DIDs) can be used for toll-free number service.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="598" data-attachment-id="7418" data-permalink="https://telecom.altanai.com/2020/12/02/sip-trunks/image-51-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png" data-orig-size="1262,738" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-51" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=1024" alt="" class="wp-image-7418" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png 1262w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="Centralized-SIP-Trunk-Model"><a href="#Centralized-SIP-Trunk-Model">Centralized SIP Trunk Model</a></h2>



<p class="wp-block-paragraph">Centralized SIP Trunk Model is designed to aggregate all calls from all sites and funnels them into a single entry point. Each site has its own SIP trunk termination of the appropriate capacity for calls to and from that site.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="572" data-attachment-id="7419" data-permalink="https://telecom.altanai.com/2020/12/02/sip-trunks/image-52-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png" data-orig-size="1363,762" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-52" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=1024" alt="" class="wp-image-7419" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=1024 1024w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=768 768w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png 1363w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Such SIP trunks models offer benefits in three significant areas:</p>



<ol class="wp-block-list">
<li><strong>Cost savings</strong>, arising from many factors including reduced telecommunications network charges and streamlined operations.</li>



<li><strong>Unified communications</strong>, where voice, video, email, text and other messaging technologies are combined to provide greater flexibility for users by enabling new ways to transfer information and manage connectivity. Many SIP trunk providers offer advanced features such as call forwarding, call waiting, and voicemail, which can improve the overall communication experience for employees.</li>



<li><strong>Business Continuity and Disaster Recovery</strong>, where the right physical configuration in conjunction with intelligence in the network can be leveraged to provide uninterrupted communications and alternative means to stay connected for employees in the event of system bottlenecks or failures.</li>
</ol>



<h2 class="wp-block-heading" id="ISDN"><a href="#ISDN">SIP trunking is an IP-based alternative to ISDN trunking services</a></h2>



<p class="wp-block-paragraph">SIP Trunking is a l<em>ow-cost IP-based alternative&nbsp;</em>to ISDN offering for medium to large businesses needing upwards of several tens of channels in a trunk, often across multiple sites, with IP VPN access.&nbsp;</p>



<ul class="wp-block-list">
<li>(+) Optimal utilization of bandwidth by delivering both data and voice in the same bandwidth</li>
</ul>



<p class="wp-block-paragraph">A telephony company such as a telecom service provider may expose SIP trunks as a means of connecting inbound or outbound calls through its telecom network. For the integrator ( or the service provider managing the other enedpoint of the call leg ) it can be no different that a traditional phone call.The SIP signalling however is useful for enabling better session understaning using standard SIP requests and responses as compared to SS7 or PRI lines.</p>



<h2 class="wp-block-heading" id="Planning-to-set-up-SIP-trunk"><a href="#Planning-to-set-up-SIP-trunk">Planning to set up SIP trunk</a></h2>



<p class="wp-block-paragraph">•Cost analysis<br>•Assess traffic volumes and patterns<br>•Assess network design implications<br>•Emergency call policy<br>•Define production user community phases<br>•Define user community to pilot<br>•Evaluate future new services<br>•Assess security precautions</p>



<p class="wp-block-paragraph">The steps to set up a SIP trunk connection may vary depending on the specific provider and the equipment being used. However, here are some general steps that are often involved in the process:</p>



<ol class="wp-block-list">
<li>Choose a SIP trunk provider: Research and compare different SIP trunk providers to find one that meets your organization&#8217;s needs and budget.</li>



<li>Sign up for a SIP trunk account: Follow the provider&#8217;s instructions to sign up for a SIP trunk account. This may involve completing an online form, providing contact information and payment details, and selecting the desired features and services.</li>



<li>Configure your VoIP phone system: Consult your VoIP phone system&#8217;s documentation to learn how to configure it to work with a SIP trunk. This may involve specifying the SIP trunk&#8217;s IP address and port number, as well as any authentication credentials that are required.</li>



<li>Test the connection: Once the SIP trunk is set up, it is a good idea to test the connection to ensure that it is working properly. Make a few test calls to verify that the connection is functioning as expected.</li>



<li>Use the SIP trunk: Once the SIP trunk is set up and tested, it can be used to make and receive calls using your VoIP phone system.</li>
</ol>



<p class="wp-block-paragraph">SIP Trunking platform has to integrate with multiple networks seamlessly. Components for setting up a SIP trunking system requires atleast these </p>



<ul class="wp-block-list">
<li>Compliance with standrad signalling protol, like SIP.</li>



<li>SBC( Session Border Controller ) facing the private PBX</li>



<li>Gateway for specific endpoints such as PSTN gateway , public internet gateway etc</li>



<li>L3/L4 Layer switches</li>



<li>Telco operator lines</li>



<li>Codec support</li>
</ul>



<p class="wp-block-paragraph">Kamailio is an open-source SIP (Session Initiation Protocol) server that can be used to create a SIP trunk. Kamailio can be PBX used to connect different locations within an organization, enabling employees to communicate with each other using their VoIP phones. Kamailio can also be used to set up a SIP trunk in a number of ways. For example, it can be used to connect an organization&#8217;s VoIP phone system to the public telephone network, allowing employees to make and receive calls from outside the organization.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="968" height="671" data-attachment-id="7427" data-permalink="https://telecom.altanai.com/2020/12/02/sip-trunks/image-53-2/" data-orig-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png" data-orig-size="968,671" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-53" data-image-description="" data-image-caption="" data-medium-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=300" data-large-file="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=863" src="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=968" alt="" class="wp-image-7427" srcset="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png 968w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=150 150w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=300 300w, https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=768 768w" sizes="(max-width: 968px) 100vw, 968px" /><figcaption class="wp-element-caption"><a href="https://telecom.altanai.com/2016/08/02/session-border-controller-for-webrtc/">https://telecom.altanai.com/2016/08/02/session-border-controller-for-webrtc/</a></figcaption></figure>



<p class="wp-block-paragraph">Kamailio is a highly flexible and customizable SIP server that can be configured to meet the specific needs of an organization. It offers a range of features and functionality, including call routing, load balancing, and security. Kamailio is a popular choice for organizations that want to set up a SIP trunk because it is open-source and can be customized to meet their specific needs.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Ow62CEvMlT"><a href="https://telecom.altanai.com/2003/10/28/l1-l2-l3-equipment-and-l3-vs-l4-switches/">L1, L2 ,L3 equipment and L3 vs L4&nbsp;switches</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;L1, L2 ,L3 equipment and L3 vs L4&nbsp;switches&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2003/10/28/l1-l2-l3-equipment-and-l3-vs-l4-switches/embed/#?secret=bkiwMWb2cK#?secret=Ow62CEvMlT" data-secret="Ow62CEvMlT" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading" id="SIPTrunk"><strong><a href="#SIPTrunk">Features of SIP trunking</a></strong></h2>



<p class="wp-block-paragraph">SIP trunk with VoIP phone systems are often preferred over traditional phone systems because they are generally more flexible and cost-effective. They allow employees to make and receive calls from any device with an internet connection, including desk phones, smartphones, and laptops. They can be easily scaled up or down to meet changing communication needs and do not require the installation of additional physical hardware. Some factors to consider when evaluating SIP trunks include:</p>



<ol class="wp-block-list">
<li><strong>Cost</strong>: It is important to compare the costs of different SIP trunk providers and consider factors such as monthly fees, per-minute charges, and any additional fees for features or services.</li>



<li><strong>Coverage</strong>: Make sure that the SIP trunk provider has coverage in the areas where your organization needs to make and receive calls.</li>



<li><strong>Quality</strong>: The quality of a SIP trunk can vary greatly depending on the provider and the connection. Be sure to research the provider&#8217;s reputation for call quality and reliability.</li>



<li><strong>Features</strong>: Different SIP trunk providers may offer different features, such as call forwarding, call waiting, and voicemail. Consider which features are important to your organization and make sure that the SIP trunk provider offers them.</li>



<li><strong>Customer support</strong>: It is important to choose a SIP trunk provider that offers reliable customer support in case you experience any issues with your service.</li>
</ol>



<p class="wp-block-paragraph">Other features that are good to have is integration to existing backend for OSS/BSS stack. Some of the feature set for a carrier grade SIP trunking solution are listed here </p>



<ul class="wp-block-list">
<li>Inbound and outbound trunks </li>



<li><strong>Number Import/Export</strong></li>



<li>Security 
<ul class="wp-block-list">
<li>Dynamic registeration of users </li>



<li>Authentication and Authorization</li>



<li>Security (SRTP)</li>
</ul>
</li>



<li>Cost Savings 
<ul class="wp-block-list">
<li>Low cost for large traffic volumes instead of charges of call per second </li>



<li>CDR for tracing and monitoring call failures</li>
</ul>
</li>



<li>Clear media stream ( no robotic or choopy audio). Good MOS score</li>



<li>realtime traffic monitoring to rule out bad players.</li>



<li><strong>Inbound and Outbound call </strong>&#8211; Call Establishment, Rejection, Termination</li>



<li><strong>DDI:</strong> Direct Dialling-In ranges can be provided on the SIP Trunk</li>



<li><strong>CLIP(Calling Line Identification Presentation </strong>)<strong>/CLIR Calling Line Identification Presentation Restriction</strong>)<strong> </strong>for Inbound and Outbound</li>



<li>Call Management 
<ul class="wp-block-list">
<li>AUTH Code Screening</li>



<li>Combined Screening</li>



<li>Data Call Screening</li>



<li>Local Screening</li>



<li><strong>Anonymous Call Rejection:</strong> Anonymous Call Rejection</li>



<li><strong>Incoming Call Barring: </strong>bar receiving of calls to certain extensions</li>



<li><strong>Outgoing Call Barring: </strong>Restrict calls to certain numbers</li>



<li><strong>Incoming Call Diversion &#8211;</strong> unconditional, busy, and unreachable</li>



<li><strong>Call Admission Control:</strong> Call Admission Control (CAC) is a mechanism to restrict the number of simultaneous sessions (calls) </li>



<li>Incoming Call Diversion (DestNo not reachable, CAC exceeded, unconditional)</li>
</ul>
</li>



<li><strong>Geographic and Non-Geographic Number Support</strong></li>



<li><strong>Multiple Codec Support</strong></li>



<li><strong>Emergency Calling: </strong>Emergency Calls are routed on a priority basis irrespective of the customer’s available channel</li>
</ul>



<p class="wp-block-paragraph">Trunking inbound services voice can be used to support contact centres, conferencing, number translation services etc. Regulatory requirements for the operation of the customer in the PSTN of respective countries must be met with Country Specific Emergency Calling support Enhanced feature set for SIP trunking should include&nbsp;<em>the features of the SIP Trunking with Multicountry support</em></p>



<ul class="wp-block-list">
<li>Enhanced CAC(Call Admission Control)  – Directional &amp; Network</li>



<li>Global Dial Plan Support</li>



<li>Proactive MCID (Malicious CallerId) Identification and tracing</li>



<li>Call Distribution(CD)</li>



<li>Intelligent Routing involving machine learning and constant feedback
<ul class="wp-block-list">
<li>Origin Based Routing</li>



<li>Menu Routing</li>



<li>Origin Dependent Routing (ODR)</li>



<li>PIN Routing</li>



<li>Dynamic Route Select</li>



<li>Time-Dependent Routing (TDR)</li>



<li>Uniform Load Distribution(ULD)</li>



<li>International Routing</li>



<li>Mobile Routing</li>



<li>Payphone Routing</li>
</ul>
</li>



<li>Product Association</li>
</ul>



<p class="wp-block-paragraph">Ultimately, the most useful SIP trunk for your organization will depend on your specific needs and budget. It is a good idea to research and compare different SIP trunk providers to find the one that best meets your organization&#8217;s needs. </p>



<h2 class="wp-block-heading" id="Future-of-SIP-trunks"><a href="#Future-of-SIP-trunks">Future of SIP trunks </a></h2>



<p class="wp-block-paragraph">SIP trunking systems are likely to continue to be an important part of the telecommunications landscape in the future. As more and more organizations adopt WebRTC or SRT based VoIP (Voice over Internet Protocol) technology for their phone systems, the demand for SIP trunks is likely to continue to grow. One trend that is expected to shape the future of SIP trunking is the increasing adoption of cloud-based communication systems. As more organizations move their communication systems to the cloud, they are likely to turn to SIP trunks as a way to connect their phone systems to the public telephone network and enable remote communication. Another trend that is expected to impact the future of SIP trunking is the increasing adoption of 5G technology. 5G networks offer faster speeds and lower latency, which may make it possible to use SIP trunks for real-time communication applications such as interactive and/or immersive  video conferencing.</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Mx63rjY6nq"><a href="https://telecom.altanai.com/2013/11/21/what-should-a-telecom-solution-startup-do/">VoIP/ OTT / Telecom Solution startup&#8217;s strategy for building a scalable flexible SIP&nbsp;platform</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;VoIP/ OTT / Telecom Solution startup&#8217;s strategy for building a scalable flexible SIP&nbsp;platform&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2013/11/21/what-should-a-telecom-solution-startup-do/embed/#?secret=i3zNDBbdxK#?secret=Mx63rjY6nq" data-secret="Mx63rjY6nq" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-telecom-r-amp-d wp-block-embed-telecom-r-amp-d"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="uNnB830uGh"><a href="https://telecom.altanai.com/2013/07/13/sip-entities/">SIP VoIP system architecture&nbsp;basics</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;SIP VoIP system architecture&nbsp;basics&#8221; &#8212; Telecom R &amp; D" src="https://telecom.altanai.com/2013/07/13/sip-entities/embed/#?secret=I31ucsmhOh#?secret=uNnB830uGh" data-secret="uNnB830uGh" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://telecom.altanai.com/2020/12/02/sip-trunks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5071</post-id>
		<media:content url="https://2.gravatar.com/avatar/229b7a64571ec05ce945ccaed045c5feb46b0e7fd191ac800e92cc02e2b1dd46?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">altanai</media:title>
		</media:content>

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-10.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-16.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-51.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-52.png?w=1024" medium="image" />

		<media:content url="https://telecom.altanai.com/wp-content/uploads/2022/12/image-53.png?w=968" medium="image" />
	</item>
	</channel>
</rss>
