Pi数字生成协议(Pi Digit Generation Protocol,PIgen)RFC3091

Network Working Group             H. Kennedy
Request for Comments: 3091        University of Michigan
Category: Informational             1 April 2001

PI数字生成协议

文档状态

本备忘录为因特网社区提供信息。不指定任何因特网标准。本文档发布不受限制。

版权声明

Copyright (C) The Internet Society(2000)。版权保留。

抽象

本文档定义了提供PI数字生成服务(PIgen)的协议,此协议用于主机上的客户与服务器之间。

介绍

此协议意在提供Pi数字生成服务(PIgen),并用于主机上的客户和服务器间。典型的情况,客户程序运行在缺乏本地Pi支持的工作站上,并且服务器是有更好的Pi计算能力的牛逼机器。必要的折衷则是使用网络资源和时间代替本地计算周期。
本文档中的关键字“MUST”、“MUST NOT”、“REQUIRED”、 “SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL” 将在[RFC2119]的描述中解释。

注意

此服务提供的所有数字均为ASCII[US-ASCII]表示的Pi值或其近似值小数点后的十进制数。此协议定义的服务提供的值前必(MUST)隐含了十进制数3。

1.基于TCP的数字生成服务

一个必须的(REQUIRED)PIGen服务被定义为一个无状态的TCP服务。服务器监听TCP端口314159。一旦一个连接建立起来,服务器发送一个数据流,每次发送Pi的一个数字,从小数点后的第一个有效位开始。任何输入必须(MUST)被丢弃。此过程持续到客户关闭TCP连接。
此连接上的数据流由标准TCP流控制机制来限制,因此无需担心服务器发送数据速度高于客户处理速度。
服务器可以(MAY)使用任何Pi数字生成方法来提供服务,包括(但不限于)查表[DIGITS],数值计算[FIBPI] [FIFFT]和统计采样[MCM]。然而,选择的方法应当(SHOULD)为Pi数字生成提供精确的值。
PIgen的实现必须(MUST)按条件提供此服务以遵从此RFC。

1.1. 类似服务

一个可选的(OPTIONAL) PIgen服务被定义为一个无状态的TCP服务。服务器监听TCP端口220007。一旦一个连接建立起来,服务器发送一个数据流,每次发送22/7的一个比值,从小数点后的第一位有效数字开始。任何输入数据必须(MUST)被丢弃。此过程持续到客户关闭TCP链接。

2.基于UDP的数字生成服务

一个可选的(OPTIONAL) PIgen服务被定义为一个无状态的UDP服务。服务器监听UDP端口314159。当收到一个请求Pi的特定位数字的数据报时,发送一个包含所请求的数字的包,其格式参照2.1.1.和2.1.2.节中的定义。
请求的数字值可以由任何类似的Pi数字生成方法决定。推荐的(RECOMMENDED)方法包括查表[DIGITS],或数值计算[BBPPA]

2.1.包格式

基于数据报协议族内容共享如下UDP负载格式(defined in the ABNF of RFC 2234 [RFC2234])。

2.1.1. 请求负载格式

request = nth_digit
nth_digit = 1*DIGIT ; 指明小数点后的第n个数字

2.1.2. 答复负载格式

reply = nth_digit “:” DIGIT ; DIGIT是小数点后第n位数字的值

2.2. 类似服务

一个可选的(OPTIONAL)PIgen服务被定义为一个无状态的UDP服务。服务器监听UDP端口220007.当收到请求22/7比值特定位数字的数据报时,发送一个包含所请求的22/7比值数字的数据报。其格式参照2.1.1.和2.1.2.节中的定义。

3. 基于IP多播的生成服务

一个可选的(OPTIONAL)PIgen服务被定义为一个无状态的UDP服务。数字Pi使用2.1.2节中定义的负载格式随机分布给IP多播组314.159.265.359
不存在请求结构。如果一个实现了协议族此功能的服务器加入了PIgen多播组并且30秒内没有检测到有其他服务器提供数字,此服务器可(MAY)被选为PIgen多播提供者。
PIgen多播提供者产生Pi值的随机位并将其发送到多播组中。PIgen多播客户通过一直监听多播组以建立完整的Pi值。
随机选择的数值可以(MAY)由任何类似的Pi数字生成方法决定。推荐的(RECOMMAND)方法包括查表[DIGITS],或数值计算[BBPPA]。为保证充分随机的分布,应当使用一个合适的随机数生成器,见[RANDOM]中的示例。

4.发现服务

客户应当(SHOULD)通过DNS SRV算法发现服务 [RFC2782]。服务器使用的是“pigen”,客户使用的是“tcp”和“udp”。类似服务(1.1.和2.2.节)应当使用pigem被发现。这允许中央处理寻址,以备回复失败和收集,和静态负载平衡。

5.安全考虑

几乎所有的因特网协议要求高度准确的Pi值以保证正常功能,客户只使用可信的PIgen服务器势在必行。如果此指导原则没有被严格执行,那么互联网的崩溃迫在眉睫。

6. 引用

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14, RFC 2119, March 1997.

[US-ASCII] Coded Character Set–7-Bit American Standard Code for Information Interchange, ANSI X3.4-1986.

[DIGITS] ftp://pi.super-computing.org/pub/pi

[FIBPI] Pi and the Fibonacci Numbers http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/ fibpi.html

[PIFFT] Pi Calculation based on FFT and AGM http://momonga.t.u- tokyo.ac.jp/~ooura/pi_fft.html

[MCM] The Monte Carlo Method http://www.daimi.aau.dk/~u951581/pi/MonteCarlo/pimc.html

[BBPPA] Bailey-Borwien-Plouffe Pi Algorithm http://www.mathsoft.com/asolve/plouffe/plouffe.html

[RFC2234] Crocker, D. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF”, RFC 2234, November 1997.

[RANDOM] Randomness for Crypto http://www.cs.berkeley.edu/~daw/rnd/

[RFC2782] Gulbrandsen, A., Vixie, P. and L. Esibov, “A DNS RR for specifying the location of services (DNS SRV)”, RFC 2782, February 2000.

[CHARGEN] Postel, J., “Character Generation Protocol”, STD 22, RFC 864, May 1983.

7.作者地址

Hugh Kennedy
University of Michigan
2281 Bonisteel Blvd.
Ann Arbor, MI 48109-2099
USA

EMail: kennedyh@engin.umich.edu

译者:AprilCal(747998045@qq.com)
译文发布时间:2017/8/29
版权:本中文翻译文档版权归本人所有。转载需保留版权信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值