IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0701705
(2007-02-02)
|
등록번호 |
US-7853723
(2011-02-10)
|
발명자
/ 주소 |
- Boucher, Laurence B.
- Blightman, Stephen E. J.
- Craft, Peter K.
- Higgen, David A.
- Philbrick, Clive M.
- Starr, Daryl D.
|
출원인 / 주소 |
|
대리인 / 주소 |
Silicon Edge Law Group LLP
|
인용정보 |
피인용 횟수 :
2 인용 특허 :
197 |
초록
▼
A system for protocol processing in a computer network has a TCP/IP Offload Network Interface Device (TONID) associated with a host computer. The TONID provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The TONID also a
A system for protocol processing in a computer network has a TCP/IP Offload Network Interface Device (TONID) associated with a host computer. The TONID provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The TONID also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the TONID to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the TONID as a communication control block (CCB) that can be passed back to the host for message processing by the host. The TONID contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU. A preferred embodiment includes a trio of pipelined processors with separate processors devoted to transmit, receive and management processing, with full duplex communication for four fast Ethernet nodes.
대표청구항
▼
What is claimed is: 1. A method, comprising: maintaining a set of communication control blocks (CCBs), wherein each of the CCBs defines a transmission control protocol (TCP) connection, some of the set of CCBs being maintained in a static random access memory (SRAM), others of the set of CCBs being
What is claimed is: 1. A method, comprising: maintaining a set of communication control blocks (CCBs), wherein each of the CCBs defines a transmission control protocol (TCP) connection, some of the set of CCBs being maintained in a static random access memory (SRAM), others of the set of CCBs being maintained in a dynamic random access memory (DRAM), wherein a first plurality of the set of CCBs is under control of a network interface device, and wherein a second plurality of the set of CCBs is under control of a processing device, the processing device being coupled to the network interface device, the processing device executing a network protocol stack including a transport layer comprising transmission control protocol (TCP) and a network layer comprising internet protocol (IP); receiving a first TCP/IP packet onto the network interface device from a network; receiving a second TCP/IP packet onto the network interface device from the network, the second TCP/IP packet including a data portion and a header portion; and transferring the data portion of the second TCP/IP packet from the network interface device and into a destination that is higher than the transport layer without transferring the header portion of the second TCP/IP packet into the destination, the destination having been determined by the processing device analyzing a header of the first packet, wherein the network protocol stack executing on the processing device performs no TCP protocol processing on the second TCP/IP packet. 2. The method of claim 1, further comprising: receiving a third TCP/IP packet onto the network interface device from the network; determining that the third TCP/IP packet is not associated with any one of the first plurality of CCBs; and transferring the third TCP/IP packet from the network interface device and to the processing device, the processing device thereafter performing TCP protocol processing on the third TCP/IP packet. 3. The method of claim 1, wherein the TCP/IP packet has a TCP destination port, a TCP source port, an IP destination address, and an IP source address, the method further comprising: generating a context hash from the TCP source and destination ports and from the IP source and destination addresses, the network interface device using the context hash to identify said one CCB associated with the TCP/IP packet. 4. The method of claim 1, wherein control of a CCB is passed from the network interface device to the processing device. 5. The method of claim 1, wherein control of a CCB is passed from the processing device to the network interface device. 6. The method of claim 1, wherein the network interface device comprises specialized hardware for generating a hash from the header portion of the TCP/IP packet, and wherein the network interface device further comprises a processor, the processor accessing the hash and using the hash to determine that the TCP/IP packet is associated with said one of the first plurality of CCBs. 7. The method of claim 6, wherein the specialized hardware comprises a sequencer. 8. The method of claim 1, wherein the network interface device comprises specialized hardware for generating a summary, and wherein the network interface device further comprises a processor, the processor accessing the summary and using the summary to determine that the TCP/IP packet is associated with said one of the first plurality of CCBs. 9. The method of claim 8, wherein the summary includes a hash. 10. The method of claim 8, wherein the summary includes information indicative of whether the TCP/IP packet employs both the TCP protocol and the LP protocol. 11. The method of claim 1, wherein the processing device is a central processing unit (CPU), and wherein the network interface device is integrated with the CPU. 12. The method of claim 1, wherein the processing device is a host, and wherein the network interface device is integrated into the host. 13. The method of claim 1, wherein the processing device is a central processing unit (CPU), the network interface device being integrated with the CPU, and wherein the network interface device comprises a plurality of processors, the plurality of processors sharing the first plurality of CCBs. 14. A network interface device that is coupled to a processing device, the processing device executing a protocol stack that includes a transport layer, the network interface device comprising: an amount of SRAM, the SRAM storing a first plurality of communication control blocks (CCBs) that are under control of the network interface device, wherein each of the first plurality of CCBs defines a transmission control protocol (TCP) connection; an amount of DRAM, the DRAM storing a second plurality of CCBs that are under control of the network interface device, wherein each of the second plurality of CCBs defines a TCP connection; specialized hardware that analyzes a TCP/IP packet received onto the network interface device from a network, the TCP/IP packet comprising a data portion and a header portion, the specialized hardware generating a summary from the TCP/IP packet; a processor that uses the summary to determine whether the TCP/IP packet can be processed via a fast-path by the network interface device as opposed to being processed via a slow-path using the protocol stack; and a mechanism that moves the data portion of the TCP/IP packet from the network interface device and into a destination identified by the processing device, the destination being higher than the transport layer, the data portion of the TCP/IP packet being written into the destination without the header portion of the TCP/IP packet being written into the destination and without the protocol stack doing any TCP protocol processing on the TCP/IP packet. 15. The network interface device of claim 14, wherein the specialized hardware generates from the TCP/IP packet a hash, the hash being a part of the summary, the summary being used by the processor to make the determination that the packet can be processed via the fast-path. 16. The network interface device of claim 14, wherein the summary includes information indicative of whether the TCP/IP packet conforms to both the TCP protocol and the IP protocol. 17. A network interface device that is integrated with a processing device, the processing device executing a protocol stack that includes a transport layer, the network interface device comprising: an amount of SRAM, the SRAM storing a first plurality of communication control blocks (CCBs) that are under control of the network interface device, wherein each of the first plurality of CCBs defines a transmission control protocol (TCP) connection; an amount of DRAM, the DRAM storing a second plurality of CCBs that are under control of the network interface device; means for analyzing a packet received onto the network interface device from a network and for generating from the packet a summary, the packet comprising a data portion and a header portion, the header portion including a TCP destination port value and a TCP source port value; a processor that uses the summary to determine whether the packet can be processed via a fast-path by the network interface device as opposed to being processed via a slow-path using the protocol stack; and a mechanism that moves the data portion of the packet from the network interface device and into a destination accessible by the processing device, the data portion of the packet being written into the destination without the header portion of the packet being written into the destination and without the protocol stack doing any TCP protocol processing on the packet. 18. The network interface device of claim 17, further comprising a second processor, wherein the processor and the second processor share use of the first plurality of CCBs. 19. The network interface device of claim 17, wherein there is a third plurality of CCBs that are under control of the processing device, wherein control of a CCB can be passed from the processing device to the network interface device. 20. The network interface device of claim 17, wherein the means is also for performing header checksum validation on the packet.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.