论文部分内容阅读
[摘要]计算机对等网络 (P2P)技术是目前网络技术的研究热点。本文根据教学需要设计一套即时通讯软件,原理简单,成本低,易于实现。我们从P2P技术的基本概念、应用范围和技术特点进行分析,并介绍了网络模型设计和系统结构模型设计。从而方便大家了解其P2P技术,实现其教学功能,并很好地向实际推广应用。
[关键词]P2P局域网TCP/ IP UDP即时通讯
一、 P2P技术
1.P2P技术介绍
P2P是英文peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义,因此,P2P可以理解为对等网、点对点等。现在,P2P软件技术在互联网上得到广泛应用,除了网上即时通讯软件之外,P2P在共享音乐和软件下载等方面的应用也很多,如PP Live网络电视软件、多媒体影音分享工具POCO软件、BT下载、迅雷下载、eMule——电驴等软件均属于P2P软件。
在互联网应用中,P2P是一种技术,同时也是一种思想。它是一种充分发挥整个互联网基础潜能的思想。P2P使得互联网络上的沟通变得容易、更直接共享和交互,真正地消除中间环节。使人们可以直接连接到其他用户的计算机进行文件交换,而不是像过去那样必须连接到服务器去浏览与下载。
P2P技术的局域网即时通讯软件的设计应用主要是实现同在一个局域网内的每个用户之间进行即时通讯,即聊天、文件传输等功能。它是一个建立在纯P2P模型下的即时通讯软件,所以完全不需要服务器支持就可以进行点对点通讯,使用起来非常方便。它采用了UDP网络的传输协议进行底层的消息传送,在此基础上用广播消息实现上下线提示。该软件同时采用TCP网络的传输协议进行文件传输和建立可靠的文字聊天。
2.P2P技术产生的背景
P2P不是一个新概念,在互联网产生初期,一个本质的特征就是P2P,只不过由于带宽及处理能力等的限制,使得我们的沟通中出现了很多的中间环节,如中间服务器、门户网站、第三方信息(交易)平台等。这样,个人用户在互联网上变成了被动的参与者,被动地接受那些“中心”提供的过时、芜杂的信息。在国外,P2P发展已经如火如荼,Intel、Sun、Microsoft等公司都已经开始制定P2P的标准。对等计算它引导着网络计算模式从集中式向分布式转移,也就是说,网络应用的核心从中央服务器向网络边缘的终端设备扩散:服务器到服务器、服务器到PC机、PC机到PC机,PC机到WAP手机……所有网络节点上的设备都可以建立P2P对话。基于P2P技术的局域网即时通讯软件教学设计就是针对这种需求而开发的。它设计思想简单,即以简单而有效的方式构建纯P2P通讯模型,在没有服务器支持的情况下,实现局域网内点对点的通讯功能,就是简单的网络文字聊天、文件传输等应用。使得开发后期不需要过多考虑如何解决对等通讯的技术问题,而可以专注于如何实现与完善可扩展、操作性强的高层应用。
3. P2P技术的特点
P2P技术应用于教学局域网时有如下特点:
(1)成本低廉。与传统C/S结构的网络相比,因为设备依靠的是各个点的终端,实施时不需要特别额外的设备,所以其成本很低。
(2)高性能。系统采用P2P技术,能充分利用网络中的所有计算机资源,整体上平均事物处理能力较高。
(3)可扩展性好。中间服务器是采用多服务器并行处理,并支持异构特性,可以动态扩展服务器的功能和数量,系统提供的应用功能也就随之不断地增加扩展。
(4)安全性好。系统提供任意两点间动态密钥加密机制和对任意节点的身份验证机制,并在面向应用的格式化消息结构和系统接口中,预留了第三方加密软件接口,用户可以对其安全性进行任意定制。
本软件的特点采用基于纯P2P网络模型方式,不需要专门的服务器,网络中所有的对等点都是服务器,并且承担很小的服务器的功能。各用户可以根据运行时收集到的用户信息选择聊天对象,大部分的功能都可以在此连接上实现。
二、 P2P技术的需求分析
1.软件功能层的划分
根据该即时通讯软件的应用功能和P2P技术的组网模式可划分为四层软件功能层:接口层、网际层、传输层和应用层。
(1)接口层。这是TCP/ IP 软件的最底层,负责接收IP 数据包并通过网络发送或网络上接收物理帧,抽出IP 数据包,交给IP 层。
(2)网际层。负责相邻的计算机之间的通信。功能包含: ①处理来自于TCP的数据,收到请求后分组装入IP 数据包,填充报文头后选择目标机的路径,再将数据包发送到相应的接口;②处理从接口层来的数据,判断数据包正确后去掉IP 包文头后发送到相应的传输层;③处理ICMP 数据包文,处理路径、流控和拥塞问题等。
(3)传输层。提供端到端的通信。其功能包含:①格式化信息流,处理从应用程序和从IP 层来的数据,再发送到相应的协议处理层;②提供可靠的连接,在这里传输层协议规定接收端必须发送确认信息来建立链路,并且假如分组遗失必须重新发送。
(4)应用层。向用户提供一组常用的应用程序,如EMAIL,FTP等。严格地说TCP/ IP 只包含前三层。PPP 协议的协议帧结构与多数常用软件兼容,而且还提供了在单一链路上同时复用多种网络协议机制。
2.数据需求分析
(1)数据传送的载体。在本文介绍的基于P2P技术的即时通讯软件程序中,在Visual C具体操作实现网络点对点通讯软件的关键就是实现信息在网络中的发送和接收。数据接收载体的是Socket,数据发送载体的是Network Stream。为了更清楚地说明问题,下面举简单示例说明接收和发送数据的流程。利用Socket来接收信息。软件程序在处理数据发送和接收时采用了不同的端口号,发送数据程序在缺省状态设定的端口号为“2244”。下面代码是侦听端口号“2244”,接受网络中对此端口号的连接请求,并在建立连接后,通过Socket接收远程计算机发送来的数据;利用Network Stream来传送信息。Network Stream载体的就是Stream Writer类和Stream Reader类,Network Stream在处理网络中数据传送时,有一个缺点就是只能用以传输字符类型的数据。在使用Stream Writer处理Network Stream传送数据时,数据传送的编码类型是“UFO6”,提出网络中对等计算机的连接申请,并在连接申请建立后,以UFO6编码发送字符串“您好,见到您很高兴”到对等计算机那里。
(2)数据的一致性与容错性。由于对等计算机的信息在本地是共享的,所以就不存在数据一致性问题。但是由于没有固定服务器的支持,所以每一个对等计算机都要独立保存一份数据,当一部分对等计算机在线时,数据更新也只是这一部分计算机,这样就造成数据不一致。面对这个问题,我们的即时通讯软件就能够允许出现数据的不一致,并且在客户端上线后,能够即时获得更新。
三、概要设计
P2P作为一种网络的模型,有别于传统的客户/服务器模型。客户/服务器模型一般都有预定义的客户机和服务器。在网络中,传统上的客户机/服务器通讯模型中,发送服务请求或者发送数据的计算机,一般称为客户机;而接收、处理服务或者接收数据的计算机成为服务器。而在P2P中并没有明确的客户端和服务器。其实,在P2P模型中,每一台计算机既可以看成是服务器,也可以看成是客户机。
1.网络模型设计
纯P2P网络架构采用的是广播式的P2P模型。在这种架构下,没有集中的中央服务器,每个用户节点随机接入到网络,并与自己相邻的一组节点通过端到端连接构成一个逻辑覆盖的网络。节点之间的内容查询和内容共享都是直接通过相邻节点以广播方式接力传递。为了避免循环搜索现象,每个节点会记录其搜索轨迹。
比如,Gnutella模型是现在应用最广泛最经典的纯P2P网络架构。它采用泛洪式的节点搜索算法,解决了网络结构中心化的问题,扩展性和容错性较好。但是,Gnutella网络可用性较差,易被病毒攻击,并且极大地消耗了网络带宽,很容易造成网络拥塞与不稳定。
对于局域网的整体模型,采用了纯P2P的连接模型,充分发挥了点对点通讯的优势。在本地主机上保存了局域网其它结点的基本信息,直接通过目录列表与其它主机通讯,这样可以大大减少连接的开销。
2.系统结构模型设计
以需求分析为依据,结合教学模式的特点,系统结构模型划分为三层:显示层、控制层以及数据层。
显示层主要是使用者与软件的交互平台,它实现友好的用户界面,是使用者获得和输入信息的渠道。
控制层是整个软件的灵魂,大部分的底层操作都需要经过调用控制层的方法。包括初始化原始数据、网络消息的收发、网络消息的处理、用户信息的管理、基本窗口的管理。
数据层是提供了存取、拷贝、查找和序列化等方法的信息结构体,它使得消息数据操作、数据库操作和基本信息数据操作都变得透明化。包括数据集对象、基本数据信息对象。
四、结论
本文介绍的P2P技术在教学即时通讯软件的设计应用程序方便,但涉及的知识面却比较多。其中,涉及到很多网络功能的实现,如侦听端口号、建立连接、发送数据和接收数据等,了解、掌握这些问题的处理方法对编写更复杂的网络应用程序是十分必要的。
参考文献:
[1]王一炜,杨可扬.浅谈P2P技术[J].忻州师范学院学报,2007.
[2]侯太平,顾大权,汪晋.浅谈P2P技术[J].微计算机应用,2002,(06):22-24.
[3]龚君芳,李圣文. P2P应用程序及设计[J].现代计算机,2002,(09):36-38.
[4]毛薇,姚青,李涛.P2P系统发现技术的研究与实现[J].武汉理工大学学报,2002,(06):52-54.
(作者单位:浙江理工大学信息电子学院)
[关键词]P2P局域网TCP/ IP UDP即时通讯
一、 P2P技术
1.P2P技术介绍
P2P是英文peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义,因此,P2P可以理解为对等网、点对点等。现在,P2P软件技术在互联网上得到广泛应用,除了网上即时通讯软件之外,P2P在共享音乐和软件下载等方面的应用也很多,如PP Live网络电视软件、多媒体影音分享工具POCO软件、BT下载、迅雷下载、eMule——电驴等软件均属于P2P软件。
在互联网应用中,P2P是一种技术,同时也是一种思想。它是一种充分发挥整个互联网基础潜能的思想。P2P使得互联网络上的沟通变得容易、更直接共享和交互,真正地消除中间环节。使人们可以直接连接到其他用户的计算机进行文件交换,而不是像过去那样必须连接到服务器去浏览与下载。
P2P技术的局域网即时通讯软件的设计应用主要是实现同在一个局域网内的每个用户之间进行即时通讯,即聊天、文件传输等功能。它是一个建立在纯P2P模型下的即时通讯软件,所以完全不需要服务器支持就可以进行点对点通讯,使用起来非常方便。它采用了UDP网络的传输协议进行底层的消息传送,在此基础上用广播消息实现上下线提示。该软件同时采用TCP网络的传输协议进行文件传输和建立可靠的文字聊天。
2.P2P技术产生的背景
P2P不是一个新概念,在互联网产生初期,一个本质的特征就是P2P,只不过由于带宽及处理能力等的限制,使得我们的沟通中出现了很多的中间环节,如中间服务器、门户网站、第三方信息(交易)平台等。这样,个人用户在互联网上变成了被动的参与者,被动地接受那些“中心”提供的过时、芜杂的信息。在国外,P2P发展已经如火如荼,Intel、Sun、Microsoft等公司都已经开始制定P2P的标准。对等计算它引导着网络计算模式从集中式向分布式转移,也就是说,网络应用的核心从中央服务器向网络边缘的终端设备扩散:服务器到服务器、服务器到PC机、PC机到PC机,PC机到WAP手机……所有网络节点上的设备都可以建立P2P对话。基于P2P技术的局域网即时通讯软件教学设计就是针对这种需求而开发的。它设计思想简单,即以简单而有效的方式构建纯P2P通讯模型,在没有服务器支持的情况下,实现局域网内点对点的通讯功能,就是简单的网络文字聊天、文件传输等应用。使得开发后期不需要过多考虑如何解决对等通讯的技术问题,而可以专注于如何实现与完善可扩展、操作性强的高层应用。
3. P2P技术的特点
P2P技术应用于教学局域网时有如下特点:
(1)成本低廉。与传统C/S结构的网络相比,因为设备依靠的是各个点的终端,实施时不需要特别额外的设备,所以其成本很低。
(2)高性能。系统采用P2P技术,能充分利用网络中的所有计算机资源,整体上平均事物处理能力较高。
(3)可扩展性好。中间服务器是采用多服务器并行处理,并支持异构特性,可以动态扩展服务器的功能和数量,系统提供的应用功能也就随之不断地增加扩展。
(4)安全性好。系统提供任意两点间动态密钥加密机制和对任意节点的身份验证机制,并在面向应用的格式化消息结构和系统接口中,预留了第三方加密软件接口,用户可以对其安全性进行任意定制。
本软件的特点采用基于纯P2P网络模型方式,不需要专门的服务器,网络中所有的对等点都是服务器,并且承担很小的服务器的功能。各用户可以根据运行时收集到的用户信息选择聊天对象,大部分的功能都可以在此连接上实现。
二、 P2P技术的需求分析
1.软件功能层的划分
根据该即时通讯软件的应用功能和P2P技术的组网模式可划分为四层软件功能层:接口层、网际层、传输层和应用层。
(1)接口层。这是TCP/ IP 软件的最底层,负责接收IP 数据包并通过网络发送或网络上接收物理帧,抽出IP 数据包,交给IP 层。
(2)网际层。负责相邻的计算机之间的通信。功能包含: ①处理来自于TCP的数据,收到请求后分组装入IP 数据包,填充报文头后选择目标机的路径,再将数据包发送到相应的接口;②处理从接口层来的数据,判断数据包正确后去掉IP 包文头后发送到相应的传输层;③处理ICMP 数据包文,处理路径、流控和拥塞问题等。
(3)传输层。提供端到端的通信。其功能包含:①格式化信息流,处理从应用程序和从IP 层来的数据,再发送到相应的协议处理层;②提供可靠的连接,在这里传输层协议规定接收端必须发送确认信息来建立链路,并且假如分组遗失必须重新发送。
(4)应用层。向用户提供一组常用的应用程序,如EMAIL,FTP等。严格地说TCP/ IP 只包含前三层。PPP 协议的协议帧结构与多数常用软件兼容,而且还提供了在单一链路上同时复用多种网络协议机制。
2.数据需求分析
(1)数据传送的载体。在本文介绍的基于P2P技术的即时通讯软件程序中,在Visual C具体操作实现网络点对点通讯软件的关键就是实现信息在网络中的发送和接收。数据接收载体的是Socket,数据发送载体的是Network Stream。为了更清楚地说明问题,下面举简单示例说明接收和发送数据的流程。利用Socket来接收信息。软件程序在处理数据发送和接收时采用了不同的端口号,发送数据程序在缺省状态设定的端口号为“2244”。下面代码是侦听端口号“2244”,接受网络中对此端口号的连接请求,并在建立连接后,通过Socket接收远程计算机发送来的数据;利用Network Stream来传送信息。Network Stream载体的就是Stream Writer类和Stream Reader类,Network Stream在处理网络中数据传送时,有一个缺点就是只能用以传输字符类型的数据。在使用Stream Writer处理Network Stream传送数据时,数据传送的编码类型是“UFO6”,提出网络中对等计算机的连接申请,并在连接申请建立后,以UFO6编码发送字符串“您好,见到您很高兴”到对等计算机那里。
(2)数据的一致性与容错性。由于对等计算机的信息在本地是共享的,所以就不存在数据一致性问题。但是由于没有固定服务器的支持,所以每一个对等计算机都要独立保存一份数据,当一部分对等计算机在线时,数据更新也只是这一部分计算机,这样就造成数据不一致。面对这个问题,我们的即时通讯软件就能够允许出现数据的不一致,并且在客户端上线后,能够即时获得更新。
三、概要设计
P2P作为一种网络的模型,有别于传统的客户/服务器模型。客户/服务器模型一般都有预定义的客户机和服务器。在网络中,传统上的客户机/服务器通讯模型中,发送服务请求或者发送数据的计算机,一般称为客户机;而接收、处理服务或者接收数据的计算机成为服务器。而在P2P中并没有明确的客户端和服务器。其实,在P2P模型中,每一台计算机既可以看成是服务器,也可以看成是客户机。
1.网络模型设计
纯P2P网络架构采用的是广播式的P2P模型。在这种架构下,没有集中的中央服务器,每个用户节点随机接入到网络,并与自己相邻的一组节点通过端到端连接构成一个逻辑覆盖的网络。节点之间的内容查询和内容共享都是直接通过相邻节点以广播方式接力传递。为了避免循环搜索现象,每个节点会记录其搜索轨迹。
比如,Gnutella模型是现在应用最广泛最经典的纯P2P网络架构。它采用泛洪式的节点搜索算法,解决了网络结构中心化的问题,扩展性和容错性较好。但是,Gnutella网络可用性较差,易被病毒攻击,并且极大地消耗了网络带宽,很容易造成网络拥塞与不稳定。
对于局域网的整体模型,采用了纯P2P的连接模型,充分发挥了点对点通讯的优势。在本地主机上保存了局域网其它结点的基本信息,直接通过目录列表与其它主机通讯,这样可以大大减少连接的开销。
2.系统结构模型设计
以需求分析为依据,结合教学模式的特点,系统结构模型划分为三层:显示层、控制层以及数据层。
显示层主要是使用者与软件的交互平台,它实现友好的用户界面,是使用者获得和输入信息的渠道。
控制层是整个软件的灵魂,大部分的底层操作都需要经过调用控制层的方法。包括初始化原始数据、网络消息的收发、网络消息的处理、用户信息的管理、基本窗口的管理。
数据层是提供了存取、拷贝、查找和序列化等方法的信息结构体,它使得消息数据操作、数据库操作和基本信息数据操作都变得透明化。包括数据集对象、基本数据信息对象。
四、结论
本文介绍的P2P技术在教学即时通讯软件的设计应用程序方便,但涉及的知识面却比较多。其中,涉及到很多网络功能的实现,如侦听端口号、建立连接、发送数据和接收数据等,了解、掌握这些问题的处理方法对编写更复杂的网络应用程序是十分必要的。
参考文献:
[1]王一炜,杨可扬.浅谈P2P技术[J].忻州师范学院学报,2007.
[2]侯太平,顾大权,汪晋.浅谈P2P技术[J].微计算机应用,2002,(06):22-24.
[3]龚君芳,李圣文. P2P应用程序及设计[J].现代计算机,2002,(09):36-38.
[4]毛薇,姚青,李涛.P2P系统发现技术的研究与实现[J].武汉理工大学学报,2002,(06):52-54.
(作者单位:浙江理工大学信息电子学院)