Session layer communication using ID-oriented network

文档序号:1510737 发布日期:2020-02-07 浏览:6次 中文

阅读说明:本技术 一种采用面向id的网络的会话层通信 (Session layer communication using ID-oriented network ) 是由 黎仁蔚 基兰·马可贾尼 于 2018-06-07 设计创作,主要内容包括:本发明提供了用于在两个或两个以上网络端点之间提供会话层连接的系统和方法。通过本发明实施例创建和保持的会话层连接采用端点标识符(EID),并且,当发生网络故障或当端点从一个网络连接移到另一网络连接而导致下层连接中断时,所述会话层连接支持会话层连续性。(The present invention provides systems and methods for providing session layer connections between two or more network endpoints. Session layer connections created and maintained by embodiments of the present invention employ Endpoint Identifiers (EIDs) and support session layer continuity when a network failure occurs or when an endpoint moves from one network connection to another resulting in a break in the underlying connection.)

1. A method for a first network element to establish a session layer connection with a second network element, comprising:

receiving a request from an application layer of the first network element to listen for a session layer connection request, wherein the first network element is identified by a first Endpoint Identifier (EID);

instructing the transport layer of the first network element to monitor a new transport layer connection request;

receiving a first transport layer connection request from the second network element, wherein the transport layer connection request includes a first Internet Protocol (IP) address, the second network element identified by a second EID;

establishing a first transport layer connection with the second network element;

receiving a first session-layer connection request from the second network element, wherein the first session-layer connection request comprises a session Identifier (ID) and the second EID; and

and establishing a session layer connection with the second network element.

2. The method of claim 1, wherein establishing the session layer further comprises sending a session layer acknowledgement message to the second network element over the transport layer connection.

3. The method of claim 1, wherein establishing the session-layer connection further comprises:

receiving credential information from the second network element over the transport layer connection; and

and authenticating the certificate information.

4. The method of claim 1, further comprising:

receiving a first session layer message from the second network element over the session layer connection;

forwarding the first session layer message to the application layer;

receiving a second session layer message from the application layer, wherein the second session layer message contains an instruction indicating that the second session layer message is to be sent to the second network element; and

and sending the second session layer message to the second network element through the session layer connection.

5. The method of claim 4, further comprising:

maintaining a local message sequence number associated with the session layer connection;

inserting the local message sequence number into each of the second session layer messages;

incrementing the local message sequence number after sending each session layer message;

maintaining a local message acknowledgment number associated with the session layer connection; and

and updating the local message confirmation number according to the received message confirmation number extracted from each first session layer message.

6. The method of claim 5, further comprising:

receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request includes the first IP address;

establishing a second transport layer connection with the second network element;

receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request comprises the session ID and the second EID;

reestablishing the session layer connection with the second network element; and

and resynchronization is carried out on the session layer connection according to the local message sequence number and the local message confirmation number.

7. The method of claim 5, further comprising:

receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request includes a second IP address;

establishing a second transport layer connection with the second network element;

receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request comprises the session ID and the second EID;

reestablishing the session layer connection with the second network element; and

and resynchronization is carried out on the session layer connection according to the local message sequence number and the local message confirmation number.

8. The method of claim 4, wherein each of the first session layer messages comprises a session header, wherein the session header comprises the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number.

9. A method for a first network element to establish a session layer connection with a second network element, comprising:

receiving a request to establish a new session-layer connection from an application layer of the first network element, wherein the first network element is identified by a first Endpoint Identifier (EID), the second network element is identified by a second EID, and the request includes the second EID;

converting the second EID to a second Internet Protocol (IP) address associated with the second network element;

generating a session Identifier (ID), wherein the session ID uniquely identifies the session-layer connection;

instructing a transport layer of the first network element to establish a transport layer connection with the second network element in accordance with a first IP address and the second IP address identifying the first network element, wherein the transport layer is associated with the first network element; and

and establishing the session layer connection with the second network element through the transport layer connection and the session ID.

10. The method of claim 9, wherein converting the second EID to the second IP address comprises:

sending a request message to a mapping system, wherein the request message includes the second EID; and

receiving a response message from the mapping system, wherein the response message includes the second IP address.

11. The method of claim 9, further comprising:

receiving a first session layer message from the second network element over the session layer connection;

forwarding the first session layer message to the application layer;

receiving a second session layer message from the application layer, the second session layer message including an instruction to send the second session layer message to the second network element; and

and sending the second session layer message to the second network element through the session layer connection.

12. The method of claim 11, further comprising:

maintaining a local message sequence number associated with the session layer connection;

inserting the local message sequence number into each of the second session layer messages;

incrementing the message sequence number after each session layer message is sent;

maintaining a local message acknowledgment number associated with the session layer connection; and

and updating the local message confirmation number according to the received message confirmation number extracted from each first session layer message.

13. The method of claim 12, further comprising:

identifying an interruption in the transport layer connection;

reestablishing a transport layer connection with the second network element;

receiving a new session layer message from the second network element; and

and resynchronization is carried out on the session layer connection according to the local message sequence number and the local message confirmation number.

14. The method of claim 9, wherein each of the first session layer messages comprises a session header, wherein the session header comprises the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number.

15. A first network element, comprising:

a memory for storing programming logic to implement an application layer, a session layer, a transport layer, a network layer, and a network access layer;

a network interface coupled to a second network element over the Internet, wherein the first network element is identified on the Internet by a first Endpoint Identifier (EID) and the second network element is identified on the Internet by a second EID; and

a processor coupled with the memory and the network interface, wherein the processor is configured to:

receiving a request from the application layer of the first network element to listen for a session layer connection request;

instructing the transport layer of the first network element to listen for a new transport layer connection request;

receiving a transport layer connection request from the second network element over the network interface;

establishing a transport layer connection with the second network element through the network interface;

receiving a session layer connection request from the second network element over the network interface, wherein the session layer connection request comprises a session Identifier (ID); and

and establishing a session layer connection with the second network element through the network interface.

16. The first network element of claim 15, wherein the processor is further configured to:

receiving a first session layer message from the second network element over the session layer connection;

forwarding the first session layer message to the application layer of the first network element;

receiving a second session layer message from the application layer of the first network element, wherein the second session layer message contains an instruction to send the second session layer message to the second network element; and

and sending the second session layer message to the second network element through the session layer connection.

17. The first network element of claim 16, wherein each of the first session layer messages comprises a session header, wherein the session header comprises the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number.

18. The first network element of claim 17, wherein the memory comprises a local message sequence number and a local message acknowledgement number, and wherein the processor is further configured to:

inserting the local message sequence number into each of the second session layer messages;

incrementing the local message sequence number after sending each session layer message; and

and updating the local message confirmation number according to the received message confirmation number extracted from each first session layer message.

19. The first network element of claim 18, wherein the processor is further configured to:

receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request includes a first Internet Protocol (IP) address;

establishing a second transport layer connection with the second network element;

receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request comprises the session ID and the second EID;

reestablishing the session layer connection with the second network element; and

and resynchronization is carried out on the session layer connection according to the local message sequence number and the local message confirmation number.

20. The first network element of claim 18, wherein the processor is further configured to:

receiving a second transport layer connection request from the second network element, wherein the second transport layer resynchronization request includes a second Internet Protocol (IP) address;

establishing a second transport layer connection with the second network element;

receiving a second session layer resynchronization request from the second network element, wherein the second session layer connection request comprises the session ID and the second EID;

reestablishing the session layer connection with the second network element; and

and resynchronization is carried out on the session layer connection according to the local message sequence number and the local message confirmation number.

Background

The transmission control protocol/internet protocol (TCP/IP) is a protocol of the public internet (i.e., "internet"). However, as can be seen from a rough comparison between the OSI reference model 100 shown in FIG. 1 and the conventional TCP/IP protocol stack, TCP/IP lacks a "session layer," which is a necessary means for cooperating computers to organize and synchronize their dialogs and manage their data exchanges. Since the conventional TCP/IP protocol stack lacks a formal session layer, the applications are responsible for maintaining their connections to each other and for performing the resynchronization required after all underlying connections are broken.

Disclosure of Invention

Embodiments of the present invention are directed to creating and maintaining session layer connections over a conventional TCP/IP based network.

In a first embodiment, a method for a first network element having a first end point identifier (EID) to establish a session layer connection with a second network element identified by a second EID includes: receiving a request from an application layer for listening to session layer connection requests, wherein the application layer is associated with the first network element; instructing a transport layer to listen for a new transport layer connection request, wherein the transport layer is associated with the first network element; receiving a first transport layer connection request from the second network element, wherein the transport layer connection request includes a first IP address; establishing a first transport layer connection with the second network element; receiving a first session-layer connection request from the second network element, wherein the first session-layer connection request includes a session Identifier (ID) and the second EID; and establishing a session layer connection with the second network element.

In a variation of the first embodiment, establishing the session layer may comprise sending a session layer acknowledgement message to the second network element over the transport layer connection. In a variation of the first embodiment, establishing the session layer connection may comprise: receiving credential information from the second network element over the transport layer connection; and authenticating the certificate information. In a variation of the first embodiment, the method may further comprise: receiving a first session layer message from the second network element over the session layer connection; forwarding the first session layer message to the application layer; receiving a second session layer message from the application layer, wherein the second session layer message contains an instruction indicating that the second session layer message is to be sent to the second network element; and sending the second session layer message to the second network element through the session layer connection. This variant may also include: maintaining a local message sequence number associated with the session layer connection; inserting the local message sequence number into each of the second session layer messages; incrementing the local message sequence number after sending each session layer message; maintaining a local message acknowledgment number associated with the session layer connection; and updating the local message acknowledgement number according to the received message acknowledgement number extracted from each of the first session layer messages. This variant may also include: receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request includes the first IP address; establishing a second transport layer connection with the second network element; receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request may include the session ID and the second EID; reestablishing the session layer connection with the second network element; and resynchronizing the session layer connection according to the local message sequence number and the local message acknowledgement number. This variant may also include: receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request may include a second IP address; establishing a second transport layer connection with the second network element; receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request may include the session ID and the second EID; reestablishing the session layer connection with the second network element; and resynchronizing the session layer connection according to the local message sequence number and the local message acknowledgement number. In a further variation, each of the first session layer messages may include a session header, wherein the session header may include the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number.

In a second embodiment, a method for establishing a session layer connection, by a first network element identified by a first EID, with a second network element identified by a second EID, comprises: receiving a request from an application layer for establishing a new session layer connection, wherein the request includes the second EID, the application layer associated with the first network element; converting the second EID to a second IP address associated with the second network element; generating a session ID, wherein the session ID uniquely identifies the session layer connection; instructing a transport layer to establish a transport layer connection with the second network element in accordance with a first IP address and the second IP address identifying the first network element, wherein the transport layer is associated with the first network element; and establishing the session layer connection with the second network element through the transport layer connection and the session ID.

In a variation of the second embodiment, converting the second EID to the second IP address may comprise: sending a request message to a mapping system, wherein the request message includes the second EID; and receiving a response message from the mapping system, wherein the response message includes the second IP address.

In a variation of the second embodiment, the method may further comprise: receiving a first session layer message from the second network element over the session layer connection; forwarding the first session layer message to the application layer; receiving a second session layer message from the application layer, wherein the second session layer message contains an instruction indicating that the second session layer message is to be sent to the second network element; and sending the second session layer message to the second network element through the session layer connection. This variant may also include: maintaining a local message sequence number associated with the session layer connection; inserting the local message sequence number into each of the second session layer messages; incrementing the message sequence number after each session layer message is sent; maintaining a local message acknowledgment number associated with the session layer connection; and updating the local message acknowledgement number according to the received message acknowledgement number extracted from each of the first session layer messages. This variant may also include: identifying an interruption in the transport layer connection; reestablishing a transport layer connection with the second network element; receiving a new session layer message from the second network element; and resynchronizing the session layer connection according to the local message sequence number and the local message acknowledgement number. In a variation of this embodiment, each of the first session layer messages includes a session header, wherein the session header includes the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number.

In a second embodiment, a first network element identified by a first Endpoint Identifier (EID) comprises: a memory for storing programming logic to implement an application layer, a session layer, a transport layer, a network layer, and a network access layer; a network interface coupled to the second network element through the internet; and a processor coupled with the memory and the network interface. The processor is configured to: receiving a request from the application layer to listen for session layer connection requests; instructing the transport layer to listen for a new transport layer connection request; receiving, over the network interface, a transport layer connection request from the second network element identified by a second EID; establishing a transport layer connection with the second network element through the network interface; receiving a session layer connection request from the second network element over the network interface, wherein the session layer connection request includes a session ID; and establishing a session layer connection with the second network element through the network interface.

In a variation of the third embodiment, each of the first session layer messages may include a session header, wherein the session header includes the session ID, the first EID, the second EID, a message sequence number, and a message acknowledgement number. In this variation, the processor may be configured to: receiving a first session layer message from the second network element over the session layer connection; forwarding the first session layer message to the application layer; receiving a second session layer message from the application layer, wherein the second session layer message contains an instruction indicating that the second session layer message is to be sent to the second network element; and sending the second session layer message to the second network element through the session layer connection. In this variation, the memory may include a local message sequence number and a local message acknowledgement number, and the processor may be configured to: inserting the local message sequence number into each of the second session layer messages; incrementing the local message sequence number after sending each session layer message; and updating the local message acknowledgement number according to the received message acknowledgement number extracted from each of the first session layer messages. In this variation, the processor may be configured to: receiving a second transport layer connection request from the second network element, wherein the second transport layer connection request includes a first IP address; establishing a second transport layer connection with the second network element; receiving a second session layer resynchronization request from the second network element, wherein the second session layer resynchronization request comprises the session ID and the second EID; reestablishing the session layer connection with the second network element; and resynchronizing the session layer connection according to the local message sequence number and the local message acknowledgement number. In this variation, the processor may be configured to: receiving a second transport layer connection request from the second network element, wherein the second transport layer resynchronization request includes a second Internet Protocol (IP) address; establishing a second transport layer connection with the second network element; receiving a second session layer resynchronization request from the second network element, wherein the second session layer connection request comprises the session ID and the second EID; reestablishing the session layer connection with the second network element; and resynchronizing the session layer connection according to the local message sequence number and the local message acknowledgement number.

These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.

Drawings

For a more complete understanding of the present invention, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.

Fig. 1 shows a comparison between the OSI reference model and the conventional TCP/IP model.

Fig. 2 shows a network architecture employed in an embodiment of the present invention.

Figure 3 shows the physical structure of a network element suitable for use as an endpoint in embodiments of the present invention.

Fig. 4 shows a network hierarchy configuration employed in an embodiment of the present invention.

Fig. 5 shows an IP datagram employed in an embodiment of the present invention.

Fig. 6 shows a flow diagram for initiating, adopting and terminating a session-layer connection in an embodiment of the invention.

Fig. 7 shows a session header employed in an embodiment of the present invention.

FIG. 8 illustrates a flow diagram for receiving a session-layer request and employing a session layer in an embodiment of the invention.

FIG. 9 illustrates a flow diagram for session layer connection resynchronization in a client-oriented embodiment of the present invention.

Figure 10 shows a flow diagram of session layer connection resynchronization in a server-oriented embodiment of the present invention.

Detailed Description

Embodiments of the present invention describe a session layer that may operate over a legacy network, such as a TCP/IP network. The disclosed embodiments separate the implementation details of legacy networks from the application layer and protect the application layer from underlying connection disruptions caused by physical disruptions and network address changes. For example, mobile devices essentially move from one location to another, and their network addresses may change as their locations move. In conventional TCP/IP networks, the mobile device must re-establish a connection after its network address changes, and the previous connection information, including connection status, data, authentication, etc., will be lost. With the embodiments of the present invention, the application maintains the connection state, data, authentication, etc., even if the network address or transport layer connection has changed.

More specifically, embodiments of the present invention may create and employ a stateful session layer that sits above the conventional TCP/IP transport layer. In addition, by employing generic session protocols and primitives, embodiments of the invention can decouple session management functions and transport layer implementation details from the application layer. Furthermore, embodiments of the present invention may employ a framework of identity-oriented networks (ION), such as the framework described in "a future-oriented network employs drone ID/locator separation prototypes" and "cross-spool and cross-ecological IoT communications using ID-oriented networks (ION)", published on "the tenth international communication theory, reliability and quality of service conference" from 23 to 27 months 4 to 2017. The ION follows the concept of Identifier (ID) and locator namespace splitting. Traditional IP addresses assume overload semantics of both an endpoint identifier and a route locator. In the literature, several proposals have been made to decouple the IP into two layers, forming an ID layer and an IP layer. The IP layer is kept consistent with successful internet practices to establish global reachability, while the ID layer performs the functions necessary for endpoint identification. The ID layer in the ION framework has two components: a Network Mapping System (NMS) for converting an ID into a locator at each query; an ID Management System (IDMS) for managing the universal identifiers in a centralized or distributed manner. In embodiments of the present invention, the endpoint id (eid) may be defined in terms of traffic, whereby an endpoint may be decoupled from its IP address. To exchange data between two entities in an ION via ID-ID communication, the locator of the endpoint identification is the locator resolved by the mapping system. Thus, by creating a stateful session layer on the ION framework, embodiments of the present invention can provide session continuity and/or seamless mobility when the underlying network changes, i.e., whenever any IP address change occurs.

Embodiments of the present invention may be arranged in a network topology 200 as shown in fig. 2, an endpoint 2101And 2102And the mapping system 230 is connected to the internet 220. The internet 220 may be any network that supports TCP/IP messaging and may include local area network segments, wide area network segments, packet-switched network segments, and the like. Endpoint 2101And 2102May be represented by an Endpoint Identifier (EID)2101And 2102And IP address 2021And 2022To identify. While any given IP address may vary depending on the network topology, the EID uniquely identifies a given endpoint regardless of the network topology. For example, if endpoint 2101Connecting to the internet 220 from a local network may have a first IP address 202 dynamically assigned1(ii) a If endpoint 2101Connected from a different local network, may have a second IP address 2021'; however, regardless of how connected to the Internet 220, its EID2011Will remain unchanged. Mapping system 230 provides translation between EIDs and IP addresses and may be configured as disclosed in U.S. patent application No. 62/421, 015, which is incorporated by reference herein in its entirety.

In an embodiment of the present invention, endpoint 2101And 2102May be configured similar to network element 310 shown in fig. 3, equipped with a processor 303, a memory 304, and a network interface 305. By way of example, and not limitation, the processor 303 may be a central processing unit, a microcontroller, a digital signal processor, an application specific integrated circuit, a plurality and/or combination of any of the foregoing, or any other device suitable for executing a computer program. The processor 303 may have discrete modules for implementing embodiments of the present invention, including a network access layer module 312, a network layer module 313, a transport layer module 314, a session layer module 315, and an application layer module 317. Further, the processor 303 comprises a plurality of components suitable for distributed execution of computer programs, and some of the modules 312 to 317 may be executed on the plurality of components. The memory 304 may include programs 306, configuration data 307, and transient data 308 for use by the modules 312 to 317, and may be dynamic memory, static memory, a disk drive, a flash drive, a combination of any of the foregoing, or any other form of computer memory. The network interface 305 may be an ethernet interface, a wireless interface, or any other physical interface that may be used to connect to a network.

In an embodiment of the present invention, endpoint 2101And 2102A hierarchical network architecture 400 as shown in fig. 4 may be included. The layered network architecture 400 includes a network access layer412. Network layer 413, transport layer 414, session layer 415, and application layer 417. The network access layer 412 may be implemented by a standard protocol, such as IEEE 802.3 (ethernet) or IEEE802.11 (wireless). The network layer 413 and the transport layer 414 may be implemented by TCP/IP. The session layer 415 is discussed in detail below. The application layer 417 provides advanced network-related services such as e-mail, file transfer, streaming media, or any other standard or proprietary network application that requires end-to-end session connectivity.

In some embodiments of the invention, there may be a standard interface between the application layer 417 and the session layer 415. By way of example and not limitation, the interface may include a common session level request as shown in table 1.

TABLE 1

Figure BDA0002315117460000061

Figure BDA0002315117460000071

In embodiments of the present invention, session layer 415 may send and receive messages via standard IP datagrams, such as IP datagram 500 shown in fig. 5, which includes IP header 502, TCP header 503, and data 504. For example, the IP header 502 fields described in RFC 791 ("internet protocol DARPA internet program protocol specification"), and the TCP header 503 fields described in RFC 793 ("transmission control protocol DARPA internet program protocol specification"). Unless otherwise indicated, embodiments of the present invention employ the fields of IP header 502 and TCP header 503 in accordance with common usage. The IP datagram 500 in fig. 5 takes the form of an Internet Protocol version 4 (IPv 4) datagram. However, one of ordinary skill will recognize that Internet Protocol version 6 (IPv 6) datagrams may be employed on networks supporting IPv 6.

In a first embodiment of the present invention, as shown in FIG. 6, endpoint 2101Establishing and endpoint 210 according to the operations of flowchart 6002Of the session. Endpoint 2101And 2102May be implemented by the configuration of network element 310 as shown in figure 3, respectively (although endpoint 2101And 2102Not necessarily identical in terms of hardware or software configuration) and are connected to each other and to the mapping system 230 via the internet 220, as shown in fig. 2. Prior to the first operation of flowchart 600, endpoint 2101Has configured EID2011. In addition, endpoint 2101May have configured a fixed IP address 2021Or alternatively it may have received the dynamic IP address 202 from the local router1. Further, endpoint 2101Has registered its EID201 through the mapping system 2301And IP address 2021. Similarly, endpoint 2102Has also been assigned a fixed or dynamic IP address 2022And has registered its EID201 with the mapping system 2302And IP address 2022. Some or all of the initial settings for the EID and IP addresses may be passed through the network layer 413 in communication with the mapping system 2301And 4132(each at an endpoint 2101And 2102Above).

In operation 6001Middle, application layer 4171(i.e., endpoint 210)1Upper application layer 417) indicating session layer 4151Start and end point 2102The new session of (2). Application layer 417 when making its request1Endpoint 201 may be connected to2Identified as EID2012And may also request a particular service, such as e-mail, file transfer, etc., by name, numeric identifier, or some other indication. Also, an application layer 4171Other session attributes may be included such as quality of service, timeout values, and other optional settings.

In operation 6002Middle, session layer 4151A session ID 605 is generated. The session ID 605 may be used to identify a particular session layer connection when the session layer is established, in a data exchange of the session layer connection, when the session layer connection requires synchronization, or when the session layer is terminated. The session ID 605 does not change during the session layer connection. Conventionally, the session ID 605 may be the EID2011、EID 2012Function of, specialization ofA numerical identifier of a session, a session attribute (e.g., point-to-point, point-to-multipoint, quality of service, continuity flag, persistence flag, etc.), and/or any other identifier that may be used to distinguish one session from another.

In operation 6002Middle, session layer 4151Indicating transport layer 4141Requesting with endpoint 210 through session ID 6052Is connected to the transport layer. Depending on implementation, transport layer 4141EID201 can be used2Resolve to its corresponding IP address 2022. If endpoint 2101Currently has an and endpoint 2102May involve simply looking up the EID information in local memory; otherwise, it may need to send a request to the mapping system 230 over the internet 220 and wait for the mapping system 230 to respond. Once the IP address 202 is resolved2Transport layer 4141The IP address 202 is assigned2The destination IP address field of the IP header 502 inserted into the IP datagram 500 and the rest of the conventional IP and TCP header fields are filled into the IP datagram 500, which is suitable for initiating a TCP/IP connection. This may include inserting session ID 605 into an available field (e.g., source port and/or destination port) in IP datagram 500 and sending an open request in IP datagram 500 to endpoint 210 by conventional methods2. For example, IP datagram 500 may pass through transport layer 4141Network layer 4131Network access layer 4121And finally to the physical medium. Because IP datagram 500 employs a traditional IP address, messages will be routed through the Internet 220 to endpoint 210 like any other TCP/IP message2

In operation 6004In (3), IP datagram 500 reaches endpoint 2102At the endpoint 2102The upper operating system receives the message and passes it through the network access layer 4122Network layer 4132And a transport layer 4142And carrying out routing. Transport layer 4142May be associated with transport layer 4141Perform additional conventional message exchanges to establish the transport layer connection, and then transport layer 4142May provide session layer 415 with2The session layer connection request is notified. Session layer 4152By extracting EID201 from session ID 6051To determine endpoint 2101If by convention, session ID 605 includes EID2011). Optionally, a session layer 4152(or transport layer 414)2) By following the IP address 202 found in the source IP address field in the IP header 502 of the IP datagram 5001Query mapping system 230 to determine endpoint 2101Is detected. Session layer 4152Session level connection information can be stored, including session ID 605, EID2011And any optional settings, and it may also initialize one or more message sequence counters. Session layer 4152Can be to the application layer 4172Notification and endpoint 2101The new session layer connection. Session layer 4152A session connection request acknowledgement message may be sent back to the session layer 4151

In operation 6005Middle, session layer 4151Slave session layer 4152An acknowledgement message of the new session layer establishment is received. Session layer 4151Session level connection information can be stored, including session ID 605, EID2012And any optional settings, and it may also initialize one or more message sequence counters.

In operation 6006In, endpoint 2101And 2102The message exchange may begin over the session layer connection associated with session ID 605. For example, the application layer 4171The session layer 415 may be indicated1Sending data to endpoint 2102. By implementation, the session layer 4151Some or all of the IP datagram 500 may be created and filled, including the data 504, or it may be dependent on the transport layer 4141To fill in some or all of IP header 502 and TCP header 503. Then, the session layer 4151Indicating transport layer 4141Sending messages to endpoint 210 through the normal operating system interface2(i.e., to the internet 220 physical interface via the transport layer, network layer, and network access layer).

In operation 6007Middle, application layer 4171Indicating session layer 4151Ending the session layer associated with session ID 605And (4) connecting. Session layer 4151May pass through the IP address 2022Session ID 605 and an indication that the session layer connection is terminating normally to reuse IP datagram 500. Then, the session layer 4151 IP datagram 500 may be sent to endpoint 2102. Upon receipt of IP datagram 500, session layer 4152An acknowledgement message may be sent that the session layer connection has been terminated. Then, the session layer 4151And 4152The TCP/IP connection may be terminated by a normal sequence of TCP/IP termination messages.

One of ordinary skill will recognize that the operations in flowchart 600 may be altered without departing from the spirit of the embodiments. By way of example, and not limitation, the following variations may be made to the operations of flowchart 600.

In operation 6003Session ID 605 may be inserted into the source and/or destination port fields of TCP header 503 of IP datagram 500. In some variations, the data 504 in the IP datagram 500 may be prefixed with a session header 706, as shown in fig. 7. In this configuration, the session ID 605 may be inserted into the session ID field of the session header 706 and the remainder of the data 504 may be used for any application layer data 707. Further, in this configuration, the EID2011And EID2012May be inserted into the source EID field and destination EID field of the session header 706 and the source port field and destination port field of the TCP header 503 may be employed in conventional systems (e.g., as identifiers for particular traffic).

Further, in operation 6003To 6005The establishing of the session layer connection is part of establishing the transport layer connection. In some variations, the transport layer connection may be established first, followed by the session layer 4151And 4152The establishment of the session layer connection can be negotiated, for example by exchanging credential information (name/password, digital certificate, etc.), quality of service requirements, timeout values, requested services, etc.

Further, in flow diagram 600, assume endpoint 2102Is composed of EID2012An identified single endpoint. In some variations, EID2012May communicate with multiple endpoints 210nAre associated, and operation 6004May include creating a communication link with each of the endpoints 210nTransport layer connection of, operation 6005May include creating a single session layer connection, which may have a single session ID 605 but may utilize multiple underlying transport layer connections; in this configuration, operation 6006May include sending and receiving session layer data on each of the transport layer connections. Further, a single transport layer connection may be used for multiple session layer connections by one or more applications.

Further, in operation 6006In, endpoint 2101And 2102Data is simply exchanged. In some variations, session layer 4151And 4152A message acknowledgement scheme may be employed as an acknowledgement that all messages sent by one endpoint have been received by another endpoint. This acknowledgement scheme may require an acknowledgement after each message, or it may employ a sliding window approach as known to those of ordinary skill. The session header 706 may include sequence number and acknowledgement number fields to support the acknowledgement scheme, and the session layer 4151And 4152Local counters may be reserved to identify link errors and manage resynchronization.

Further, in the operations of flowchart 600, session layer 4151And 4152Respectively with the application layer 4171And 4172Communication is performed. In some variations, there may be a presentation layer between the application layer and the session layer, where the presentation layer may provide data encryption and decryption, data compression and decompression, or transcoding of data in the application layer data 707, etc.

Further, in the operations of flowchart 600, session layer 4151Using TCP/IP at endpoint 2101And 2102A transport layer connection is created therebetween. In some variations, session layer 4151Can be accessed and executed through User Datagram Protocol (UDP) messages or directly

Figure BDA0002315117460000101

Or other lower layer communication protocols associated with the personal area network. This implementation does not require full TCPIt may be useful to implement a session layer between devices of the IP stack, such as internet-of-things (IoT) devices.

In addition, the service ID/options field of the session header 706 may be used to identify a particular service, such as email or file transfer; in some variations, services may be identified by name, while in other variations, services may be identified by number. In some variations, the field may indicate a quality of service requirement, a timeout value, and/or an operational characteristic. In some variations, it may be used to distinguish between lossless connections (which may require message buffering to allow resynchronization after a session interruption) or real-time connections (e.g., audio or video streams that may not require resynchronization after a session interruption).

Further, as will be appreciated by one of ordinary skill in the art, the fields in the session header 706 suggested in fig. 7 are exemplary, and implementations of embodiments of the present invention may include some or all of these fields, and may include other fields not shown in fig. 7. Furthermore, no conclusions should be drawn as to the size of the various fields shown in the session header 706; for example, "session ID" and "source EID" are shown as the same size, however, in practice, the size of the fields may be the same or different. Further, as suggested in fig. 7, the session header 706 is part of the data 504. Alternatively, the session header 706 may be part of an options field in the TCP header 503.

Fig. 8 illustrates another embodiment of the invention and may be a corresponding portion of the embodiment of flowchart 600. Likewise, endpoint 2101And 2102Each may be implemented by the configuration of network element 310 as shown in fig. 3 (although endpoint 2101And 2102Not necessarily identical in terms of hardware or software configuration), but they are connected to each other and to the mapping system 230 through the internet 220, as shown in fig. 2. As illustrated by flowchart 800, first endpoint 210 acting as a server1A session layer connection is established with a second endpoint acting as a client at the request of the second endpoint. As with flowchart 600, prior to the first operation of flowchart 800, endpoint 2101Has configured EID2011. In addition, the terminalPoint 2101May have configured a fixedly assigned IP address 2021Or alternatively it may have received the dynamic IP address 202 from the local router1. Further, endpoint 2101Has registered its EID201 through the mapping system 2301And IP address 2021. Similarly, endpoint 2102Has also been assigned a fixed or dynamic IP address 2022And has registered its EID201 with the mapping system 2302And IP address 2022. Some or all of the initial settings for the EID and IP addresses may be passed through the network layer 413 in communication with the mapping system 2301And 4132(each at an endpoint 2101And 2102Above).

At operation 8001Middle, application layer 4171Indicating session layer 4151And monitoring session layer connection requests of the identified services. In response, session layer 4151The transport layer 414 may be indicated1And monitoring TCP/IP connection requests.

At operation 8002Middle, transport layer 4141To the session layer 4151Reporting that it has been slave endpoint 2102A transport layer connection request is received. Transport layer 4141The transport layer connection request information may be provided in the form of an IP datagram 500. IP datagram 500 may also include a session layer connection request including session ID 805. Session layer 4151By extracting EID201 from session ID 8052To determine endpoint 2102If by convention, session ID 805 includes EID2012). Session layer 4151Session layer connection information can be stored, including session ID 805, EID2012And any optional settings, and it may also initialize one or more message sequence counters.

At operation 8003Middle, session layer 4151Slave endpoint 2102Accepting the session layer connection request. Session layer 4151Can be to the application layer 4171Notification and endpoint 2102May indicate to the transport layer 4151Accept and endpoint 2102And it may indicate the transport layer 4151Returning a session connection request acknowledgement message to endpoint 2102

At operation 8004In, endpoint 2101And 2102The message exchange may begin over the session layer connection associated with session ID 805. For example, endpoint 2102May be directed to endpoint 2101An application-layer data request is sent. The data request may arrive at the session layer 415 as an IP datagram 500 through the internet 220 physical interface and through the network access, network and transport layers1(ii) a Then, the session layer 4151Data requests may be extracted from the IP datagram 500 and forwarded to the application layer 4171. In response, the application layer 4171The session layer 415 may be indicated1Sending the requested data back to the endpoint 2102Then session layer 4151Sending data to endpoint 210 through a normal operating system interface2(i.e., to the internet 220 physical interface via the transport layer, network layer, and network access layer).

At operation 8006Middle, application layer 4171Indicating session layer 4151The session layer connection associated with session ID 805 is closed. Session layer 4151May pass through the IP address 2022Session ID 805, and an indication that the session layer connection is terminating normally to reuse IP datagram 500. Then, the session layer 4151 IP datagram 500 may be sent to endpoint 2102. Upon receipt of IP datagram 500, session layer 4152An acknowledgement message may be sent that the session layer connection has been terminated. Then, the session layer 4151And 4152The TCP/IP connection may be terminated by a normal sequence of TCP/IP termination messages.

One of ordinary skill will recognize that the operations in flowchart 800 may be altered without departing from the spirit of the embodiments. By way of example, and not limitation, the following variations may be made to the operations of flowchart 800.

At operation 8001Middle, transport layer 4141The identified traffic may be converted to a port number for listening for TCP/IP connection requests. In some variations, this may be accomplished by switching traffic betweenLooking up the identified traffic in a database for port numbers. In other variations, the application layer 4171The port number may be provided directly. In other variations, the session layer 4151A port number associated with generic session layer management traffic may be employed and inserted into the traffic ID field in the session header 706.

Further, at operation 8001Middle, transport layer 4141Incoming connection requests may be listened to from any remote endpoint; if application layer 4171Is a server that allows multiple connections, the same applies. In some variations, transport layer 4141An incoming connection request may be listened to from a single specific (or non-specific) remote endpoint; this may be appropriate for a peer-to-peer session.

Further, at operation 8001For the identified traffic, the application layer 4171Indicating session layer 4151Listen for session layer connection requests but do not specify any further connection restrictions. In some variations, the application layer 4171The session layer connection request may be restricted to a specified endpoint or list of endpoints, in which case at operation 8002Middle, session layer 4151Any request from any other endpoint may be denied. Further, in some variations, session layer 4151The establishment of the session layer connection may be negotiated by exchanging credential information, quality of service requirements, timeout values, requested services, etc., and session layer connection requests may be denied based on credential invalidity, user unauthorized, insufficient network resources, etc., to satisfy requested quality of service, etc.

Moreover, the variations discussed in connection with flowchart 600 apply generally to the operations of flowchart 800. Further, in some variations, session layer 4151May be used to implement the operations of flowchart 600 and flowchart 800. In other variations, the session layer 4151May be used to provide only one or the other of the operations. In other variations, the session layer 4151It may be used in particular as a server or a client in a client-server-service architecture or as a peer in a peer-to-peer architecture.

FIG. 9 Slave initiativeThe angle of the end point of the link illustrates a session layer connection recovery sequence (e.g., an embodiment of flow diagram 600). Likewise, endpoint 2101And 2102May be implemented by the configuration of network element 310 as shown in figure 3, respectively (although endpoint 2101And 2102Not necessarily identical in terms of hardware or software configuration) and are connected to each other and to the mapping system 230 via the internet 220, as shown in fig. 2. As illustrated by flow chart 900, in the present embodiment, endpoint 2101And 2102The transport layer connection between them is suddenly broken. When endpoint 210 is active1And 2102When the transport layer connection is re-established, the session layer 4151And 4152Resynchronizing so that no data is lost, and an application layer 4171And 4172The interruption of the transport layer connection may not be known.

Prior to the first operation of flowchart 900, endpoint 210 has been established by the operations described in flowchart 6001And 2102Session layer connection therebetween, and session layer 4151And 4152Messages are being exchanged. Initially, endpoint 2101Connected to the internet 220 through a first local network (e.g., a wireless local area network). When the session layer 4151And 4152When transmitting and receiving messages, sequence numbers 906 (indicating the sequence number of the last message that has been sent to the other party) are respectively reserved, and acknowledgement numbers 907 (indicating the sequence number of the last message that the other party acknowledges) are respectively reserved. For the purpose of explaining the present embodiment, it is assumed that the session layer 4151Acknowledgement messages having sent message sequence numbers 0 to 100 and having received message sequence numbers 0 to 95; that is, assume sequence number 9061100, confirmation number 9071Is 95. Likewise, assume session layer 4152Acknowledgement messages that have sent message sequence numbers 200 to 300 and that have received message sequence numbers 200 to 295; that is, assume sequence number 9062200, confirmation number 9072Is 295. Finally, assuming the session layer connection has been assigned a session ID 905, the endpoint 2101And 2102Have been respectively assigned EID2011And 2012And dynamically assigned IP addresses 202, respectively1And 2022

At operation 9001In, endpoint 2101Has been disconnected from its first network connection with the internet 220; for example, it may have moved out of range of its wireless local area network. Transport layer 4141May provide session layer 415 with1Sending an error message indicating that the transport layer connection has terminated unexpectedly.

At operation 9002In, endpoint 2101Having rejoined the internet 220 via a second network connection, e.g., a fourth generation Long Term Evolution (LTE) network connection, may result in a new IP address 2021' distribution to endpoints 2101. Underlying network layer 4131/4132And/or transport layer 4141/4142The underlying connection may be re-established.

In operation 9003, the session layer 4151Slave 4152A session resynchronization request is received. Thus, when the session layer 4151Identifying the message as part of an established session layer connection, the request will use the same session ID 905. Session layer 4151Checking sequence number 9061And confirmation number 9071It is determined that it needs to resend messages with message sequence numbers 96 through 100. Similarly, session layer 4151May provide session layer 415 with2Send a session resynchronization request that will check sequence number 9062And confirmation number 9072It is determined that it needs to resend messages of message sequence numbers 296 through 300.

At operation 9004In session layer 415 that has been resynchronized1And 4152The exchange of messages may continue over the session layer connection associated with session ID 905. The session layer connection associated with session ID 905 remains unchanged and application layer 417 maintains the same even if the physical connection is broken and a new connection needs to be established at the transport, network and network access layers1And 4172The session layer 415 may never be aware of1And 4152Managed underlying connection disconnects, reconnects, and resynchronizes events.

One of ordinary skill will recognize that the operations in flowchart 900 may be altered without departing from the spirit of the embodiments. By way of example, and not limitation, the following variations may be made to the operations of flowchart 900.

At operation 9001Middle, transport layer 4141Notification session layer 4151The underlying transport layer connection has been breached. In some variations, this may occur asynchronously when the lower layer recognizes a loss of connection, or may occur synchronously during the return of an error code when the lower layer responds to a send or receive request. Optionally, a session layer 4151And 4152May agree on a periodic exchange of "heartbeat" messages and when session layer 4151Failure to slave session layer 4152Upon receipt of a scheduled heartbeat message, session layer 4151A link failure may have been identified. Optionally, a transport layer 4141Can be from the session layer 4151Completely hiding the loss and re-establishment of the transport layer connection. In addition, session layer 4151Can be selected from the application layer 4171Concealing loss and reestablishment of transport layer connections.

Further, at operation 9001The transport layer connection may be at endpoint 2101Changing its IP address is terminated, for example, because it has moved from one network to another. In other variations, the link may have been temporarily disconnected due to a service provider network failure, while in other variations, endpoint 2101And 2102May have moved to other networks. Alternatively, one of the session layers may purposefully disconnect the transport layer connection if it is found that the quality of service has dropped below a minimum value and another physical link is available (e.g., when both wired and wireless links are available). In any case, as long as the session layer 4151And 4152Remaining active (or retaining sufficient session layer information to restart normally), the session layer connection associated with session ID 905 can be restarted and resynchronized regardless of any change in IP address.

Further, at operation 9002If endpoint 210 is middle, or end point1Having moved to another network, session layer 415 may be enabled after establishing a new connection with the new network1(or endpoint 210)1Upper lower layer) may send an update to mapping system 230 so that it has a mapping of the current EID to the IP address.

Further, at operation 9003When the session layer 4151To session layer 415 via session ID 9052The session layer connection can immediately begin resynchronization when a session layer message is sent. In other variations, the session layer 4151And 4152Additional handshaking may be performed, for example, to re-exchange credentials and/or to re-validate EIDs and IP addresses via mapping system 230.

Further, at operation 9003Middle, session layer 4151And 4152A resynchronization request message can be sent to initiate retransmission of the lost message. In other variations, the session layer 4151And 4152Whether resynchronization is needed or not can be identified without explicit request; in contrast, session layer 4151And 4152By examining the sequence number 9061/9062And confirmation number 9071/9072To infer whether resynchronization is needed.

Further, the embodiment shown in flow chart 900 assumes that session resynchronization is necessary. For example, if the session is used to download a file, resynchronization will ensure that the entire file is properly downloaded in the event of a session interruption. However, if a session is employed to transmit video from a live event, for example, retransmission of lost frames from streaming video may not be as important as maintaining timely video input. In some variations, session layer 4151And 4152Resynchronization parameters may be agreed upon, such as whether to save unacknowledged messages for possible resynchronization and/or the number of unacknowledged messages to be saved.

Further, any variations related to flowcharts 700 and 800 may be applied to the operations of flowchart 900.

Fig. 10 shows a flow diagram 1000 that describes a session layer connection recovery sequence similar to flow diagram 900, except from the perspective of an endpoint that did not initiate a session (e.g., an embodiment of flow diagram 800). Likewise, endpoint 2101And 2102Respectively canTo be implemented by the configuration of network element 310 as shown in figure 3 (although endpoint 2101And 2102Not necessarily identical in terms of hardware or software configuration) and are connected to each other and to the mapping system 230 via the internet 220, as shown in fig. 2. As illustrated in flow diagram 1000, in the present embodiment, endpoint 2101And 2102The transport layer connection between them is suddenly broken. When endpoint 210 is active1And 2102When the transport layer connection is re-established, the session layer 4151And 4152Resynchronizing so that no data is lost, and an application layer 4171And 4172The interruption of the transport layer connection may not be known.

Prior to the first operation of flowchart 1000, endpoint 210 has been established by the operations described in flowchart 8001And 2102Session layer connection therebetween, and session layer 4151And 4152Messages are being exchanged. When the session layer 4151And 4152When sending and receiving messages, sequence numbers 1006 (indicating the sequence number of the last message that has been sent to the other party) are each retained, and acknowledgement numbers 1007 (indicating the sequence number of the last message that the other party acknowledges) are each retained. For the purpose of explaining the present embodiment, it is assumed that the session layer 4151Acknowledgement messages having sent message sequence numbers 0 to 100 and having received message sequence numbers 0 to 95; that is, assume sequence number 10061100, confirmation No. 10071Is 95. Likewise, assume session layer 4152An acknowledgement that message sequence numbers 200 to 300 have been sent and that message sequence numbers 200 to 295 have been received; that is, assume sequence number 10062200, confirmation No. 10072Is 295. Further, assuming that the session layer connection has been assigned session ID 1005, endpoint 2101And 2102Have been respectively assigned EID2011And 2012And dynamically assigned IP addresses 202, respectively1And 2022. Finally, assume session layer 4151Indicated transport layer 4141Listening continues for new transport layer connection requests from other endpoints.

At operation 10001In, endpoint 2102And the Internet 220Ground network connection interruption (e.g., endpoint 210)2May have moved out of range of the wireless local area network). Although this may result in endpoint 2101And endpoint 2102The transport layer connection between is broken, but the session layer 4151The failure may not be immediately realized. At some point, endpoint 2102The connection to the internet 220 may be re-established over a second network connection, such as an LTE network, which may result in a new IP address 2022' distribution to endpoints 2102. Endpoint 210 then2May pass through the session layer 4152A transport and session layer reconnection is initiated as described in flow diagram 900.

At operation 10002Middle, transport layer 4141Slave endpoint 2102A transport layer connection request is received. The request may indicate endpoint 2102Different IP address (IP address 202)2') but the same session ID (session ID 1005). At operation 10003Middle, session layer 4151A transport layer connection request may be identified as an endpoint 210 when it is received1And 2102And receiving the request of the transmission layer connection.

At operation 10004Middle, session layer 4151Check sequence number 10061And confirmation number 10071It is determined that it needs to resend messages with message sequence numbers 96 through 100. Similarly, session layer 4152Check sequence number 10062And confirmation number 10072It is determined that it needs to resend messages of message sequence numbers 296 through 300. At operation 10005In session layer 415 that has been resynchronized1And 4152The exchange of messages may continue through the session layer connection associated with session ID 1005.

One of ordinary skill will recognize that the operations in flowchart 1000 may be altered without departing from the spirit of the embodiments. By way of example, and not limitation, the variations disclosed with respect to flowcharts 700, 800, and 900 may also be applied to the operations of flowchart 1000.

Accordingly, disclosed herein are: a method for establishing a session-layer connection between a first network element identified by a first EID and a second network element identified by a second EID. The method has means for receiving a request from an application layer for listening for session layer connection requests, wherein the application layer is associated with the first network element; a manner for instructing a transport layer to listen for a new transport layer connection request, wherein the transport layer is associated with the first network element; a manner for receiving a first transport layer connection request from the second network element, wherein the transport layer connection request includes a first IP address; a means for establishing a first transport layer connection with the second network element; a means for receiving a first session layer connection request from the second network element, wherein the first session layer connection request comprises a conference ID and the second EID; and a means for establishing a session layer connection with the second network element.

Further disclosed herein are: a method for establishing a session-layer connection between a first network element identified by a first EID and a second network element identified by a second EID. The method has means for receiving a request from an application layer for establishing a new session layer connection, wherein the request includes the second EID, the application layer being associated with the first network element; a means for converting the second EID to a second internet protocol, IP, address associated with the second network element; a manner for generating a session ID, wherein the session ID uniquely identifies the session layer connection; a means for indicating to a transport layer to establish a transport layer connection with the second network element based on a first IP address and a second IP address identifying the first network element, wherein the transport layer is associated with the first network element; a means for establishing the session layer connection with the second network element via the transport layer connection and the session ID.

Further disclosed herein are: a first network element identified by a first EID having a means for storing programming logic to implement an application layer, a session layer, a transport layer, a network layer, and a network access layer; a means for communicating with a second network element over the internet; a tool for receiving a request from the application layer to listen for a session layer connection request; a means for instructing the transport layer to listen for a new transport layer connection request; a means for receiving a transport layer connection request over a network interface from the second network element identified by a second EID; means for establishing a transport layer connection with the second network element over the network interface; a means for receiving a session layer connection request from the second network element over the network interface, wherein the session layer connection request comprises a session ID; and a means for establishing a session layer connection with the second network element over the network interface.

While the invention has been described with reference to specific features and embodiments thereof, it will be apparent that various modifications and combinations of the invention can be made without departing from the scope of the invention. The specification and figures are to be regarded only as illustrative of the invention as defined in the appended claims and are intended to cover any and all modifications, variations, combinations, or equivalents within the scope of the invention.

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种具有TCP移动性选项的无缝移动性和会话连续性

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类