为什么NAT限制P2P,需要打洞才能通信? 5C

如题,现在的NAT映射的端口都有安全限制,只能是通过这个端口请求的IP和端口发来的信息才能通过,否则就会抛弃数据。

这种情况造成了我们在做P2P的时候需要打洞才行,而且对于部分型号 根本无法打洞

NAT为什么要这样设计,这样限制一下有什么意义?

这种设计的安全考虑是什么?

请大家解惑

0

2个回答

0
hailowell
纵马饮白虹 我不是问打洞技术,问的是为什么NAT要做限制导致我们现在要打洞?有什么意义,什么样的安全考虑?
3 个月之前 回复

因为P2P技术要求主机之间直接建立连接,而NAT技术隐藏了内部网络的结构。NAT内部网络的各个主机对外仿佛是同一主机的不同进程(使用相同IP,不同的端口号),也就是说,其它主机不能看到NAT背后的具体主机。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MakeTCPHoleNat打洞
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
TCP打洞参考
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
基于UDP的P2P小Demo (穿透NAT)delphi源码_终结版
具有一定的参考意义,是最完善的一个版本,原“基于UDP的P2P小Demo (穿透NAT)delphi源码”是比较粗糙的老版,此版是原作者改进后的。
VC P2P UDP打洞终于成功了,泪目
终于成功打洞了,之前那个失败的估计是因为路由对那个端口的时效性原因,这次修改了接收到服务端返回对方的IP马上向对方IP打洞,感谢bbs上的朋友讨论,服务端暂时还在运行, 使用方法第一方先点start clean,然后对方也点start,然后双方sendto server即可打通
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞源代码
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞,源代码
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞源码
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞源码
C# UDP穿越NAT,UDP打洞,UDP Hole Punching源代码
C# UDP穿越NAT,UDP打洞,UDP Hole Punching源代码
基于UDP的P2P小Demo (穿透NAT)delphi源码含Server和Client端
具有文字聊天和传文件的功能,没有使用Indy网络控件,直接用的WinsockAPI。传文件用的也是UDP,还不会TCP穿透的说-_-!,用了简单的重传机制。<br/>请把Server放在公网上,Client放在内网来测试,否则就没有穿透的意义了。
基于端口准随机猜测的UDP穿越Symmetric_NAT的方法
一种彼此猜测对方端口的解决方法,对端口映射无论是等差变化还是随机变化的情形都适用,且不需设置另外的服务器,从而实现对称型NAT的P2P。
基于P2P方式的即时通讯Delphi源码
基于P2P方式的即时通讯Delphi源码。点对点通讯,NAT打洞。
P2P聊天工具
NAT 包穿透 UDP打洞 P2P文件传输和聊天
P2P打洞技术实现穿透内网聊天
P2P可以是一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。在P2P网络中(如右图所示),所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源的共享。P2P网络具有分散性、可扩展性、健壮性等特点,这使得P2P技术在信息共享、即时通讯、协同工作、分布式计算、网络存储等领域都有广阔的应用。
基于QT的P2P聊天系统,UDP协议
基于QT的P2P聊天系统,UDP协议,QT5.0 以上版本可以用,MSVC2010
P2P打洞服务器
服务端采用IOCP网络模型,客户端采用多线程。实现了超时重发、差错检测、明文的MD5加密、确认包的实现。希望大家共同进步!
java UDP实现的P2P通信(可准确传输文件)
一个用java实现的UDP通信程序,有详细注释,有测试UI,成功解决了UDP丢包问题。程序正确可运行。
C#UDP打洞NAT
C#UDP打洞NAT C#UDP打洞NAT C#UDP打洞NAT
P2P传输UDP打洞源码
在传输数据时需要进行打洞处理,这样才能进行点对点传输数据,资源文件是通过UDP打洞的源码,使用C++开发,在Windows上验证通过,仅限于学习测试,请勿使用在商业用途上。
Java P2P聊天客户端源码
Java P2P聊天客户端源码,通过NAT打洞技术,借助P2P服务端,可以实现点对点通讯
UDP打洞实例P2P技术源码
UDP实现P2P技术打洞实例源码,测试过的,百分百有效
java udp p2p nat 等打洞技术实现通信,已测试成功
UDP打洞实现了子网间的穿透功能,首先在一台拥有公网IP服务器上运行server,在不同的两个子网PC上运行client,输入服务器IP,即可进行打洞,实现不同子网的通信。
p2p点对点打洞聊天程序源代码
原理:打洞服务器首先告诉用户A先发一条信息给用户B(用户A得知用户B的地址信息也是通过打洞服务器),注意此时用户B是收不到的,用户B的路由同样会进行丢弃,但是这并不要紧,因为用户A发了这条信息后,用户A的路由就会记录关于用户B的路由信息(该信息记录的是将用户B的IP信息路由到用户A电脑),然后此时用户B再发给用户A一条信息,就不会进行丢弃了,因为用户A的路由里面有用户B的路由信息。欢迎改进讨论
vb.net使用TCP协议穿透NAT代码
vb.net使用TCP协议穿透NAT代码
VB6.0UPNP内网打洞穿透端口映射
VB6.0制作的一款UPNP控制程序(带源码)。可以控制路由器的UPNP功能,无需登录路由器即可实现端口映射、内网穿透的功能。
UDP外网打洞
NAT穿透,经测试可以使用,通过不同的两个局域网,链接到协助打洞服务器后,关闭服务器,两台不同局域网机器可以互相发送数据
java udp 打洞例子(p2p)
java udp 打洞例子(p2p) .
UDP打洞P2P技术
P2P技术,UDP打洞,穿越NAT,服务器与客户端程序源码。学习P2P技术,UDP打洞的非常好的资料。 《[WINDOWS网络与通信程序设计].王艳平》第十章源码
p2p-test[udp打洞测试程序].zip
本程序实现了linux环境下的udp打洞功能,通过udp打洞实现P2P通信。
UDP打洞的p2p聊天程序
使用UDP打洞的p2p聊天程序,程序分为一个服务器和一个客户端,适用于穿越一般情况下的NAT
P2P原理及UDP穿透简单说明
P2P的原理,这里我们主要是是简单讲解一下UDP实现NAT的穿透(俗称打洞)
c# 实现远程QQ聊天(不是局域网内哦)
P2P NAT打洞实现真正远程,资源来自网络,个人整理,doc版,仅供研究
DELPHI UDP P2P传文件(UDPTransFile)源码
DELPHI 写的 UDP P2P传输文件源码,从中可以学习到P2P、NAT打洞以及UDP文件传输的基本原理。
Java P2P聊天服务端源码
Java P2P聊天服务端源码,通过NAT打洞技术,借助P2P服务端,采用客户端程序可以实现客户端点对点通讯
C# Tcp 打洞
C# Tcp 打洞
理解p2p nat打洞技术
看完能够理解p2p nat打洞 的基本原理 从各个地方找来的 看完感觉还挺有用
linux下基于UDP的P2P打洞示例程序
LINUX下基于UDP的P2P打洞程序,改自http://www.ppcn.net/p2ptech.html
p2p 演示 delphi
p2p udp 打洞 p2p delphi p2p udp 打洞
P2P穿透打洞文件传输源码及例子
文件传输工具,在线文件传输使用P2P穿透打洞,离线文件传输使用HTTP,全套源码
udp和tcp两种方式打洞,有源代码
穿越nat需要打洞,这个资源里面介绍了udp和tcp打洞方式 并有源代码
UDPTCP_打洞(穿越NAT)技术.docx
穿越nat需要打洞,这个资源里面介绍了udp和tcp打洞方式 有详细的实现原理和步骤
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 为什么需要云计算 深度学习为什么需要大数据

相似问题

2
为什么NAT限制P2P,需要打洞才能通信?
0
c#ef框架里Bll层的查询方法为什么要定义成泛型类呢,有什么好处
0
学习usb通信,使用qt creator开发cypress usb上位机问题,请大神们指点一二。
2
adoquery 使用问题,为什么无法更新
3
【C语言】将字符串逆序,为什么输出的时候多一个?号
1
C#引用类,在外部new之后,提示没有构造函数,如何才能使用里面的方法?
3
我想知道这段JAVA片段为什么报错,刚开始学习JAVA,照着书上敲的。
0
JAva fx提示错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
0
根据同一个wsdl文档,为什么不同的soap工具生成的soap消息包不完全一致?
0
关于matlab行波阈值去噪,为什么结果出来后并没有变化呢
1
有知道在zynq 7000平台下做以太网通信实验的实例吗?
1
inux 子线程执行完成后为什么使用ps命令依然能够看到该子线程
1
为什么r,h无论输入多少值,输出结果都为0.000???
1
django项目:如何在nginx下配置从而限制一些ip禁止访问一些url?
2
VS2017 MFC 为什么我这个项目会抛出找不到FindFile.cpp的异常,而新建的工程可以?
0
关于开软软件协议,调用而非包含第三方库,license中需要包含库的许可吗?
1
javascrpt语言,怎么判断只有checkbox选中的时候,对应的文本框才能填写
1
为什么用了micSendString后仍然出不了音乐?
1
请问我这个拿C++的WinAPI编的程序为什么运行无效果?
3
关于Java线程通讯,为什么生产者的p和消费者p是同一个对象?