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
版权:本中文翻译文档版权归本人所有。转载需保留版权信息。