当前位置:文档之家› PPTP V0.1通讯协议定义

PPTP V0.1通讯协议定义

PPTP V0.1通讯协议定义

开始:2003-7-19

初稿:2003-7-27

修改:2003-9-16

2003-9-20、24、25 1、前言及范围

本规范为P2P项目中所用到的通讯协议,简称为PPTP,现在的版本是草拟的1.0版。本规范描述了在本项目中客户(Peer)和服务器(Serv11er)以及客户与客户(Peer to Peer)之间的相关消息的类型和定义。

本规范解释权属于本作者,有不合实际情况之处将及时更改。

本规范包括两方面的内容:

(1)客户与登录服务器之间的接口协议;

(2)客户与客户进行点到点传输的接口协议;

本规范应有一定通用性,便于扩展和增加新的功能,如语音和视频传输等;

2、缩略语

3.网络结构

图1 P2P协议逻辑网络结构

如图1所示,服务器为各Peer的登录实体,所有的注册、信任、认证信息均必须从服务器发出(客户端一般可以缓存在线客户的信息);各Peer的地址,所提供的资源清单均必须反馈到服务器;

客户与客户之间可进行点到点传输,传输内容包括:文本信息、语音(暂未处理)、视频(暂未处理)、文件(包括小于1M的文件和大文件);

点到点传输的连接建立成功后,不需要服务器的参与。

4、PPTP功能概述

如前言所述,PPTP主要实现两方面的业务操作:

(1)客户与服务器之间(Client Server):

1) Peer 向Server发出连接请求(并在程序运行期间保持该连接,并测试连接是否Alive);

2)Server 向Peer 回发连接响应,即建立有效连接(1)和(2)可用于测试连接是否Alive;

3)Peer向Server发出终止连接请求;

4)Server向Peer回发终止连接的响应;

5)Peer 向Server提交注册请求;

6)Server向Peer回发注册响应,成功则Server记载必要信息并返回唯一的用户ID号

7)Peer向Server查询在线好友列表信息;

8)Server向Peer返回在线好友列表;

9)Peer向Server提交更改注册信息请求;

10)Server向Peer回发更改注册信息响应,成功则更新服务器上的用户信息并返回;

11)Peer 向Server 提交登录请求;

12)Server向Peer回发登录成功信息;

13)Peer 向Server提交查询用户详细信息请求;

14)Server向Peer回发该用户详细信息并返回其上线IP地址及共享列表;

15)Peer向Server查询特定用户是否在线信息;

16)Server向Peer返回该用户是否在线;

17)Peer向Server提交共享文件列表(每次改变都要提交一次);

18)Server向Peer回发接收共享文件响应信息,如共享文件的基本信息等;

19)Peer向Server搜索特定文件位置;

20)Server向Peer返回搜索结果;

21)Peer对Server提交接收到搜索结果的响应

22)Peer A添加好友Peer B

23)添加好友回复z

24)Pee A 删除好友Peer B

25)删除好友回复

(2)客户与客户之间(Peer Peer):

1) Peer A 向Peer B发出连接请求(并在程序运行期间保持该连接,并测试连接是否Alive);

2) Peer B 向Peer A 回发连接响应,即建立有效连接(1)和(2)可用于测试连接是否Alive;

3)Peer A向Peer B发出终止连接请求(一般是由于终止一方下线、退出等原因);

4)Peer B向Peer A回发终止连接的响应;

5)Peer A向Peer B 提交搜索对方所有文件的请求(UDP);

6)Peer B向Peer A回发所有共享的文件列表(UDP);

7)Peer A 向peer B 提交发送文本消息的请求(UDP/TCP);无回应

8)Peer A向Peer B提交下载特定文件的请求(TCP);

9)Peer B向Peer A下发文件内容(UDP/TCP)暂未处理断点续传;

10)Peer B向PeerA 发一个文件内容包(文件负载不大于1K)

11)Peer A向Peer B发送一个接收OK的空包。采用应答式处理,Peer B只有接收到OK标

志才继续Send。保证文件的完整性

12)传输结束,发送FileSendEnd包停止文件传输

13)收到传输回发的FliesendendOk信号

14)接收到Upload后给予的回复信息

5. 收到文件结束标志协议栈

CMP接收到Upload后给予的回复信息P协议以TCP/IP/UDP作为底层通信承载,具体结构如下图4所示:

图4 PPTP协议栈

6. 通信方式

传输的协议包括TCP和UDP。用UDP传递视频、语音等实时性的数据,用TCP的长连接和短连接传递文本消息、命令帧、文件等数据。(视频、语音暂不处理)客户与服务器之间、客户之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对PPTP消息的发送。

对于客户之间发送的数据如音频、视频、文件、消息,也可以采用基于UDP的数据报协议,短消息、小文件、实时音频、实时视频可以采用短连接,大文件可以采用长连接进行传递。

6.1长连接

通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。

参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。

网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。

消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。

长连接的操作流程举例如图5所示:

相关主题