class <Agent/TCP> TcpAgent : public Agent


Inheritance:


Public Methods

virtual void advanceby(int delta)
int command(int argc, const char*const* argv)
Agent/TCP instproc done {}
virtual void recv(Packet*, Handler*)
virtual void sendmsg(int nbytes, const char *flags = 0)
Agent/TCP instproc source type
TcpAgent()
virtual void timeout(int tno)
virtual void timeout_nonrtx(int tno)
void trace(TracedVar* v)

Protected Fields

double awnd_
averaged window
int Backoffs
double base_cwnd_
base window (for experimental purposes)
double boot_time_
where between 'ticks' this sytem came up
int bug_fix_
1 for multiple-fast-retransmit fix
BurstSndTimer burstsnd_timer_
int closed_
whether this connection has closed
int cong_action_
Congestion Action
int control_increase_
int count_
used in window increment algorithms
TracedInt curseq_
highest seqno "produced by app"
TracedDouble cwnd_
current window
double decrease_num_
2 for using large initial windows factor for multiplicative decrease
int delay_growth_
delay opening cwnd until 1st data recv'd
DelSndTimer delsnd_timer_
TracedInt dupacks_
Dynamic state
int ecn_
highest seqno sent so far Explicit Congestion Notification
int ecn_backoff_
True when retransmit timer should begin to be backed off
int ecn_burst_
True when the previous ACK packet carried ECN-Echo
int ect_
turn on ect bit now?
int eln_
Explicit Loss Notification (wireless)
int eln_last_rxmit_
Last packet rxmitted due to ELN info
int eln_rxmit_thresh_
Threshold for ELN-triggered rxmissions
int EnblRTTCtr_
are we using a corase grained timer?
int F_counting
int F_full
double fcnt_
used in window increment algorithms
int first_decrease_
First decrease of congestion window
double firstsent_
When first packet was sent --Allman
TracedInt highest_ack_
not frozen during Fast Recovery
double increase_num_
factor for additive increase
int last_ack_
largest consecutive ACK, frozen during Fast Recovery
int last_cwnd_action_
timeout, or source quench/ecn CWND_ACTION_{TIMEOUT,DUPACK,ECN}
int maxburst_
max packets can send back-2-back
int maxcwnd_
max cwnd can ever be
double maxrto_
max value of an RTO
TracedInt maxseq_
used for Karn algorithm
TracedInt nackpack_
number of ack packets received
int nam_tracevar_
Output nam's variable trace or just plain text variable trace?
TracedInt ndatabytes_
number of data bytes sent
TracedInt ndatapack_
number of data packets sent
TracedInt nrexmit_
number of retransmit timeouts when there was data outstanding
TracedInt nrexmitbytes_
number of retransmited bytes
TracedInt nrexmitpack_
number of retransmited packets
int off_tcp_
int old_ecn_
For backwards compatibility with the old ECN implementation, which never reduced the congestion window below one packet
double overhead_
FILE* plotfile_
int prev_highest_ack_
int QOption_
TCP quiescence option
int recover_
highest pkt sent before dup acks,
int restart_bugfix_
ssthresh is cut down because of timeouts during a connection's idle period
int rtt_active_
1 if a rtt sample is pending
int RTT_count
int RTT_goodcount
int RTT_prev
int rtt_seq_
seq of timed seg if rtt_active_ is 1
double rtt_ts_
time at which rtt_seq_ was sent
int rttvar_exp_
exponent of multiple for t_rtxcur_
int rttvar_init_
initial value for computing t_rttvar_
RtxTimer rtx_timer_
Timers
double rtxcur_init_
initial value for t_rtxcur_
TracedInt singledup_
Used for decrease_num_ != 0
int slow_start_restart_
boolean: re-init cwnd after connection goes idle
int srtt_init_
initial value for computing t_srtt_
TracedInt ssthresh_
slow start threshold
int syn_
1 for modeling SYN/ACK exchange
TracedInt t_backoff_
current multiplier, 1 if not backed off
int T_full
last time the window was full
int T_last
int T_prev
TracedInt t_rtt_
round trip time
TracedInt t_rttvar_
variance in round-trip time
int T_RTTVAR_BITS
exponent of weight for updating t_rttvar_
double t_rtxcur_
current retransmit value
TracedInt t_seqno_
State encompassing the round-trip-time estimate
TracedInt t_srtt_
smoothed round-trip time
int T_SRTT_BITS
exponent of weight for updating t_srtt_
int T_start
double tcp_tick_
clock granularity
int tcpip_base_hdr_size_
size of base TCP/IP header
int trace_all_oneline_
TCP tracing vars all in one line or not?
int ts_option_
use RFC1323-like timestamps?
double ts_peer_
the most recent timestamp the peer sent
int W_timed
int W_used
double wnd_
double wnd_const_
double wnd_init_
int wnd_init_option_
1 for using wnd_init_
int wnd_option_
double wnd_restart_
double wnd_th_
window "threshold"

Protected Methods

virtual void cancel_rtx_timer()
virtual void cancel_timers()
void closecwnd(int how)
these function are now obsolete, see other above
virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
virtual void delay_bind_init_all()
virtual void dupack_action()
do this on dupacks
void ecn(int seqno)
react to quench
void finish()
called when the connection is terminated
double initial_window()
what is IW?
void newack(Packet*)
virtual void newtimer(Packet*)
void opencwnd()
virtual void output(int seqno, int reason = 0)
connection and packet dynamics
virtual void output_helper(Packet*)
Helper functions
virtual void partialnewack_helper(Packet*)
void print_if_needed(double memb_time)
void process_qoption_after_ack(int seqno)
void process_qoption_after_send()
void quench(int how)
virtual void recv_helper(Packet*)
virtual void recv_newack_helper(Packet*)
void reset()
void reset_qoption()
for QOption with EnblRTTCtr_
void reset_rtx_timer(int mild, int backoff = 1)
virtual void rtt_backoff()
double multiplier
void rtt_counting()
for QOption with EnblRTTCtr_
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 send_helper(int)
virtual void send_idle_helper()
virtual void send_much(int force, int reason, int maxburst = 0)
virtual void send_one()
do this on 1-2 dupacks
virtual void set_initial_window()
set IW
virtual void set_rtx_timer()
void slowdown(int how)
reduce cwnd/ssthresh
void tcp_eln(Packet *pkt)
reaction to ELN (usually wireless)
void traceAll()
virtual void traceVar(TracedVar* v)
virtual int window()

Protected

#define T_RTT_BITS

Inherited from Agent:

Public Fields

Agent instvar agent_port_
Agent instvar dst_addr_
Agent instvar dst_port_
Agent instvar namTrace_
Agent instvar tg_

Public Methods

inline nsaddr_t& addr()
Agent instproc attach-app {s_type}
Agent instproc attach-source {s_type}
Agent instproc attach-tbf { tbf }
Agent instproc attach-trace { file }
virtual void attachApp(Application* app)
virtual void close()
Agent instproc connect d
virtual void connect(nsaddr_t dst)
inline nsaddr_t& daddr()
inline nsaddr_t& dport()
Agent instproc dst-port {}
Agent instproc init args
virtual void listen()
inline nsaddr_t& port()
Agent instproc port {}
virtual void send(int nbytes)
void send(Packet* p, Handler* h)
virtual void send(int sz, AppData *data)
virtual void sendto(int sz, AppData*, const char* flags = 0)
virtual void sendto(int nbytes, const char* flags, nsaddr_t dst)
Agent instproc set args
void set_pkttype(packet_t pkttype)
virtual int& size()
Agent instproc traffic-source agent

Protected Fields

Application* app_
Tcl_Channel channel_
int class_
int defttl_
ns_addr_t dst_
int fid_
int flags_
ns_addr_t here_
int off_ip_
OldValue* oldValueList_
int prio_
int seqno_
int size_
char* traceName_
packet_t type_
static int uidcnt_

Protected Methods

void addAgentTrace(const char *name)
Packet* allocpkt()
Packet* allocpkt(int)
void deleteAgentTrace()
void dumpTracedVars()
virtual void idle()
void initpkt(Packet*)
void insertOldValue(TracedVar *v, const char *value)
OldValue* lookupOldValue(TracedVar *v)
void monitorAgentTrace()
virtual void recvBytes(int bytes)

Private Methods

void flushAVar(TracedVar *v)

Inherited from Connector:

Public Methods

virtual void drop(Packet* p)
inline NsObject* target()

Protected Fields

NsObject* drop_
NsObject* target_

Protected Methods

virtual void drop(Packet* p, const char *s)

Inherited from NsObject:

Public Methods

virtual void debug(const char *fmt, ...)
int isdebug()

Protected Fields

int debug_
int off_cmn_
int off_flags_

Protected Methods

void handle(Event*)

Inherited from Handler:


Documentation

TcpAgent()

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)

virtual int window()

void print_if_needed(double memb_time)

void traceAll()

virtual void traceVar(TracedVar* v)

virtual void delay_bind_init_all()

virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)

TracedInt t_seqno_
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. sequence number

#define T_RTT_BITS

TracedInt t_rtt_
round trip time

int T_SRTT_BITS
exponent of weight for updating t_srtt_

TracedInt t_srtt_
smoothed round-trip time

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_

TracedInt t_rttvar_
variance in round-trip time

int rttvar_init_
initial value for computing t_rttvar_

double t_rtxcur_
current retransmit value

double rtxcur_init_
initial value for t_rtxcur_

TracedInt t_backoff_
current multiplier, 1 if not backed off

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

double ts_peer_
the most recent timestamp the peer sent

virtual void output(int seqno, int reason = 0)
connection and packet dynamics

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

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_

virtual void output_helper(Packet*)
Helper functions. Currently used by tcp-asym

virtual void send_helper(int)

virtual void send_idle_helper()

virtual void recv_helper(Packet*)

virtual void recv_newack_helper(Packet*)

virtual void partialnewack_helper(Packet*)

RtxTimer rtx_timer_
Timers

DelSndTimer delsnd_timer_

BurstSndTimer burstsnd_timer_

virtual void cancel_timers()

virtual void cancel_rtx_timer()

virtual void set_rtx_timer()

void reset_rtx_timer(int mild, int backoff = 1)

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_

double decrease_num_
2 for using large initial windows factor for multiplicative decrease

double increase_num_
factor for additive increase

int syn_
1 for modeling SYN/ACK exchange

int delay_growth_
delay opening cwnd until 1st data recv'd

int tcpip_base_hdr_size_
size of base TCP/IP header

int bug_fix_
1 for multiple-fast-retransmit fix

int ts_option_
use RFC1323-like timestamps?

int maxburst_
max packets can send back-2-back

int maxcwnd_
max cwnd can ever be

double maxrto_
max value of an RTO

int old_ecn_
For backwards compatibility with the old ECN implementation, which never reduced the congestion window below one packet.

FILE* plotfile_

TracedInt dupacks_
Dynamic state. number of duplicate acks

TracedInt curseq_
highest seqno "produced by app"

int last_ack_
largest consecutive ACK, frozen during Fast Recovery

TracedInt highest_ack_
not frozen during Fast Recovery

int recover_
highest pkt sent before dup acks,

int last_cwnd_action_
timeout, or source quench/ecn CWND_ACTION_{TIMEOUT,DUPACK,ECN}

TracedDouble cwnd_
current window

double base_cwnd_
base window (for experimental purposes)

double awnd_
averaged window

TracedInt ssthresh_
slow start threshold

int count_
used in window increment algorithms

double fcnt_
used in window increment algorithms

int rtt_active_
1 if a rtt sample is pending

int rtt_seq_
seq of timed seg if rtt_active_ is 1

double rtt_ts_
time at which rtt_seq_ was sent

TracedInt maxseq_
used for Karn algorithm

int ecn_
highest seqno sent so far Explicit Congestion Notification

int cong_action_
Congestion Action. True to indicate that the sender responded to congestion.

int ecn_burst_
True when the previous ACK packet carried ECN-Echo.

int ecn_backoff_
True when retransmit timer should begin to be backed off.

int ect_
turn on ect bit now?

int eln_
Explicit Loss Notification (wireless)

int eln_rxmit_thresh_
Threshold for ELN-triggered rxmissions

int eln_last_rxmit_
Last packet rxmitted due to ELN info

double firstsent_
When first packet was sent --Allman

int off_tcp_

int slow_start_restart_
boolean: re-init cwnd after connection goes idle. On by default.

int restart_bugfix_
ssthresh is cut down because of timeouts during a connection's idle period. Setting this boolean fixes this problem. For now, it is off by default.

int closed_
whether this connection has closed

TracedInt ndatapack_
number of data packets sent

TracedInt ndatabytes_
number of data bytes sent

TracedInt nackpack_
number of ack packets received

TracedInt nrexmit_
number of retransmit timeouts when there was data outstanding

TracedInt nrexmitpack_
number of retransmited packets

TracedInt nrexmitbytes_
number of retransmited bytes

int trace_all_oneline_
TCP tracing vars all in one line or not?

int nam_tracevar_
Output nam's variable trace or just plain text variable trace?

int first_decrease_
First decrease of congestion window.

TracedInt singledup_
Used for decrease_num_ != 0.5. Send on a single dup ack.

void closecwnd(int how)
these function are now obsolete, see other above

void quench(int how)

void process_qoption_after_send()

void process_qoption_after_ack(int seqno)

int QOption_
TCP quiescence option

int EnblRTTCtr_
are we using a corase grained timer?

int T_full
last time the window was full

int T_last

int T_prev

int T_start

int RTT_count

int RTT_prev

int RTT_goodcount

int F_counting

int W_used

int W_timed

int F_full

int Backoffs

int control_increase_

int prev_highest_ack_

Agent/TCP instproc source type

Agent/TCP instproc done {}


Direct child classes:
VegasTcpAgent
TcpFsAgent
TcpAsymAgent
SimpleTcpAgent
Sack1TcpAgent
RenoTcpAgent
RFC793eduTcpAgent
IntTcpAgent
FullTcpAgent
FackTcpAgent

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de