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, 11 months ago


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

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


努力了,失败也是成功


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


继续努力。

nrndm answered 12 years, 11 months ago


有时间再看

leiwind answered 12 years, 11 months ago


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

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



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


坚持就是一种胜利

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


RFC

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


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

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

老夫不才 answered 12 years, 11 months ago


加油!!!!!

Cirno. answered 12 years, 11 months ago


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

Yeah半瘦人 answered 12 years, 11 months ago


up

Neglect answered 12 years, 11 months ago


学习下``

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

Your Answer