Pi Digit Generation Protocol
# Pi Digit Generation Protocol

Das Pi Digit Generation Protocol ist ein Netzwerkprotokoll, das das Abrufen von Ziffern der Kreiszahl Pi (π) über Netzwerke ermöglichen soll. Es ist im spezifiziert. Federführend bei der Entwicklung war Hugh C. Kennedy von der University of Michigan.

Das Protokoll steht in der Tradition der ohne ernsthafte Anwendungen gedachten Aprilscherz-RFC. Wie auch beim Internet Protocol over Avian Carriers, Peg DHCP und dem Hyper Text Coffee Pot Control Protocol wurde das Konzept allerdings tatsächlich umgesetzt.

## Technisches

Vorgesehen ist, dass ein Server auf TCP-Port 314159 wartet, und auf Anfragen mit dem sequentiellen Senden der Nachkommastellen von Pi reagiert (also 1, 4, 1, 5, 9, 2, 6 usw.) . Optional kann, als Näherung, auf Port 220007 die Ziffern der ${\tfrac {22}{7}}$ gleichenden Dezimalzahl angeboten werden. Ein weiter optionaler Zusatz ist ein UDP-Dienst auf Port 314159, der auf Anfrage eine bestimmte Ziffer, wie sie der Client zur Angabe einer Position spezifiziert hat, antwortet. An die IP-Multicast-Adresse 314.159.265.359 kann als weiterer Zusatz von einem willigen Server ein Strom von Pi-Ziffern gesendet werden, falls diese Rolle nicht ein anderer Server bereits übernommen hat. SRV Resource Records können unter dem Namen pigen protokollgerechte Server listen.

## Anwendungen

Der RFC empfiehlt nachdrücklich, nur als vertrauenswürdig bekannte pigen-Server zu verwenden, da fehlerhafte oder gar absichtlich verfälschende Server je nach Anwendung fatale Auswirkungen haben könnten. So ist beim Einsatz in der Kryptographie besondere Vorsicht geboten.

## Implementierung

In Sektion 1.1 des RFC werden ohne Anspruch auf Vollständigkeit Methoden zur Bestimmung der Ziffern vorgeschlagen: Nachschlagen, numerische Verfahren und Auswahlverfahren. Dabei sollen aber Abweichungen ausgeschlossen sein.

Da die Portnummern 314159 und 220007 sowie die IP-Adresse 314.159.265.359 vorherrschenden Standards (16-Bit-Portnummern, IPv4-Oktette) zuwiderlaufenden, müssen Implementierungen von diesen Werten abweichen.

Eine Umsetzung ist die freie, für mehrere Plattformen verfügbare Programmsuite gpigen, ausgestattet mit Server und Client, geschrieben in C++. Der Chefentwickler ist Hideki Shirafuji. Sie läuft auf den Ports 50735 bzw. 23399.

