软件开发服务协议书

2024-05-25

软件开发服务协议书(精选7篇)

软件开发服务协议书 篇1

软件开发与服务协议书

甲方:

乙方:

第一条:本协议适用于购买软件系列产品的用户。

第二条:责任与权益

(一)甲方责任

1. 提供唯一负责人对软件的二次开发进行确认和验收,联系人,职位联系电话:。

2.提供长期的软件实施专员,用于对软件使用人员进行督促和指导,软件实施专员与软件使用人员比例为,联系人,职位,联系电话:。

3. 甲方在签订合同

(1)提供电子版的客户基本信息,如企业名称、地址、电话、传真、LOGO等。

(2)按本软件功能,提供电子版的基础表单。包括订单表、发货表、退货表、生产表、BOM表、物料表、进出仓表、委外表、采购表、计件表、收付款表、报价表、各种统计表、各种对账表等。最好附带数据。

(3)提供打印机型号及纸张大小。(4)提供软件操作员的基本信息,包括姓名、电话、部门、工作职责说明以及计算机能力。

4. 甲方保证不对乙方所开发的软件进行拷贝、复制、泄露给第三方使用,否则乙方将追究甲方法律责任。

5. 甲方在乙方安装调试完成后,配合检查软件系统运行是否正常,数据是否正确等验收工作。

(二)乙方责任

1. 乙方遵循职业道德对开发过程中涉及到甲方的所有数据机密进行严格保密。

2. 乙方对软件的安装调试完成后,应请甲方对系统使用进行验收工作。

3. 在甲方及时准确的提供了电子版的基础表单的前提下,乙方将于年否则安装日期向后顺延。安装时乙方根据甲方企业操作员的计算机能力,提供软件实施计划。

(三)双方权益

1. 若因乙方原因,乙方所提供并安装的软件不能使用,则乙方向甲方支付软件价格_________%的违约金。

2. 甲方逾期付款的,向乙方偿付逾期付款的违约金,每逾期一天偿付软件价格__________%的违约金。

3. 甲乙双方的任何一方由于不可抗力的原因不能履行协议时,应及时向对方通报不能履行或不能完全履行的理由,在取得有关证明以后,允许延期履行、部分履行或者不履行合同,并根据情况可部分或全部免予承担违约责任。

4. 乙方软件是按甲方需求进行开发,软件验收合格后,如甲方需要改动或进行二次开发,如工作量过大需另订协议,另收开发费用。

-------------

— 第 1 页 / 共 3 页 —

第三条:软件价格与付款方式

1. 乙方提供产品套,共 2. 软件产品价格:。□含税□不含税

■首期款:年月日,甲方签订合同同时向乙方支付合同总费用的%作为预付款,即人民币元整,大写:。

■二期款:年月日,甲方向乙方支付总费用的%款项,即人民币元整,大写:。

■三期款:年月日,甲方向乙方支付总费用的%款项,即人民币元整,大写:。

3. 增加客户端费用为:元/个,大写:元/个。□含税□不含税

4. 付款方式:。

第四条:软件的安装、验收及售后

1. 鉴于支持和配合本套软件所使用的硬件设备由乙方出具推荐配置,甲方负责购买和提供硬件配置,并承担硬件费用。因此乙方不承担任何非由乙方出具的硬件推荐配置单所产生的影响或因硬件提供、质量和硬件自身问题而产生的导致软件安装推迟等问题所造成的后果。

2. 乙方为甲方提供软件产品并安装、调试后,甲方应在内无作出验收回应视为认同软件(如不符合要求我公司可再次修改,但限定于初始确认的功能范围内),乙方有权上门收取本合同的余下款项。

3. 乙方为甲方提供月为,大写:。□含税□不含税

第五条:版权归属

1. 本软件版权归属于乙方。

2. 甲方经由乙方授权使用本软件,其数据库版权归属于甲方。

第六条:保密条款

甲乙双方应对下列信息保密,不得以任何明示、默示或可能的其他方式向任何第三方披露,否则应对因此造成的损失承担赔偿。

1. 甲乙双方在缔结、履行本合同过程中所获得对方的商业秘密、个人情况及技术机密等;

2. 乙方以及雇员须采取所有合理的措施,以确保未经甲方书面授权不披露、不展示、不使用甲方软件开发的一切信息和操作内容或其他保密信息;

3. 本合同保密条款长期有效,不受本合同效力的影响。

-------------

— 第 2 页 / 共 3 页 —

第七条:其他

1. 本协议未尽事宜,由甲乙双方协商后产生书面文件,作为本协议的补充条款,具备与本协议同等法律效力。

2. 对本合同内容的任何修改和变更需用书面形式,并经双方签字确认后生效。

3. 本协议一式两份,共三页,甲乙双方各执一份,自签字之日起生效。

补充说明:

第八条:收款账户

1、公司账户

公司名称:

公司账户:注:汇款到此账户必须开具发票,软件、网站、电子商务服务税率为6%。

2、应急款收款账户:

收款名称:

银行账户:

甲方:(签章)乙方:(签章)

地址:地址:

电话:

电话:传真:

售后电话:

传真:投诉电话:

年月日年月日

-------------

软件开发服务协议书 篇2

关键词:通用协议转换,协议格式,解码,编码

1 引言

所谓通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、检纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守[1]。不同体系结构的系统一般采用不同的通信协议完成系统内部成员之间的通信,这固然为本系统的设计带来了很大的方便,但因为不同系统的通信协议往往不同,当本系统需要同其他系统进行通信时,会因为协议的不同造成通信障碍[2]。为解决异构系统之间因通信协议不匹配造成的通信困难,需要在两个系统之间添加一个协议转换器。目前的通信协议转换器大多选用或者自行开发专用的网关,但是专用网关由于重用性差,将导致多次的重复开发,浪费大量的人力和物力[3]。

由于不同通信协议的协议格式有许多相近之处(如数据帧由帧头、数据项、帧尾等组成,包含校验等处理信息),这就使得设计一个一定程度的通用协议转换器成为可能[4]。本文通过对现有协议的分析,提供了一种比较通用的协议格式模板,通过对该模板的实例化可得到各种实际协议的格式信息。另外,本文还实现了对符合用本模板所描述协议格式的协议数据处理及转换过程,并在由哈尔滨工业大学开发的HIT-GPTA平台上进行了验证。

2 需求分析

通用网关协议转换软件的用户需求定义如下:

分析现有通信协议格式,提出各种协议的表达方法,并抽象出一个能够涵盖大多数常用雷达、导弹协议的协议格式模板,通过对该模板的实例化能够得到现有格式的描述信息。所建立的模板应提供最基础的协议元素编辑支持,提供不同数据类型的协议元素的支持,提供元素位定义支持,提供开放式的函数处理功能支持,提供格式描述信息的串行化输出功能,能够保存已建立的协议格式信息并在需要时导入该信息。设计符合HIT-GPTA平台接口规范的协议编解码组件,该组件能够加载格式描述文件。协议编解码组件应提供协议数据的动态处理功能,能够根据格式描述信息加载相应动态链接库,调用相应动态链接库函数,根据函数参数列表对协议数据元素进行相应处理。

根据用户的需求定义,可将本系统划分为两个主要的功能模块:协议格式库管理软件和协议编解码软件。格式库管理软件通过对格式模板的实例化,生成具体协议的格式描述信息并串行化输出为格式特征描述文件;协议编解码软件加载格式特征描述文件,并根据用户所配置的信息初始化网络收发信息,在平台开始运行后,接收由网络传来的数据并解码发布,根据所订购到的数据信息编码输出到相应设备。系统用例如图1所示。

3 协议格式模板设计

协议转换器的通用性决定于协议格式模板的通用性,为了抽象出一个较为通用的协议格式模板,需要先对通信协议进行分层管理以方便数据结构的设计,然后分析多种具体的协议格式,并得到他们之间格式上的相似之处,进而抽象这些相似之处,形成本系统的数据结构。根据协议分层管理的概念,可将协议分为三个层次:协议集、协议项、协议元素,如图2所示。

对一些有代表性的协议项进行分析可得以下概念:一个系统所有协议的集合称之为协议集,可为协议集设计名称、ID、协议项列表等属性;每一个协议项又应该有名称、ID、帧头列表、元素列表、帧尾列表等属性。以上协议集和协议项的属性是一般协议所共有的,对于协议项的组成部分如帧头、元素、帧尾的具体结构则因协议的不同会有较大的差异。

基于上述概念,采用面向对象的思想,可以进行协议格式模板的设计。协议可以分层表示为协议格式集、格式项和协议元素,故在设计数据结构时可分别设计为格式集类(C Protocol Muster)、格式项类(C Protocol Item)、协议元素类(C Protocol Element)。另外,为了描述协议项的传输特性,设计了帧头、帧尾(C Head Format)类;为了支持位处理功能及函数处理功能设计了数据元素位类(C Data Bit)和处理函数类(C Process Fun)。

4 软件的设计与实现

基于用户需求定义及系统功能分析,采用面向对象的方法对系统进行详细设计。根据需求分析,需要设计两个软件,分别是协议格式管理软件和协议编解码组件。格式管理软件的设计包括软件的静态模型、交互模型及用户界面的设计[5]。协议编解码组件的设计包含四个方面的内容:解码类设计、编码类设计、平台组件接口类设计和用户交互界面设计。

格式库管理软件为用户提供可视化界面操作,其内部数据结构为组成格式模板的几个类,用户可以利用该软件建立自己的协议格式库或加载现有协议格式特征描述文件,其类图如图3所示。

协议编解码软件加载格式管理软件所生成的格式特征描述文件,在接收到协议时自动识别协议数据所符合的格式项,利用该格式进行解码并将协议数据按照HIT-GPTA平台能够识别的方式发布出去。另一方面,订购相关数据并按照与解码项所对应的编码项进行编码并输出。协议编解码软件类图如图4所示。

5 软件测试及结果

本系统测试环境由两台通过局域网连接起来的节点计算机组成,其中一台结点计算机上安装了格式库管理软件和HIT-GPTA平台,协议转换在该计算机上完成,另一台节点计算机作为异构系统与平台进行通信测试。

系统的测试包括三个部分:格式库管理软件的测试、解码功能测试、编码功能测试。

格式库管理软件测试主要目的是检测该软件能否按照需求分析中的要求描述现阶段所需要转换的所有自由协议。

解码功能的测试方法是由异构系统的功能模块向HIT-GPTA平台发送数据,协议转换软件接收数据后进行解码并将协议元素按属性通过本地通信代理进行发布,或编码后进行输出。

编码功能的测试由试验组件发起,协议转换组件将所订购的数据编码发布到异构系统的功能模块,若异构系统所接收的数据符合理论值则测试通过。以下仅给出一条测试用例:

注:输出数据经过了函数处理,处理方式为是元素0或元素1加上元素2之后乘以元素3。

通过对格式库管理软件、解码过程、编码过程的测试可以看出,格式库管理软件能够描述常用的雷达、导弹、舰船通信协议的格式;解码过程能够将通用的通信协议转换为HIT-GPTA平台能够识别的属性数据并发布,以供其他组件使用;编码过程能够将来自于其他组件的协议数据按照目的设备的协议格式进行编码并通过网络传输到目的设备。

6 结束语

抽象出了一个通用的格式模板,并为其设计了用户交互界面;设计了协议转换组件,能够转换符合格式模板的通信协议,使通用计算机具备了HIT-GPTA网关的功能,并结合测试实例进行了软件测试,实现了通用协议转换软件的设计。

参考文献

[1]桑伟.基于ARM的通信协议转换器的设计[J].自动控制,2007,(4):44-45.

[2]张源,魏冬邦,康昊.基于XML的测控软件通信协议的研究[J].遥测遥控,2010,(31-6):42-46.

[3]张娟锋,师卫,刘振国.通用通信协议转换接口的研究与实现[J].电脑开发与应用,2009,(22-5):25-26.

[4]蒋浩天.综合网络多协议转换的研究和实现[D].成都:电子科技大学,2007.

软件开发服务协议书 篇3

工业和信息化部软件服务业司司长陈伟表示,软件产业具有资源消耗低、带动系数大、就业机会多、综合效益好的特征,是有效推动国民经济结构和发展方式战略性调整的重要引擎。

加快软件产业发展要从改造提升传统产业、培育战略性新兴产业、发展生产性服务业三个方面入手,同时促进以综合集成为核心的技术创新模式和以服务为核心的商业模式创新。陈伟表示,目前以云计算为代表的新计算、新模式打破了传统IT应用的成本限制以及降低IT应用的风险,同时在一体化软件平台体系下,硬件与软件、内容与终端、应用与服务加快整合,软件业已经从传统的单一产品竞争发展到基于体系架构的产业链竞争。

陈伟明确提出,2012年软件与信息技术服务工作要重点推进国发4号文件等政策的落实工作,促进产业做大做强,确保软件产业实现25%,力争28%的增长目标;突破核心关键技术,支持智能终端操作系统和云计算等核心技术的研发;强化服务支撑能力,加快安全可靠关键软硬件的应用推广,提高对安全可靠党政军信息系统和事关国计民生的重要信息系统的支撑能力;完善行业管理和公共服务,推动移动互联、云计算等重点领域的标准、法规和制度建设,不断优化产业发展环境。

IT软件外包服务合同协议书 篇4

乙方:

鉴于甲方业务发展的需要,将甲方部分工作岗位的工作任务外包给乙方进行劳务服务外包方式,经双方协商达成如下协议:

一、合同期限

第一条本合同于______年_____月________日生效,期限壹年

如双方需要,可在合同期满前一个月协商续签劳务外包合同。如合同期已满,双方不再续签合同,可在合同期满前一个月进行合同终止协商。

二、甲、乙双方的义务和责任

第二条乙方同意根据甲方工作需要,承担金蝶K3实施顾问工作岗位(工种)工作。

第三条乙方工作应达到甲方规定该岗位职责的要求和甲方对该岗位之特别规定(详见《岗位责任书》)的标准。

第四条乙方应按照工作职责保证完成甲方规定的工作和任务。

第五条乙方应接受甲方的绩效考核。

第六条甲方应负责乙方往返项目地的的交通费住宿费以及其他各种费用。项目地指内蒙古赤峰市。

第七条乙方应严格遵守本合同的附加条款。

三、劳务报酬

第八条甲方应在签订合同当日以货币形式支付乙方劳务报酬,标准为30000元/年或按按照双方协定的标准执行。

1、因乙方的过失给甲方造成经济损失的;

2、双方约定的其他内容

四、合同的终止与解除

第九条合同期满如未续签,则视为《北京易博讯科技有限公司劳务外包合同》自行终止,

第十条经甲乙双方协商一致,本合同可以解除。

第十一条乙方有下列情形之一,甲方可以解除本合同:

(一)在外包期间被证明达不到工作要求的;

(二)按照本合同约定可以解除劳务合同的;

(三)严重失职,营私舞弊,对甲方利益造成重大损害的;

(四)被依法追究刑事责任的。

五、双方约定的其他内容

第十二条甲乙双方约定本合同增加以下内容:

(一)乙方有义务向甲方提供真实的个人信息与相关证明,否则甲方有权随时解除本合同,并且不给予经济补偿。

(二)乙方在合同期内承担的甲方工程项目中的工作及责任的,在该项目未结束前,乙方不得未经甲方同意擅自解除合同,如果擅自解除合同,对甲方产生经济影响的部分将由乙方承担。

(三)甲方将定期或不定期对乙方进行工作绩效考核,考核不合格者,甲方有权解除或终止本合同。

第十三条本合同的附件如下:

第十四条本合同一式两份,甲乙双方各执一份。

甲方:

软件开发服务协议书 篇5

一、办理条件

2008年后竣工的物业项目,总建筑面积高层低于2万平方米,多层低于5万平方米的,建设单位协议选聘前期物业服务企业的须填报相关招标备案表,向社区工作站、街道办事处备案,最终由区住房和建设局批准,未经批准的选聘行为无效。

二、办理程序

第一步:开发建设单位分别在社区工作站、街道办事处申请备案通过并签署意见及相关公章后,向罗湖区行政服务大厅住房和建设局收文窗口提供备案材料;

第二步:由物业监管科进行备案材料形式上审查,材料符合有关规定的,送局分管领导审批通过后,在区局栏目填报同意意见及签署局公章,审批未通过的退件处理,补齐材料后再行申请;

第三步:备案资料由物业监管科保存备查。

三、办理时限 30个工作日。

四、办理地点

罗湖区文锦中路1008号区政府行政服务大厅

五、提交材料

开发建设单位作为招标主体需提交的证明材料(1)项目建设工程规划许可证复印件(2)项目竣工验收证明复印件

(3)社区工作站、街道办事处签署同意意见及签署公章后的《开发建设单位协议方式选聘前期物业服务企业备案表》原件一式五份

六、法律依据

1、《中华人民共和国物权法》;

2、《广东省物业管理条例条例》;

3、《深圳经济特区物业管理条例》。

七、违法后果

软件开发服务协议书 篇6

计算机世界中网络协议无处不在, 必须利用它才能实现计算机网络系统的正常运行。因而对于“计算机网络协议”的理解程度直接关系到对网络技术学习的好坏。该课程也是学生学习的重点和难点, 所以如何在教学中, 使抽象的网络协议原理分析变得更加生动具体显得十分重要。

使用传统的方法分析计算机网络协议, 显得枯燥、抽象。如在分析网络通信过程时, 往往会引入TCP/IP或者OSI参考模型的层次结构图来进行, 以此来描述传输的数据如何在分层的网络中逐层进行数据封装、拆分、重组以及传输的过程。通过此方式, 理解整个通信过程比较清晰, 但是它过于笼统, 对于如何封装、封装什么以及传输的实际过程却没有一个直观的认知, 更不能理解数据在通信过程中的具体格式, 因而学习效果不是很理想。

笔者在不断的实验实训教学中, 摸索出利用一台计算机上安装VMWare和Iris两个软件搭建网络协议分析实验平台, 可以取得很好的教学效果。该方法主要特点是: (1) 实现成本低。只需要一台计算机和两个软件; (2) 理论联系实际好。能发挥软件的设计、分析、模拟功能, 使学生“看得到”实验过程和效果; (3) 灵活性强。学生可以开放式实验, 自行设计、配置、测试实验, 学生实验的主动性和互动性得到了提高和增强。

2、利用软件构建网络协议分析实验平台

2.1 主要使用的两个软件

协议分析软件Iris是一款非常优秀的网络通讯分析工具, 全称Iris Network Traffic Analyzer, 为著名的网络安全公司e Eye Di gital Security开发。它可以帮助系统管理员轻易地捕获和查看进出网络的数据包, 进行分析和解码并生成多种形式的统计图表, 它可以探测本机端口和网络设备的使用情况, 有效地管理网络通讯。本文使用的版本为Version 4.0.7。

虚拟PC软件VMWare是一个使你可以在一台机器上同时运行二个或更多Windo ws、DOS、LINUX操作系统。与“多启动”系统相比, VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统, 在系统切换时需要重新启动机器。VMWare是真正“同时”运行, 多个操作系统在主系统的平台上, 就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据, 还可以通过网卡将几台虚拟机系统连接为一个局域网, 十分方便。本文使用的版本为Version 7.1.2。

2.2实验环境的搭建

2.1.1 实验平台的整体设计

说明:以下实验平台的设计是基于一台实体电脑上安装VMware后再实施!

2.1.2 协议分析平台

如图1, 在实体电脑上安装Windows X P系统, 作为FTP客户端主机。并在它上面安装Iris抓包软件, 然后进行抓包设置。如图2所示, 在Iris“地址簿”中设置将要通信的两台主机的IP地址, 并设置捕获数据的方向为“双向”。

2.1.3 C/S网络互联平台

如图1, 在VMWare虚拟的PC上安装Wi ndows Server 2000系统, 并利用此主机的II S服务, 配置一个简单的FTP服务器, 服务器IP地址为虚拟的本机IP地址:10.112.211.55, 子网掩码为255.255.255.0。接着设置FTP服务器主目录中属性:本地路径D:ceshi;目录列表风格:UNIX;权限:读取、日志访问。访问用户名为:Administrator, 访问密码为:123456;基本设置如图3所示。

3、利用实验平台分析网络协议

结合图1所示, 打开FTP客户端主机中的浏览器, 结合上述FTP服务器的设置, 在地址栏输入“FTP://Administrator:123456@10.112.211.55”, 就可以访问FTP服务器了。在点击访问前, 就可以进入Iris正式进行抓包了。按下Iris工具栏中“开始捕获”按钮。然后找到要下载的文件, 鼠标右击该文件, 在弹出的菜单中选择“复制到文件夹”开始下载, 下载结束后在Iris工具栏中点击“停止捕获”按钮。这样就捕获到了访问FTP服务期间所涉及到的网络协议过程。结合捕获的数据包分析整个FTP通信过程如下:

首先, 局域网通信是需要知道对方MAC地址的, FTP客户机便会利用ARP协议来获取服务器的MAC地址。如图4显示捕获的包中序号为1的包即为一个“ARP Request”的数据包, 要获取目的IP地址为“10.112.211.55”的MAC地址。因为这是一个广播包, 所以它的目的MAC地址“FF:FF:FF:FF:FF:FF”;FTP服务器收到这个请求包后, 返回客户机一个“ARP Reply”的一个应答包 (序号为2的数据包) , 此时在这个包中可以看到, 源地址填充了“00-50-8D-74-3C-EB”这个地址, 因为它是服务器发给客户机的, 所以该源地址也就是客户机所要请求获取的服务器的MAC地址, 这样ARP解析的过程就结束了, 客户机也就获取了和服务器在局域网中通信所需要的MAC地址。

然后, 在获取MAC地址后客户机就可以和FTP服务器建立FTP连接了, 从图5中也可以

看到连接建立的ARP地址解析过程、T CP协议的“三次握手”工程、FTP的用户登录过程。观察序号为3, 4, 5的数据包可知, 客户机发送初始序号为“2179495897”的包, 即SEQ=2179495897, ACK为0, 请求的FTP服务端口为21;FTP服务器收到这个请求包后, 发出SEQ=852469426的包进行应答, 同时将客户机初始请求序号的值加1, 以此进行确认, 即ACK=2179495898;客户机收到FTP服务器的确认包后, 将服务器的SEQ加1, 以此对服务器的报文进行确认, 即ACK=852469427。这样通过对捕获的三个包分析, 很清晰的呈现了“三次握手”的交互过程。从而打破了传统的关于“三次握手”基本理论的讲述方式 (如图6) 。

最后, 查看序号为7和9的数据包结构, 可以发现登录客户端登录FTP服务器时所使用的用户名和密码的数据包, 可见图7中“File Transfer Protocol”部分Request和Re quest Arguments属性对应的值可知:用户名为Administrator, 密码为123456。和在服务器中初始设置的一样, 由此也可以看出Iris针对安全检测也有一定功能。

结合图7还可以理解网络体系结构的层次性。图中可以清晰地看到一个包的具体格式和参数, 并能体现网络体系结构的层次性:最上层看到帧为物理层, 图中显示为MA C header (Ethernet II) 的帧格式;往下一层可以看到IPv4的数据报 (IPv4 Header) 格式;再往下一层是传输层, 可以看到TCP数据段 (T CP Header) ;最下层就是FTP服务的应用层协议数据格式 (File Transfer Protocol) 。

这里重点分析IPv4的数据报 (IPv4 Head er) 格式:图7中可以看到Version:4, 表示IP数据报协议版本信息为“4”;Header Length表示报头长度, Type of service (TOS) :0x00表示服务类型为默认, 用于指示路由器如何处理该数据;Total Length表示数据包总长度 (报头长度加数据区长度) ;Identification为标识字段, 用于重组时分片识别的标记;Flags为标志字段, 用于描述数据包是否分片且是否为最后一个分片;Fragment offse表示片偏移字段, 用于描述分片在整个数据包中的相对位置;Time to Live为生存周期, 这里为64;Proto col为协议字段, 这里“6”表示TCP协议;Ch ecksum为头校验和字段, 可以保证数据的完整性;Source IP Addewss为源主机IP地址;Des tination IP Address为目的主机IP地址;IP Op tions为选项字段, 主要用于控制与测试, 按需设置。

4、结语

实践证明, VMWare虚拟PC软件和Iris协议分析软件构建的网络协议分析实验平台, 不仅能仿真实现网络协议分析实验室的常见功能, 而且成本低。并且针对学生在计算机网络协议原理及结构的教学理解与掌握上, 有着理论联系实践的重要意义。

摘要:利用VMware Workstation虚拟PC软件和Iris网络封包分析软件建立单机模式下计算机网络协议分析实验平台。并以此为基础实现访问FTP服务器的流程, 针对ARP协议、TCP协议的三次握手过程、FTP用户验证进行协议分析, 使抽象的协议理论学习变成生动的实例解析, 以此提高网络协议的学习效果。

关键词:VMware,Workstation,Iris,实验平台,协议分析

参考文献

[1]李锦智.VMware在网络技术课程中的应用[J].电脑与电信, 2010, (01) .

[2]肖德宝.计算机网络[M].武汉:华中理工大学出版社, 1999.

基于BT协议的下载程序开发 篇7

关键词:下载程序;BitTorrent协议;torrent;B-encoding

中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21661-02

Development of Downloading Procedure Based on BT Protocol

ZHOU Ke1, ZHANG Yan-na2

(1.Henan University College of Computer and Information Engineering,Kaifeng 475001,China;2.Henan UniversityHenan University, Department of Facility and Laboratory Mangement,Kaifeng 475001,China)

Abstract:This paper analyses the BitTorrent protocol in details and sums up its characteristics. Then, in the basis of torrent file format and Bencoding encoded mode,The torrent file had been successfully analysed precisely. According the analysis, one method of developing the downloading procedure was described.

Key words:Downloading Procedure;BitTorrent protocol; torrent; Bencoding

1 引言

传统的网络服务模式,所有的下载开销都在服务器上,由于服务器性能和带宽的限制, 服务器往往要限定用户的数量和访问速率;而使用基于BT协议的共享软件,可以把下载的开销分摊到每个下载者那里,在理论上支持无限多个下载者下载同一个文件,充分提高文件共享效率。本文简要分析了BT协议的工作原理,并给出了一种采用C#的下载程序的分析部分的实现,基于这种分析程序,借助C#中TCP协议的助手类就可以快速的开发出实用的下载程序。

2 BT协议的工作原理

BT协议将这种文件共享模式分为Tracker服务器和Client两部分。Tracker服务器的任务是搜集Client的信息,并帮助BT Client相互发现对方,进而能互相下载所需的资源。每一个Client即一个Peer 在下载开始以及下载过程中,要不断地与Tracker服务器进行通信,报告自己的信息并获取其它Peer的信息。Tracker對所有下载者的信息进行维护,当它收到一个请求后,先把发出请求的Peer的信息记录下来,然后将其他参与下载同一个文件的下载者的信息返回给该Peer。Peer在收到Tracker的响应后,与其它下载者建立连接下载本地所没有的文件资源。为了使别的客户端也可以从本地获取文件资源,该客户端还要监听某个端口,用于接收其它Peers的连接请求。

3 torrent文件及其分析程序的实现

BT协议的主要特征,集中体现torrent文件中。下面就torrent文件的内容及格式先做介绍,最后给出用C#语言实现该类文件解析的方法。

3.1 torrent文件及其编码

BT客户端开始下载资源时首先需要寻找torrent文件, torrent文件包含了完整的资源下载信息:包括资源名、大小、资源的创建者,创建时间,指向Tracker的url列表等信息。

torrent文件采用B-encoding编码来保存数据。B-encoding编码提供四种类型的数据表示:strings(字符串)、integers(整数)、lists(列表)、dictionaries(字典) 。编码规则如下:

(1)strings的编码规则为:<字符串长度>:<字符串>

字符串长度单位为字节,没有开始或结束标记。

(2)integers的编码规则为:i<整数>e

开始标记为i,结束标记为e。没有大小限制,0不能出现在负的或者是整数的最高位。

(3)lists的编码规则为:le

开始标记为l,结束标记为e,列表里可以包含任何B-encoding编码类型,包括字符串、整数、列表、字典。

(4)dictionaries的编码规则为:de

开始标记为d,结束标记为e,关键字必须为B-encoding字符串,值可以为任何B-encoding编码类型,包括字符串、整数、列表、字典。

torrent 文件格式是由若干字段确定的,torrent 文件中关键字段如表1所示:

表1 torrent 文件中关键字段

info字段用于确定资源是由单文件还是多文件构成的,info后面的第一个字符串为length 或files,二者只能出现一个。length表明是单文件结构,files表明是多文件结构,其详细区别如表2所示:

表2 info字段的内容

3.2 torrent 文件分析程序的实现

B-encoding的编码规则只有前述的四种类型的数据,列表和字典中允许包含这四种数据类型,整个文件本身就是字典。在实现的这种文件的分析时采用如下的分析方法,算法流程如图1所示:

(1)字符串分析。调用四个函数来判断字符串是否为B-encoding编码的四种数据类型:字符串分析函数readstring、整数分析函数readint、列表分析函数 readlist和字典分析函数 readdict。

(2)分析结果存放。定义一个基类和四个由该基类派生的子类,四个子类分别对应于四种数据类型。字符串和整数数据分别定义CBEncodeString 和CBEncodeInt类的对象存放结果;列表类型的数据使用C#中的List<>泛型类定义一个列表:

public List m_listObj= new List()暂存分析列表的结果,m_listObj的数据类型定义成基类以便同时存放四个子类的分析结果;字典分析结果的存放用SortedList<>泛型类定义一个字典类型:

public SortedList m_mapObj = new SortedList()暂存分析字典的结果;同时,在字典类中,还需要定义一个列表类型m_listObj,因为torrent文件在字典结构中包含有列表,这样的结构有利于数据的读取。而字典类型中的值定义为基类型,以便于兼容四种数据类型,类似的列表也需要定义为基类。

由于分析的结果有多种,而且结构不同,使用list<>泛型类定义一个基类型的列表类型m_listObj按序返回分析结果,torrent文件本身就是一个字典,所以保存返回值的列表只有索引值为0的一项,该项存储的内容是已经分析好的整个文件,结构为一个字典。还要需将最终分析结果由列表m_listObj[0])中的内容强制转换成字典CBEncodeDict类型,而字典中又有Bencoding编码中的四种数据类型深层嵌套,分析整个文件的结构,要把所有的格式都考虑到,在输出结果的过程中根据具体情况要进行不同类型和不同次数的强制转换。

4 结论

本文对BT工作原理进行了分析,根据B-encoding编码规则和torrent文件的格式,在C#.NET 2005环境下开发出了对torrent 文件进行解析的Windows应用程序。借助于此程序,将分析结果提供给下载程序就可以开发出BT下载软件。当然,在使用BT软件进行文件共享带来方便的同时,对磁盘的频繁操作可能会引起磁盘老化,占用过多带宽,这些问题都需要在开发有关基于BitTorrent协议的共享软件时给予足够的重视。以较小的代价获得较好的网络文件共享功能。

图1 算法流程

参考文献:

[1]Cohen B.Incentives BuildRobustness in BitTorrent[Z/OL].http://www.bittorrent.com.

[2]王珏,BitTorrent下载技术研究.科技广场,2005(2).

[3]孔彬,徐良贤,BitTorrent原理分析及改进.计算机工程2004.30(12).

[4]Simon Robinson.等.著.李敏波.等.译.C#高级编程(第3版),清华大学出版社,2005年7月.

上一篇:橘红颗粒说明书下一篇:电梯监督检验申请书