Claims
- 1-20. (Cancelled)
- 21. A set of computer-executable instructions for execution on a host computer, wherein an application layer program is executing on the host computer, and wherein a network interface device is coupled to the host computer, and wherein the network interface device is coupled to receive a multi-packet message from a packet-switched network, the multi-packet message including a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a TCP header portion, an IP header portion and a data portion, the set of computer-executable instructions being for performing steps comprising:
passing at least a portion of the first packet of the multi-packet message to the application layer program; receiving from the application layer program an indication of a destination in memory on the host computer; and passing the indication of the destination to the network interface device such that the network interface device writes the data portions of the subsequent packets into the destination without writing any TCP header portion into the destination and without writing any IP header portion into the destination.
- 22. The set of computer-executable instructions of claim 21, wherein the multi-packet message has a data payload, and wherein the entire data payload is written by the network interface device into the destination.
- 23. The set of computer-executable instructions of claim 21, wherein the set of computer-executable instructions is an operating system, and wherein the network interface device is an intelligent network interface card (INIC) coupled to the host computer.
- 24. The set of computer-executable instructions of claim 21, wherein the multi-packet message is of a protocol layer higher than the transport protocol layer.
- 25. A method for transferring data of a message from a network interface device to a host computer, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled to the host computer, the message consisting of a first packet and a plurality of subsequent packets, wherein the first packet includes a session layer header portion, a TCP header portion and an IP header portion, and wherein each of the plurality of subsequent packets contains a TCP header portion, an IP header portion and a data portion, the method comprising:
(a) passing at least a portion of the first packet from the network interface device to an application layer program executing on the host computer, wherein said at least a portion includes the session layer header portion; (b) the application layer program executing on the host computer examining the session layer header portion and generating an indication of a destination in host memory; and (c) the network interface device transferring the data portions of the subsequent packets into the destination without writing any TCP header portion of any of the subsequent packets into the destination and without writing any IP header portion of any of the subsequent packets into the destination.
- 26. The method of claim 25, wherein the network interface device comprises an expansion card and an application specific integrated circuit (ASIC).
- 27. The method of claim 25, wherein only a portion of the first packet is passed to the application layer program in (a) such that the application layer program generates the indication of the destination without receiving the entire first packet.
- 28. The method of claim 26, wherein the host computer includes a motherboard, and wherein the network interface device is disposed on the motherboard.
- 29. A method for transferring data of a message from a network interface device to a host computer, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled to the host computer, the message consisting of a first packet and a plurality of subsequent packets, wherein the first packet includes a session layer header portion, a TCP header portion and an IP header portion, and wherein each of the plurality of subsequent packets contains a TCP header portion, an IP header portion and a data portion, the method comprising:
(a) passing a first part of the first packet, but not a second part of the first packet, from the network interface device to the host computer, the first part of the first packet including the session layer header portion; (b) an application layer program executing on the host computer examining the session layer header portion and generating an indication of a destination in host memory; and (c) the network interface device transferring the data portions of the subsequent packets into the destination without writing any TCP header portion of any of the subsequent packets into the destination and without writing any IP header portion of any of the subsequent packets into the destination.
- 30. The method of claim 29, further comprising:
after (b) and before (c) the network interface device transferring the second part of the first packet from the network interface device and into the destination.
- 31. The method of claim 29, wherein the indication of the destination in host memory comprises a plurality addresses and a plurality of lengths.
- 32. The method of claim 29, wherein the message is communicated over a TCP/IP connection, and wherein the TCP/IP connection is setup before step (a).
- 33. The method of claim 29, wherein in (b) the application layer program determines from the session layer header how much session layer data is contained in the message, and wherein the application layer determines how big the destination should be in order to contain all the session layer data of the message, and wherein all the session layer data is written into the destination such that no TCP headers are present in the destination and such that no IP headers are present in the destination.
- 34. The method of claim 33, wherein all the session layer data is written into the destination and such that no session layer headers are present in the destination.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of and claims the benefit under 35 U.S.C. §120 of prior U.S. patent application Ser. No. 09/789,366, filed Feb. 20, 2001, now U.S. Pat. No. 6,757,746.
[0002] Prior U.S. patent application Ser. No. 09/789,366, now U.S. Pat. No. 6,757,746, is a continuation-in-part of and claims the benefit under 35 U.S.C. § 120 of U.S. patent application Ser. No. 09/464,283, filed Dec. 15, 1999, now U.S. Pat. No. 6,427,173, which in turn claims the benefit under 35 U.S.C. § 120 of U.S. patent application Ser. No. 09/439,603, filed Nov. 12, 1999, now U.S. Pat. No. 6,247,060, which in turn claims the benefit under 35 U.S.C. §. 120 of U.S. patent application Ser. No. 09/067,544, filed Apr. 27, 1998, now U.S. Pat. No. 6,226,680, which in turn claims the benefit under 35 U.S.C. § 119(e) of the Provisional Application Ser. No. 60/061,809, filed Oct. 14, 1997.
[0003] Prior U.S. patent application Ser. No. 09/789,366, now U.S. Pat. No. 6,757,746, also is a continuation-in-part and claims benefit under 35 U.S.C. § 120 of the following U.S. patent applications: Ser. No. 09/748,936, filed Dec. 26, 2000, now U.S. Pat. No. 6,334,153; Ser. No. 09/692,561, filed Oct. 18, 2000; Ser. No. 09/675,700, filed Sep. 29, 2000; Ser. No. 09/675,484, filed Sep. 29, 2000; Ser. No. 09/514,425, filed Feb. 28, 2000, now U.S. Pat. No. 6,427,171; Ser. No. 09/416,925, filed Oct. 13, 1999, now U.S. Pat. No. 6,470,415; and Ser. No. 09/141,713, filed Aug. 28, 1998, now U.S. Pat. No. 6,389,479.
[0004] Prior U.S. patent application Ser. No. 09/789,366, now U.S. Pat. No. 6,757,746, is also a continuation-in-part of and claims benefit under 35 U.S.C. § 120 of U.S. patent application Ser. No. 09/384,792, filed Aug. 27, 1999, now U.S. Pat. No. 6,434,620, which in turn claims the benefit under 35 U.S.C. § 119 of Provisional Application Ser. No. 60/098,296, filed Aug. 27, 1998.
[0005] The complete disclosures of: U.S. patent application Ser. No. 09/789,366; U.S. patent application Ser. No. 09/464,283; U.S. patent application Ser. No. 09/439,603; U.S. patent application Ser. No. 09/067,544; U.S. patent application Ser. No. 09/748,936; U.S. patent application Ser. No. 09/692,561; U.S. patent application Ser. No. 09/675,700; U.S. patent application Ser. No. 09/675,484; U.S. patent application Ser. No. 09/514,425; U.S. patent application Ser. No. 09/416,925; U.S. application Ser. No. 09/384,792; U.S. application Ser. No. 09/141,713 and Provisional Application Ser. Nos. 60/061,809 and 60/098,296 are incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60061809 |
Oct 1997 |
US |
|
60098296 |
Aug 1998 |
US |
Continuations (4)
|
Number |
Date |
Country |
Parent |
09789366 |
Feb 2001 |
US |
Child |
10881271 |
Jun 2004 |
US |
Parent |
09439603 |
Nov 1999 |
US |
Child |
09464283 |
Dec 1999 |
US |
Parent |
09067544 |
Apr 1998 |
US |
Child |
09439603 |
Nov 1999 |
US |
Parent |
09789366 |
Feb 2001 |
US |
Child |
10881271 |
Jun 2004 |
US |
Continuation in Parts (9)
|
Number |
Date |
Country |
Parent |
09464283 |
Dec 1999 |
US |
Child |
09789366 |
Feb 2001 |
US |
Parent |
09748936 |
Dec 2000 |
US |
Child |
09789366 |
|
US |
Parent |
09692561 |
Oct 2000 |
US |
Child |
09789366 |
|
US |
Parent |
09675700 |
Sep 2000 |
US |
Child |
09789366 |
|
US |
Parent |
09675484 |
Sep 2000 |
US |
Child |
09789366 |
|
US |
Parent |
09514425 |
Feb 2000 |
US |
Child |
09789366 |
|
US |
Parent |
09416925 |
Oct 1999 |
US |
Child |
09789366 |
|
US |
Parent |
09141713 |
Aug 1998 |
US |
Child |
09789366 |
|
US |
Parent |
09384792 |
Aug 1999 |
US |
Child |
09789366 |
Feb 2001 |
US |