计算机网络(第7版)——谢希仁 课后习题3-26

3-26

以太网上只有两个站,它们同时发送数据,产生了碰撞。于是按截断二进制指数退避算法进行重传。重传次数记为i, i= 1,2,3, …试计算第1次重传失败的概率、第2次重传失败的概率、第3次重传失败的概率,以及一个站成功发送数据之前的平均重传次数 I

  • 在截断二进制指数退避算法中,由于基本退避时间取的是一个争用期,所以只要两个站取不同的 r 值,预定的重发时间就相隔至少2τ,先重发的站就可以赶在另一个站重发之前把数据送到,避免再次碰撞。

  • 换言之,如果再次碰撞了,说明两个站取的 r 值是一样的。于是有:

  • 第一次重传失败,两个站在{0,1}中都取了0或者都取了1,概率1/2.
    第二次重传失败,两个站在{0,1,2,3}中选了一样的,概率为1/4.
    第三次重传失败,两个站在{0,1,…,7}中选了一样的,概率为1/8.

    第十次碰撞,两个站在{0,1,…,1023}中选了一样的,概率为1/1024.
    从第十一次开始,一直到第十六次,两个站在{0,1,…,1023}中选了一样的,概率为1/1024.

  • 假设这个站前m次发送失败,在第m+1次发送成功。即这个站成功发送数据之前的重传m次失败的概率为:
    在这里插入图片描述

  • 平均重传次数=重传成功的1次+前面重传失败次数的平均值(这里的计算我是用matlab算的,具体的代码我放在文章最后):
    在这里插入图片描述


matlab计算平均重传失败次数的代码
%计算失败的平均重传次数
avg=0; %初始化为0
for m=1:15  %失败的重传次数,从115都有可能,既然是发送成功前的重传次数,第16次总得成功吧
    P_failed_m=1;   %重传失败的概率,初始化为1
    if (m<10)
        for i=1:m %m<10,按次数来计算概率
            P_failed_m=P_failed_m/2^i; %第m次失败的概率
        end
        P_success=1-1/(2^(m+1)); %第m+1次成功的概率
    else %m>=10,概率和10是一样的
        for j=1:m
            if (i<10)
                P_failed_m=P_failed_m/2^j;
            else
                P_failed_m=P_failed_m/2^10; %10次及10次以后失败的概率
            end
        end
        P_success=1-1/(2^10);
    end
    avg = avg + m*P_success*P_failed_m; %加上第i次重传失败的概率加权
end
avg

运行结果
在这里插入图片描述

  • 50
    点赞
  • 143
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值