We study Consensus in synchronous networks with arbitrary connected topologies. Nodes may be faulty, in the sense of either Byzantine or proneness to crashing. Let t denote a known upper bound on the number of faulty nodes, and Ds denote a maximum diameter of a network obtained by removing up to s nodes, assuming the network is (s + 1)-connected. We give an algorithm for Consensus running in time t + D2t with nodes subject to Byzantine faults. We show that, for any algorithm solving Consensus for Byzantine nodes, there is a network G and an execution of the algorithm on this network that takes Ω(t + D2t) rounds. We give an algorithm solving Consensus in t + Dt communication rounds with Byzantine nodes using authenticated messages of polynomial size. We show that for any numbers t and d > 4, there exists a network G and an algorithm solving Consensus with Byzantine nodes using authenticated messages in fewer than t + 3 rounds on G, but all algorithms solving Consensus without message authentication require at least t + d rounds on G. This separates Consensus with Byzantine nodes from Consensus with Byzantine nodes using message authentication, with respect to asymptotic time performance in networks of arbitrary connected topologies, which is unlike complete networks. Let f denote the number of failures actually occurring in an execution and unknown to the nodes. We develop an algorithm solving Consensus against crash failures and running in time O(f + Df ), assuming only that nodes know their names and can differentiate among ports; this algorithm is also communication-efficient, by using messages of size O(m log n), where n is the number of nodes and m is the number of edges. We give a lower bound t + Dt − 2 on the running time of any deterministic solution to Consensus in (t + 1)-connected networks, if t nodes may crash.