📄 rfc1791.txt
字号:
RFC 1791 TCP And UDP Over IPX April 1995
Appendix A.1 - TCP/IPX Packet Format
A TCP/IPX Packet has following format:
+-------+-------+-------+-------+
| IPX Checksum | IPX Pkt Len |
+-------+-------+-------+-------+
| Zero |IPX PT | IPX Dest -
+-------+-------+-------+-------+
Network | IPX Dest -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
| IPX Dest Skt | IPX Src -
+-------+-------+-------+-------+
Network | IPX Src -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
| IPX Src Skt | TCP Header and
+---------------+-------+-------+
Data...
+----...
IPX PT field contains the IPX packet type. It is set to 4 for
TCP/IPX packet.
Both Src Skt and Dest Skt field in IPX header must be set to 0x9091
for TCP/IPX packet. If the Src Skt is not set to 0x9091, the
receiving TCP/IPX should discard the packet silently. (And increment
tcpInErrs mib object if it is instrumented.)
Sung [Page 7]
RFC 1791 TCP And UDP Over IPX April 1995
Appendix A.2 - TCP/IPX Pseudo Header Format
TCP/IPX uses following pseudo header to compute checksum:
+-------+-------+-------+-------+
| IPX Src Network |
+-------+-------+-------+-------+
| IPX Src Node
+-------+-------+-------+-------+
| IPX Src Skt |
+-------+-------+-------+-------+
| IPX Dest Network |
+-------+-------+-------+-------+
| IPX Dest Node
+-------+-------+-------+-------+
| IPX Dest Skt |
+-------+-------+-------+-------+
| Zero | TCP Length |
+---------------+---------------+
IPX Src/Dest Network/Node/Skt are the fields from the IPX header.
TCP Length is the IPX Pkt Len minus the IPX header length in octets.
Note that IPX Src Skt is expected to be 0x9091 for TCP. As such, one
may insert 0x9091 in IPX Src Skt field rather than getting the value
from IPX header. Then the implementation will not have to check the
IPX Src Skt field in the fast path since the checksum failure will
also cover the unexpected value. In that case, the implementation
may want to examine if the checksum failure was due to the IPX Src
Skt value other than 0x9091, so that it can increment appropriate
counter, if proprietary counters other than tcpInErrs are used.
Sung [Page 8]
RFC 1791 TCP And UDP Over IPX April 1995
Appendix B.1 - UDP/IPX Packet Format without Fragmentation
IPXF transmits UDP packets over IPX in this format if the UDP
datagram does not have to be fragmented:
+-------+-------+-------+-------+
| IPX Checksum | IPX Pkt Len |
+-------+-------+-------+-------+
| Zero |IPX PT | IPX Dest -
+-------+-------+-------+-------+
Network | IPX Dest -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
| IPX Dest Skt | IPX Src -
+-------+-------+-------+-------+
Network | IPX Src -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
| IPX Src Skt | UDP Header and
+---------------+-------+-------+
Data...
+----...
The IPX PT field contains IPX packet type. It should be set to 4 for
all UDP/IPX packets.
Both IPX Src Skt and IPX Dest Skt field must be set 0x9092. The
receiving UDP/IPX should discard the packet silently if the IPX Src
Skt field is not set to 0x9092. (And increment udpInErrors mib
object if it is instrumented.)
Sung [Page 9]
RFC 1791 TCP And UDP Over IPX April 1995
Appendix B.2 - UDP/IPX Packet Format With Fragmentation
IPXF transmits fragmented datagrams over IPX in the following format:
+-------+-------+-------+-------+
| IPX Checksum | IPX Pkt Len |
+-------+-------+-------+-------+
| Zero |IPX PT | IPX Dest -
+-------+-------+-------+-------+
Network | IPX Dest -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
IPX Dest Skt | IPX Src -
+-------+-------+-------+-------+
Network | IPX Src -
+-------+-------+-------+-------+
Node |
+-------+-------+-------+-------+
| IPX Src Skt | IPXF Offset |
+---------------+-------+-------+
| IPXF Frag Identification |
+-------------------------------+
| IPXF Dest Skt | IPXF DG Len |
+-------------------------------+
| UDP Header and Data ...
+--------...
The IPX PT field contains IPX packet type. It is set to the value
set by the IPXF user in the IPX packet passed to IPXF. (UDP sets it
to 4.)
IPX Dest Skt field must be set to 0x9093 for all IPXF Packets.
The value for IPX Src Skt field is variable, and must be set to the
actual IPX socket number of the IPXF user. (For example, it must be
set to 0x9092 for UDP.)
IPXF Offset field indicates where the fragment belongs in the
datagram. The offset is measured is octet from the begining of the
UDP datagram. The first fragment has the offset of 0.
IPXF Frag Identification field is assigned a same value by the sender
for all fragements belonging to the same datagram. The receiver then
uses this field to reassemble all fragments with same ID into a
datagram.
Sung [Page 10]
RFC 1791 TCP And UDP Over IPX April 1995
IPXF Dest Skt field contains the IPX socket number of the actual
recipient that the reassembled datagram will be delivered to. (It is
0x9092 for UDP.) All fragments of a datagram must have the same
value in this field.
IPXF DG Len field is the total length of the IPX datagram before the
fragmentation. The sender should set it to the value of IPX Pkt Len
of the original IPX datagram. All fragments of a IPX datagram must
have the same value in this field.
Sung [Page 11]
RFC 1791 TCP And UDP Over IPX April 1995
Appendix B.3 - UDP/IPX Pseudo Header Format
UDP/IPX uses following pseudo header for computing the checksum:
+-------+-------+-------+-------+
| IPX Src Network |
+-------+-------+-------+-------+
| IPX Src Node
+-------+-------+-------+-------+
| IPX Src Skt |
+-------+-------+-------+-------+
| IPX Dest Network |
+-------+-------+-------+-------+
| IPX Dest Node
+-------+-------+-------+-------+
| IPX Dest Skt |
+-------+-------+-------+-------+
| Zero | UDP Length |
+---------------+---------------+
IPX Src/Dest Network/Node/Skt fields are from the IPX packet. Note
that, if UDP is running over IPXF, the IPX Dest Skt field in IPX
packet header is copied over from IPXF header before the reassembled
IPX packet is delivered to UDP, Hence, the pseudo header must be
derived from the reassembled IPX header.
UDP Length is from UDP header.
Note that IPX Src Skt is expected to be 0x9092 for UDP. As such, one
may insert 0x9092 in IPX Src Skt field rather than getting the value
from IPX header. Then the implementation will not have to check the
IPX Src Skt field in the fast path since the checksum failure will
also cover the unexpected value. In that case, the implementation
may want to examine if the checksum failure was due to the IPX Src
Skt value other than 0x9092, so that it can increment appropriate
counter, if proprietary counters other than udpInDatagramErr are
Datagr
Sung [Page 12]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -