• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

不同局域网间的P2P通信技术

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

P2P(Peer-to-Peer)即对等网络。P2P(Peer to Peer)网络结构区别于Client/Server结构或Browser/Server结构最显著的特点是整个网络不存在中心节点(或中心服务器),其中的每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。

P2P(Peer-to-Peer)即对等网络。P2P(Peer to Peer)网络结构区别于Client/Server结构或Browser/Server结构最显著的特点是整个网络不存在中心节点(或中心服务器),其中的每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。

NAT(Net Address Translation):网络地址转换,即局域网通常通过一个具有公网IP的代理网关服务器连到internet共享上网。局域往内的机器并不具有公网IP地址,只有内网IP地址,若要和internet上的HTTP服务器通信,代理网关便会创建一个端口来和这个网内机器通信,并通过该端口和HTTP服务器交换数据。最终,网内机器–>代理网关–>HTTP服务器,在一个会话期间,各自的端口保持了映射关系,特别是代理网关和网内机器的端口映射,使得代理网关不会把接收到的数据包发错对象。局域网内的机器在网关处,就是靠NAT来映射端口实现internet连接。因此,NAT也称为端口映射。端口映射之后,在一个会话期间保持,对于TCP连接是直到连接断开才销毁,而对于UDP,却存在一个不定的生存期。
如果两台机器A和B,分别处于两个局域网内,要通过internet通信,即为P2P连接通信。目前的internet使用IPV4,采用32位IP地址,主要被用来进行C/S形式的通信,需要共享的资源集中放于internet服务器上,IPV4对于P2P分布式资源共享的支持,极不友好。首先,32位IP地址已经不敷使用,公网IP地址日趋紧张,只能使用局域网共享公网IP的方式,局域网正是为了临时应对IP耗尽而出现的,长远的解决办法是研究IPV6。其次,分别处于两个局域网内的机器要通信,由于对方没有公网IP,直接呼叫对方是不可能的,必须
借助第三方中介间接地通信,解决方法有如下几种:
1、实现局域网内的数据链路层协议,就是设计一个类时TCP/IP的协议,由它来代替TCP/IP协议,由它直接基于网卡硬件获取数据。这是十分复杂的。
2、依靠internet上的公网服务器中转数据,但对于大数据量的中转,显然受到服务器和网络的负载极限的限制。
3、依靠internet上的公网服务器做媒介,将这两台分别处于不同局域网的机器相互通知给对方,在它们建立连接之后,服务器即脱离关系。这种方式下,服务器把A的NAT端口映射关系告诉B,又把B的NAT端口映射关系告诉A,这样AB相互知道对方的端口映射关系之后,就能建立连接。因为A和B各自的端口映射关系是靠各自的代理网关动态建立的,动态建立的映射端口不得告知对方。
4、上面的第三种办法,也可以采用静态端口映射方式,这样就无需中介服务器对A和B做介绍。在各方自的代理网关上,可以在代理工具里将某个端口(如1002)和局域网内的某台机器(如内网IP为192.168.18.23,端口1003)做好静态映射,这样,代理网关会自动地将出入于1002端口的数据发往192.168.18.23的1003端口。当然,通信之前,必须对对方的端口映射关系做配置。有多少台网内机器要通信,就得映射多少个不同的端口,同时在另一个局域网内的机器就要做多少个配置。在局域网内搭建HTTP、FTP等服务本文来源gao@daima#com搞(%代@#码网器就是通过静态映射端口来实现的,这个端口一般不是HTTP、FTP的默认80和23,所以对这类站点的访问往往会在URL里加上端口号。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:不同局域网间的P2P通信技术
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址