IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0260878
(2002-09-27)
|
등록번호 |
US-7337241
(2008-02-26)
|
발명자
/ 주소 |
- Boucher,Laurence B.
- Blightman,Stephen E. J.
- Craft,Peter K.
- Higgen,David A.
- Philbrick,Clive M.
- Starr,Daryl D.
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
122 인용 특허 :
171 |
초록
▼
A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating d
A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The INIC 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 INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the INIC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC 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.
대표청구항
▼
The invention claimed is: 1. A method for network communication, the method comprising: receiving a plurality of packets from the network, each of the packets including a media access control layer header, a network layer header and a transport layer header; processing the packets by a first mechan
The invention claimed is: 1. A method for network communication, the method comprising: receiving a plurality of packets from the network, each of the packets including a media access control layer header, a network layer header and a transport layer header; processing the packets by a first mechanism, so that for each packet the network layer header and the transport layer header are validated without an interrupt dividing the processing of the network layer header and the transport layer header; sorting the packets, dependent upon the processing, into first and second types of packets, so that the packets of the first type each contain data; sending, by the first mechanism, the data from each packet of the first type to a destination in memory allocated to an application without sending any of the media access control layer headers, network layer headers or transport layer headers to the destination. 2. The method of claim 1, wherein processing the packets by a first mechanism further comprises: processing the media access control layer header for each packet without an interrupt dividing the processing of the media access control layer header and the network layer header. 3. The method of claim 1, further comprising: processing an upper layer header of at least one of the packets by a second mechanism, thereby determining the destination, wherein the upper layer header corresponds to a protocol layer above the transport layer. 4. The method of claim 1, further comprising: processing an upper layer header of at least one of the packets of the second type by a second mechanism, thereby determining the destination. 5. The method of claim 1, further comprising: processing a transport layer header of another packet by a second mechanism, prior to receiving the plurality of packets from the network, thereby establishing a Transmission Control Protocol (TCP) connection for the packets of the first type. 6. The method of claim 1, wherein sorting the packets includes classifying each of the packets of the first type as having an Internet Protocol (IP) header and a Transmission Control Protocol (TCP). 7. The method of claim 1, further comprising: transmitting a second plurality of packets to the network, each of the second plurality of packets containing a media access control layer header, a network layer header and a transport layer header, including processing the second plurality of packets by the first mechanism, so that for each packet the media access control layer header, the network layer header and the transport layer header are prepended at one time as a packet header. 8. The method of claim 1, wherein the first mechanism is a sequencer running microcode. 9. A method for communicating information over a network, the method comprising: obtaining data from a source in memory allocated by a first processor; dividing the data into multiple segments; prepending a packet header to each of the segments by a second processor, thereby forming a packet corresponding to each segment, each packet header containing a media access control layer header, a network layer header and a transport layer header, wherein the network layer header is Internet Protocol (IP), the transport layer header is Transmission Control Protocol (TCP) and the media access control layer header, the network layer header and the transport layer header are prepended at one time as a sequence of bits during the prepending of each packet header; and transmitting the packets to the network. 10. The method of claim 9, wherein each packet header is formed based upon a block of information created by the first processor. 11. The method of claim 9, further comprising: receiving another packet from the network, the other packet containing a receive header including information corresponding to a network layer and a transport layer; and determining, by the second processor, whether the other packet corresponds to the same TCP connection as the transmitted packets. 12. The method of claim 9, further comprising establishing a Transmission Control Protocol (TCP) connection by the first processor and using the connection to prepend the packet header to each of the segments by the second processor. 13. The method of claim 9, further comprising creating a template header and forming each packet header based upon the template header. 14. The method of claim 9, wherein obtaining data from the source in memory allocated by the first processor is performed by a Direct Memory Access (DMA) unit controlled by the second processor. 15. The method of claim 9, further comprising prepending an upper layer header to the data, prior to dividing the data into multiple segments. 16. The method of claim 9, further comprising: receiving another packet from the network, the other packet containing a receive header including information corresponding to a network layer and a transport layer; and selecting whether to process the other packet by the first processor or by the second processor. 17. A method for communicating information over a network, the method comprising: providing, by a first mechanism, a block of data and a Transmission Control Protocol (TCP) connection; dividing, by a second mechanism, the block of data into multiple segments; prepending, by the second mechanism, an outbound packet header to each of the segments, thereby forming an outbound packet corresponding to each segment, the outbound packet header containing an outbound media access control layer header, an outbound Internet Protocol (IP) header and an outbound TCP header, wherein the prepending of each outbound packet header occurs without an interrupt dividing the prepending of the outbound media access control layer header, the outbound (IP) header and the outbound TCP header; and transmitting the outbound packets to the network. 18. The method of claim 17, further comprising: receiving multiple inbound packets from the network, each of the inbound packets including an inbound media access control layer header, an inbound IP header and an inbound TCP header; processing the inbound packets, so that for each packet the inbound IP header and the inbound TCP header are validated without an interrupt dividing the processing of the inbound network layer header and the inbound transport layer header; wherein the processing the inbound packets is performed simultaneously with the prepending the outbound packet header to each of the segments. 19. The method of claim 17, further comprising creating a template header and using the template header to form each outbound packet header. 20. The method of claim 17, wherein the TCP connection is passed from the first mechanism to the second mechanism. 21. The method of claim 20, further comprising prepending an upper layer header to the block of data, prior to dividing the block of data into multiple segments. 22. The method of claim 17, further comprising: receiving multiple inbound packets from the network, each of the inbound packets including an inbound media access control layer header, an inbound IP header and an inbound TCP header; processing the inbound packets, so that for each packet the inbound IP header and the inbound TCP header are validated without an interrupt dividing the processing of the inbound network layer header and the inbound transport layer header; and sending data from each inbound packet to a destination in memory allocated to an application without sending any of the media access control layer headers, IP headers or TCP headers to the destination. 23. The method of claim 22, further comprising: processing an upper layer header of at least one of the packets by the second mechanism, thereby determining the destination, wherein the upper layer header corresponds to a protocol layer above the transport layer. 24. The method of claim 17, further comprising: processing a transport layer header of another inbound packet, prior to receiving the plurality of packets from the network, thereby establishing a Transmission Control Protocol (TCP) connection for the inbound packets.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.