计算机网络_中国大学慕课_第4周 网络应用(下)_作业4

 考虑向N个对等方(用户)分发F=15Gb的一个文件。服务器具有us=30Mbps的上传速率,每个对等方的下载速率d=2Mbps,上传速率为u。请分别针对客户-服务器分发模式和P2P分发模式两种情况,对于N=10、100和1000以及u=500kbps、1Mbps和2Mbps的每种组合,绘制最小分发时间图表。

(注:k=10^3、M=10^6、G=10^9)

解:鉴于N,u的组合数有点小大,我就用Java来解题,算出每种组合的Tcs,Tp2p;

代码如下:

package ComputerNetWork;

public class U4Work {
    static long  F=15000000;//文件大小F (kb)
    static long d=2000;    //客户端 下载速率 d (kbps)
    static long us=30000;    // 服务器 上传速率 us (kbps)
    
    static int N[]=new int[]{10,100,1000}; //客户端数目 N
    static int u[]=new int[] {500,1000,2000};// 客户端 上传速率 u (kbps)
    
    public static double Tcs(int Num,int upload) {
        double t1=(1.0*F*Num/us);
        double t2=1.0*F/d;
        //System.out.println("Tcs: t1="+t1+",t2="+t2);
        return Math.max(t1,t2);
    }
    
    public static double Tp2p(int Num,int upload) {
        double t1=1.0*F/us;
        double t2=1.0*F/d;
        double t3=(1.0*F*Num/(us+Num*upload));
        //System.out.println("Tp2p: t1="+t1+",t2="+t2+",t3="+t3);
        return Math.max(t1, Math.max(t2, t3));
    }
    
    public static void calTime(int Num,int upload) {
        double TCS=Tcs(Num,upload);
        double TP2P=Tp2p(Num,upload);
        System.out.println("N="+Num+",u="+upload+"时,"+"Tcs="+TCS+"s, Tp2p="+TP2P+"s;");
    }
    
    public static void main(String[] args) {
        
        for(int i=0;i<N.length;i++) {
            int Num=N[i];
            for(int j=0;j<u.length;j++) {
                int upload=u[j];
                calTime(Num,upload);
            }
        }
        

    }

}

控制台输出:

N=10,u=500时,Tcs=7500.0s, Tp2p=7500.0s;
N=10,u=1000时,Tcs=7500.0s, Tp2p=7500.0s;
N=10,u=2000时,Tcs=7500.0s, Tp2p=7500.0s;
N=100,u=500时,Tcs=50000.0s, Tp2p=18750.0s;
N=100,u=1000时,Tcs=50000.0s, Tp2p=11538.461538461539s;
N=100,u=2000时,Tcs=50000.0s, Tp2p=7500.0s;
N=1000,u=500时,Tcs=500000.0s, Tp2p=28301.88679245283s;
N=1000,u=1000时,Tcs=500000.0s, Tp2p=14563.106796116504s;
N=1000,u=2000时,Tcs=500000.0s, Tp2p=7500.0s;

 

显而易见,N越大,与C/S模式相比,p2p模式分发文件用时更少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值