Abstract:
A method for identifying the TCP stack type of a transmitting node is disclosed in which a SYN packet is identified by the setting of the SYN bit in the packet. Following the identification of a set SYN bit in the SYN packet, the content of the data field includes a code to identify the TCP stack type associated with the node that transmitted the SYN packet.

Description:
TECHNICAL FIELD 
     The present disclosure relates generally to computer systems and information handling systems, and, more particularly, to a method for identifying the transmission protocol stack. 
     BACKGROUND 
     As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. 
     An information handling system, including computer systems, may communicate with one another according to the TCP/IP (Transmission Control Protocol/Internet Protocol) communication standard, which is one foundation of communication through the Internet. Each transmitting and receiving node is associated with a TCP/IP stack. The TCP/IP stack is the software that implements TCP/IP. The TCP/IP stacks of each node may vary by type. For example, a node may operate according to a TCP stack that is TCP offload engine-based or operating system software based, but there is no mechanism for identifying the TCP stack type to other nodes in the communication network. For a connection between two nodes, knowledge of the type of TCP stack associated each node could be useful with respect to security and resource allocation decision making. 
     SUMMARY 
     In accordance with the present disclosure, a method for identifying the TCP stack type of a transmitting node is disclosed in which a SYN packet is identified by the setting of the SYN bit in the packet. Following the identification of a set SYN bit in the SYN packet, the content of the data field includes a code to identify the TCP stack type associated with the node that transmitted the SYN packet. The TCP stack type identification method and system set out herein is advantageous in that it provides a method for identifying the TCP stack type of a node that is transmitting according to the TCP/IP protocol, thereby enabling security and resource allocation decision-making that is dependent on the stack type of the transmitting node. The TCP stack identification method and system is also advantageous in that it operates within the existing fields of a TCP packet. Thus, additional formatting of a TCP packet is not necessary. Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein: 
         FIG. 1  is a logical diagram of a TCP/IP connection; 
         FIG. 2  is a diagram of the format of a TCP packet; 
         FIG. 3  is a table of a set of TCP stack types and stack identifiers; and 
         FIG. 4  is a flow diagram of method steps for identifying a SYN packet that includes an identification of a TCP stack type of the transmitting node 
     
    
    
     DETAILED DESCRIPTION 
     For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communication with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components. 
     Shown in  FIG. 1  is a logical diagram of a TCP/IP connection, which is indicated generally at  10 , between two communications nodes, which are identified as a client node  12  and a server node  16 . Client node  12  includes a client TCP stack  14 , and server node  16  includes a server TCP stack  18 . A communication session between client node  12  and server node  16  may begin with the transmission of a pair of synchronization, or SYN, packets and acknowledgement, or ACK packets. At step  11 , client node  12  transmits a SYN packet to server node  16 . At step  13 , server node  16  returns two packets to client node  12 . One of the two packets is a ACK packet, which serves to acknowledge that server node  16  received the SYN packet from client node  12 . The other packet of a SYN packet that is transmitted from the server node  16  in this example to the client node  12 . After the client node  12  receives the SYN packet and the ACK packet from the server node  16 , client node  12  returns at step  15  an ACK packet to the server node  16 . As can be seen from the flow of synchronization messages in  FIG. 1 , each node sends to the other a SYN packet  20 . 
     Shown in  FIG. 2  is a diagram of the format of a TCP packet  20 . The first two bytes of the packet are the source port of the transmission; and the second two bytes of the packet are the destination port of the transmission. Packet  20  includes a synchronization bit at  22 . If this bit is set to a logical  1 , then it is understood that the packet is a SYN packet. When the synchronization bit  22  is set, the packet is a SYN packet and the data field  24  includes an identifier of the TCP stack type of the transmitting node. An example of a set of TCP stack types and stack identifiers is included in the table  30  in  FIG. 3 . As one example, if code  001  is included in data field  24 , then it is known that the TCP stack type of the transmitting node is a TCP stateless stack type. 
     Shown in  FIG. 4  is a series of method steps for identifying a SYN packet that includes an identification of a TCP stack type of the transmitting node. At step  40 , a node receives a packet from a transmitting node. At step  42 , the receiving node identifies whether the SYN bit of the packet has been set, indicating that the packet is a SYN packet. If the SYN packet has been set, the receiving node at step  44  reads in the stack identifier from the data field of the SYN packet. After the receiving node reads in the identifier for the stack type, the receiving node can associate at step  46  the identifier to a stack type for the transmitting node. Once the receiving node is aware of the stack type of the transmitting node, the receiving node can issue an appropriate set of security or resource allocations on the basis of the stack type of the transmitting node. 
     The TCP stack type identification method and system set out herein is advantageous in that it provides a method for identifying the TCP stack type of a node that is transmitting according to the TCP/IP protocol, thereby enabling security and resource allocation decision-making that is dependent on the stack type of the transmitting node. The TCP stack identification method and system is also advantageous in that it operates within the existing fields of a TCP packet. Thus, additional formatting of a TCP packet is not necessary. Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the invention as defined by the appended claims.