In recent times, the functioning of various aspects of modern society-ranging from the various infrastructural utilities such as electrical power, water to socio-economical aspects such as telecommunications, business, commerce, education-has become critically reliant on communication networks, and particularly on the Internet. With the migration of critical facilities to the Internet, it has become vitally important to ensure the reliability and availability of networks. In this paper, we study various modeling and analysis techniques that can aid in the study of reliability of communication networks. In this regard, we provide background on the modeling techniques (such as reliability block diagrams, fault trees, Markov chains, etc.) and analysis techniques (such as mathematical analytical methods, simulation methods, and formal methods). Apart from providing the necessary background, we also critically evaluate the pros and cons of different approaches, and provide a detailed survey of their applications in communication networks. To the best of our knowledge, this is the first in-depth review of the application of reliability modeling and analysis techniques in communication networks. work, the ability of a network to maintain an acceptable reliability level under extreme environmental conditions and assess the impact of design changes on the reliability of the overall network [17]. Similarly, the availability prediction allows us to evaluate various maintenance design options to achieve the desired availability of the network [18].The qualitative and quantitative reliability analysis requires the selection of an appropriate mathematical modeling and analysis technique. The modeling technique must be able to effectively capture the important parameters of the real system and the analysis technique should be capable of providing insights into the system behavior without running (or executing) the real system. There are numerous techniques that can provide analysis in the early phase, when only initial details are available of the design, and there are other techniques that cater the analysis of the later design phases, when more precise implementation details are available [16]. Some of the most widely used formalisms/techniques for modeling reliability and availability of communication networks are: Reliability Block Diagram (RBD) [19], Fault Tree (FT) [20], and Markov Chain (MC) [21]. Traditionally, the models developed using these techniques are analyzed using analytical methods or simulation tools.Recently, the computer networks community has shown great interest in the utilization of formal methods [22] as a reliability analysis technique for communication networks. Formal methods use mathematical logic to precisely model the system's intended behavior and deploy mathematical reasoning to construct an irrefutable proof that the given system satisfies its requirements. This kind of mathematical modeling and analysis makes formal methods an accurate and rigorous analysis method compared to the traditional a...