课程设计报告
学院:
天津理工大学华信软件学院
专业名称:
软件工程
课程名称:
网络技术课程设计
课程代码:
1480020
所在班级:
6班
学号:
20114986
姓名:
梁国辉
课题名称:
基于C++的P2P文件传输
任课教师:
魏立华
完成时间:
2013年3月-2013年6月
绪论
我们小组研究的课题是基于C++的P2P文件传输,在这次合作中我主要负责Winsock网络程序设计以及Socket的建立和使用,系统的详细设计是我们三人共同完成的每个人的完成渠道也略有不同。下面是我通过查找资料所了解的关于P2P的相关背景以及知识内容介绍。如下:
1. P2P 相关背景
一般计算和因特网特殊计算的历史演进:因特网边界计算:如******@home和其它分布式计算系统
内容共享的社会方面:如Napster音乐和其他文件/内容共享系统
计算机,网络通信技术的进步和改进
大型机->桌面PC ->便携机->手持设备(手机)
使通信和协同变得更方便
P2P软件结构:如JXTA,.NET
开发的P2P算法:如Gnutella,
2. P2P之目标:满足应用需要
共享/削减成本:Napster 共享文件空间,******@home聚合未用资源
改进可扩展性/可靠性:对缺乏很强中心授权的自治对等端这点尤为重要
资源聚合与互操作能力
增加自治
匿名/隐私:
动态性;资源动态进入或离开系统
实现Ad-hoc通信和协同,动态的理念和结果
P2P解决方案
所有的计算机系统可分为集中式和分布式两类
分布式可进一步划分为C/S和P2P模式
C/S模式可划分为
扁平:所有的客户端仅仅和单个服务器(含重复服务器)通信,如传统的中间件
分层:提高可扩展性,某层的服务器又作为更高层的客户端
4. 故障适应力
P2P主要目标之一是避免中心点失效
尽管大多数纯P2P已经做到,不过是通过生成多主机和多网络来面对如下失效:断开,不可达,分离和节点失效(无线比有线企业网表现更厉害)
******@home在连接的Peers上执行分割计算,当某些Peers因链路断连而消失,希望计算继续;消失Peers再现后,能合并原来结果继续计算吗
5. 交互能力
交互需求,系统
怎样知道它能交互
怎样通信,用何协议:Sockets,Message or HTTP
怎样交换请求和数据,在高层执行任务,交换文件或搜索数据
怎样知道它在更高层协议是兼容的,如一个系统能依赖另一系统适当搜索一些信息吗
怎样通告并维护同级安全,QOS和可靠性
P2P工作组从Ad-hoc到Grid聚集开发者
JXTA是交互操作方法的开放源代码
目录
第一章 Winsock网络程序设计技术
Winsock简介................................................. 1
Winsock通信机制............................................. 2
第二章Socket的建立和使用
建立一个Socket.............................................. 5
配置一个Socket.............................................. 6
使用Socket..................................................7
第三章系统详细设计
.................................................. 8
.............................................. 9
服务器模块.............................................. 9
客户端模块............................................. 13
界面显示模块........................................... 14
P2P的性能问题
P2P的系统目标以及带来的信息安全问题.........................
结论
附录
第一章 Winsock网络程序设计技术
Winsock简介
为了方便网络编程,Microsoft联
梁国辉P2P文件传输实现 来自淘豆网m.daumloan.com转载请标明出处.