In this thesis we investigate a number of problems related to 2-level polytopes, in particular from the point of view of the combinatorial structure and the extension complexity. 2-level polytopes were introduced as a generalization of stable set polytopes of perfect graphs, and despite their apparently simple structure, are at the center of many open problems ranging from information theory to semidefinite programming. The extension complexity of a polytope P is a measure of the complexity of representing P: it is the smallest size of an extended formulation of P, which in turn is a linear description of a polyhedron that projects down to P. In the first chapter, we examine several classes of 2-level polytopes arising in combinatorial settings and we prove a relation between the number of vertices and facets of such polytopes, which is conjectured to hold for all 2-level polytopes. The proofs are obtained through an improved understanding of the combinatorial structure of such polytopes, which in some cases leads to results of independent interest. In the second chapter, we study the extension complexity of a restricted class of 2-level polytopes, the stable set polytopes of bipartite graphs, for which we obtain non-trivial lower and upper bounds. In the third chapter we study slack matrices of 2-level polytopes, important combinatorial objects related to extension complexity, defining operations on them and giving algorithms for the following recognition problem: given a matrix, determine whether it is a slack matrix of some special class of 2-level polytopes. In the fourth chapter we address the problem of explicitly obtaining small size extended formulations whose existence is guaranteed by communication protocols. In particular we give an algorithm to write down extended formulations for the stable set polytope of perfect graphs, making a well known result by Yannakakis constructive, and we extend this to all deterministic protocols.