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

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

?? antnet.cc.bak

?? 基于 NS2 的 AntNet 源代碼
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
	nsaddr_t next = rtable_.calc_next(addr(), ah->pkt_dst(), parent);	// if next hop is this node or parent node, dead end, release packet	if(next == addr() || next == parent) {		Packet::free(p);		return;	}		ch->next_hop() = next;	// set next hop node address in common header	ih->saddr() = addr();	// set source address in ip header	ih->daddr() = next;	// set destination address in ip header	if(DEBUG)		fprintf(stdout,"forwarding antnet packet from %d source %d dest %d next hop %d\n", addr(), ah->pkt_src(), ah->pkt_dst(), ih->daddr());	// send packet to next hop node	target_->recv(p);}///////////////////////////////////////////////////////////////////////////// Method to create backward ant packet/// called when forward ant reaches destination node//////////////////////////////////////////////////////////////////////////void Antnet::create_backward_ant_pkt(Packet* p) {	struct hdr_ip* ih = HDR_IP(p);	struct hdr_cmn* ch = HDR_CMN(p);	struct hdr_ant_pkt* ah = HDR_ANT_PKT(p);		// swap source and destination address	nsaddr_t temp = ah->pkt_src();	ah->pkt_src() = ah->pkt_dst();	ah->pkt_dst() = temp;		// retrieve last second entry in memory (last entry is this node)	int index = ah->pkt_mem_size() - 2;	ch->direction() = hdr_cmn::UP;	// chnge direction to backward Ant	ch->ptype() = PT_ANT;	// set packet type as Ant	ch->next_hop() = ah->pkt_memory_[index].node_addr;	// next hop as determined from memory	ih->saddr() = addr();	// source address	ih->daddr() = ch->next_hop();	// destination address		if(DEBUG)		fprintf(stdout,"creating backward antnet packet from %d source %d dest %d next hop %d\n", addr(), ah->pkt_src(), ah->pkt_dst(), ih->daddr());	// send backward ant packet	target_->recv(p);}///////////////////////////////////////////////////////////////////////////////////// Method to send backward ant packet to next hop node as determined from memory/// called when agent recieves a backward ant//////////////////////////////////////////////////////////////////////////////////void Antnet::backward_ant_pkt(Packet* p) {	struct hdr_ip* ih = HDR_IP(p);	struct hdr_cmn* ch = HDR_CMN(p);	struct hdr_ant_pkt* ah = HDR_ANT_PKT(p);		// find node previous to this node in memory	int index;	for(int i = ah->pkt_mem_size()-1; i >= 0; i--) {		if(ah->pkt_memory_[i].node_addr == addr()) {			index = i-1;			break;		}	}	// next hop node determined from memory	ch->next_hop() = ah->pkt_memory_[index].node_addr;	ch->direction() = hdr_cmn::UP;	// backward ant	ch->ptype() = PT_ANT;	// packet type = Ant	ih->saddr() = addr();	// source address	ih->daddr() = ch->next_hop();	// destination addres		if(DEBUG)		fprintf(stdout,"forwarding backward antnet packet from %d source %d dest %d next hop %d\n", addr(), ah->pkt_src(), ah->pkt_dst(), ih->daddr());	// send backward ant to next hop	target_->recv(p);}////////////////////////////////////////////////////////////////// Method to return size of observation window///////////////////////////////////////////////////////////////int Antnet::get_win_size(nsaddr_t dest) {	int count = 0;	window_t::iterator iterWin = window_.find(dest);	triptime_t win_tt = (*iterWin).second;	triptime_t::iterator itertt;	for(itertt = win_tt.begin(); itertt != win_tt.end(); itertt++) {		count++;	}	return count;}/////////////////////////////////////////////////////////////////////////////// Method to update traffic model and calculate reinforcement factor (r)./// Presently, constant value of r is used./// Value of r can be set form tcl script./// Hence, traffic model is not used and this method is not called.///////////////////////////////////////////////////////////////////////////void Antnet::update_traffic(Packet* p) {	//update mean, variance, best.	struct traffic_matrix temp_traffic;	nsaddr_t dest, next;	double tt, oldtt;	double oldvar;	double varsigma = VARSIGMA;		struct hdr_ant_pkt* ah = HDR_ANT_PKT(p);	int i;	for(i=0; ah->pkt_memory_[i].node_addr != addr(); i++);	double initialtt = ah->pkt_memory_[i].trip_time;	i++;	next = ah->pkt_memory_[i].node_addr;		for(int index = i; index < ah->pkt_mem_size(); index++) {							dest = ah->pkt_memory_[index].node_addr;		tt = ah->pkt_memory_[index].trip_time - initialtt;				/* update sample window */		window_t::iterator iterWin = window_.find(dest);		if(iterWin != window_.end()) {	// destination entry exists, add to it in window			(*iterWin).second.push_back(tt);		}		else {	// destination entry does not exist, add new dest entry to window			triptime_t win_tt;			win_tt.push_back(tt);			window_[dest] = win_tt;		}	}		/* update traffic */	for(int index = i; index < ah->pkt_mem_size(); index++) {				dest = ah->pkt_memory_[index].node_addr;		tt = ah->pkt_memory_[index].trip_time - initialtt;		/* find best trip time from this node to dest */		window_t::iterator iterWin = window_.find(dest);		triptime_t win_tt = (*iterWin).second;		triptime_t::iterator itertt = win_tt.begin();		double mintt = (*itertt);		for(; itertt != win_tt.end(); itertt++) {			if((*itertt) < mintt)				mintt = (*itertt);		}				/* update traffic */		state_t::iterator iterFind = state_.find(dest);		if(iterFind != state_.end()) {			// update existing entry			oldtt = (*iterFind).second.mean_tt;			(*iterFind).second.mean_tt = oldtt + varsigma * (tt - oldtt);			oldvar = (*iterFind).second.var_tt;			(*iterFind).second.var_tt = oldvar*oldvar + varsigma * ((tt - oldtt)*(tt - oldtt) -  oldvar*oldvar);			(*iterFind).second.best_tt = mintt;		}		else {			// add map entry			temp_traffic.mean_tt = tt;			temp_traffic.var_tt = tt;			temp_traffic.best_tt = mintt;			state_[dest] = temp_traffic;		}	}		/* find r and update pheromone */	for(int index = i; index < ah->pkt_mem_size(); index++) {			dest = ah->pkt_memory_[index].node_addr;		tt = ah->pkt_memory_[index].trip_time - initialtt;					/* find r */		double W_best = state_[dest].best_tt;		double I_inf = W_best;		double mu = state_[dest].mean_tt;		double sigma = sqrt(state_[dest].var_tt);		int w = get_win_size(dest);		double I_sup = mu + zee * (sigma/sqrt(w));		if(I_sup == I_inf && I_inf == tt)			r = 0.0;		else			r = c1*(W_best/tt) + c2 * ((I_sup - I_inf) / ((I_sup - I_inf) + (tt - I_inf) ));				if(DEBUG) {			printf("r = %f\n", r);		}	}}///////////////////////////////////////////////////////////// Method to update routing table//////////////////////////////////////////////////////////void Antnet::update_table(Packet* p) {		nsaddr_t dest, next;			struct hdr_ant_pkt* ah = HDR_ANT_PKT(p);	// ant header		// read node visited next to this node from memory	// this is the nieghbor node for which routing table will be updated	int i;	for(i=0; ah->pkt_memory_[i].node_addr != addr(); i++);	i++;	next = ah->pkt_memory_[i].node_addr;		if(DEBUG) {		fprintf(stdout,"updating ph at %d\n", addr());		fprintf(stdout,"next: %d\n",next);	}			nsaddr_t node_addr = addr();	N = get_num_neighbors(node_addr);		// routing table is updated for all the destination nodes that are visited after the neighbor node	// update pheromone value corresponding to neighbor node and destination nodes visited thereafter	for(int index = i; index < ah->pkt_mem_size(); index++) {		// read destination nodef rom memory		dest = ah->pkt_memory_[index].node_addr;		// update pheromone valu fro neighbor node and this destination node		rtable_.update(dest, next);			}}///////////////////////////////////////////////////////////// Method to initialize routing table//////////////////////////////////////////////////////////void Antnet::initialize_rtable() {	//NUM_NODES = num_nodes_x_ * num_nodes_y_;	NUM_NODES = num_nodes_;		// set number of nodes in topology (read from tcl script)	r = r_factor_;	// set reinforcement factor (read from tcl script)	nsaddr_t node_addr = addr();	int num_nb = get_num_neighbors(node_addr);	Node *nd = nd->get_node_by_address(addr());	// add destination entry for each node in topology	for(int i = 0; i < NUM_NODES; i++) {		if(addr() != i) {			// read list of neighbors			neighbor_list_node* nb = nd->neighbor_list_;			while(nb != NULL) {				// read node id of neighbor node				int neighb = nb->nodeid;				// initialize equal pheromone value to all neighbor links				double phvalue = 1.0/num_nb;				// add routing table entry				rtable_.add_entry(i, neighb, phvalue);				// iterate in neighbor list				nb = nb->next;			}		}	}	FILE *fp = fopen(file_rtable,"w");	fclose(fp);}///////////////////////////////////////////////////////////// Method to print neighbors of a node//////////////////////////////////////////////////////////voidAntnet::print_neighbors() {	nsaddr_t node_addr = addr();	fprintf(stdout,"addr: %d\tra_addr:%d\n",addr(), ra_addr());	Node *n = n->get_node_by_address(node_addr);	fprintf(stdout,"node id: %d\tnode address: %d\n", n->nodeid(), n->address());	fprintf(stdout,"Neighbors:\n");	neighbor_list_node* nb = n->neighbor_list_;	do {		int neigh = nb->nodeid;		printf("%d\n",neigh);		nb = nb->next;	}while(nb != NULL);}///////////////////////////////////////////////////////////// Method to add neighbors of a node/// Parameters: addresses of two neighbor nodes (n1, n2)/// We assume duplex links/// - Add n1 to neighbor list of n2/// - Add n2 to neighbor list of n1//////////////////////////////////////////////////////////voidAntnet::add_Neighbor(Node *n1, Node *n2) {	n1->addNeighbor(n2);	n2->addNeighbor(n1);}///////////////////////////////////////////////////////////// Method to reset Ant timer//////////////////////////////////////////////////////////void Antnet::reset_ant_timer() {	ant_timer_.resched(timer_ant_);}///////////////////////////////////////////////////////////// Method to handle Ant timer expire event//////////////////////////////////////////////////////////void Ant_timer::expire(Event *e) {	// generate forward ant	agent_->send_ant_pkt();	// reschedule timer	agent_->reset_ant_timer();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩在线a电影| 国产婷婷色一区二区三区在线| 蜜桃av噜噜一区二区三区小说| 综合久久久久久久| 精品国产一区二区三区av性色| 91美女蜜桃在线| 成人av网址在线观看| 美国精品在线观看| 亚洲第一综合色| 樱花草国产18久久久久| 国产三级一区二区| 2022国产精品视频| 欧美一级日韩一级| 欧美高清hd18日本| 欧美精品一卡二卡| 欧美日韩国产免费一区二区| 99re这里只有精品首页| 成人激情视频网站| 日本韩国一区二区三区| 成人白浆超碰人人人人| 国产成人精品免费看| 国产精品综合一区二区三区| 久久精品国产99国产| 韩国v欧美v日本v亚洲v| 久久成人精品无人区| 老司机午夜精品99久久| 麻豆91精品91久久久的内涵| 久久精品国产99国产| 国产在线一区二区| 国产成人免费视频网站高清观看视频| 久久99精品视频| 国产91丝袜在线18| 91麻豆国产精品久久| 欧美日韩一级大片网址| 欧美电影免费观看高清完整版在线 | 亚洲欧洲av色图| 亚洲地区一二三色| 激情文学综合丁香| 99re视频精品| 欧美videos中文字幕| 国产拍欧美日韩视频二区| 亚洲精品乱码久久久久久久久| 奇米精品一区二区三区四区| 国产精品一区免费视频| 91国偷自产一区二区使用方法| 日本久久电影网| 久久久亚洲高清| 亚洲成人tv网| 日韩精品一二三四| 国产成人免费视频网站| 制服.丝袜.亚洲.中文.综合| 亚洲欧美日韩成人高清在线一区| 丝袜美腿高跟呻吟高潮一区| 成人国产精品免费| 欧美精品一区二区三区蜜桃| 午夜视频一区二区| 91丨九色丨蝌蚪富婆spa| 久久一留热品黄| 日韩avvvv在线播放| 欧美性受极品xxxx喷水| 中文字幕一区二区视频| 国产精品中文有码| 欧美大胆人体bbbb| 同产精品九九九| 欧美三区在线观看| 一区二区免费在线| 色88888久久久久久影院按摩| 国产精品三级久久久久三级| 国产一区二区网址| 国产日韩综合av| 丁香一区二区三区| 国产日韩一级二级三级| 中文字幕电影一区| 日韩欧美视频一区| 亚洲一区二区三区四区五区黄 | 欧美精品一区二区三区蜜桃 | 91免费观看国产| 亚洲男人的天堂网| 8v天堂国产在线一区二区| 免费欧美在线视频| 国产三级精品三级| 色国产综合视频| 免费人成在线不卡| 欧美韩国日本不卡| 欧美欧美午夜aⅴ在线观看| 狠狠色丁香婷婷综合久久片| 国产欧美日韩激情| 69av一区二区三区| 国产成人啪午夜精品网站男同| 国产精品久久免费看| 欧美日韩高清在线| 成人激情动漫在线观看| 日本系列欧美系列| 中文字幕在线不卡一区| 欧美日韩一区高清| 成人综合婷婷国产精品久久蜜臀 | 国产精品一区二区三区乱码| 亚洲精品写真福利| 久久久久久99精品| 欧美私人免费视频| 成人国产精品免费观看视频| 麻豆精品一区二区av白丝在线| 国产精品嫩草久久久久| 日韩精品专区在线影院观看| 色婷婷av久久久久久久| 国产激情视频一区二区三区欧美 | 色狠狠桃花综合| 成人综合在线网站| 国产激情视频一区二区在线观看| 美洲天堂一区二卡三卡四卡视频 | 亚洲一区二区不卡免费| 在线综合+亚洲+欧美中文字幕| 一区二区三区在线观看视频| 欧美一区二区三区在线视频| 亚洲黄色av一区| 久久影院电视剧免费观看| 国产精品一区一区三区| 亚洲美女屁股眼交3| 中文字幕欧美一| 国产精品久久久久久亚洲毛片| 精品成人一区二区三区四区| 欧美自拍偷拍一区| 在线观看亚洲精品视频| 在线一区二区三区| 欧美亚洲国产怡红院影院| 一本到三区不卡视频| www.成人在线| 91精品办公室少妇高潮对白| 欧美亚一区二区| 欧美老肥妇做.爰bbww| 欧美性猛片aaaaaaa做受| 一本大道av伊人久久综合| 在线免费观看日韩欧美| 91精品国产色综合久久不卡电影| 日韩午夜精品视频| 日韩午夜中文字幕| 国产情人综合久久777777| 国产精品欧美综合在线| 亚洲影院在线观看| 激情六月婷婷久久| 91视频www| 日韩一区二区在线看片| 久久亚洲综合色一区二区三区| 国产女同互慰高潮91漫画| 亚洲男人电影天堂| 日韩精品乱码av一区二区| 国产精一品亚洲二区在线视频| 欧美视频一区二区| 精品国产免费人成电影在线观看四季| 日韩免费福利电影在线观看| 国产精品女人毛片| 性感美女极品91精品| 国产成人免费av在线| 欧美午夜在线一二页| 国产精品久久久久天堂| 日韩电影免费一区| 97精品久久久久中文字幕| 久久免费精品国产久精品久久久久| 亚洲精品伦理在线| 成人av网在线| 久久综合九色综合欧美亚洲| 午夜电影网一区| 欧美视频一区二区| 亚洲欧洲在线观看av| 国产a区久久久| 欧美一级高清片在线观看| 亚洲一二三专区| 91麻豆国产香蕉久久精品| 国产精品午夜免费| 成人av中文字幕| 成人欧美一区二区三区1314| 国产剧情av麻豆香蕉精品| 欧美mv日韩mv| 蜜臀av性久久久久蜜臀aⅴ| 欧美高清一级片在线| 青青草国产精品97视觉盛宴 | 欧美一区二区在线观看| 亚洲成a人v欧美综合天堂下载| 色哟哟欧美精品| 亚洲国产成人tv| 国产精品主播直播| 91 com成人网| 麻豆91精品91久久久的内涵| 欧美一区二区三区免费在线看| 久久国产精品区| 国产亚洲欧洲997久久综合| 国产激情精品久久久第一区二区| 日本一区二区三区视频视频| 99久久精品情趣| 一区二区久久久久久| 欧美剧情片在线观看| 黄一区二区三区| 亚洲精品免费在线观看| 欧美一区二区视频在线观看2022| 麻豆精品视频在线观看视频| 国产亚洲制服色| 色婷婷亚洲综合| 美腿丝袜亚洲色图| 综合久久给合久久狠狠狠97色| 91麻豆精品国产91久久久资源速度 |