CausalSim: Toward a Causal Data-Driven Simulator for Network Protocols