社区
网络编程
帖子详情
如何穿透 Symmetric NAT 啊
helloooo
2005-01-05 12:53:19
如何穿透 Symmetric NAT 啊
向各位请教!!!!!!
...全文
1400
17
打赏
收藏
如何穿透 Symmetric NAT 啊
如何穿透 Symmetric NAT 啊 向各位请教!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
helloooo
2005-02-26
打赏
举报
回复
顶
sdsuper
2005-02-16
打赏
举报
回复
mark
tide2355
2005-02-16
打赏
举报
回复
Mark
iorikingdom
2005-02-15
打赏
举报
回复
UP,来讨论一下这个问题
iorikingdom
2005-02-09
打赏
举报
回复
没有见过Symmetric NAT,
不过我想如果是UDP的话可以这样实现例如公网服务器C,IP:(61.127.45.25)
公网NAT(61.128.45.55)内的客户机B(192.168.0.75),内网NAT(61.129.58.47)的A(192.168.0.82)
首先B和A进行通信前都向公网服务器发送心跳包,这样客户机B和客户机A就拿到了一个端口对照表
假设是B(192.168.0.75:2000<->61.128.45.55:5000)和A(192.168.0.82<->61.129.58.47)
这样B要跟A通信的话,就用raw socket也好,winpcap也好都伪造公网服务器C的IP地址来发包(包里面可以把来源地址和端口写进去,这样对方就知道是跟哪个IP通信)虽然源IP用的是公网的IP,但是经过解包了以后,一样可以解决问题啊,这样A就可以收到B的包了,同理B也可以这样跟A通信,从此B和A都就可以同心跳包来维持这个端口,这样算不算穿透?
iorikingdom
2005-02-09
打赏
举报
回复
用UDP不算穿透?
shootingstars
2005-02-08
打赏
举报
回复
同意 skykeen(天佑神州)的。
楼上的一些说可以使用http隧道过NAT的可能还没有理解NAT到底完成的什么工作。http隧道一般是用来骗过允许http协议通过的防火墙。
我想穿透Symmetric NAT或许只能通过端口猜测,其实这个原理倒不是很难,前提是这个Symmetric NAT的端口分配是按规律增长的,并且这个网络不是太繁忙。
gaooo
2005-02-08
打赏
举报
回复
gz
gdy119
2005-02-06
打赏
举报
回复
让所有的数据包经过HHTP(80或者8080)的端口出去,伪装成HHTP协议的TCP包
就能实现穿透
hjunxu
2005-02-06
打赏
举报
回复
学习
sharkhuang
2005-02-06
打赏
举报
回复
学习Symmetric NAT
skykeen
2005-02-06
打赏
举报
回复
http://www.codeguru.com/Cpp/I-N/internet/http/article.php/c6209/ http Tunnel能部分通过FW(防火墙),但解决不了Symmetric NAT穿越的问题。
www.artdio.com.tw/tw/download/faqs/IPF_2000_FAQ.pdf 中stun依然只能解决Cone NAT,对Symmetric NAT也是无能为力的。
p2p通信至少面临着两个障碍1:NAT(网络地址转换,地址映射) 2:FW(防火墙)
先看看NAT,NAT存在意义1:解决ipv4里地址溃乏,2:网络安全:
NAT分Cone NAT,Symmetric NAT两类;其中Cone NAT又分1:不受限,2:ip受限,3:ip port受限三类
而Symmetric(对称) NAT对于不同的外网结点,内网port映射到外网时会发生改变,甚至是ip;也就是说通过Symmetric情况会是这样:内网里结点A 192.168.0.100::1500--(Symmetric)-->66.27.51.88::18000 与公网211.120.121.10::5000通信,但是该结点A 192.168.0.100::1500-|(Symmetric)|->与公网187.120.121.10::5000(或者211.120.121.10::6000)通信时,其外网地址将不再是66.27.51.88::18000(也就是说在与187.120.121.10::5000 通信前其外网地址是不可知,这一点与Cone不一样,Cone NAT只是在某程度使外网地址与内网地址受限,但A与外网ps1通信和与ps2通信时地址一样的),与不同通信对象通信,其映射地址也不一样,这就是穿越Symmetric NAT的真正难点,而穿越Cone NAT可以参考 shootstars那个贴子。我知道有人用动态预测法解决穿越Symmetric NAT问题,但是成功率并不是100%,如果你能100%穿越Symmetric NAT,
看看FW,FW存在意义:网络安全:
FW与NAT根据是两码事,其没有网络地址转换的概念,只有网络安全意义,但与NAT实现不一样,NAT的安全性是由地址映射和映射访问受制造成的,而FW的网络安全是FW过滤外网访问者发过来某种(防火墙可以设置)诸如协议类型(如http,ftp,udp,tcp,icmp etc)数据(解决方法:把受限协议包装成不受限协议发给),或者过滤某些特定端口的数据(解决方法:使用其开放端口)。
综上:p2p(我指:允许公网server中转信令,两个不同内网里的两个结点直接进行媒体通信)要同时穿越NAT和FW,难度不小。如果你的p2p能够在两个内网间通信,并不见得你完成了p2p,那得看你穿越了Symmetric NAT,穿越了FW没有。在有些环境中使用p2p同时穿越Symmetric NAT,FW是不可能的,你不要说使用什么public server中转(代理)技术,我讲的是两个不同内网里的两个结点允许public server中转信令,但是两者要直接进行媒体通信(p2p);
关于NAT:根据我的测试,网吧里,小公司使用的都是Cone NAT,只有对安全要求很高的公司,组织或个人才使用Symmetric NAT;如果网吧用Symmetric NAT,我想这个网吧肯定要破产,因为很多p2p游戏和工具过不了Symmetric NAT;也就是说:对于一般P2P应用,大家可以只考虑Cone NAT,因为在安全要求很高的公司使用p2p是不被允许,也就是说:即使你实现了穿越Symmetric NAT,也不会有多大市场,因为你的BOSS不公许你使用,这也是对安全要求很高公司的定义。
再次对一些声称能成功穿越NAT的人说一句:你那个玩意只是穿越了Cone NAT,但你没遇到Symmetric NAT,或许你根本不知道这个东西。
要测试你的NAT类型,可以写两个socket程序,一个Client,一个Server;或者简单点,在baidu上搜索一个叫stun的测试工具(包括Client ,Server),注意client动行在内网上,NAT在内网与外网间,server要运行在两个外网址址上;
helloooo
2005-01-08
打赏
举报
回复
^
kingzai
2005-01-05
打赏
举报
回复
www.artdio.com.tw/tw/download/faqs/IPF_2000_FAQ.pdf
HunterForPig
2005-01-05
打赏
举报
回复
HTTP Tunnel 的例子
http://www.codeguru.com/Cpp/I-N/internet/http/article.php/c6209/
BruceJiang
2005-01-05
打赏
举报
回复
能不能讲详细点
zhujianping_es
2005-01-05
打赏
举报
回复
Use HTTP Tunnel
一种TCP协议
穿透
Sym
metric
_
NAT
方案
一种TCP协议
穿透
Sym
metric
_
NAT
方案
UDP穿越
Sym
metric
NAT
(对称型
NAT
)的端口猜测方法
UDP穿越
Sym
metric
NAT
(对称型
NAT
)的端口猜测方法的几篇文章
基于ICE方式SIP信令
穿透
Sym
metric
_
NAT
技术研究
基于ICE方式SIP信令
穿透
Sym
metric
_
NAT
技术研究
A New Method for
Sym
metric
NAT
Traversal in UDP and TCP
A New Method for
Sym
metric
NAT
Traversal in UDP and TCP 讲解网络
穿透
的知识
NAT
穿越服务器概要设计
它主要有四种类型:完全锥型
NAT
(Full Cone
NAT
),地址限制锥型
NAT
(Address Restricted Cone
NAT
),端口限制锥型
NAT
(Port Restricted Cone
NAT
),对称型
NAT
(
Sym
metric
NAT
)。前三种
NAT
,映射与目的地址无关,只要...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章