Parasitic computing is a concept by which one can use the resources of machines that are connected on the Internet. This technology exploits open Internet protocols to use the resources of remote machines. As the name suggests, the machine that requires the services of others does not need to be authorized by the latter. Any machine, which is connected to the Internet, has to carry out minimum processing of any packet they receive without any authorization.
This concept is exploited by parasitic computing in order to make use of computing powers of remote machines and web servers all around the globe. So one cannot really stop their machines from being utilized in this manner.
Parasitic computing can be a very effective technique when it comes to solve NP complete problems such as Circuit SAT, 3 SAT, etc. These problems are currently considered as some of world’s most complex and time consuming problems. These problems generally have a set of solutions which itself is a subset of a set of possible solutions.
HOW PARASITIC COMPUTING WORKS
Although any possible solution to such problems can be verified quickly, there is no known efficient way to identify a solution in the first place. In fact, the most notable characteristic for such problem is that there is no fast solution. The time required to solve such problem is exponentially proportional to the size of the problem. So, as the size of the problem grows, the time required to find all solutions of the problem grows exponentially. In fact, time required to solve a moderately large NP‐Complete problem can easily reach billions if not trillions of years using any kind of modern computing technology we have available today. For this reason, even just determining whether there is a fast solution to such problems or not is one of the principal unsolved problems of computer science.
The parasitic computer starts the process by transmitting specially generated messages to number of targeted web servers consisting of arithmetic and logic unit (ALU) and a network interface (NIF). The packet carrying one of possible solutions to the problem is inserted into the IP level bypassing the parasitic node’s TCP.
The parasitic computer generates a message in such a way that if the solution is not valid, it will fail the TCP checksum on the destination machine and the packet will be dropped. But in the case when the solution is correct, it will be propagated to the HTTP layer via TCP. Since it is a behavior of a web server to respond to any requests coming to an HTTP layer regardless of whether it understands the request or not, the web server will send a response back to the parasitic computer that it has received an HTTP request. Thus the parasitic computer sends out a message for each possible solution it only receives responses back from the server when the possible solution is a one of the actual solutions of the problem.
Parasitic computing is programming technique where a program in normal authorized interactions with another program manages to get the other program to perform computations of a complex nature. It is, in a sense, a security exploit in that the program implementing the parasitic computing has no authority to consume resources made available to the other program. Although as elegant and effective it proves to be, there are some major problems with this approach for computing. Since most of the computers connected to the network will be using TCP/IP, the resources available to the parasitic computer are virtually unlimited and almost all of the computer can be exploited. Furthermore, there is a very high possibility that servers can allocate their valuable CPU cycles to do the processing commanded by the parasitic node thus degrading overall performance of the applications running on the server and access efforts of the normal application.
Parasitic computing moves computation onto what is logically the communication infrastructure of the Internet, blurring the distinction between computing and communication. The Notre Dame scientists have shown that the current Internet infrastructure permits one computer to instruct other computers to perform computational tasks that are beyond the target's immediate scope. Enabling all computers to swap information and services they are needed could lead to unparalleled emergent behavior, drastically altering the current use of the Internet.
The implementation offered above represents only a proof of concept of parasitic computing. As such, the solution merely serves to illustrate the idea behind parasitic computing, and it is not efficient for practical purposes in its current form.