← Back to Patent Explorer
US6122670A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for constructing data for transmission within a reliable communication protocol by performing portions of the protocol suite concurrently

Assignee: PROSYNC TECHNOLOGY GROUP
•
Filing: 1997-10-30
•
Granted: 2000-09-19
•
Expires: 2017-10-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for sending and receiving data with a reliable communication protocol. The system includes a computer at a node having a backplane, a CPU board plugged into the backplane, software instructions for the CPU, and a special network board plugged into the backplane. The CPU board, software, and network card act to implement the TCP/IP protocol suite. The network card or board includes an interface to receive data packets from the physical layer, and circuitry to verify the TCP checksum before de-encapsulation and routing of the TCP segment by the network layer software. It also includes circuitry to automatically prepare the acknowledgement signal to be sent by the receiving computer to the sending computer. It additionally includes circuitry to calculate the error detecting code on outgoing signals from the sending computer to the receiving computer.

Inventors

  • 👤 Toby D. Bennett
  • 👤 Donald J. Davis
  • 👤 Jonathan C. Harris
  • 👤 Ian D. Miller

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 12:50
CPC Classifications
H; H04; H04L; H04L69/00; H04L69/16; H04L69/161; H04L69/163; H04L69/30; H04L69/32; H04L69/322; H04L9/00; H04L9/40; H04L69/12

Claims Analysis

Total Claims: 41
Claim 1
Independent Claim 267 words
A method of reliably constructing TCP/IP datagrams for transmission from a local node on one computer network to a remote node on another computer network comprising the steps of: generating a message, which forms a portion of a transport layer of a communications protocol; buffering said message in at least one of a plurality of buffers between said transport layer of said communications protocol and a network layer of said communications protocol; forwarding said message from said at least one of said plurality of buffers to a buffer in said network layer of said communications protocol executing on a network card; monitoring said forwarding step in order to calculate a TCP segment checksum; composing a TCP header including said TCP segment checksum, said composing step being executed on said network card; pre-pending said TCP header to said message thereby creating an IP datagram in a buffer on said network card; calculating an IP checksum; composing in protocol logic executing on said network card an IP header including said IP checksum; pre-pending said IP header to said IP datagram thereby creating datalink data in said buffer on said network card; forwarding said datalink data to a datalink layer protocol interface on said network card; composing a datalink routing header in said datalink layer protocol interface on said network card, said datalink routing header including an address of a next intermediate node in a network transmission path to a destination; pre-pending said datalink routing header to said datalink data to create a final datagram; and transmitting said final datagram over at least one physical medium to said remote node.
Claim 2
Independent Claim 267 words
A method of reliably constructing TCP/IP datagrams for transmission from a local node on one computer network to a remote node on another computer network comprising the steps of: generating a message, which forms a portion of a transport layer of a communications protocol; buffering said message in at least one of a plurality of buffers between said transport layer of said communications protocol and a network layer of said communications protocol; forwarding said message from said at least one of said plurality of buffers to a buffer in said network layer of said communications protocol executing on a network card; monitoring said forwarding step in order to calculate a TCP segment checksum; composing a TCP header including said TCP segment checksum, said composing step being executed on said network card; pre-pending said TCP header to said message thereby creating an IP datagram in a buffer on said network card; calculating an IP checksum; composing in protocol logic executing on said network card an IP header including said IP checksum; pre-pending said IP header to said IP datagram thereby creating datalink data in said buffer on said network card; forwarding said datalink data to a datalink layer protocol interface on said network card; composing a datalink routing header in said datalink layer protocol interface on said network card, said datalink routing header including an address of a next intermediate node in a network transmission path to a destination; pre-pending said datalink routing header to said datalink data to create a final datagram; and transmitting said final datagram over at least one physical medium to said remote node.
Claim 3
Dependent Claim 38 words
The method according to claim 1, for further reliably constructing a synchronous acknowledgement to at least one received datagram, further comprising the step of generating a datagram that contains said acknowledgement as the data on said network card.
Claim 4
Dependent Claim 46 words
The method according to claim 1, for further reliably constructing a synchronous acknowledgement to at least one received datagram, further comprising the step of generating a datagram that contains said acknowledgement embedded in one of the TCP header and the IP header on said network card.
Claim 5
Dependent Claim 38 words
The method according to claim 1, for further reliably constructing an asynchronous acknowledgement to at least one received datagram, further comprising the step of generating a datagram that contains said acknowledgement as the data on said network card.
Claim 6
Dependent Claim 46 words
The method according to claim 1, for further reliably constructing an asynchronous acknowledgement to at least one received datagram, further comprising the step of generating a datagram that contains said acknowledgement embedded in one of the TCP header and the IP header on said network card.
Claim 7
Dependent Claim 12 words
The method according to claim 1, wherein said protocol logic is reconfigurable.
Claim 8
Dependent Claim 22 words
The method according to claim 2, wherein synchronous acknowledgement is suppressed by logic implemented in a network processor on said network card.
Claim 9
Dependent Claim 22 words
The method according to claim 4, wherein asynchronous acknowledgement is suppressed by logic implemented in a network processor on said network card.
Claim 10
Dependent Claim 26 words
The method according to claim 2, wherein said acknowledgement is transmitted in response to an expiration of a timer in protocol logic on said network card.
Claim 11
Dependent Claim 26 words
The method according to claim 3, wherein said acknowledgement is transmitted in response to an expiration of a timer in protocol logic on said network card.
Claim 12
Dependent Claim 26 words
The method according to claim 4, wherein said acknowledgement is transmitted in response to an expiration of a timer in protocol logic on said network card.
Claim 13
Dependent Claim 26 words
The method according to claim 5, wherein said acknowledgement is transmitted in response to an expiration of a timer in protocol logic on said network card.
Claim 14
Dependent Claim 292 words
In a system having a plurality of computer networks, each network having a plurality of nodes, and selected ones of said nodes having a processing subsystem comprising: a mechanical backplane backplane further comprising a plurality of parallel conductors for connecting and electrically coupling a PCI bus to bus interface circuitry; RAM memory connected to said mechanical backplane; a disk controller card connected to said mechanical backplane; an AC to DC converter connected to said mechanical backplane; a processor connected to said mechanical backplane; a keyboard connected to said mechanical backplane; a network processor connected to said mechanical backplane; said bus interface circuitry residing in each of said RAM memory, said processor, said keyboard, said disk controller card, and said network processor; said bus interface circuitry recognizes a bus address of a unit in which it resides; said network processor further comprises an asynchronous transfer mode (ATM) interface unit connected and electrically coupled to ATM switches, a first bridging means connected and electrically coupled to said ATM interface, said bridging means further connected and electrically coupled to a second bridging means and to protocol logic, said second bridging means further connected and electrically coupled to said bus interface, said protocol logic connected and electrically coupled to a memory unit; said processor and said network processor combine to implement the entire TCP/IP protocol suite within said processing subsystem; said memory unit stores a command list and acts as a buffer for TCP acknowledgement (ACK) commands and for a disposition queue of datagrams require further processing by the processor if they are inbound and transmission to the ATM switches via the ATM interface if they are outbound; and said protocol logic implements a portion of the TCP protocol and a portion of the IP protocol.
Claim 15
Dependent Claim 292 words
In a system having a plurality of computer networks, each network having a plurality of nodes, and selected ones of said nodes having a processing subsystem comprising: a mechanical backplane backplane further comprising a plurality of parallel conductors for connecting and electrically coupling a PCI bus to bus interface circuitry; RAM memory connected to said mechanical backplane; a disk controller card connected to said mechanical backplane; an AC to DC converter connected to said mechanical backplane; a processor connected to said mechanical backplane; a keyboard connected to said mechanical backplane; a network processor connected to said mechanical backplane; said bus interface circuitry residing in each of said RAM memory, said processor, said keyboard, said disk controller card, and said network processor; said bus interface circuitry recognizes a bus address of a unit in which it resides; said network processor further comprises an asynchronous transfer mode (ATM) interface unit connected and electrically coupled to ATM switches, a first bridging means connected and electrically coupled to said ATM interface, said bridging means further connected and electrically coupled to a second bridging means and to protocol logic, said second bridging means further connected and electrically coupled to said bus interface, said protocol logic connected and electrically coupled to a memory unit; said processor and said network processor combine to implement the entire TCP/IP protocol suite within said processing subsystem; said memory unit stores a command list and acts as a buffer for TCP acknowledgement (ACK) commands and for a disposition queue of datagrams require further processing by the processor if they are inbound and transmission to the ATM switches via the ATM interface if they are outbound; and said protocol logic implements a portion of the TCP protocol and a portion of the IP protocol.
Claim 16
Dependent Claim 13 words
The processing subsystem according to claim 13, wherein said protocol logic is reconfigurable.
Claim 17
Dependent Claim 202 words
The processing subsystem according to claim 13 wherein said network processor further comprises: a reconfigurable logic block; a processor subsystem; a bus connector slot; a first bridging means; a second bridging means; a clock generator; an arbitration means; a first internal bus; a second internal bus; said bus connector slot connected and electrically coupled to said reconfigurable logic block, said bus connector slot further connected and electrically coupled to said first internal bus, said first internal bus connected and electrically coupled to said first bridging means, said first internal bus further connected and electrically coupled to said processor subsystem, said processor subsystem connected and electrically coupled to said reconfigurable logic block, said reconfigurable logic block connected and electrically coupled to said clock generator, said reconfiguable logic block further connected and electrically coupled to said second internal bus, said second internal bus connected and electrically coupled to said first bridging means, said second internal bus further connected and electrically coupled to said second bridging means, said second internal bus further connected and electrically coupled to said arbitration means, said arbitration means connected and electrically coupled to said first bridging means, said arbitration means further connected and electrically coupled to said second bridging means.
Claim 18
Dependent Claim 36 words
The processing subsystem according to claim 13 wherein said network processor verifies that both the TCP segment checksum and the IP header checksum are correct before forwarding an inbound datagram to said processor for further processing.
Claim 19
Dependent Claim 38 words
The processing subsystem according to claim 13 wherein the network processor further accomplishes reassembly of a plurality of inbound datagrams and further verifies that partial checksums of the individual datagrams yield a verified total checksum of reassembled datagrams.
Claim 20
Dependent Claim 28 words
The processing subsystem according to claim 16, wherein the network processor further generates an acknowledgment synchronously to the sender once the data has been verified by the checksum.
Claim 21
Dependent Claim 18 words
The processing subsystem according to claim 17, wherein said network processor further buffers datagrams received out of order.
Claim 22
Dependent Claim 38 words
The processing subsystem according to claim 13, wherein said network processor calculates and inserts both the TCP segment checksum and the IP header checksum into outbound datagrams before forwarding said outbound datagrams to said ATM switches for transmission.
Claim 23
Dependent Claim 23 words
The processing subsystem according to claim 13, wherein the network processor further calculates a plurality of partial checksums of the individual outbound datagrams.
Claim 24
Dependent Claim 32 words
The processing subsystem according to claim 20, wherein the network processor further accepts an acknowledgment synchronously from the sender indicating that the outbound data has been received and verified by the checksum.
Claim 25
Dependent Claim 28 words
The processing subsystem according to claim 16, wherein the network processor further generates an acknowledgment asynchronously to the sender once the data has been verified by the checksum.
Claim 26
Dependent Claim 32 words
The processing subsystem according to claim 20, wherein the network processor further accepts an acknowledgment asynchronously from the sender indicating that the outbound data has been received and verified by the checksum.
Claim 27
Dependent Claim 19 words
The processing subsystem according to claim 16, wherein the network processor suppresses the generation and transmission of an acknowledgement.
Claim 28
Dependent Claim 292 words
In a system having a plurality of computer networks, each network having a plurality of nodes, and selected ones of said nodes having a processing subsystem comprising: a mechanical backplane backplane further comprising a plurality of parallel conductors for connecting and electrically coupling a PCI bus to bus interface circuitry; RAM memory connected to said mechanical backplane; a disk controller card connected to said mechanical backplane; an AC to DC converter connected to said mechanical backplane; a processor connected to said mechanical backplane; a keyboard connected to said mechanical backplane; a network processor connected to said mechanical backplane; said bus interface circuitry residing in each of said RAM memory, said processor, said keyboard, said disk controller card, and said network processor; said bus interface circuitry recognizes a bus address of a unit in which it resides; said network processor further comprises a wide area network (WAN) interface unit connected and electrically coupled to WAN switches, a first bridging means connected and electrically coupled to said WAN interface, said bridging means further connected and electrically coupled to a second bridging means and to protocol logic, said second bridging means further connected and electrically coupled to said bus interface, said protocol logic connected and electrically coupled to a memory unit; said processor and said network processor combine to implement the entire TCP/IP protocol suite within said processing subsystem; said memory unit stores a command list and acts as a buffer for TCP acknowledgement (ACK) commands and for a disposition queue of datagrams require further processing by the processor if they are inbound and transmission to the WAN switches via the WAN interface if they are outbound; and said protocol logic implements a portion of the TCP protocol and a portion of the IP protocol.
Claim 29
Dependent Claim 292 words
In a system having a plurality of computer networks, each network having a plurality of nodes, and selected ones of said nodes having a processing subsystem comprising: a mechanical backplane backplane further comprising a plurality of parallel conductors for connecting and electrically coupling a PCI bus to bus interface circuitry; RAM memory connected to said mechanical backplane; a disk controller card connected to said mechanical backplane; an AC to DC converter connected to said mechanical backplane; a processor connected to said mechanical backplane; a keyboard connected to said mechanical backplane; a network processor connected to said mechanical backplane; said bus interface circuitry residing in each of said RAM memory, said processor, said keyboard, said disk controller card, and said network processor; said bus interface circuitry recognizes a bus address of a unit in which it resides; said network processor further comprises a wide area network (WAN) interface unit connected and electrically coupled to WAN switches, a first bridging means connected and electrically coupled to said WAN interface, said bridging means further connected and electrically coupled to a second bridging means and to protocol logic, said second bridging means further connected and electrically coupled to said bus interface, said protocol logic connected and electrically coupled to a memory unit; said processor and said network processor combine to implement the entire TCP/IP protocol suite within said processing subsystem; said memory unit stores a command list and acts as a buffer for TCP acknowledgement (ACK) commands and for a disposition queue of datagrams require further processing by the processor if they are inbound and transmission to the WAN switches via the WAN interface if they are outbound; and said protocol logic implements a portion of the TCP protocol and a portion of the IP protocol.
Claim 30
Dependent Claim 13 words
The processing subsystem according to claim 26, wherein said protocol logic is reconfigurable.
Claim 31
Dependent Claim 202 words
The processing subsystem according to claim 26 wherein said network processor further comprises: a reconfigurable logic block; a processor subsystem; a bus connector slot; a first bridging means; a second bridging means; a clock generator; an arbitration means; a first internal bus; a second internal bus; said bus connector slot connected and electrically coupled to said reconfigurable logic block, said bus connector slot further connected and electrically coupled to said first internal bus, said first internal bus connected and electrically coupled to said first bridging means, said first internal bus further connected and electrically coupled to said processor subsystem, said processor subsystem connected and electrically coupled to said reconfigurable logic block, said reconfigurable logic block connected and electrically coupled to said clock generator, said reconfiguable logic block further connected and electrically coupled to said second internal bus, said second internal bus connected and electrically coupled to said first bridging means, said second internal bus further connected and electrically coupled to said second bridging means, said second internal bus further connected and electrically coupled to said arbitration means, said arbitration means connected and electrically coupled to said first bridging means, said arbitration means further connected and electrically coupled to said second bridging means.
Claim 32
Dependent Claim 36 words
The processing subsystem according to claim 26 wherein said network processor verifies that both the TCP segment checksum and the IP header checksum are correct before forwarding an inbound datagram to said processor for further processing.
Claim 33
Dependent Claim 38 words
The processing subsystem according to claim 26 wherein the network processor further accomplishes reassembly of a plurality of inbound datagrams and further verifies that partial checksums of the individual datagrams yield a verified total checksum of reassembled datagrams.
Claim 34
Dependent Claim 28 words
The processing subsystem according to claim 29, wherein the network processor further generates an acknowledgment synchronously to the sender once the data has been verified by the checksum.
Claim 35
Dependent Claim 18 words
The processing subsystem according to claim 30, wherein said network processor further buffers datagrams received out of order.
Claim 36
Dependent Claim 38 words
The processing subsystem according to claim 26, wherein said network processor calculates and inserts both the TCP segment checksum and the IP header checksum into outbound datagrams before forwarding said outbound datagrams to said WAN switches for transmission.
Claim 37
Dependent Claim 23 words
The processing subsystem according to claim 26, wherein the network processor further calculates a plurality of partial checksums of the individual outbound datagrams.
Claim 38
Dependent Claim 32 words
The processing subsystem according to claim 33, wherein the network processor further accepts an acknowledgment synchronously from the sender indicating that the outbound data has been received and verified by the checksum.
Claim 39
Dependent Claim 28 words
The processing subsystem according to claim 29, wherein the network processor further generates an acknowledgment asynchronously to the sender once the data has been verified by the checksum.
Claim 40
Dependent Claim 32 words
The processing subsystem according to claim 33, wherein the network processor further accepts an acknowledgment asynchronously from the sender indicating that the outbound data has been received and verified by the checksum.
Claim 41
Dependent Claim 19 words
The processing subsystem according to claim 29, wherein the network processor suppresses the generation and transmission of an acknowledgement.

References Cited (Backward Citations)

US4451827A Cited
US4550402A Cited
US5430842A Cited
US5418781A Cited
US5497371A Cited
US5884025A Cited
US5909686A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-09-19 2004-03-20 2004-09-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-09-19 2008-03-20 2008-09-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-09-19 2012-03-20 2012-09-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag