hole-punching

C# TCP Hole Punching - Clients not connecting

北慕城南 提交于 2019-12-11 08:04:18
问题 I've been working on a P2P application which requires TCP Hole Punching. I've written most of the code (I believe) up to getting the clients to connect, unfortunately there's something I'm not doing right since they won't connect. I'm providing the C# code I'm using, it's a c# console application, the Server is written in JavaScript and uses NodeJS, I won't include the code here since I'm not having any issues with it and it's only being used to send the Clients each others details. Where an

Using Google App Engine to Initiate Messages to a Device Behind Firewall

[亡魂溺海] 提交于 2019-12-10 10:08:53
问题 I'd like to use Google App Engine to initiate http traffic to devices that will be behind firewalls/routers/NAT. These devices will be receiving commands from GAE. I could have the devices poll GAE looking for new messages, but this uses a lot of traffic. Alternately, I could try and hold open a connection permanently, but that is super expensive and bad. The devices won't have static IP addresses. However, they will be communicating periodically with Google App Engine and the device can then

Send files after udp hole punching

别来无恙 提交于 2019-12-08 18:49:32
I have 2 computers behind NAT. To make a connection between them I use an UDP hole punching protocol. It works. Now I want to send files by this tunnel. I guess I must have a TCP tunnel between those 2 computers. Both firewall DENY all TCP trafic. Is it possible ? If not, is there any other solution ? How does Skype sends files by this UDP Tunnel ? You can use UDT protocol for file transfer after it gets hole punched. UDT is made on top of UDP. It has the reliability of TCP and fastness of UDP. UDT has an open source implementation. http://udt.sourceforge.net 来源: https://stackoverflow.com

Hole punching using STUN

懵懂的女人 提交于 2019-12-07 08:38:54
问题 I'm currently trying to send UDP messages over the internet and have to set up the firewalls for both endpoints A and B (which are both behind a NAT). To do this, I want to use hole punching using a STUN server. When A creates a request to the STUN server (say, private: 85.1.1.12:6000 and public: 173.194.78.127:19302) I get 85.1.1.12:6000 as a response. If I were to send a packet from the same origin configuration (same origin ip and port that were used for the STUN-request) to any other

c++ Hole punching UDP(RTP)

元气小坏坏 提交于 2019-12-06 11:09:08
问题 I am doing a client-server voice chat program(unmanaged C++,win32) in which clients connects to the server using TCP and textchat/chatroom functions are done in TCP while all audiotransmission is sent through a separate UDP/RTP socket (using the API from JRTPLIB). So the IP is known from the TCP connection, and the port number of the RTP socket can be sent after connection is established. The problem is that in TCP only the server needs to do port forwarding for communications to work both

Using Google App Engine to Initiate Messages to a Device Behind Firewall

帅比萌擦擦* 提交于 2019-12-06 03:43:15
I'd like to use Google App Engine to initiate http traffic to devices that will be behind firewalls/routers/NAT. These devices will be receiving commands from GAE. I could have the devices poll GAE looking for new messages, but this uses a lot of traffic. Alternately, I could try and hold open a connection permanently, but that is super expensive and bad. The devices won't have static IP addresses. However, they will be communicating periodically with Google App Engine and the device can then listen to the port they just opened for any incoming communications. If I understand TCP Hole Punching

UDP/TCP hole punching vs UPnP vs STUN vs?

独自空忆成欢 提交于 2019-12-06 02:26:35
问题 I try to make a P2P Program and need help with getting through the NAT of the clients. I have read many questions here on stackoverflow, but i never got what the drawbacks and benefits of all the Methods to get through a NAT are. How many routers support which methods? Which methods are commonly used by the big companies? (BitTorrent, TeamViewer,...) What are the drawbacks/benefits of the three methods i listed and which else exists? 回答1: UPnP requires software support in your router. Even

Hole punching using STUN

為{幸葍}努か 提交于 2019-12-05 14:22:59
I'm currently trying to send UDP messages over the internet and have to set up the firewalls for both endpoints A and B (which are both behind a NAT). To do this, I want to use hole punching using a STUN server. When A creates a request to the STUN server (say, private: 85.1.1.12:6000 and public: 173.194.78.127:19302) I get 85.1.1.12:6000 as a response. If I were to send a packet from the same origin configuration (same origin ip and port that were used for the STUN-request) to any other destination address (the destination port stays the same) then my NAT would change the public port again

udp packet loss and recovery

对着背影说爱祢 提交于 2019-12-04 20:52:50
I am working on both udp/tcp based P2P for file and real time video streaming application.the application will be developed for both Linux and windows platform using c++. We are using ICE(TCP/UDP hole punching) to implement the P2P. while TCP ensure the packet loss but for UDP I need a decent approach to make sure packet must be delivered to the other peer. I wanted to know the algorithm or technique to do this. Is there any free thord party tool/libraries to do. Any link and suggestion will be appreciated? Len Holgate You might find the answers to this question helpful: What do you use when

c++ Hole punching UDP(RTP)

放肆的年华 提交于 2019-12-04 16:48:07
I am doing a client-server voice chat program(unmanaged C++,win32) in which clients connects to the server using TCP and textchat/chatroom functions are done in TCP while all audiotransmission is sent through a separate UDP/RTP socket (using the API from JRTPLIB). So the IP is known from the TCP connection, and the port number of the RTP socket can be sent after connection is established. The problem is that in TCP only the server needs to do port forwarding for communications to work both ways since you establish a connection, while in UDP you'd have to use recvfrom() -- which afaik needs the