c#网络编程专题8:p2p编程new

c#网络编程专题8:p2p编程new

ID:22678633

大小:185.00 KB

页数:11页

时间:2018-10-30

c#网络编程专题8:p2p编程new_第1页
c#网络编程专题8:p2p编程new_第2页
c#网络编程专题8:p2p编程new_第3页
c#网络编程专题8:p2p编程new_第4页
c#网络编程专题8:p2p编程new_第5页
资源描述:

《c#网络编程专题8:p2p编程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[C#网络编程系列]专题八:P2P编程(转载:http://www.cnblogs.com/zhili/archive/2012/08/23/WebServer.html)引言:前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面就进入正题——P2P(PeertoPeer)编程。一、P2P的介绍首先,现在大家熟知的BT、电驴、迅雷、QQ、MSN和PPlive等都是基于P2P方式实现的软件,并且对等联网(P

2、eertoPeer,P2P)将是互联网的发展方向,因此对于P2P技术的了解显得非常的重要,下面就来介绍下P2P架构:在P2P技术之前,我们所有的网络应用都采用C/S或者B/S架构来实现的,然而在之前C/S架构的应用程序中,客户端软件向服务器发出请求,服务器然后对客户端请求做出响应,在这种情况下,如果客户端越多,此时服务器的压力就越大。然而采用P2P技术实现的每台计算机既是客户端,也是服务器,他们的功能都是对等的。对于安装了P2P软件(如迅雷,QQ等)的计算机加入一个共同的P2P网络,网络中的节点之间可以直接进行数据传输和通信。1.1P2P架构

3、和C/S架构的比较C/S架构有下面的缺点(其实上面的简单介绍中也讲到过):1.服务器负担过重。当大量用户访问C/S系统的服务器时,服务器常常会出现网络堵塞等现象,这时候,我们可能会通过增加投资提高服务器的硬件性能2.系统稳健性和服务器关联密切。指的是——如果服务器出现了问题时,整个系统的运行将会瘫痪(感觉是面向对象中经常强调的原则——低耦合原则)然而P2P具有下面的特点:1.对等模式P2P系统中的客户端能够同时扮演客户端和服务器的角色,使两台计算机之间能够不通过服务器直接进行信息分享(QQ中当好友在线的时候发信息时,相信此时是不需要经过服务器

4、转发的,只有当给离线好友发送消息时,此时应该会先把消息发送到服务器端存储起来,当好友再次登录的时候,会和服务器进行连接,服务器会进行判断是不是给这个用户的信息来决定是否转发,QQ软件的实现属于混合型P2P结构的,这个会在后面的P2P系统分类中介绍。)注:括号中都是我个人的一些理解,如果有什么说错的地方请大家及时更正我,这样我会及时的更新以免误导大家,谢谢大家监督。2.网络资源的分布式存储在C/S架构中,所有客户端都直接从服务器下载所有数据资源,这样势必会加重服务器的负担,而P2P则改变了以服务器为中心的状态,使每个节点可以先从服务器上个下载一

5、部分,然后再相互从对方或者其他节点下载其余部分。采用这种方式,当大量客户端同时下载时,就不会形成网络堵塞现象了。1.2P2P系统的分类使用P2P技术的系统分为两类:(1)单纯型P2P——没有专用的服务器。安装了P2P软件的各个计算机可以直接通信。(2)混合型P2P——有专用的服务器,此时的服务器一般叫索引服务器,此服务器与C/S架构下的服务器不同,在C/S架构下所有资源都存储在服务器中,所有传递的信息都要经过服务器,而在混合型P2P系统中的索引服务器仅仅起到协调和扩展的功能,资源不是全部存储在服务器上,而是分布在各个电脑上,安装了P2P软件的

6、电脑开始全部和索引服务器连接,以便告知自己监听的IP地址和端口号,然后再通过索引服务器告诉其他与自己连接的电脑,每台计算机的连接和断开都通过服务器通知网络上有联系的计算机,这样就减轻了每台计算机搜索其他计算机的负担,但是信息的传递还是通过点对点的方式来完成(这里可以以QQ为例,当我们电脑上安装了QQ这类P2P软件时,安装了QQ这类软件的计算机就会加入一个P2P网络,并且登陆的时候都会与索引服务器建立连接,通过连接来告诉服务器自己的IP地址和端口号,当我们找一个好友聊天时,此时自己的计算机和好友的计算机都会与服务器端口连接,但是要互相发送消息,

7、自己的计算机必须知道好友计算机的IP地址和端口号才可以通信,这样的工作正是通过索引服务器来告知对方的--指的是告诉自己的计算机好友的计算机的IP地址和端口号,告诉好友的计算机自己的IP地址和端口号,这样双方就可以不通过服务器直接通信了。)1.3主流P2P应用分类P2P网络应用大致可以分为三类——1.文件共享类,例如迅雷,BT等软件都是文件共享类的应用。2.即时通信类,例如QQ,MSN等软件都是属于即时通信类。3.多媒体传输类,例如在线视频直播软件,PPlive等软件。从上面的分类可以看出,现在网络上流行的软件都采用了P2P技术来实现的,但是它

8、们的实现肯定不是单纯的只采用P2P技术来实现的,而是采用多种技术来实现的,在下一专题中将介绍利用TCP,UDP和P2P等技术来实现类似QQ的一个即时通信程序,希望通

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。