By goldenpi
By way of a follow-up to
MacroSloth gears up for p2p (or just click the item below : ) goldenpi of Many Right-On Comments fame takes much harder look at Billz p2p.
===================
It's a microsofty world
Although Microsoft P2P SDK could be used for either file sharing or a waste-like network, it does not define the applications it can be used for. It provides a standard (in a microsofty way) P2P transport layer and various services such as name resolution.
Programers can use this layer to construct file shareing, instant messageing, gameing, distributed processing or storage, email or any other P2P network. The protocol is able to scale surprisingly well, through its chatty nature could present a considerable bandwidth overhead on dialup lines too near the network center.
I was impressed by the name resolution system, which should be able to scale to a very large size, perhaps rivaling the DNS system, through latency may be slightly greater than a centralised system and resolution is not guaranteed. This could substantially improve file sharing applications, as clients could maintain permanent lists of other clients' shared files to improve search performance without the complexity of having to locate a specific client on a large network and dynamic IP.
The name tables could consume a surprisingly large amount of memory, though, and programers should remember to consider this when writing their software. It would be important to allocate the correct amount. A large allocated name table will
greatly reduce latency and bandwidth usage, but will require substantially more time to update should a node change IP.
Particularly interesting is the system for connecting to NAT systems. This assigns each NATed client an IPv6 address using 6to4 (RFC 3056), which can (with compliant NAT routers) be tunneled through the IPv4 internet. This is clearly designed with the aim of edventually removing all IPv4 componants completly, along with the NATs.
The most popular NAT router of all, windows internet connection sharing, will have this tunneling enabled by default - though firewalls will have no trouble blocking it to keep the office LANs clean :-)
The protocol is transparent to the user provideing the routers support it, IPv6 address allocation is completly automated. Clients can connect when one or both is behind a compliant router and it is not nessicary for the network between to support IPv6, through this will improve performance slightly.
Microsoft has been a strong supporter of IPv6, and has recently completed a working implimentation for windows XP SP1 and windows server 2003.