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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? scoreboard.cc

?? Ns2 TCP 協(xié)議改進(jìn) 版本 提高goodput
?? CC
字號(hào):
/* -*-	Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- *//* * Copyright (c) 1996 The Regents of the University of California. * All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: * 	This product includes software developed by the Network Research * 	Group at Lawrence Berkeley National Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used *    to endorse or promote products derived from this software without *    specific prior written permission. *  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *//* 9/96 Pittsburgh Supercomputing Center *      UpdateScoreBoard, CheckSndNxt, MarkRetran modified for fack *//*  A quick hack version of the scoreboard  */#include <stdlib.h>#include <stdio.h>#include "scoreboard.h"#include "tcp.h"#define ASSERT(x) if (!(x)) {printf ("Assert SB failed\n"); exit(1);}#define ASSERT1(x) if (!(x)) {printf ("Assert1 SB (length)\n"); exit(1);}#define SBNI SBN[i%sbsize_]// last_ack = TCP last ackint ScoreBoard::UpdateScoreBoard (int last_ack, hdr_tcp* tcph){	int i, sack_index, sack_left, sack_right;	int retran_decr = 0;		changed_ = 0;				//  Advance the left edge of the block.	if (length_ && SBN[first_%sbsize_].seq_no_ <= last_ack) {		for (i=SBN[first_%sbsize_].seq_no_; i<=last_ack; i++) {			//  Advance the ACK			if (SBNI.seq_no_ <= last_ack) {				ASSERT(first_ == i);				first_ = (first_+1);				length_--;				ASSERT1(length_ >= 0);				SBNI.ack_flag_ = 1;				SBNI.sack_flag_ = 1;				if (SBNI.retran_) {					SBNI.retran_ = 0;					SBNI.snd_nxt_ = 0;					retran_decr++;				}				changed_++;				if (length_==0) 					break;			}		}	}	//  If there is no scoreboard, create one.	if (length_ == 0 && tcph->sa_length()) {		i = last_ack+1;		SBNI.seq_no_ = i;		SBNI.ack_flag_ = 0;		SBNI.sack_flag_ = 0;		SBNI.retran_ = 0;		SBNI.snd_nxt_ = 0;		first_ = i;		length_++;		if (length_ >= sbsize_) {			printf ("Error, scoreboard too large (increase sbsize_ for more space)\n");			exit(1);		}		changed_++;	}		for (sack_index=0; sack_index < tcph->sa_length(); sack_index++) {		sack_left = tcph->sa_left(sack_index);		sack_right = tcph->sa_right(sack_index);				//  Create new entries off the right side.		if (sack_right > SBN[(first_+length_+sbsize_-1)%sbsize_].seq_no_) {			// Resize the scoreboard if it is going to overrun the length			while((sack_right - last_ack) >= sbsize_ -1 ){				resizeSB(sbsize_*2);			}			//  Create new entries			for (i = SBN[(first_+length_+sbsize_-1)%sbsize_].seq_no_+1; i<sack_right; i++) {				SBNI.seq_no_ = i;				SBNI.ack_flag_ = 0;				SBNI.sack_flag_ = 0;				SBNI.retran_ = 0;				SBNI.snd_nxt_ = 0;				length_++;				if (length_ >= sbsize_) {					fprintf(stderr, "ERROR: Scoreboard got too large!!!\n");					fprintf(stderr, " SBN[first (mod) sbsize_]: %i, sack_right: %i length_: %i\n", SBN[first_%sbsize_].seq_no_,sack_right , length_);					fprintf(stderr, "last_ack: %i SBN[(first_+length_+sbsize_-1) (mod) sbsize_].seq_no_: %i, sbsize_: %i\n", last_ack, SBN[(first_+length_+sbsize_-1)%sbsize_].seq_no_ , sbsize_); 					exit(1);				}				changed_++;			}		}				for (i=SBN[(first_)%sbsize_].seq_no_; i<sack_right; i++) {			//  Check to see if this segment is now covered by the sack block			if (SBNI.seq_no_ >= sack_left && SBNI.seq_no_ < sack_right) {				if (! SBNI.sack_flag_) {					SBNI.sack_flag_ = 1;					changed_++;				}				if (SBNI.retran_) {					SBNI.retran_ = 0;					retran_decr++;				}			}		}	}	return (retran_decr);}int ScoreBoard::CheckSndNxt (hdr_tcp* tcph){	int i, sack_index, sack_left, sack_right;	int force_timeout = 0;	for (sack_index=0; sack_index < tcph->sa_length(); sack_index++) {		sack_left = tcph->sa_left(sack_index);		sack_right = tcph->sa_right(sack_index);		for (i=SBN[(first_)%sbsize_].seq_no_; i<sack_right; i++) {			//  Check to see if this segment's snd_nxt_ is now covered by the sack block			if (SBNI.retran_ && SBNI.snd_nxt_ < sack_right) {				// the packet was lost again				SBNI.retran_ = 0;				SBNI.snd_nxt_ = 0;				force_timeout = 1;			}		}	}	return (force_timeout);}void ScoreBoard::ClearScoreBoard(){	length_ = 0;}/* * GetNextRetran() returns "-1" if there is no packet that is *   not acked and not sacked and not retransmitted. */int ScoreBoard::GetNextRetran()	// Returns sequence number of next pkt...{	int i;	if (length_) {		for (i=SBN[(first_)%sbsize_].seq_no_; 		     i<SBN[(first_)%sbsize_].seq_no_+length_; i++) {			if (!SBNI.ack_flag_ && !SBNI.sack_flag_ && !SBNI.retran_) {				return (i);			}		}	}	return (-1);}/* * GetNextUnacked returns sequence number of next unacked pkt, * starting with seqno. * Returns -1 if there is no unacked packet in that range. */int ScoreBoard::GetNextUnacked (int seqno){	int i;	if (!length_) {		return (-1);	} else if (seqno < SBN[(first_)%sbsize_].seq_no_ ||		seqno >= SBN[(first_)%sbsize_].seq_no_+length_) {		return (-1);	} else {		for (i=seqno; i<SBN[(first_)%sbsize_].seq_no_+length_; i++) {			if (!SBNI.ack_flag_ && !SBNI.sack_flag_) {				return (i);			}		}	}	return (-1);}void ScoreBoard::MarkRetran (int retran_seqno, int snd_nxt){	SBN[retran_seqno%sbsize_].retran_ = 1;	SBN[retran_seqno%sbsize_].snd_nxt_ = snd_nxt;}void ScoreBoard::MarkRetran (int retran_seqno){	SBN[retran_seqno%sbsize_].retran_ = 1;}void ScoreBoard::resizeSB(int sz){	ScoreBoardNode *newSBN = new ScoreBoardNode[sz+1];	if(!newSBN){		fprintf(stderr, "Unable to allocate new ScoreBoardNode[%i]\n", sz);		exit(1);	}	for(int i = SBN[first_%sbsize_].seq_no_;	    i<=SBN[(first_)%sbsize_].seq_no_+length_; i++) {		newSBN[i%sz] = SBN[i%sbsize_];	}	delete[] SBN;	SBN = newSBN;	sbsize_ = sz;}void ScoreBoard::Dump(){       int i;       printf("SB len: %d  ", length_);       if (length_) {               for (i=SBN[(first_)%sbsize_].seq_no_;                     i<SBN[(first_)%sbsize_].seq_no_+length_; i++) {                       printf("seq: %d  [ ", i);                       if(SBNI.ack_flag_)                               printf("A");                       if(SBNI.sack_flag_)                               printf("S");                       if(SBNI.retran_)                               printf("R");                       printf(" ]");               }       }       printf("\n");}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费相片| 国产精品色婷婷| 国产成人av网站| 亚洲一区二区在线播放相泽| 精品久久久久久久人人人人传媒| 91视频在线看| 激情六月婷婷综合| 亚洲午夜羞羞片| 国产精品美女视频| 精品国产一区二区在线观看| 欧美少妇xxx| eeuss影院一区二区三区| 另类小说综合欧美亚洲| 一区二区在线免费观看| 国产欧美视频一区二区三区| 3d成人h动漫网站入口| 99re66热这里只有精品3直播 | 亚洲同性同志一二三专区| 日韩视频在线你懂得| 91高清视频免费看| 99久久精品免费| 国产91精品久久久久久久网曝门| 久久99精品久久只有精品| 五月天激情综合| 一区二区三区免费观看| 亚洲欧美在线aaa| 国产精品福利一区二区| 国产午夜精品久久久久久久| xfplay精品久久| 欧美一区二区日韩| 欧美电影一区二区| 欧美日韩中文字幕一区二区| 91福利国产成人精品照片| 91视频国产观看| 色综合中文综合网| 久久97超碰国产精品超碰| 日韩精品一二三| 五月天丁香久久| 天天影视涩香欲综合网| 午夜精品一区在线观看| 亚洲第一精品在线| 五月婷婷色综合| 首页国产欧美日韩丝袜| 视频一区视频二区中文字幕| 奇米综合一区二区三区精品视频| 日韩成人一区二区三区在线观看| 首页亚洲欧美制服丝腿| 美腿丝袜亚洲色图| 久久se精品一区精品二区| 加勒比av一区二区| 国产精品一级片在线观看| 欧美三级午夜理伦三级中视频| 一本色道久久加勒比精品| 在线亚洲一区二区| 欧美伦理视频网站| 精品福利视频一区二区三区| 久久久高清一区二区三区| 中文字幕成人网| 亚洲一区二区三区四区在线观看| 三级不卡在线观看| 久99久精品视频免费观看| 国产成人在线色| 日本韩国欧美一区| 制服丝袜一区二区三区| 久久夜色精品国产噜噜av| 国产精品久久久久一区二区三区| 亚洲免费观看在线观看| 丝袜亚洲另类欧美| 国产一区久久久| 99精品1区2区| 欧美一区二视频| 国产农村妇女毛片精品久久麻豆 | 丁香婷婷综合网| 欧美主播一区二区三区| 日韩欧美一二三区| 亚洲国产精品ⅴa在线观看| 一二三四社区欧美黄| 六月丁香婷婷色狠狠久久| 成人不卡免费av| 欧美精品精品一区| 国产拍揄自揄精品视频麻豆| 一区二区三区四区在线| 卡一卡二国产精品| 99久久国产综合精品女不卡 | 中文字幕在线一区| 爽好久久久欧美精品| 国产精品羞羞答答xxdd| 欧美网站一区二区| 久久精品视频一区二区三区| 一区二区三区精品在线观看| 经典一区二区三区| 欧洲精品一区二区| 国产亚洲一区二区三区四区 | 久久精品噜噜噜成人88aⅴ| 色综合久久久久| 精品sm在线观看| 亚洲成a人v欧美综合天堂下载 | 国产999精品久久久久久绿帽| 欧美日韩精品一区二区三区四区 | 亚洲最快最全在线视频| 激情五月激情综合网| 欧美日韩免费电影| 国产精品国产三级国产aⅴ入口| 日本视频中文字幕一区二区三区| www.成人在线| 久久蜜桃av一区精品变态类天堂| 亚洲成av人片观看| 91亚洲精华国产精华精华液| 欧美精品一区二区高清在线观看 | youjizz久久| 精品国产一区二区三区不卡| 五月天激情综合网| 欧美性极品少妇| ...xxx性欧美| 高清在线观看日韩| 久久这里只有精品视频网| 日产欧产美韩系列久久99| 欧美亚洲国产一区二区三区va| 亚洲人成网站在线| 成人视屏免费看| 久久精品在这里| 国产精品综合久久| www国产成人| 激情六月婷婷久久| 精品国产凹凸成av人网站| 丝袜脚交一区二区| 欧美精品乱码久久久久久按摩| 夜色激情一区二区| 欧美三级视频在线观看| 亚洲福利一二三区| 在线观看中文字幕不卡| 亚洲免费在线视频一区 二区| 成人国产精品免费观看视频| 欧美激情在线看| 成人午夜在线播放| 国产精品超碰97尤物18| 国产精品亚洲一区二区三区妖精| 久久综合999| 成人小视频在线| 成人免费在线视频| 色婷婷精品大视频在线蜜桃视频 | 日韩成人一级片| 日韩欧美一区中文| 久久91精品久久久久久秒播| www成人在线观看| 国产成人99久久亚洲综合精品| 欧美国产1区2区| av电影在线观看不卡| 亚洲精品免费在线| 欧美午夜宅男影院| 六月丁香婷婷久久| 国产女主播一区| 97se亚洲国产综合自在线不卡| 亚洲精品自拍动漫在线| 精品视频一区二区三区免费| 婷婷综合另类小说色区| 日韩免费高清电影| 国产福利视频一区二区三区| 国产精品乱码久久久久久| 色婷婷av久久久久久久| 午夜av区久久| 日本一区二区三区四区在线视频| 91麻豆swag| 日韩**一区毛片| 亚洲国产精品高清| 欧美影视一区在线| 精品无人区卡一卡二卡三乱码免费卡| 国产精品网站在线播放| 色94色欧美sute亚洲线路一ni| 日本不卡一区二区三区| 国产日韩欧美一区二区三区乱码 | 欧美日本在线播放| 国产主播一区二区三区| 亚洲欧美日韩人成在线播放| 欧美丰满一区二区免费视频 | 51精品国自产在线| 欧美一区永久视频免费观看| 国产另类ts人妖一区二区| 中文字幕佐山爱一区二区免费| 91精品国产手机| 91在线国内视频| 另类成人小视频在线| 中文字幕一区二区三区在线观看| 91麻豆精品国产91久久久使用方法| 国产麻豆精品在线观看| 亚洲成人7777| 中文字幕在线观看一区二区| 欧美大片在线观看| 91麻豆自制传媒国产之光| 伦理电影国产精品| 亚洲一区二区三区四区五区中文| 国产调教视频一区| 911精品产国品一二三产区| av一本久道久久综合久久鬼色| 日韩精品电影在线观看| 亚洲欧美日韩系列| 中文字幕成人网| 久久青草欧美一区二区三区| 91精品国产综合久久国产大片| 97久久超碰精品国产|