3 ms·
Checkout the how-to page and watch that video. It gives more detail. But in short, you can make friends with your friend's friends or you can be friends with a
by pdxwebdev 16y ago
Checkout the how-to page and watch that video. It gives more detail.
But in short, you can make friends with your friend's friends or you can be friends with an indexer, which will list a bunch of people you may or may not know that you can request to be friends with as well.
When you send a request through a friend, your connection is done securely through that already established relationship. Then that friend passes the request to the friend you want to be friends with that they are already friends with. Once that request reaches that friend and they accept, they will have the public / private key pair you originally generated. They will also have your IP address information and begin making secure connections directly to you without the need for the friend or indexer which you sent the request through.
- dinedal 16y agoHow do you intend to tackle NAT, dynamic IP addresses, and devices that aren't always on, or devices only accessible to some machines but not others? How do you intend to solve the chicken and the egg problem this network will encounter?
- pdxwebdev 16y agoIPv6 is already being deployed from top tier mobile carriers and that allows globally rout-able addresses even behind NATs. If you have no social graph on yada, then your very first connection to a friend may have to be unencrypted, but not in every case.
- dinedal 16y ago> IPv6 is already being deployed from top tier mobile carriers and that allows globally rout-able addresses even behind NATs. You're making a lot of assumptions: 1) That IPv6 will assign a unique and constant IP to every device. Many ISPs provide this as an up-sell feature, not the default, and I don't expect them to change their behavior even if the cost of it approaches 0. 2) That IPv6 will solve all your network problems. It doesn't solve the issue of a bad link or a restrictive firewall. Consider Hosts [A,B,C] and Firewall F. F will block all connections from B. How will yada connect A and B in this arrangement: A <-F-> [B,C] ? Will is use C to route the connection? How will it determine that C can act as an intermediary, and how will it protect A's data such that C can not be used as a MTM (Man in The Middle) attack vector?
- pdxwebdev 16y ago1) Each client checks for internal and external IPs and saves them. That list is transmitted to your friends every time you update them with other data. It automatically manages this list of possible places to reach you. 2) There will be indexers for these cases which can be used as relay points. C would merely be a match-maker, telling each host which IP address and port is currently open. No data is sent through C. Skype does this.
- dinedal 16y agoSkype doesn't do this. Please read: http://www.mjalali.com/blog/?p=10 http://www.mjalali.com/blog/?p=10 >1) Each client checks for internal and external IPs and saves them. That list is transmitted to your friends every time you update them with other data. It automatically manages this list of possible places to reach you. According to the link, "supernodes" route connections and provide matchmaking between Skype callers. How do you find the "supernodes"? "If this file is not present, SC tries to establish a TCP connection with each of the seven Skype maintained default SNs IP address on port 33033." >2) There will be indexers for these cases which can be used as relay points. C would merely be a match-maker, telling each host which IP address and port is currently open. No data is sent through C. "If caller and receiver are behind a UDP-restricted firewall they will need a relay (node) in between to establish TCP connection to and then the traffic (including media) will go through from one side to the other." Skype's protocol would use host C as an intermediary.
- pdxwebdev 16y agoThat's true, its not exactly the same as your example. But the method I have developed does work.
- dinedal 16y agoYou didn't address my point about initial discovery being maintained by Skype. Also, could you please point out to me the method you have developed for initial discovery? I've yet to see it in your source code. This is a very tough nut to crack and if you've got it done already then I'm impressed.