Independent Submission                                      M. Danielson
Request for Comments: 8135                                Net Insight AB
Category: Experimental                                        M. Nilsson
ISSN: 2070-1721                                    Besserwisser Networks
                                                            1 April 2017
        
Independent Submission                                      M. Danielson
Request for Comments: 8135                                Net Insight AB
Category: Experimental                                        M. Nilsson
ISSN: 2070-1721                                    Besserwisser Networks
                                                            1 April 2017
        

Complex Addressing in IPv6

IPv6中的复杂寻址

Abstract

摘要

The 128-bit length of IPv6 addresses (RFC 4291) allows for new and innovative address schemes that can adapt to the challenges of today's complex network world. It also allows for new and improved security measures and supports advanced cloud computing challenges.

128位长度的IPv6地址(RFC 4291)允许采用新的创新地址方案,以适应当今复杂网络世界的挑战。它还支持新的和改进的安全措施,并支持高级云计算挑战。

Status of This Memo

关于下段备忘

This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation.

本文件不是互联网标准跟踪规范;它是为检查、实验实施和评估而发布的。

This document defines an Experimental Protocol for the Internet community. This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 7841.

本文档为互联网社区定义了一个实验协议。这是对RFC系列的贡献,独立于任何其他RFC流。RFC编辑器已选择自行发布此文档,并且未声明其对实现或部署的价值。RFC编辑批准发布的文件不适用于任何级别的互联网标准;见RFC 7841第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc8135.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc8135.

Copyright Notice

版权公告

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2017 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。

Table of Contents

目录

   1. Introduction ....................................................3
   2. Requirements Language ...........................................3
   3. Natural Addresses ...............................................3
      3.1. Integer Addresses ..........................................3
      3.2. Prime Addresses ............................................3
      3.3. Composite Addresses ........................................4
   4. Complex Addresses ...............................................4
      4.1. Floating Addresses .........................................4
      4.2. Real Addresses .............................................5
      4.3. Imaginary Addresses ........................................5
      4.4. Flying Addresses ...........................................5
      4.5. Complex Addresses ..........................................6
   5. Supported Addressing Schemes ....................................6
      5.1. Absolute Addresses .........................................6
      5.2. Address Argument ...........................................6
      5.3. Safe Addresses .............................................6
      5.4. Virtual Addresses ..........................................7
      5.5. Rational Addresses .........................................7
      5.6. Irrational Addresses .......................................7
      5.7. Transcendent Addresses .....................................8
   6. Geometric Addresses .............................................8
      6.1. Round Addresses ............................................8
      6.2. Square Addresses ...........................................8
      6.3. Polar Addresses ............................................9
      6.4. Root Server ................................................9
      6.5. Implementation Considerations ..............................9
   7. IPv6 Address Mapping ...........................................10
   8. IANA Considerations ............................................10
   9. Security Considerations ........................................10
   10. References ....................................................11
      10.1. Normative References .....................................11
      10.2. Informative References ...................................12
   Appendix A.  Square Pi ............................................13
   Appendix B.  Implementation Example ...............................14
   Authors' Addresses ................................................16
        
   1. Introduction ....................................................3
   2. Requirements Language ...........................................3
   3. Natural Addresses ...............................................3
      3.1. Integer Addresses ..........................................3
      3.2. Prime Addresses ............................................3
      3.3. Composite Addresses ........................................4
   4. Complex Addresses ...............................................4
      4.1. Floating Addresses .........................................4
      4.2. Real Addresses .............................................5
      4.3. Imaginary Addresses ........................................5
      4.4. Flying Addresses ...........................................5
      4.5. Complex Addresses ..........................................6
   5. Supported Addressing Schemes ....................................6
      5.1. Absolute Addresses .........................................6
      5.2. Address Argument ...........................................6
      5.3. Safe Addresses .............................................6
      5.4. Virtual Addresses ..........................................7
      5.5. Rational Addresses .........................................7
      5.6. Irrational Addresses .......................................7
      5.7. Transcendent Addresses .....................................8
   6. Geometric Addresses .............................................8
      6.1. Round Addresses ............................................8
      6.2. Square Addresses ...........................................8
      6.3. Polar Addresses ............................................9
      6.4. Root Server ................................................9
      6.5. Implementation Considerations ..............................9
   7. IPv6 Address Mapping ...........................................10
   8. IANA Considerations ............................................10
   9. Security Considerations ........................................10
   10. References ....................................................11
      10.1. Normative References .....................................11
      10.2. Informative References ...................................12
   Appendix A.  Square Pi ............................................13
   Appendix B.  Implementation Example ...............................14
   Authors' Addresses ................................................16
        
1. Introduction
1. 介绍

This document introduces the fundamental concepts of complex addressing in IPv6, allowing for a wide range of complex addressing schemes to be supported and further developed.

本文档介绍了IPv6中复杂寻址的基本概念,允许支持和进一步开发各种复杂寻址方案。

Traditional network addressing schemes such as those used in IPv4 [RFC791] and IPv6 [RFC4291] have been confined to unsigned or integer numbers, representing fixed-point numbers. This has provided natural numbers for early implementations but is not well adapted to the challenges of future networks. Further, these fixed addresses have been proven unsuitable for mobility and virtualization in today's world, where cloud computing defies the traditional fixed addressing model. The increased size of addresses as allowed in IPv6, the significant drop in price of floating-point hardware, and the availability of a well-established floating-point format in IEEE 754 [IEEE754] allow for taking not only the step to floating-point addressing but also the step to complex addressing.

传统的网络寻址方案,如IPv4[RFC791]和IPv6[RFC4291]中使用的方案,被限制为无符号或整数,表示定点数字。这为早期的实现提供了自然的数字,但不能很好地适应未来网络的挑战。此外,这些固定地址已被证明不适合当今世界的移动和虚拟化,因为云计算颠覆了传统的固定地址模型。IPv6中允许的地址大小的增加、浮点硬件价格的大幅下降以及IEEE 754[IEEE754]中成熟的浮点格式的可用性,使得不仅可以进行浮点寻址,还可以进行复杂寻址。

2. Requirements Language
2. 需求语言

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

3. Natural Addresses
3. 自然地址
3.1. Integer Addresses
3.1. 整数地址

Traditional addresses are integer addresses and can be expressed in a three-dot format, for example, 113.129.213.11 for the integer 1904334091, a rare IPv4 double-palindromic address. These fixed-point addresses were well adapted to early network usage where each computer on the Internet had a fixed location and thus a fixed address. These addresses are also known as natural addresses. As computers have become more powerful and able to handle larger numbers and thus larger addresses, they have also become more transportable (e.g., laptops and mobile phones). The transportable aspect of computers makes fixed-point addresses moot, as machines can move around rather than be confined to a relatively fixed point.

传统地址是整数地址,可以用三点格式表示,例如,整数1904334091的113.129.213.11,这是一种罕见的IPv4双回文地址。这些定点地址很好地适应了早期的网络使用,互联网上的每台计算机都有一个固定的位置,因此有一个固定的地址。这些地址也称为自然地址。随着计算机的功能越来越强大,能够处理更大的数字和更大的地址,它们也变得更易于移动(如笔记本电脑和移动电话)。计算机的可移动性使得定点地址变得毫无意义,因为机器可以四处移动,而不是局限于相对固定的点。

3.2. Prime Addresses
3.2. 主要地址

The prime address (that is, the primary address of a recipient) is an important subclass of integer addresses. Such an address is not divisible by anything but the recipient itself, which means it must be regarded as a unique address. While many prime addresses have been experimentally identified, it has proven to be quite hard to

主地址(即收件人的主地址)是整数地址的一个重要子类。这样的地址只能被收件人自己分割,这意味着它必须被视为唯一的地址。虽然许多素数地址已经被实验确定,但事实证明很难确定

identify a prime address amongst other addresses without resorting to time-consuming computations. Current use includes security and intelligence, where post boxes are obscured amongst others using large prime addresses.

在其他地址中识别一个素数地址,而无需进行耗时的计算。目前的用途包括安全和智能,邮箱和其他使用大素数地址的邮箱一起被遮住。

3.3. Composite Addresses
3.3. 复合地址

Composite addresses are formed by two or more prime addresses and thus constitute a shared address, allowing the address to be home for multiple prime addresses. Large composite addresses can be difficult to distinguish from prime addresses, which can be a factor to consider. Composite addresses have also become quite important in addressing new light structures and are used in airplanes to make them lightweight and durable. This is important in connecting to the cloud.

复合地址由两个或多个基本地址组成,因此构成一个共享地址,允许该地址成为多个基本地址的主地址。大的复合地址很难区分主地址,这是一个需要考虑的因素。复合地址在解决新型轻型结构方面也变得相当重要,并用于飞机,以使其轻便耐用。这对于连接到云非常重要。

4. Complex Addresses
4. 复杂地址
4.1. Floating Addresses
4.1. 浮动地址

Floating-point addresses allow for a more flexible addressing scheme better adapted for today's mobile computers, thus allowing for mobile IP [RFC5944]. Support for floating-point numbers is well established in the form of floating numbers as described in IEEE 754 [IEEE754], which allows both 32-bit and 64-bit floating-point numbers to be represented; this is well matched to the requirements of fitting into a 128-bit IPv6 address.

浮点地址允许更灵活的寻址方案更好地适应当今的移动计算机,从而允许移动IP[RFC5944]。如IEEE 754[IEEE754]所述,对浮点数的支持是以浮点数的形式建立的,它允许同时表示32位和64位浮点数;这与安装到128位IPv6地址的要求非常匹配。

The use of floating addresses does not, however, imply that devices will be watertight. Please download the watertight app from your app store or distribution server. Also, keep your device well patched, as long-term durability of duct tape is limited, particularly if exposure to salt water is expected. Apply suitable environmentally sound lubricants for best sliding performance.

然而,使用浮动地址并不意味着设备是防水的。请从应用商店或分发服务器下载该应用程序。此外,请妥善修补设备,因为管道胶带的长期耐用性有限,特别是在预计会暴露于盐水的情况下。使用合适的环保润滑剂以获得最佳滑动性能。

Duct tape can be used to affix a floating address to a fixed address, such as a physical address. For long-term outdoor adhesion, please use UV-stable, nuclear-grade duct tape in layers: Layer 1 [OSI], the physical layer, for affixing the floating address to the physical address and then final layer, called Layer 7, for the application of UV protection. Intermediate layers can be applied depending on the complexity needed.

管道胶带可用于将浮动地址粘贴到固定地址,如物理地址。对于长期室外粘合,请分层使用紫外线稳定的核级管道胶带:第1层[OSI],物理层,用于将浮动地址粘贴到物理地址,然后是最后一层,称为第7层,用于紫外线防护。根据需要的复杂性,可以应用中间层。

4.2. Real Addresses
4.2. 真实地址

An important aspect of floating-point addresses is that one needs to establish the real address of a device that has a floating address, such that IP packets can be routed to it through the network. Letting part of the address act as the real floating-point value allows means to express real addresses within this address scheme, thus solving a complex addressing problem.

浮点地址的一个重要方面是,需要建立具有浮点地址的设备的实际地址,以便IP数据包可以通过网络路由到该设备。让地址的一部分作为实际浮点值,可以在这个地址方案中表示实际地址,从而解决一个复杂的寻址问题。

Real addresses are typically assigned to real estate. Multi-homing is supported when the real estate connects to two or more road networks over individual road interfaces. Each road interface can often handle multiple real addresses. Mobile homes are assigned their current real address.

实际地址通常分配给不动产。当房地产通过单个道路接口连接到两个或多个道路网络时,支持多归属。每个道路接口通常可以处理多个实际地址。移动房屋被分配其当前实际地址。

4.3. Imaginary Addresses
4.3. 假想地址

Another important aspect of floating-point addresses is that they can be in several possible locations; thus, one must be able to imagine the address as being somewhere other than where the real address would make you believe. The imaginary address provides this orthogonal property. When the imaginary address is found to be 0, then the imaginary address and the real address are considered equal, and the real address has been found.

浮点地址的另一个重要方面是,它们可以位于多个可能的位置;因此,你必须能够想象这个地址不是真实地址让你相信的地方。虚地址提供了这种正交特性。当虚地址被发现为0时,虚地址和实地址被认为相等,实地址被发现。

Imaginary addresses are important in handling home locations above the normal real estate, that is, for cloud computing. The cloud can be identified using the imaginary address, whose floating address is adapted to a real address as the cloud gently floats by. During windy conditions, this may be difficult to achieve; during network storms, the real address of a cloud can become very unstable. Such storms can occasionally become so strong that they impact real estate and rearrange homes, making the real address quite surreal.

虚拟地址在处理正常不动产(即云计算)上方的家庭位置时非常重要。可以使用虚拟地址来识别云,当云轻轻浮动时,其浮动地址与真实地址相适应。在有风的条件下,这可能很难实现;在网络风暴期间,云的真实地址可能变得非常不稳定。这样的风暴有时会变得非常强烈,影响房地产和重新安排房屋,使真实地址变得非常超现实。

4.4. Flying Addresses
4.4. 飞行地址

An extension to the imaginary address is the flying address format, which is adapted to the mobility of avian carriers. Avian carriers and their datagrams, as described in [RFC6214], are best addressed with flying addresses, which typically take up ICAO Class G [ICAO-A11] airspace, below the cloud, as can be expected from a lower-layer technology.

虚地址的一个扩展是飞行地址格式,该格式适用于鸟类载体的移动性。如[RFC6214]所述,鸟类航空母舰及其数据报最好使用飞行地址寻址,飞行地址通常占据云层下方的ICAO G级[ICAO-A11]空域,这一点可以从较低层技术中预期。

4.5. Complex Addresses
4.5. 复杂地址

With the introduction of the real address and imaginary address parts, the full width of complex addresses can be realized. Both the real and imaginary parts are represented in 64-bit floating-point numbers as described in [IEEE754], thus allowing for the floating-point aspect of addresses. The real address part provides for the real address of a device, whereas the imaginary part allows for the orthogonal addressing of the floating-point address. This allows for complex addressing schemes where both the real and imaginary addresses can be found.

通过引入实地址和虚地址部分,可以实现复数地址的全宽。如[IEEE754]所述,实部和虚部均以64位浮点数表示,因此允许地址的浮点方面。实地址部分提供设备的实地址,而虚地址部分允许浮点地址的正交寻址。这允许使用复杂的寻址方案,其中可以找到实地址和虚地址。

Complex addresses allow for address arithmetic in the usual way but can now go beyond the fixed-point limitations. Adding imaginary parts to the address has not been possible before due to the high cost of early floating-point hardware, which hampered imagination.

复杂地址允许以通常的方式进行地址运算,但现在可以超越定点限制。由于早期浮点硬件的高成本,给地址添加虚部以前是不可能的,这妨碍了想象力。

5. Supported Addressing Schemes
5. 支持的寻址方案
5.1. Absolute Addresses
5.1. 绝对地址

It has become increasingly important to establish the absolute address of a device for many purposes, including but not limited to, use by law enforcement. This was manageable with fixed-point addresses but has become increasingly difficult with increased address mobility and floating-point addresses. The complex address scheme provides a method for getting the absolute address by performing the absolute function on the complex address.

为多种目的建立设备的绝对地址变得越来越重要,包括但不限于执法部门的使用。对于定点地址,这是可以管理的,但是随着地址移动性和浮点地址的增加,这变得越来越困难。复数地址方案提供了一种通过对复数地址执行绝对函数来获取绝对地址的方法。

5.2. Address Argument
5.2. 地址参数

It has become increasingly obvious that there is debate about the address of certain services or functions, leading to address arguments. This is another difficulty with fixed-point addresses, as their one-dimensional form does not allow for an argument to be resolved. The complex addressing scheme provides an elegant solution to these address arguments, as the result of the address argument can trivially be found by taking the argument (i.e., arctan or atan) function of the complex address. Using the appropriate function, full argument resolution can be found without signs of ambiguity.

越来越明显的是,关于某些服务或功能的地址存在争议,导致了地址争议。这是定点地址的另一个困难,因为它们的一维形式不允许解析参数。复杂寻址方案为这些地址参数提供了一个优雅的解决方案,因为地址参数的结果可以通过使用复杂地址的参数(即arctan或atan)函数轻松找到。使用适当的函数,可以找到完整的参数解析,而不会出现歧义。

5.3. Safe Addresses
5.3. 安全地址

A safe address is the address of a safe house. This is used in various security scenarios -- the safety lies in that those in need can reach the safe house at the safe address but there is no indication that the address has this role. By use of the imagination, this address can be made less real, simply by making the

安全地址是安全住所的地址。这在各种安全场景中都有使用——安全性在于那些需要帮助的人可以到达安全地址的安全屋,但没有迹象表明该地址具有此作用。通过运用想象力,这个地址可以变得不那么真实,只需简单地制作

imaginary part large enough not to be taken as a real address. Since it is a floating address, the real address can be made 0, thus making it completely imaginary, and the address argument will be orthogonal to any real address, providing it is hard to establish its real address. It is naturally still possible to establish the absolute address when needed.

虚部,虚部足够大,不能作为实地址。由于它是一个浮动地址,所以实地址可以设为0,从而使其完全是虚地址,并且地址参数将与任何实地址正交,前提是很难建立其实地址。当然,在需要时仍然可以建立绝对地址。

5.4. Virtual Addresses
5.4. 虚拟地址

Virtual addresses, where the same network interface can have multiple addresses, have traditionally been an important concept. With the complex addressing scheme, the imaginary part allows for a much wider range of virtualization than just normal multiple real addresses for a particular interface. This goes beyond normal cloud computing, where virtualization just allows you to operate somebody else's computer. The new imaginative address capabilities and higher altitude addresses due to the increased range allow you to operate a cloud within a cloud, so that you just run on top of somebody else's cloud. This high altitude allows for supersonic cruise speed for high-performance computing.

虚拟地址是一个重要的概念,同一网络接口可以有多个地址。对于复杂寻址方案,虚部允许比特定接口的普通多个实地址更广泛的虚拟化范围。这超越了普通的云计算,虚拟化只允许您操作其他人的计算机。新的想象地址功能和更高的高度地址,由于范围的增加,允许您在云中操作云,因此您只需在其他人的云上运行。这种高海拔使得超音速巡航速度能够用于高性能计算。

5.5. Rational Addresses
5.5. 有理地址

Engineers tend to always look at problems rationally, including the problem of addressing. The traditional fixed-point address has, however, only supported a subset of rational addresses, but with the new complex addressing scheme, a larger subset of rational addresses can be reached or approximated, allowing for a larger rationale to be found.

工程师总是倾向于理性地看待问题,包括解决问题。然而,传统的定点地址只支持rational地址的子集,但通过新的复杂寻址方案,可以达到或近似更大的rational地址子集,从而可以找到更大的基本原理。

The rationale for this is that with the use of floating addresses, the power of 2 now can perfectly divide. Further, approximations for other dividends can often be sufficiently precise. The full scope of rational numbers has not been reached, however, as the committee was quite imprecise on the use of floating addresses but agreed that this initial support of rational addresses could be acknowledged and helpful while its usage is TBD.

其基本原理是,通过使用浮动地址,2的幂现在可以完全分开。此外,其他股息的近似值通常足够精确。然而,由于委员会对浮动地址的使用非常不精确,因此还没有达到有理数的全部范围,但委员会同意,在使用待定的情况下,对有理数的最初支持是可以得到承认和帮助的。

5.6. Irrational Addresses
5.6. 无理地址

Support for irrational addresses has been very poor in the traditional addressing scheme, since fixed-point addresses did not support any irrational behavior by design, even if proofs for irrational addresses have been known to be jotted down. The new scheme allows for approximations of irrational addresses to be supported; even though no rationale for why this would be needed could be found, it is a neat feature to handle the irrationality of the world today.

在传统的寻址方案中,对非理性地址的支持非常差,因为定点地址在设计上不支持任何非理性行为,即使已知非理性地址的证明被记录下来。新方案允许近似支持无理地址;尽管找不到为什么需要这样做的理由,但处理当今世界的非理性却是一个巧妙的特征。

5.7. Transcendent Addresses
5.7. 超越地址

As a natural extension to irrational addresses, one can include approximation to the transcendent addresses, which transcend beyond the physical address or even the real address. While only approximated due to limited precision, they can still be used to locate the floating address for the life of Pi [PI], as Pi's life floats by.

作为非理性地址的自然延伸,可以包含超越地址的近似,超越物理地址甚至真实地址。虽然由于精度有限,只能进行近似计算,但它们仍然可以用于定位Pi[Pi]生命周期内的浮点地址,因为Pi的生命周期是浮动的。

6. Geometric Addresses
6. 几何地址
6.1. Round Addresses
6.1. 圆形地址

In order to cope with the complexity of the real world, real addresses (both rational or irrational) have always needed to be rounded up for them to be represented. This rounding provides what is known as round addresses and is achieved using a rounding function. This practice is maintained in the complex addressing scheme and is a necessity for support of rational and irrational addresses.

为了应对现实世界的复杂性,真实地址(理性地址或非理性地址)总是需要向上取整才能表示出来。这种舍入提供了所谓的舍入地址,并通过舍入函数实现。这种做法在复杂寻址方案中得以保持,是支持合理和非合理寻址的必要条件。

Round addresses are needed to efficiently forward packets around ring-type networks like Token Ring [IEEE-802.5] or Resilient Packet Ring (RPR) [IEEE-802.17].

在令牌环[IEEE-802.5]或弹性分组环(RPR)[IEEE-802.17]等环形网络周围高效地转发数据包需要圆形地址。

Common round words include "ring", "circle", and "sphere"; other round words are discouraged, especially when using the network.

常见的圆形词包括“环”、“圆”和“球”;不鼓励使用其他循环词,尤其是在使用网络时。

6.2. Square Addresses
6.2. 方形地址

As is well established, some addresses regularly in use cannot be directly used on the Internet. Addresses in text form are often referred to as square addresses, because the characters traditionally take up a square on the screen and because they act as a square peg in the round hole of Internet addresses. In order to convert these square addresses into round floating-point numbers, the Domain Name Service (DNS) was introduced to replace the host tables.

众所周知,一些经常使用的地址不能直接在互联网上使用。文本形式的地址通常被称为方形地址,因为传统上,字符在屏幕上占据一个正方形,并且它们在互联网地址的圆孔中起着方形钉的作用。为了将这些方形地址转换成圆形浮点数,引入了域名服务(DNS)来取代主机表。

Host tables are the old-school way of looking up a square number and converting it to round form. Such tables were published for all known square numbers, but they where inherently out of date as new square numbers kept occurring -- new round numbers had to be calculated from these square numbers and then had to be tabulated and published.

主桌是一种老式的查找正方形并将其转换为圆形的方法。这些表格是为所有已知的平方数而发布的,但随着新的平方数不断出现,这些表格本身就过时了——新的整数必须从这些平方数中计算出来,然后制成表格并发布。

Square addresses often use square pi (see Appendix A).

方形地址通常使用方形pi(见附录A)。

6.3. Polar Addresses
6.3. 极性地址

A misconception on square addresses is that they would represent the world as being a flat earth. While the complex addressing scheme supports Cartesian coordinates, alternative polar addresses can be formed. Since a flat earth would not have poles through which the rotation axis would fit, this proves that the earth is not flat in terms of square addresses but only has a square address representation. Polar addresses are trivially achieved using the absolute address and address argument methods. Recovering the complex address is trivially achieved using the exponential function on the complex polar address.

对方形地址的一种误解是,它们将世界表示为一个平坦的地球。虽然复杂寻址方案支持笛卡尔坐标,但可以形成备选极性地址。由于平坦的地球不会有旋转轴可以通过的极点,这就证明了地球在正方形地址方面不是平坦的,而只有正方形地址表示。极性地址是使用绝对地址和地址参数方法实现的。使用复数极性地址上的指数函数可以轻松地恢复复数地址。

The polar address also has a use for addressing Santa Claus, who is well known for living at the North Pole. This address can only be reached by use of the imaginary address, as it takes a certain amount of imagination in order to address Santa Claus. Traditional integer and fixed addressing schemes do not allow for such imaginative addresses, but the complex addressing scheme trivially handles it. The North American Aerospace Defense Command (NORAD) Santa Tracker would not have been possible without imaginative use of polar addresses when their secret phone address was revealed.

极地称呼语也可以用来称呼居住在北极的圣诞老人。这个地址只能通过使用虚构的地址来达到,因为要称呼圣诞老人需要一定的想象力。传统的整数和固定地址方案不允许这种想象的地址,但复杂的地址方案处理起来很简单。北美航空航天防御司令部(NORAD)的圣塔跟踪器在他们的秘密电话地址被泄露时,如果没有对极性地址的想象,是不可能的。

6.4. Root Server
6.4. 根服务器

The DNS system uses a small set of known root servers, which provides the root service in order to attain the address of a node. The complex address provides a solution such that each client can in itself act as a root server as they now can use built-in floating-point hardware or software to get the root address from the squared address. This offloads the root servers for common benefits, but the traditional root servers can operate in parallel, easing the transition to the complex address system.

DNS系统使用一小部分已知的根服务器,这些根服务器提供根服务以获得节点的地址。复杂地址提供了这样一种解决方案:每个客户端本身都可以充当根服务器,因为它们现在可以使用内置浮点硬件或软件从平方地址获取根地址。这样可以减轻根服务器的负担以获得共同的好处,但传统的根服务器可以并行运行,从而简化向复杂地址系统的过渡。

6.5. Implementation Considerations
6.5. 实施考虑

Implementation of floating-point addresses and complex addresses, as needed for complex addressing schemes, is trivial in today's context. IEEE 754 [IEEE754] allows for a common and agreed-upon format for representing floating-point numbers. The 64-bit floating-point representation is well established and supported throughout a wide range of devices. Support also exists in a wide range of computer languages, including C and FORTRAN. The C standard library (or libc) essentially makes all modern languages support it in a consistent manner. An independent implementation exists for Intercal. With ISO C99 [C99], the <complex.h> include provides even more direct support for complex numbers, enabling efficient handling of all aspects of complex addressing with minimal implementation effort.

复杂寻址方案所需的浮点地址和复杂地址的实现在今天的环境中是微不足道的。IEEE 754[IEEE754]允许使用一种通用且一致同意的格式来表示浮点数。64位浮点表示法在广泛的设备中得到了很好的确立和支持。支持也存在于广泛的计算机语言中,包括C和FORTRAN。C标准库(或libc)本质上使所有现代语言以一致的方式支持它。Intercal有一个独立的实现。有了ISO C99[C99],包含<complex.h>就为复数提供了更直接的支持,能够以最小的实现工作量高效地处理复杂寻址的所有方面。

7. IPv6 Address Mapping
7. IPv6地址映射

In order to convey complex addresses in the IPv6 address format, the following mapping is provided:

为了以IPv6地址格式传输复杂地址,提供了以下映射:

    3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
    1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |6                                                             3|
   |3               complex address (real part)                   2|
   +---------------------------------------------------------------+
   |3                                                              |
   |1               complex address (real part)                   0|
   +---------------------------------------------------------------+
   |6                                                             3|
   |3            complex address (imaginary part)                 2|
   +---------------------------------------------------------------+
   |3                                                              |
   |1            complex address (imaginary part)                 0|
   +---------------------------------------------------------------+
        
    3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
    1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |6                                                             3|
   |3               complex address (real part)                   2|
   +---------------------------------------------------------------+
   |3                                                              |
   |1               complex address (real part)                   0|
   +---------------------------------------------------------------+
   |6                                                             3|
   |3            complex address (imaginary part)                 2|
   +---------------------------------------------------------------+
   |3                                                              |
   |1            complex address (imaginary part)                 0|
   +---------------------------------------------------------------+
        

The 128-bit IPv6 address is divided into two 64-bit parts, where the upper half holds the real part of the address while the lower half holds the imaginary part of the complex address. These are represented as 64-bit floating-point numbers as defined in [IEEE754]; therefore, the real and imaginary address MUST be in the format described in IEEE 754.

128位IPv6地址分为两个64位部分,其中上半部分保留地址的实部,下半部分保留复地址的虚部。它们表示为[IEEE754]中定义的64位浮点数;因此,实地址和虚地址必须采用IEEE 754中描述的格式。

Since the real address is held in the real part of the complex address and the imaginary address is held in the imaginary part of the complex address, the proposed representation allows for compiler optimization such that these operations can be performed without performance hits, as could otherwise be expected with any real or complex addressing scheme.

由于实地址保存在复地址的实部,虚地址保存在复地址的虚部,因此建议的表示允许编译器优化,以便在不影响性能的情况下执行这些操作,否则,任何实际或复杂的寻址方案都会出现这种情况。

8. IANA Considerations
8. IANA考虑

This document does not require any IANA actions, though IANA may find it mildly amusing.

本文件不要求IANA采取任何行动,尽管IANA可能会觉得有点好笑。

9. Security Considerations
9. 安全考虑

Complex addressing is considered unsafe, as division by 0 still provides Not a Number (NaN) values. Users will have to be careful to identify the NaN as they can indicate infinity addresses, which are unrealistic as one needs to confine the address length to the address space. Many other traditional unsafe operations for fixed-point addresses have, however, been resolved. For example, the error

复杂寻址被认为是不安全的,因为被0除仍然提供非数字(NaN)值。用户必须小心识别NaN,因为它们可以指示无限多个地址,这是不现实的,因为需要将地址长度限制在地址空间内。然而,许多其他针对定点地址的传统不安全操作已经得到解决。例如,错误

condition of having the square address of -1 is readily resolved as the root address becomes the complex address i. Thus, it has the real part of 0, which is reasonable for an address that is not real, and an imaginary part of 1, which is in itself reasonable since one can imagine this error to occur.

当根地址变成复数地址i时,平方地址为-1的条件很容易解决。因此,它的实部为0,这对于非实地址是合理的,而虚部为1,这本身是合理的,因为可以想象会发生这种错误。

Division by 0 and other floating-point address calculations can cause a floating-point interrupt, which causes the execution address to deviate; it is typically pushed on a stack and replaced by the interrupt handler address. Recovery from such interrupts may require further recursive calls; hence, the overall computation time is unpredictable. It can cause a complete core dump, and dumping the core can have significant effects on the propulsion system and the time to reach anywhere in the address space. Care must be taken to avoid such measures, or engineering will be quite upset. Dumping the core also widely breaks security protocols, as leaks can have widespread consequences. NaN is also known as "No Agency Number", to mark the importance of keeping things secure.

除0和其他浮点地址计算可能导致浮点中断,从而导致执行地址偏离;它通常被推送到堆栈上,并由中断处理程序地址替换。从这些中断中恢复可能需要进一步的递归调用;因此,总的计算时间是不可预测的。它会导致一个完整的堆芯倾倒,倾倒堆芯会对推进系统和到达地址空间任何地方的时间产生重大影响。必须小心避免此类措施,否则工程部门将非常不安。转储内核也会广泛破坏安全协议,因为泄露可能会产生广泛的后果。NaN也被称为“无机构编号”,以标记保持事物安全的重要性。

10. References
10. 工具书类
10.1. Normative References
10.1. 规范性引用文件

[C99] ISO, "Information technology -- Programming Languages -- C", ISO/IEC 9899, 1999.

[C99]ISO,“信息技术——编程语言——C”,ISO/IEC 98991999。

[IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE 754, DOI 10.1109/IEEESTD.2008.4610935.

[IEEE754]IEEE,“IEEE浮点运算标准”,IEEE 754,DOI 10.1109/IEEESTD.2008.4610935。

[OSI] ISO, "Information technology -- Open Systems Interconnection -- Basic Reference Model: The Basic Model", ISO/IEC 7498-1, 1994.

[OSI]ISO,“信息技术——开放系统互连——基本参考模型:基本模型”,ISO/IEC 7498-11994。

[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, DOI 10.17487/RFC0791, September 1981, <http://www.rfc-editor.org/info/rfc791>.

[RFC791]Postel,J.,“互联网协议”,STD 5,RFC 791,DOI 10.17487/RFC07911981年9月<http://www.rfc-editor.org/info/rfc791>.

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<http://www.rfc-editor.org/info/rfc2119>.

[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, <http://www.rfc-editor.org/info/rfc4291>.

[RFC4291]Hinden,R.和S.Deering,“IP版本6寻址体系结构”,RFC 4291,DOI 10.17487/RFC42912006年2月<http://www.rfc-editor.org/info/rfc4291>.

[RFC6214] Carpenter, B. and R. Hinden, "Adaptation of RFC 1149 for IPv6", RFC 6214, DOI 10.17487/RFC6214, April 2011, <http://www.rfc-editor.org/info/rfc6214>.

[RFC6214]Carpenter,B.和R.Hinden,“RFC 1149对IPv6的适应”,RFC 6214,DOI 10.17487/RFC6214,2011年4月<http://www.rfc-editor.org/info/rfc6214>.

10.2. Informative References
10.2. 资料性引用

[ICAO-A11] ICAO, "Air Traffic Services, Annex 11 to the Convention on International Civil Aviation", July 2001, <http://www.icao.int/secretariat/PostalHistory/ annex_11_air_traffic_services.htm>.

[ICAO-A11]国际民航组织,“空中交通服务,国际民用航空公约附件11”,2001年7月<http://www.icao.int/secretariat/PostalHistory/ 附件11空中交通服务.htm>。

[IEEE-802.17] IEEE, "IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements Part 17: Resilient Packet Ring (RPR) Access Method and Physical Layer Specifications", IEEE 802.17, DOI 10.1109/IEEESTD.2011.6026209.

[IEEE-802.17]IEEE,“IEEE信息技术标准-系统间电信和信息交换-局域网和城域网-特定要求第17部分:弹性分组环(RPR)接入方法和物理层规范”,IEEE 802.17,DOI 10.1109/IEEESTD.2011.6026209。

[IEEE-802.5] IEEE, "IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Part 5: Token Ring Access Method and Physical Layer Specifications", IEEE 802.5, DOI 10.1109/IEEESTD.1992.7438701.

[IEEE-802.5]IEEE,“IEEE信息技术标准-系统间电信和信息交换-局域网和城域网-第5部分:令牌环访问方法和物理层规范”,IEEE 802.5,DOI 10.1109/IEEESTD.1992.7438701。

[PI] "Life of Pi", 20th Century Fox, 2012.

[PI]“PI的生活”,20世纪福克斯,2012年。

[pibill] Wikipedia, "Indiana Pi Bill", March 2017, <https://en.wikipedia.org/w/ index.php?title=Indiana_Pi_Bill&oldid=770393894>.

[pibill]维基百科,“印第安纳州Pi法案”,2017年3月<https://en.wikipedia.org/w/ index.php?title=Indiana\u Pi\u Bill&oldid=770393894>。

[RFC5944] Perkins, C., Ed., "IP Mobility Support for IPv4, Revised", RFC 5944, DOI 10.17487/RFC5944, November 2010, <http://www.rfc-editor.org/info/rfc5944>.

[RFC5944]Perkins,C.,Ed.,“IPv4的IP移动性支持,修订版”,RFC 5944,DOI 10.17487/RFC59442010年11月<http://www.rfc-editor.org/info/rfc5944>.

Appendix A. Square Pi
附录A.方形圆周率

When using square numbers, it is customary to use square pi, a number that has seen limited exposure in traditional texts but is widely used in computer science. It is thus appropriate to publish a few related notes on square pi in order to assist users of square addresses on its correct usage.

当使用平方数时,习惯上使用平方pi,这是一个在传统文本中暴露有限但在计算机科学中广泛使用的数字。因此,为了帮助square地址的用户正确使用square-pi,发布一些关于square-pi的相关注释是合适的。

While traditional pi or round pi is an irrational number, it can be rounded off to 3.14 or 3.14159; it has an incomprehensible number of decimals, which is quite inappropriate for a round number, but as we keep rounding it to fit our needs, we keep rationalizing it from its irrational behavior.

传统圆周率或圆周率是一个无理数,可以四舍五入到3.14或3.14159;它有一个无法理解的小数位数,这对于一个整数来说是非常不合适的,但是当我们不断地将它四舍五入以满足我们的需要时,我们不断地将它从非理性行为中合理化。

The radius of an object is the closest to the center of the object you get. The circumference is the radius times 2 pi. The diameter is the shortest distance across the object, which is thus the radius times 2. The area is pi times the square of radius.

对象的半径是最接近对象中心的半径。周长是半径乘以2π。直径是穿过对象的最短距离,即半径乘以2。面积是π乘以半径的平方。

For a round circle, the radius is from the center to anywhere on the circumference. For a square circle, the radius only reaches the circumference on the four points located closest to the center. These are typically oriented such that the real and imaginary axis goes through them, which is helpful in calculations, and no rotation symmetries need to be considered.

对于圆,半径是从圆心到圆周上的任何位置。对于方圆,半径仅到达距离中心最近的四个点的圆周。它们的方向通常是实轴和虚轴穿过它们,这有助于计算,并且不需要考虑旋转对称性。

The square pi fills the same purpose as the round pi, but rather than being adapted to round objects, it is adapted to square objects. For a square circle, the math is exactly the same as for round circles, provided that the square pi is used with square circles and that round pi is used with round circles.

方形圆周率与圆形圆周率具有相同的用途,但它不是适用于圆形对象,而是适用于方形对象。对于方圆,数学与圆完全相同,前提是方pi与方圆一起使用,圆pi与圆一起使用。

The value of square pi is 4.

平方pi的值是4。

The value of square pi adapts really well to the way that computers calculate, which is also why computer results often are represented in square numbers, providing a bit of a square feeling. It should be noted that the square root of pi is often used, and the square root of square pi is naturally 2, which is very easy to handle in calculations and effectively reduces the risk of irrational numbers.

平方π的值非常适合计算机的计算方式,这也是为什么计算机结果通常用平方数表示,提供了一点方形的感觉。应该注意的是,经常使用pi的平方根,而平方pi的平方根自然是2,这在计算中非常容易处理,并有效地降低了无理数的风险。

Please note that the square pi should not be confused with the Indiana Pi Bill [pibill], which does not discuss the square pi but a failed attempt to do square calculation of the area and circumference of a round circle using traditional tools like rulers and compasses.

请注意,方形圆周率不应与印第安纳圆周率法案[pibill]混淆,后者未讨论方形圆周率,但未能使用传统工具(如尺子和圆规)对圆的面积和周长进行方形计算。

Appendix B. Implementation Example
附录B.实施示例

The following is a simple implementation example to illustrate how some core concepts can be implemented in <complex.h> (as defined in ISO C99 [C99]).

下面是一个简单的实现示例,用于说明如何在<complex.h>中实现一些核心概念(如ISO C99[C99]中定义的)。

   #include <complex.h>
   #include <math.h>
   #include <stdio.h>
        
   #include <complex.h>
   #include <math.h>
   #include <stdio.h>
        

// Define type for complex address typedef complex ca;

//定义复杂地址类型定义复杂ca;

   // Create complex address
   ca ca_create_complex_address(double real_address,
           double imaginary_address)
   {
           return real_address + I * imaginary_address;
   }
        
   // Create complex address
   ca ca_create_complex_address(double real_address,
           double imaginary_address)
   {
           return real_address + I * imaginary_address;
   }
        
   // Get real address
   double  ca_get_real_address(ca ca_val)
   {
           return creal(ca_val);
   }
        
   // Get real address
   double  ca_get_real_address(ca ca_val)
   {
           return creal(ca_val);
   }
        
   // Get imaginary address
   double  ca_get_imaginary_address(ca ca_val)
   {
           return cimag(ca_val);
   }
        
   // Get imaginary address
   double  ca_get_imaginary_address(ca ca_val)
   {
           return cimag(ca_val);
   }
        
   // Get complex address
   complex ca_get_complex_address(ca ca_val)
   {
           return ca_val;
   }
        
   // Get complex address
   complex ca_get_complex_address(ca ca_val)
   {
           return ca_val;
   }
        
   // Get floating address
   double  ca_get_floating_address(ca ca_val)
   {
           return creal(ca_val);
   }
        
   // Get floating address
   double  ca_get_floating_address(ca ca_val)
   {
           return creal(ca_val);
   }
        
   // Get physical address
   double  ca_get_physical_address(ca ca_val)
   {
           return cimag(ca_val);
        
   // Get physical address
   double  ca_get_physical_address(ca ca_val)
   {
           return cimag(ca_val);
        

}

}

   // Get absolute address
   double  ca_get_absolute_address(ca ca_val)
   {
           return cabs(ca_val);
   }
        
   // Get absolute address
   double  ca_get_absolute_address(ca ca_val)
   {
           return cabs(ca_val);
   }
        
   // Get address argument
   double  ca_get_address_argument(ca ca_val)
   {
           return carg(ca_val)*360/(2*M_PI);
   }
        
   // Get address argument
   double  ca_get_address_argument(ca ca_val)
   {
           return carg(ca_val)*360/(2*M_PI);
   }
        
   int main()
   {
           ca ca1, ca2;
        
   int main()
   {
           ca ca1, ca2;
        
           ca1 = ca_create_complex_address(1.0, 0.0);
           printf("The complex address (%f,%f)\n",
                   creal(ca1), cimag(ca1));
           printf("has the real address %f and imaginary address %f\n",
                   ca_get_real_address(ca1),
                   ca_get_imaginary_address(ca1));
           printf("This represents the floating address %e and \
   physical address %f\n", \
                   ca_get_floating_address(ca1),
                   ca_get_physical_address(ca1));
           ca2 = ca_create_complex_address(0.0, 1.0);
           printf("The complex address (%f,%f)\n",
                   creal(ca2), cimag(ca2));
           printf("This represents the absolute address %f\n",
                   ca_get_absolute_address(ca2));
           printf("The address argument resolution is %f\n",
                   ca_get_address_argument(ca2));
           return 0;
   }
        
           ca1 = ca_create_complex_address(1.0, 0.0);
           printf("The complex address (%f,%f)\n",
                   creal(ca1), cimag(ca1));
           printf("has the real address %f and imaginary address %f\n",
                   ca_get_real_address(ca1),
                   ca_get_imaginary_address(ca1));
           printf("This represents the floating address %e and \
   physical address %f\n", \
                   ca_get_floating_address(ca1),
                   ca_get_physical_address(ca1));
           ca2 = ca_create_complex_address(0.0, 1.0);
           printf("The complex address (%f,%f)\n",
                   creal(ca2), cimag(ca2));
           printf("This represents the absolute address %f\n",
                   ca_get_absolute_address(ca2));
           printf("The address argument resolution is %f\n",
                   ca_get_address_argument(ca2));
           return 0;
   }
        

Authors' Addresses

作者地址

Magnus Danielson Net Insight AB Vastberga Alle 9 Hagersten 12630 Sweden

Magnus Danielson Net Insight AB Vastberga Alle 9 Hagersten 12630瑞典

   Email: magda@netinsight.net
        
   Email: magda@netinsight.net
        

Mans Nilsson Besserwisser Networks

Mans-Nilsson-Besserwisser网络

   Email: mansaxel@besserwisser.org
        
   Email: mansaxel@besserwisser.org