In computer networks, service providers are basically unaware of the type of connected nodes. These nodes could be potentially an attacker who would launch an attack at any time during their connections. Hence, service providers must consider all potential types of attackers when they provide service to different nodes. In this thesis, we focus on a particular type of attack named remote operating system fingerprinting. With OS fingerprinting, the attacker tries to recognize the operating system of the server, in order to exploit its vulnerabilities. We first develop an incomplete information two-player game, to analyze the interaction between the server and an unknown connected node. In particular, we consider two types of nodes, i.e., attacker and benign nodes. We analyze the game using perfect Bayesian Nash equilibrium (E) with different conditions. We finally design the BayesDefender algorithm using the calculated E profiles. BayesDefender is not only able to defend against OS fingerprinting but also provide good quality services to benign nodes. We also implement the BayesDefender and show its performance on a real platform. Keywords: Fingerprint Operating System Attack, Game Theory, BayesDefender Algorithm, Perfect Bayesian Nash Equilibrium