亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asimstd.cc

?? NS2網(wǎng)絡仿真軟件是目前最為流行的網(wǎng)絡仿真模擬軟件
?? CC
?? 第 1 頁 / 共 2 頁
字號:
										links[i].redrouter = new RedRouter((int)links[i].minth, 									   (int)links[i].maxth,									   links[i].pmax);					assert(links[i].red);									}				else{					links[i].red=0;				}								links[i].nflows = 0; // init the num of flows								continue;							}						assert(0);		}				// Check whether everything is all right 		assert (nConnections > 0);		assert (nLinks > 0);		for (int i=0; i<nConnections; ++i)			assert(nAdj[i] > 0);		  	}	double redFn(double minth, double pmin,		     double maxth, double pmax, double qlength){		assert(qlength>=0 && qlength<=1);		assert(pmax>=0 && pmax<=1);		assert(pmin>=0 && pmin<=1);		assert(minth>=0 && minth<=1);		assert(maxth>=0 && maxth<=1);		assert(maxth>=minth);		assert(pmax>pmin);			double t;		if(qlength<minth)			return 0;		if(qlength>maxth)			return 1;		return pmin + (qlength-minth)/(pmax-pmin);		}	void  CalcLinkStats(int flag = 0){			// flag = 1 means enable RED			// Calculate Link delays ... basically queuing delays			for(int i=0; i<nLinks; i++){					double rho = links[i].lambda/links[i].mu;			double qlength = Lq(rho,links[i].buffer);					links[i].qdelay = qlength/links[i].mu; 			links[i].drop = Pk(rho,links[i].buffer,links[i].buffer);			// cout << "Link " << i << " has drop prob = " << links[i].drop << endl;			// Special code for RED gateways			if(flag){				if(links[i].red){					double minth, maxth, pmin, pmax, delay,p;					minth = links[i].minth;					maxth = links[i].maxth;					pmin = links[i].pmin;					pmax = links[i].pmax;					// The RED approx.					p=(links[i].redrouter)->ComputeProbability(rho, delay);					links[i].drop = p;					qlength = Lq(rho*(1-p), links[i].buffer);					links[i].qdelay = delay;				}			}//			cout << i << sp << "rho = " << rho << " delay = " << links[i].qdelay << " and drop = " << links[i].drop << endl;		}		}	void CalcPerFlowStats(){ 		for(int i=0; i<nConnections; i++){			double d = 0, p = 1 ;			// Calculate drops and delays			for(int j=0;j<nAdj[i];j++){				d += 2*links[Adj[i][j]].prop + links[Adj[i][j]].qdelay;				p *= 1-links[Adj[i][j]].drop;			}			p = 1-p;			//cout << "Flow " << i << " has drop prob = " << p << endl; 					flows[i].no = nAdj[i];			flows[i].delay = d;			flows[i].drop = p;			flows[i].t = flows[i].p_tput;    					// p is the end2end drop prob			// If its normal flow, calculate Padhye's stuff			// If its short flow, use our approximations			// Nothing more							if(flows[i].is_sflow==1){				// If k flows come and each each flow has n packets to 				// send then 				double t = (flows[i].slambda*flows[i].snopkts);				flows[i].p_tput = t/(1-p);			}			else if(flows[i].is_sflow==2){				// For CBR, dont divide by 1-p unlike short flows.				// If rate is x and prob is p, net goodput is x(1-p)				flows[i].p_tput = flows[i].slambda*(1-p);				// cout << "cbr stuff - tput = " << flows[i].p_tput << endl;			}			else{				// regular bulk TCP connections, Padhye et. al.				if(!p){				// cout << "Oops, something wrong";				}				flows[i].p_tput = padhye(d,p);			}					// cout << "connection " << sp << i << sp << d << sp << p; 			//cout << sp << flows[i].p_tput << endl;						}	}	void PrintData(){		for(int i=0;i<nLinks;i++){			cout << i << sp << links[i].lambda << sp << links[i].mu;			cout << sp << links[i].buffer << endl;		}	}	void PrintResults(){			for(int i=0;i<nLinks;i++){			printf("l %d qdel %.5lf drop %.5lf lam %.3lf\n", i+1, links[i].qdelay, links[i].drop,links[i].lambda);		}			for(int i=0; i<nConnections; i++){			printf("c %d gput %.5lf drop %.5lf e2edel %.5lf\n", i+1,			       flows[i].p_tput,			       flows[i].drop,			       flows[i].delay);		}		}	void UpdateHelper(int flag=0){		// if flag = 1 then update only when link is unscaled as of now		// if flag = 0 then do the usual update 		for(int i=0; i<nLinks; i++){			links[i].tlambda=0;		}		for(int i=0; i<nConnections; i++){			if(!flag || !flows[i].scaled) 				for(int j=0;j<nAdj[i];j++){					if(flows[i].is_sflow==2){						// cbr flow						links[Adj[i][j]].tlambda += flows[i].slambda*(1-links[Adj[i][j]].drop);						//cout << "cbr flow " << i << " adding " << flows[i].slambda*(1-links[Adj[i][j]].drop)						//    << " to link " << j << " tlam = " << links[Adj[i][j]].tlambda << endl;					}					else						links[Adj[i][j]].tlambda += flows[i].p_tput;				}			//    cout << flows[i].p_tput << "\n";		}			}	void Update(int niter){		UpdateHelper();				for(int i=0; i<nLinks; i++){			links[i].plambda = links[i].lambda;			double t;			double tk=links[i].mu*(1.05)+5;					if(niter){				if(links[i].tlambda>tk)				//t = pow((sqrt(links[i].lambda)+sqrt(links[i].mu+5))/2,2);					t = ((links[i].lambda)+tk)/2;				// t = exp((log(links[i].lambda)+log(links[i].mu+5))/2);				else				//t = pow((sqrt(links[i].tlambda)+sqrt(links[i].lambda))/2,2);					t= ((links[i].tlambda)+(links[i].lambda))/2;				// t = exp((log(links[i].tlambda)+log(links[i].lambda))/2);			}			else t = links[i].tlambda;			links[i].lambda = t; // Update the lambda ..........		}	}	int allscaled(){		//cout << nConnections;		for(int i=0; i<nConnections; i++)			if(!flows[i].is_sflow && !flows[i].scaled){				//cout << "Connection " << i << " not scaled as yet\n";				return 0;			}		cout << "All are scaled\n";		return 1;	}  	void newupdate(int niter){		// 1st init all unscaled tputs and cap		for (int i=0;i<nLinks;i++){			links[i].uc = links[i].mu*(1.05);			links[i].utput = 0;		}		// calc all the unscaled tputs and C set all short flows 		// to be scaled already 		for(int i=0; i<nConnections; i++){			if(flows[i].is_sflow)				flows[i].scaled = 1;			else 				flows[i].scaled = 0;			for(int j=0;j<nAdj[i];j++){				if(flows[i].is_sflow)					links[Adj[i][j]].uc -= flows[i].p_tput;				else					links[Adj[i][j]].utput += flows[i].p_tput;			}		}		//for(int i =0; i<nLinks; i++ ){			//cout << i << sp << links[i].uc << sp << links[i].utput << endl;		//}		double maxgamma; // most congested link		int bneck;		double t;		bneck = -1;		maxgamma = 0;		for(int i=0; i<nLinks; i++){			if(links[i].uc){				t=links[i].utput/links[i].uc;				if(t > maxgamma){					bneck = i;					maxgamma = t;				}			}		}    		while(bneck+1){			//cout << "bneck = " << bneck << sp << links[bneck].uc << sp << links[bneck].utput << sp << maxgamma << sp << links[bneck].nflows <<endl;			for(int i=0; i<links[bneck].nflows; i++){				// For all the connections passing through this link				int t = links[bneck].theflows[i]; // get a connection id				//     cout << i<< sp << t << sp ;				// Now reduce its p_tput iff its not a short flow				// For short flows we dont do scaling				if(!flows[t].is_sflow && !flows[t].scaled){					flows[t].p_tput /= maxgamma;				//cout << "Flow " << t << " getting scaled to  << " << flows[t].p_tput;					flows[t].scaled = 1; // we have scaled this flow already					for(int j=0;j<nAdj[t];j++){						// subtract this scaled throughout from all teh links that						// have this flow. 						links[Adj[t][j]].uc -= flows[t].p_tput;						links[Adj[t][j]].utput -= flows[t].p_tput*maxgamma;						// cout << sp << Adj[i][j];					}				//cout << endl;				}			}    			//cout << links[bneck].uc << sp << links[bneck].utput << endl;    			links[bneck].uc = 0;			bneck = -1;			maxgamma = 0;			for(int i=0; i<nLinks; i++){				if(links[i].uc){					t=links[i].utput/links[i].uc;					if(t > maxgamma){						bneck = i;						maxgamma = t;					}				}			} 		}		Update(niter);	}	asim(){		//cout << "Reached here\n";	}};int main(int argc, char **argv) {	int niter = 0;	// error if usage is wrong 		   	if (argc != 2) {		fprintf(stderr,"Usage: %s  <InputFile>\n", argv[0]);		exit(-1); 	}		asim sim;	sim.GetInputs(argv[1]);	//sim.PrintResults();	//cout << "Read the input .... \n";	for(int i=0; i<3; i++){		sim.CalcLinkStats(1);		//cout << "Calculated link delays ... \n";		sim.CalcPerFlowStats();		//cout << "Calculated per flow delays ... \n";		//cout << " ------------------------------\n";		sim.newupdate(niter);		//sim.PrintResults();		//cout << " ------------------------------\n"; 	}	sim.PrintResults();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲电影在线| 国产a区久久久| 欧美日韩精品一区二区三区| 亚洲午夜久久久久久久久电影院| 91成人看片片| 午夜精品视频在线观看| 日韩免费视频一区二区| 国产美女一区二区三区| 国产欧美日韩激情| 99re这里都是精品| 亚洲一区二区三区美女| 91精品国产一区二区三区 | 欧美美女黄视频| 日韩av在线播放中文字幕| 久久影音资源网| av在线综合网| 婷婷开心久久网| 欧美精品一区二区三区视频| 丰满岳乱妇一区二区三区| 一区二区三区自拍| 欧美变态口味重另类| 成人免费高清在线观看| 亚洲成人高清在线| 久久综合久久综合久久| 91女人视频在线观看| 日本一不卡视频| 国产精品国产自产拍高清av王其| 欧美日韩高清影院| 成人免费av资源| 蜜桃免费网站一区二区三区| 国产精品素人视频| 欧美一卡2卡三卡4卡5免费| 国产aⅴ精品一区二区三区色成熟| 亚洲精品亚洲人成人网| 精品国产乱码久久| 欧美日韩三级一区| 国产91清纯白嫩初高中在线观看| 一区二区三区美女视频| 久久婷婷综合激情| 欧美曰成人黄网| 国产盗摄一区二区| 首页国产欧美久久| 亚洲丝袜自拍清纯另类| 精品国产一区a| 欧美网站一区二区| 成人av在线播放网站| 另类的小说在线视频另类成人小视频在线 | 色琪琪一区二区三区亚洲区| 蜜臀av国产精品久久久久| 亚洲欧美日韩一区二区| 国产亚洲欧洲一区高清在线观看| 精品视频全国免费看| 色哟哟国产精品免费观看| 国产一区二区视频在线| 天天综合网天天综合色 | 亚洲男人的天堂一区二区| 精品国产一区二区在线观看| 欧美日高清视频| 日韩精品中午字幕| 色噜噜狠狠成人中文综合| 国产91丝袜在线播放0| 寂寞少妇一区二区三区| 日韩中文字幕麻豆| 亚洲国产成人porn| 夜夜嗨av一区二区三区| 亚洲天堂精品在线观看| 亚洲欧洲三级电影| 国产精品久久久久久久久动漫| 2023国产精品| 精品少妇一区二区三区在线视频| 欧美日韩免费观看一区二区三区 | 一本色道久久综合亚洲91| 高清国产一区二区三区| 国产伦理精品不卡| 国产一区二区三区综合| 久久66热re国产| 老司机精品视频线观看86| 日本欧美大码aⅴ在线播放| 五月天久久比比资源色| 婷婷中文字幕一区三区| 首页欧美精品中文字幕| 免费成人小视频| 精品一区二区三区在线观看| 韩国精品主播一区二区在线观看| 久草精品在线观看| 国产999精品久久| 本田岬高潮一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国内精品伊人久久久久av一坑| 久久精品国产一区二区三区免费看| 蜜桃av一区二区三区| 久久国产剧场电影| 国产福利一区二区三区在线视频| 日韩欧美激情一区| 久久综合中文字幕| 国产精品乱人伦| 一区二区三区精品在线| 性感美女久久精品| 精品中文字幕一区二区| 粉嫩欧美一区二区三区高清影视| av一本久道久久综合久久鬼色| 91色乱码一区二区三区| 在线不卡a资源高清| 精品国内二区三区| 国产精品久久毛片a| 亚洲午夜免费视频| 六月婷婷色综合| 成人av电影在线播放| 欧美在线不卡视频| 久久亚洲精品小早川怜子| 国产精品久久久久7777按摩| 亚洲第一电影网| 国产精品一区二区在线播放| 色悠悠久久综合| 欧美精品九九99久久| 国产色婷婷亚洲99精品小说| 一区二区在线观看视频在线观看| 日本中文一区二区三区| 成人国产一区二区三区精品| 欧美日韩综合不卡| 国产性色一区二区| 亚洲在线免费播放| 国产一区二区0| 欧美无砖砖区免费| 中文无字幕一区二区三区| 亚洲高清视频在线| 成人激情小说网站| 日韩三级在线免费观看| a级精品国产片在线观看| 91 com成人网| 1024成人网色www| 国内精品第一页| 欧美电影在线免费观看| 中文字幕在线观看一区二区| 毛片av一区二区| 欧美日韩久久久| 国产精品乱码久久久久久| 久久国产精品99久久人人澡| 色88888久久久久久影院野外| 久久久久国产精品麻豆 | 日韩成人精品在线观看| 色婷婷综合久久久中文一区二区| 精品久久久网站| 亚洲成人先锋电影| 91麻豆国产精品久久| 国产欧美精品在线观看| 久久99久久99| 91精品国产91综合久久蜜臀| 亚洲精品日韩一| 国产成人一级电影| 精品国产乱码久久久久久牛牛| 午夜一区二区三区在线观看| 91色乱码一区二区三区| 一区精品在线播放| 国产成人在线视频播放| 久久嫩草精品久久久精品| 理论电影国产精品| 精品久久一二三区| 3d成人h动漫网站入口| 亚洲激情图片一区| 97久久精品人人爽人人爽蜜臀| 国产精品女同一区二区三区| 丁香啪啪综合成人亚洲小说| 久久网站热最新地址| 九一九一国产精品| 欧美精品一区二区三区蜜桃 | 欧美日韩黄色影视| 亚洲一区二区3| 欧美视频一区二区三区四区 | 婷婷国产在线综合| 欧美日韩一区二区三区免费看 | 亚洲色图视频网| 91色在线porny| 亚洲午夜激情av| 欧美日韩成人激情| 视频一区视频二区中文| 欧美日韩国产中文| 琪琪一区二区三区| 精品国产乱码久久久久久1区2区 | 欧美一级日韩免费不卡| 日韩激情在线观看| 日韩三级视频在线看| 韩国一区二区视频| 国产精品人妖ts系列视频| av午夜一区麻豆| 偷偷要91色婷婷| 久久综合网色—综合色88| 91精品国产福利| 国产老肥熟一区二区三区| 国产精品久久久久毛片软件| 色婷婷av一区二区三区软件| 亚洲一区二区三区在线看| 日韩一区国产二区欧美三区| 国产成人自拍网| 亚洲美女电影在线| 日韩精品自拍偷拍| 成人av先锋影音| 亚洲观看高清完整版在线观看| 日韩欧美视频在线| aaa亚洲精品|