Obtaining a destination address so that a network interface...

Electrical computers and digital processing systems: multicomput – Network-to-computer interfacing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S245000, C711S220000

Reexamination Certificate

active

06757746

ABSTRACT:

TECHNICAL FIELD
The present invention relates generally to computer or other networks, and more particularly to protocol processing for information communicated between hosts such as computers connected to a network.
BACKGROUND INFORMATION
One of the most CPU intensive activities associated with performing network protocol processing is the need to copy incoming network data from an initial landing point in system memory to a final destination in application memory. This copying is necessary because received network data cannot generally be moved to the final destination until the associated packets are: A) analyzed to ensure that they are free of errors, B) analyzed to determine which connection they are associated with, and C) analyzed to determine where, within a stream of data, they belong. Until recently, these steps had to be performed by the host protocol stack. With the introduction of the intelligent network interface device (as disclosed in U.S. patent application Ser. Nos. 09/464,283, 09/439,603, 09/067,544, and U.S. Provisional Application Serial No. 60/061,809), these steps may now be performed before the packets are delivered to the host protocol stack.
Even with such steps accomplished by an intelligent network interface device, there is another problem to be addressed to reduce or eliminate data copying, and that is obtaining the address of the destination in memory and passing that address to the network interface device. Obtaining this address is often difficult because many network applications are written in such a way that they will not provide the address of the final destination until notified that data for the connection has arrived (with the use of the “select( )” routine, for example). Other attempts to obtain this address involve the modification of existing applications. One such example is the Internet Engineering Task Force (IETF) Remote DMA (RDMA) proposal, which requires that existing protocols such as NFS, CIFS, and HTTP be modified to include addressing information in the protocol headers. A solution is desired that does not require the modification of existing applications or protocols.
SUMMARY
A multi-packet message (for example, a session layer message) is to be received onto a Network Interface device (NI device) and the data payload of the message is to be placed into application memory in a host computer. The NI device receives the first packet of the message and passes a first part of this first packet to the operating system on the host. In one embodiment, the first part of the first packet includes the session layer header of the message. The operating system passes this first part of the first packet to an application program. The application program uses the first part of the first packet to identify an address of a destination in application memory where the entire data payload is to be placed. The application program returns the address to the operating system and the operating system in turn forwards the address to the NI device. The NI device then uses the address to place the data portions of the various packets of the multi-packet message into the destination in application memory. In one embodiment, the NI device DMAs the data portions of the packets from the NI device directly into the destination. In some embodiments, the NI device DMAs only data into the destination such that the destination contains the data payload in one contiguous block without any session layer header information, without any transport layer header information, and without any network layer header information.
In some embodiments, the NI device is an interface card that is coupled to the host computer via a parallel bus (for example, the PCI bus). In other embodiments, the NI device is integrated into the host computer. For example, the NI device may be part of communication processing device (CPD) that is integrated into the host computer.
Other structures and methods are described in the detailed description below. This summary does not purport to define the invention. The invention is defined by the claims.


REFERENCES:
patent: 4366538 (1982-12-01), Johnson et al.
patent: 4991133 (1991-02-01), Davis et al.
patent: 5056058 (1991-10-01), Hirata et al.
patent: 5058110 (1991-10-01), Beach et al.
patent: 5097442 (1992-03-01), Ward et al.
patent: 5163131 (1992-11-01), Row et al.
patent: 5212778 (1993-05-01), Dally et al.
patent: 5280477 (1994-01-01), Trapp
patent: 5289580 (1994-02-01), Latif et al.
patent: 5303344 (1994-04-01), Yokoyama et al.
patent: 5412782 (1995-05-01), Hausman et al.
patent: 5448566 (1995-09-01), Richter et al.
patent: 5485579 (1996-01-01), Hitz et al.
patent: 5506966 (1996-04-01), Ban
patent: 5511169 (1996-04-01), Suda
patent: 5548730 (1996-08-01), Young et al.
patent: 5566170 (1996-10-01), Bakke et al.
patent: 5588121 (1996-12-01), Reddin et al.
patent: 5590328 (1996-12-01), Seno et al.
patent: 5592622 (1997-01-01), Isfeld et al.
patent: 5629933 (1997-05-01), Delp et al.
patent: 5634099 (1997-05-01), Andrews et al.
patent: 5634127 (1997-05-01), Cloud et al.
patent: 5642482 (1997-06-01), Pardillos
patent: 5664114 (1997-09-01), Krech, Jr. et al.
patent: 5671355 (1997-09-01), Collins
patent: 5678060 (1997-10-01), Yokoyama et al.
patent: 5692130 (1997-11-01), Shobu et al.
patent: 5699317 (1997-12-01), Sartore et al.
patent: 5701434 (1997-12-01), Nakagawa
patent: 5701516 (1997-12-01), Cheng et al.
patent: 5749095 (1998-05-01), Hagersten
patent: 5751715 (1998-05-01), Chan et al.
patent: 5752078 (1998-05-01), Delp et al.
patent: 5758084 (1998-05-01), Silverstein et al.
patent: 5758089 (1998-05-01), Gentry et al.
patent: 5758186 (1998-05-01), Hamilton et al.
patent: 5758194 (1998-05-01), Kuzma
patent: 5771349 (1998-06-01), Picazo, Jr. et al.
patent: 5790804 (1998-08-01), Osborne
patent: 5794061 (1998-08-01), Hansen et al.
patent: 5802580 (1998-09-01), McAlpice
patent: 5809328 (1998-09-01), Nogales et al.
patent: 5812775 (1998-09-01), Van Seters et al.
patent: 5815646 (1998-09-01), Purcell et al.
patent: 5878225 (1999-03-01), Bilansky et al.
patent: 5913028 (1999-06-01), Wang et al.
patent: 5930830 (1999-07-01), Mendelson et al.
patent: 5931918 (1999-08-01), Row et al.
patent: 5935205 (1999-08-01), Murayama et al.
patent: 5937169 (1999-08-01), Connery et al.
patent: 5941969 (1999-08-01), Ram et al.
patent: 5941972 (1999-08-01), Hoese et al.
patent: 5950203 (1999-09-01), Stakuis et al.
patent: 5991299 (1999-11-01), Radogna et al.
patent: 6005849 (1999-12-01), Roach et al.
patent: 6009478 (1999-12-01), Panner et al.
patent: 6016513 (2000-01-01), Lowe
patent: 6021446 (2000-02-01), Gentry, Jr.
patent: 6026452 (2000-02-01), Pitts
patent: 6034963 (2000-03-01), Minami et al.
patent: 6044438 (2000-03-01), Olnowich
patent: 6047356 (2000-04-01), Anderson et al.
patent: 6057863 (2000-05-01), Olarig
patent: 6061368 (2000-05-01), Hitzelberger
patent: 6065096 (2000-05-01), Day et al.
patent: 6111673 (2000-08-01), Chang et al.
patent: 6141705 (2000-10-01), Anand et al.
patent: 6173333 (2001-01-01), Jolitz et al.
patent: 6226680 (2001-05-01), Boucher et al.
patent: 6246683 (2001-06-01), Connery et al.
patent: 6247060 (2001-06-01), Boucher et al.
patent: 6345301 (2002-02-01), Burns et al.
patent: 6356951 (2002-03-01), Gentry, Jr.
patent: 6389468 (2002-05-01), Muller et al.
patent: 6427169 (2002-07-01), Elzur
patent: 6427173 (2002-07-01), Boucher et al.
patent: 6434651 (2002-08-01), Gentry, Jr.
patent: 6449656 (2002-09-01), Elzur et al.
patent: 6453360 (2002-09-01), Muller et al.
patent: 6502144 (2002-12-01), Accarie
patent: 6570884 (2003-05-01), Connery et al.
patent: 6657757 (2003-12-01), Chang et al.
patent: 6658480 (2003-12-01), Boucher et al.
patent: 6678283 (2004-01-01), Teplitsky
patent: 2001/0004354 (2001-01-01), Jolitz
patent: 2001/0025315 (2001-01-01), Jolitz
patent: WO98/19412 (1998-05-01), None
patent: WO98/50852 (1998-11-01), None
patent: WO99/04343 (1999-01-01), None
patent: WO 99/65219 (1999-12-01), None
patent: WO 00/13091 (2000-03-01), None
patent: WO 01/04770 (2001-01-01), None
patent: WO 01/05107 (2001-01-01), None
patent: WO 01/05116 (2

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Obtaining a destination address so that a network interface... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Obtaining a destination address so that a network interface..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Obtaining a destination address so that a network interface... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3299434

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.