摘要:
A method for receiving network communication at a host is provided. The host has a network interface card (NIC) for receiving the network communication from a network. Data is requested through an application. A set of buffers (e.g., A, B, C, . . . ) is posted to system memory. Information regarding the set of buffers is passed to an adaptation layer. The adaptation layer is interposed between a socket layer and a transport layer of the protocol stack. The set of buffers identified in the adaptation layer is assigned expected sequence numbers (e.g., SN1, SN2, SN3 . . . ) for a sequence of incoming data (e.g., S1, S2, S3, . . . ). The adaptation layer reshuffles data of the sequence of incoming data to the set of buffers according to the expected sequence numbers. The expected sequence numbers are consecutively ordered to ensure that the sequence of incoming data in the ordered sequence is placed to the set of buffers according to the expected sequence numbers.
摘要:
A method for offloading a secure protocol handshake. The method includes establishing a connection between a host system and a remote peer, and determining whether the secure protocol handshake is offloaded to a network interface card (NIC). When the secure protocol handshake is offloaded to the NIC, an offload request is sent to offload the secure protocol handshake, where the offload request includes a value of at least one cryptographic key. The method further includes performing cryptographic operations associated with the secure protocol handshake using the value of at least one cryptographic key to obtain at least one secret key, and returning a status of the secure protocol handshake to the host system.
摘要:
Encrypted data packets are received by a network interface card. The network interface card, upon determining that the received data packets are encrypted, directs the encrypted data packets to decryption hardware in the network interface card. The decryption hardware decrypts the encrypted data packets and forwards the decrypted data packets to a hardware classifier that classifies the decrypted data packets and directs the classified decrypted data packets to the appropriate receive resource(s) of the network interface card.
摘要:
Incoming/outgoing data packets to/from a network are processed by associated receive/send rings of a network interface. A plurality of counters, disposed in hardware, are each associated with particular receive/send rings. Each of the plurality of counters maintains a count of a number of data packets processed by an associated receive/send ring.
摘要:
A method for debugging network connections that involves receiving a packet for a first destination by a network interface card (NIC), classifying the packet, sending the packet to a first receive ring associated with the NIC, and sending the packet from the first receive ring to a first virtual NIC, where the first virtual NIC is associated with a second destination, and where the second destination is used to debug the first destination.
摘要:
A method for debugging network connections that involves receiving a packet for a first destination by a network interface card (NIC), classifying the packet, sending the packet to a first receive ring associated with the NIC, and sending the packet from the first receive ring to a first virtual NIC, where the first virtual NIC is associated with a second destination, and where the second destination is used to debug the first destination.
摘要:
Embodiments of the present invention are directed to a method and system for processing data to be transmitted in a transmission medium, including storing in memory a segment of data to be transmitted where the segment of data is larger than the largest size data packet allowed for transmission by the transmission medium. A socket layer batch processes the segment to produce an array of linked data blocks where each data block is smaller than the largest transmission size of the TCP layer. A TCP layer batch processes the array to add a first header to each block of the array of linked data blocks. An IP layer batch processes the array to add a second header to each block of the array of linked data blocks. The socket layer then identifies blocks of the array to a communication subsystem for individual packet communication over the transmission medium.
摘要:
A system for atomic file transfer operations over connectionless network protocols includes a processor and a memory coupled to the processor. The memory contains program instructions executable by the processor to implement an operating system including a system call interface for sending one or more data files to another system over a network via a connectionless network protocol. In response to an invocation of the system call by an application, the operating system is configured to send the one or more data files to the other system over the network without the application copying contents of the data files into application address space.
摘要:
A system for socket-level packet scheduling over connectionless network protocols includes a processor and a memory coupled to the processor. The memory contains program instructions executable by the processor to implement an operating system including a packet scheduler for scheduling data transmissions via a connectionless network protocol. In response to a request from an application specifying one or more desired performance metrics for a data transfer via the connectionless network protocol, the packet scheduler is configured to schedule the data transfer in accordance with the one or more desired performance metrics.
摘要:
Methods, systems, and computer programs are presented for switching a network packet. One method includes operations for receiving a packet having a media access control (MAC) address, and for switching the packet by a first packet switching device (PSD) when the MAC address is present in a first memory. Further, the method includes operations for transferring the packet to a second PSD when the MAC address is absent from the first memory and present in a second memory associated with the second PSD, and for transferring the packet to a third PSD when the MAC address is absent from the first memory and the second memory.