I’ve already introduced the commercial architecture of PPIO. The business service layers of PPIO includes the IaaS layer (Information-as-a-Service), the PaaS layer (Platform-as-a-Service), and the Application Services layer. We have written extensively about this in our article “PPIO Commercialization Architecture Analysis”, which covers the full architecture of PPIO.

On the PaaS layer, PPIO has three core modules: POSS, PCDN, and PRoute.

  • POSS is a P2P Object Storage Service that provides storage similar to AWS’s S3.
  • PCDN is a P2P Content Delivery Network, that targets traditional CDNs, just like AWS’s Cloud Front.
  • PRoute is an adaptive network intelligent routing based on P2P which achieves the fastest speed and the lowest delay by establishing the most reasonable path between two nodes. This is the implementation of the protocol layer; currently, there is no similar product as part of AWS.
Three scenarios the modules can be used for

As shown in the figure, PRoute is mainly used for real-time communication and cold data transmission. Real-time communication includes teleconferencing, voice conferencing, VPN, and other services.

Previously, we have written many articles describing POSS and PCDN modules, this time we will focus on PRoute.

What Is PRoute?

PRoute is the intelligent routing of the application layer, implemented by P2P technology. Simply put, the A Node should directly connect to the B Node on the network. However, if A first connects to the C Node, and then connects to B through C, not only is slower, but the latency is lower. The problem solved by PRoute is how the A Node can have a better connection with the B Node.

Why Is PPIO Developing A PRoute Module?

  1. The routing of TCP/IP networks is not intelligent.

This following diagram is the foundation of today’s global Internet, it shows the five-layer network architecture diagram for TCP/IP OSI.

The entire Internet is composed of routers of various sizes, each of which maintains two tables: static routing tables and dynamic routing tables. A static routing table is a manually configured table, that is, what kind of route is forced to be taken when a specific IP needs to be connected.

The dynamic routing table is actually a simple algorithm to calculate and assign the relationship between IP and routing. The more commonly used algorithms are the LS routing algorithm, the Dijkstra routing algorithm, and the Bellman-Ford routing algorithm (distance vector routing algorithm).

The following is an example of the distance vector routing algorithm:

Bellman-Ford Routing Algorithm

In today’s Internet, large ISPs are based on a static routing table, whereas small network and local area network are based on dynamic routing tables. In this way, the gathering of small and large networks has made the topological map of today’s entire Internet. So what are the disadvantages of routing at the network layer?

1. Each router is self-centered and does not see the whole world. The data that can be referred to is very limited.

2. The hardware performance of each router is limited which makes it difficult to run logically complex algorithms; as a result, only simple routing algorithms can be used.

3. Rules have been established in the early stages of the Internet. The cost of making subsequent rule changes that are compatible across the network is very high. Furthermore, the network layer routing algorithm has not advanced much over the years.

Because of this, there is an opportunity for application-level intelligent routing. PPIO’s PRoute implements application-level intelligent routing and is based on the P2P Overlay network. In the future, we will write an article to explain the design of the PRoute routing algorithm.

2. Artificial control of network routing

As mentioned above, static routing tables are used in large ISPs and larger organizations. The reason is that large ISPs and large organizations specify routes for their own business interests. Because the route is specified, the direction of any network data transmissions is determined. For ISPs, because the communication between ISPs will result in settlement costs, ISPs may not choose the fastest solution, instead, they will choose the lowest cost solution. There are also some countries or regions that, for the sake of Internet content supervision, will install some data routes to special export nodes in order to control content. The result is that when a large part of the Internet is structured this way, the overall Internet does not operate in the most optimal way.

The network heterogeneity brought about by this is very diverse. Different national conditions, different business competition environments, and different network environments will result in higher requirements for application-level intelligent routing algorithms. How we adapt network topology to various situations through algorithms will be the key to fully realizing intelligent routing.

3. The TCP protocol congestion control algorithm was designed in the early stages of the Internet, making it not suitable for today’s Internet.

TCP is the largest transmission protocol used on the Internet today. It is a reliable transmission protocol that was designed in the early days of the Internet. For those old enough to remember, it was designed before the broadband era so Internet speeds at that time were generally slow. As a result, the TCP protocol used a more conservative sliding window and the congestion control algorithm.

With the increasing bandwidth of the Internet and the increasing number of videos on the Internet, many companies have proposed more suitable congestion control algorithms, such as Akamai’s Fast TCP and Google’s BBR. More and more scenarios no longer choose to use the TCP protocol, instead, they use UDP to implement reliable transport protocols, such as KCP. Despite these changes, the network layer of most computer equipment still uses the old TCP congestion control algorithm.

When we designed PPIO’s Route, we also designed our own reliable transmission protocol and congestion control algorithm according to specific scenarios, which improves the quality of point-to-point connections under weak networks and greatly enhances the bandwidth-capturing capability under weak networks. For example, international lines are often weak network connections meaning they can offer poor connectivity, high packet loss rate, high latency, and unstable transmission speeds.

Skype: A Successful Case of P2P Routing

Skype is a global Internet phone company. It uses P2P technology to connect with other users and provides customers with free high-quality calling services worldwide. When the network between the two parties is smooth, Skype users can conduct a high-quality voice chat where the sound quality may even exceed that of ordinary phones. Skype is gradually changing the telecommunications industry.

The Skype software opens a network connection port on the computer to listen for connection calls from other Skype users. When other computers can successfully connect to this computer, Skype calls the user a “Super Node”. The role of a Super Node in this P2P environment is to provide a relay station between other users who cannot connect. In the same environment, both Super Nodes and users borrow a little network bandwidth from many other Super Nodes to assist everyone on the Skype network to smoothly connect with each other. This behavior, in a P2P environment, is quite common. Skype is the first successful case to apply this approach to VoIP calls and instant messaging applications.

The Key to PRoute Implementation

In order to solve the problems mentioned above, the key breakthrough in the design of PPIO are:

  1. Finding the appropriate relay nodes

The key to the technical implementation of PRoute is to find good relay nodes and use these relay bridges to achieve faster transmission speed and lower delay. So PRoute is very different from PCDN in choosing nodes. These differences are reflected in:

  1. PRoute mainly needs to find high-quality nodes for both uploads and downloads, whereas PCDN only needs to find high-quality nodes for uploads.
  2. PRoute needs more incentives to be close to the backbone nodes. Because the closer the nodes are to the backbone network, the better it works as a relay node, especially in transnational networks. PCDN, on the other hand, encourages more edge nodes and metropolitan area network nodes because of lower costs and closer proximity to users.
  3. PRoute nodes need to be motivated. Because the relay node of PRoute plays a more critical role in the P2P network, once the PRoute relay node is dropped, the impact on the P2P network is huge, and the cost of switching to standby nodes is relatively high. PCDN services are all multi-point simultaneous transmission, and the impact of node dropout is relatively low. Therefore, the relay node of PRoute needs more motivation.

PPIO will give priority to more suitable nodes to act as a relay node for the PRoute module, and subsequently will give greater incentives.

2. Looking for dynamic intelligent routing

The ability to find a suitable relay node in a complex P2P network and better network transmission through the intelligent routing of the application layer is a very critical technology of PRoute. In order to solve the problem of providing a quality transmission, a more suitable intelligent routing route may require multiple relay nodes. The algorithm of PRoute is to find these relay nodes as soon as possible. In addition, as the network environment is constantly changing, PPIO will automatically adapt to these changes and will choose different candidate relay nodes at any time. When the network changes, the intelligent route is automatically switched to a better relay node to maintain the dynamic stability of the network.

3. Implementing a reliable transmission protocol for weak networks

As described above, there are many uncertain heterogeneities in the network structure, network topologies in different countries are not the same, and there are a large number of weak network links. On the basis of intelligent routing, PPIO implements a set of reliable transmission protocols which can adapt to a complex network environment in order to keep the stability of network transmissions. When the network is not good, the transport protocol automatically switches to a more aggressive strategy, which increases the ability to preempt bandwidth. When important data is transmitted, the FEC forward error correction mechanism is automatically enabled to reduce the impact of packet loss.

As a module of PPIO, PRoute not only has its own use for businesses, it complements our POSS and PCDN modules. Because POSS and PCDN may also encounter a lack of resources or weak network problems (for example in cases where files are used by a small minority of people or the transmission is in a weak network environment), their problems can be solved by the PRoute relay and a better congestion control algorithm. So looking at the greater part of PPIO’s architecture, PRoute complements both the POSS module and the PCDN module.

PPIO has always considered the innovation and integration of technology from the point of commercial use, and most importantly, our user’s needs. We are designing PPIO with the hope of creating a service with social and commercial value. In this article, we have explained conceptually and logically why we are designing the PRoute module and how PRoute is integral for future commercial use. Later, we will write an article explaining the design of PPIO’s routing algorithm in the PRoute module. If you are interested in the commercialization of PPIO technology and want to learn more, please follow our Medium or subscribe to any of our channels. Your questions and feedback are always appreciated.

Want more? Join the PPIO community on Discord or follow us on Twitter.