Parasitic computing

34

Transcript of Parasitic computing

Page 1: Parasitic computing
Page 2: Parasitic computing

DefinitioN

Parasitic computing refers to the technique of using the resources of one computer by another computer without the knowledge of the former .

Distributed computing networks turn home users’ computers into part of a virtual super computer that can perform time-intensive operations.

Page 3: Parasitic computing

cont…

Parasitic computing uses computation power of the computers connected to the internet in solving complex mathematical problem.

Eg: Traveling salesman problem satisfiability problem

Page 4: Parasitic computing

theory

To solve problems

Generate large number of candidate solutions.

Send the solutions to destination node.

Test the candidates for their adequacy.

If result is true, the solution is valid.

else drop.

The result from each were used to build a solution.

Page 5: Parasitic computing

cont…The mathematical problem is split into a large number of simple logic problems.

They tag a logic problem onto check sum.Web server would process the request.If the check sum is false, then server would not respond to the request.The whole result combine to form the result of the mathematical problem.

Page 6: Parasitic computing

cont…

The target nodes are answering logical questions without knowing of doing so.

This does not violate the security of the unknowing server.

Potential candidate protocol include TCP,HTTP, or encryption/decryption with secure socket layer.

Page 7: Parasitic computing

how to trick other computer’s?

ALUNIF

ALUNIF

ALUNIF

Page 8: Parasitic computing

levels of communication

HTTP

TCP

IPNetwork

HTTP

TCP

IPNetwork

DROP

VALIDParasite node Target web server

Page 9: Parasitic computing

cont…

A single parasite node coordinates the computations occurring remotely in the internet protocols.

Each target node consist of

Arithmetic and Logic Unit (ALU)

Network InterFace (NIF)

A single home parasite initiates the computation, sends messages to the targets directing them to test and tabulates the result.

Page 10: Parasitic computing

key Component Checksum computation

Information sent across the internet is split it into small chunks, or packets, that travel-often independently of each other-to their destination.Each packet bears a header that contains

Source addressDestination addressA numerical value related to the packet’s content

When a computer receives a packet, it checks for errors by performing a calculation and comparing the result with the numerical value in the packet’s header.

Page 11: Parasitic computing

establishing a TCP connection

Page 12: Parasitic computing

cont…

A connection is established with 3 messages,

The initiator sends a SYN to a remote node.If the remote node is willing to accept a new connection, it responds with a

SYN/ACK message.Finally, the initiator sends an ACK message.

Page 13: Parasitic computing

computing with TCP checksum

The message received by the target server contains

an IP header

a TCP header

a candidate solution

Page 14: Parasitic computing
Page 15: Parasitic computing

cont…

Is a + b equal to c???

The checksum value in a TCP packet is determined by c.

The data contains 16 bit words a and b.

If a + b! =c, then TCP rejects the segment.

A message is valid only if a + b=c.

Page 16: Parasitic computing

cont…

The targeted computers are various web servers physically located in North America, Europe, and Asia.

There is no negative acknowledgement.

The sender will keep a copy of the message.

In distributed system, it is not possible to distinguish between a lost message and delayed message. So a message is assumed to lost after some time out period.

Page 17: Parasitic computing

checksum computation

The sender breaks the message consisting of N bits into 16 bit words.

The K words are added together using binary arithmetic.

The sender then performs a bit-wise complement on the checksum.

The sender incorporates the complement of the checksum into the header of the message.

Page 18: Parasitic computing

cont…

The receiving computer again breaks the received message into 16-bit segments and add them together.

The checksum obtained by the receiver has to be 1111111111111111.

If any bit along the message has been corrupted during transmission, the checksum obtained by the target will be different from all ones, in which case target drops the message.

Page 19: Parasitic computing

s1 s2 Sk

+

+

S1

S2

Sk

1110101011011011

0001010100100100

sump

sum p

sum s1p S2 sk

Create a new message of length N+16

SUM SUMT p= +S1+S2+…..+Sk

IF SUM =1111111111111111

othrwise

Message correctTo HTTP

Message corruptdrop:

:

d

N bitsa

b

c

Page 20: Parasitic computing

2-SAT Problem

Page 21: Parasitic computing
Page 22: Parasitic computing

cont…

The 2-SAT problem involves 16 variables and the operations AND and XOR.

In order to get a TRUE answer for P, each clause shown in separate parentheses needs to be independently TRUE.

To evaluate the vale of we generate a 32 bit message M that contains all 16 variables, each preceded by a zero.

TCP groups the bits in two 16 bit segments and add them together.

The sum can have 4 outcomes.

Page 23: Parasitic computing

cont…

If the clause has an XOR operator, is true only when the checksum is (01).

If the clause has an AND operator, is true only when the checksum is (10).

To turn a package into parasitic message the parasitic node prepares a package, preceded by a checksum, and continued by a 32 bit sequence(S1,S2).

Page 24: Parasitic computing

algorithm

S=create TCP segment S. checksum = checksum For each x S. pad= pad with zeros (x) send S receive answer if answer=true write x is a

solution

Page 25: Parasitic computing

implementation

There are several ways to implement the basic algorithm.

concurrency: Each concurrent computation requires a separate a TCP connection to http host.

connection reuse: Before a TCP connection can be used, it must be established. Once established TCP segments can be sent to remote host.

Page 26: Parasitic computing

how it differs from others?

In cluster computing, many computers pool in their resources willingly.

Parasitic computing does not require the willingness of any target machine.

In cluster computing, special softwares are needed. Here not needed.

Page 27: Parasitic computing

features

Parasitic computing theoretically offers the chance to use the vast computational power of the whole internet.

Several large computational problems can be solved by engaging various web servers physically located in different parts of the world, each of which unknowingly participated in the experiment.

Page 28: Parasitic computing

cont…

Ethically challenging alternative for cluster computing, as it uses resources without consent of the computer’s owner

Parasitic computing does not compromise the security of the targeted servers, and access only those parts of the servers that have been made explicitly available for Internet Communication

Page 29: Parasitic computing

problems

For parasites

Several computational cycles are taken to process the possible solutions

Possibility of false negatives

Possibility of false positives

Page 30: Parasitic computing

problems

For servers

Delays due to processing the parasitic messages could cause a denial of service

Almost impossible to prevent someone from running a parasitic job on your server

Page 31: Parasitic computing

history

Parasitic computing was developed by the scientist at the Notre Dame University, Indiana(USA).

First Reported in journal ‘Nature’ in 2001 by Barabasi, Freech, Feong and Brockman.

Page 32: Parasitic computing

future

Enabling all the computers to swap information and services they are needed could lead to unparalleled emergent behavior, drastically altering the current use of the internet.

Page 33: Parasitic computing

summary

Parasitic computing moves computation onto what is logically the communication infrastructure of the internet, blurring the distinction between computing and communication.

The current internet infrastructure permits one computer to instruct other computer to perform computational tasks that are beyond the target’s immediate scope.

Page 34: Parasitic computing