Board index » delphi » Behind the Wall, Still

Behind the Wall, Still

Hi !

Assume:

Program X is in a computer with wsock32.dll. It   is behind a router x,
which prevents all connection attemps  on all ports, 'from the outside', but
allows them from the inside.
Program Y is in another computer with wsock32.dll and behind another router
y behaving like router x.

X------------router x-----------------router y-------Y

 X and Y cannot start commuticating with each other using wsock32.dll. .( Is
this 100% true?).

If

X--------router x-----server S---------router y------Y

then X can START handshaking with server S,  and Y can START handshaking
with server S.  X and Y can then exchange data with each other through S.
(Is this 100 % true?).

Server S starts feeling bored and frustrated after a while, especially if
the data transfer takes long and is high volume (e.g.  audio and video ).

Server S may think:' I have done a Good Thing by helping X and Y to become
friends and start talking to each other. I feel proud. of it. But what is
the purpose of my life now? I am sitting here in Palo Alto California. The
guys X and Y are in Helsinki Finland 1 km from each other still needing me
all the time until they have finished their hours long talking. Not even the
fish at the bottom of the Atlantic Ocean are happy about the bitstream there
'

Then another pair XX and YY connect to server S. She/he  feels again happy '
Oh, XX and YY are well protected behind  their strong walls, but I can still
help them to communicate. But now I have even more stupid  transmission work
to do. With more pairs XXX
and YYY  my lines cannot transmit more and my CPU cannot think faster. This
does not sound a Wise Thing To Do. There must be a better way'.

'Cannot I tell to X and Y, that they can continue now talking safely with
each other without me? Which words, WHICH  wsock32.dll COMMANDS TO USE so
that they understand?'.

Somebody proposes 'Punch a hole to the wall, allow traffic through 1 port'.

X replies ' Thanks for the kind proposal. But the wall is not mine, I should
not bore holes to somebody elses walls. If I and many simple people like me
need to start buying  boring services from Mighty Owners Of Complicated
Sacred Things, I become afraid  and do not want to make friends with any Y.
And I am also afraid of Bad Boys spraying paint into my eye through that
hole. And the paint might go also into the eyes of my many beloved
neighbours, who are also behind this same wall .'

There is a better way, or is there?

 

Re:Behind the Wall, Still


Quote
>  X and Y cannot start commuticating with each other using wsock32.dll.
>  .( Is
> this 100% true?).

Correct...

Quote
> If

> X--------router x-----server S---------router y------Y

> then X can START handshaking with server S,  and Y can START
> handshaking with server S.  X and Y can then exchange data with each
> other through S. (Is this 100 % true?).

Correct

[long explenation about getting x and y to connect directly snipped]

Quote
> There is a better way, or is there?

No, not really. The problem is not "trust" but simple connection logic. A
statefull firewall or a NAT device keeps a table with all outgoing
connections. That table contains the IP:port number of both the inside client
and the remote server and, in the case of NAT, the externale IP:PORT
dedicated to this connection. No traffic is allowed though except is it
contains these exact informations. And since all other clients involved in
you scheme are behind NAT/Stateful firewalls, you cannot use them to "relay"
the information either.

Good luck,
Stephane

Other Threads