networking - 时分复用带宽

标签 networking multiplexing

考虑通过电路交换网络从主机 A 向主机 B 发送一个 640,000 位的文件。认为 网络中的所有链路都使用具有 24 个时隙的 TDM,比特率为 1.536 Mbps。还假设它 在主机 A 可以开始传输文件之前,需要 500 毫秒来建立端到端电路。忽略 传播、处理和排队延迟,计算从 源开始发送文件,直到目标接收到整个文件。

答案: 总传输时间 = 0.5s + (640000/((1.536x10^6)/24)) = 10.5s

如果我没记错的话,主机 A 在传输文件时应该获得全带宽,因为时分复用是基于每个主机的时间帧和时隙。

请问链接带宽为什么要除以24?

最佳答案

在具有 24 个插槽的 TDM 链路上,显然假定您的连接将占用一个插槽,这意味着您将获得的吞吐量不会是完整的 1.536 Mbps,而是它的 1/24。

我说的是“假设”,因为您可能也在该链接上使用多个时隙。我认为 GPRS 可以做到这一点 - 如果没有其他人使用其他时隙,并且您需要更多带宽,则可能会为您分配它们。这将按比例增加带宽。

换句话说,如果您始终通过该链接进行传输,您将获得 1.536 Mbps。但你不会 - 它是 TDM,所以你将有 1/24 的时间在传输。

日常世界的类比是:想象一下如果您的水龙头每分钟可以倒出 20 升水。如果你打开它,让它打开 10 分钟,你会得到 200 升水。但是,如果你只打开它 5 秒,然后关闭 55 秒,然后再次打开 5 秒,关闭 55 秒,然后再次打开整整 10 分钟,你不会得到 200 升,你只会得到 16 升。(6 ) 升。

16.(6) = 20 litres/minute (tap throughput)
         * 10 minutes     (pouring time)
         * 5/60           (proportion of time when water was being poured)

从类比回到你的案例:

640k bits = 1.536 Mbits/s (link throughput)
            * 10 seconds  (transmission time)
            * 1/24        (proportion of time when data was being transmitted)

关于networking - 时分复用带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196658/

相关文章:

java - 在同一台物理机器上连接两个 Java 进程的最快方法是什么?

java - 数据包被 netty 损坏

python - queue.Queue 上的多路复用?

sockets - 通过多个套接字和接口(interface)多路复用数据传输

sockets - 从套接字读取消息时如何获取字节顺序?

python - urllib2.urlopen 使用哪些注册表/环境(或其他)设置来确定代理设置?

c - 基本 C 服务器 : Connection Refused Error

客户端-服务器回显聊天(多路 I/O + 线程)

python - 在Python中为并行端口多路复用数字字符串

asynchronous - 通过多个 UDP 端口传递数据是否会提高性能