ljm@TWG.COM (Leo J McLaughlin) (12/14/88)
The Wollongong Group L. J. McLaughlin III December 1988 A Standard for the Transmission of Internet packets over IPX networks Status of this Memo This document specifies a standard method of encapsulating Internet packets such as Internet Protocol[1] (IP) datagrams on networks supporting the Internet Packet Exchange Protocol[2] (IPX). Distribution of this memo is unlimited. Introduction The goal of this specification is to allow compatible and interoperable implementations for transmitting Internet packets over IPX networks. IPX is a proprietary standard developed by Novell derived from Xerox's Internet Datagram Protocol[3]. This standard specifies a means of transmitting and receiving datagrams on a Novell network. Description In general, IPX networks may be used to support Internet networks of any type. More specifically, IPX networks may be used to support IP networks and subnets[4] of any class. By means of encapsulating IP datagrams within IPX datagrams and assigning IP numbers to the hosts on a IPX network, IP-based applications are supported on these hosts. The addition of an IP Gateway capable of encapsulating IP packets within ordinary data-link protocols (such as 802.3[5]) as well as within IPX datagrams allows these IPX hosts to communicate with the Internet. Address Mappings This implementation does not use the Internet Datagram Protocol network field. It instead relies on NetWare Internetwork Bridges to deliver broadcast-based address resolution protocols such as ARP[6] to determine network addresses. Maximum Transmission Unit The maximum data size of a IPX datagram is 576 bytes. Due to the encapsulation scheme utilized, this results in a Maximum Transmission Unit (MTU) for IP over IPX networks of 562 bytes. Implementation Prepended to each Internet packet is a standard Ethernet[7] frame containing the physical destination and source addresses of the packet as well as the type field. A typical IP over IPX packet is shown below: -------------------- | data-link header | |------------------| | IPX header | |------------------| | Ethernet frame | |------------------| | IP header | |------------------| | TCP header | |------------------| | TCP data | -------------------- To support the transmission and reception of Internet datagrams on an IPX host, the initialization code must: 1) Find the physical hardware address of the host using the IPX function 'Get Internetwork Address' (0x09). 2) Open IPX socket IPSOCK for the reception and transmission of Internet packets using IPX function 'Open Socket' (0x00h). 3) Submit a listen request on the IPSOCK socket with IPX function 'Listen for Packet' (0x04). When a IPX datagram is recieved, it is processed by the protocol stack and another Listen for Packet request is submitted. When an Internet packet is sent, the physical destination address of the Ethernet field is copied into the IPX physical destination address field, and the packet it is placed in the data space of the IPX datagram and sent using the IPX 'Send Packet' (0x03) function. Finally, when the Internet support for a given IPX host is discontinued, the INTSOCK socket should be closed with the 'Close Socket' (0x01) function. Novell has reserved the IPX socket number 0x8062 (INTSOCK) for the transmission and reception of Internet packets over IPX networks. References [1] J. Postel, "Internet Protocol", RFC-791, September 1981. [2] Novell, Inc., "Advanced NetWare V2.0 Internetwork Packet Exchange Protocol (IPX)", March 1986. [3] Xerox Corporation, "Xerox Network Systems Architecture", XNSG 068504, April 1985. [4] J. Mogul, "Internet Standard Subnetting Procedure", RFC-950, August 1985. [5] J. Postel, "A Standard for the Transmission of IP datagrams over IEEE 802 Networks", RFC-1042, February 1988. [6] D. Plummer, "An Ethernet Address Resolution Protocol", RFC-826, November 1982. [7] Xerox Corporation, "Xerox Network Systems Architecture", XNSG 068504, April 1985.