The Internet is becoming increasingly mobile. As the the price of smartphones, tablets, and other portable devices becoming more and more affordable, the mobile access to the Internet is becoming the norm.
Meanwhile, the current Internet architecture is increasingly challenged by emerging communication patterns. While IP was designed to solve the problem of carrying a point-to-point conversation between two entities, in today's dominant applications, such as video streaming, file sharing, and social networking, users are more interested in obtaining desired content rather than talking to a specific node.
Such trends can be expected to continue in the near future and call for a reexamination of the current Internet architecture.
Named Data Networking (NDN) is a proposed future Internet architecture that uses data names instead of host addresses for data delivery. The new architecture incorporates principles that have made the IP protocol suite widely adopted and globally scaled (e.g., the hourglass design and end-to-end principle), but changes the fundamental layer of the architecture to one better suited to modern networks and emerging communication patterns.
In this dissertation, we study how to support mobile and distributed applications through Named Data Networking. Specifically, we focus on addressing two complementary questions: one is how to provide flexible, secure, and yet simple mobility support that serves the applications' need in the mobile environment, and the other is to how to design distributed applications that can fully exploit the benefits brought by NDN's architectural shift.
The first question is motivated by the fact that mobility support in the current Internet still struggles to satisfy the applications' need even though mobility has become a fundamental characteristic of today's Internet. We address this question by providing a new perspective on mobility support in NDN that addresses the weakness in the existing IP mobility solutions as well as utilizes the lessons learned in IP mobility research. By aligning the mobility support with the data-centric nature of the applications, the name-based data retrieval in NDN design, and the broadcast nature of the wireless media, not only does the new approach address the concerns in today's IP mobility solutions, but it also integrates mobility support using the same approach to cover all types of networks in the mobile environment, including ad hoc and delay-tolerant networks.
The second problem is motivated by the observation that distributed applications, such as group text messaging, file sharing, multimedia conferencing, and joint editing, have penetrated into our daily lives and drastically changed the communication patterns, calling for a new Internet architecture and new application design patterns that are freed from the constraints imposed by IP's point-to-point communication model. In this work, we take an application-driven approach to explore the new design patterns that can fully exploit the new opportunities brought by NDN. We propose ChronoSync, an efficient and completely distributed dataset state synchronization protocol to simplify the designs of distributed applications. ChronoSync leverages the flexible naming in NDN to simplify the task of maintaining up-to-date knowledge of a dataset, and exchanges the knowledge among all parties in a compact crypto digest form. Differences in dataset usually can be inferred by comparing the digests, and can be efficiently propagated to all parties using NDN's built-in data multicast capability. We also propose a completely distributed and data-centric security design to achieve the goals of providing data provenance and access control to distribute applications in the absence of a central controller. We validate the proposed new design patterns by developing a distributed file sharing application, ChronoShare, that is based on ChronoSync protocol and secured in a data-centric way. Together with the new mobility support approach, our work represents a step towards a new direction of providing useful building blocks in supporting mobile and distributed applications.