- Windows Installer: pCDN client now comes as a native Windows installer. This installer validates the minimum operating system requirements and guides users to properly update their systems if add-on components, such as Java virtual machine, are required.
- Small Footprint UI: pCDN client now sits in Windows taskbar instead of in a command-tool window. The icon, in the notification area, as well as tooltip text remind users about the connection status between that pCDN client and its pCDN server.
- Comprehensive Session Info: Double clicking on the icon in notification area launches the Session Info Window that displays all on-going transfer sessions and most recent history sessions. In case where history sessions are shown along with ongoing ones in the same table, history sessions are colored in gray. pCDN client maintains persistent history transfer info across reboots, which allows users to keep track of their previous transfers. Users may click on a transfer session to display detailed real-time info, such as connected peers and their locations.
- User Preferences Editor: pCDN client now provides users a concise interface to manipulate preferences, which include basic and advanced ones. Unlike previous releases, the preferences editor restarts pCDN client only in an as-needed basis.
- Better Scheduling Algorithm: pCDN software is armed with a updated scheduling algorithm that provides superior download rate comprared to previous releases. There are three major improvements:
- Finer-grained data piece availability info is used to guide the scheduling algorithm to reduce the possibilities of sending duplicated data pieces. This significantly improves the effective transfer rates.
- The updated algorithm implements more flexible weighted round-robin scheme, which allows individual senders to send data pieces belonging to future rounds. That is, instead of waiting for slower senders to complete the current schedule, faster senders can now continue contributing more data pieces. This enables receivers to capitalize available network bandwidth and thus speed up transfer.
- Schedule messages are generated in as-needed basis, rather then being sent periodically. That is, the updated algorithm continuously monitors the bandwidth and data available of each connected sender and only reschedules when there is a significant change. Therefore, the updated algorithm can adapt to environment changes faster than previous releases, which only support re-scheduling at fixed rates.
- Disk Quota Management: pCDN client allows users to specify disk quota and enforces it by removing the least recent downloads once the quota is used up.
- Memory Management: To reduce allocation overhead, pCDN client allocates its data buffer at initialization time and re-use these data buffer throughout its execution. pCDN client swaps out the least recently used data pieces if more buffer space is required to accommodate newly arrived data. This replacement policy enables pCDN client to keep useful data pieces, which are more likely to be requested again, in its memory and thus shorten the access time. This is because the disk access is several order of magnitude slower than memory access.
- NAT Traversal Support: pCDN client implements the cutting-edge Universal Plug-and-Play (UPnP) NAT traversal solution to seamlessly setup port forwarding on Internet gateway devices, such as widely-deployed IEEE 802.11 wireless routers. This enables users behind NAT boxes and firewalls to contribute more towards pCDN networks.
- On-line Updates: pCDN client software now supports on-line upgrades.
- Obsolete of Heartbeat Messages: Thanks to UPnP, pCDN clients and servers no longer exchange heartbeat messages, which were used to maintain active UDP port translation records at NAT boxes and firewalls. As a consequence, network traffic amount toward pCDN server is largely reduced. More importantly, obsoleting heartbeat messages allows pCDN server to better utilize its processing power to serve more clients and achieves better scalability.
- Native Windows Server: pCDN server is re-implemented in efficient C++ language. This allows it to serve more requests in a given period of time. Therefore, pCDN server now can scale to larger networks.
- Remote Monitoring Capability: pCDN server now can be monitored either locally or remotely. Server Monitor software, developed in Java, provides real-time server status updates, such as system up-time and content availability info, to administrators. For security reasons, administrators need to authenticate themselves before gaining access to pCDN server.
- Network-aware Peer Matching Algorithm: pCDN server no longer matches arbitrary senders to individual receivers. Instead, it utilizes the knowledge of common Internet topology to search for the closest senders for each receiver. Receiving data pieces from senders closer to receivers leads to shorter network latency and often higher bandwidth, and thus better user experiences. More importantly, network-aware peer matching reduces inter-ISPs traffic amount, hence eases their financial burden. Consequently, network-aware peer matching algorithm is both user- and ISP-friendly.
- IP-Geo Database Integration: The IP-Geo database is imported into a relational database, which allows pCDN server to efficiently perform location lookups. Many database optimization techniques can be potentially applied in the future for better performance. Moreover, other applications may use the same database through standard SQL queries.
- Centralized Content Database: pCDN system now stores all meta info of multimedia contents in a centralized database. That is, pCDN system no longer relies on podcast feed files for meta info and can be used for applications other than podcast, such as video streaming.
- Discriminated Lookup Response: New content lookup protocol allows pCDN server to deny some requests based on administrator-specified filtering rules. This protocol considerably improves the system security since users are not given the meta info unless they are authorized by administrators. Add-on features, such as geo-fencing, can be implemented using this new protocol.
- Smart Log File Naming: pCDN server now creates new log files at each execution times, instead of overwriting previous log files. This allows log rotation using simple cron scripts.
- Access Log Files: pCDN server now creates access log files that not only provide transfer logs, but also include network measurement results, which will help us to further improve pCDN system. Three types of logs are defined:
- Session info contains the duration and transfer data amount between a receiver and each of its senders.
- Host info contains the hop distance and round-trip delay between a receiver and each of its senders.
- Path info contains the list of intermediate routers between a receiver and each of its senders.