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.