METHOD AND SYSTEM FOR ESTABLISHING CONNECTIONS BETWEEN NODES IN A COMMUNICATION NETWORK
A method, system and article of manufacture are disclosed for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including at least first and second nodes. The method comprises the steps of verifying availability of the second node by the first node; and sending an exchange identification request by the first node to the second node, this request including information related to protocols supported by the first node. An exchange identification response is received by the first node from the second node, this response including information related to protocols supported by the second node. Also, the verifying step includes the steps of sending a request to the second node to initiate a link level connection between the first node and the second node, and confirming this connection upon receiving a response from the second node.
Latest IBM Patents:
- Shareable transient IoT gateways
- Wide-base magnetic tunnel junction device with sidewall polymer spacer
- AR (augmented reality) based selective sound inclusion from the surrounding while executing any voice command
- Confined bridge cell phase change memory
- Control of access to computing resources implemented in isolated environments
1. Field of the Invention
This invention generally relates to multi-node communication or computer networks, and more specifically, the invention relates to establishing connections or links between nodes of such networks.
2. Background Art
In many multi-node communication systems, such as computer systems having a Systems Network Architecture (SNA), links must be established between two nodes of the system before these nodes can fully communicate with each other. Various standard procedures are known for establishing these links. These known procedures include EEDLC (Enterprise Extender Data Link Control) and LLC2 (Logical Link control type 2).
In these procedures, a first, or primary, node, trying to connect with a second, or secondary, node, will attempt to determine the availability of that secondary node. Each of these nodes may also attempt to determine various parameters of the other node such as node type, Node ID, Link Station role etc. Still other parameters, maximum I-field length that sender can receive, may be negotiated during the connection attempt. If the second node is ready, willing and able to work with the first node, a successful connection between the nodes may be established. However, if the two nodes are not able to communicate together, the second node may send to the first node a message indicating a failed connection attempt.
In these connection efforts, numerous messages may be exchanged between the nodes during the connection effort. In the existing scenario, both the primary (mainframe side) node and secondary (SNA node) node starts with a TEST command (followed by a NULL XID in case of LLC2) or a NULL XID (in case of EEDLC). Then both the partners send XID's back and forth before establishing the link. The reason for sending multiple XID's is that, the XID state is progressively moved from one state to the next after receiving a positive response from the partner.
An object of the present invention is to simplify procedures for establishing connections between nodes of a multi-node communication system.
Another object of this invention is to reduce the number of exchanges between nodes of a multi-node communication system while establishing a connection between the nodes.
A further object of the invention is to reduce the data traffic needed to establish a connection between two nodes of a communication network.
These and other objectives are attained with a method, system and article of manufacture for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including a first node and a second node. The method comprises the steps of verifying availability of the second node by the first node; and sending an exchange identification (XID)) request by the first node to the second node, the XID request including information related to protocols supported by the first node.
An exchange identification (XID) response is received by the first node from the second node, the XID response including information related to protocols supported by the second node. Also, the verifying step includes the steps of sending a request to the second node to initiate a link level connection between the first node and the second node, and confirming the link level connection upon receiving a response from the second node.
In the preferred embodiment, the step of sending the exchange identification request comprises the steps of identifying protocols supported by the first node; arranging, in a predetermined sequence, information related to the protocols supported by the first node; and forwarding the arranged information in a single XID request by the first node to the second node. In addition, preferably, the receiving step comprises the step of receiving information related to protocols supported by the second node, wherein the second node forwards the received information in a single XID response to the first node, the received information being arranged in a predetermined sequence. In this embodiment of the invention, intermediate XID requests and responses to the intermediate XID requests are reduced.
In a preferred implementation of the invention, described below in detail, either of the partners can start with a PROBE command to verify the reachability of the other partner. When the primary (the side initiating the communication) node gets a response back from the secondary (remote) node for the PROBE command, then the primary partner can start with XID command with its capabilities. When the remote partner agrees with the capability of the primary then the secondary can send positive XID response back to the primary node. The primary node can then send a Set Mode to complete successful link activation.
In case the secondary node cannot accept the primary node's capabilities, the secondary node can send a negative response along with its capabilities. If the primary node accepts the capabilities of the secondary node then it will send Set Mode to complete successful link activation. If the primary node cannot accept the capabilities of the secondary node, it can send a Disconnect Mode (DM) to complete failure of link activation.
In the current implementation, bringing up the link consumes more time and utilizes more CPU cycles of the mainframe. This, in turn, requires the customer to pay more. Additionally, the current methodology also causes lot of data traffic on the network.
The preferred embodiment of the invention provides a number of important advantages. For example, this embodiment of the invention reduces the time for bringing up the link, increases link efficiency, and lowers the number of link failure. In addition, the present invention may be used to reduce the number of re-transmission due to packet loss, reduce the CPU cycle needed for bringing up the link, and improve the network bandwidth usage by not sending XID's when the partner is not reachable.
The number of XID's transmitted in the preferred implementation may be only 40% of the existing implementation. This invention may be very helpful to, among others, any software organization developing application/product in the SNA space.
Further benefits and advantages of this invention will become apparent from a consideration of the following detailed description, given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.
The present invention, generally, provides a method and system for establishing connections between a plurality of nodes in a communication network, and
In the depicted example, server 204 is connected to network 202 along with storage unit 206. In addition, clients 208, 210, and 212 are connected to network 202. These clients 208, 210, and 212 may be, for example, personal computers or network computers. In this example, server 204 provides data, such as boot files, operating system images, and applications to clients 208-212. Clients 208, 210, and 212 are clients to server 204. Network data processing system 200 may include additional servers, clients, and other devices not shown.
In the illustrated example, network data processing system 200 is the Internet with network 202 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 200 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
As mentioned above, the present invention provides a method, system and article of manufacture for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including a first node and a second node. The method comprises the steps of verifying availability of the second node by the first node; and sending an exchange identification (XID) request by the first node to the second node, the XII) request including information related to protocols supported by the first node.
An exchange identification (XID) response is received by the first node from the second node, the XII response including information related to protocols supported by the second node. Also, the verifying step includes the steps of sending a request to the second node to initiate a link level connection between the first node and the second node, and confirming the link level connection upon receiving a response from the second node.
In the preferred embodiment, the step of sending the exchange identification request comprises the steps of identifying protocols supported by the first node; arranging, in a predetermined sequence, information related to the protocols supported by the first node; and forwarding the arranged information in a single XII) request by the first node to the second node. In addition, preferably, the receiving step comprises the step of receiving information related to protocols supported by the second node, wherein the second node forwards the received information in a single XID response to the first node, the received information being arranged in a predetermined sequence. In this embodiment of the invention, intermediate XID requests and responses to the intermediate XID requests are reduced.
More specifically, with reference to
In case the secondary node cannot accept the primary node's capabilities, the secondary node can send a negative response along with its capabilities. If the primary node accepts the capabilities of the secondary node then it will send Set Mode to complete successful link activation. If the primary node cannot accept the capabilities of the secondary node, it can send a Disconnect Mode (DM) to complete failure of link activation.
The Probe command is used during connection establishment to determine the reachability of the partner during link activation and compatibility of the protocol stack, including the ability to support the new XID format disclosed herein.
With reference to
The preferred embodiment of the invention provides several significant advantages. For instance this embodiment of the invention reduces the time for bringing up the link, increases link efficiency, and lowers the number of link failure. In addition, the present invention may be used to reduce the number of re-transmission due to packet loss, reduce the CPU cycle needed for bringing up the link, and improve the network bandwidth usage by not sending XID's when the partner is not reachable.
The number of XID's transmitted in the preferred implementation may be only 40% of the existing implementation. This invention may be very helpful to, among others, any software organization developing application/product in the SNA space.
Referring to
Peripheral component interconnect (PCI) bus bridge 414 connected to I/O bus 412 provides an interface to PCI local bus 416. A number of modems may be connected to PCI local bus 416. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients may be provided through modem 418 and network adapter 420 connected to PCI local bus 416 through add-in boards.
Additional PCI bus bridges 422 and 424 provide interfaces for additional PCI local buses 426 and 428, from which additional modems or network adapters may be supported. In this manner, data processing system 400 allows connections to multiple network computers. A memory-mapped graphics adapter 430 and hard disk 432 may also be connected to I/O bus 412 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
In the example given in
An operating system runs on processor 502 and is used to coordinate and provide control of various components within data processing system 500 in
Those of ordinary skill in the art will appreciate that the hardware in
As another example, data processing system 500 may be a stand-alone system configured to be bootable without relying on some type of network communication interfaces As a further example, data processing system 500 may be a personal digital assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
The depicted example in
As will be readily apparent to those skilled in the art, the present invention can be realized in hardware, software, or a combination of hardware and software. Any kind of computer/server system(s)—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general-purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized.
The present invention, or aspects of the invention, can also be embodied in a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
While it is apparent that the invention herein disclosed is well calculated to fulfill the objects stated above, it will be appreciated that numerous modifications and embodiments may be devised by those skilled in the art, and it is intended that the appended claims cover all such modifications and embodiments as fall within the true spirit and scope of the present invention.
Claims
1. A method for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including a first node and a second node, the method comprising the steps of:
- verifying availability of the second node by the first node;
- sending an exchange identification (XID) request by the first node to the second node, the XID request including information related to protocols supported by the first node; and
- receiving an exchange identification (XID) response by the first node from the second node, the XID response including information related to protocols supported by the second node; and
- wherein the verifying step includes the steps of:
- sending a request to the second node to initiate a link level connection between the first node and the second node; and
- confirming the link level connection upon receiving a response from the second node.
2. The method of claim 1, wherein the step of sending the exchange identification request comprises the steps of:
- identifying protocols supported by the first node;
- arranging, in a predetermined sequence, information related to the protocols supported by the first node; and
- forwarding the arranged information in a single XID request by the first node to the second node.
3. The method of claim 1, wherein the receiving step comprises the steps of:
- receiving information related to protocols supported by the second node, wherein the second node forwards the received information in a single XID response to the first node, the received information being arranged in a predetermined sequence.
4. The method of claim 1, wherein intermediate XID requests and responses to the intermediate XID requests are reduced.
5. The method of claim 1, wherein the MD request identifies capabilities of the first node.
6. The method of claim 5, wherein:
- when the second node accepts the capabilities of the first node, the XID response is a positive response; and
- the first node, in response to receiving said positive response, sends a message to the second node indicating successful link activation between the first and second nodes.
7. The method of claim 5, wherein if the second node cannot accept the capabilities of the first node, then the XID response is a negative response and indicates capabilities of the second node.
8. The method of claim 7, wherein if the first node accepts the capabilities of the second node, then the first node sends to the second node a message indicting successful link activation between the first and second nodes.
9. The method of claim 8, wherein if the first node does not accept the capabilities of the second node, then the first node sends to the second node a message to complete failure of a link activation between the first and second nodes.
10. The method of claim 1, wherein:
- the first node is a client node or a host node;
- if the first node is the client node, then the second node is the host node; and
- if the first node is the host node, then the second node is the client node.
11. A system for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including a first node and a second node, the system comprising:
- one or more processor units on the first node configured for verifying availability of the second node, and for sending an exchange identification (XID) request to the second node, the XID request including information related to protocols supported by the first node; and
- one or more processor units on the second node and configured for sending an exchange identification (XID) to the first node, the XID response including information related to protocols supported by the second node; and
- wherein said verifying step is done by sending a request to the second node to initiate a link level connection between the first node and the second node; and confirming the link level connection upon receiving a response from the second node.
12. The system of claim 11, wherein the exchange identification request is sent by:
- identifying protocols supported by the first node;
- arranging, in a predetermined sequence, information related to the protocols supported by the first node; and
- forwarding the arranged information in a single XID request by the first node to the second node.
13. The system of claim 11, wherein the receiving is done by:
- receiving information related to protocols supported by the second node, wherein the second node forwards the received information in a single XID response to the first node, the received information being arranged in a predetermined sequence.
14. The system of claim 11, wherein intermediate XID requests and responses to the intermediate XID requests are reduced.
15. The system of claim 11, wherein:
- the XID request identifies capabilities of the first node.
- when the second node accepts the capabilities of the first node, the XID response is a positive response;
- the first node, in response to receiving said positive response, sends a message to the second node indicating successful link activation between the first and second nodes;
- if the second node cannot accept the capabilities of the first node, then the XID response is a negative response and indicates capabilities of the second node;
- if the first node accepts the capabilities of the second node, then the first node sends to the second node a message indicting successful link activation between the first and second nodes; and
- if the first node does not accept the capabilities of the second node, then the first node sends to the second node a message to complete failure of a link activation between the first and second nodes.
16. An article of manufacture comprising:
- at least one computer usable medium having computer readable program code logic to execute a machine instruction in a processing unit for establishing a connection between a plurality of nodes in a communication network, the plurality of nodes including a first node and a second node, the computer readable program code logic when executing, performing the following steps:
- verifying availability of the second node by the first node;
- sending an exchange identification (XID) request by the first node to the second node, the XID request including information related to protocols supported by the first node; and
- receiving an exchange identification (XID) response by the first node from the second node, the XID response including information related to protocols supported by the second node; and
- wherein the verifying step includes the steps of:
- sending a request to the second node to initiate a link level connection between the first node and the second node; and
- confirming the link level connection upon receiving a response from the second node.
17. The article of manufacture of claim 16, wherein the step of sending the exchange identification request comprises the steps of:
- identifying protocols supported by the first node;
- arranging, in a predetermined sequence, information related to the protocols supported by the first node; and
- forwarding the arranged information in a single XID request by the first node to the second node.
18. The article of manufacture of claim 16, wherein the receiving step comprises the steps of:
- receiving information related to protocols supported by the second node, wherein the second node forwards the received information in a single XID response to the first node, the received information being arranged in a predetermined sequence.
19. The article of manufacture of claim 16, wherein the XID request identifies capabilities of the first node.
20. The article of manufacture of claim 19, wherein:
- when the second node accepts the capabilities of the first node, the XID response is a positive response;
- the first node, in response to receiving said positive response, sends a message to the second node indicating successful link activation between the first and second nodes;
- if the second node cannot accept the capabilities of the first node, then the XID response is a negative response and indicates capabilities of the second node;
- if the first node accepts the capabilities of the second node, then the first node sends to the second node a message indicting successful link activation between the first and second nodes; and
- if the first node does not accept the capabilities of the second node, then the first node sends to the second node a message to complete failure of a link activation between the first and second nodes.
Type: Application
Filed: Sep 16, 2009
Publication Date: Mar 17, 2011
Patent Grant number: 8140688
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION (Armonk, NY)
Inventors: John O. Mitchell (Raleigh, NC), Sakthimurugan Arumugam (Bangalore), Srinivasan Sivaraman (Bangalore)
Application Number: 12/560,966
International Classification: G06F 15/16 (20060101);