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

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

?? tcp.h~

?? Ns2 TCP 協議改進 版本 提高goodput
?? H~
?? 第 1 頁 / 共 2 頁
字號:
/* -*-	Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ /* * Copyright (c) 1991-1997 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 Computer Systems *	Engineering Group at Lawrence Berkeley 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. * * @(#) $Header: /nfs/jade/vint/CVSROOT/ns-2/tcp/tcp.h,v 1.121 2005/06/20 16:30:30 sfloyd Exp $ (LBL) */#ifndef ns_tcp_h#define ns_tcp_h#include "agent.h"#include "packet.h"//class EventTrace;struct hdr_tcp {#define NSA 3	double ts_;             /* time packet generated (at source) */	double ts_echo_;        /* the echoed timestamp (originally sent by	                           the peer) */	int seqno_;             /* sequence number */	int reason_;            /* reason for a retransmit */	int sack_area_[NSA+1][2];	/* sack blocks: start, end of block */	int sa_length_;         /* Indicate the number of SACKs in this  *	                         * packet.  Adds 2+sack_length*8 bytes   */ 	int ackno_;             /* ACK number for FullTcp */	int hlen_;              /* header len (bytes) for FullTcp */	int tcp_flags_;         /* TCP flags for FullTcp */	int last_rtt_;		/* more recent RTT measurement in ms, */				/*   for statistics only */	static int offset_;	// offset for this header	inline static int& offset() { return offset_; }	inline static hdr_tcp* access(Packet* p) {		return (hdr_tcp*) p->access(offset_);	}	/* per-field member functions */	double& ts() { return (ts_); }	double& ts_echo() { return (ts_echo_); }	int& seqno() { return (seqno_); }	int& reason() { return (reason_); }	int& sa_left(int n) { return (sack_area_[n][0]); }	int& sa_right(int n) { return (sack_area_[n][1]); }	int& sa_length() { return (sa_length_); }	int& hlen() { return (hlen_); }	int& ackno() { return (ackno_); }  	int& flags() { return (tcp_flags_); }	int& last_rtt() { return (last_rtt_); }};/* these are used to mark packets as to why we xmitted them */#define TCP_REASON_TIMEOUT	0x01#define	TCP_REASON_DUPACK	0x02#define	TCP_REASON_RBP		0x03   // used only in tcp-rbp.cc#define TCP_REASON_PARTIALACK   0x04/* these are reasons we adjusted our congestion window */#define	CWND_ACTION_DUPACK	1	// dup acks/fast retransmit#define	CWND_ACTION_TIMEOUT	2	// retransmission timeout#define	CWND_ACTION_ECN		3	// ECN bit [src quench if supported]#define CWND_ACTION_EXITED      4       // congestion recovery has ended					// (when previously CWND_ACTION_DUPACK)/* these are bits for how to change the cwnd and ssthresh values */#define	CLOSE_SSTHRESH_HALF	0x00000001#define	CLOSE_CWND_HALF		0x00000002#define	CLOSE_CWND_RESTART	0x00000004#define	CLOSE_CWND_INIT		0x00000008#define	CLOSE_CWND_ONE		0x00000010#define CLOSE_SSTHRESH_HALVE	0x00000020#define CLOSE_CWND_HALVE	0x00000040#define THREE_QUARTER_SSTHRESH  0x00000080#define CLOSE_CWND_HALF_WAY 	0x00000100#define CWND_HALF_WITH_MIN	0x00000200#define TCP_IDLE		0x00000400#define NO_OUTSTANDING_DATA     0x00000800/* * tcp_tick_: * default 0.1, * 0.3 for 4.3 BSD,  * 0.01 for new window algorithms, */#define NUMDUPACKS 3		/* This is no longer used.  The variable */				/* numdupacks_ is used instead. */#define TCP_MAXSEQ 1073741824   /* Number that curseq_ is set to for */				/* "infinite send" (2^30)            */#define TCP_TIMER_RTX		0#define TCP_TIMER_DELSND	1#define TCP_TIMER_BURSTSND	2#define TCP_TIMER_DELACK	3#define TCP_TIMER_Q         4#define TCP_TIMER_RESET        5 class TcpAgent;class RtxTimer : public TimerHandler {public: 	RtxTimer(TcpAgent *a) : TimerHandler() { a_ = a; }protected:	virtual void expire(Event *e);	TcpAgent *a_;};class DelSndTimer : public TimerHandler {public: 	DelSndTimer(TcpAgent *a) : TimerHandler() { a_ = a; }protected:	virtual void expire(Event *e);	TcpAgent *a_;};class BurstSndTimer : public TimerHandler {public: 	BurstSndTimer(TcpAgent *a) : TimerHandler() { a_ = a; }protected:	virtual void expire(Event *e);	TcpAgent *a_;};/* * Variables for HighSpeed TCP. *///int *hs_win_;		// array of cwnd values//int *hs_increase_;	// array of increase values//double *hs_decrease_;	// array of decrease valuesstruct hstcp {	double low_p;  // low_p	double dec1;	// for computing the decrease parameter	double dec2;    // for computing the decrease parameter	double p1;	// for computing p        double p2;	// for computing p	/* The next three parameters are for CPU overhead, for computing */	/*   the HighSpeed parameters less frequently.  A better solution */ 	/*   might be just to have a look-up array.  */	double cwnd_last_;	/* last cwnd for computed parameters */        double increase_last_;	/* increase param for cwnd_last_ */	hstcp() : low_p(0.0), dec1(0.0), dec2(0.0), p1(0.0), p2(0.0),	    cwnd_last_(0.0), increase_last_(0.0) { }};class TcpAgent : public Agent {public:	TcpAgent();	~TcpAgent() {free(tss);}        virtual void recv(Packet*, Handler*);	virtual void timeout(int tno);	virtual void timeout_nonrtx(int tno);	int command(int argc, const char*const* argv);	virtual void sendmsg(int nbytes, const char *flags = 0);	void trace(TracedVar* v);	virtual void advanceby(int delta);protected:	virtual int window();	virtual double windowd();	void print_if_needed(double memb_time);	void traceAll();	virtual void traceVar(TracedVar* v);	virtual int headersize();   // a tcp header	virtual void delay_bind_init_all();	virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer);	TracedInt t_seqno_;	/* sequence number */	/*	 * State encompassing the round-trip-time estimate.	 * srtt and rttvar are stored as fixed point;	 * srtt has 3 bits to the right of the binary point, rttvar has 2.	 */	TracedInt t_rtt_;      	/* round trip time */	TracedInt t_srtt_;     	/* smoothed round-trip time */	TracedInt t_rttvar_;   	/* variance in round-trip time */	TracedInt t_backoff_;	/* current multiplier, 1 if not backed off */	#define T_RTT_BITS 0	int T_SRTT_BITS;        /* exponent of weight for updating t_srtt_ */	int srtt_init_;		/* initial value for computing t_srtt_ */	int T_RTTVAR_BITS;      /* exponent of weight for updating t_rttvar_ */ 	int rttvar_exp_;        /* exponent of multiple for t_rtxcur_ */	int rttvar_init_;       /* initial value for computing t_rttvar_ */	double t_rtxcur_;	/* current retransmit value */	double rtxcur_init_;    /* initial value for t_rtxcur_ */	virtual void rtt_init();	virtual double rtt_timeout();	/* provide RTO based on RTT estimates */	virtual void rtt_update(double tao);	/* update RTT estimate */	virtual void rtt_backoff();		/* double multiplier */	/* End of state for the round-trip-time estimate. */	/* Timestamps. */	double ts_peer_;        /* the most recent timestamp the peer sent */	double ts_echo_;        /* the most recent timestamp the peer echoed */	int ts_option_size_;    // header bytes in a ts option        double *tss;            // To store sent timestamps, with bugfix_ts_        int tss_size_;          // Current capacity of tss	int ts_option_;		/* use RFC1323-like timestamps? */	/* End of timestamps. */	/* connection and packet dynamics */	virtual void output(int seqno, int reason = 0);	virtual void send_much(int force, int reason, int maxburst = 0);	virtual void newtimer(Packet*);	virtual void dupack_action();		/* do this on dupacks */	virtual void send_one();		/* do this on 1-2 dupacks */	double linear(double x, double x_1, double y_1, double x_2, double y_2);	/* the "linear" function is for experimental highspeed TCP */	void opencwnd();	void slowdown(int how);			/* reduce cwnd/ssthresh */	void ecn(int seqno);		/* react to quench */	virtual void set_initial_window();	/* set IW */	double initial_window();		/* what is IW? */	void reset();	void newack(Packet*);	void tcp_eln(Packet *pkt); /* reaction to ELN (usually wireless) */	void finish(); /* called when the connection is terminated */	void reset_qoption();	/* for QOption with EnblRTTCtr_ */	void rtt_counting();	/* for QOption with EnblRTTCtr_ */	int network_limited();	/* Sending limited by network? */	double limited_slow_start(double cwnd, double max_ssthresh, double increment);				/* Limited slow-start for high windows */	virtual int numdupacks(double cwnd); 	/* for getting numdupacks_ */	virtual void processQuickStart(Packet *pkt);	virtual void endQuickStart();	int lossQuickStart();	/* Helper functions. Currently used by tcp-asym */	virtual void output_helper(Packet*) { return; }	virtual void send_helper(int) { return; }	virtual void send_idle_helper() { return; }	virtual void recv_helper(Packet*) { return; }	virtual void recv_frto_helper(Packet*);	virtual void recv_newack_helper(Packet*);	virtual void partialnewack_helper(Packet*) {};	/* End of helper functions. */	int force_wnd(int num);	void spurious_timeout();	/* Timers */	RtxTimer rtx_timer_;	DelSndTimer delsnd_timer_;	BurstSndTimer burstsnd_timer_;	virtual void cancel_timers() {		rtx_timer_.force_cancel();		burstsnd_timer_.force_cancel();		delsnd_timer_.force_cancel();	}	virtual void cancel_rtx_timer() {		rtx_timer_.force_cancel();	}	virtual void set_rtx_timer();	void reset_rtx_timer(int mild, int backoff = 1);	int timerfix_;		/* set to true to update timer *after* */				/* update the RTT, instead of before   */	int rfc2988_;		/* Use updated RFC 2988 timers */	/* End of timers. */ 	double boot_time_;	/* where between 'ticks' this sytem came up */	double overhead_;	double wnd_;	double wnd_const_;	double wnd_th_;		/* window "threshold" */	double wnd_init_;	double wnd_restart_;	double tcp_tick_;	/* clock granularity */	int wnd_option_;	int wnd_init_option_;   /* 1 for using wnd_init_ */				/* 2 for using large initial windows */	double decrease_num_;   /* factor for multiplicative decrease */	double increase_num_;   /* factor for additive increase */	int tcpip_base_hdr_size_;  /* size of base TCP/IP header */	int ts_resetRTO_;	/* Un-backoff RTO after any valid RTT, */				/*   including from a retransmitted pkt?  */				/* The old version was "false". */				/* But "true" gives better performance, and */                                /* seems conformant with RFC 2988. */	int maxcwnd_;		/* max # cwnd can ever be */        int numdupacks_;	/* dup ACKs before fast retransmit */	int numdupacksFrac_;	/* for a larger numdupacks_ with large */				/* windows */	double maxrto_;		/* max value of an RTO */	double minrto_;         /* min value of an RTO */	/* For modeling SYN and SYN/ACK packets. */	int syn_;		/* 1 for modeling SYN/ACK exchange */	int delay_growth_;  	/* delay opening cwnd until 1st data recv'd */	/* End of modeling SYN and SYN/ACK packets. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码国产乱码精品精可以看 | 亚洲一区影音先锋| 精品日韩一区二区三区| 91麻豆产精品久久久久久 | 亚洲男人的天堂在线观看| 久久综合狠狠综合久久综合88 | 欧美人妖巨大在线| 色综合天天综合狠狠| 成人黄动漫网站免费app| 国产精品亚洲专一区二区三区| 精品一区二区免费在线观看| 久久99日本精品| 国产尤物一区二区| 豆国产96在线|亚洲| 成人午夜视频在线观看| 91一区二区三区在线播放| 精品国产乱码久久久久久牛牛| 久久精品欧美一区二区三区麻豆| 国产日韩欧美综合一区| 亚洲欧洲精品一区二区三区不卡| 日韩理论片一区二区| 亚洲一区二区精品3399| av一二三不卡影片| 欧美日韩免费电影| 亚洲精品写真福利| 91免费视频大全| 中文成人av在线| 午夜精品久久久久久久| 久色婷婷小香蕉久久| 欧美日韩国产bt| 亚洲电影中文字幕在线观看| 久久99深爱久久99精品| 日韩一区二区三区三四区视频在线观看 | 国产精品久久久久四虎| 亚洲一区二区三区四区中文字幕| 99国内精品久久| 日韩视频免费观看高清在线视频| 亚洲成人av一区二区三区| 国产乱妇无码大片在线观看| 欧美v日韩v国产v| 韩国av一区二区三区四区| 91丨porny丨蝌蚪视频| 国产精品盗摄一区二区三区| 成人午夜激情在线| 亚洲欧美日韩国产综合在线| 91在线视频在线| 亚洲欧美aⅴ...| 欧洲视频一区二区| 久久精品人人做| gogo大胆日本视频一区| 亚洲精品免费一二三区| 欧美午夜精品理论片a级按摩| 久久久www成人免费无遮挡大片| 一区二区欧美精品| 国产精品99久久久久久似苏梦涵 | 一区二区三区四区高清精品免费观看 | 欧美一区二区三区白人| 国产精品高潮呻吟| 在线一区二区视频| 国产精品美女久久久久久久久| 成人h精品动漫一区二区三区| 亚洲色图欧美偷拍| 欧美日本精品一区二区三区| 麻豆91精品91久久久的内涵| 欧美系列日韩一区| 另类小说图片综合网| 亚洲国产精华液网站w| 裸体歌舞表演一区二区| 亚洲精品在线观看网站| 99re66热这里只有精品3直播| 亚洲一二三专区| 精品日产卡一卡二卡麻豆| 成人动漫中文字幕| 视频一区二区三区中文字幕| 欧美亚洲另类激情小说| 欧美aⅴ一区二区三区视频| 在线播放一区二区三区| 天堂在线一区二区| 国产欧美一区二区精品性色| 91国偷自产一区二区开放时间| 人人爽香蕉精品| 亚洲欧美在线观看| 精品伦理精品一区| 欧美在线free| 成人av免费在线| 美女脱光内衣内裤视频久久网站| 中文字幕av在线一区二区三区| 欧美麻豆精品久久久久久| 国产成人在线免费| 日韩码欧中文字| 亚洲精品一区二区三区精华液| 色先锋aa成人| 天堂av在线一区| √…a在线天堂一区| 26uuu亚洲综合色欧美| 欧美嫩在线观看| 91黄视频在线| 99久久精品国产一区二区三区| 激情都市一区二区| 视频一区二区国产| 亚洲成av人片观看| 一区二区三区精品视频| 国产拍揄自揄精品视频麻豆| 日韩免费观看高清完整版| 国产精品正在播放| 久久国产尿小便嘘嘘尿| 偷偷要91色婷婷| 亚洲图片欧美一区| 一区二区三区久久久| 中文字幕一区二区三区在线不卡 | 国产精品亚洲第一区在线暖暖韩国 | 久久亚洲综合色| 欧美一卡2卡三卡4卡5免费| 欧美日韩久久一区二区| 欧美亚洲一区二区在线| 欧美又粗又大又爽| 在线观看免费一区| 欧美羞羞免费网站| 欧美性色黄大片手机版| 欧美三级电影一区| 国产精品中文欧美| 国产精品综合网| 国产69精品久久久久毛片| 国产高清不卡二三区| 韩国成人福利片在线播放| 国产一区二区三区四区五区美女| 精品一区二区国语对白| 国产一区在线视频| 福利一区二区在线| 99久久国产免费看| 91国产成人在线| 在线成人免费观看| 精品国产一区二区三区不卡| 久久婷婷国产综合国色天香| 久久九九全国免费| 久久久国际精品| 成人欧美一区二区三区1314| 亚洲黄色免费电影| 日韩av中文字幕一区二区| 亚洲蜜臀av乱码久久精品| 一区二区三区中文在线| 天天综合色天天| 国内成人精品2018免费看| 成人黄页毛片网站| 欧美视频一区二区在线观看| 51精品秘密在线观看| 欧美自拍偷拍一区| 日韩片之四级片| 国产精品美女www爽爽爽| 夜夜精品视频一区二区| 日本午夜一区二区| 国产成人久久精品77777最新版本| 成人av动漫网站| 欧美老人xxxx18| 国产欧美一区二区精品性| 亚洲国产精品久久久久婷婷884 | 国产精品卡一卡二卡三| 亚洲高清在线视频| 国产精品中文字幕欧美| 欧美午夜片在线看| 国产日韩欧美综合在线| 亚洲一区二区三区视频在线 | 成人晚上爱看视频| 欧美日韩视频在线第一区| 国产亚洲成aⅴ人片在线观看 | ww亚洲ww在线观看国产| 亚洲美女在线一区| 国产一区二区三区| 欧美日韩在线三级| 国产精品第四页| 精品一区二区在线看| 色婷婷综合五月| 国产视频视频一区| 老司机免费视频一区二区| 91麻豆视频网站| 欧美激情一区二区三区不卡| 丝袜亚洲另类欧美| 91视频免费播放| 国产日韩欧美麻豆| 精品一区二区成人精品| 制服.丝袜.亚洲.另类.中文| 国产精品沙发午睡系列990531| 麻豆精品国产传媒mv男同| 欧美性一二三区| 一二三四社区欧美黄| 91美女福利视频| 国产精品国产自产拍在线| 国产一区二区精品久久99| 欧美一区二区三区免费| 亚洲成人av一区二区三区| 色呦呦国产精品| 国产精品夫妻自拍| 懂色av中文字幕一区二区三区| 日韩欧美另类在线| 日韩国产欧美视频| 91.xcao| 日本人妖一区二区| 欧美一级片在线| 免费视频最近日韩| 欧美一区二区三区免费观看视频|