Welcome to MSDN Blogs Sign in | Join | Help

FAQ

I'll try to keep this FAQ updated on the general questions asked on the p2p infrastructure:

1. How scalable is the p2p framework?

* PNRP is the serverless name resolution protocol, and is scalable to the size of the internet.

* Graphing/Grouping: These are protocols intended for peer to peer group activities, and are scalable to the thousands. 

* Peer Channel (a part of the Windows Communication Foundation): These protocols intended for multiparty messaging are scalable to the tens of thousands and likely more (still testing)

2. How much bandwidth do these protocols consume?

The protocols in general are intended to consume far less traffic than any application using the framework will consume. We are in the process of testing bandwidth consumption, and will be happy to share numbers in a little time.

3. How much time is spent before a node connects to a network?

* PNRP - should be less than 10 seconds

* Graphing/Grouping/Peer Channel - this really depends on the mechanism used to find a node in the mesh to connect to. If PNRP is used as the mechanism of finding such a node, then it will take a couple of seconds more. The actual connection establishment mechanism is fairly quick.

4. Where is Teredo server currently setup?

Microsoft hosts a public Teredo server that is available for all applications to automatically use. To learn more on Teredo, take a look at  http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/teredo.mspx

5. What are the typical topologies formed for say when 30 nodes gets connected in a multiparty activity?

Take a look at the white paper http://www.microsoft.com/technet/prodtechnol/winxppro/deploy/p2pintro.mspx, which shows what a graph looks like.

6. Reliability. When a message sent by a node does not receive a response, does it really means node isn't? Numbers of hops may be pretty large and hence chance of message loss is pretty high. Is it true?

* PNRP - if a response is not received, then almost certainly, the node is either not accessible because it is behind a corporate firewall for instance, or it is just not online

* Graphing/Grouping/Peer Channel - if a message is not received, then there are some possibilities (all of which should be very rare) - the mesh is partitioned and a message consequently could not get through, some neighbor was just not able to forward the message on, or the local stack itself did not deliver the message to the application. All of these should be very rare, however, if your application requires reliability guarantees (100% of the time), then you may have to implement a simple protocol on top of the peer channel for this purpose.

7. Replicated data store. Is it built on SQL Server, XML or something else? How dynamics are orchastrated? What happens when A syncs with B and C, B syncs with D and then C syncs with D? Would there be any ADO.Net provider to access this data store? Are there any events raised as data changes? Is there any built in features to maintain versions of data?

* The data store is a very simple store. It does allow for use of XML attributes in records that you can use for searching for relevant data. The synchronization protocol is based both on timestamp and version number, and is based on the last writer wins principle. However, you can enforce security in the group so as to ensure that no one else can clobber your records. There are no ADO.Net providers for this data store. There are record events raised any time data is added/deleted/modified.

8. Real time streaming capabilities. Can a node, for example, transmit the video content to thousands of other nodes without reaching bandwidth bottlenecks.

* A group and a graph cannot be used directly for streaming. You would use the group/graph as a mechanism to get the topology, and then construct a streaming overlay on top. You can always use the underlying graph for sending less real-time sensitve data such as chat, collateral for meetings etc.

* The peer channel (which is showing incredibly high throughput numbers) could be usable in streaming scenarios. We are currently evaluating that. If you are interested, let me know and we can discuss.

9. Distributed computing. Is there any built-in features to let node execure code on other nodes remotely (P2P version of RPC)?

* The data you send in messages to the mesh could contain anything. Your application which installed on all machines can quite easily send some data (which is code) to execute on other machines. However, our infrastructure natively does not enable these scenarios yet.

10. How does WCF/Indigo compare with Bonjour/Rendezvous?

* WCF enables messaging peer to peer, client server, amongst servers etc. It implements a large set of WS-* protocols for interop with other web services protocols/infrastructures as well. Bonjour is just a small piece of messaging from Apple that focuses on finding devices on the same subnet. It is likely similar to one protocol, WS-Discovery which enables discovery of services on the network. It is designed to be a scalable architecture that can be bridged across subnets using proxies. It is shipping as part of Windows Vista. Another piece built on WS-Discovery that Bonjour may be close to is People Near Me, which enables discovery of people located on the same subnet. Bonjour does not use PNRP! Neither does WS Discovery. The two are not compatible with each other.

Published Saturday, October 29, 2005 9:37 PM by ravirao

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: FAQ

I'm actually wondering how WCF/Indigo relate to Rendezvous/Bonjour/ZeroConf. Since they both use PNRP, how compatible/incompatible are they?
Sunday, October 30, 2005 1:11 AM by Rosyna

# re: FAQ

I've added your question to the main list of questions in the FAQ. Thanks Rosyna!
Sunday, October 30, 2005 5:23 AM by ravirao

# re: FAQ

Ah, so part of my confusion is due to the naming differences between Apple and Microsoft. WCF contains a lot of APIs that apple has separate grouping and naming for. Much like Avalon would be ATSUI, Quartz (2D and Compositor), AGL, maybe even nibs, and other APIs. Or how WinFS would be analogous to Spotlight, CoreData and some other APIs. This makes it hard to do a 1:1 comparison (no pun intended) of the APIs.
Sunday, October 30, 2005 6:01 AM by Rosyna

# re: FAQ

AFAIK, I have not heard of an offering from Apple that has the kind of peer to peer capabilities that we offer. Bonjour is a local discovery protocol that allows discovery of devices located near you. AFAIK, there is no internet wide discovery/name resolution/mesh protcols from Apple on either the developer platform or experiences.

Also, I agree that is difficult to compare based on names :), but even if you get the name mapping sorted out, the technology differences/capabilities are likely quite drastically different (hopefully better) in Vista :)
Sunday, October 30, 2005 4:37 PM by ravirao

# re: FAQ

Well, networking scares the bejeezus out of me so I haven't tried anything outside of the local subnet (also because anything outside wasn't relevant to what I needed to do). But when I implemented Rendezvous in a project I did 2 years ago, when I knew much, much less than I do now, it was *way* too easy. Insanely so. It was actually very similar to the drag and drop/copy and paste code I had since it allowed me to use the same process for both.
Sunday, October 30, 2005 6:57 PM by Rosyna

# re: FAQ

Well, we are hoping to make networking simple for people it scares the bejeezus out of :) Please let us know if we are succeeding or how badly we are failing :)

What are the kinds of scenarios you wish to enable? I can point you to the right set of interfaces to use for that purpose. Adrian Moore (who has a set of managed interfaces) would then be able to help you out as well.
Sunday, October 30, 2005 9:23 PM by ravirao

# Bonjour is not only local

Bonjour is both for LAN and WAN service discovery.

This is the main difference between Bonjour and its predecessor Rendezvous which was LAN only.
Sunday, December 11, 2005 1:01 AM by benjk

# insurance auto

http://www.insurance-top.com/company/">http://www.insurance-top.com/company/ car site insurance. [URL=http://www.insurance-top.com]home insurance[/URL]: The autos insurance company, compare car insurance, auto insurance. [url=http://www.insurance-top.com]cars insurance[/url] from website .
Tuesday, June 27, 2006 2:33 PM by insurance auto

# insurance auto

http://www.insurance-top.com/company/ car site insurance. The autos insurance company, compare car insurance, auto insurance. from website .
Tuesday, June 27, 2006 2:33 PM by insurance auto

# re: FAQ

Is there a size limit for messages on PeerChannel? I have tried to set the maxReceivedMessageSize for the binding. I have a simple chat client - similar to Kevin Ransom's example. But, if the text size exceeds a certain length, message is not sent to the peers. Changing the maxReceivedMessageSize seems to have no effect on the size of the message I can send. I am using the July CTP version.
Sunday, August 27, 2006 3:35 PM by madhus

# re: FAQ

When I try to sync seed server by using

netsh>p2p>pnrp>cloud>sync seed Global_.Some time I do get an error saying

"Error:Encountered issues with the PNRP cache.<error 0x8098090d>"

Why do we get such erro?

Also I encountered an error which says

"SOLICIT sent to address: [2002:0000:.....]:3540

Destination did not respond <error 0x80980800>"

Here

1>What is the meaning of "SOLICIT sent to address..." statement.

2>What is this error all about?

Thursday, April 19, 2007 12:06 PM by sumeetpk

# re: FAQ

Generally seed server being used is default seed server that is

pnrpv2.ipv6.microsoft.com,pnrpv21.ipv6.microsoft.com.

What is PNRPSEEDSERVER.CORP.MICROSOFT.COM server as specified in http://www.google.co.in/search?hl=en&q=windows+meeting+space+step+by+step+guid+&meta=

Can we also set the above server as seed server along with default seed server?

Thursday, April 19, 2007 12:06 PM by sumeetpk

# Cars &raquo; Ravi Rao&#8217;s Blog : FAQ

Sunday, December 30, 2007 2:57 AM by Cars » Ravi Rao’s Blog : FAQ

# car insurance &raquo; FAQ

Tuesday, August 12, 2008 3:21 AM by car insurance &raquo; FAQ

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker