Tcp p2p 点对点 穿透 战败!该如何处理


Tcp p2p 点对点 穿透 战败!
前几天在做一个文件点对点传输的项目,涉及到NAT穿透,从上个星期到今天一直在调试和测试,最后到今天,看来已经战败!

以下是两篇是我作为技术依据的文章:

x



总的技术原理归纳如下:
首先还是 AB分别和服务器S分别建立连接,S记录AB的互联网实际终端。然后S分别向AB发送对方的实际终端。接着,从A和B向S连接时使用的端口,AB都异步调用connect函数连接对方的实际终端(就是S告诉的终端),同时,AB双方都在同一个本地端口监听到来的连接(也可以先监听,再connect更好)。由于双方都向对方发送了connect请求(假设各自的SYN封包已经穿过了自己的NAT),因此在对方connect请求到达本地的监听端口时,路由器会认为这个请求是刚刚那个connect会话的一部分,是已经被许可的,本地监听端口就会用SYN-ACK响应,同意连接。这样,TCP穿透NAT的点对点连接就成功了。 

自己写的代码穿透失败。下载了别人p2p TCP 穿透的代码 ,发现如果2个机器在同一个局域网(同一内网)内是可以传输文件,但是不同的陆游器(不同内网)下,穿透不成功。


我不是高手,p2p TCP 穿透 战败。

C#语言 .net 程序开发

伪D芙蘭朵露、 12 years, 3 months ago


留名,等高手解答再来看...

无双♂大王 answered 12 years, 3 months ago


努力了,失败也是成功


正规空母加贺改 answered 12 years, 3 months ago


继续努力。

nrndm answered 12 years, 3 months ago


有时间再看

leiwind answered 12 years, 3 months ago


tcp的比较难。udp实现起来比较简单

永远的僚机 answered 12 years, 3 months ago



拦路送钱的王子 answered 12 years, 3 months ago


坚持就是一种胜利

限量漫画册 answered 12 years, 3 months ago


RFC

蛋疼的秀才 answered 12 years, 3 months ago


S放的是A和B的NAT服务地址,S只知道A和B的公网地址,他不管A和B的私有地址,NAT负责把公网地址转为A和B的内部私有地址

A和B 的私有地址是不能通过路由的。

老夫不才 answered 12 years, 3 months ago


加油!!!!!

Cirno. answered 12 years, 3 months ago


lz加油,期待解决后放码啊

Yeah半瘦人 answered 12 years, 3 months ago


up

Neglect answered 12 years, 3 months ago


学习下``

注册你妹啊! answered 12 years, 3 months ago

Your Answer