# Downside of using one transport for only one producer/consumer?

**URL:** <https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057>\
**Category:** mediasoup libraries\
**Created:** [March 16, 2023, 11:09am UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057 "2023-03-16T11:09:00Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 16, 2023, 11:09am UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/1 "2023-03-16T11:09:00Z")

</div>

Hi, I am using one transport for one producer/consumer for some of the scalability reasons on my server side and I want to stick to that.

It is mentioned in some topics that it is better to have all producers on single transport because bandwidth estimation is better in that case and I think same goes for consumers as well.

I want to ask if there is any downsides to using one transport for one producer/consumer? If yes then how much difference in bandwidth estimation, performance in percentage it will have with the other approach (one transport for multiple producers/consumers) like 5-10%?

> [@producer audio and video](https://mediasoup.discourse.group/t/producer-audio-and-video/973/2):
>
> Use always a single send transport if possible (and it’s always possible).

> [@using multiple consumers in a single recvTransport](https://mediasoup.discourse.group/t/using-multiple-consumers-in-a-single-recvtransport/375/8):
>
> Yes, you should use a single transport for receiving all Consumers. That way the bandwidth estimator of mediasoup will work better than if there are N transports (so each of one would have a bandwidth estimator competing with the others). BTW we’ll release soon a new version of mediasoup with transport-cc support, which will improve dramatically how mediasoup estimates the downlink bandwidth estimation of each receiver. So yes, use a single transport for receiving all Consumers.

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 20, 2023, 6:55pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/2 "2023-03-20T18:55:58Z")

</div>

Can someone please share his thoughts on this topic?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [March 20, 2023, 7:02pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/3 "2023-03-20T19:02:47Z")

</div>

Ask yourself: do you want to establish a ICE + DTLS setup for every new Producer or Consumer?

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 20, 2023, 8:12pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/4 "2023-03-20T20:12:44Z")

</div>

I think no, no need of having separate ice setup for every producer/consumer and I think doing this will further speedup the producer, consumer creation process.

But if we have separate transport for every producer/consumer then what can be the issues with this approach?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [March 20, 2023, 9:20pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/5 "2023-03-20T21:20:26Z")

</div>

> [@zaidiqbal](#):
>
> But if we have separate transport for every producer/consumer then what can be the issues with this approach?

More traffic because you’ll have transport-cc feedbacks (BWE stuff) for each transport. More CPU usage in mediasoup since each transport requires its own BWE logic, etc.

I cannot help much more because, for sure, I’ve never used a transport per producer/consumer.

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 21, 2023, 7:07am UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/6 "2023-03-21T07:07:39Z")

</div>

Thanks, 2 last things I want to confirm with you regarding this:

1- Does this “One transport per producer/consumer” approach have any issues on client side? Can this approach cause more CPU usage on client side as well? If yes how much approx?

2- You said that this approach will cause more CPU usage on server side, can this cause lags in video as well?

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [March 21, 2023, 12:52pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/7 "2023-03-21T12:52:13Z")

</div>

1. No
2. No

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 21, 2023, 12:57pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/8 "2023-03-21T12:57:19Z")

</div>

Thanks nice to know that.

What do you think about CPU usage being increased by “one transport per producer/consumer” approach.

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 21, 2023, 1:01pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/9 "2023-03-21T13:01:47Z")

</div>

Also, what do you think about possible downsides of using one transport per producer/consumer?

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [March 21, 2023, 1:14pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/10 "2023-03-21T13:14:43Z")

</div>

There’s no down-side it’s just further optimizing. I do prefer transport per user to better understand statistics and potential issues.

I would intend on the goal of having a transport per server IP (or worker). Allows you that scalability if one server isn’t enough.

* * *

I do wonder sometimes if a transport contains many many streams if it still uses multiple threads… unsure how all browsers/etc handle it.

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [March 21, 2023, 1:23pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/11 "2023-03-21T13:23:58Z")

</div>

Also think of it this way, the user only establishes a single connection to the server, though a server could handle a LOT of connections it does simplify end-points to send packets.

Transport per user would simply amplify the operations needed. Loops are fast so this is pinching for pennies but everything counts right!?

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 21, 2023, 6:53pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/12 "2023-03-21T18:53:35Z")

</div>

Thanks for the information. 👍

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 24, 2023, 5:08pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/13 "2023-03-24T17:08:08Z")

</div>

> [@zaidiqbal](#):
>
> 2- You said that this approach will cause more CPU usage on server side, can this cause lags in video as well?

@BronzedBroth as ibc mentioned that using single transport for single producer/consumer will cause increase in CPU usage on server side. Why this will not cause an increase in CPU on client side?

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [March 25, 2023, 7:56pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/14 "2023-03-25T19:56:06Z")

</div>

Same would apply for client-side, but these gains are not substantial enough… Either end.

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 25, 2023, 8:01pm UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/15 "2023-03-25T20:01:02Z")

</div>

I see, so this increase in CPU is so small that it can be safely ignored?

---

<div class="post-metadata">

**Author:** ![BronzedBroth](https://avatars.discourse-cdn.com/v4/letter/b/ad7895/32.png) [@BronzedBroth](https://mediasoup.discourse.group/u/BronzedBroth)\
**Post date:** [March 29, 2023, 12:19am UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/16 "2023-03-29T00:19:05Z")

</div>

Yup. Due to the capabilities of core usage and ipc overall, so code as efficient as you can and forget that aspect. I worry most these days about trace routes between piped server routes and global delivery.

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [March 29, 2023, 10:20am UTC](https://mediasoup.discourse.group/t/downside-of-using-one-transport-for-only-one-producer-consumer/5057/17 "2023-03-29T10:20:35Z")

</div>

Thanks for the information 👍
