NETWORK PROCESSING APPARATUS, MULTIPROCESSOR SYSTEM AND NETWORK PROTOCOL PROCESSING METHOD

Information

  • Patent Application
  • 20070223472
  • Publication Number
    20070223472
  • Date Filed
    March 14, 2007
    17 years ago
  • Date Published
    September 27, 2007
    17 years ago
Abstract
A network processing apparatus is provided. A send buffer receives from a protocol stack a long packet with a data length exceeding a maximum transmission unit defined for a network and stores the long packet. A payload dividing unit divides the payload of the long packet into a plurality of divided payloads. A header duplicating unit duplicates the header of the long packet so as to generate a duplicated header for the respective divided payload. A short packet generating unit attaches the duplicated header to the respective divided payload so as to generate a short packet with a data length equal to or less than the maximum transmission unit to be sent to the network. A sending unit sends the short packet to the network via a physical interface.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described, by way of example only, with reference to the accompanying drawings which are meant to be exemplary, not limiting, and wherein like elements are numbered alike in several Figures, in which:



FIG. 1 illustrates a hierarchical functional structure of an information processing apparatus according to the first embodiment of the present invention;



FIG. 2 shows an example of a packet format to be sent and received through a network;



FIG. 3 shows a TCP header format;



FIG. 4 shows a structure of an information processing system according to the first embodiment;



FIG. 5 shows a functional structure of the network subsystem of FIG. 4;



FIG. 6 shows how the packet division processing unit of FIG. 5 divides a long packet into a plurality of short packets;



FIG. 7 shows how the packet concatenation processing of FIG. 5 concatenates short packets so as to generate a long packet;



FIG. 8 shows a structure of an information processing system according to the second embodiment of the present invention; and



FIG. 9 shows a structure of a multiprocessor system according to the third embodiment of the present invention.


Claims
  • 1. A network processing apparatus comprising: a send buffer which receives from a protocol stack a long packet with a data length exceeding a maximum transmission unit defined for a network and stores the long packet;a payload dividing unit which divides a payload of the long packet into a plurality of divided payloads;a header duplicating unit which duplicates a header of the long packet so as to generate a duplicated header for the respective divided payload; anda packet generating unit which attaches the duplicated header to the respective divided payload so as to generate a packet with a data length equal to or less than the maximum transmission unit to be sent to the network.
  • 2. A network processing apparatus comprising: a buffer which receives from a network a plurality of packets with a data length equal to or less than a maximum transmission unit defined for the network and stores the packets;a payload concatenating unit which concatenates payloads of the plurality of packets on a connection-by-connection basis so as to generate a concatenated payload;a header aggregating unit which aggregates headers of the plurality of packets on a connection-by-connection basis so as to generate an aggregated header for the concatenated payload; anda packet generating unit which attaches the aggregated header to the concatenated payload so as to generate a long packet exceeding the maximum transmission unit to be provided to a protocol stack.
  • 3. A network processing apparatus comprising: a receive buffer which receives from a network a plurality of packets with a data length equal to or less than a maximum transmission unit defined for the network, the receive buffer comprising a header buffer and a payload buffer which respectively stores headers and payloads separated from the respective packets;a payload concatenating unit which concatenates the payloads of the plurality of packets on a connection-by-connection basis so as to generate a concatenated payload in the payload buffer;a header aggregating unit which aggregates headers of the plurality of packets on a connection-by-connection basis so as to generate an aggregated header for the concatenated payload in the header buffer; andan input/output interface which transfers to an upper layer the aggregated header from the header buffer and the concatenated payload from the payload buffer, independently of each other.
  • 4. A network processing apparatus as recited in claim 3, wherein the input/output interface transfers each individual header of the plurality of packets to be processed on a connection-by-connection basis, together with the aggregated header or in substitution for the aggregated header.
  • 5. A network processing apparatus as recited in claim 4, wherein the input/output interface transfers the individual headers and/or the aggregated header to a protocol stack, while transferring the concatenated payload to an application layer directly.
  • 6. A network processing apparatus as recited in claim 4, wherein: the network processing apparatus is connected with a multiprocessor system comprising a plurality of processors each including a local memory and a main memory shared by the plurality of processors, one processor among the plurality of processors being operable as a protocol stack for performing protocol processing on data to be exchanged via a network on behalf of the rest of the processors; andthe input/output interface transfers the individual headers and/or the aggregated header to the local memory of the one processor, while transferring the concatenated payload to an area in the main memory to be referred to by the rest of the processors.
  • 7. A multiprocessor system comprising: a plurality of processors each including a local memory, one processor among the plurality of processors being operable as a protocol stack for performing protocol processing on data to be exchanged via a network on behalf of the rest of the processors; anda main memory which is shared by the plurality of processors, wherein:a header and a payload are separated from a packet to be sent or received via a network and the payload is transferred to an area in the main memory to be referred to by the rest of the processors, while the header is transferred to the local memory of the one processor; andthe one processor is configured to perform a protocol processing on the packet according to the header transferred to the local memory thereof.
  • 8. A multiprocessor system comprising: a plurality of processors each including a local memory, one processor among the plurality of processors being operable as a protocol stack for performing protocol processing on data to be exchanged via a network on behalf of the rest of the processors; anda main memory which is shared by the plurality of processors, and wherein:when a plurality of packets with a data length equal to or less than a maximum transmission unit defined for the network are received from the network, data in which payloads of the plurality of packets are concatenated on a connection-by-connection basis is transferred to an area in the main memory to be referred to by the rest of the processors, while each individual header of the plurality of packets concatenated on a connection-by-connection basis are transferred to the local memory of the one processor;the one processor is configured to perform a protocol processing on the plurality of packets according to the individual headers transferred to the local memory thereof, andthe rest of the processors retrieve the concatenated data from the main memory in response to a result of the protocol processing by the one processor.
  • 9. A program product which when executed by a network processor, performs the steps of: receiving from a protocol stack a long packet with a data length exceeding a maximum transmission unit defined for a network and dividing payload of the long packet into a plurality of divided payloads;duplicating a header of the long packet so as to generate a duplicated header for the respective divided payload; andattaching the duplicated header to the respective divided payload so as to generate a packet with a data length equal to or less than the maximum transmission unit to be sent to the network.
  • 10. A program product which when executed by a network processor, performs the steps of: receiving from a network a plurality of packets with a data length equal to or less than a maximum transmission unit defined for the network and concatenating payloads of the plurality of packets on a connection-by-connection basis so as to generate a concatenated payload;aggregating headers of the plurality of packets on a connection-by-connection basis so as to generate an aggregated header for the concatenated payload; andattaching the aggregated header to the concatenated payload so as to generate a long packet exceeding the maximum transmission unit to be provided to a protocol stack.
  • 11. A network protocol processing method comprising: receiving from a protocol stack a long packet with a data length exceeding a maximum transmission unit defined for a network and dividing payload of the long packet into a plurality of divided payloads;duplicating a header of the long packet so as to generate a duplicated header for the respective divided payload; andattaching the duplicated header to the respective divided payload so as to generate a packet with a data length equal to or less than the maximum transmission unit to be sent to the network.
  • 12. A network protocol processing method comprising: receiving from a network a plurality of packets with a data length equal to or less than a maximum transmission unit defined for the network and concatenating payloads of the plurality of packets on a connection-by-connection basis so as to generate a concatenated payload;aggregating headers of the plurality of packets on a connection-by-connection basis so as to generate an aggregated header for the concatenated payload; andattaching the aggregated header to the concatenated payload so as to generate a long packet exceeding the maximum transmission unit to be provided to a protocol stack.
Priority Claims (1)
Number Date Country Kind
2006-086294 Mar 2006 JP national