Method for implementing a data communication protocol stack
First Claim
1. A method of implementing source and destination protocol stacks for a multi-layered communications protocol system that generates message data during execution of application layer tasks at a source node, comprising the steps of:
- receiving a protocol data unit into a communications protocol stack of a source node in the form of a linked list of data communications buffers, each buffer having an envelope field for storing said message data and layer headers and a buffer header field for storing buffer data to be used for segmenting and reassembling said protocol data unit, wherein said buffer has a size capable of being transmitted between a source and a destination protocol stack after all layer headers are stored in said envelope field at said source node;
passing access to said buffers to each next protocol layer of said source node, such that each layer gains exclusive access to said buffers;
segmenting said protocol data unit at any layer of said source node by unlinking all or some of said linked buffers;
unlinking any of said buffers that remain linked at the physical layer of said source node;
transmitting the unlinked buffers from said source node to a destination node;
receiving the unlinked buffers into a protocol stack of said destination node as separate data units; and
reassembling said protocol data unit at the destination stack by re-linking said buffers.
1 Assignment
0 Petitions
Accused Products
Abstract
A system of managing memory used by communications tasks of a communications network operating with a multilayered communications protocol. Specially formatted buffers are used to contain data to be passed down the protocol stack of a source node, across a communications link, and up the protocol stack of a destination node. Before entering the source stack, message data is presegmented so that each buffer contains only so much message data as may be transmitted as a single data unit from source to destination, even after all layers of the source stack have added layer headers to that portion. Then, when the buffers are being passed within the source stack, any layer may segment the message data by simply unlinking buffers and adding its layer header to each segment. Inter-layer data passing is by means of exclusive access to buffers by one layer at a time. At the source stack, any layer that must send multiple copies of the message data may checkpoint the buffers and thereby regain the same buffers. At the destination stack, the buffers may be reassembled by relinking them.
81 Citations
6 Claims
-
1. A method of implementing source and destination protocol stacks for a multi-layered communications protocol system that generates message data during execution of application layer tasks at a source node, comprising the steps of:
-
receiving a protocol data unit into a communications protocol stack of a source node in the form of a linked list of data communications buffers, each buffer having an envelope field for storing said message data and layer headers and a buffer header field for storing buffer data to be used for segmenting and reassembling said protocol data unit, wherein said buffer has a size capable of being transmitted between a source and a destination protocol stack after all layer headers are stored in said envelope field at said source node; passing access to said buffers to each next protocol layer of said source node, such that each layer gains exclusive access to said buffers; segmenting said protocol data unit at any layer of said source node by unlinking all or some of said linked buffers; unlinking any of said buffers that remain linked at the physical layer of said source node; transmitting the unlinked buffers from said source node to a destination node; receiving the unlinked buffers into a protocol stack of said destination node as separate data units; and reassembling said protocol data unit at the destination stack by re-linking said buffers.
-
-
2. A method of implementing source and destination protocol stacks for a multi-layered communications protocol system that generates message data during execution of application layer tasks at a source node, comprising the steps of:
-
receiving a protocol data unit into a protocol stack of a source node in the form of a linked list of data communications buffers, each buffer having an envelope field for storing said message data and layer headers and a buffer header field for storing buffer data to be used for segmenting and reassembling said protocol data unit, wherein said buffer has a size capable of being transmitted between a source and a destination protocol stack after all layer headers are stored in said envelope field at said source node; passing access to said buffers to each layer of said source node, such that each layer gains exclusive access to said buffers; at the physical layer of said source node, segmenting said protocol data unit by unlinking each of said buffers; transmitting the unlinked buffers from said source node to a destination node; receiving the unlinked buffers into a protocol stack of said destination node as separate data units; and reassembling said protocol data unit at the destination stack by re-linking said buffers, said reassembling step being performed at a peer layer of the layer at which said segmenting step was performed.
-
-
3. A method of communicating message data from a source node to a destination node of a communications network that follows a multi-layered communications protocol with the message data being generated during execution of an application layer at the source node, comprising the steps of:
-
formatting one or more data communications buffers, each buffer having an envelope field for storing portions of the message data and layer headers and a buffer header field for storing buffer data to be used for segmenting and reassembling said protocol data unit; storing said message data in aid envelope field, wherein said buffer has a size such that said envelope contains only so much message data as can be transmitted between said source node and said destination node after all layers of said source node have added their layer headers to said message data; receiving a linked list of said buffers as a protocol data unit into a protocol stack of said source node; at any protocol layer of the source stack other than the physical layer, segmenting said protocol data unit by unlinking said buffers; passing access to said buffers to each next layer of said source node, such that each layer gains exclusive access to said buffers; at the physical layer of said source stack, unlinking each of said buffers, if not already unlinked, such that each of said buffers may be transmitted as a separate data unit; transmitting the unlinked buffers from said source node to the destination node; at the destination node, reassembling said protocol data unit by re-linking said buffers and; reconstructing said message data from said portions of message data stored in said buffers.
-
-
4. A method of implementing source and destination protocol stacks for a multi-layered communications protocol system that generates message during execution of tasks at an application layer of a source node and that executes various communication tasks at other layers, comprising the steps of:
-
receiving a protocol data unit into a communications protocol stack of a source node in the form of a linked list of data communications buffers, each buffer having an envelope field for storing said message data and layer headers and a buffer header field for storing buffer data to be used for segmenting and reassembling said protocol data unit, wherein said buffer has a size capable of being transmitted between a source and a destination protocol stack after all layer headers are stored in said envelope field at said source node; passing access to said buffers to each next layer of said source node, such that each layer gains exclusive access to said buffers; segmenting said protocol data unit at any layer of said source node by unlinking some or all of the linked buffers; at any layer of said source node, storing payload data in said buffer header field representing the state of the protocol data unit so that said any layer may regain access to said protocol data unit in the same state after performing said passing access step; unlinking any of said buffers that remain linked at the physical layer of said source node; transmitting the unlinked buffers from said source node to a destination node; receiving the unlinked buffers into a protocol stack of said destination node as separate data units; and reassembling said protocol data unit at the destination stack by re-linking said buffers.
-
-
5. A method of using data communications buffers to implement a protocol stack of a source node of a communications network following a multi-layered communications protocol, such that message data is generated at an application layer of the source node such that no physical copying is required, comprising the steps of:
-
before entering the protocol stack, formatting a protocol data unit as a plurality of linked buffers, each buffer having an envelope field and a buffer header field for storing buffer data to be used for segmenting said protocol data unit at any layer, such that said envelope field contains at least a portion of said message data, wherein said portion is sufficiently small such that said buffer may be transmitted between a source node and a destination node as a complete data unit after all protocol layers have stored layer header data in said envelope; passing said protocol data unit down said stack, from layer to layer of said stack, by granting each successive layer exclusive access to said protocol data unit; during said passing step, using a pointer subfield of said buffer header field to unlink said buffers if said protocol data unit is too large for any layer of said protocol stack; and receiving said buffers at a physical layer of said protocol stack.
-
-
6. A method of using data communications buffers to implement a protocol stack of a source node of a communications network following a multi-layered communications protocol, such that message data is generated at an application layer of the source node such that no physical copying is required, comprising the steps of:
-
before entering the protocol stack, formatting a protocol data unit as a plurality of linked buffers, each buffer having an envelope field and a buffer header field for storing buffer data to be used for segmenting said protocol data unit at any layer, such that said envelope field contains at least a portion of said message data, wherein said portion is sufficiently small such that said buffer may be transmitted between a source node and a destination node as a complete data unit after all protocol layers have stored layer header data in said envelope; passing said protocol data unit down said stack, from layer to layer of said stack, by granting each successive layer exclusive access to said protocol data unit; and at any one layer of said protocol stack, using a payload offset subfield of said buffer header to store data representing the state of said protocol data unit at said any one layer, such that said any one layer may pass said protocol data unit to another layer and subsequently regain access to said protocol data unit in said state.
-
Specification