基于p2p的网络视频聊天系统的设计与实现本科毕业论文(3)

2019-01-10 12:25

基于P2P视频聊天系统

2 技术分析

2.1 运行环境

操作系统: Windows XPwindows 2003 Server或者windows 2003 Server 数据库:mySQL

开发工具:Visual Studio 2008

2.2 P2P技术

P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同

事”和“伙伴”等意义[1]。这样一来,P2P也就可以理解为“伙伴对伙伴”的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。

简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返“非中心化”,并把权力交还给用户。

基于P2P技术的局域网聊天工具,我们把该软件命名为“TopTalk”。它的主要作用是实现同在一个局域网上的每个用户之间进行即时通讯.“TopTalk”是一个建立在纯P2P模型下的聊天工具,所以完全不用额外的服务器支持就可以进行点对点通讯,使用起来也非常方便。它采用了基于UDP网络的传输协议进行底层的消息传送,在此基础上用广播消息实现上下线提示和聊天室功能,点对点的消息实现两人之间的聊天通讯[1]、

2.3 TCP协议

在因特网中,TCP层是位于IP层之上,应用层之下的运输层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假

3

基于P2P视频聊天系统

设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

在TCP特点中,我们知道客户端只能和服务器通信,无法和另一个客户端直接通信,所以,所有的客户一律先把聊天信息发送给服务器,并告诉服务器该信息发送给哪个客户的。服务器收到信息后,再将该信息“转发”给另一个客户。

TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物 理介质,最后到接收方[2]。

2.4 UDP协议

用户数据报协议UDP(User Data Protocol)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。

UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高[3]。

UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务。

2.5 TCP/IP体系结构

TCP协议和IP协议指两个用在Internet上的网络协议(或数据传输的方法)。它们分别是传输控制协议和互连网协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。

IP:网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。

ARP:地址解析协议(Address Resolution Protocol)此协议将网络地址映射到硬件地址。

4

基于P2P视频聊天系统

RARP:反向地址解析协议(Reverse Address Resolution Protocol)此协议将硬件地址映射到网络地址

ICMP:网间报文控制协议(Internet Control Message Protocol)此协议处理信关和主机的差错和传送控制。

TCP:传送控制协议(Transmission Control Protocol)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)

UDP:用户数据报协议(User Datagram Protocol)这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。

FTP:文件传输协议(File Transfer Protocol)允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。

SMTP:简单邮件传送协议(Simple Mail Transfer Protocol)SMTP协议为系统之间传送电子邮件。

TELNET:终端协议(Telnet Terminal Procotol)允许用户以虚终端方式访问远程主机。 HTTP: 超文本传输协议(Hypertext Transfer Procotol)。 TFTP: 简单文件传输协议(Trivial File Transfer Protocol)

2.6 TCP协议与UDP协议的比较

TCP协议与UDP协议特点的比较

首先,TCP是一种面向连接的协议,而UDP是无连接的。这其中的区别在于:第一,TCP协议是以连接作为协议数据的最终目标的。UDP协议则是以目标端口作为协议数据的最终目标。因此,TCP的协议端口是可以复用的,UDP协议的端口在同意时间只能为一个应用程序所用。第二,一个连接是由两个端点构成的。要使用TCP进行通信必须先在通信双方之间建立连接,连接的两端必须就连接的一些问题进行协商(如最大数据段长度、窗口大小、初始序列号等),并为该连接分配一定的资源(缓冲区)。UDP协议则不需要这个过程,可以直接发送和接收数据。

其次,TCP提供的是可靠的传输服务,而UDP协议提供的是不可靠的服务。使用不可靠的服务进行传输时,数据可能会丢失、失序、重复等。而可靠的服务能保证发送方发送的数据能原样到达接收方。

最后,TCP提供的是面向字节流的服务。应用程序只需将要传输的数据以字节流的形式提交给TCP协议,在连接的另一段,数据以同样的字节流顺序出现在接收程序中。而UDP协议的传输单位是数据块,一个数据块只能封装在一个UDP数据包中[10]。

5

基于P2P视频聊天系统

2.7摄像头采集

本系统利用avicap32.dll和User32.dll完成摄像头的视频采集。avicap32.dll和User32.dll是Windows API应用程序接口的相关模块。avicap32.dll接口可以方便地对摄像头和其他视频硬件进行AVI电影和视频的截取[10]。

2.8小结

我们项目的需求是可以在局域网内实现方便快捷的通讯和资源共享,搭建一个完善的聊天环境。在局域网内实现点对点的聊天并不是一件难事,在现有的网络协议UDP、TCP/IP和Socket的支持下都可以轻易的实现通讯。而重点解决的问题是如何在没有固定服务器的环境下营造一个完整的和可知的通讯环境,局域网内的每一个用户可以知道其他用户的上下线情况和有选择的进行通话。目前,在局域网内有一个方法是最适合用来实现上下线功能的,那就是用广播的方式,所有用户都固定一个端口来处理广播或UDP数据,这样就可以在这个端口上进行底层的消息互通了。当前,P2P技术已经趋向成熟,它的几个特点(没有传统的服务器概念、可扩展性好、完全对称)都非常切合软件开发的思路。

6

基于P2P视频聊天系统

3 系统设计

3.1 系统目标

根据用户对聊天系统的要求,本聊天软件可以实现以下目标: (1)用户管理

(2)当有用户登录时会在客户端在线用户中添加显示出来 (3)当有用户下线时会从客户端在线用户中删除其信息 (4)实现客户端间的文本聊天 (5)实现客户端间的视频聊天 (6)实现聊天记录的保存

3.2 主模块

主模块设计如表3-1所示:

表3-1 主模块设计

模块 主模块 子模块 整体设计总界面 功能 对系统的功能认知 3.2.1 功能模块

功能模块设计如表3-3所示:

表3-3 功能模块设计

1.发送信息 文本聊天模块 2.接受信息 3.查看信息 1.发起视频 视频聊天模块 2.接收视频 3.视频传输 4.终止视频 1.IP地址显示 用户管理模块

7

2.聊天记录查看 3.聊天记录删除


基于p2p的网络视频聊天系统的设计与实现本科毕业论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(PTM)(线路中心)3高速系统用户手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: