diff options
Diffstat (limited to 'doc/rfc/rfc1682.txt')
-rw-r--r-- | doc/rfc/rfc1682.txt | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc1682.txt b/doc/rfc/rfc1682.txt new file mode 100644 index 0000000..56777dc --- /dev/null +++ b/doc/rfc/rfc1682.txt @@ -0,0 +1,563 @@ + + + + + + +Network Working Group J. Bound +Request for Comments: 1682 Digital Equipment Corporation +Category: Informational August 1994 + + + IPng BSD Host Implementation Analysis + +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 IPng white paper, IPng BSD Host Implementation Analysis, + was submitted to the IPng Directorate to provide a BSD host point of + reference to assist with the engineering considerations during the + IETF process to select an IPng proposal. The University of + California Berkeley Software Distribution (BSD) TCP/IP (4.3 + 4.4) + system implementation on a host is used as a point of reference for + the paper. + + This document only reflects the author's personal analysis based on + research and implementation experience for IPng, and does not + represent any product or future product from any host vendor. Nor + should it be construed that it is promoting any specific IPng at this + time. + +Acknowledgments + + The author would like to acknowledge the many host implementation + discussions and inherent knowledge gained from discussions with the + following persons within Digital over the past year: Peter Grehan, + Eric Rosen, Dave Oran, Jeff Mogul, Bill Duane, Tony Lauck, Bill Hawe, + Jesse Walker, John Dustin, Alex Conta, and Fred Glover. The author + would also like to acknowledge like discussions from outside his + company with Bob Hinden (SUN), Bob Gilligan (SUN), Dave Crocker + (SGI), Dave Piscitello (Core Competence), Tracy Mallory (3Comm), Rob + Ullmann (Lotus), Greg Minshall (Novell), J Allard (Microsoft), Ramesh + Govinden (Bellcore), Sue Thompson (Bellcore), John Curran (NEARnet), + + + +Bound [Page 1] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + Christian Huitema (INRIA), and Werner Volgels (INESC). The author + would also like to thank Digital Equipment Corporation for the + opportunity to work on IPng within the IETF as part of his job. + +1. Introduction + + A host in the context of this white paper is a system that contains + an operating system supporting a network subsystem as one of its + parts, and an interprocess communications facility to access that + network subsystem. These hosts are often referenced as a + Workstation, Server, PC, Super Computer, Mainframe, or an Embedded + System (Realtime Devices). + + IPng will require changes to a hosts network software architecture. + Those changes should be as transparent as possible to the existing + IPv4 applications executing on hosts. + + After discussing the network software architecture for a BSD host the + paper will discuss the perceived network software alterations, + extended capabilities, transition software, and a deployment + consideration for IPng hosts. + + The inclusive OR of all IPng proposals was used to develop the + engineering considerations discussed in this paper. + +2. Network Software Architecture + + The BSD host network software architecture consists essentially of + three components: the interprocess communications facility, the + network communications subsystem, and the network protocols + supported. These three components are tightly coupled and must be + integrated in a way that affords high performance for the + applications that are dependent on these components to interoperate + efficiently. A BSD host implementation view of the TCP/IP protocol + suite is depicted in the following network architecture diagram. + + + + + + + + + + + + + + + + +Bound [Page 2] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + +-----------------------------------------------------------------+ + | Application Layer | + | | + | Socket and Network Library APIs | + | | + | BIND DNS | + | SNMP Management | + | User Space | + +-----------------------------------------------------------------+ + | Kernel Space AF_INET | + | Communications Domain | + | Socket Layer | + | | + | Transport Layer TCP & UDP | + | Queues/Control | + | Blocks | + | Network Layer | + | +-----------------------------------+ | + | | IPv4 Modules Discovery Multicast | | + | | ICMP IGMP | | + | | Routing | Routing | + | | RIP EGP | Tables | + | | OSPF BGP | | + | | I-IS-IS IDRP | | + | +-----------------------------------+ | + | Link Dependent Layer | + | +-----------------------------------+ | + | | ARP, RARP, InARP, NCPs, Addr Tbls | | + | +-----------------------------------+ | + | Discovery & Interface | + | Cache | + | Data Link Layer | + | +-----------------------------------+ | + | | Ethernet, FDDI, ATM, HIPPI, PPP | | + | +-----------------------------------+ | + +-----------------------------------------------------------------+ + +2.1 Interprocess Communications Facility + + The interprocess communications (IPC) facilities includes three + critical parts: + + 1. The IPC mechanism to the network communications subsystem. + 2. The ability to access a network protocol set within that + subsystem. + 3. The structures supporting the network communications + subsystem. + + + + +Bound [Page 3] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + The IPC facility has two implementation parts. The part in user + space and the part in kernel space within the operating system. This + is often not differentiated and why in the previous network + architecture diagram you will see sockets in both user and kernel + space. An IPC supports in user space an application program + interface (API) which application developers use to access the + network communications features of the host. These APIs have + corresponding functions in the kernel space which execute the + functions requested by the user space requests through the APIs. + + The sockets paradigm on a BSD host defines the data structure of the + network address within a selected protocol family (communications + domain) in the network subsystem. This data structure consists of an + address family, a port for the protocol selected, and a network + address. + + The IPC facility on a host is dependent upon its interface to the + BIND DNS application which is the defacto method when using TCP/IP to + retrieve network addresses. + + Other interfaces that may be required by applications to properly set + up the network connection within the IPC facility include: + setting/getting options for the protocols used, obtaining/accessing + information about networks, protocols, and network services, and + sending/transmitting datagrams. + +2.2 Network Communications Subsystem + + The network communications subsystem consists of the following + generic parts as depicted in the previous network architecture + diagram: transport layer, network layer, link dependent layer, and + data link layer. These may not be implemented as true distinct + layers on a BSD host, but they are referenced in this white paper in + that manner for purposes of discussion. + + The transport layer supports the application interface into the + network communications subsystem and sets up the parametric pieces to + initiate and accept connections. The transport layer performs these + functions through requests to the lower layers of the network + communications subsystem. The transport layer also supports the + queues and protocol control blocks for specific network connections. + + The network layer supports the modules to build and extend the + network layer datagram, the control protocol datagrams, and the + routing abstraction on the host. This layer of the network + communications subsystem on a BSD host is often extended to provide + both interior and exterior routing functionality. + + + + +Bound [Page 4] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + The link dependent layer supports the modules that provide an + interface for the network communications subsystem to map network + addresses to physical addresses, and build the necessary cache so + this information is available to the host network software. + + On a BSD host the network layer and link dependent layer together + provide system discovery for hosts and routers. + + The data link layer supports the modules that define the structures + for communicating with the hardware media used by the host on the + local network. + +2.3 Network Protocols + + The TCP/IP protocol suite as defined by the IETF RFC specifications + are the set of network protocols used by this white paper for + reference. + +3. Network Software Alterations + + The IPng network software alterations to a BSD host perceived at this + time are as follows: + + 1. Applications Embedding IPv4 Addresses. + 2. Transport Interfaces and Network APIs. + 3. Socket Layer and Structures. + 4. Transport Layer. + 5. Network Layer Components. + 6. Link dependent Layer. + +3.1 Applications Embedding IPv4 Addresses + + Internet style applications in this white paper are the set of + protocols defined for an end user using TCP/IP to exchange messages, + transfer files, and establish remote login sessions. + + Applications use the sockets network APIs to maintain an opaque view + of the network addresses used to support connections across a + network. Opaque in this context means that the application determines + the network address for the connection and then binds that address to + a socket. The application then uses the reference defined for that + socket to receive and transmit data across a network. + + An application that embeds an IPv4 network address within its + datagram has made an underlying assumption that the format of that + address is permanent. This will cause a great problem when IPng + causes addresses to change. Thus far only one Internet style + application has been determined to cause this problem and that is FTP + + + +Bound [Page 5] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + [1,2]. + +3.2 Transport Interfaces and Network APIs + + The transport interface and network API enhancements that must take + place on a BSD host because of IPng are alterations that affect the + size of the network address used by the socket data structure. + Depending on how this is implemented on the host, supporting both + IPv4 and IPng could require existing IPv4 applications to be + recompiled. In the worst case it could require modifications to the + existing IPv4 applications software that accesses the network + communications subsystem. + + There will have to be enhancements to the network APIs that an + application uses to retrieve BIND DNS records to differentiate + between IPv4 and IPng address requests. + + The network API enhancements and how they are implemented will affect + the capability of any IPng proposal on a BSD host to be able to + interoperate between an IPv4 only, an IPng only, and an IPng-IPv4 + host system. + + Depending on the IPng proposal selected the network options, + services, and management objects will have to be extended at the + transport interface so those features can be accessed by applications + software. + +3.3 Socket Layer and Structures + + The socket layer and structures will require changes to support any + IPng proposals network address. In addition new or removed options + and services will need to be incorporated into the socket abstraction + within the network communications subsystem. + +3.4 Transport Layer + + The transport layer will need to be modified to support any new or + removed services proposed by an IPng solution set. The transport + layer will become more overloaded to support the binding of either + the IPv4 or IPng network layer components to differentiate the + services and structures available to a host application. The + overload will also take place to support functionality removed in the + network layer and moved to the transport layer if proposed by an IPng + solution. + + It will also take some design thought to implement IPng so the + hundreds of man years invested in performance improvements in the + host transport layer are maintained. This must be analyzed in depth + + + +Bound [Page 6] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + and should be part of the operational testing of any IPng proposal. + +3.5 Network Layer Components + + The network layer components for IPng will require the greatest + alterations on a host. In addition a host will be required to + maintain an integrated network layer below the transport layer + software to support either the IPng or IPv4 network layer and + associated components. + + Depending on the IPng selected the host alterations to the network + layer components will range from complete replacement with new + protocols to extensions to existing IPv4 network layer protocols to + support IPng. + + All IPng proposals will affect the BSD host routing abstraction to + maintain host software that supports interior and exterior routing. + Depending on the proposal selected those changes can cause either a + complete new paradigm or an update to the existing IPv4 paradigm. + + System discovery of nodes on the local subnetwork or across an + internetwork path in all IPng proposals will require changes to the + BSD host software network layer component. + +3.6 Link dependent Layer + + The link dependent layer on a host will need to accommodate new IPng + addresses and the system discovery models of any IPng proposal. + +4. Extended Capabilities with IPng + + Extended capabilities that could be implemented by BSD hosts are + listed below. Many of these capabilities exist today with IPv4, but + may require changes with the implementation of IPng. Some of them + will be new capabilities. + +4.1 Autoconfiguration and Autoregistration + + Today hosts can provide autoconfiguration with DHCP using IPv4 + addresses. IPng hosts will be faced with having to provide support + for existing IPv4 addresses and the new IPng addresses. In addition + the boot-strap protocol BOOTP used to boot minimal BSD host + configurations (e.g., diskless nodes) will need to be supported by + IPng hosts. + + + + + + + +Bound [Page 7] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + +4.2 PATH MTU Discovery + + PATH MTU discovery appears to be something each proposal is + considering. Alterations to the existing implementation of PATH MTU + are perceived because changes are expected in system discovery. + +4.3 Multicast + + Each proposal has depicted alterations to Multicast that will affect + present BSD host implementations of IPv4 Multicast. In addition it + appears that the IPv4 unicast broadcast will be replaced by a + multicast broadcast. + +4.4 Flow Specification and Handling + + This will be an extended capability proposed by all IPngs'. + +4.5 System Discovery + + Each proposal has depicted a new model for IPng system discovery of a + host. + +4.6 Translation and Encapsulation + + The routing abstraction in a BSD host will have to deal with the + affect of any translation or encapsulation of network layer + datagrams, if they are required by an IPng. + +4.7 Network Layer Security + + It is perceived that network layer security will be required at the + network layer component of IPng and this will have to be implemented + by a BSD host. + +4.8 Socket Address Structure + + The network kernel socket address structure will change because of + IPng. + +4.9 Network APIs + + The network APIs for a BSD host will have to be enhanced to support + IPng. In addition any new options available to the applications + because of the IPng network service will have to be added as an + option to the APIs. + + + + + + +Bound [Page 8] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + +4.10 Network Management + + Network management for IPng will have to support new network objects + as defined by the IPng proposal. In addition the data structures in + the BSD host network kernel used as information to display network + topology will be altered by a new network layer datagram and + associated components. + +5. Transition Software + + Transition software in this white paper references the network + software alterations on a host to support both IPv4 and IPng for + applications and the hosts operating system network kernel. It is + the subject of another set of papers to identify the transition + software required by network managers to transition their users from + IPv4 to IPng. + + Transition software on a host will be required to maintain + compatibility between IPv4 and IPng, and to manage both the existing + IPv4 and IPng environments as follows: + + 1. BIND DNS record updates and handling by the application. + 2. SNMP management interface and monitoring of host network + structures. + 3. APIs supporting IPv4 and IPng differentiation for the + application. + 4. Defacto network tools altered (e.g., tcpdump, traceroute, + netstat). + 5. ARP to new system discovery. + 6. BOOTP diskless node support for IPng. + 7. DHCP integration with IPng Autoconfiguration. + 8. Routing table configuration on the BSD host (e.g., routed, + ifconfig). + 9. Selection of the network layer (IPv4 or IPng) at the + transport layer. + 10. New options and services provided by an IPng protocol. + 11. IPv4 and IPng routing protocols in the network layer. + 12. IPv4 and IPng system discovery in the network layer. + + These are only the highlights of the transition software that a host + will have to deal with in its implementation of IPng. The host + network architecture diagram depicted previously will require + software enhancements to each label in the diagram. + + It is very important that each IPng proposal provide a specification + for a transition plan from IPv4 to IPng and their technical criteria + for the interoperation between IPv4 and IPng. + + + + +Bound [Page 9] + +RFC 1682 IPng BSD Host Implementation Analysis August 1994 + + + It should also be a requirement that existing IPv4 applications not + have to be recompiled when a host has implemented both an IPv4 and an + IPng network layer and associated components. + + It is very desirable that when a host implements both an IPv4 and an + IPng network layer and associated components that there is no + performance degradation on the host compared to the performance of an + existing IPv4 only host. + + It should not be a requirement by IPng that a host must support both + an IPv4 and an IPng network layer. + +6. A Deployment Consideration + + Complete and extensive technical specifications must be available for + any IPng proposal, and a selection of any proposal must accommodate + multiple implementations. The IPng Directorate should review proposed + specifications for completeness. + + It is important that the IPng Directorate determine how long the CIDR + IPv4 address plan can extend the life of IPv4 addresses on the + Internet. This variable can affect the time we have to deploy IPng + and the proposed transition plans. + +References + + [1] Gilligan, B., et. al., "IPAE: The SIPP Interoperability and + Transition Mechanism", Work in Progress. + + [2] Piscitello, D., "FTP Operation Over Big Address Records + (FOOBAR)", RFC 1639, Core Competence, Inc., June 1994. + +Security Considerations + + Security issues are discussed in Section 4.7. + +Author's Address + + Jim Bound + Digital Equipment Corporation + 110 Spitbrook Road ZK3-3/U14 + Nashua, NH 03062-2698 + + Phone: +1 603 881 0400 + EMail: bound@zk3.dec.com + + + + + + +Bound [Page 10] + |