Media Sharing Over P2P

Technology improves and accommodates our everyday life better than ever before. Technology also becomes more affordable day by day. These improvements influence the consumers to choose more computing devices like smartphones and tablets. This improvement increased the number of computing devices he/she manages in his/her day to day life form desktops and laptops to tablet devices and smart phones. This introduced the need for a solution to synchronize and share data across these different kinds of devices.

Goal of the project is to design a low cost solution for sharing content across devices with various form factors [1].  These devices include Desktop computers, Laptops, Tablet devices and Smart phones. Peer to Peer (P2P) networking has many advantages over other networking topologies to connect between nodes and to share data. This opportunity makes peer to peer networking more important than ever before.

This project gave me the opportunity to learn and research how P2P networking can be used in a windows operating system to connect various devices across, share data and send commands to act on data. This assignment includes the development of a proof of concept about how media files like video, image and songs can be shared across different nodes using P2P technology. As part of the proof of concept, I researched and learned how peer nodes can be identified in a peer mesh [2] and how to establish an end to end connection to a remote peer node in the mesh [2]. In order to narrow down the scope of the problem, currently I am focusing on building a solution only for windows platform.

My solution includes 3 components: 1) a Windows Form P2P agent/server application, 2) a P2P client application for window8 tablets developed using windows8 metro technology, 3) a P2P client application for windows phone using Silverlight technologies.

Figure 1 depicts the high level components of the solution from a deployment perspective on different kind of devices. P2P agent application is running on the Desktop and it registers a PeerName and acquires a PNRP [3] host name. A PNRP host name is a public DNS like public hostname which can be contacted over the internet.  There is P2P Viewer application running on the Tablet device and Windows Phone. These Viewer applications connects to the desktop agent application using the PNRP name and send commands to get media content shared on the device.

High level component diagram
Figure 1

Results and Learning

While developing the P2P Agent Service, I have learned that PNRP - the node name resolution protocol used by P2P, is implanted based on IPV6 addressing scheme.  This enables the protocol to assign a unique IP address to each and every device and establish an end to end connectivity without any IP address limitations of IPV4. To enable the end to end connectivity P2P agent has to choose the global IPV6 address starting with 2001 instead of the link local [4] address starting with fe80. Another constraint which was realized during the development project is that the P2P services are disabled by default on most of the computers as part of the Firewall filtering or any Antivirus program which users might be running. We need to enable P2P services in firewall and exempt these services from any antivirus applications.

This POC also helped to identify a scenario where this P2P solution will not work. The scenario is where one node is directly connected to the cable modem while the node on the other end is behind a wireless router. This will make a situation where the computer behind the router (a NAT device [5]) will use the Teredo[6] translated software supported IPV6 address while the cable modem connected machine is in a IPV6 to IPV4 conversion scenario[7]. This scenario is not supported in the PNRP implementation in Windows platform.

Below images depicts some of the screen shots of the three components of the Project.

Windows 8 tablet device P2P screenshot
Figure 2 (a)

P2P viewer app home screen (Windows phone 7)
Figure 2 (b)

Figure 2 (a) is a Windows8 tablet device P2P Viewer application screen which allows the user to accept/reject Peer requests received. This screen also allows the user to send friend requests to other users. Figure 2 (b) is the home screen of P2P viewer app on windows phone. Home screen has options to manage friends (accept/rejects friends request; send friend requests), display shared media contents received from connected peer and also to display local media contents.

P2P AgentService desktop application screenshot
Figure 3

Figure 3: P2P Agent service runs on the desktop; this application registers a peer name and acquires a PNRP host name.  This application also has feature to choose folders like to be shared.

References

  1. http://en.wikipedia.org/wiki/Computer_form_factor
  2. http://msdn.microsoft.com/en-us/library/ms734692.aspx
  3. http://en.wikipedia.org/wiki/Peer_Name_Resolution_Protocol
  4. http://en.wikipedia.org/wiki/Link-local_address
  5. http://en.wikipedia.org/wiki/Network_address_translation
  6. http://en.wikipedia.org/wiki/Teredo_tunneling
  7. http://en.wikipedia.org/wiki/6to4

Back to top

Project Info

Sabitha Abraham

Student
Sabitha Abraham

Faculty Advisor
Munehiro Fukuda