The significance of the Internet and electronic communication triggered much research into efficient data transmission protocols, including the question of how to handle errors or erasures. One important theory here is Subspace Coding, where data is encoded into a basis of a vector space and the network is allowed to form random linear combinations. The main contribution of this thesis is the development of a coding theory using flags. A flag is a sequence of vector spaces which are included in each other. This allows for bigger coding rates than just sending a single subspace and it also yields bigger minimal distances. Furthermore, we can embed both Routing and Subspace Coding into this more general theory. Flags are closely related to symmetric groups, leading us to also develop new insights on combinatorics and combinatorial representation theory on these groups.