分组交换中存储转发的时延是是怎样计算的呢?

img


这是计算机网络第七版谢希仁的教材,请问有没有知道的朋友第一章课后第10题,对于分组交换产生的存储转发时延为什么是结点数乘以一个分组的发送时延呢,为什么不是所有分组都在经过结点时产生了存储转发的时延呢?

推荐你看B站上湖科大教书匠老师的视频

看过b站湖科大教书匠老师的课明白了,无论是比特还是分组,都是连续不断发送的,即使分组经过路由器存储转发,那么在转发第一个分组时,第二个分组已经被暂存,第一个分组发出,第二个分组就会跟上,无需每个分组都要重新计算一遍发送时间。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7660851
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:⑴输入10个职工的姓名和职工号;⑵按职工号由小到大排序,姓名顺序也随之调整;⑶要求输入一个职工号,查找法找出该职工的姓名。从主函数输入要查找的职工号,输出该职工姓名
  • 除此之外, 这篇博客: 《计算机网络》谢希仁第七版课后答案完整版中的 3-33 网桥中的转发表是用自学习算法建立的。如果有的站点总是不发送数据而仅仅接受数据,那么在转发表中是否就没有与这样的站点相对应的项目?如果要向这个站点发送数据帧,那么网桥能够把数据帧正确转发到目的地址吗? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    答:没有与这样的站点相对应的项目;网桥能够利用广播把数据帧正确转发到目的地址

  • 您还可以看一下 刘建萍老师的人工智能系列课程零基础讲解知识点和实例应用线性回归梯度下降逻辑回归课程中的 讲解机器学中会涉及到的有关数学方面的知识储备有哪些小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    首先,让我们先来解释一下存储转发时延的概念。在分组交换中,在一个节点(如路由器)上接收到一个分组后,需要先将该分组存储在缓存中,然后再根据转发表等信息进行转发。存储转发时延指的是将分组存储在节点缓存中所花费的时间。

    要解释为什么存储转发时延是结点数乘以一个分组的发送时延,而不是所有分组都在经过结点时产生存储转发时延,需要从分组交换的工作原理入手。

    分组交换是一种数据交换方式,它将数据划分为较小的分组进行传输。在传输过程中,每个分组根据目的地址进行独立的转发。当一个分组经过一个节点时,该节点需要查找目的地址,并根据转发表等信息来决定下一跳的转发路径。

    假设有n个节点,那么在一个分组从源节点发送到目的节点的过程中,它需要经过n-1个中间节点。每个中间节点都会对该分组进行存储和转发操作。所以,不论中间节点的数量如何,每个节点都必须存储并转发一个分组。而在这个过程中,每个分组都会经历相同的发送时延。

    因此,存储转发时延可以看作是结点数乘以一个分组的发送时延。

    具体来说,解决该问题的代码如下所示(以python语言为例):

    # 假设结点数为n,一个分组的发送时延为delay
    def calculate_store_forward_delay(n, delay):
        store_forward_delay = n * delay
        return store_forward_delay
    
    # 使用示例
    nodes = 5  # 结点数
    delay = 0.5  # 一个分组的发送时延
    result = calculate_store_forward_delay(nodes, delay)
    print("存储转发时延为:", result)
    

    运行以上代码,即可得到存储转发时延的计算结果。

    注意:以上代码仅为示例,实际情况中可能需要根据具体的网络拓扑和延迟模型进行合理的计算。这里只是提供了一个大致的解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

发送时延 发送时延是指从数据包进入发送端口到数据包完全发送出去所需的时间。它由两个因素决定:数据包的长度和发送端口的传输速率。发送时延的计算公式如下: 发送时延 = 数据包长度 / 发送端口传输速率