US2006098662A1PendingUtilityA1

Memory and processor efficient network communications protocol

37
Assignee: GUPTA SUNILPriority: Nov 9, 2004Filed: Nov 9, 2004Published: May 11, 2006
Est. expiryNov 9, 2024(expired)· nominal 20-yr term from priority
H04L 9/40H04L 2101/663H04L 1/0072H04L 67/14H04L 1/0061H04L 69/326H04L 1/0041H04L 1/1841
37
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
1 . 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.