Memory and processor efficient network communications protocol
Abstract
System and method for a full featured network communications protocol that is both memory and processor efficient. A preferred embodiment comprises a method for transmitting information between electronic devices, the method comprising creating a connection between a pair of electronic devices, sending a packet between the pair, acknowledging a receipt of the packet by a receiver of the packet, and dissolving the connection when it is no longer needed. The creating of the connection comprises assigning a port number to the connection at an initiating electronic device and then transmitting a connection request containing the port number to a servicing electronic device. After the transmitting, the creating further comprises receiving a second port number to the connection from the servicing electronic device.
Claims
exact text as granted — not AI-modified1 . A method for communicating between electronic devices in a communications network, the method comprising:
creating a connection between a first electronic device and a second electronic device, wherein the creating comprises,
assigning a first port number to the connection at the first electronic device;
transmitting a connection request to the second electronic device;
receiving a second port number to the connection from the second electronic device;
sending a packet between the first electronic device and the second electronic device, wherein the packet contains at least a portion of the communications being transmitted, wherein the packet can originate at either the first electronic device or the second electronic device; acknowledging a receipt of the packet by a receiver of the packet; and dissolving the connection.
2 . The method of claim 1 further comprising after the sending, repeating the sending and acknowledging for additional packets.
3 . The method of claim 1 further comprising, at the second electronic device:
receiving the connection request from the first electronic device; assigning the second port number to the connection at the second electronic device; and transmitting the second port number to the connection to the first electronic device.
4 . The method of claim 1 , wherein the creating is repeated for every pair of electronic devices that are communicating.
5 . The method of claim 1 , wherein an electronic device can execute multiple applications simultaneously, wherein multiple connections between a single pair of electronic devices can exist, and wherein each connection connects a different pair of applications.
6 . The method of claim 1 further comprising prior to the creating, acquiring a protocol address for the first electronic device and the second electronic device.
7 . The method of claim 6 , wherein the acquiring comprises:
sending an inquiry to a host when an electronic device is connected to the communications network; and receiving a protocol address from the host.
8 . The method of claim 7 , wherein the acquiring further comprises resetting a sequence number after the receiving.
9 . The method of claim 1 further comprising after the sending, reordering the packet.
10 . The method of claim 9 , wherein the reordering comprises:
comparing a sequence number from the packet with an internal sequence number associated with the connection; if the sequence number from the packet is equal to the internal sequence number,
incrementing the internal sequence number;
processing contents of the packet; and
if the sequence number from the packet is not equal to the internal sequence number,
resequencing the packet.
11 . The method of claim 10 , wherein the packet has a source, and wherein the resequencing comprises sending a negative acknowledgment to the source of the packet.
12 . The method of claim 10 , wherein the packet has a source, and wherein the resequencing comprises:
checking for sufficient space in a buffer to store the packet; inserting the packet in the buffer if there is sufficient space in the buffer; and sending a negative acknowledgment to the source of the packet if there is insufficient space in the buffer.
13 . The method of claim 1 , wherein the acknowledging comprises:
checking the packet for damage; sending a negative acknowledgment if the packet is damaged; if the packet is undamaged,
sending an acknowledgment;
processing the packet;
checking a sequence number of the packet with an internal sequence number;
buffering the packet if the sequence number of the packet is not equal to the internal sequence number and if there is sufficient space in a buffer to store the packet; and
sending a negative acknowledgment if there is no space in the buffer to store the packet.
14 . The method of claim 1 further comprising after the acknowledging, processing the packet.
15 . The method of claim 14 , wherein the packet has a sequence number, and wherein the processing comprises:
determining if the packet is either an ACK packet or a NAK packet; if the packet is an ACK packet, marking transmitted packets with sequence numbers less than or equal to a sequence number in the ACK packet as successfully transmitted; if the packet is a NAK packet, resending transmitted packets with sequence number greater than or equal to a sequence number in the NAK packet; if the packet is not an ACK packet or a NAK packet, providing the packet to an application associated with the connection.
16 . A header for a transmission packet comprising:
an identifier field comprising data to distinguish traffic type; a source address field following the identifier field, the source address field comprising an address of a source device and a source port of the header; a destination address field following the source address field, the destination address field comprising an address of a destination device and a destination port of the header; a payload error check code field following the destination address field, the payload error check code field comprising an error check for a data payload contained in the transmission packet; a payload size field following the payload error check code field, the payload size field comprising a size indicator of the data payload; a hop count field following the payload size field, the hop count field comprises a count of a maximum number of routes the transmission packet can traverse; a sequencing field following the hop count field, the sequencing field comprising a value used to order the transmission packet; and a header error check code field following the sequencing field, the header error check code field comprising an error check for the header.
17 . The header of claim 16 , wherein the header comprises a sixteen byte binary stream.
18 . The header of claim 17 , wherein the identifier field comprises a two byte binary stream, wherein the source address field comprises a four byte binary stream, wherein the destination address field comprises a four byte binary stream, wherein the payload error check code field comprises a two byte binary stream, wherein the payload size field comprises a one byte binary stream, wherein the hop count field comprises a one byte binary stream, wherein the sequencing number comprises a one byte binary stream, and wherein the header error check code field comprises a one byte binary stream.
19 . The header of claim 16 , wherein the error check in the payload error check code field comprises a value computed using a cyclic redundancy code of length 16 (CRC-16) code, and wherein a polynomial expressed as: X 16 +X 12 +X 5 +1 is used to generate the CRC-16 value.
20 . The header of claim 16 , wherein the sequencing field comprises a value ranging from 1 to 254.
21 . The header of claim 16 , wherein the data payload immediately follows the header in the transmission packet.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.