From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc1705.txt | 1515 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1515 insertions(+) create mode 100644 doc/rfc/rfc1705.txt (limited to 'doc/rfc/rfc1705.txt') diff --git a/doc/rfc/rfc1705.txt b/doc/rfc/rfc1705.txt new file mode 100644 index 0000000..8499e1b --- /dev/null +++ b/doc/rfc/rfc1705.txt @@ -0,0 +1,1515 @@ + + + + + + +Network Working Group: R. Carlson +Request for Comments: 1705 ANL +Category: Informational D. Ficarella + Motorola + October 1994 + + + Six Virtual Inches to the Left: + The Problem with IPng + +Status of this Memo + + This memo provides information for the Internet community. This memo + does not specify an Internet standard of any kind. Distribution of + this memo is unlimited. + +Abstract + + This document was submitted to the IETF IPng area in response to RFC + 1550. Publication of this document does not imply acceptance by the + IPng area of any ideas expressed within. Comments should be + submitted to the big-internet@munnari.oz.au mailing list. + +Overview + + This RFC suggests that a new version of TCP (TCPng), and UDP, be + developed and deployed. It proposes that a globally unique address + (TA) be assigned to Transport layer protocol (TCP/UDP). The purpose + of this TA is to uniquely identify an Internet node without + specifying any routing information. A new version of TCP, and UDP, + will need to be developed describing the new header fields and + formats. This new version of TCP would contain support for high + bandwidth-delay networks. Support for multiple network layer + (Internet Protocol) protocols is also possible with this new TCP. + Assigning an address to TCP/UDP would allow for the support of + multiple network layer protocols (IPng's). The TA would identify the + location of an Internet node. The IPng layer would provide routing + information to the Internet. Separating the location and routing + functions will greatly increase the versatility of the Internet. + + + + + + + + + + + + +Carlson & Ficarella [Page 1] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. Historical perspective . . . . . . . . . . . . . . . . . . . . 3 + 2.1 OSI and the 7 layer model . . . . . . . . . . . . . . . 3 + 2.2 Internet Evolution . . . . . . . . . . . . . . . . . . . 4 + 2.3 The Reasons for Change . . . . . . . . . . . . . . . . . 4 + 2.3.1 Class-B Address Exhaustion . . . . . . . . . . . 4 + 2.3.2 Routing Table Growth . . . . . . . . . . . . . . 5 + 3. The Problems with Change . . . . . . . . . . . . . . . . . . . 5 + 3.1 TCP/UDP Implementations . . . . . . . . . . . . . . . . 6 + 3.2 User Applications . . . . . . . . . . . . . . . . . . . 6 + 3.3 The Entrenched Masses . . . . . . . . . . . . . . . . . 6 + 4. Making TCP & UDP Protocol Independent . . . . . . . . . . . . 7 + 4.1 Transport Addressing . . . . . . . . . . . . . . . . . . 7 + 4.2 TCPng . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.3 Mandatory Options . . . . . . . . . . . . . . . . . . . 15 + 4.4 Optional Options . . . . . . . . . . . . . . . . . . . . 16 + 4.5 Compatibility Issues . . . . . . . . . . . . . . . . . . 16 + 4.5.1 Backward Compatibility . . . . . . . . . . . . . 17 + 4.6 Level 4 Gateways . . . . . . . . . . . . . . . . . . . . 17 + 4.7 Error Conditions . . . . . . . . . . . . . . . . . . . . 18 + 5. Advantages and Disadvantages of this approach . . . . . . . . 18 + 6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 19 + References . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 + Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 + Appendix A . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 + Appendix B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 + Appendix C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + Appendix D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 + Security Considerations . . . . . . . . . . . . . . . . . . . . . 27 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 27 + +1. Introduction + + For more than a decade, network engineers have understood the + benefits of a multi-layer protocol stack. However, during its + development, the Transmission Control Protocol (TCP) was strongly + linked to the Internet Protocol (IP) [Postel, 1981a]. When the TCP/IP + protocol suite was developed, two important ideas were implemented. + The first was that each host would be uniquely identified by a + network layer number (i.e., IP number = 192.0.2.1). The second was to + identify an application with a transport layer port number (i.e., TCP + DNS number = 53). For host-to-host communications, the IP and port + numbers would be concatenated to form a socket (i.e., 192.0.2.1.53). + While this has lead to a very efficient and streamlined TCP layer, it + has tightly coupled the TCP and IP layers. So much so, in fact, that + it is nearly impossible to run TCP over any network layer except for + + + +Carlson & Ficarella [Page 2] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + IP. + + The motivation for writing this paper resulted from research into the + various Internet Protocol Next Generation (IPng) proposals put forth + by various IETF working groups. Each of the IPng proposals strives to + solve the impending IP address exhaustion problem by increasing the + size of the address field. They all allude to modifications to TCP + and User Datagram Protocol (UDP) to make them capable of supporting a + new network layer IPng protocol. The authors of this paper feel that + this points to an inherent TCP/IP design flaw. The flaw is namely + that the transport (TCP) and network (IP) layers are not protocol + independent. In this paper, we will propose a new TCP and UDP + implementation that will make the transport and protocol layers + independent and thus allow for any of the IPng protocols to operate + on the same internet without any further modification to the higher + layer protocols. TCP, and UDP would become extremely powerful + Application Programming Interfaces (APIs) that operate effectively + over multiple network layer technologies. + +2. Historical perspective + +2.1 OSI and the 7 layer model + + Present day computer and communication systems have become + increasingly heterogeneous in both their software and hardware + complexity, as well as their intended functionality. Prior to the + establishment of computer communications industry standards, + proprietary standards followed by particular software and hardware + manufacturers prevented communication and information exchange + between different manufacturers products and therefore lead to many + "closed systems" [Halsal, 1992] incapable of readily sharing + information. With the proliferation of these types of systems in the + mid 1970s, the potential advantages of "open systems" where + recognized by the computer industry and a range of standards started + to be introduced [Halsal, 1992]. + + The first and perhaps most important of these standards was the + International Standards Organization (ISO) reference model for Open + Systems Interconnection standard (OSI), describing the complete + communication subsystem within each computer. The goal of this + standard model was to "allow an application process in any computer + that supports a particular set of standards to communicate freely + with an application process in any other computer that supports the + same standards, irrespective of its origin of manufacture" [Halsal, + 1992]. The last statement above describes the OSI 7-layer model + which has now, in concept, become the fundamental building block of + computer networks. Though there are arguably no present day + computers and networks completely compliant to all 7 layers of the + + + +Carlson & Ficarella [Page 3] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + OSI protocol stack, most protocol stacks do embrace the fundamental + concept of independent layers, thus allowing the flexibility for + computers operating with dissimilar protocol stacks to communicate + with one another. + + Take for example, the datalink layers as supported by TCP/IP. TCP/IP + will run equally well in either the local area network (LAN) or wide + area network (WAN) environments. Even though the LAN may use Ethernet + 802.3 and the WAN may use T1 serial links. This function was designed + to present a "standardized set of network functions (i.e., a logical + network)", to the upper network layer, "regardless of the exact + details of the lower level implementations" [Meyer, Zobrist, 1990]. + +2.2 Internet Evolution + + "The internet architecture, the grand plan behind the TCP/IP protocol + suite" was developed and tested in the late 1970s, [Braden, et al, + 1991] and but for the addition of subnetting, autonomous systems, and + the domain name system in the early 1980s and the more recent IP + multicasting implementation, stands today essentially unchanged. Even + with the understood benefits of a multi-layer protocol stack, all + steps taken to enhance the internet and its services have been very + incremental and narrowly focused. + +2.3 The Reasons for Change + + The reasons for change from IP to IPng can be described in terms of + problems for which the current IP will simply become inadequate and + unusable in the near future (~2-4 years). These problems are the + exhaustion of IP class B address space, the exhaustion of IP address + space in general, and the non-hierarchical nature of address + allocation leading to a flat routing space [Dixon, 1993]. + +2.3.1 Class-B Address Exhaustion + + One of the fundamental causes of this problem is the lack of a class + of network address appropriate for a mid-sized organization. The + class-C address, with a maximum of 254 unique host addresses is to + small, while class-B, with a maximum of in excess of 65 thousand + unique host addresses is to large [Fuller, et al, 1992]. As a + result, class-B addresses get assigned even though nowhere near the + number of available addresses will ever get used. This fact, combined + with a doubling of class-B address allocation on a yearly basis lead + the Internet Engineering Steering Group (IESG) to conclude in + November, 1992 that the class-B address space would be completely + exhausted within 2 years time. At that point, class-C addresses + would have to be assigned, sometimes in multiples, to organizations + needing more than the 254 possible host addresses from a single + + + +Carlson & Ficarella [Page 4] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + class-C address [Almquist, Gross, 1992]. + +2.3.2 Routing Table Growth + + Based on research conducted by the IESG in November 1992, definite + routing table size explosion problems were identified. Namely, it was + determined that current router technology at that point could support + a maximum of 16,000 routes, which in turn could support the internet + for an additional 12 to 18 months (~May, 1994) at the then twofold + annual network growth rate. However, vendor router maximum + capabilities were in the process of being increased to 64,000 routes, + which at the two-fold annual network growth rate, could bring us an + additional 2 years of lead time, (at best bringing us to May, 1996, + and at worst to November, 1995) assuming the class-B address + exhaustion problem mentioned above could be solved in the interim + [Almquist, Gross, 1992]. + + As a short term, incremental solution to this routing table growth + problem, and to aid in the class-B address exhaustion problem the + IESG endorsed the CIDR supernetting strategy proposal (see RFC-1338 + for full details of this proposal). However, this strategy was + estimated to have a viability of approximately 3 years, at which + point the internet would run out of all classes of IP addresses in + general. Hence, it is clear that even CIDR only offers temporary + relief. However, if implemented immediately, CIDR can afford the + Internet community time to develop and deploy an approach to + addressing and routing which allows scaling to orders of magnitude + larger than the current architecture (IPng). + +3. The Problems with Change + + There are many problems, both philosophical and technical, which + greatly contribute to the difficulties associated with a large scale + change such as the one proposed in the conversion from IP to IPng. + These problems range from having to rewrite highly utilized and + entrenched user applications, such as NFS, RPC, etc, to potentially + having to invest additional capital to purchase hardware that + supports the new protocol(s). This proposal solves the urgent + internet problems listed above, while simultaneously limiting the + amounts of retraining and re- investing that the user community would + have to undertake. The TCP layer will once and for all be changed to + support a multiprotocol internet. The net affect is that while + administrators will necessarily be trained in the operations and + details of this new TCP, the much larger operator and end user + community will experience no perceptible change in service and + network usage. + + + + + +Carlson & Ficarella [Page 5] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +3.1 TCP/UDP Implementations + + Both TCP and UDP are highly dependent on the IPv4 network layer for 2 + very low level reasons. 1) a TCP/UDP socket is formed by + concatenating a network layer address (IP address) and the transport + layer TCP/UDP port number. 2) included in the TCP/UDP checksum + calculation are the IP layer source and destination addresses + mentioned above which are transferred across the TCP/IP [Postel, + 1981b] or UDP/IP [Postel, 1980] interfaces as procedure call + arguments. It should be noted at this point that the reason for such + strong dependence between the transport and network layers in TCP/IP + or UDP/IP is to insure a globally unique TCP/UDP layer address, such + that a unique connection could be identified by a pair of sockets. + The authors of this paper propose that the IP address requirement + with TCP and UDP be replaced with a globally unique transport address + (TA) concatenated with a transport layer port address. This solution + offers the capability to still maintain a globally unique address and + host unique port number with the added benefit of eliminating the + transport and network layer dependence on one another. + +3.2 User Applications + + In addition to TCP and UDP, there are a large number of firmly + entrenched higher level applications that use the IP network layer + address embedded internally, and would therefore require modification + for use with the proposed IPng network layer schemes. These + applications include, but are not limited to Network File System + (NFS), Remote Procedure Call (RPC), and File Transfer Protocol (FTP). + All of these applications should be modified to use the Internet + Domain name to identify the remote node, and not an embedded, + protocol dependent IP address. + +3.3 The Entrenched Masses + + Will users voluntarily give up their IPv4 systems to move to IPng? + It seems likely that many users will resist the change. They will + perceive no benefit and will not install the new software. Making + the local Internet contact responsible may not be feasible or + practical in all cases. Another issue is backward compatibility + issues. If a host needs to run IPng and IPv4 to support old hosts, + then 1) where is the address savings IPng promised. 2) Why change if + the host you are talking to has IPv4 anyway? + + On the other hand, replacing the existing TCP (TCPv6) with this new + version (TCPng) will benefit users in several ways. 1) Users will be + able to connect to unmodified TCPv6 hosts. 2) As nodes upgrade to + TCPng, new features will be enabled allowing TCP to communicate + effectively over high bandwidth*delay network links. 3) System + + + +Carlson & Ficarella [Page 6] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + administrators will be able to incrementally upgrade nodes as needed + or as local conditions demand. 4) Upgraded nodes may return their + IPv4 address and use an IPng address and TCP transporter function, + described later, to communicate with IPv4 hosts. + +4. Making TCP & UDP Protocol Independent + + The OSI 7 layer model specifies that each layer be independent of the + adjacent layers. What is specified is the interface between layers. + This allows layers to be replaced and/or modified without making + changes to the other layers. As was pointed out previously, the TCP + and UDP transport layers violate this precept. In the following + discussion, when we refer to TCP we mean both the TCP and UDP + protocols. The generic term transport layer and TCP will be used + interchangeably. + + Overcoming TCP's dependence on IP will require changes to the + structure of the TCP header. The developers and implementors will + also have to change the way they think about TCP and IP. End users + will also have to change the way they view the Internet. Gone will + be the days when Internet node names and IP addresses can be used + interchangeably. The goal of this change is to allow end users to + migrate from the current IPv4 network layer to an IPng layer. What + this IPng protocol is will be left to the Internet Architecture + Board/Internet Engineering Steering Group/Internet Engineering Task + Force (IAB/IESG/IETF) to decide. By adopting this proposal, the + migration will be greatly enhanced. + + One of the stated goals of the IAB is to promote a single Internet + protocol suite [Leiner, Rekhter, 1993]. While this is a laudable + goal, we should not be blinded by it. The addition of a Transport + layer address (TA) does not invalidate the IAB's stated goals. It + merely brings the implementation into compliance with standard + networking practices. The historical reasons for concatenating TCP + port numbers to IP numbers has long since passed. The increasing + throughput of transmission lines and the negligible effect of packet + overhead (see appendix A) prove this. The details of assigning and + using TA's are discussed in the next few sections. + +4.1 Transport Addressing + + A Transport Address (TA) will be assigned to the TCP transport layer + on each Internet node. The purpose of this address is to allow a TCP + on one node to communicate with a TCP on a remote node. Some of the + goals defined in developing this address are: + + 1. Fixed size -- A fixed size will make parsing easier for + decoding stations. + + + +Carlson & Ficarella [Page 7] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + 2. Minimum impact on TCP packet size -- This information + will need to be carried each TCP packet. + + 3. Global Uniqueness -- It is desirable (required) to have a + globally unique Transport Address. + + 4. Automatic Registration -- To reduce implementation + problems, an automatic registration of the TA is + desirable. + + The TA will be used when an Internet node attempts to communicate + with another Internet node. Conceptually you can view the TA as + replacing the IP number in every instance it now appears in the + transport layer (i.e., a socket would change from IP#.Port# to + TA#.Port#). A connection setup would thus be: + + 1. A user starts an application on Node-A and requests + service from Node-B. The user identifies Node-B by + referencing it's Internet Domain Name. + + 2. The TCP on Node-A makes a Domain Name Service (DNS) call + to determine the TA of Node-B. + + 3. Node-A constructs a TCP packet using the header Src = TA- + A.port and Dest = TA-B.port and passes this packet down to + the network layer. + + 4. The IP on Node-A makes a DNS call to determine the IP + address of Node-B. The IP will cache this TA/IP pair for + later use. + + 5. Node-A constructs an IP packet using the header Src = IP-A + and Dest = IP-B and passes this packet down to the Media + Access layer. + + 6. Delivery of the packet is identical to the delivery of an + existing Internet IP packet. + + 7. The IP on Node-B examines the IP Dest address and if it + matches it's own, strips off the header and passes the + data portion up to the TCP. (Note: the packet may have + passed through several IP routers between the source and + destination hosts.) + + 8. The TCP on Node-B examines the header to determine if the + Dest TA is it's own, if so it passes the data to the + application specified by the port address. If not it + determines if it should perform the transporter function. + + + +Carlson & Ficarella [Page 8] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + The packet will be forwarded toward the destination or an + error message will be returned. + + The above steps represent a quick synopsis of how user applications + may pass data between different Internet nodes. The exact structure + of the network is hidden from the application, allowing the network + to be modified and improved as needed. Using the transporter + function, several different network layers may be traversed when + moving from source to destination (several examples are provided in + appendix D). + + One of the underlying assumptions is that the user application must + refrain from making assumptions about the network structure. As + pointed out in section 3, this is not the case for the current + Internet network. User applications that are deployed with this new + TCP must be capable of making this assumption. This means that the + user application should store the Internet Domain Name in it's + internal structure instead of the IPng network number. The domain + name is globally unique and provides enough information to the system + to find the transport and network layer addresses. The user + application must pass the following parameters down to TCP: + + 1. Destination domain name (Text string) + 2. Pointer to data buffer + 3. Quality of service indicators + 4. Options + + When the user application writes data to the network, TCP will return + a nonzero integer to indicate an error condition, or a zero integer + to indicate success. When the user application reads data from the + network, TCP will deliver a pointer to a data buffer back to the + application. + + TCP will receive the users request and it will make a DNS call to + determine the destination nodes TA. If DNS returns a TA, TCP will + build a Transmission Control Block (TCB) (see the paragraph below) + and call the network layer. Otherwise, TCP will make a DNS call + looking for the destination nodes IPv4 address. If an address is + returned, TCP will takes the steps listed below in building a TCB, + and call the proper network layer. If DNS returns a host unknown + indication, exit back to the user with a "host unknown" error. TCP + should maintain a cache of domain names and addresses in lieu of + making repeated DNS calls. This feature is highly recommended, but + not required. + + The state information needed to keep track of a TCP connection is + kept in the Transmission Control Block (TCB). Currently this + structure has fields for the TCP parameters, source port, destination + + + +Carlson & Ficarella [Page 9] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + port, window size, sequence number, acknowledgment number, and any + TCP options. The network layer source and destination IP numbers are + also stored here. Finally, the status of the connection (LISTEN, + ESTABLISHED, CLOSING, of the TCP parameters and include the new + source and destination Transport addresses. The existing space for + the IPv4 addresses will be left in place to allow for backward + compatibility. The IPv4 fields will be used if the source is + communicating directly with an unmodified TCP/IP host. + + The existing status indicators will remain with their meaning + unchanged. Connection setup will retain the current 3-way handshake. + When performing transporter functions, TCP will NOT build a TCB, + unless the destination is an unmodified IPv4 host (see appendix D). + The TCP connection remains an end-to-end reliable transport service, + regardless of the number of intermediate transporter nodes. + + TCP will build an old or new header (defined below) placing the user + application data in the data field. If TCP is communicating directly + with an unmodified IPv4 host, the existing TCP header (STD 7, RFC + 793) will be used for comparability reasons. If the destination host + is an unmodified host, and an intermediate transporter node is being + used, this new TCP header must be used with the 'C' bit set to 1. + The destination TA will be set to the IPv4 address, and the packet + will be delivered to the transporter node. If the destination host + is modified with this new TCP, the destination address will be set to + the TA and the packet will be delivered, possibly through a + transporter, to the remote host. + + TCP will communicate with it's underlying network layer(s) to deliver + packets to remote hosts. The Internet Assigned Number Authority + (IANA) will assign unique identifiers to each network layer TCP will + support. TCP will maintain a cache of TA's and IANA network layers + numbers, to allow support of multiple network layers. When TCP + wishes to send data, it will consult this cache to determine which + network to send the packet to. If the destination TA is not in this + cache, TCP will send a request to each of it's network layer(s) + asking if they know how to deliver data to this TA. All of the + network layers supported by the sending host will be probed, in an + order defined by the system administrator, until one responds 'yes' + or they all have said 'no'. The first layer to say 'yes' will be + used. If no path exists, an error message will be returned to the + user application. Once a network layer is identified, TCP will + communicate with it by passing the following parameters: + + 1) Destination address (TA or IPv4). + 2) A pointer to the data buffer. + 3) Options. + + + + +Carlson & Ficarella [Page 10] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + The network layer will use the destination address as an index into a + cache to determine the network address to send to. In the entry is + not in the cache, it will make a DNS call to determine the network + address and a cache entry will be build (see appendix D). It is + mandatory that a cache be maintained. If a host is attached to + several different networks (i.e., a transporter) each layer will + maintain it's own cache. + + When IP receives a data packet from a remote node, it will strip off + the IP header and pass a pointer to the data buffer up to TCP. IP + will also supply TCP with it's IANA network layer number. TCP may + use the source TA and the IANA number to update it's cache. + + The structure of a TA is to concatenate a unique manufacture code + with a manufacturer defined variable to form a unique 64 bit number. + The unique manufacture code will be a 24 bit number, possibly the + same code as the IEEE 802.3 MAC address code. The remaining 40 bits + will be supplied by the manufacture to uniquely identify the TCP. It + is recommended that this field be built by encoding the + manufacturer's serial number. An integer serial number will be + viewed as an integer number and converted into it's hexadecimal + equivalent, left padded with 00 octets if necessary. If a serial + number contains Alpha characters, these alpha characters will be + converted into octets using the international standard ASCII code. + The integer values will then be converted to their hexadecimal + equivalent and the 2 values will be concatenated to form the unique + identifier. These structure will allow 2^24 (16,777,216) + manufactures to build 2^40 (1,099,511,627,776) transport addressable + entities. Each of these entities may have 1 or more network + interfaces using IPv4, IPng, or any other network layer protocol. + + The current growth of the Internet may indicate that this amount of + address space is inadequate. A larger fixed space (i.e., 96 or 128 + bits) or a variable length field may be required. The disadvantage + is that this address must be transmitted in every packet. + + + + + + + + + + + + + + + + +Carlson & Ficarella [Page 11] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +4.2 TCPng + + The new TCP header is as shown. + 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Destination TA + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Source TA + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination Port Number | ver | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Port Number | QoS | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Window Size | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Sequence Number + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Acknowledgment Number + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | data offset |X|X|C|A|P|R|S|F| Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / Variable length option 1 / + \ : \ + / : / + \ Variable length Option n \ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Figure 1 + + + Destination TA: 64 bits. + The Destination Transport Address. The concatenation of + the 24 bit IEEE assigned Ethernet address and the 40 bit + representation of the machines serial number for the + remote node. + + + + + +Carlson & Ficarella [Page 12] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + Source TA: 64 Bits. + The Source Transport Address. The concatenation of the + 24 bit IEEE assigned Ethernet address and the 40 bit + representation of the machines serial number for the + local node. + + Destination Port Number: 28 Bits. + Identifies the specific application on the remote node. + + Ver: 4 bits. + Version number. This is TCPng. RFC 793 + references 9 earlier editions of ARPA TCP. The current + TCP is version 10. + + Source Port Number: 28 Bits. + Identifies the specific application on the local node. + + QoS: 4 bits. + The Quality of Service parameter may be set by the user + application and passed down to a network layer that + supports different levels of service. + + Window: 32 Bits. + The number of data octets beginning with the one + indicated in the acknowledgment field which the sender + of this segment is willing to accept. + + Sequence Number: 64 Bits. + The sequence number of the first data octet in this segment + (accept when the S bit is present). If S bit is on, the + sequence number is the initial sequence number (ISN) and + the first data octet is ISN+1. (The ISN is computed using + the existing algorithm). + + Acknowledgment Number: 64 Bits. + If the A bit is set, this field contains the value of + the next sequence number the sender of this segment is + expecting to receive. Once a connection is established, + this is always sent. + + Data Offset: 8 Bits. + This is the number of 32 bit words in the TCP header. This + indicates where the data begins. The TCP header is an + integral number of 32 bit words long. The minimum value is + 12 and the maximum is 256. If options are used, they must + pad out to a 32 bit boundary. + + + + + +Carlson & Ficarella [Page 13] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + Flags: 8 Bits. + The A, P, R, S, and F flags carry the same meaning as in + the current version of TCP. They are: + + 1. A = Ack, and acknowledgment field significant + 2. P = Push, the push function + 3. R = Reset, reset the connection + 4. S = Sync, synchronize sequence numbers + 5. F = Fin, No more data from sender + + The C bit, C = Compatibility, is used to indicate that one + end of the connection is an unmodified TCP/IP host. When + the C bit is set, all header values must conform to the + TCPv6 specifications. The source port, destination port, + and window size must be 16 bits and the Sequence and + Acknowledgment numbers must be 32 bits. These values are + stored in the lower half of the proper area with null octet + pads filling out the rest of the field. + + The 2 X bits, X = Reserved, are not defined and must be + ignored by a receiving TCP. + + Checksum: 16 Bits. + The checksum field has the same meaning as in the current + version of TCP. The current 96 bit pseudo header is NOT + used in calculating the checksum. The checksum covers only + the information present in this header. The checksum field + itself is set to zero for the calculation. + + Variable Length Options: + There are two types of options, mandatory and optional. A + TCP must implement all known mandatory options. It must + also be capable of ignoring all optional options it does + not know about. This will allow new options to be + introduced without the fear of damage caused by unknown + options. An option field must end on a 32 bit boundary. + If not, null octet pad characters will be appended to the + right of the option. The structure of an option is shown + in figure 2 below: + + + + + + + + + + + + +Carlson & Ficarella [Page 14] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Option data | pad | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2 + +4.3 Mandatory Options + + There are three mandatory options defined by this implementation of + TCP. Each of these options is implemented using the structure + pictured in figure 2 above. + + A description of each field follows: + + Type: 16 bits + The type field identifies the particular option. + + Length: 16 bits + The length field represents the size of the option + data to follow, in octets. + + Option Data: Variable Length + The option data is of variable length specified by + the length field, plus 0-3 bytes of zeros to pad to a + 32-bit boundary. + + The following are the 3 mandatory options that must be implemented: + + Null: 8 bits + The null option, (type=0) is represented by the bit + sequence [00000000], preceded by an additional 8, zero + padding bits to fill out the full 16-bit type field. The + data may be of any size, including 0 bytes. The option may + be used to force an option to be ignored. + + Maximum Segment Size: 8 bits + The maximum segment size option, (type=1) is represented by + the bit sequence [00000001] preceded by an additional 8, + zero padding bits to fill out the full 16-bit type field. + If this option is present, then it communicates the maximum + receive segment size at the TCP which sends this segment. + This potion is mandatory if sent in the initial connection + request (SYN). If it is sent on any other segment it is + advisory. The data is a 32-bit word specifying the segment + + + +Carlson & Ficarella [Page 15] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + size in octets [Ullmann, 1993]. + + Urgent Pointer: 8 bits + The urgent pointer, (type=2) is represented by the bit + sequence [00000010] preceded by an additional 8, zero + padding bits to fill out the full 16-bit type field. This + option emulates the urgent field in TCPv6. The data is a + 64-bit sequence number identifying the last octet of urgent + data within the segment. + +4.4 Optional Options + + This version of TCP must be capable of accepting any unknown options. + This is to guarantee that when presented with an unrecognized option, + TCP will not crash, however it must not reject or ignore any option. + +4.5 Compatibility Issues + + The Internet community has a large installed base of IP users. The + resources required to operate this network, both people and machine, + is enormous. These resources will need to be preserved. The last + time a change like this took place, moving from NCP to TCP, there + were a few 100 nodes to deal with [Postel, 1981c]. A small close + knit group of engineers managed the network and mandated a one year + migration strategy. Today there are millions of nodes and thousands + of administrators. It will be impossible to convert any portion of + the Internet to a new protocol without effecting the rest of the + community. + + In the worst case, users will lose communications with their peers as + some systems upgrade and others do not. In the current global + environment, this will not be tolerated. Any attempt to simply + replace the current IPv4 protocol with a new IPng protocol that does + not address compatibility issues is doomed to failure. This + reasoning has recently been realized by Ullmann (CATNIP) and he + attempts to use translators to convert from one protocol to another + (i.e., CATNIP to IPv4). The problem is what to do when incompatible + parameters are encountered. Also CATNIP would need to be replaced + every time a new network layer protocol was developed. + + This proposal attempts to solve these problems by decoupling the + transport and network protocols. By allowing TCP to operate over + different network layer protocols, we will create a more stable + environment. New network layer protocols could be developed and + implemented without requiring changes that are visible to the user + community. As TCP packets flow from host-to-host they may use + several different network layers, allowing users to communicate + without having to worry about how the data is moved across the + + + +Carlson & Ficarella [Page 16] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + underlying network. + +4.5.1 Backward Compatibility + + It may be said that the maturity of a software package can be + determined by how much code is required to maintain compatibility + with previous versions. With the current growth of the Internet, + backward compatibility issues can not be dismissed or added in as an + after thought. This version of TCP was designed with backward + compatibility in mind. When the TCP communicates with an unmodified + IPv4 TCP/IP, it takes steps to insure compatibility. First off it + sets a bit in the header indicating that the TCP parameters (ack, + seq, port numbers, and window size) use the TCPv6 values. When + communicating directly with an unmodified host the existing TCP/IP + header is used. Only existing TCP options may be sent as well. + + The advantage of this approach is that TCP transporter nodes will not + have to make decisions about how to modify packets just passing + through. It is up to the source node to build a header that is + compatible before sending it. This approach will allow any new TCP + to contact and communicate with any unmodified IPv4 host. The source + host may have an IPv4 address, or it may send data to a transporter + for delivery. The decision will be made based on the source and + destination addresses. During connection setup, the location of the + destination node is determined and the proper network layer is used + to send data. + + An existing IPv4 host will be capable of opening a connection to any + new TCPng host that is directly connected to the network with an IPv4 + protocol stack. If the TCPng host only has an IPng stack, the + connection attempt will fail. Some existing batch style services + (i.e., Simple Mail Transfer Protocol - SMTP) will continue to work + with the help of transporters. Interactive sessions (i.e., Telnet) + will fail. Thus, our new TCP is backward compatible, but the + existing IPv4 hosts are not forward compatible. + +4.6 Level 4 Gateways + + The ability to allow hosts with differing network layer protocols to + communicate will be accomplished by using a transport layer gateway + (called transporter in this paper). The transporter works just like + an IP router, receiving TCP packets from one network layer and + transporting them over to another. This switching is done by + examining the packets source and destination TA's. If a TCP packet + arrives with a destination TA that differs from this hosts TA, and + the transporter functionality is enabled, the packet should be + transported to another network layer. In some cases, the receiving + node is a host and not a transporter (i.e., transporter functionality + + + +Carlson & Ficarella [Page 17] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + disabled). In this case the host will discard the packet and return + a TCMP (see below) error message. + + A transporter is not responsible for reading or formatting the TCP + header of packets it receives. The header is simply examined to + determine where to deliver the packet. When forwarding, the packet + is sent to any of the network layers the transporter supports. The + exception is that the packet may not be presented back to the network + it was received from. It is the responsibility of the network layer + to destroy undeliverable packets. If a transporter is unable to + determine which network the packet should be forwarded to, the packet + is discarded and a TCMP message is generated and returned to the + original source host. Several examples of how transporting works are + presented in appendix D. + +4.7 Error Conditions + + It is recognized that from time to time certain error conditions will + occur at some intermediate transporter that will need to be + communicated back to the source host. To accomplish this a Transport + Control Message Protocol (TCMP) service facility will need to be + developed. This protocol will model itself after the Internet + Control Message Protocol (ICMP). The operational details are + discussed in a separate TCMP document. + +5. Advantages and Disadvantages of this approach + + This proposal offers the Internet community several advantages. + First, TCPng will operate over multiple network layer protocol + stacks. Users will be able to select the stack(s) that meets their + needs. The problem of IPv4 address exhaustion will be postponed as + sites move from IPv4 to IPng protocol stacks. Future IP3g protocol + stacks may be designed and deployed without major service + disruptions. The increased size of the sequence, acknowledge, and + window fields will allow applications to run effectively over high + bandwidth-delay network links. Lastly, TCPng will allow applications + to specify certain Quality of Service (QoS) parameters which may be + used by some network layer protocols (i.e., Asynchronous Transfer + Mode - ATM). + + This protocol is not without it's share of design compromises. Among + these are a large packet header increased in size from 5 to 12 long + words. The addition of a TA means that network administrators must + deal with yet another network number that must be globally + maintained. Multiple network protocols may add to the complexity of + a site's network. Lastly, is the TA address space large enough so we + will not have to rebuild TCP. + + + + +Carlson & Ficarella [Page 18] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +6. Conclusions + + In this paper, we have reviewed the current status of the Internet + society s IPng initiative. We were struck by the enormity of the + changes required by those proposals. We felt that a different + approach was needed to allow change to occur in a controlled manner. + This approach calls for replacing the current TCP protocol with one + that does not require a specific IP layer protocol. Once this is in + place, various IPng protocols may be developed and deployed as sites + require them. Communications between IPv4 and IPng hosts will be + maintained throughout the transition period. Modified hosts will be + able to remove their IPv4 protocol stacks, while maintaining + communications with unmodified hosts by using a TCP transporter. + + The title of this paper "Six Virtual Inches to the Left" comes from a + talk the author once heard. In this talk an engineer from Control + Data Corporation (CDC) told a story of CDC's attempt to build a + cryogenically cooled super computer. The idea being that the power + consumption of such a computer would be far lower then that of a + conventional super computer. As the story goes, everyone thought + this was a great idea until someone pointed out what the power + requirements of the cryo system were. The result was that all the + assumed power savings were consumed by the cryo system. The + implication being that all the power requirements were not saved but + simply moved 6 feet from the CPU to the support equipment. The moral + being that the entire system should be analyzed instead of just one + small piece. + +References + + [Postel, 1981a] Postel, J., "Transmission Control Protocol - DARPA + Internet Program Protocol Specification", STD 7, RFC 793, DARPA, + September 1981. + + [Halsal, 1992] Data Communications, Computer Networks, and Open + Systems. + + [Meyer, Zobrist, 1990] TCP/IP versus OSI, The Battle of the + Network Standards, IEEE Potentials. + + [Braden, et al, 1991] Clark, D., Chapin, L., Cer, V., Braden, R., and + R. Hobby, "Towards the Future Internet Architecture", RFC 1287, + MIT, BBN, CNRI, ISI, UCDavis, December 1991. + + [Dixon, 1993] Dixon, T., "Comparison of Proposals for Next Version of + IP", RFC 1454, RARE, May 1993. + + + + + +Carlson & Ficarella [Page 19] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + [Fuller, et al, 1992] Fuller, V., Li, T., Yu, J., and K. Varadhan, + "Supernetting: an Address Assignment and Aggregation Strategy", + RFC 1338, BARRNet, cicso, Merit, OARnet, June 1992. + + [Almquist, Gross, 1992] Gross, P., and P. Almquist, "IESG + Deliberations on Routing and Addressing", RFC 1380, IESG Chair, + IESG Internet AD, November 1992. + + [Postel, 1981b] Postel, J., "Transmission Control Protocol - DARPA + Internet Program Protocol Specification", STD 7, RFC 793, DARPA, + September 1981. + + [Postel, 1980] Postel, J., "User Datagram Protocol", STD 6, RFC 768, + USC/Information Sciences Institute, August 1980. + + [Postel, 1981c] Postel, J., "NCP/TCP Transition Plan", RFC 801, + USC/Information Sciences Institute, November 1981. + + [Leiner, Rekhter, 1993] Leiner, B., and Y. Rekhter, "The + Multi-Protocol Internet" RFC 1560, USRA, IBM, December 1993. + + [Ullmann, 1993] Ullmann, R., "TP/IX: The Next Internet", RFC 1475, + Process Software Corporation, June 1993. + +Bibliography + + Gilligan, Nordmark, and Hinden, "The SIPP Interoperability and + Transition Mechanism", IPAE, 1993. + + Jacobson, V., and R. Braden, "TCP Extensions for Long-Delay Paths", + RFC 1072, LBL, USC/Information Sciences Institute, October 1988. + + Jacobson, V., Braden, R., and D. Borman, "TCP Extensions for High + Performance", RFC 1323, LBL, USC/Information Sciences Institute, Cray + Research, May 1992. + + Jacobson, V., Braden, R., and L. Zhang, "TCP Extension for High-Speed + Paths", RFC 1185, LBL, USC/Information Sciences Institute, PARC, + October 1990. + + Leiner, B., and Y. Rekhter, "The Multiprotocol Internet", RFC 1560, + USRA, IBM, December 1993. + + O'Malley, S., and L. Peterson, "TCP Extensions Considered Harmful", + RFC 1263, University of Arizona, October 1991. + + Westine, A., Smallberg, D., and J. Postel, "Summary of Smallberg + Surveys", RFC 847, USC/Information Sciences Institute, February 1983. + + + +Carlson & Ficarella [Page 20] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +Appendix A + + The minimum size of an ethernet frame is 64 bytes. With the existing + TCP/IP protocol, a minimum size frame is 18 bytes (ethernet header & + trailer) + 20 bytes (IP header) + 20 bytes (TCP header) for a total + of 58 bytes. The transmitting station must add 6 null pad characters + to this frame to make it conform to the 64 byte minimum. This new + TCP will increase the size of the TCP header to 48 bytes. + Subtracting 26 bytes (the old header and pad characters) we are left + with 22 bytes or 176 bits. The time it takes to transmit these + additional bits is the impact of this new TCP. The transmission time + for several types of media currently used is shown in the table + below. You will note that the increased times are all under 20 + micro-seconds for anything over T1 speeds. User traffic patterns + vary of course but it is generally agreed that 80% of the traffic + stays at the local site. If this is true then the increased header + size has a negligible impact on communications. + + + Media Speed (Mbps) Rate (nsec/bit) time (usec) + ------ ------------ --------------- ---------- + T1 1.544 647.7 144.00 + T3 44.736 22.4 3.91 + Enet 10.00 100.0 17.60 + FDDI 100.00 10.0 1.76 + OC-1 51.84 19.3 3.40 + OC-3 155.52 6.4 1.13 + +Appendix B + + In order to support the TA, new DNS entries will need to be created. + It is hoped that this function will be accomplished automatically. + When a station is installed, the local DNS server is defined. On + power up, the station will contact this server and send it it's TA + and domain name. A server process will be listening for this type of + information, and it will collect the data, run an authorization + check, and install the TA into the DNS server. The following entry + will be made. + + node.sub.domain.name IN TA xx.yy.zz.aa.bb.cc.dd.ee + + ee.dd.cc.bb.aa.zz.yy.aa.in-addr.tcp IN PTR node.sub.domain.name. + + Using these entries, along with the existing DNS A records, a + requesting node can determine where the remote node is located. The + format xx.yy.zz is the IEEE assigned portion and aa.bb.cc.dd.ee is + the encoded machine serial number as described in section 4.1. + + + + +Carlson & Ficarella [Page 21] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +Appendix C + + Proposed UDP Header + + + 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Destination TA + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + Source TA + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination Port Number | ver | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Port Number | QoS | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Length | Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + / Data / + \ : \ + / : / + \ : \ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Destination TA: 64 bits. + The Destination Transport Address. The concatenation of + the 24 bit IEEE assigned Ethernet address and the 40 bit + representation of the machines serial number for the remote + node. + + Source TA: 64 Bits. + The Source Transport Address. The concatenation of the 24 + bit IEEE assigned Ethernet address and the 40 bit + representation of the machines serial number for the local + node. + + Destination Port Number: 28 Bits. + Identifies the specific application on the remote node. + + Ver: 4 bits. + + This parameter the UDP version number in use within this + packet. + + + + +Carlson & Ficarella [Page 22] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + Source Port Number: 28 Bits. + Identifies the specific application on the local node. + + QoS: 4 bits. + The Quality of Service parameter may be set by the user + application and passed down to a network layer that + supports different levels of service. + + Length: 16 bits + The length parameter represents the length of the data area + in octets. This value will be set to zero if no data is + sent within this packet. + + Checksum: 16 bits + The checksum parameter has the same meaning as in the + current version of UDP. The current 96 bit pseudo header + is NOT used in calculating the checksum. The checksum + covers only the information present in this header. The + checksum field itself is set to zero for the calculation. + + Data: Variable + This is the area in which the data for the datagram will be + sent. The length of this data in octets is specified by + the length parameter above. + + + + + + + + + + + + + + + + + + + + + + + + + + + +Carlson & Ficarella [Page 23] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +Appendix D + + + ______ ______ + | | | | + | H1 | | H2 | + | | | | + |______| |______| + \ / \ + \ / \ + ========================= / \ + " "/ | + " (SIPP) " | + " " | + "=========================" | + | + ==================== + ______ " " + | | " CLNP " + | H4 | " " + | | "====================" + |______| | + \ | + \ | + =================== ___|___ + " " | | + " "-------| H3 | + " IPv4 " | | + " " |_______| + "==================" + + + Example 1: H1 Wishes to Establish Communication with H4 (Refer to the + figure above.) + + 1. A user on host H1 attempts to communicate with a user + on host H4 by referencing H4 s fully qualified domain name. + + 2. The TCP on H1 makes a DNS call to determine the TA + address of H4. + + 3. The DNS call returns only the IPv4 address since H4 is + determined to be an IPv4 only host. + + 4. The H1 TCP builds a transmission control block (TCB) + setting the C-Bit (compatibility) "ON" since H4 is an IPv4 + host. Included in the TCB will also be DA = IP-H4, SA = + TA1, DP = 1234, SP = 5000 and any state parameters + + + +Carlson & Ficarella [Page 24] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + describing the connection (port numbers are for example + purposes only). + + 5. The IP on H1 makes a DNS call to determine the network + IP address of H4 and correspondingly caches both the TA + address from the TCP as well as the network IP address for + later use. + + 6. The packet is now routed using standard SIPP procedures + to H2 this is the only path H1 has to H4. + + 7. H2 receives the packet from H1. The TCP on H2 checks + the destination TA of the packet and compares it to its + own. In this case it does not match, therefore the packet + should be forwarded. + + 8. H2 s TCP will interrogate the supported network + layer(s) and determines the packet must be forwarded to H3. + + 9. The TCP must now pass the packet the CLNP network + layer. The network layer checks its cache to determine if + there is a route specified for DA = IP-H4 already in the + cache. If so the cache entry is used, if not an entry is + created. H2 then routes the packet to H3 via NA3a, which + is the network layer address for IP-H4. + + 10. H3 receives the packet from H2. The TCP on H3 checks + the destination TA of the packet and compares it to its + own. Once again, it does not match. + + 11. H3, realizing that the destination address is an IPv4 + host, and knowing that it itself is directly connected to + the IPv4 network constructs an IPv4 compatible header. H3 + also constructs a TCB to manage the IPv4 connection. + + 12. The packet is sent down to be routed to the IP using + standard IP routing procedures. + + 13. H4 receives the packet at which point the IP on it + determines that the destination address is its own and thus + proceeds to strip off the IP header and pass the packet up + to the TCP layer. + + 14. The TCP layer than opens the corresponding IPV4_DP + port (2311) which forms the first half of the connection to + the application. + + + + + +Carlson & Ficarella [Page 25] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + + 15. H4 will now reply with a connection accept message, + sending the packet back to H3. + + 16. H3 s TCP receives the packet and based on information + in the TCB determines the packet should be delivered to H1. + H3 uses the steps outlined above to route the packet back + through the network structure. + + Example 2: H2 Wishes to Establish Communication with H3 (Refer to the + figure above.) + + 1. A user on host H2 attempts to communicate with a user + on host H3 by referencing H3 s fully qualified domain name. + + 2. The TCP on H2 makes a DNS call to determine the TA + address of H3. + + 3. The DNS call returns the TA address for H3. + + 4. The H2 TCP builds a transmission control block (TCB) + setting the C-Bit (compatibility) "OFF" since H3 is an IPng + host. Included in the TCB will also be DA = TA3, SA = TA2, + DP = 1111, SP = 2222 and any state parameters describing + the connection (port numbers are for example purposes + only). + + 5. The IPng on H2 makes a DNS call to determine the + network IPng address of H3 and correspondingly caches both + the TA address from the TCP as well as the network IPng + address for later use. + + 6. The packet is now routed to H3 over the IPng supported + on that network. + + 7. H3 receives the packet from H2. The TCP on H3 checks + the destination TA of the packet and compares it to its + own. In this case it matches. + + 8. H3 s TCP will construct a TCB and respond with an open + accept message. + + 9. H3 s TCP will interrogate the supported network + layer(s) to determine the packet must be delivered to H2 + using NA2b which is specified in its cache. + + + + + + + +Carlson & Ficarella [Page 26] + +RFC 1705 Six Virtual Inches to the Left: IPng Problems October 1994 + + +Security Considerations + + Security issues are not discussed in this memo. + +Authors' Addresses + + Richard Carlson + Argonne National Laboratory + Electronics and Computing Technologies + Argonne, IL 60439 + + Phone: (708) 252-7289 + EMail: RACarlson@anl.gov + + + Domenic Ficarella + Motorola + + Phone: (708) 632-4029 + EMail: ficarell@cpdmfg.cig.mot.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Carlson & Ficarella [Page 27] + -- cgit v1.2.3