C#中的P2P

 P2P 编程 

1,P2P 概念 
   P2P(Peer-to-Peer),对等互联或点对点技术。 
    P2P 不是一种新的协议,而是利用现有的网络协议实现网络数据或资源信息 
共享的技术,它使用的可能是 TCP、UDP 或其他协议。 
   使用 P2P 技术,可以让一台计算机与另一台计算机直接交换数据,通过 
internet直接使用对方的文件。 
2,P2P 的设计架构 
    (1)集中式架构:有专用服务器,类似于 C/S 结构; 
    (2)完全分布式架构 (单纯架构):无专用服务器,节点既是客户端,也是服务 
器。 
    (3)混合型架构 :有的节点承担服务器的角色。 
3,P2P 相关问题 
    P2P 通信需要解决两个私网计算机的通信 (建立连接)问题: 
    1,内网地址到外网地址的转换的实现(NAT); 
   2, NAT 不允许外部主机主动访问内部主机; 
4,什么是 NAT? 
   NAT(Network Address Translators),网络地址转换. 
   NAT 功能通常被集成到路由器、防火墙、单独的 NAT 设备中,也可以是操作 
系统或其他软件(主要是代理软件,如 WINROUTE)。 
5,什么是网络穿越,如何实现 UDP 网络穿越? 
    网络穿越是指在网络通信过程中,通信的一端如果是内网地址时,需要利用 
NAT 进行地址转换.由于NAT 不允许外部主机主动访问内部主机,因此通信的一端 
发送信息前,必须解决如何不被另一端NAT 设备拦截的问题,即如何穿越对方 NAT 
的阻止。 
   基于 Server 的 UDP 网络穿越: 
   如果客户端 A 想向 B 发送信息,则其网络穿越过程为: 
    (1)A和 B 分别登录服务器 S; 
    (2) A 发送命令给 S,请求 S 命令 B 向A 方向打洞。 
    (3) 服务端 S 命令 B 向A 打洞; 
    (4) B收到消息后向 A 发送消息; 
    (5) A向 B 发送消息,实现网络穿越; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值