Disconnection procedure
The new disconnection procedure in multipath transport protocols ensures all packets are transmitted or received before connection teardown, addressing errors caused by early disconnect requests in existing mechanisms.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- DOUYIN VISION CO LTD
- Filing Date
- 2024-12-09
- Publication Date
- 2026-06-18
AI Technical Summary
Existing connection release mechanisms in multipath transport protocols are prone to errors due to the disconnect request message arriving before data packets, especially for the last request, leading to incomplete packet transmission or reception during connection teardown.
A new disconnection procedure that includes transmitting a disconnect request with a field for the last packet sequence number, allowing the receiving device to determine if conditions for disconnection are met, ensuring all packets are transmitted or received before closing the communication harbor.
This approach minimizes request errors by guaranteeing all packets are completed before connection release, adapting to the challenges of multipath transmission scenarios.
Smart Images

Figure CN2024137838_18062026_PF_FP_ABST
Abstract
Description
DISCONNECTION PROCEDUREFIELD
[0001] The present disclosure generally relates to computer network, and more specifically, to methods, devices, apparatuses and computer program products for a disconnection procedure.BACKGROUND
[0002] Reliable transport protocols use the concept of connection to ensure reliability. A connection typically contains one or more packet sequence number (PSN) spaces which are assigned to data packets. The transport protocol may detect the loss of data packets by non-continuous PSN. During connection establishment, the endpoints exchange the starting PSN of each PSN space at which the remote endpoint shall begin transmitting over the newly established connection. During a disconnection procedure such as a connection release, the endpoints send disconnect request messages (DREQ) to the remote endpoints to indicate connection tear down.SUMMARY
[0003] In a first aspect of the present disclosure, there is provided a method implemented at a first device. The method comprises: transmitting, to a second device, a disconnect request comprising at least one field for last packet sequence number (PSN) ; receiving, from the second device, a response of the disconnect request; and in response to receiving the response of the disconnect request, closing a harbour for a communication with the second device at the first device.
[0004] In a second aspect of the present disclosure, there is provided a method implemented at a second device. The method comprises: receiving, from a first device, a disconnect request comprising at least one field for last packet sequence number (PSN) ; determining whether at least one condition for disconnection is satisfied, the at least one condition at least comprising a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second device advances to at least one second PSN, the at least one second PSN being based on the at least one field for last PSN; and in accordance with a determination that the at least one condition is satisfied, transmitting, to the first device, a response of the disconnect request.
[0005] In a third aspect of the present disclosure, there is provided an electronic device. The electronic device comprises: a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements a method according to the first or second aspect of the present disclosure.
[0006] In a fourth aspect of the present disclosure, there is provided a computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic device to cause the electronic device to perform a method according to the first or second aspect of the present disclosure.
[0007] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0008] Through the more detailed description of some implementations of the present disclosure in the accompanying drawings, the above and other objects, features and advantages of the present disclosure will become more apparent, wherein the same reference generally refers to the same components in the implementations of the present disclosure.
[0009] FIG. 1 illustrates an example communication environment in which example embodiments of the present disclosure can be implemented;
[0010] FIG. 2A illustrates an example diagram of network re-ordering in a multipath transmission scenario;
[0011] FIG. 2B illustrates an example diagram of disconnection failure in a multipath transmission scenario;
[0012] FIG. 3 illustrates a signaling flow of a disconnection procedure for multipath transport protocols according to embodiments of the present disclosure;
[0013] FIG. 4A illustrates an example format of a disconnect request according to embodiments of the present disclosure;
[0014] FIG. 4B illustrates an example format of a disconnect response according to embodiments of the present disclosure;
[0015] FIG. 5 illustrates an example state diagram of the disconnection procedure for multipath transport protocols according to implementations of the present disclosure;
[0016] FIG. 6 illustrates an example flowchart of a method implemented at a first device according to embodiments of the present disclosure;
[0017] FIG. 7 illustrates an example flowchart of a method implemented at a second device according to embodiments of the present disclosure;
[0018] FIG. 8 illustrates a schematic diagram of an apparatus according to embodiments of the present disclosure;
[0019] FIG. 9 illustrates a schematic diagram of another apparatus according to embodiments of the present disclosure; and
[0020] FIG. 10 illustrates a block diagram of a computing device in which various embodiments of the present disclosure can be implemented.DETAILED DESCRIPTION
[0021] Principle of the present disclosure will now be described with reference to some implementations. It is to be understood that these implementations are described only for the purpose of illustration and help those skilled in the art to understand and implement the present disclosure, without suggesting any limitation as to the scope of the disclosure. The disclosure described herein can be implemented in various manners other than the ones described below.
[0022] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.
[0023] References in the present disclosure to “one implementation, ” “an implementation, ” “an example implementation, ” and the like indicate that the implementation described may include a particular feature, structure, or characteristic, but it is not necessary that every implementation includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same implementation. Further, when a particular feature, structure, or characteristic is described in connection with an example implementation, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other implementations whether or not explicitly described.
[0024] It shall be understood that although the terms “first” and “second” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example implementations. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.
[0025] The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting of example implementations. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” , “comprising” , “has” , “having” , “includes” and / or “including” , when used herein, specify the presence of stated features, elements, and / or components etc., but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.
[0026] Principle of the present disclosure will now be described with reference to some implementations. It is to be understood that these implementations are described only for the purpose of illustration and help those skilled in the art to understand and implement the present disclosure, without suggesting any limitation as to the scope of the disclosure. The disclosure described herein can be implemented in various manners other than the ones described below. In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.
[0027] It may be understood that data involved in the present technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with requirements of corresponding laws and regulations and relevant rules.
[0028] It may be understood that, before using the technical solutions disclosed in various implementation of the present disclosure, the user should be informed of the type, scope of use, and use scenario of the personal information involved in the present disclosure in an appropriate manner in accordance with relevant laws and regulations, and the user’s authorization should be obtained.
[0029] For example, in response to receiving an active request from the user, prompt information is sent to the user to explicitly inform the user that the requested operation will need to acquire and use the user’s personal information. Therefore, the user may independently choose, according to the prompt information, whether to provide the personal information to software or hardware such as electronic devices, applications, servers, or storage media that perform operations of the technical solutions of the present disclosure.
[0030] As an optional but non-limiting implementation, in response to receiving an active request from the user, the way of sending prompt information to the user, for example, may include a pop-up window, and the prompt information may be presented in the form of text in the pop-up window. In addition, the pop-up window may also carry a selection control for the user to choose “agree” or “disagree” to provide the personal information to the electronic device.
[0031] It may be understood that the above process of notifying and obtaining the user authorization is only illustrative and does not limit the implementation of the present disclosure. Other methods that satisfy relevant laws and regulations are also applicable to the implementation of the present disclosure.
[0032] FIG. 1 illustrates an example communication environment 100 in which example embodiments of the present disclosure can be implemented. In the communication environment 100, a plurality of endpoints or devices, including a first device 110, and a second device 120 communicate with each other. In the example of FIG. 1, the first device 110 may act as a sender, and the second device 120 may act as a receiver. The first device 110 may be referred to as a first endpoint such as an (active) client, and the second device 120 may be referred to as a second endpoint such as a (passive) server. It is to be understood that in some embodiments, the first device 110 may act as a receiver and the second device 120 may act as a sender.
[0033] The first device 110 may transmit a packet such as a semantic packet to the second device 120. Alternatively, the second device 120 may transmit a packet such as a semantic packet to the first device 110. As used herein, the term “semantic packet” may refer to a packet that carries semantic meanings. Examples of the semantic packet may include but not limited to remote direct memory access (RDMA) Read request, RDMA Read Response, RDMA Write Request, Send Request, or the like. The first device 110 or the second device 120 sending the packet may be referred to as a sender. The second device 120 or the first device 110 receiving the packet may be referred to as a receiver. The sender may refer to a harbour that sends semantic packets. The sender may receive acknowledgement packets to ascertain the delivery of semantic packets. The receiver may refer to a harbour that receives the semantic packets. The receiver may transmit acknowledgement packets to inform the sender about the arrival of semantic packets. As used herein, the term “Harbour” refers to the communication endpoint in a transmission protocol such as the Netbula-scalable reliable transport (SRT) protocol. The transmission protocol may consist of a Send Queue (SQ) , a Receive Queue (RQ) , and an Inbound Read Request Queue (IRRQ) . SQ, RQ and IRRQ are created as a triplet and remain that way throughout their lifetime.
[0034] It is to be understood that the number of devices and their connections shown in FIG. 1 are only for the purpose of illustration without suggesting any limitation. The communication environment 100 may include any suitable number of apparatuses configured to implementing example embodiments of the present disclosure.
[0035] In some embodiments, the first device 110 and the second device 120 may support a multipath transmission. Multipath transmission is an emerging technique in high-speed transport protocols. It involves distributing the packets of a connection across multiple network paths to balance the network load. This may lead to packets arriving out-of-order due to varying latencies on different paths. FIG. 2A demonstrates an example of network re-ordering in a multipath transmission scenario. For example, the sender may transmit packets 201, 202 and 203 in sequence. The packets 201, 202 and 203 are transmitted across different network paths. Due to different latencies on different paths, the packets may arrive out-of-order. For example, the receiver may first receive the packet 202, then the packet 203 and the packet 201.
[0036] In existing connection release mechanisms, an endpoint immediately tears down a connection upon receiving a disconnect request (DREQ) message, causing all pending requests to complete with an error status. In a single-path transmission, since the DREQ message is sent after the data packets, it typically arrives after the data packets unless there is packet loss, making error requests caused by the DREQ rare. However, under the multipath transmission, the DREQ message is more likely to arrive before the data packets, increasing the likelihood of error requests, especially for the last request on the connection. FIG. 2B illustrates such a scenario, where a request message 260 and request message 270 from an endpoint A are received by tan endpoint B before receiving a DREQ 290, but data packet from a request message 280 arrives after the DREQ 290. It results in an error for the request message 280. Therefore, a connection release mechanism that may adapt to multipath transmission is needed.
[0037] According to embodiments of the present disclosure, a new disconnection procedure (also referred to as a connection release procedure) is proposed. Specifically, a first device transmits, to a second device, a disconnect request comprising at least one field for last PSN. The second device determines whether at least one condition for disconnection is satisfied. The at least one condition at least comprises a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second device advances to at least one second PSN. The at least one second PSN is based on the at least one field for last PSN. If the at least one condition is satisfied, the second device transmits, to the first device, a response of the disconnect request. In response to receiving the response, the first device closes a harbour for a communication with the second device. In this way, the connection is release after all packets are transmitted or received.
[0038] Example implementations of the present disclosure will be described in detail below with reference to the accompanying drawings.
[0039] Reference is made to FIG. 3 which illustrates a signaling flow of disconnection procedure for multipath transport protocols. For the purpose of discussion, the signaling flow 300 will be discussed with reference to FIG. 1, for example, by using the first device 110 and the second device 120.
[0040] In operation, the first device 110 transmits (3010) , to the second device 120, a disconnect request (DREQ) comprising at least one field for last PSN (also referred to as at least one last PSN field) . The second device 120 may receive the DREQ. The DREQ may be a control message for a connection release (also referred to a disconnection procedure) . The at least one field for last PSN marks the last PSN (s) at which the first device 110 sends on a connection with the second device 120 in each PSN space.
[0041] In some embodiments, the at least one field for last PSN may include a plurality of fields for last PSN. The number of the plurality of fields for last PSN may be based on the number of PSN spaces of a transport protocol for a communication between the first and second devices. For example, the number of last PSN fields may be equal to the number of PSN spaces, or may be equal to a half of the number of PSN spaces.
[0042] In some embodiments, four PSN spaces are created when a connection between the first device 110 and the second device 120 is established. Specifically, two PSN spaces are created for the request packets and read response packets originated from the first device 110 such as a client Harbour, whose starting PSNs are indicated in the Connect Response message. Two PSN spaces are created for the request packets and read response packets originated from the second device 120 such as a server-side Harbour, whose starting PSNs are indicated in the Connect Response message, whose starting PSNs are indicated in the Connect Request message. A Harbour may be identified by its Harbour Number. In such cases, the number of last PSN fields may be two. That is, the at least one last PSN fields may include a first field for a last PSN at which the first device sends on a connection with the second device and a second field for a last read response PSN at which the first device sends on the connection.
[0043] FIG. 4A illustrates an example format 400 of a packet of the disconnect request, which includes several headers such as an extended transport header (ETH) , Internet protocol (IP) field, user datagram protocol (UDP) field, a fundamental transport header (FTH) , and a disconnect request 410 and optional an additional data field 420. The disconnect request 410 may include a last PSN field 412 and a last PSN_RRsp field 414. The last PSN field may indicate at which the first device 110 such as a local endpoint sends on the connection. The last PSN_RRsp field may indicate at which the first device 110 such as a local endpoint sends on the connection. Example widths, values and description for fields in the format 400 are shown in Table 1 below. Table 1
[0044] Example width, value and description for the additional data field in the format 400 are shown in Table 2 below. Table 2
[0045] It is to be understood that the example format 400 and example fields, widths, values shown in Table 1 and Table 2 and any other drawings or tables herein are only for the purpose of illustration, without suggesting any limitation. Any suitable message format, fields, widths or values may be applied. Scope of embodiments of the present disclosure is not limited here.
[0046] Referring back to FIG. 3, the second device determines (3020) whether at least one condition for disconnection is satisfied. The at least one condition at least comprises a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second device 120 advances to at least one second PSN. The at least one second PSN is based on the at least one field for last PSN. For example, the at least one second PSN is equal to at least one value of at least one fields for last PSN plus one. As used herein, the PSN of next in-order semantic packet expected to be received by the second device 120 may be referred to as expected PSN or ePSN. For the cases where the at least one field includes two fields for last PSN such as the last PSN field and the last PSN_RRsp field, there may be two ePSNs such as an ePSN and an ePSN_RRsp. The first condition may be that an expected PSN advances to a PSN next to the last PSN and an expected last read response PSN advances to a PSN next to the last read response PSN. In other words, if the ePSN advances to last PSN plus one and the ePSN_RRsp advances to last PSN_RRsp plus one, the first condition is satisfied.
[0047] If the at least one condition is satisfied, the second device 120 transmits (3030) , to the first device 110, a response of the disconnect request (also referred to as a disconnect response (DRESP) ) . In response to receiving the response, the first device 110 closes (3040) a harbour at the first device 110 (referred to as a first harbour) . The first harbour is used for a communication or the connection between the first device 110 and the second device 120. The second device 120 may close (3050) a harbour at the second device 120 (referred to as a second harbour) . The second harbour is used for the communication or the connection between the first device 110 and the second device 120.
[0048] FIG. 4B illustrates an example format 450 of a packet for the disconnect response. As shown, the format 500 includes ETH, IP, UDP, FTH, a disconnect response 460 and optional additional data field 470. Table 3 below shows the fields, widths, values and description for the disconnect response 460. Table 4 below shows the field, width, value and description for the additional data field 470. Table 3 Table 4
[0049] In some embodiments, the at least one condition may further include a second condition that a plurality of acknowledgements (ACKs) of a plurality of outbound semantic packets are received. For example, the second condition may be that all outbound semantic packets are ACKed. The ACK refers to a positive acknowledgement packet used to ascertain the arrival of one or more in-order semantic packets (except Read Response) , sent by the first device 110 such as a receiver to the second device 120 such as a sender.
[0050] Alternatively, or in addition, the at least one condition may further include a third condition that a plurality of read requests in an inbound read request queue (IRRQ) are dequeued. The read request queue may include at least one read request. For example, the third condition may be that all Read requests in IRRQ are dequeued. The read request may be an RDMA read request. The RDMA Read operations enable a requester to read a virtually contiguous block of memory on a responder.
[0051] In some embodiments, if the first, second and third conditions are satisfied, the second device 120 transmits (3030) the response of the disconnect request to the first device 110. The first condition guarantees that all the requests in a direction from the first device 110 to the second device 120 are completed. The second and third conditions may guarantee that all the requests in a direction from the second device 120 to the first device 110 are completed. In this way, transmissions or packets in both directions are completed before the connection is released. It is to be understood that these conditions are only for the purpose of illustration, without suggesting any limitation. Any suitable condition may be applied. Embodiments of the present disclosure is not limited in this regard.
[0052] In some embodiments, if a timer for receiving the response of the disconnect request is expired, the first device 110 may retransmit the disconnect request to the second device 120. In response to receiving the retransmitted disconnect request, if the response of the disconnect request has been transmitted by the second device 120 or if the harbour at the second device 120 is closed, the second device 120 may transmit a rest (RST) message of the disconnection request to the first device 110. If the response of the disconnect request has not been transmitted and if the at least one condition is satisfied, the second device 120 may transmit the response of the disconnect request to the first device 110. In response to receiving the response of the disconnect request or the rest message for the retransmitted disconnect request, the first device 110 may close the harbour at the first device 110. In response to transmitting at least one of: the response of the disconnect request or the rest message of the disconnect request, the second device 120 may close a harbour for a communication with the first device at the second device 120. The Harbor at the second device 120 such as on the server side may be immediately closed after DRESP or RST is sent.
[0053] Several embodiments for the disconnection procedure for the multipath transmission have been described with respect to FIG. 3 to FIG. 4B. With these embodiments, the disconnection or connection release procedure can guarantee that all requests are completed before tearing down a connection can be achieved. It is beneficial for minimizing the request errors by early DREW under the multipath transmissions. It is to be understood that embodiments described with respect to the first device 110 may be applied to the second device 120, and embodiments described with respect to the second device 120 may be applied to the first device 110. The roles of the first device 110 and the second devices may be exchanged.
[0054] FIG. 5 illustrates an example state diagram 500 of the disconnection procedure for multipath transport protocols according to implementations of the present disclosure. The state diagram 500 shows valid states and state transitions in the communication establishment and release protocols. The state diagram 500 may be implemented at the first device 110 and / or the second device 120. In other words, the state diagram 500 may be the same for both client side (that is, the active side) and the server side (that is, the passive side) . In the following description of FIG. 5, states and state transitions may be described with respect to an endpoint or a communication management (CM) at the endpoint.
[0055] In some embodiments, an endpoint (referred to as endpoint A) transmits a DREQ to another endpoint (referred to as endpoint B) . As shown, the endpoint B in a connected state 510 receives the DREQ. The CM for a respective endpoint A transmitting the DREQ such as a respective client may place Harbour number (s) , communication identifier (s) (ID (s) ) , and the last PSN (s) in the DREQ that begins the connection release sequence. In response to receiving the DREQ, the state of the endpoint B may be changed to a DREQ received state 520. In the DREQ received state 520, the endpoint B may wait for last PSN for inbound and acknowledge all outbound PSN. For example, the CM for the endpoint B such as a prospective server may wait for the at least one condition being satisfied before sensing a DRESP. The condition may include that (1) the expected PSN advances to last PSN + 1 and ePSN_RRsp to last PSN_RRsp + 1, and (2) all outbound semantic packets are ACKed and all Read requests in IRRQ dequeued. The expected PSN may be defined as the PSN of the next in-order data packet that a receiver expects to receive. The condition (1) guarantees that all the requests in a direction from endpoint A to endpoint B are completed. The condition (2) guarantees that all the requests in a direction from endpoint B to endpoint A are completed.
[0056] If the conditions (1) and (2) are satisfied, the endpoint B may transmit a DRESP to the endpoint A. The state of the endpoint B may thus change to a closed state 530. That is, the endpoint B or the CM of the endpoint B may close the Harbour at the endpoint B. For example, the Harbour on the server side may be immediately closed after DRESP is sent. If the endpoint B in the closed state 530 received a further DREQ such as a retransmitted DREQ, the endpoint B may transmit a Rest (RST) message to the endpoint A. That is, if the DRESP message be dropped by the network, the server-side CM may reply to the RST message for the retried DREQ message.
[0057] In some embodiments, the endpoint B may send a DREQ to the endpoint A. In such situation, the state of the endpoint B may change from the connected state 510 to a DREQ sent state 540. In the DREQ sent state 540, the endpoint B may wait for the DRESP from the endpoint A. If a time duration for receiving the DRESP is run out or a timer expiry before receiving the DRESP, the endpoint B may retransmit the DREQ to the endpoint A. The time duration or the timer may be predefined or configured by the endpoint A or by the endpoint B. The time duration or timer may be fixed or varied based on some conditions or rules.
[0058] If the endpoint B revives DRESP or RST, the state of the endpoint B may change from the DREQ sent state 540 to the closed state 530. That is, the endpoint B may close the harbour at the endpoint B. The endpoint A may close the harbour at the endpoint A as well. In this way, the connections are released through the exchange of DREQ and DRESP. Such connection Release procedures may guarantee all requests are completed before tearing down a connection. In this way, the request errors caused by early DREQ under multipath transmissions may be reduced.
[0059] The above paragraphs have described details for the disconnection procedure for multipath transport protocols. According to implementations of the present disclosure, a method is provided for the disconnection procedure. Reference will be made to FIG. 6 for more details about the method, where FIG. 6 illustrates an example flowchart of a method 600 according to embodiments of the present disclosure. The method 600 may be implemented by the first device 110 in FIG. 1.
[0060] At block 610, the first device 110 transmits, to a second device, a disconnect request comprising at least one field for last packet sequence number. At block 620, the first device 110 receives, from the second device, a response of the disconnect request. In response to receiving the response of the disconnect request, at block 630, the first device 110 closes a harbour for a communication with the second device at the first device 110.
[0061] In some embodiments, the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first and second devices.
[0062] In some embodiments, the at least one field for last PSN comprises a first field for a last PSN at which the first device sends on a connection with the second device and a second field for a last read response PSN at which the first device sends on the connection.
[0063] In some embodiments, the method 600 may further comprise: in response to an expiry of a timer for receiving the response, retransmit the disconnect request to the second device; and in response to receiving at least one of: the response of the retransmitted disconnect request or a rest message for the retransmitted disconnect request, closing the harbour at the first device 110.
[0064] Reference will be made to FIG. 7 for more details about the method, where FIG. 7 illustrates an example flowchart of a method 700 according to implementations of the present disclosure. The method 700 may be implemented by the second device 120 in FIG. 1.
[0065] At block 710, the second device 120 receives, from a first device, a disconnect request comprising at least one field for last packet sequence number. At block 720, the second device 120 determines whether at least one condition for disconnection is satisfied. The at least one condition at least comprises a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the electronic device advances to at least one second PSN. The at least one second PSN is based on the at least one field for last PSN. If the at least one condition is satisfied, at block 730, the second device 120 transmits, to the first device, a response of the disconnect request.
[0066] In some embodiments, the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first and second devices.
[0067] In some embodiments, the at least one field for last PSN comprises a first field for a last PSN at which the first device sends on a connection with the second device 120 and a second field for a last read response PSN at which the first device sends on the connection.
[0068] In some embodiments, the first condition comprises that an expected PSN advances to a PSN next to the last PSN and an expected last read response PSN advances to a PSN next to the last read response PSN.
[0069] In some embodiments, the at least one condition further comprises at least one of: a second condition that a plurality of acknowledgements of a plurality of outbound semantic packets are received, or a third condition that a plurality of read requests in an inbound read request queen (IRRQ) are dequeued.
[0070] In some embodiments, the method 700 may further comprise: in response to receiving a retransmitted disconnect request, transmitting a response of the disconnect request to the first device based on the at least one condition being satisfied and no response being transmitted; or transmitting a rest message of the disconnect request to the first device based on the response of the disconnected request being transmitted.
[0071] In some embodiments, the method 700 may further comprise: in response to transmitting at least one of:the response of the disconnect request or a rest message of the disconnect request, closing a harbour for a communication with the first device at the second device 120.
[0072] According to embodiments of the present disclosure, an apparatus 800 is provided as shown in FIG. 8. The apparatus 800 includes a transmitting module 810 configured to transmit, to a second device, a disconnect request comprising at least one field for last packet sequence number; a receiving module 820 configured to receive, from the second device, a response of the disconnect request; and a closing module 830 configured to in response to receiving the response of the disconnect request, close a harbour for a communication with the second device at the apparatus 800. Further, the apparatus 800 may comprise other modules for implementing other steps in the method 600.
[0073] According to embodiments of the present disclosure, an apparatus 900 is provided as shown in FIG. 9. The apparatus 900 includes a receiving module 910 configured to receive, from a first device, a disconnect request comprising at least one field for last packet sequence number; a determination module 920 configured to determine whether at least one condition for disconnection is satisfied, the at least one condition at least comprising a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second device advances to at least one second PSN, the at least one second PSN being based on the at least one field for last PSN; and a transmitting module 930 configured to in accordance with a determination that the at least one condition is satisfied, transmit, to the first device, a response of the disconnect request. Further, the apparatus 900 may comprise other modules for implementing other steps in the method 700.
[0074] According to embodiments of the present disclosure, an electronic device is provided for implementing the method 600. The electronic device comprises: a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements the method 600.
[0075] According to embodiments of the present disclosure, an electronic device is provided for implementing the method 600. The electronic device comprises: a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements the method 700.
[0076] According to embodiments of the present disclosure, a computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic device to cause the electronic device to perform the method 600 or 700.
[0077] FIG. 10 illustrates a block diagram of a computing device 1000 in which various implementations of the present disclosure can be implemented. It would be appreciated that the computing device 1000 shown in FIG. 10 is merely for purpose of illustration, without suggesting any limitation to the functions and scopes of the present disclosure in any manner. The computing device 1000 may be used to implement the above method 1000 in implementations of the present disclosure. As shown in FIG. 10, the computing device 1000 may be a general-purpose computing device. The computing device 1000 may at least comprise one or more processors or processing units 1010, a memory 1020, a storage unit 1030, one or more communication units 1040, one or more input devices 1050, and one or more output devices 1060.
[0078] The processing unit 1010 may be a physical or virtual processor and can implement various processes based on programs stored in the memory 1020. In a multi-processor system, multiple processing units execute computer executable instructions in parallel so as to improve the parallel processing capability of the computing device 1000. The processing unit 1010 may also be referred to as a central processing unit (CPU) , a microprocessor, a controller, or a microcontroller.
[0079] The computing device 1000 typically includes various computer storage medium. Such medium can be any medium accessible by the computing device 1000, including, but not limited to, volatile and non-volatile medium, or detachable and non-detachable medium. The memory 1020 can be a volatile memory (for example, a register, cache, Random Access Memory (RAM) ) , a non-volatile memory (such as a Read-Only Memory (ROM) , Electrically Erasable Programmable Read-Only Memory (EEPROM) , or a flash memory) , or any combination thereof. The storage unit 1030 may be any detachable or non-detachable medium and may include a machine-readable medium such as a memory, flash memory drive, magnetic disk, or another other media, which can be used for storing information and / or data and can be accessed in the computing device 1000.
[0080] The computing device 1000 may further include additional detachable / non-detachable, volatile / non-volatile memory medium. Although not shown in FIG. 10, it is possible to provide a magnetic disk drive for reading from and / or writing into a detachable and non-volatile magnetic disk and an optical disk drive for reading from and / or writing into a detachable non-volatile optical disk. In such cases, each drive may be connected to a bus (not shown) via one or more data medium interfaces.
[0081] The communication unit 1040 communicates with a further computing device via the communication medium. In addition, the functions of the components in the computing device 1000 can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, the computing device 1000 can operate in a networked environment using a logical connection with one or more other servers, networked personal computers (PCs) or further general network nodes.
[0082] The input device 1050 may be one or more of a variety of input devices, such as a mouse, keyboard, tracking ball, voice-input device, and the like. The output device 1060 may be one or more of a variety of output devices, such as a display, loudspeaker, printer, and the like. By means of the communication unit 1040, the computing device 1000 can further communicate with one or more external devices (not shown) such as the storage devices and display device, with one or more devices enabling the user to interact with the computing device 1000, or any devices (such as a network card, a modem, and the like) enabling the computing device 1000 to communicate with one or more other computing devices, if required. Such communication can be performed via input / output (I / O) interfaces (not shown) .
[0083] In some implementations, instead of being integrated in a single device, some, or all components of the computing device 1000 may also be arranged in cloud computing architecture. In the cloud computing architecture, the components may be provided remotely and work together to implement the functionalities described in the present disclosure. In some implementations, cloud computing provides computing, software, data access and storage service, which will not require end users to be aware of the physical locations or configurations of the systems or hardware providing these services. In various implementations, the cloud computing provides the services via a wide area network (such as Internet) using suitable protocols. For example, a cloud computing provider provides applications over the wide area network, which can be accessed through a web browser or any other computing components. The software or components of the cloud computing architecture and corresponding data may be stored on a server at a remote position. The computing resources in the cloud computing environment may be merged or distributed at locations in a remote data center. Cloud computing infrastructures may provide the services through a shared data center, though they behave as a single access point for the users. Therefore, the cloud computing architectures may be used to provide the components and functionalities described herein from a service provider at a remote location. Alternatively, they may be provided from a conventional server or installed directly or otherwise on a client device.
[0084] The functionalities described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-Programmable Gate Arrays (FPGAs) , Application-specific Integrated Circuits (ASICs) , Application-specific Standard Products (ASSPs) , System-on-a-chip systems (SOCs) , Complex Programmable Logic Devices (CPLDs) , and the like.
[0085] Program code for carrying out the methods of the subject matter described herein may be written in any combination of one or more programming languages. The program code may be provided to a processor or controller of a general-purpose computer, special purpose computer, or other programmable data processing apparatus such that the program code, when executed by the processor or controller, causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely or partly on a machine, executed as a stand-alone software package partly on the machine, partly on a remote machine, or entirely on the remote machine or server.
[0086] In the context of this disclosure, a machine-readable medium may be any tangible medium that may contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine-readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random-access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0087] Further, while operations are illustrated in a particular order, this should not be understood as requiring that such operations are performed in the particular order shown or in sequential order, or that all illustrated operations are performed to achieve the desired results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the subject matter described herein, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in the context of separate implementations may also be implemented in combination in a single implementation. Rather, various features described in a single implementation may also be implemented in multiple implementations separately or in any suitable sub-combination.
[0088] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter specified in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
[0089] From the foregoing, it will be appreciated that specific implementations of the presently disclosed technology have been described herein for purposes of illustration, but that various modifications may be made without deviating from the scope of the disclosure. Accordingly, the presently disclosed technology is not limited except as by the appended claims.
[0090] Implementations of the subject matter and the functional operations described in the present disclosure can be implemented in various systems, digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “data processing unit” or “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0091] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document) , in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code) . A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0092] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0093] It is intended that the specification, together with the drawings, be considered exemplary only, where exemplary means an example. As used herein, the use of “or” is intended to include “and / or” , unless the context clearly indicates otherwise.
[0094] While the present disclosure contains many specifics, these should not be construed as limitations on the scope of any disclosure or of what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular disclosures. Certain features that are described in the present disclosure in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
[0095] Similarly, while operations are illustrated in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the implementations described in the present disclosure should not be understood as requiring such separation in all implementations. Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in the present disclosure.
Claims
1.A method implemented at a first device, comprising:transmitting, to a second device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;receiving, from the second device, a response of the disconnect request; andin response to receiving the response of the disconnect request, closing a harbour for a communication with the second device at the first device.2.The method of claim 1, wherein the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first and second devices.3.The method of claim 1 or 2, wherein the at least one field for last PSN comprises a first field for a last PSN at which the first device sends on a connection with the second device and a second field for a last read response PSN at which the first device sends on the connection.4.The method of any of claims 1-3, further comprising:in response to an expiry of a timer for receiving the response, retransmit the disconnect request to the second device; andin response to receiving at least one of: the response of the retransmitted disconnect request or a rest message for the retransmitted disconnect request, closing the harbour at the first device.5.A method implemented at a second device, comprising:receiving, from a first device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;determining whether at least one condition for disconnection is satisfied, the at least one condition at least comprising a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second device advances to at least one second PSN, the at least one second PSN being based on the at least one field for last PSN; andin accordance with a determination that the at least one condition is satisfied, transmitting, to the first device, a response of the disconnect request.6.The method of claim 5, wherein the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first and second devices.7.The method of claim 5 or 6, wherein the at least one field for last PSN comprises a first field for a last PSN at which the first device sends on a connection with the second device and a second field for a last read response PSN at which the first device sends on the connection.8.The method of claim 7, wherein the first condition comprises that an expected PSN advances to a PSN next to the last PSN and an expected last read response PSN advances to a PSN next to the last read response PSN.9.The method of any of claims 5-8, wherein the at least one condition further comprises at least one of:a second condition that a plurality of acknowledgements of a plurality of outbound semantic packets are received, ora third condition that a plurality of read requests in an inbound read request queen (IRRQ) are dequeued.10.The method of any of claims 5-9, further comprising:in response to receiving a retransmitted disconnect request,transmitting a response of the disconnect request to the first device based on the at least one condition being satisfied and no response being transmitted; ortransmitting a rest message of the disconnect request to the first device based on the response of the disconnected request being transmitted.11.The method of any of claims 5-10, further comprising:in response to transmitting at least one of: the response of the disconnect request or a rest message of the disconnect request, closing a harbour for a communication with the first device at the second device.12.An electronic device, comprising a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements a method, the method comprising:transmitting, to a second device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;receiving, from the second device, a response of the disconnect request; andin response to receiving the response of the disconnect request, closing a harbour for a communication with the second device at the electronic device.13.The electronic device of claim 12, wherein the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first and second devices.14.The electronic device of claim 12 or 13, wherein the at least one field for last PSN comprises a first field for a last PSN at which the electronic device sends on a connection with the second device and a second field for a last read response PSN at which the electronic device sends on the connection.15.The electronic device of any of claims 12-14, wherein the method further comprises:in response to an expiry of a timer for receiving the response, retransmit the disconnect request to the second device; andin response to receiving at least one of: the response of the retransmitted disconnect request or a rest message for the retransmitted disconnect request, closing the harbour at the electronic device.16.An electronic device, comprising a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements a method, the method comprising:receiving, from a first device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;determining whether at least one condition for disconnection is satisfied, the at least one condition at least comprising a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the electronic device advances to at least one second PSN, the at least one second PSN being based on the at least one field for last PSN; andin accordance with a determination that the at least one condition is satisfied, transmitting, to the first device, a response of the disconnect request.17.The electronic device of claim 16, wherein the at least one field for last PSN comprises a plurality of fields for last PSN, and the number of the plurality of fields for last PSN is based on the number of PSN spaces of a transport protocol for a communication between the first device and the electronic device.18.The electronic device of claim 16 or 17, wherein the at least one field for last PSN comprises a first field for a last PSN at which the first device sends on a connection with the electronic device and a second field for a last read response PSN at which the first device sends on the connection.19.The electronic device of claim 18, wherein the first condition comprises that an expected PSN advances to a PSN next to the last PSN and an expected last read response PSN advances to a PSN next to the last read response PSN.20.The electronic device of any of claims 16-19, wherein the at least one condition further comprises at least one of:a second condition that a plurality of acknowledgements of a plurality of outbound semantic packets are received, ora third condition that a plurality of read requests in an inbound read request queen (IRRQ) are dequeued.21.The electronic device of any of claims 16-20, wherein the method further comprises:in response to receiving a retransmitted disconnect request,transmitting a response of the disconnect request to the first device based on the at least one condition being satisfied and no response being transmitted; ortransmitting a rest message of the disconnect request to the first device based on the response of the disconnected request being transmitted.22.The electronic device of any of claims 16-21, wherein the method further comprises:in response to transmitting at least one of: the response of the disconnect request or a rest message of the disconnect request, closing a harbour for a communication with the first device at the electronic device.23.A first apparatus, comprising:a transmitting module configured to transmit, to a second device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;a receiving module configured to receive, from the second device, a response of the disconnect request; anda closing module configured to in response to receiving the response of the disconnect request, close a harbour for a communication with the second device at the first apparatus.24.A second apparatus, comprising:a receiving module configured to receive, from a first device, a disconnect request comprising at least one field for last packet sequence number (PSN) ;a determination module configured to determine whether at least one condition for disconnection is satisfied, the at least one condition at least comprising a first condition that at least one first PSN of at least one next in-order semantic packet expected to be received by the second apparatus advances to at least one second PSN, the at least one second PSN being based on the at least one field for last PSN; anda transmitting module configured to in accordance with a determination that the at least one condition is satisfied, transmit, to the first device, a response of the disconnect request.25.A non-transitory computer program product, the non-transitory computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic device to cause the electronic device to perform a method of any of claims 1-4 or any of claims 5-11.