While the server-client model has been a successful architecture for many Internet applications such as web and e-mail services, it does not scale with the number of clients. The scalability problem arises from either the computational capability or the bandwidth of a server which limits the number of clients that can be served at any given time. The research will investigate novel network coding techniques that facilitate the development of highly scalable and reliable distributed systems for media storage and streaming over the Internet using the peer-to-peer platform. The research will 1) explore the Hierarchical Network Coding, a novel coding technique for distributed storage and streaming of multimedia data, 2) characterize the necessary data redundancy level for supporting high quality media streaming applications over the Internet, 3) investigate the efficient data regeneration technique for maintaining the high level of data availability in the presence of peer departures, and 4) study the practical network coding based protocols for efficient media delivery via multiple routes. Beyond the technical contributions, the research has several broader impacts. In particular, the research will move toward making network coding a practical approach for increasing performance and efficiency in decentralized networks. This will include the development of publicly available source codes for network coding techniques and protocols. The technologies developed in this research will be used to start new ventures in multimedia delivery via content distribution and P2P networks. The generality of research will enable to other researchers to explore and apply its results to other types of distributed systems. The project will produce several Masters and PhD students with expertise in networking and coding. Also, the project will contribute to fostering the collaboration between networked systems and coding theory researchers.