登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
《c# 实现p2p文件分享与传输系统》 一、 模型 ...
《c# 实现p2p文件分享与传输系统》 一、 模型
[ 复制链接 ]
心麾浪
2025-5-29 19:10:07
c#实现P2P文件分享与传输系统
一、模型
P2P的概念大家都不陌生,也就是所谓的“点对点传输”,即不直接通过服务器,在两台或多台客户端之间传输数据,实现信息交流和资源共享。P2P技术已经发展了很多年了,虽然理论上已经发展了很多的模型,但在实际的网络环境中(尤其是镇里这种环境),究竟怎样的网络结构才具有较好的稳定性和较高的传输性能,还是有很大的争议,每家做P2P的网络公司都会有不同的见解。当前,P2P技术应用的主要目的还是减轻服务器工作压力,本人不才,之前曾在国内某网络软件公司里担任p2p相关的流媒体项目开发,对于P2P技术所创造的能力和带来的价值深有体会,也曾被它的复杂性所折磨的痛苦不已,不过,这也是我所珍惜的一笔宝贵的知识财富。
似乎扯远了。。。赶紧回来,前段时间做了一个c#实现p2p文件传输系统的项目。以前都是用c/c++,这还是第一次用c#来做这种项目,由于用c++比用c#要早的多,所以写c#程序不免会带些c++的习惯,不过不影响程序整体。第一步:设计。对于“文件分享和传输”这种典型的p2p应用,可以使用成熟的模型和框架:
上面这个图里面有几个固定的端点:Peer、Tracker Server、NAT Server和Source Server,还有两个游离的元素:数据和下载节点,它们构成了一个完整的p2p网络。在这个网络中,它们各司其职,维系着网络的运转。
Peer
整个系统的核心所在,主要负责资源提供和资源索取,驱动着网络的运行。也只有Peer,是唯一的一个必须存在的元素。
Tracker Server
如其名所述,动态、实时地监视着整个网络中peer节点的状态和资源分布,向下载节点提供p2p资源查询的重要功能,通过tracker server,下载节点可以迅速而准确的获取网络中拥有资源的节点列表,展开p2p下载。
NAT Server
负责NAT穿透,也形象的称为“打洞”。对于藏在
受限型NAT网络
后面的节点,不通过NAT Server做穿透的话,是无法和NAT后面的节点进行通信的,而目前大部分人是没有公网IP的,NAT Server对于组建p2p网络十分的重要。对于NAT穿透,我会在后面的文章中解释。
Source Server
负责资源提供或资源发布,一般网络公司建立的p2p网络,会有这种服务器来发布需要推广和扩散的资源。
这个模型基本涵盖了p2p网络架构的主要几个部分,在具体实施的时候会根据不同的资源类型有不同的变化,通常会更加的复杂,当然,也有可能更简单。比如,
DHT
(D
istributed Hash Table)
网络,这种网络,以不需要服务器的参与来完成p2p的查询与传输为主要特点,例如大家常用的eMule中的
KAD
网络,就是一种DHT网络。但其实,DHT中,是peer节点,负责了Tracker Server和Source Server的工作。也就是peer变得比较复杂,如果把它拆开来看,也基本就是这个模型。Peer的复杂化,可以降低服务器运行压力,但就牺牲了实时性,对于实时性和准确性要求高的应用,例如
流媒体
,不太适合DHT,当然,这并不妨碍DHT作为辅助手段来探知更多的资源节点。
我要做的这个“EasyP2P”文件分享与传输系统,目前暂时不需要Source Server,由Peer负责Source Server的功能,也就是资源的发布;Tracker Server负责节点和资源的查询;NAT Server依然负责打洞。于是,变化成如下结构:
这就是EasyP2P系统的模型,接下来,将根据这个模型,来具体设计整个网络的架构和运行流程。
文章版权haibindev,转载请注明作者和出处,谢谢合作~
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
心麾浪
2025-5-29 19:10:07
关注
0
粉丝关注
13
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
猷咎
9988
5
凶契帽
9988
6
接快背
9988
7
氛疵
9988
8
恐肩
9986
9
虽裘侪
9986
10
里豳朝
9986
查看更多