

英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
社交网络、即时通讯与它们的安全和稳定传输
Qi-li Zhou1, a, Yong-qiang Shi1, b, Lin Zhang2, 3, c, Tian Wang1,d, Jiang-tao Du1,e
1.杭州电子科技大学计算机学院,中国浙江杭州
2.信息工程系, 信息技术研究所,中国广西
3. 中国泰坦能源科技集团有限公司,中国珠海
awuxk, b syq, e djt@hdu.edu.cn; c zhanglin, dwantian@qq.com
关键词:即时通讯; 聊天室; 社区; 安全; 传输;P2P
摘要:本文开发了一个集成了即时通讯和文件传输的社区聊天室。本文介绍了P2P对等网络通信技术,并使用复合P2P架构完成了系统的开发。 P2P模式与C / S模式相结合,服务器节点起到促进节点间协调和功能扩展的作用。本系统设计了数据结构和数据库,同时完成了接口、通讯、文件传输的开发和系统的调试,并且提炼了系统开发经验。在系统编程中巧妙地使用了C#的许多内置函数。因为用户之间的通信直接在系统中执行,所以有效利用了网络资源,从而减少了服务器和网络上的负担。
简介
在线聊天是一种通过向同一聊天室中的人实时发送文本消息进行即通讯的方式。一些聊天室,比如雅虎!同时使用文本和语音实现在线聊天室。但聊天室的原型还只是基于文本的。互联网中继聊天(IRC)很受欢迎。互联网中继聊天被称为频道,主要用于交流论坛中的群组通信,但也允许通过私人消息进行一对一通信以及聊天和数据传输。截至2009年5月,顶尖的100个互联网中继聊天网络一次为超过50万用户提供服务,拥有数十万个频道。好景不长,这些聊天室的流行已经放慢了速度,IRC的交流论坛已经迅速让位于即时通讯(IM)。 即时通讯是基于键入文本的两个或更多人之间的实时通信形式。很多人都被介绍到其他聊天室,如AOL或聊天网站等。计算机和通信技术发展迅速,网络在人们的日常生活中变得至关重要。对于思想和信息的交流互联网是非常重要的。社区聊天室系统使社区内的用户能够进行通信。该系统的设计旨在促进社区聊天软件的使用。通过此软件,社区成员可以使用私人聊天、群组聊天、信息传输和文件传输服务。
系统目标和开发环境
在对等(peer-to-peer,对等网络)网络中,每一个用户节点都是客户端和服务器,同时拥有资源的使用者、提供者和通信功能。对等网络具有诸如分布式、可扩展性、健壮性、高性价比、隐私保护和负载均衡等优点。P2P技术吸引了大量的研究人员,并且应用于PPTV网络电视、PPS影音、TVKoo以及实时通信ICQ,YahooPager,MSN LiveMessenger,腾讯QQ等系统。 P2P技术充分利用了用户计算能力,存储容量和带宽等互联网资源。广为人知的P2P系统是麻省理工学院(MIT)的IRIS,SUN公司的JXTA平台,斯坦福大学的P2P系统等等。北京大学,清华大学和华中科技大学也已经在中国开发了P2P系统。
BitTorrent(BT)是指多点下载的P2P软件。不同于FTP 的文件传输方式,BitTorrent具有文件多个传输点 ,并且BitTorrent文件下载和文件上传是同步执行的。 在众多成功的P2P应用程序中,BT是一个很好的案例。
P2P网络带来了技术的创新:它允许用户直接链接到另一个用户的计算机,从而进行文件共享和交换。在P2P网络中,信息的接收者同样也是信息的提供者。随着数据量的增加,数据传输的速度也会越来越快。这种方法大大提高了数据传输的速度和效率。 P2P技术不仅仅为个人用户提供了便利,而且还很有效地整合了互联网上的潜在资源。
本文中的社区聊天室采用P2P技术设计。 服务器的几乎没有什么负担,同样的,用户聊天程序通信的负担也几乎没有。 随着用户增加服务器的负担,该社区聊天系统的行为与C / S模式不同,并且不会轻易导致系统瓶颈。 来自用户的数据直接在节点与节点之间进行传输。 即使服务器不再提供服务,用户与用户之间的在线实时通信也不会受到任何影响。 每个用户都能同时以最少的必要设置和传输来启动与其他多个用户进行私人聊天的聊天室。
本系统在WINDOWS2000 / XP系统上开发而成,系统开发环境是Microsoft Visual Studio 2008,编程语言使用的是Visual C#.NET,并使用了SQL SERVER 2005数据库。
系统分析与设计
需求分析
考虑到社区硬件基础设施和用户的需求,聊天室的操作应该尽可能的简单,只需要有用户注册和登录。用户可以在两个聊天表单,群聊或者私聊之间切换。在中国,社区通常期望系统硬件尽可能的偏移,并且它给服务器带来的负担也要尽可能的小。
系统架构
P2P网络技术具有简单的复合体系架构。一般的P2P架构没有中央服务器,信息在任意两个节点之间直接交换。这种架构易于使用,任何安装了P2P应用程序的计算机都可以直接与其他计算机进行通信。正式因为没有中央服务器的协调,所以系统的服务范围也十分有限。复合P2P架构结合了P2P和C / S服务,中央服务器协调网络中的各个节点并扩展这些节点的功能。在计算机运行P2P应用程序后,计算机启动与索引服务器的连接,并告知索引服务器该计算机的IP地址和端口号。计算机通过索引服务器连接到所有其他计算机。这样的连接方式大大减少了搜索其他计算机的负担,并且依然能够在节点或计算机之间直接实现真正的信息交换。本系统选择了复合P2P架构,包括索引服务器和客户端。用户只需要运行客户端程序,输入用户ID和密码。登录消息会发送到服务器,服务器对登录消息进行验证,验证成功的用户可以进入网络。服务器将此客户端的信息发送给所有在线的朋友。客户端收到在线好友列表后生成相应的内容。在线好友的消息(此处years 不知作何解释)将被包含在好友的IP地址和端口号等其他信息中,用户可以直接和在线的好友进行点对点通信。
消息设置
本文的P2P聊天室包括索引服务器和多个客户端。索引服务器中的社区拥有所有的用户信息,当一个用户登录时,索引服务器或用户的在线状态改变为在线,用户信息将被广泛分发给所有客户端。当两个用户之间直接聊天时会建立两个用户之间的点对点连接,这就意味着两个用户之间互相发送的信息不需要通过服务器去转发。节点与节点之间存在不同的交换信息。为了让每个节点都能够交换不同的信息,必须设计出良好的信息交换类型,即系统消息类型。此外,网络使用网络流传输数据,这些网络内的信息流往往具有不同的字段,例如IP地址,端口号等,这些字段也正是消息接收器所需要的,方便接收器还希望在连接断开后接收有关字段的信息以获得适当的字段、发送和接收消息以及系统设计的结构。按照系统消息发送者和接收者会有所不同,系统发送的消息分为三种情况:客户端发送到客户端,客户端发送到服务器,服务器发送到客户端。在每种情况下,消息类型中都会有多个系统。
数据结构设计
本文的P2P聊天室包括索引服务器和多个客户端。索引服务器中的社区拥有所有的用户信息,当一个用户登录时,索引服务器或用户的在线状态改变为在线,用户信息将被广泛分发给所有客户端。当两个用户之间直接聊天时会建立两个用户之间的点对点连接,这就意味着两个用户之间互相发送的信息不需要通过服务器去转发。从上面的过程可以清楚地看出,有几种不同的节点在类型之间交换信息。为了让每个节点能够交换不同的信息,必须设计出良好的信息交换类型,即系统消息类型。
此外,网络使用网络流传输数据,这些网络内的信息流往往具有不同的字段,例如IP地址,端口号等,这些字段也正是消息接收器所需要的,方便接收器还希望在连接断开后接收有关字段的信息以获得适当的字段、发送和接收消息以及系统设计的结构。
数据库设计
本文中的P2P聊天室系统,服务器需要存储在用户信息中,而数据实际存储在SQL SERVER数据库中。 由于用户信息较单一,所以数据库并不复杂。实际上,本系统只需要一个表,但为了方便设计过程,操作简便,特意搭建了聊天数据库。 至于表主要是为了确定表中的字段,通过系统消息类型和结构分析,称之为“用户列表”表,该表包含id、name、password、IP、port、status 六个字段,并且将id设置为主键。 用于数据操作的服务器是通过完整的“用户列表”表完成的。
系统实现和编码
本系统的编码分为界面设计编码和功能设计编码。 界面设计主要是为了让用户拥有一个对用户友好的界面,方便用户操作; 而功能设计主要是为了让软件满足用户的功能需求。 出于对社区可以提供硬件基础设施和用户的需求分析的考虑:聊天室,主要需求:用户希望自己的操作尽可能简单,因为只有用户名和密码才能登录。用户希望软件提供群聊和私聊这两种聊天形式,并且用户可以在两种形式之间进行自由切换。 社区希望系统必要的硬件更便宜,并且间接请求服务器从而尽可能地减轻服务器的负担。
界面设计
社区聊天室根据用户注册、登录、聊天、服务器检索这四种不同的功能,将整个软件设计分为四个界面,即注册界面,登陆界面,聊天界面和服务器界面。在某些情况下,系统界面之间需要相应的切换机制,比如从登陆界面切换到注册界面,再从登陆界面切换到聊天界面。
即时通讯
信息的发送是一个聊天室系统实现聊天功能中最重要的部分,而成功发送通信信息的系统可以达到基本要求。发送信息和是通信系统中最近本的也是最重要的一部分,但如果信息只能成功发送而不能成功接收,那么通信也就无法完成。批量用户列表服务器用于实现向每个在线用户发送信息。当消息发送时出现问题:客户端在两端向数据流写入数据,两次写入为两个请求;然而,服务器可以将这两个一起作为请求,该请求在两个间隔中相对较短的时间,特别是在这种情况下。类似地,客户端也可以发送请求,但服务器将被视为两个请求处理。然后将这个值的基础与字符串的长度进行比较,如果相等,则发送完整的信息;如果更多,则显示接收的字节数更多,删除适当的长度,并进行剩余的缓存;如果少,表示没有收到,那么行为将收到一个缓存,等待下一个请求,然后两个合并。
数据传输
文件传输在服务器和客户端中,或在客户端之间传输文档。客户端向服务器发出的文件,然后过程是:客户端打开数据端口进行监听,并获取端口号。将以下控制字符串发送到服务器。服务器收到后,根据客户端的IP和端口号与客户端进行连接。侦听与服务器的客户端连接以开始发送文件。发送客户端后,服务器分别关闭连接。接收文件和发送文件几乎相似,区别仅在于客户端将数据写入网络流,或者由服务器将数据写入网络流。要编写类的治疗协议,需要帮助我们轻松获取完整的协议信息,服务器可以请求客户端多次独立拆分或合并。例如,客户端将两个连续的控制信息发送到服务器,服务器将合并它们,然后您需要进行反汇编,然后单独处理。还需要一个专门用于处理协议格式的类来获取字符串属性值。
系统异常
网络延迟、数据包丢失等一系列网络异常可能会发生,系统需要对这些网络异常进行处理。该系统设计的用于处理网络异常方式,使网络通信更加及时可靠。在系统中以预定义的信息的格式发送信息,但为了接收消息,通过在字段中所使用的符号之间添加一些间隔,用户可以拆分字段,从而获取所需的信息字段。在本文的系统中使用的间隔符号是冒号、分号和逗号。实际上,这些符号作为系统的分隔符有时会产生一定的误差。为此,需要设置一个符号作为转义字符,当字段出现在这样的字符中时,此字符附加在字段中写入两个,因此如果是原始错误则不会出现。对于该聊天室系统,服务器需要存储在用户信息上,而数据实际存储在SQL Server数据库中。由于用户信息较单一,所以数据库并不复杂。实际上,本系统只需要一个表,但为了方便设计过程,操作简便,特意搭建了聊天数据库。
系统调试
调试过程分为两部分:本地计算机调试和在线调试。程序是基于C#web应用程序的高级程序,该程序还用了编码过程中的一些应用程序和网络相关的类,如Thread类,IPAddress类,Socket类,TcpClient类,TcpListener等等。发送和接收网络数据将在那里发送,但是无法接收到这种情况,使用NetworkStream对象发送和接收数据,解决发送和接收不一致问题。帐户在聊天室中多次登录相同的情况是不允许的。添加相同帐户后确定其中只有一次性登陆的条件。一个线程的控件可以由其他线程操作:C#不允许直接在一个线程中操作另一个控件线程,这是由于访问windows窗体控件本身并不是线程安全的。如果存在两个或更多个状态的控制操作的线程,则可以强制控制进入一致状态。也可能发生在与bug相关的其他线程中,以及由控件引起的不同线程争用死锁问题。更常见的解决方案是使用委托使线程在另一个控制线程中运行。
总结
本文开发了一个集成了即时通讯和文件传输的社区聊天室。 本文介绍了P2P对等网络通信技术,并使用复合P2P架构完成了系统的开发。 P2P模式与C / S模式相结合,服务器节点起到促进节点间协调和功能扩展的作用。本系统设计了数据结构和数据库,同时完成了接口、通讯、文件传输的开发和系统的调试,并且提炼了系统开发经验。在系统编程中巧妙地使用了C#的许多内置函数。因为用户之间的通信直接在系统中执行,所以有效利用了网络资源,从而减少了服务器和网络上的负担。 未来的工作可能会包含:集成设计三维用户界面和设计对用户更加友好的操作。
致谢
杭州电子大学内部资助:KYF055610029; ZX100103003。
参考文献
[1] J. Leskovec and E. Horvitz. “Worldwide Buzz: Planetary-Scale Vie
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[19625],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
