This paper analyzes the problem of Co-Simulation. The term Co-Simulation is used to describe a large dynamic system that is simulated by running a group of independently coded subsystem simulators. Very commonly, the Co-Simulation of subsystems faces incompatible boundary conditions, i.e., causal conflicts. These causal conflicts cannot be directly resolved, due to the nonlinearity and/or difficulties in modification of coded subsystem simulators. Causal conflicts result in algebraic constraints. Boundary Condition Coordinators (BCCs) are designed to calculate boundary conditions based on subsystem models and their algebraic constraints. The Co-Simulation, which is modeled as Differential Algebraic Equations, then relies on BCC to provide compatible boundary conditions for subsystem simulators. The high index constraint is reduced to index one by defining a sliding manifold. Different ways of enforcing the sliding manifold are discussed: A new Discrete-Time Sliding Mode (DTSM) controller is devised to serve as a BCC, enforcing sliding manifolds and providing boundary conditions. The multi-rate scheme can guarantee Co-Simulation stability at any given step size of all subsystem simulators, provided the subsystem simulators are tested stable at that step size. An example is given to demonstrate the DTSM method. Advantages and possible future improvements are discussed.