PRB: Winsock 1.1 Send() Over IPX/SPX Fails With WSAECONNRESET (166762)
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API), when used with:
This article was previously published under Q166762 SYMPTOMS
Winsock 1.1 IPX/SPX applications communicating with NetWare applications or
special devices using the send() API can fail with error WSAECONNRESET.
This occurs when a Winsock application attempts to send large buffers using
the SOCK_SEQPACKET socket type to a Netware IPX application or special
device.
CAUSE
Microsoft's implementation of the IPX/SPX protocol takes advantage of a
network's full media size and does not limit its data packet transmission
size to 576 bytes. Some Netware applications or devices cannot handle data
packet transmissions greater than 576 bytes. The limitation is an
artificial one that IPX applications inherited from the Xerox Network
System's (XNS) Internet Datagram Protocol (IDP) packet structure which
originally limited IPX packets to 576 bytes (IPX header plus data). Some
NetWare specific IPX/SPX applications enforce the limitation on themselves
by inclusion of a constant MaxIPXPacketSize from header files in the
NetWare SDK.
RESOLUTION
If your Winsock 1.1 application must communicate with an application that
imposes the artificial packet limit, you can do so by creating the socket
with type SOCK_STREAM and limiting the size of your send() calls to 534 or
fewer bytes.
STATUS
This behavior is by design.
MORE INFORMATION
The Novell IPX Router Specification states "While IPX implementations must
be able to handle at least a 576 byte packet, enhancements to IPX now allow
support for packet sizes up to 65,535 bytes."
REFERENCES
Novell IPX Router Specification, November 17,1992, Version 1.10, Part
Number: 107-000029-001
Modification Type: | Major | Last Reviewed: | 2/25/2004 |
---|
Keywords: | kbAPI kbnetwork kbprb kbWinsock KB166762 |
---|
|