I'm wondering why the Windows Azure Service Bus works through NATs, firewalls, proxies. Microsoft mentions this fact often but they do not mentioned why this works.
I think each participant initiates connections, ok, but this isn't enough. Do they "misuse" some open ports, 80?
Thanks
without running Wireshark to be able to tell for sure, my guess be because the client (behind a nat/firewall) initiates connection and keeps calling server (always open) for more information.
let's explain more: as tis works slightly differently in windows sockets (and other socket systems for that matter):
client (C) initiates connection to the server (S) on port 80
server then responds to client: too many calls on 80, let's move the connection to next free socket at port 90000 + rnd() = 90001
Client socket manager counts unused sockets on client, and say finds C:90012 port
client calls server at S:90001 and the proper connection is initiated between C:90012 and S:90001
This is what's gonna be written into nat table on a nat/firewall box and gonna allow communication between C <-> S
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With