% $Id: icccn.tex,v 1.4 2005/08/25 12:23:13 gokhale Exp $
\documentclass[twocolumn,10pt]{IEEEtran}

\usepackage{epsf}
\usepackage{psfrag}
\usepackage{subfigure}
\usepackage{epsfig}

\def\tenrm{\fontsize{10}{12}\normalfont\rmfamily\selectfont}
\def\BibTeX{{\rmfamily B\kern-.05em{\scshape i\kern-.025em b}\kern-.08em \TeX}}

\newcommand{\Figdir}{./}
\newcommand{\figdir}[1]{\renewcommand{\Figdir}{#1/}}
\newcommand{\Idrawdir}{./}
\newcommand{\idrawdir}[1]{\renewcommand{\Idrawdir}{#1/}}

\newcommand{\textfigure}[3]{
\begin{figure}[ht]
\begin{center}
\begin{tabular}{|l|} \hline
#3 \hline
\end{tabular}
\caption{#2}
\label{fig:#1}
\end{center}
\vspace*{-0.5cm}
\end{figure}
}

\newcommand{\ls}[1]
{\dimen0=\fontdimen6\the\font
\lineskip=#1\dimen0
\advance\lineskip.5\fontdimen5\the\font
\advance\lineskip-\dimen0
\lineskiplimit=.9\lineskip
\baselineskip=\lineskip
\advance\baselineskip\dimen0
\normallineskip\lineskip
\normallineskiplimit\lineskiplimit
\normalbaselineskip\baselineskip
\ignorespaces
}

\newcommand{\commentout}[1]{}

\newcommand{\ix}{\hspace*{1em}}
\newcommand{\hs}{\hspace*{2em}}
\newcommand{\et}{{\it et. al.\ }}
\newcommand{\ets}{{\it et. al.}'s\ }

 
\newtheorem{theorem}{Theorem}[section] 
\newtheorem{example}{Example}[section] 
\newtheorem{proposition}[theorem]{Proposition} 
\newtheorem{corollary}[theorem]{Corollary} 
\newtheorem{lemma}[theorem]{Lemma} \newtheorem{claim}[theorem]{Claim} 
\newtheorem{fact}[theorem]{Fact} 
\newtheorem{definitionx}[theorem]{Definition} 
\newtheorem{algorithm}[theorem]{Algorithm} 
\newenvironment{definition}{\begin{definitionx}\rm}{\end{definitionx}} 
\newcommand{\qedsymb}{\hfill $\square$} 


\newcommand{\twoup}[6]{   
\begin{figure}[t]  
\renewcommand{\subfigtopskip}{3pt}
\renewcommand{\subfigcapskip}{3pt}
%% \hspace*{-.6cm}
\subfigure[#2]{\includegraphics[angle=-90,width=.45\textwidth]{\Figdir #1}}
%\hspace*{-.6cm}
\subfigure[#4]{\includegraphics[angle=-90,width=.45\textwidth]{\Figdir #3}}
%\vspace*{-.7cm}
\caption{#5}
\label{#6}
\end{figure}
}


\begin{document}

\title{Network Simulation via Hybrid System Modeling: \\
       A Time-Stepped Approach}
\vspace{0.1in}
\author{Amogh Kavimandan$^\dag$, Wonsuck Lee$^\ddag$, Marina Thottan$^\ddag$, 
        Anirudha Gokhale$^\dag$, and Ramesh Viswanathan$^\ddag$\\
        $^\dag$Department of EECS, Vanderbilt University, Nashville, TN 37235\\
        $^\ddag$Bell Laboratories, Lucent Technologies, Murray Hill, NJ 07920}

\maketitle

\vspace{0.1in}

\begin{abstract}
The ever increasing complexity of networks dramatically increases the
challenges faced by service providers to analyze network behavior and
(re)provision resources to support multiple complex distributed
applications. Accurate and scalable simulation tools are pivotal to
this cause. The recently proposed {\it hybrid systems model} for data
communication networks shows promise in achieving performance
characteristics comparable to fluid models while retaining the
accuracy of discrete models. Using the hybrid systems paradigm, this
paper provides contributions to the modeling of TCP behavior and the
analysis/simulation of data communication networks based on these
models. An important distinguishing feature of our simulation
framework is a faithful accounting of {\em link propagation delays}
which has been ignored in previous work for the sake of simplicity,
% folks, I think we focus on just one feature say delay or queue
% dynamics but not all - andy
% Review 2, comment 3. Added a line (from earlier paper) to make
% motivation explicit. Also, Reviewer 1, comment 1. - Amogh
%
Other salient aspects of our work include a
new finite state machine model for a drop-tail queue, a new model for
fast recovery/fast retransmit mode, a revised sending rate model, and
an embedded time-out mode transition mechanism all of which employ a
time-stepped solution method to solve the hybrid system network
models. 
Our simulation results are consistent with well-known
packet based simulators such as {\bf ns-2}, thus demonstrating the
accuracy of our hybrid model. Our future efforts will be directed
towards studying and improving the computational performance of 
hybrid model based simulations.
\iffalse         %% Commented out for short paper
Second, we describe how our hybrid systems models can be composed to
provide multi-layer network simulations that can analyze very large
topologies -- something that is not feasible with state of the art
packet-based discrete event simulations. Finally, results of our
experiments comparing our approach with the well known ns-2 simulator.
\fi
\end{abstract}

\vspace{0.1in}

%\begin{keywords}
%Data Communication Network, Network Simulation, TCP Traffic Modeling,  
%Fluid Modeling, Hybrid Systems.
%\end{keywords}

\section{Introduction}
Communication service providers use a variety of tools including
visualization, analysis and simulations to track the performance of
their networks and (re)provision existing and new applications.
% folks, let us not play the NS-2 comparison game - andy
\iffalse         %% Commented out for short paper
For example, the Network Simulator {\bf ns-2}~\cite{ns2}
is the most widely used packet-based simulation tool to understand
network behavior. Simulators like {\bf ns-2} are based on discrete
event simulation of per-packet behavior in the network. Although these
simulators provide accurate analysis of network behavior, they have a
number of shortcomings when applied to the networks of today and the
future, as outlined below:
\fi              %% end Commented out for short paper
Efficient and scalable network analysis and simulation techniques are
required due to the following technical needs:
\begin{itemize}
\item {\em Heterogeneous, multilayered networks} -- where networks are
      made up of several layers starting with the physical layer on
      which are overlaid data link layers like ATM and MPLS followed
      by the Internet protocols like TCP and IP. Existing techniques
      to analyze network behavior are typically restricted to
      individual layers. For example, simulators like {\bf ns-2} are
      particularly useful to analyze a single layer, such as IP
      traffic. Thus, it is tedious and in many cases infeasible, with
      existing techniques, to determine the effect of disruptions at
      one layer across multiple layers of the network.

\item {\em Networks of networks} -- where the ever expanding size of
      the Internet has given rise to a large collection of
      interconnected but independently administered networks that
      include both public and private networks. Analyzing the behavior
      of these networks requires accurately modeling the structure,
      policies and behavior of the networks while also scaling to the
      large size of the networks. Current state of the art in network
      analysis do not provide these capabilities.

% folks, let us not play this game until we have enough results for
% the hybrid simulations - andy
\iffalse         %% Commented out for short paper
\item {\em Computational complexity and scalability of discrete event
  simulators} -- 
      as the scale of the network increases it becomes computationally
      infeasible to use sequential packet-based discrete event
      simulators to analyze the networks. Moreover, the storage
      requirements for the trace data generated by these simulations
      become cumbersome to manage and mine.
\fi              %% end Commented out for short paper

\end{itemize}

Addressing the challenges outlined above requires a new approach to
analyzing network behavior where the computational requirements must
be kept manageable.  We describe a technique using hybrid systems as
the means for scalable and accurate multilayer network
simulations. Hybrid system models combine the strengths of continuous
and discrete models. A system is modeled as a discrete event system at
a coarse granularity where a discrete state transition occurs when
certain guard conditions are met. Within each state, however, a system
is modeled to evolve according to some continuous dynamics.

\vspace{-.1in}
\section{Survey of Work on Network Modeling \& Simulation} 
Network modeling and simulation paradigms can be categorized into
three mainstream approaches: packet-level models, flow-level models,
and hybrid models.

Packet-level simulation has been the most widely used simulation
methodology by the network research community. Packet-level simulators
are based on an event-logic driven simulation paradigm. For example,
{\bf ns-2}~\cite{ns2}, {\bf SSFNet}~\cite{ssfnet} and {\bf
JSim-INET}~\cite{jsim} fall into this category. Packet-level
simulators keep track of all the individual packets in the
network. Therefore, they offer highly accurate and detailed results;
however, the computational complexity increases rapidly as the size of
the network becomes large.

During the past decade fluid-level simulations have been studied
extensively and continue to be researched actively. In the framework
of fluid models, a chunk of packets is modeled as a single continuous
artifact, namely, a fluid. The dynamics of the network is then
represented by a system of ordinary differential equations (ODEs),
which describe fluid rate changes inside the network. Most of the
research efforts in this area~\cite{Misra99a,Misra99b,Altman}
have focused on modeling TCP protocols~\cite{Jacobson}.  In this
framework, the arrival and the loss of packets are often modeled as
stochastic processes~\cite{Misra99a,Altman}.  The traffic source and
queue dynamics constitute a system of equations which governs the TCP
controlled data transfer over an IP network.

Recently, hybridization of the packet and the flow modeling approaches
have been studied.  Guo \et proposed the Time-stepped Hybrid
Simulation (TSHS)~\cite{Guo00a} method to deal with the scalability
issue faced by traditional packet-level discrete-event simulation
methods. TSHS considers a chunk, grouped from the packets that are in
the same time-step, as a unit entity. The packets in a chunk are
assumed to be evenly spaced within the time-step. In order to identify
any event, every node in the network is checked at every
time-step. TSHS is capable of offering flexible choice in simulation
fidelity based on the simulation abstraction level.  

\iffalse %% Commented out for short paper 
With a slightly different objective, Gu
\et studied the integration of a fluid model with a packet-level
simulation to maintain both the performance advantage as well as
providing details for selected packet traffic~\cite{Gu04}. They
proposed models that can account for the interaction between
flow-based background TCP traffic and foreground packet-based traffic
flows. Another approach called Time-Driven Fluid Simulation
(TDFS)~\cite{Yan99} models traffic nodes in a network as fluid servers
which process workload continuously. In TDFS models, traffic sources
may employ either continuous or discrete event models. Using TDFS
framework, Yan \et studied a single class of traffic. They also proved
that the discretization error does not depend on the network size but
is determined by the length of the discretization interval used. TDFS
can also be easily parallelized to improve computational
performance. All the above mentioned hybrid approaches show promising
avenues for network simulation but have not yet been used as an
alternative to {\bf ns-2}.  
\fi %% end Commented out for short paper

A newly proposed hybrid system modeling framework~\cite{Bohacek03},
which is different from the aforementioned hybridization approaches,
describes continuous dynamic behavior of a network within an organized
finite state machine (FSM) formalism. Bohacek \et proposed such a
framework for data communication networks and studied various
communication protocols using hybrid systems~\cite{Schaft}. Bohacek
\ets work forms the basis for what we report in this paper. We note
that this paper shares some common ground with Bohacek \ets work but
differs since we model explicitly the propagation delay and provide a
more mathematically accurate hybrid system model of the TCP protocol.


\vspace{-.1in}
\section{Hybrid Systems Modeling of TCP Networks}
In this section, we describe a hybrid system TCP model that we have
developed. We focus on a TCP New-Reno implementation for the source, a
drop-tail queuing policy, and we model their interactions using FSM
models. The aspects of our model that differs from Bohacek \ets work
will be highlighted. Our solution method differs from the previous work
in that we use the time-stepped solution method to solve the
constructed hybrid system. This approach resembles the solution
techniques used in TSHS~\cite{Guo00a}.

\subsection{Mathematical Model of a Network}
\label{sec:math}
Mathematically a network is a directed graph
$(\mathcal{N},\mathcal{L})$ where a set of vertices $\mathcal{N}$
denotes nodes and a set of edges $\mathcal{L}$ denotes a collection of
links connecting two nodes. For instance, two nodes $u \in
\mathcal{N}$ and $v \in \mathcal{N}$ are connected by a link
$l=l_{u,v} \in \mathcal{L}$.  Three real positive numbers are assigned
to each link $l \in \mathcal{L}$, these are: bandwidth (link-rate),
propagation delay, and maximum queue size. Let $B^l$, $\tau^l$, and
$q^{l}_{\rm max}$ denote the bandwidth, the propagation delay, and the
maximum queue size of a link $l$, respectively. These three parameters
characterize each link in a network. We remark that the 
{\it propagation delay} has not been included in the previous
study~\cite{Bohacek03}, hence only simplified topological settings
were studied.

Let $\mathcal{F}$ represent a set of {\it flows}. Each flow $f \in
\mathcal{F}$ is associated with a source node $u_s \in\mathcal{N}$ and
a destination node $u_d \in\mathcal{N}$ where $f$ flows from $u_s$ to
$u_d$. We assume that flow $f$ is generated and enters node $u_s$ with
an incoming rate $a_f$ at a prescribed time $t=t^0_f$. A flow $f$ on a
link $l$ can be quantified by a link-in-rate (a sending rate),
$s_f^l$, and a link-out-rate (an arrival rate), $a_f^l$.

Bandwidth $B^l$ imposes an upper bound on flow sending rate on a link
$l$.as follows:
\begin{equation}
\sum_{f\in\mathcal{F}} s^l_f \leq B^l, \qquad\forall\  l \in \mathcal{L}~.
\end{equation}
Here $s^l_f = s^l_f(t)$ is a dynamically evolving quantity.

In our model, a queue is associated with a link
$l\in\mathcal{L}$. $q^l_f$ denotes the size of the flow $f$ in the
queue of a link $l$. Therefore, given the maximum capacity of the
queue $q^l_{\rm max}$ of the link $l$, the following inequality should
hold for all times.
\begin{equation}
\sum_{f\in\mathcal{F}} q^l_f \leq q^l_{\rm max}, 
\qquad\forall\  l \in \mathcal{L}~.
\end{equation}
Here $q^l_f$ is also a function of time, {\it i.e.}, $q^l_f=q^l_f(t)$.

In general the transmission delay is composed of link propagation
delay, processing delay, and queuing delay. Associated with each link
$l$, we only consider a fixed propagation delay $\tau^l$ and a queuing
delay $q^l/B^l$ where $q^l = \sum_{f\in\mathcal{F}} q^l_f$. For the
sake of simplicity, we assume the processing delay is minimal compared
to the other two terms. Round-trip-time (RTT) is a measure of the
current delay on a network or time elapsed to receive an
acknowledgment packet (ACK) from the destination node.


\subsection{Hybrid Model of TCP}
\label{sec:TCP}
In order to study transient behavior of a network, modeling TCP
protocols has been our first goal since not only is a significant
portion of Internet traffic controlled by the TCP protocol but also it
potentially possesses rich dynamics due to the concept of varying the
sending rate in response to the network conditions.  Widely
implemented TCP-New Reno policy include slow-start,
fast-recovery/fast-retransmit (fr/fr), congestion-avoidance and
time-out. The TCP-New Reno algorithm chooses a certain mode based on
the limited information it holds and has received from the destination
host.

\iffalse         %% Commented out for short paper
Data transfer starts in the slow-start mode with congestion window
size, $w$, equal to 1. The source limits the number of sending
packets below $w$ minus the number of outstanding (unacknowledged)
packets.  Once the transmitted packet arrives at the destination host,
the receiver returns a small acknowledgment packet (ACK) with
information containing the sequence number of the next expected
packet. If the ACK is successfully received by the sender, the sender
increases $w$ by ACK so that it has more room to send a new packet. If
the packet is lost or the order of the packets are altered during
transmission, the sender may receive duplicate acknowledgments
(dupACKs) or may not receive any ACKs.

If the sender receives triple dupACKs, the source enters fr/fr mode.
Initial congestion window size in fr/fr mode is given by $w^{-}/2+3$
where $w^{-}$ is the congestion window just before fr/fr mode is
entered. A variable called slow-start threshold ($ssthr$) is set to
$w^{-}/2$ which is the maximum congestion window size allowed in the
next slow-start mode, if there is any. In TCP-New Reno policy, the
fr/fr mode ends if all the lost packets are successfully
retransmitted. Subsequently, the congestion avoidance mode follows.

In the congestion avoidance mode, unlike in slow-start mode, every ACK
increases the congestion window size by a small portion of the
congestion window, usually it takes a form of $w^{\rm new} = w^{\rm
old} + 1/w^{\rm old}$. Normally, a source honors the maximum
advertised congestion window value satisfying the following
inequality: $w \leq w^{\rm max}$.  From the congestion avoidance mode,
depending on number of dupACKs, the subsequent mode is either fr/fr or
time-out mode which is discussed next.

If the sender has not received any ACKs, it will not be able to send
any new packets and the time-out timer will eventually expire. The
transmission effectively ceases during this waiting
period. After the time-out period is over a new slow-start mode is
re-initiated with $w=1$ and $ssthr = w^{-}/2$ where $w^{-}$ is the
congestion window after the last ACK was received.

\subsubsection{Source Dynamics}
\label{sec:source_dynamics}
In the following subsection, we revisit Bohacek \ets hybrid TCP source
model~\cite{Bohacek03}. A new model for fr/fr mode is introduced along
with a more accurate sending rate formula. Transition to time-out mode
is naturally embedded without further modeling effort.  We start with
the continuous time (CT) domain model of slow-start mode.  Note that
our primary unknown in CT domain of source dynamics is the congestion
window size.  The sending rate is a derived quantity from the
congestion window size variable.
\fi              %% end Commented out for short paper

In {\it slow-start} mode of TCP-New Reno, the congestion window size
$w_f$ of a given flow $f \in\mathcal{F}$ is governed by the following
ordinary differential equation~\cite{Bohacek03,Hybrid04}:
\begin{equation}
\frac{d}{dt}w_f(t) = \frac{\log m_{ss}}{RTT_f} w_f(t)~,
\label{ss_cwnd_eqn}
\end{equation}
where $m_{ss}$ is a multiplicative constant such that $w_f$ is being
multiplied by $m_{ss}$ every RTT. $w_f$ is initialized to 1 whenever
the source enters slow-start mode. Hence, in slow-start continuous
time (CT) domain we solve the initial value ODE problem.

In TCP flow control $w_f$ is used to limit the number of packets to be
sent out from the sender. Because the sender is able to send more
packets only when the ACKs arrive, effectively, only $w_f$ number of
packets are sent in $RTT_f$ time window. With the assumption that the
packets (or flow $f$) are sent over $RTT_f$ period with evenly spaced
pattern, the instantaneous sending rate $s_f$ should be
\begin{equation}
s_f(t) = \frac{w_f(t)}{RTT_f}~.
\label{sendrate_eqn1}
\end{equation}

Here we should note that the evenly spaced packets over $RTT_f$ time
period is a rather strong assumption. It may be a good model when
traffic flow is up and running for some time so that ACKs become
spread over time due to a certain random process. However, when
traffic is at its early stage, like the very first slow-start mode,
TCP tends to burst out traffic. In such cases the sending rate model,
Eqn.~(\ref{sendrate_eqn1}) might be poor. We revisit this question in
the discussion section.

Bohacek \et used a coefficient $\beta$ to adjust the
sending rate formula as follows:
\begin{equation}
s_f(t) = \frac{\beta w_f(t)}{RTT_f}~,
\label{sendrate_eqn2}
\end{equation}
where $\beta = 1.45$ is obtained from the trace comparison against
{\bf ns-2} simulation. However, we argue that it might be an artifact
from the hybrid simulation paradigm employed in Bohacek \ets
paper~\cite{Bohacek03}.

During the {\it congestion avoidance} mode every ACK increases
congestion window size by a small portion of the current window size,
\begin{equation}
w_f^{\rm new}  = w_f^{\rm old} + \frac{L}{w_f^{\rm old}}~,
\end{equation}
where $L$ is a real positive number (normally $L=1$). The ODE model
that governs the congestion window size evolution in the congestion
avoidance mode is
\begin{equation}
\frac{d}{dt} w_f(t) = \frac{L}{RTT_f}~.
\label{ca_cwnd_eqn}
\end{equation}
The model shows a linear increase of congestion window size in
congestion avoidance mode as long as no drop is detected.  Occurrence
of dupACKs or no ACK ends the congestion avoidance mode and is
followed by fr/fr or time-outs.

In TCP-New Reno policy fr/fr mode is initiated whenever the sender
receives triple dupACKs. These dupACKs do not increase the congestion
window size in real TCP flow control. Therefore, it is not accurate if
the state remains at either slow-start or congestion avoidance mode
since they are governed by their own dynamic discipline which evolves
the congestion window size in time.  In order to model congestion
window evolution correctly over the state transition, the source
should enter fr/fr once a drop is detected. However the actual
transition should be delayed by the right amount of time to account
for elapsed time between the drop event and the arrival of dupACKs in
the real system. Due to lack of space, we redirect readers
to~\cite{Hybrid04} for the details on the hybrid model of fr/fr mode.

In our implementation, whenever a drop is detected, the source enters
fr/fr. In fr/fr, if ACKs cease to return, the congestion window stays
at a constant value and the number of outstanding packets is not
decreased resulting in no new packets being sent for some time period.

For the {\it time-out} mode, a parameter $t_{\rm out}$ is introduced.
It is set to 0 when the source enters fr/fr. $t_{\rm out}$ keeps on
increasing with the simulation clock. If $t_{\rm out}$ exceeds the
given time-out period, say, $RTO$, then the source enters slow-start
mode with $w_f = 1$. Note that if time-out occurs in the simulation,
the fr/fr state entered exhibits no effect on congestion window
dynamics because no new packets were sent and no ACKs were received by
the sender.

\subsubsection{Queue Dynamics}
\label{sec:queue_dynamics}
Suppose $\omega$ and $\nu$ are in-bound (west) and out-bound (east)
links, respectively, in the traffic path of a flow $f$.  Let
$\mathcal{F}_\alpha$ be a set of such flows sharing the links $\omega$
and $\nu$.  We have the following equation describing the queue
changing rate
\begin{equation}
\frac{d}{dt} q^{\omega}_{f} = a^{\omega}_f - s^{\nu}_f - d^{\omega}_f~,
\label{q_eqn}
\end{equation} 
where $q^{\omega}_f$ is the size of flow $f$ buffered at
$q^{\omega}$. $a^{\omega}_f$ is flow arrival rate from the link
$\omega$. $s^{\nu}_f$ denote flow sending rate into the link $\nu$.

Suppose there is no packet loss during transmission over the links in
a network, then incoming flow into a link $\omega$ must all exit from
that link, that is, $a^{\omega}_f(t) = s^{\omega}_f(t-\tau_{\omega})$
where $\tau_{\omega}$ is the link propagation delay. Here
$s^{\omega}_f(t-\tau_{\omega})$ is readily available at time $t$.

Let $q_{\rm max}^{\omega}$ represent maximum queue size associated
with the in-bound link $\omega$. $B^{\nu}$ ($B^{\omega}$) is a given
fixed bandwidth of the link $\nu$ ($\omega$).

Integration of Eqn.~(\ref{q_eqn}) without the drop term gives
\begin{equation}
q^{\omega}_{f}(t) = q^{\omega}_{f}(t_0) 
+ \int_{t_0}^{t} (a^{\omega}_f(t') - s^{\nu}_f(t')) \ dt'~.
\label{q_inteqn}
\end{equation}
Here $s^{\nu}_f$ is the sending rate into the link $\nu$, {\it i.e.}, 
the sending rate from the $q^{\omega}$. 

Unlike the queue model by Bohacek \ets, the states are not determined
by the queue size $q^{\omega}_{f}$.  Rather, the bandwidth of the
out-bound link, $B^{\nu}$, and the size of the arriving and departing
packet determine the state of a queue. For the flow sending
$s^{\nu}_f$, the sending rate becomes,
\begin{equation}
s^{\nu}_f = \left\{ 
 \begin{array}{l}
  \frac{q^{\omega}_{f}}{\sum_{\bar{f} \in\mathcal{F}_\alpha}q^{\omega}_{f}},
  \quad \mathrm{if} \ \ 
  \sum_{\bar{f} \in\mathcal{F}_\alpha}q^{\omega}_{f} \geq B^{\omega} \\ \\

  a^{\omega}_{f} +q^{\omega}_{f}, 
  \ \mathrm{if} \ \ 
  \sum_{\bar{f} \in\mathcal{F}_\alpha} (a^{\omega}_{f} +q^{\omega}_{f})
   \leq B^{\omega} \\ \\

  q^{\omega}_{f} + 
  \frac{a^{\omega}_{f}}{\sum_{\bar{f} \in\mathcal{F}_\alpha}a^{\omega}_{f}}
  (B^{\omega} - \sum_{\bar{f} \in\mathcal{F}_\alpha}q^{\omega}_{f}), 
  \ \mathrm{o.w.}
  \end{array} \right.
\label{sendrate_eqn}
\end{equation}
Eqns.~(\ref{q_inteqn}) and~(\ref{sendrate_eqn}) completely describe
the queue size and the flow sending rate changes in time.  However,
the sum of solutions $\sum q^{\omega}_{f}$ may be greater than
$q^{\omega}_{\max}$ which should be understood as buffer overflow or
flow drop.

\iffalse         %% Commented out for short paper
The drop model should describe which flows suffer losses at the time a
drop occurs. For example, one can drop a larger flow first or vice
versa. A probability distribution $p(f)$ may be used to select a flow
to drop, for instance, $p(f)$ can be
\begin{equation}
p(f) = 
\frac{a^{\omega}_f}{\sum_{\bar{f} \in\mathcal{F}_\alpha}a^{\omega}_{\bar{f}}}~.
\end{equation}

Another question is, if a flow is decided to be dropped, what is the
right size of the flow that should be dropped. We propose the
following model. Let $D^{\omega}_f(t)$ denote the size of dropped flow
$f$, we model $D^{\omega}_f(t)$ as,
\begin{equation}
D^{\omega}_f (t) 
= \max{ \left\{ 0, 
\Bigg\lceil \frac{a^{\omega}_{f}\left( \sum_{\bar{f} \in\mathcal{F}_\alpha} q^{\omega}_{\bar{f}}(t)-q^{\omega}_{\max}\right)}{\sum_{\bar{f} \in\mathcal{F}_\alpha}a^{\omega}_{\bar{f}}} \Bigg\rceil \right\} }
\label{drop_formula}
\end{equation}

Eqns.~(\ref{q_inteqn})~-~(\ref{sendrate_eqn}) are not entirely
different from the Eqn.~(\ref{q_eqn}) and Eqns.~(\ref{q_empty}) -
(\ref{q_full}).  Eqns.~(\ref{q_inteqn})~-~(\ref{sendrate_eqn}) take an
integral form and $s^{\nu}_f$ is based on packet arrival rate
$a^{\omega}_f$ and queue size $q^{\omega}_{f}$ instead of the queue
state. Note that Bohacek \ets drop rate $d^{\omega}_{f}$ is determined
by queue state only, however, in our model, the value of the drop
size~(\ref{drop_formula}) is a deduced quantity.
\fi

\subsection{Solution Techniques}
We have created the simulator without relying on any existing
simulation frameworks, such as, Stateflow/Simulink~\cite{simulink},
Modelica~\cite{modelica}, Ptolemy~\cite{ptolemy}
etc. Therefore we have full control of the solution method of the
hybrid system, numerical scheme to be used in CT domain, and scope of
component model. Furthermore, it is easy to identify any computational
bottleneck and the sources of inaccuracy in the model specific to the
implementation.

In general FSM is not a timed model, however, its composition with CT
domain requires detection of any events that may be triggered on the
time axis. Each state in FSM is being refined during the continuous
evolution of the sources and the queues in our model. At each time
abscissa, which may be a priori chosen or dynamically updated, active
states are evaluated. If the state transition condition is enabled,
then the FSM makes corresponding transitions according to the
condition and the system continues to evolve.

Assume that CT-FSM composition refers to a master clock for their
time.  Consider one tick of that master clock to be the time step
$\Delta t$ of our hybrid system simulation. It is trivial that a
smaller $\Delta t$ introduces small error in state transition. In our
simulation, we do not allow FSM state transitions during an epoch of
length $\Delta t$.  Now, CT domain simulation can be performed as
accurately as possible, say, over an interval $[n\Delta t, (n+1)\Delta
t]$ where $n=0,1,\dots$.  At each time point, $n\Delta t$, current
states are evaluated, checked against transition enablers, and changes
are made to the states, as necessary.

The tasks described above can be summarized in the following
algorithm.

\begin{center}
{\bf Algorithm for the Hybrid Simulation}
\end{center}
{\it\small
Input:\\
- A network $(\mathcal{N},\mathcal{L})$,\\
- Bandwidth of all the links $l\in\mathcal{L}$,\\
- Maximum queue size at all the queues,\\
- Set of source nodes $\mathcal{S}$,\\
- Set of destination nodes $\mathcal{D}$,\\ 
- Source wake up time and interval,\\
- Time-step $h$,\\
- End of simulation time $T_{end}$. \\

\begin{tabbing}
Construct $\mathcal{L}_f$ for each $f\in\mathcal{F}$ \\
Set $t = 0$ \\
{\bf while} $t\leq T_{end}$ {\bf do} \\
\quad $t = t + h$ \\
\quad Wake-up sources as scheduled \\
\quad Solve equations for all $s\in\mathcal{S}$ and $q\in\mathcal{N}$ \\
\quad {\bf for} all $s\in\mathcal{S}$ {\bf do} \\
\quad\quad {\bf switch} mode(s): \\
\quad\quad {\bf case} (mode(s)=slow start):\\
\quad\quad\quad {\bf if} cwnd(s) $\geq$ {\it ssthr} {\bf then} \\
\quad\quad\quad\quad $\mathrm{mode(s)} \stackrel{t+\mathrm{delay}}{\longrightarrow}$ c.a. \\
\quad\quad\quad {\bf else if} flow $f$ from $s$ suffer drop {\bf then} \\ 
\quad\quad\quad\quad $\mathrm{mode(s)} \stackrel{t+\mathrm{delay}}{\longrightarrow}$ fr/fr \\
\quad\quad\quad {\bf else} \\
\quad\quad\quad\quad remain in slow start mode\\
\quad\quad {\bf case} (mode(s)=fr/fr):\\
\quad\quad\quad {\bf if} $n^{\rm drop}_f=0$ {\bf then} \\
\quad\quad\quad\quad $\mathrm{mode(s)} \stackrel{t}{\longrightarrow}$ c.a.\\
\quad\quad\quad {\bf else} \\
\quad\quad\quad\quad remain in fr/fr \\
\quad\quad {\bf case} (mode(s)=c.a.):\\
\quad\quad\quad {\bf if} flow $f$ from $s$ suffer drop {\bf then} \\
\quad\quad\quad\quad $\mathrm{mode(s)} \stackrel{t+\mathrm{delay}}{\longrightarrow}$ fr/fr\\
\quad\quad\quad {\bf else} \\
\quad\quad\quad\quad remain in c.a. \\
\quad {\bf end for}\\
\quad {\bf for} all queue {\bf do} \\
\quad\quad evaluate and set queue state for the next iteration \\
\quad {\bf end for}\\
{\bf end while}
\end{tabbing}
}


% folks, this refers to equations we have commented out - andy
\iffalse         %% Commented out for short paper
Now we comment on a numerical scheme for 
Eqns.~(\ref{ss_cwnd_eqn})~-~(\ref{ca_cwnd_eqn}) which describes 
dynamics of the congestion window evolution.  We have, in their general form,
\[
w' = g(t,w), \quad w(0) = w_0
\]
where $w_0$ is given.

It is well known that Euler's method~\cite{Conte} is not practical 
due to the requirements of small step size for reasonably accurate
numerical solutions. Runge-Kutta methods do not require 
higher order derivative by evaluating $g(t,w)$ at selected points on each
interval of computation.  Higher order methods can be obtained by paying
extra for the evaluation of $g$. For example, Runge-Kutta method of order 2
employs the following recursive formula:
\[
\begin{array}{l}
 w_{n+1} = w_n +\frac{1}{2}(k_1+k_2), \\
 \qquad\mathrm{where}\quad k_1 = hg(t_n, w_n), \\
 \qquad\qquad\quad\  k_2 = hg(t_n+h, w_n+k_1)~.
\end{array}
\]
Here $t_n=nh$ and $w_n = w(t_n)$. The local error of this method is of
order $h^3$ while Euler's method is of order $h^2$. Henceforth, we can
use larger step size or save computation time with higher order
numerical scheme.  As one might expect, in terms of computational
efficiency, we found that the larger the hybrid simulation time step,
the better it is with a higher order method.
\fi              %% end Commented out for short paper

Finally, we remark that the proposed solution approach is somewhat
similar to the Time-stepped Hybrid Simulation (TSHS)~\cite{Guo00a} and
shares the idea of packet smoothing, however, the concept of hybrid
system of CT-FSM composition is fundamentally different from TSHS.

\vspace{-.1in}
\section{Hybrid Model \& Simulation Validation}% Marina, Andy, Amogh
\begin{figure}[ht] % Figure 1
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/simpletop.eps}
\psfig{figure=figs/simpletop.eps, height = 0.6in}
\end{center}
\caption{A Simple Topology with 1 TCP New-Reno Source.}
\label{simpletop}
\end{figure}

\begin{figure}[ht] % Figure 2
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/dumbbelltop.eps}
\psfig{figure=figs/dumbbelltop.eps, height = 1.4in}
\end{center}
\caption{A Dumbbell topology with 4 TCP New-Reno Sources.}
\label{dumbtop}
\end{figure}
\subsection{Simulation Set Up \& Environment} % Andy/Amogh
Our simulation studies comprise multiple experiments using the
packet-based {\bf ns-2} simulator and the hybrid model-driven
simulator that we have developed. Since we are interested in comparing
the two simulators we had to use the same traffic characteristics for
both simulators. Furthermore the specific choice of the traffic
pattern is dictated by how well it models network
traffic. Experimental studies have shown that individual sources of
traffic can be approximated by ON/OFF processes, where the On and Off
periods have sub-exponential distributions. Within the ON state, a
source transmits at peak rate. We use this model for our experiments
with both the {\bf ns-2} and the hybrid simulations. Packets are sent
at a fixed rate during ON state while no packets are sent during OFF
state. Both on and off periods are taken from a Pareto distribution
with constant size packets. These traffic sources can be used to
generate aggregate network traffic that exhibits the long range
dependency seen in the IP network traffic.


\subsection{Simulation Validation \& Results} % Marina
The first goal of our experimental set up was to baseline the
performance of our hybrid model using well known packet level
simulators such as {\bf ns-2}. For this purpose we used two
topologies. A simple topology as shown in Figure~\ref{simpletop} with
a single TCP New-Reno source and a dumbbell topology as shown in
Figure~\ref{dumbtop} with 4 TCP New-Reno sources.

For the {\bf ns-2} simulations we used an identical TCP source model
with no background traffic. The simple topology is used to evaluate
the behavior of the queue dynamics as well as TCP source behavior. It
consists of a single edge and two network nodes. The link propagation
delay was 2ms. In the dumbbell topology, we have 4 TCP sources that
are aggregated at the queue for router 1 and each of these sources
have link delays of 1, 2, 3, and 4ms each. All four TCP sources are
destined for the same destination node {\bf d}. The queue size is set
to 15 packets with each packet consisting of 512 bytes. The run time
for each of the simulations was 1000ms. The TCP flows were triggered
to start at 5ms. The metrics used for comparing the hybrid simulator
with the {\bf ns-2} simulator are, the queue sizes and the congestion
window sizes of the TCP source.

\begin{figure}[!ht] % Figure 4
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/QSizeComp.ps}
\psfig{figure=figs/QSizeComp.ps, height = 2.75in}
\end{center}
\caption{Comparison of queue size changes using the hybrid model and
{\bf ns-2} of the Simple Topology case~\ref{simpletop}. Queue size
changes are evaluated using different time step values (0.25, 0.5,
1.0) in the hybrid simulator.}
\label{Qsizecomp}
\end{figure}

Figure~\ref{Qsizecomp} shows the queue size changes of the simple
topology case~\ref{simpletop} using different time steps in the hybrid
simulator as well as in {\bf ns-2}. The queue sizes computed using the
finer time steps in the hybrid model are much closer to the actual
behavior. However using a finer time step increases the computational
complexity. The queue size changes obtained by the hybrid simulator
using a time step of 0.25 provides the closest match to the queue size
change observed in {\bf ns-2}.

\iffalse         %% Commented out for short paper
In the dumbbell topology we simulate 4 TCP flows each with links of
different delay values but having the same destination node. We do not
assume any background traffic.

Figure~\ref{CwndHybDumbComp} shows the evolution of the congestion
window of the 4 different sources. Note that as expected in steady
state all of the TCP sources are synchronized to a saw tooth pattern
with a period of 100ms. The {\bf ns-2} simulation for a similar topology is
shown in Figure~\ref{CwndNsDumbComp}.

\begin{figure} % Figure 5
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/CwndHybDumbComp.ps}
\psfig{figure=figs/CwndHybDumbComp.ps, height = 2.60in}
\end{center}
\caption{Congestion window sizes evolution over time: 4 sources in the
dumbbell topology using the hybrid simulation.}
\label{CwndHybDumbComp}
\end{figure} 

\begin{figure} % Figure 6
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/CwndNsDumbComp.ps}
\psfig{figure=figs/CwndNsDumbComp.ps, height = 2.60in}
\end{center}
\caption{Congestion window sizes evolution over time: 4 sources in the
dumbbell topology using {\bf ns-2}.}
\label{CwndNsDumbComp}
\end{figure}

Note that in the steady state a good match is obtained for congestion
window evolution in the hybrid as well as the {\bf ns-2} models. The
average values of the steady state congestion window sizes obtained
using the hybrid model and {\bf ns-2} are in Table~\ref{tab:cwnd}.
\fi %% end Commented out for short paper

\begin{figure}[!htb] % Figure 7
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/QSizeDumb.ps}
\psfig{figure=figs/QSizeDumb.ps, height = 2.60in}
\end{center}
\caption{Comparison of the queue size changes: the hybrid model {\sl vs.}
{\bf ns-2}.}
\label{QSizeDumb}
\end{figure} 
Figure~\ref{QSizeDumb} compares the queue size changes between the
hybrid and the {\bf ns-2} simulations for the Dumbbell topology
case~\ref{dumbtop}. As the simulation time progresses and reaches a
steady state, we obtain a close match between the queue behavior of the
{\bf ns-2} and the hybrid models.

We obtained excellent agreement in congestion window size evolution
for the both test cases. All the results are not shown in this short
version of paper except the comparison of the average congestion window
from hybrid system simulation and {\bf ns-2} of the Dumbbell topology
case, Table~\ref{tab:cwnd}.
\begin{table}[h]
\begin{center}
 \begin{tabular}{|c||c|c|c|c|}\hline
 \ & ${\rm source}_1$ & ${\rm source}_2$ & ${\rm source}_3$ & ${\rm source}_4$ 
 \\ \hline \hline
 hybrid & 26.92 & 19.92 & 15.89 & 13.84 \\ \hline
 ns-2   & 26.92 & 19.82 & 16.02 & 13.94 \\ \hline
 \end{tabular}
\end{center}
\caption{Dumbbell topology, steady state ($t \geq$ 500ms) average
congestion window size.}
\label{tab:cwnd}
\end{table}


\vspace{-.1in}
\section{Simulation of Large Network Topologies}
In order to study the effectiveness of the hybrid simulator we
evaluated its performance using a larger topology. We compare the
behavior of queue sizes under different TCP source configurations for
both the hybrid simulator and {\bf ns-2}.

\begin{figure} % Figure 8
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/us_top.eps}
\psfig{figure=figs/us_top.eps, height = 2.50in}
\end{center}
\caption{US Topology loaded with 53 sources: A dashed-numbers ({\it
e.g.} 1-8-7-6) denotes the path of a flow. The parenthesized number
represents how many flows are in that path. }
\label{UStop}
\end{figure}

\subsection{Network Topology} 
Figure~\ref{UStop}, called to be {\it US Topology}, shows a network of
8 nodes connected by duplex-links of 100 Mbps bandwidth and 2ms
link-delay. Links 2-3 and 8-7 have higher, 1000 Mbps, bandwidth with
2ms link-delay also.  For all the nodes, maximum queue size is set to
50 packets. Queue sizes are traced for the link 6-7 (L1), the link 4-5
(L2), and the link 2-3 (L3). We have used 53, 86, and 129 TCP sources
where destination nodes are spread over the network.

\subsection{Results} 
\begin{figure}
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/Q3SizeComp.ps}
\psfig{figure=figs/Q3SizeComp.ps, height = 2.60in}
\end{center}
\caption{Comparison of queue size changes using the hybrid model and
{\bf ns-2} for US topology. Queue size changes are evaluated using
different number of sources.  Legend: $\cdots$ {\bf ns-2} and --
hybrid}
\label{Q3SizeComp}
\end{figure}
Figure~\ref{Q3SizeComp} shows the change in queue (Q2) size under
three different source configurations (53, 86 and 129 sources each)
for both the {\bf ns-2} as well as the hybrid simulator.  In our
simulation scenarios, of all the queues in the network this particular
queue was the one that had the most discrepancy with the {\bf ns-2}
simulation.  However note that even this worst case deviation from
{\bf ns-2} is not very significant as can be seen from
Table~\ref{tab:q3}.
\begin{table}[!h]
\begin{center}
 \begin{tabular}{|c||c|c|c|}\hline
\  & ${\rm Q}_1$ & ${\rm Q}_2$ & ${\rm Q}_3$\\ \hline\hline
53  connections & (23.7:24.8)  & (21.0:22.3)  & (8.7:10.5) \\ \hline
86  connections & (24.4:23.8)  & (20.5:22.5)  & (11.8:13.0) \\ \hline
129 connections & (28.5:28.5)  & (13.9:16.4)  & (21.0:20.6) \\ \hline
 \end{tabular}
\end{center}
\caption{US topology average queue length for Q1, Q2, Q3 written for (hybrid:ns-2)}
\label{tab:q3}
\end{table}

\vspace{-.1in}
\section{Discussion \& Conclusion} % Everyone
In this section we discuss the sending rate model~(\ref{sendrate_eqn1})
and the hybrid model implementation of TCP and complexity issues. We conclude 
the section with a brief summary of the paper.
 
\subsection{Transport Layer \& Application Layer} % Wonsuck
In Sec.~\ref{sec:TCP} we pointed out that the sending rate
model~(\ref{sendrate_eqn1}) might be inappropriate due to the bursty
nature of the TCP protocol and the dependency on packet availability
from applications.

The model in equation~(\ref{sendrate_eqn1}) sends out packets (flow)
over a time interval of length RTT. More specifically, if congestion
window size is 30 and RTT is 6 ms then 5 packets are sent per 1 ms in
our model. In real situation, it is more likely to send all the 30
packets almost instantaneously. Hence if the bandwidth of the
out-bound link is not capable of processing all the incoming traffic,
the queue overflows. However, with the model in
equation~\ref{sendrate_eqn1}, the queue has enough time to process the
flows that are arriving spread out over time. Thus, the
model~(\ref{sendrate_eqn1}) is more appropriate at the asymptotic
stage, when the packets are more evenly spread out.

\subsection{Implementation Issues} % Wonsuck
Our current hybrid system simulator employs a fixed time-step
approach. More specifically, we use the notion of a global clock and
advance time by a fixed time-step till the end of simulation time.
After each time-step, all the sources and queues are recomputed and
checked against the transition enablers.  This approach allows us to
accurately incorporate propagation delays without further modeling
effort. On the other hand, because the checks are carried out
regardless of the states and the events at any time interval, its
performance is not optimal.  In future work, we plan to implement more
intelligent time marching techniques --- the resulting simulator would
provide a better basis for studying the performance characteristics of
hybrid based simulations.

\subsection{Conclusions} % Marina & Andy
In this paper, we have demonstrated the strength of the hybrid system
modeling and simulation method for TCP network. New models,
enhancements, and revisions were proposed and studied. We have used
the time-stepped solution method to solve the hybrid system model of a
TCP network. The extensive experiments showed good agreements with the
results from Network Simulator {\bf ns-2}. However, we have not yet
studied the stability and the convergence issues of the numerical
methods we have employed. The robust simulation tool which we have
developed can be used to analyze complex network behavior so that
service providers are better equipped to support the required quality
of service (QoS) needs of their applications.


% folks, we do not need this - andy
\iffalse         %% Commented out for short paper
\appendix
%\setcounter{subsection}{0}
\section{Appendix} % Wonsuck
\subsection{Equation for Congestion Window Size}
Consider slow-start mode in TCP source dynamics. In slow-start mode,
the congestion window size increases exponentially in time.  Suppose
that the window size is multiplied by $m_{ss}\in R^{+}$ for every RTT,
where $R^{+}$ is the set of real positive number. Usually $m_{ss}=2$
since most of of the TCP protocols double the congestion window size
for every RTT.  Let $RTT = n\Delta t$ for $\Delta t\in R^{+}$ and
$n=0,1, \dots$~.

We assume that congestion window $w$ uniformly increases over $RTT$
time period $[t,t+RTT]$, that is, $w(t+\Delta t) = \sqrt[n]{m_{ss}}
w(t)$.  Then we have,
\begin{equation}
\frac{w(t+\Delta t)-w(t)}{\Delta t} 
= w(t) \frac{(m_{ss}^{\Delta t/RTT} - 1)}{\Delta t}~.
\label{w_diff}
\end{equation}

Take $\lim_{\Delta t\to 0}$ on both sides of Eqn.~(\ref{w_diff}) and
applying L'Hospital's rule. We obtain,
\[
w'(t) = \ln(m_{ss})\frac{w(t)}{RTT}~. 
\]

The governing equation for congestion avoidance mode,
Eqn.~(\ref{ca_cwnd_eqn}) can be obtained in a similar manner.

\subsection{Correction Coefficient $\beta$}
Bohacek \et used a correction factor $\beta=1.45$ for the sending rate
formula~(\ref{sendrate_eqn2}) to best match their simulation results
to the ones from {\bf ns-2}. Without the specifics of the numerical
method used in Bohacek \ets work, we conjecture that the presence of
$\beta$ is necessary if time points for event checking and triggering
is RTT apart.

Let $m_{ss}=2$ for the following discussion. Consider slow-start mode
which is continued from $t=t_0$. Then congestion window $w$ becomes
$2^n$ at $t=t_0+nRTT$. If a fixed $w$ is used throughout the time
interval $[nRTT, (n+1)RTT]$, the total number of packets sent during
this time period is exactly $w$ provided that
Eqn.~(\ref{sendrate_eqn2}) is used for the packet sending process.
\begin{figure}[t]
\begin{center}
%\epsfxsize=7.5cm \epsffile{figs/beta_explain.eps}
\psfig{figure=figs/beta_explain.eps, height = 2.60in}
\end{center}
\caption{Schematic description congestion window size changes for the
TCP controlled flow in slow-start mode. With infinitesimal packets the
congestion window size supposedly follows the solid curve. The
step-wise increase may represent what happens in a real network. The
dashed line indicates a fixed value of window size during RTT time
period.}
\label{fig:beta}
\end{figure}

However, in reality, the congestion window size increases during this time
interval due to arriving ACKs, therefore the source is able to send more
packets.  It can be explained schematically in
Figure~\ref{fig:beta}. The dashed line represents fixed
window size ($w=2^n$) over $[nRTT, (n+1)RTT]$, the step-wise variation may
represent what happens in reality, and the solid curve is a plot of
$y=2^{x/RTT}$.

With the sending rate model~(\ref{sendrate_eqn2}), {\it i.e.} $r w/RTT$, the area between the dashed line and the time axis represents
the size of flow sent in $[nRTT, (n+1)RTT]$, where $n=4$ in the
figure. It is always smaller than the area below the step-wise
function provided the slow-start mode persists.  Suppose that the
congestion window size variation can be closely approximated by 
$y=2^{x/RTT}$ curve, {\it i.e.} with infinitesimal $\Delta t$, the area
under the $y=2^{x/RTT}$ curve for $[nRTT, (n+1)RTT]$ is
\[
\int_{nRTT}^{(n+1)RTT} 2^{x/RTT} dx = 2^n\frac{RTT}{\ln(2)}~.
\]
Note that $(\ln(2))^{-1} \approx 1.4424$ which is close to the value of
$\beta = 1.45$ reported in~\cite{Bohacek03}.
\fi              %% end Commented out for short paper

%\section*{Acknowledgments}
%The authors would like to thank Lawrence Cowsar and Sanjoy Paul both
%at Bell Labs for their help in bringing this project to fruition.

\begin{thebibliography}{1}
\bibitem{ns2}
The VINT Project on NS2,
\newblock {``The Network Simulator'', ns2: http://www.isi.edu/nsnam/ns}

\bibitem{ssfnet}
SSFNet,
\newblock {``The Scalable Simulation Framework'', 
http://www.ssfnet.org/homePage.html}

\bibitem{jsim}
J-Sim,
\newblock {``A component-based simulation environment'', 
http://www.j-sim.org}

\bibitem{Misra99a}
V. Misra, W-B. Gong, and D. Towsley,
\newblock {``Stochastic Differential Equation Modeling and Analysis of TCP Windowsize Behavior'',}
\newblock{Performance '99 (Istanbul, Turkey, October 1999)}

\bibitem{Misra99b}
V. Misra, W-B. Gong, and D. Towsley,
\newblock {``A Fluid-based Analysis of a Network of AQM Routers Supporting TCP Flows with an Application to RED'',}
\newblock{Proceedings of ACM SIGCOMM'00, (Stockholm, Sweden, September 2000)}

\bibitem{Altman}
E. Altman, K. Avrachenkov, and C. Barakat,
\newblock{``A Stochastic Model of TCP/IP with Stationary Random Losses'',}
\newblock{ACM SIGCOMM Computer Communication Review, 30: 231-242, 2000}

\bibitem{Jacobson}
V. Jacobson,
\newblock{``Congestion Avoidance and Control'',}
\newblock{Computer Communication Review, vol. 18, 1988}

\bibitem{Guo00a}
Y. Guo, W-B. Gong, and D. Towsley,
\newblock{``Time-stepped Hybrid Simulation (TSHS) for Large Scale Networks'',}
\newblock{Proceedings of IEEE Infocom 2000, 441-450, 2000}

\bibitem{Gu04}
Y. Gu, Y. Li, and D. Towsley,
\newblock{``On Integrating Fluid Models with Packet Simulation'',}
\newblock{Proceedings of IEEE Infocom 2004, 2004}

%\bibitem{Yan99}
%A. Yan and W-B. Gong,
%\newblock{``Time-Driven Fluid Simulation for High-Speed Networks'',}
%\newblock{IEEE Trans. on Information Theory, vol. 45, no. 5, July 1999}

\bibitem{Bohacek03}
S. Bohacek, J.P. Hespanha, J. Lee, and K. Obraczka,
\newblock{``A Hybrid Systems Modeling Framework for Fast and Accurate 
Simulation of Data Communication Networks'',}
\newblock{ACM SIGMETRICS'03, June 2003}

\bibitem{Schaft}
A.J. Van Der Schaft and J.M. Schumacher,
\newblock{An Introduction to Hybrid Dynamical Systems (Lecture Notes in Control and Information Sciences, 251)}
\newblock{Springer-Verlag Telos, 1999}

\bibitem{Hybrid04}
W. Lee, M. Thottan, R. Viswanathan, A. Gokhale, and A. Kavimandan
\newblock{``Network Simulation via Hybrid System Modeling: A Time-Stepped Approach'',}
\newblock{Lucent Technologies Technical Memorendum, ITD-05-46094C, March 2005.}

\bibitem{Conte}
S.D. Conte and C. Boor,
\newblock{``Elementary Numerical Analysis (An Algorithmic Approach)''}
\newblock{McGraw-Hill, 1981}

\bibitem{simulink}
The MathWorks Inc.,
\newblock{``Simulink'', http://www.mathworks.com/products/simulink}

\bibitem{modelica}
The Modelica Association,
\newblock{``Modelica: '', http://www.modelica.org}

\bibitem{ptolemy}
Dept. of EECS, University of California at Berkeley, 
\newblock{``The Ptolemy Project'', http://ptolemy.eecs.berkeley.edu}

\end{thebibliography}

\end{document}
