摘要:
An apparatus and method for an improved bulk read socket call are provided. With the apparatus and method, a new field, so_rcvlen, is added to the socket structure that identifies the bulk read size requested by the user. The kernel of the prior art recv( ) function is also modified so that it sets the so_rcvlen to the size requested by the user prior to the recv( ) function going to sleep and waiting for the full data size requested by the user. A new flag, SP_MSGWAITALL, is also provided in the socket structure. In the TCP input processing, when data is received for a particular socket, the current setting of the SP_MSGWAITALL is checked. If the SP_MSGWAITALL flag is set, it is determined whether the amount of data stored in the socket receive buffer is less than the value of so_rcvlen. If not, the TCP input processing does not wake up the recv( ) thread. However, for every alternate segment, the TCP input processing sends back an acknowledgment (ACK). In the TCP output processing, when the SP_MSGWAITALL flag is set and the amount of data in the socket receive buffer is less than so_rcvlen, the full window is advertised. Once the TCP input processing determines that there is at least an amount of data in the socket receive buffer equal to the value of so_rcvlen, the TCP input processing will wake up the recv( ) thread and the SP_MSGWAITALL flag is reset.
摘要:
A system, method, and program product is provided that requests, by a first computer system, a new network session with a second computer system. The new network session request occurs after a previous network session between the two systems and the new network session request includes a new sequence number that is different from a previous sequence number that was used during the previous network session. The first computer system receives an acknowledgement from the second computer system that references the previous sequence number instead of the new sequence number. In response to receiving the acknowledgement at the first computer system that references the previous sequence number, the first computer system modifies the new sequence number by setting it to a value that is higher than the previous sequence number, and the first computer system re-requests the new network session using the modified new sequence number.