[go: up one dir, main page]

WO2025171833A1 - Method and system for bidirectional communication in a network - Google Patents

Method and system for bidirectional communication in a network

Info

Publication number
WO2025171833A1
WO2025171833A1 PCT/DE2024/101081 DE2024101081W WO2025171833A1 WO 2025171833 A1 WO2025171833 A1 WO 2025171833A1 DE 2024101081 W DE2024101081 W DE 2024101081W WO 2025171833 A1 WO2025171833 A1 WO 2025171833A1
Authority
WO
WIPO (PCT)
Prior art keywords
tcp
operating mode
module
window
queuing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/DE2024/101081
Other languages
German (de)
French (fr)
Inventor
Karl Budweiser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Publication of WO2025171833A1 publication Critical patent/WO2025171833A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1635Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Definitions

  • TCP Transmission Control Protocol
  • Tahoe, (New) Reno, etc. reach their limits.
  • the associated low transmission rates and flash aborts due to inappropriate timeouts from higher protocol layers currently require complex traffic shaping measures. While these attempt to reduce the load on the TCP stacks and prevent packet loss, they do not optimize the fundamental weaknesses of TCP implementations. Therefore, despite traffic shaping, undesirable problems can still occur.
  • the transmitting module detects certain capabilities of the receiving module and automatically switches to an appropriate mode.
  • different retransmission characteristics are used depending on whether the receiving module is configured for OoO queuing or not. For example, only the last unconfirmed data segment can be transmitted if the receiving module supports OoO queuing. If the receiving module supports OoO queuing, If, however, there is no OoO queuing, the portion of the send window for which the receive acknowledgments are still pending can be transmitted in its entirety.
  • This allows the sending module to react independently and flexibly to the capabilities of the receiving module and select a suitable operating mode, enabling improved data transmission between communication partners.
  • improved TCP congestion control can be enabled in resource-limited systems.
  • the communication according to the invention is based on the Transmission Control Protocol (TCP).
  • TCP Transmission Control Protocol
  • the Transmission Control Protocol is a central protocol in the Internet protocol stack (TCP/IP) and is responsible for the reliable transmission of data over networks.
  • TCP provides a number of mechanisms to ensure that data is transmitted correctly and in the correct order between a transmitting module and a receiving module.
  • TCP is a connection-oriented protocol, meaning it establishes a connection between the sending and receiving modules before data transmission. This connection remains active throughout the entire communication and is closed after the data transfer is complete. Each connection has interdependent states that are continuously synchronized and managed by state machines.
  • state machines One of the most important properties of TCP, realized with state machines, is the reliable transmission of data. It uses mechanisms such as acknowledgments (ACKs), sequence numbers, and retry requests to ensure that data arrives correctly, in the correct order, and without duplication or loss.
  • ACKs acknowledgments
  • sequence numbers sequence numbers
  • retry requests to ensure that data arrives correctly, in the correct order, and without duplication or loss.
  • TCP Transmission of data is organized into segments.
  • a TCP segment is a data structure that contains information about the data to be sent and is sent over the network.
  • Each TCP segment contains data and is identified by a sequence number.
  • each TCP segment can a header containing the data (payload), and a checksum for verifying the integrity of the transmitted data.
  • the header can include, for example, the sequence number, an acknowledgment number, a sliding window size, flags, etc.
  • out-of-order queuing refers to a situation in network communications where received data packets or segments arrive out of order. This can occur in TCP/IP networks, particularly when data packets or segments experience different delays due to different paths through the network, when they arrive at different speeds due to network congestion, or when individual packets are lost, resulting in a gap in the data stream (or sequence numbers), the compensation for which requires an out-of-order segment (retransmission).
  • the receiver module can handle such a situation and put the data packets in the correct order, even if the reception order is different, the receiver module is “configured for out-of-order queuing” within the meaning of the present disclosure. If the receiver module cannot handle such a situation and put the data packets in the correct order or does not correct the incorrect order, recognize, the receiver module is “not configured for out-of-order queuing” within the meaning of the present disclosure.
  • this mode change should be performed or not can be activated or deactivated according to an independent aspect.
  • Which mode changes are advantageous depends, for example, on the initial operating mode. For example, it could be assumed that out-of-order queuing is not supported until the opposite is proven by the receipt of a CUM-ACK following a preceding DUP-ACK, and the operating mode could only be changed afterward. Conversely, one could also start from the other operating mode and assume that out-of-order queuing is supported, only changing the operating mode when this assumption can no longer be maintained. In one design, only a single mode change may be necessary, so that any transitional conditions would not further disrupt operation.
  • the TCP includes a sliding window.
  • the sliding window is generally used to control the transmission of data between the sending module and the receiving module and allows multiple data packets to be transmitted simultaneously without having to wait for acknowledgment of each individual packet.
  • the sliding window represents the range of unacknowledged data packets or TCP segments that the sending module can send simultaneously before waiting for acknowledgments from the receiving module.
  • the sliding window can also be viewed as the memory situation at the receiving module, or the sending module's view of the memory situation at the receiving module.
  • the sliding window is moved.
  • the size of the sliding window is referred to as the "window size.”
  • a repeat window is defined within the sliding window.
  • TCP segments are retransmitted from the repeat window, in particular exclusively from the repeat window.
  • the retry window includes only sent TCP segments.
  • Vehicle programming can, for example, include the programming of control units (e.g., ECUs) for various functions such as engine control, transmission control, braking, chassis control, infotainment, etc.
  • vehicle programming can relate to driver assistance systems for automated driving. This includes, for example, the programming of algorithms for sensor data processing, decision-making, and real-time vehicle control.
  • SW software program
  • the SW program can be configured to run on one or more processors and thereby implement the method described in this document for bidirectional communication in a network.
  • a system for bidirectional communication in a network comprises one or more processors; and at least one memory connected to the one or more processors and containing instructions executable by the one or more processors to perform the method for bidirectional communication in a network described in this document.
  • a processor or processor module is a programmable computing unit, i.e. a machine or an electronic circuit that controls other elements according to given instructions and thereby drives an algorithm (process).
  • Figure 1 schematically shows a system for bidirectional communication in a network according to embodiments of the present disclosure
  • Figure 2 is a flowchart of a method for bidirectional communication in a network according to embodiments of the present disclosure
  • TCP Transmission Control Protocol
  • SEG Transmission Control Protocol
  • the communication between the transmitting module 110 and the receiving module 120 is based on the Transmission Control Protocol (TCP).
  • TCP Transmission Control Protocol
  • a TCP segment (SEG) is a data structure that contains information about the data to be sent and about the network.
  • SEG contains data and is identified by a sequence number.
  • each TCP segment (SEG) can include a header, the data (payload), and a checksum for verifying the integrity of the transmitted data.
  • the header can include, for example, the sequence number, an acknowledgment number, a sliding window size, flags, etc.
  • method 200 is provided for vehicle programming and/or is used in vehicle programming.
  • Vehicle programming may include, for example, the programming of control units (e.g., ECUs) for various functions such as engine control, transmission control, braking, chassis control, infotainment, etc.
  • vehicle programming may relate to driver assistance systems for automated driving. This includes, for example, the programming of algorithms for sensor data processing, decision-making, and real-time vehicle control. Additionally or alternatively, method 200 is used in or with embedded systems.
  • the sliding window SLW and the retry window REW may have the same starting point, such as a base TCP segment (base) of the sliding window SLW, and may have different endpoints. Thus, the sliding window SLW and the retry window REW may have different window sizes. In some embodiments, the retry window REW extends from the base TCP segment (base) to a next unsent TCP segment of the sliding window SLW (nextseq).
  • Duplicate Acknowledgment is a form of acknowledgment in the TCP protocol.
  • a DUP-ACK occurs in situations where the receiving module detects that a particular TCP segment is missing or lost. If the receiving module determines that a particular segment did not arrive in time, it sends a DUP-ACK to inform the sending module (e.g., implicitly) that the missing segment should be retransmitted. DUP-ACKs can also occur in other situations, such as when processing TCP segments that arrive out of the expected order. In such cases, the receiving module sends a DUP-ACK to inform the sending module that segments have been received out of order.
  • the receipt of a DUP-ACK provides, for example, under the conditions described in more detail in this document, a reliable indication that the receiving module is not configured for out-of-order queuing.
  • the embodiments of the present disclosure enable sustainable improvements in TCP implementations without circumventing existing features.
  • One focus is on the targeted optimization of TCP stacks for resource-constrained systems, particularly those implemented in embedded systems that deliberately do not implement all aspects of the relevant standards. This creates an efficient and optimized TCP congestion control algorithm that specifically addresses the implementation weaknesses of embedded systems.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

The present disclosure relates to a method (200) for bidirectional communication in a network, comprising: transmitting (210), by means of a transmission module (HO), data to a receiver module (120) according to the Transmission Control Protocol, TCP; determining (220), by means of the transmission module (110), whether the receiver module (120) is configured for out-of-order queuing, OoO queuing; and selecting (230) a first operating mode (BM1) of the transmission module (110) if the receiver module (120) is configured for OoO queuing, or a second operating mode (BM2) if the receiver module (120) is not configured for OoO queuing, the first operating mode (BM1) and the second operating mode (BM2) having different retransmission characteristics for unconfirmed TCP segments (SEG-C).

Description

Verfahren und System zur bidirektionalen Kommunikation in einemMethod and system for bidirectional communication in a

Netzwerk Network

Die vorliegende Offenbarung betrifft ein Verfahren zur bidirektionalen Kommunikation in einem Netzwerk, ein Speichermedium zum Ausführen des Verfahrens und ein System zur bidirektionalen Kommunikation in einem Netzwerk. Die vorliegende Offenbarung betrifft insbesondere eine verbesserte TCP Congestion Control in ressourcenbeschränkten Systemen. The present disclosure relates to a method for bidirectional communication in a network, a storage medium for implementing the method, and a system for bidirectional communication in a network. In particular, the present disclosure relates to improved TCP congestion control in resource-constrained systems.

Stand der Technik State of the art

In ressourcenbeschränkten Systemen stoßen herkömmliche Transmission Control Protocol (TCP) Congestion Control-Ansätze wie Tahoe, (New) Reno, usw., an ihre Grenzen. Die damit verbundenen niedrigen Übertragungsraten und Flash-Abbrüche bei gerissenen Timeouts von höheren Protokoll ebenen erfordern derzeit aufwändige Traffic Shaping-Maßnahmen. Diese versuchen zwar, die TCP-Stacks zu entlasten und Paketverluste zu vermeiden, optimieren jedoch nicht die grundlegenden Schwächen der TCP-Implementierungen. Trotz Traffic Shaping können daher unerwünschte Probleme auftreten. In resource-constrained systems, conventional Transmission Control Protocol (TCP) congestion control approaches such as Tahoe, (New) Reno, etc., reach their limits. The associated low transmission rates and flash aborts due to inappropriate timeouts from higher protocol layers currently require complex traffic shaping measures. While these attempt to reduce the load on the TCP stacks and prevent packet loss, they do not optimize the fundamental weaknesses of TCP implementations. Therefore, despite traffic shaping, undesirable problems can still occur.

Bisherige TCP Congestion Control-Algorithmen sind primär für Consumer/Enterprise Systeme konzipiert und berücksichtigen nur oberflächlich die unterschiedlichen Verkehrsmuster im Netz. Die Standard-basierten Ansätze vernachlässigen jedoch Implementierungsschwächen von Embedded Systems, was zu unerwünschten Wechselwirkungen führen kann. Insbesondere können unter bestimmten Voraussetzungen, die z.B. in Fahrzeugnetzen gegeben sein können, sogenannte „Re-Transmission Chains“ auftreten, in denen zwei beteiligte TCPs in einem ineffizienten „Ping-Pong“ verharren, was zu erheblichenPrevious TCP congestion control algorithms are primarily designed for consumer/enterprise systems and only superficially consider the different traffic patterns in the network. However, standards-based approaches neglect implementation weaknesses of embedded systems, which can lead to undesirable interactions. In particular, under certain conditions, which may be present in vehicle networks, so-called "retransmission chains" can occur in which two participating TCPs remain in an inefficient "ping-pong" pattern, which can lead to significant

Datenratenreduktionen führen kann. Offenbarung der Erfindung can lead to data rate reductions. Disclosure of the invention

Es ist eine Aufgabe der vorliegenden Offenbarung, ein Verfahren zur bidirektionalen Kommunikation in einem Netzwerk, ein Speichermedium zum Ausfuhren des Verfahrens und ein System zur bidirektionalen Kommunikation in einem Netzwerk anzugeben, die eine verbesserte Datenübertragung zwischen Kommunikationspartnern ermöglichen. Insbesondere ist es eine Aufgabe der vorliegenden Offenbarung, eine verbesserte TCP Congestion Control in ressourcenbeschränkten Systemen zu ermöglichen und etwaige Unzulänglichkeiten eines ressourcenbeschränkten Remote-TCPs (Empfängermoduls) zu kompensieren. It is an object of the present disclosure to provide a method for bidirectional communication in a network, a storage medium for implementing the method, and a system for bidirectional communication in a network that enable improved data transmission between communication partners. In particular, it is an object of the present disclosure to enable improved TCP congestion control in resource-limited systems and to compensate for any deficiencies of a resource-limited remote TCP (receiver module).

Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben. This object is achieved by the subject matter of the independent claims. Advantageous embodiments are specified in the subclaims.

Gemäß einem unabhängigen Aspekt der vorliegenden Offenbarung ist ein Verfahren zur bidirektionalen Kommunikation in einem Netzwerk angegeben. Das Verfahren umfasst ein Senden, durch ein Sendemodul, von Daten an ein Empfängermodul gemäß dem Transmission Control Protocol, TCP; ein Bestimmen, durch das Sendemodul, ob das Empfängermodul für ein Out-of-Order Queuing, OoO-Queuing, konfiguriert ist; und ein Auswählen eines ersten Betriebsmodus des Sendemoduls, wenn das Empfängermodul für ein OoO-Queuing konfiguriert ist, oder eines zweiten Betriebsmodus, wenn das Empfängermodul nicht für ein OoO-Queuing konfiguriert ist, wobei der erste Betriebsmodus und der zweite Betriebsmodus unterschiedliche Re-Transmissionscharakteristika für unbestätigte TCP-Segmente aufweisen. According to an independent aspect of the present disclosure, a method for bidirectional communication in a network is provided. The method comprises sending, by a transmitting module, data to a receiving module according to the Transmission Control Protocol (TCP); determining, by the transmitting module, whether the receiving module is configured for out-of-order queuing (OoO queuing); and selecting a first operating mode of the transmitting module if the receiving module is configured for OoO queuing, or a second operating mode if the receiving module is not configured for OoO queuing, wherein the first operating mode and the second operating mode have different retransmission characteristics for unacknowledged TCP segments.

Erfindungsgemäß erkennt das Sendemodul bestimmte Fähigkeiten des Empfängermoduls und geht selbstständig in einem adäquaten Modus. Insbesondere werden unterschiedliche Re-Transmissionscharakteristika verwendet, je nachdem, ob das Empfängermodul für OoO-Queuing konfiguriert ist oder nicht. Beispielsweise kann lediglich das letzte unbestätigte Datensegment übertragen werden, wenn das Empfängermodul OoO-Queuing unterstützt. Unterstützt das Empfängermodul hingegen kein OoO-Queuing, kann der Teil des Sendefensters komplett übertragen werden, für den die Empfangs-Quittierungen noch ausstehen. Damit kann das Sendemodul selbständig und flexibel auf die Fähigkeiten des Empfängermoduls reagieren und einen geeigneten Betriebsmodus wählen, so dass eine verbesserte Datenübertragung zwischen Kommunikationspartnem ermöglicht wird. Insbesondere kann eine verbesserte TCP Congestion Control in ressourcenbeschränkten Systemen ermöglicht werden. According to the invention, the transmitting module detects certain capabilities of the receiving module and automatically switches to an appropriate mode. In particular, different retransmission characteristics are used depending on whether the receiving module is configured for OoO queuing or not. For example, only the last unconfirmed data segment can be transmitted if the receiving module supports OoO queuing. If the receiving module supports OoO queuing, If, however, there is no OoO queuing, the portion of the send window for which the receive acknowledgments are still pending can be transmitted in its entirety. This allows the sending module to react independently and flexibly to the capabilities of the receiving module and select a suitable operating mode, enabling improved data transmission between communication partners. In particular, improved TCP congestion control can be enabled in resource-limited systems.

Die erfindungsgemäße Kommunikation basiert auf dem Transmission Control Protocol, TCP. Das Transmission Control Protocol ist ein zentrales Protokoll im Intemetprotokoll-Stack (TCP/IP) und ist für die zuverlässige Übertragung von Daten über Netzwerke verantwortlich. Das TCP bietet eine Reihe von Mechanismen, um sicherzustellen, dass Daten korrekt und in der richtigen Reihenfolge zwischen einem Sendemodul und einem Empfängermodul übertragen werden. The communication according to the invention is based on the Transmission Control Protocol (TCP). The Transmission Control Protocol is a central protocol in the Internet protocol stack (TCP/IP) and is responsible for the reliable transmission of data over networks. TCP provides a number of mechanisms to ensure that data is transmitted correctly and in the correct order between a transmitting module and a receiving module.

Das TCP ist dabei ein verbindungsorientiertes Protokoll, was bedeutet, dass es vor der Datenübertragung eine Verbindung zwischen Sendemodul und Empfängermodul herstellt. Diese Verbindung bleibt während der gesamten Kommunikation bestehen und wird nach Abschluss der Datenübertragung geschlossen. Für jede Verbindungen existieren voneinander abhängige Zustände, die kontinuierlich von Zustandsmaschinen (State Machine) synchronisiert und verwaltet werden. Eine der wichtigsten Eigenschaften von TCP, die mit Zustandsmaschinen realisiert wird, ist die zuverlässige Übertragung von Daten. Es verwendet Mechanismen wie Bestätigungen (Acknowledgments, ACKs), Sequenznummern und Wiederholungsanforderungen, um sicherzustellen, dass die Daten korrekt, in der richtigen Reihenfolge und ohne Duplikate oder Verluste ankommen. TCP is a connection-oriented protocol, meaning it establishes a connection between the sending and receiving modules before data transmission. This connection remains active throughout the entire communication and is closed after the data transfer is complete. Each connection has interdependent states that are continuously synchronized and managed by state machines. One of the most important properties of TCP, realized with state machines, is the reliable transmission of data. It uses mechanisms such as acknowledgments (ACKs), sequence numbers, and retry requests to ensure that data arrives correctly, in the correct order, and without duplication or loss.

Im TCP wird die Übertragung von Daten in Segmente organisiert. Ein TCP-Segment ist dabei eine Datenstruktur, die Informationen über die zu sendenden Daten enthält und über das Netzwerk verschickt wird. Jedes TCP-Segment enthält Daten und wird durch eine Sequenznummer identifiziert. Beispielsweise kann jedes TCP-Segment einen Header, die Daten (Nutzdaten bzw. Payload) und eine Checksumme für die Überprüfung der Integrität der übertragenen Daten umfassen. Der Header kann zum Beispiel die Sequenznummer, eine Acknowledgment-Nummer, eine Fenstergröße eines Sliding Window, Flags, usw. umfassen. In TCP, the transmission of data is organized into segments. A TCP segment is a data structure that contains information about the data to be sent and is sent over the network. Each TCP segment contains data and is identified by a sequence number. For example, each TCP segment can a header containing the data (payload), and a checksum for verifying the integrity of the transmitted data. The header can include, for example, the sequence number, an acknowledgment number, a sliding window size, flags, etc.

Das ACK (Acknowledgment) ist ein Mechanismus, bei dem der Empfänger eines TCP-Segments dem Sender mitteilt, dass die empfangenen Daten erfolgreich angekommen sind. Sind die gesendeten Daten nicht beim Empfängermodul angekommen oder nicht korrekt beim Empfängermodul angekommen und/oder werden nicht bestätigt oder auf eine bestimmte Weise bestätigt, kann das Sendemodul die Daten erneut senden. Dies wird im Rahmen der vorliegenden Offenbarung als „Re-Transmission“ bezeichnet. Die Re-Transmission erfolgt dabei angepasst darauf, ob das Empfängermodul für ein Out-of-Order Queuing konfiguriert ist oder nicht. The ACK (acknowledgment) is a mechanism by which the receiver of a TCP segment notifies the sender that the received data has arrived successfully. If the sent data has not reached the receiver module, has not arrived correctly, and/or is not acknowledged or acknowledged in a specific way, the transmitting module can resend the data. This is referred to as "retransmission" in the context of this disclosure. Retransmission is adapted depending on whether the receiver module is configured for out-of-order queuing or not.

Der Begriff “Out-of-Order Queuing” bezieht sich auf eine Situation in der Netzwerkkommunikation, bei der die empfangenen Datenpakete bzw. Segmente nicht in der Reihenfolge ihres Versands ankommen. Dies kann in TCP/IP- Netzwerken auftreten, insbesondere wenn Datenpakete bzw. Segmente aufgrund von unterschiedlichen Pfaden durch das Netzwerk unterschiedliche Laufzeiten erfahren oder wenn sie aufgrund von Netzwerküberlastungen unterschiedlich schnell ankommen oder Einzelpacket- Verluste auftreten, die zu einer Lücke im Datenstrom (bzw. den Sequenznummern) führen, deren Kompensation (Re-Transmission) ein Out-of-Order Segment impliziert. The term "out-of-order queuing" refers to a situation in network communications where received data packets or segments arrive out of order. This can occur in TCP/IP networks, particularly when data packets or segments experience different delays due to different paths through the network, when they arrive at different speeds due to network congestion, or when individual packets are lost, resulting in a gap in the data stream (or sequence numbers), the compensation for which requires an out-of-order segment (retransmission).

Kann das Empfängermodul mit einer solchen Situation umgehen und die Datenpakete in die richtige Reihenfolge bringen, auch wenn die Empfangsreihenfolge eine andere ist, ist das Empfängermodul im Sinne der vorliegenden Offenbarung „für ein Out-of-Order Queuing konfiguriert“. Kann das Empfängermodul nicht mit einer solchen Situation umgehen und die Datenpakete nicht in die richtige Reihenfolge bringen oder die falsche Reihenfolge nicht erkennen, ist das Empfängermodul im Sinne der vorliegenden Offenbarung „nicht für ein Out-of-Order Queuing konfiguriert“. If the receiver module can handle such a situation and put the data packets in the correct order, even if the reception order is different, the receiver module is “configured for out-of-order queuing” within the meaning of the present disclosure. If the receiver module cannot handle such a situation and put the data packets in the correct order or does not correct the incorrect order, recognize, the receiver module is “not configured for out-of-order queuing” within the meaning of the present disclosure.

Vorzugsweise umfasst das Verfahren weiter ein Empfangen, durch das Sendemodul, eines Duplicate Acknowledgment, DUP-ACK, vom Empfängermodul; und ein Bestimmen, auf den Empfang des DUP-ACK hin, dass das Empfängermodul nicht für ein OoO-Queuing konfiguriert ist. Wird also z.B. im ersten Betriebsmodus ein DUP-ACK oder eine bestimmte Anzahl an DUP-ACKs empfangen, kann vom ersten Betriebsmodus in den zweiten Betriebsmodus gewechselt werden, in dem angenommen wird, dass das Empfängermodul nicht für Out-of-Order Queuing konfiguriert ist. Preferably, the method further comprises receiving, by the transmitting module, a duplicate acknowledgment (DUP-ACK) from the receiving module; and determining, upon receipt of the DUP-ACK, that the receiving module is not configured for out-of-order queuing. Thus, for example, if a DUP-ACK or a certain number of DUP-ACKs is received in the first operating mode, a switch can be made from the first operating mode to the second operating mode, in which it is assumed that the receiving module is not configured for out-of-order queuing.

Duplicate Acknowledgment, DUP-ACK, ist eine Form der Bestätigung bzw. des Acknowledgment im TCP. Ein DUP-ACK tritt auf, wenn das Empfängermodul eine Bestätigung für ein bereits empfangenes Segment erneut sendet oder senden muss. Typischerweise tritt ein DUP-ACK in Situationen auf, in denen das Empfängermodul erkennt, dass ein bestimmtes TCP-Segment fehlt oder verloren gegangen ist. Wenn das Empfängermodul feststellt, dass ein bestimmtes Segment nicht rechtzeitig angekommen ist, sendet es ein DUP-ACK, um das Sendemodul (implizit) darauf hinzuweisen, dass das fehlende Segment erneut übertragen werden sollte. DUP- ACKs können auch in anderen Situationen auftreten, wie zum Beispiel bei der Verarbeitung von TCP-Segmenten, die außerhalb der erwarteten Reihenfolge eintreffen. In solchen Fällen sendet das Empfängermodul ein DUP-ACK, um das Sendemodul darüber zu informieren, dass Segmente außerhalb der Reihenfolge empfangen wurden (und deshalb nicht entgegengenommen werden können). Werden DUP-ACKs für ein komplettes Sendefenster empfangen, so kann das Sendemodul mit Sicherheit sagen, dass das Empfangsmodul kein Out-of-Order Queuing unterstützt, zumal mindesten ein Segment, das eine Lücke füllt, die bei Unterstützung von Out-of-Order Queuing existieren muss, ein reguläres ACK triggern hätte sollen. Der Empfang eines DUP-ACK liefert somit zum Beispiel unter den zuvor beschriebenen Umständen einen sicheren Hinweis darauf, dass das Empfängermodul nicht für ein Out-of-Order Queuing konfiguriert ist. Duplicate Acknowledgment (DUP-ACK) is a form of acknowledgment in TCP. A DUP-ACK occurs when the receiving module retransmits or needs to retransmit an acknowledgment for a segment it has already received. Typically, a DUP-ACK occurs in situations where the receiving module detects that a particular TCP segment is missing or lost. If the receiving module determines that a particular segment did not arrive in time, it sends a DUP-ACK to (implicitly) alert the sending module that the missing segment should be retransmitted. DUP-ACKs can also occur in other situations, such as when processing TCP segments that arrive out of order. In such cases, the receiving module sends a DUP-ACK to inform the sending module that segments were received out of order (and therefore cannot be accepted). If DUP-ACKs are received for a complete transmission window, the transmitting module can safely say that the receiving module does not support out-of-order queuing, especially since at least one segment that fills a gap, which must exist if out-of-order queuing is supported, should have triggered a regular ACK. Thus, the receipt of a DUP-ACK, for example, under the previously described circumstances is a sure indication that the receiver module is not configured for out-of-order queuing.

Vorzugsweise umfasst das Verfahren weiter ein Empfangen, durch das Sendemodul und im zweiten Betriebsmodus, eines Cumulative Acknowledgment, CUM-ACK, vom Empfängermodul; und ein Wechseln vom zweiten Betriebsmodus in den ersten Betriebsmodus auf den Empfang des CUM-ACK hin. Wird also im zweiten Betriebsmodus, in dem angenommen wird, dass das Empfängermodul nicht für Out- of-Order Queuing konfiguriert ist, ein CUM-ACK empfangen, wird diese Annahme revidiert und der erste Betriebsmodus ausgewählt, in dem angenommen wird, dass das Empfängermodul für Out-of-Order Queuing konfiguriert ist. Preferably, the method further comprises receiving, by the transmitting module and in the second operating mode, a cumulative acknowledgment (CUM-ACK) from the receiving module; and switching from the second operating mode to the first operating mode upon receipt of the CUM-ACK. Thus, if a CUM-ACK is received in the second operating mode, in which it is assumed that the receiving module is not configured for out-of-order queuing, this assumption is revised, and the first operating mode is selected, in which it is assumed that the receiving module is configured for out-of-order queuing.

Ob dieser Modus-Wechsel vollzogen werden soll oder nicht, kann gemäß einem unabhängigen Aspekt aktiviert oder deaktiviert werden. Welche Modus-Wechsel vorteilhaft sind hängt z.B. vom initialen Betriebsmodus ab. So könnte beispielsweise angenommen werden, dass Out-of-Order Queuing nicht unterstützt wird, solange durch den Empfang eines CUM-ACK auf ein vorausgehendes DUP-ACK nicht das Gegenteil bewiesen ist, und den Betriebsmodus erst danach umstellen. Umgekehrt könnte man auch vom anderen Betriebsmodus starten und davon ausgehen, dass Out- of-Order Queuing unterstützt wird und erst den Betriebsmodus wechseln, wenn diese Annahme nicht mehr aufrechterhalten werden kann. Bei einer Ausgestaltung kann nur ein einziger Modus-Wechsel erforderlich sein, so dass etwaige Übergangsbedingungen im Betrieb nicht weiter stören würden. Whether this mode change should be performed or not can be activated or deactivated according to an independent aspect. Which mode changes are advantageous depends, for example, on the initial operating mode. For example, it could be assumed that out-of-order queuing is not supported until the opposite is proven by the receipt of a CUM-ACK following a preceding DUP-ACK, and the operating mode could only be changed afterward. Conversely, one could also start from the other operating mode and assume that out-of-order queuing is supported, only changing the operating mode when this assumption can no longer be maintained. In one design, only a single mode change may be necessary, so that any transitional conditions would not further disrupt operation.

Cumulative Acknowledgment, CUM-ACK, ist eine Form der Bestätigung bzw. des Acknowledgment im TCP. Wenn das Empfängermodul Daten erfolgreich empfängt, sendet es ein ACK zurück an das Sendemodul, um dies zu bestätigen. Mit einem CUM-ACK bestätigt das Empfängermodul nicht nur das zuletzt lückenlos empfangene Segment, sondern auch alle zuvor nur lückenlos vorliegende Segmente bis zu einer bestimmten Sequenznummer. Das CUM-ACK gibt somit an, dass alle Daten bis zu einer bestimmten Sequenznummer erfolgreich empfangen wurden. Dies erleichtert die Implementierung und den Betrieb von TCP, da das Sendemodul nicht für jedes einzelne empfangene Segment eine separate Bestätigung erhalten muss und nimmt Interrupt-Last vom Sendemodul. Der Empfang eines CUM-ACK liefert somit unter bestimmten Umständen einen sicheren Hinweis darauf, dass das Empfängermodul für ein Out-of-Order Queuing konfiguriert ist. Insbesondere liefert ein CUM-ACK im selben Sendefenster, in dem zuvor ein DUP-ACK aufgetreten ist, diesen Hinweis. Cumulative Acknowledgment (CUM-ACK) is a form of acknowledgement in TCP. When the receiving module successfully receives data, it sends an ACK back to the sending module to confirm this. With a CUM-ACK, the receiving module acknowledges not only the last seamless segment received, but also all previously seamless segments up to a specific sequence number. The CUM-ACK thus indicates that all data up to a specific sequence number has been successfully received. This simplifies the implementation and operation of TCP because the sending module does not need to receive a separate acknowledgment for each received segment and relieves the interrupt load from the sending module. Thus, under certain circumstances, the receipt of a CUM-ACK provides a reliable indication that the receiving module is configured for out-of-order queuing. In particular, a CUM-ACK in the same send window in which a DUP-ACK previously occurred provides this indication.

Vorzugsweise umfasst das TCP ein Sliding Window (Schiebefenster). Das Sliding Window wird im Allgemeinen verwendet, um die Übertragung von Daten zwischen Sendemodul und Empfängermodul zu steuern und ermöglicht es, mehrere Datenpakete gleichzeitig zu übertragen, ohne auf die Bestätigung jedes einzelnen Pakets warten zu müssen. Das Sliding Window repräsentiert dabei den Bereich der noch nicht bestätigten Datenpakete bzw. TCP-Segmente, den das Sendemodul gleichzeitig senden kann, bevor es auf Bestätigungen vom Empfängermodul wartet. Vereinfacht kann das Sliding Window auch als die Speichersituation am Empfangsmodul betrachtet werden, bzw. die Sicht des Sendemoduls auf die Speichersituation am Empfangsmodul. Wenn Bestätigungen für gesendete Datenpakete eingehen, wird das Sliding Window verschoben. Die Größe des Sliding Window wird als „Fenstergröße“ bezeichnet. Preferably, the TCP includes a sliding window. The sliding window is generally used to control the transmission of data between the sending module and the receiving module and allows multiple data packets to be transmitted simultaneously without having to wait for acknowledgment of each individual packet. The sliding window represents the range of unacknowledged data packets or TCP segments that the sending module can send simultaneously before waiting for acknowledgments from the receiving module. In simple terms, the sliding window can also be viewed as the memory situation at the receiving module, or the sending module's view of the memory situation at the receiving module. When acknowledgments for sent data packets are received, the sliding window is moved. The size of the sliding window is referred to as the "window size."

Vorzugsweise ist gemäß einigen Ausführungsformen der vorliegenden Offenbarung innerhalb des Sliding Window ein Wiederholfenster („Repeat Window“) definiert. Im ersten Betriebsmodus und im zweiten Betriebsmodus des Sendemoduls erfolgt eine Re-Transmission von TCP-Segmenten aus dem Wiederholfenster, insbesondere ausschließlich aus dem Wiederholfenster. Preferably, according to some embodiments of the present disclosure, a repeat window is defined within the sliding window. In the first operating mode and the second operating mode of the transmit module, TCP segments are retransmitted from the repeat window, in particular exclusively from the repeat window.

Vorzugsweise weisen das Sliding Window und das Wiederholfenster denselben Startpunkt auf, wie zum Beispiel ein Basis-TCP-Segment des Sliding Window. Vorzugsweise ist das Wiederholfenster vom Basis-TCP-Segment (einschließlich des Basis-TCP-Segments) bis zu einem nächsten ungesendeten TCP-Segment des Sliding Window (ausschließlich des ungesendeten TCP-Segments) definiert. Preferably, the sliding window and the retry window have the same starting point, such as a base TCP segment of the sliding window. Preferably, the retry window is defined from the base TCP segment (including the base TCP segment) to a next unsent TCP segment of the sliding window (excluding the unsent TCP segment).

Vorzugsweise weisen das Sliding Window und das Wiederholfenster unterschiedliche Endpunkte auf. Preferably, the sliding window and the repeat window have different endpoints.

Vorzugsweise weisen das Sliding Window und das Wiederholfenster unterschiedliche Fenstergrößen auf. Preferably, the sliding window and the repeat window have different window sizes.

Vorzugsweise umfasst das Wiederholfenster ausschließlich gesendete TCP- Segmente. Preferably, the retry window includes only sent TCP segments.

Vorzugsweise ist die Re-Transmissionscharakteristik im ersten Betriebsmodus derart, dass nur ein ältestes unbestätigtes TCP-Segment übertragen wird, wie zum Beispiel ein ältestes unbestätigtes TCP-Segment des Wiederholfensters. Das älteste unbestätigte TCP-Segment ist dasjenige TCP-Segment mit der niedrigsten Sequenznummer, das noch nicht durch eine Bestätigung bzw. ein Acknowledgment vom Empfängermodul quittiert wurde. Damit kann bei angenommener OoO- Queuing-Befähigung des Empfängermoduls eine maximal effiziente Re- Transmission von unbestätigten Daten erfolgen. Preferably, the retransmission characteristic in the first operating mode is such that only the oldest unacknowledged TCP segment is transmitted, such as the oldest unacknowledged TCP segment of the retransmission window. The oldest unacknowledged TCP segment is the TCP segment with the lowest sequence number that has not yet been acknowledged by the receiver module. This allows for the most efficient retransmission of unacknowledged data, assuming the receiver module has OoO queuing capability.

Vorzugsweise ist die Re-Transmissionscharakteristik im zweiten Betriebsmodus derart, dass mehrere unbestätigte TCP-Segmente übertragen werden. Beispielsweise können alle TCP-Segmente des Wiederholfensters oder zumindest alle (noch) unbestätigten TCP-Segmente des Wiederholfensters übertragen werden. Damit kann bei angenommener fehlender OoO-Queuing-Befähigung des Empfängermoduls eine maximal effiziente Re-Transmission von unbestätigten Daten erfolgen. Preferably, the retransmission characteristic in the second operating mode is such that multiple unacknowledged TCP segments are transmitted. For example, all TCP segments of the retransmission window, or at least all (still) unacknowledged TCP segments of the retransmission window, can be transmitted. This allows for maximum efficiency in the retransmission of unacknowledged data, assuming the receiver module lacks OoO queuing capability.

Vorzugsweise ist das Verfahren für eine Fahrzeugprogrammierung vorgesehen und/oder wird bei der Fahrzeugprogrammierung eingesetzt. Die Fahrzeugprogrammierung kann zum Beispiel die Programmierung von Steuergeräten (z.B. ECUs) für verschiedene Funktionen wie Motorsteuerung, Getriebesteuerung, Bremsen, Fahrwerkssteuerung, Infotainment usw. umfassen. In einem weiteren Beispiel kann die Fahrzeugprogrammierung Fahrassistenzsysteme zum automatisierten Fahren betreffen. Dies umfasst zum Beispiel die Programmierung von Algorithmen für Sensordatenverarbeitung, Entscheidungsfindung und Fahrzeugsteuerung in Echtzeit. Preferably, the method is intended for vehicle programming and/or is used in vehicle programming. Vehicle programming can, for example, include the programming of control units (e.g., ECUs) for various functions such as engine control, transmission control, braking, chassis control, infotainment, etc. In another example, vehicle programming can relate to driver assistance systems for automated driving. This includes, for example, the programming of algorithms for sensor data processing, decision-making, and real-time vehicle control.

Der Begriff Fahrzeug umfasst PKW, LKW, Transporter, Busse, Wohnmobile, Krafträder, usw., die der Beförderung von Personen, Gütern, usw. dienen. Insbesondere umfasst der Begriff Kraftfahrzeuge zur Personenbeförderung. The term "vehicle" includes cars, trucks, vans, buses, mobile homes, motorcycles, etc., used to transport people, goods, etc. In particular, the term includes motor vehicles used for passenger transport.

Vorzugsweise wird das Verfahren bei oder mit Embedded Systems eingesetzt. Embedded Systems (eingebettete Systeme) sind spezielle Computer-Systeme, die in andere Geräte oder Systeme eingebettet sind, um bestimmte Funktionen oder Steuerungsaufgaben zu erfüllen. Im Gegensatz zu herkömmlichen Computern, die für allgemeine Zwecke verwendet werden, sind Embedded Systems darauf ausgelegt, spezifische Funktionen in einer dedizierten Umgebung zu erfüllen. The method is preferably used in or with embedded systems. Embedded systems are specialized computer systems that are embedded in other devices or systems to perform specific functions or control tasks. Unlike conventional computers, which are used for general purposes, embedded systems are designed to perform specific functions in a dedicated environment.

Gemäß einem weiteren unabhängigen Aspekt der vorliegenden Offenbarung ist ein Software (SW) Programm angegeben. Das SW Programm kann eingerichtet werden, um auf einem oder mehreren Prozessoren ausgeführt zu werden, und um dadurch das in diesem Dokument beschriebene Verfahren zur bidirektionalen Kommunikation in einem Netzwerk auszuführen. According to a further independent aspect of the present disclosure, a software (SW) program is provided. The SW program can be configured to run on one or more processors and thereby implement the method described in this document for bidirectional communication in a network.

Gemäß einem weiteren unabhängigen Aspekt der vorliegenden Offenbarung ist ein Speichermedium angegeben. Das Speichermedium kann ein SW Programm umfassen, welches eingerichtet ist, um auf einem oder mehreren Prozessoren ausgeführt zu werden, und um dadurch das in diesem Dokument beschriebene Verfahren zur bidirektionalen Kommunikation in einem Netzwerk auszuführen. Gemäß einem weiteren unabhängigen Aspekt der vorliegenden Offenbarung ist eine Software mit Programmcode angegeben. Die Software ist zur Durchführung des Verfahrens zur bidirektionalen Kommunikation in einem Netzwerk eingerichtet, wenn die Software auf einer oder mehreren softwaregesteuerten Einrichtungen abläuft. According to a further independent aspect of the present disclosure, a storage medium is provided. The storage medium can comprise a software program configured to be executed on one or more processors and thereby to carry out the method described in this document for bidirectional communication in a network. According to a further independent aspect of the present disclosure, software with program code is provided. The software is configured to implement the method for bidirectional communication in a network when the software runs on one or more software-controlled devices.

Gemäß einem weiteren unabhängigen Aspekt der vorliegenden Offenbarung ist ein System zur bidirektionalen Kommunikation in einem Netzwerk angegeben. Das System umfasst einen oder mehrere Prozessoren; und wenigstens einen Speicher, der mit dem einen oder den mehreren Prozessoren verbunden ist und Anweisungen enthält, die von dem einen oder den mehreren Prozessoren ausgeführt werden können, um das in diesem Dokument beschriebene Verfahren zur bidirektionalen Kommunikation in einem Netzwerk auszuführen. According to a further independent aspect of the present disclosure, a system for bidirectional communication in a network is provided. The system comprises one or more processors; and at least one memory connected to the one or more processors and containing instructions executable by the one or more processors to perform the method for bidirectional communication in a network described in this document.

Vorzugsweise umfasst, oder ist, das System das Sendemodul. Preferably, the system comprises, or is, the transmitter module.

Vorzugsweise umfasst das System das Sendemodul und das Empfängermodul, oder besteht aus dem Sendemodul und dem Empfängermodul. Preferably, the system comprises the transmitter module and the receiver module, or consists of the transmitter module and the receiver module.

Ein Prozessor bzw. ein Prozessormodul ist ein programmierbares Rechenwerk, also eine Maschine oder eine elektronische Schaltung, die gemäß übergebenen Befehlen andere Elemente steuert und dabei einen Algorithmus (Prozess) vorantreibt. A processor or processor module is a programmable computing unit, i.e. a machine or an electronic circuit that controls other elements according to given instructions and thereby drives an algorithm (process).

Kurze Beschreibung der Zeichnungen Short description of the drawings

Ausführungsbeispiele der Offenbarung sind in den Figuren dargestellt und werden im Folgenden näher beschrieben. Es zeigen: Embodiments of the disclosure are illustrated in the figures and are described in more detail below. They show:

Figur 1 schematisch ein System zur bidirektionalen Kommunikation in einem Netzwerk gemäß Ausführungsformen der vorliegenden Offenbarung, Figur 2 ein Flussdiagramm eines Verfahrens zur bidirektionalen Kommunikation in einem Netzwerk gemäß Ausführungsformen der vorliegenden Offenbarung, Figure 1 schematically shows a system for bidirectional communication in a network according to embodiments of the present disclosure, Figure 2 is a flowchart of a method for bidirectional communication in a network according to embodiments of the present disclosure,

Figur 3 eine Vielzahl von TCP-Segmenten des TCP gemäß Ausführungsformen der vorliegenden Offenbarung, und Figure 3 shows a plurality of TCP segments of the TCP according to embodiments of the present disclosure, and

Figur 4 eine State Machine für eine adaptive Flusskontrolle gemäß Ausführungsformen der vorliegenden Offenbarung. Figure 4 shows a state machine for adaptive flow control according to embodiments of the present disclosure.

Ausführungsformen der Offenbarung Embodiments of the disclosure

Im Folgenden werden, sofern nicht anders vermerkt, für gleiche und gleichwirkende Elemente gleiche Bezugszeichen verwendet. In the following, unless otherwise stated, the same reference symbols are used for identical and equivalent elements.

Figur 1 zeigt schematisch ein System zur bidirektionalen Kommunikation in einem Netzwerk gemäß Ausführungsformen der vorliegenden Offenbarung. Figure 1 schematically shows a system for bidirectional communication in a network according to embodiments of the present disclosure.

Das System umfasst ein Sendemodul 110 (Tx) und ein Empfängermodul 120 (Rx), die über ein Netzwerk miteinander kommunizieren. Der Begriff „Netzwerk“ bezieht sich auf eine Kommunikationsinfrastruktur, über die Daten zwischen dem Sendemodul 110 und dem Empfängermodul 120 ausgetauscht werden. Dieses Netzwerk kann das Internet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) oder andere Arten von Netzwerken umfassen. Im Allgemeinen ist der Datenaustausch bidirektional, d.h. ein Sendemodul ist immer auch ein Empfangsmodul. Die Wahl der Darstellung dient dem Verständnis der wesentlichen Aspekte und soll diesen Sachverhalt nicht einschränken. The system comprises a transmitter module 110 (Tx) and a receiver module 120 (Rx), which communicate with each other via a network. The term "network" refers to a communications infrastructure over which data is exchanged between the transmitter module 110 and the receiver module 120. This network can include the Internet, a local area network (LAN), a wide area network (WAN), or other types of networks. Generally, data exchange is bidirectional, meaning that a transmitter module is always also a receiver module. The choice of representation serves to understand the essential aspects and is not intended to limit this.

Die Kommunikation zwischen dem Sendemodul 110 und dem Empfängermodul 120 basiert auf dem Transmission Control Protocol, TCP. Im TCP wird die Übertragung von Daten in Segmente organisiert. Ein TCP-Segment SEG ist dabei eine Datenstruktur, die Informationen über die zu sendenden Daten enthält und über das Netzwerk verschickt wird. Jedes TCP-Segment SEG enthält Daten und wird durch eine Sequenznummer identifiziert. Beispielsweise kann jedes TCP-Segment SEG einen Header, die Daten (Nutzdaten bzw. Payload) und eine Checksumme für die Überprüfung der Integrität der übertragenen Daten umfassen. Der Header kann zum Beispiel die Sequenznummer, eine Acknowledgment-Nummer, eine Fenstergröße eines Sliding Window, Flags, usw. umfassen. The communication between the transmitting module 110 and the receiving module 120 is based on the Transmission Control Protocol (TCP). In TCP, the transmission of data is organized into segments. A TCP segment (SEG) is a data structure that contains information about the data to be sent and about the network. Each TCP segment (SEG) contains data and is identified by a sequence number. For example, each TCP segment (SEG) can include a header, the data (payload), and a checksum for verifying the integrity of the transmitted data. The header can include, for example, the sequence number, an acknowledgment number, a sliding window size, flags, etc.

Das Acknowledgment ACK ist eine Nachricht, mit der das Empfängermodul 120 dem Sendemodul 110 mitteilt, dass TCP-Segmente SEG erfolgreich angekommen sind. Sind die gesendeten TCP-Segmente SEG nicht beim Empfängermodul 120 angekommen, kann das Sendemodul 110 die Daten erneut senden. Dies wird im Rahmen der vorliegenden Offenbarung als „Re-Transmission“ bezeichnet. The acknowledgment ACK is a message with which the receiver module 120 notifies the transmitter module 110 that the TCP segments SEG have arrived successfully. If the transmitted TCP segments SEG have not arrived at the receiver module 120, the transmitter module 110 can resend the data. This is referred to as "retransmission" in the context of the present disclosure.

Im Allgemeinen wird eine sogenannte TCP Congestion Control eingesetzt, um den Datenverkehr im Netzwerk zu steuern und eine Netzwerküberlastung zu verhindern. In ressourcenbeschränkten Systemen stoßen herkömmliche TCP Congestion Control- Ansätze wie Tahoe, (New) Reno, usw., jedoch an ihre Grenzen. Insbesondere sind herkömmliche TCP Congestion Control-Algorithmen primär für Consumer/Enterprise Systeme konzipiert und vernachlässigen Implementierungsschwächen von Embedded Systems, was zu unerwünschten Wechselwirkungen führen kann. Beispielsweise können sogenannte „Re- Transmission Chains“ auftreten, in denen zwei beteiligte TCPs in einem ineffizienten „Ping-Pong“ verharren, was zu erheblichen Datenratenreduktionen führen kann. Generally, TCP congestion control is used to manage network traffic and prevent network congestion. However, in resource-constrained systems, conventional TCP congestion control approaches such as Tahoe, (New) Reno, etc., reach their limits. In particular, conventional TCP congestion control algorithms are primarily designed for consumer/enterprise systems and neglect implementation weaknesses of embedded systems, which can lead to undesirable interactions. For example, so-called "retransmission chains" can occur in which two participating TCPs remain in an inefficient "ping-pong" state, which can lead to significant data rate reductions.

Die Ausführungsformen der vorliegenden Offenbarung lösen derartige Probleme herkömmlicher TCP Congestion Control-Algorithmen durch das Bereitstellen unterschiedlicher Sendemodul-Betriebsmodi in Abhängigkeit einer Befähigung des Empfängers zum Out-of-Order Queuing, wie im Folgenden beschrieben ist. Der Begriff “Out-of-Order Queuing” bezieht sich dabei auf eine Situation in der Netzwerkkommunikation, bei der die empfangenen Datenpakete bzw. Segmente nicht in der Reihenfolge ihres Versands ankommen. Figur 2 zeigt ein Flussdiagramm eines Verfahrens 200 zur bidirektionalen Kommunikation in einem Netzwerk gemäß Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 200 kann durch eine entsprechende Software implementiert werden, die durch einen oder mehrere Prozessoren (z.B. eine CPU) ausführbar ist. The embodiments of the present disclosure solve such problems of conventional TCP congestion control algorithms by providing different transmit module operating modes depending on the receiver's ability to perform out-of-order queuing, as described below. The term "out-of-order queuing" refers to a situation in network communication in which the received data packets or segments arrive out of order. Figure 2 shows a flowchart of a method 200 for bidirectional communication in a network according to embodiments of the present disclosure. The method 200 can be implemented by appropriate software executable by one or more processors (e.g., a CPU).

Das Verfahren 200 umfasst im Block 210 ein Senden, durch ein Sendemodul, von Daten an ein Empfängermodul gemäß dem Transmission Control Protocol, TCP; im Block 220 ein Bestimmen, durch das Sendemodul, ob das Empfängermodul für ein Out-of-Order Queuing, OoO-Queuing, konfiguriert ist; und im Block 230 ein Auswählen eines ersten Betriebsmodus des Sendemoduls, wenn das Empfängermodul für ein OoO-Queuing konfiguriert ist, oder eines zweiten Betriebsmodus, wenn das Empfängermodul nicht für ein OoO-Queuing konfiguriert ist, wobei der erste Betriebsmodus und der zweite Betriebsmodus unterschiedliche Re-Transmissionscharakteristika für unbestätigte TCP-Segmente aufweisen. The method 200 comprises, in block 210, sending, by a transmitting module, data to a receiving module according to the Transmission Control Protocol (TCP); in block 220, determining, by the transmitting module, whether the receiving module is configured for out-of-order queuing (OoO queuing); and, in block 230, selecting a first operating mode of the transmitting module if the receiving module is configured for OoO queuing, or a second operating mode if the receiving module is not configured for OoO queuing, wherein the first operating mode and the second operating mode have different retransmission characteristics for unacknowledged TCP segments.

Damit erkennt das Sendemodul bestimmte Fähigkeiten des Empfängermoduls und geht selbstständig in einem adäquaten Modus. Insbesondere werden unterschiedliche Re-Transmissionscharakteristika verwendet, je nachdem, ob das Empfängermodul für OoO-Queuing konfiguriert ist oder nicht. Beispielsweise kann lediglich das letzte unbestätigte Datensegment übertragen werden, wenn das Empfängermodul OoO- Queuing unterstützt. Unterstützt das Empfängermodul hingegen kein OoO-Queuing, kann das gesamte Wiederholfenster übertragen werden. Somit kann das Sendemodul selbständig und flexibel auf die Fähigkeiten des Empfängermoduls reagieren und einen geeigneten Betriebsmodus wählen, so dass eine verbesserte Datenübertragung zwischen Kommunikationspartnem ermöglicht wird. Insbesondere kann eine verbesserte TCP Congestion Control in ressourcenbeschränkten Systemen ermöglicht werden. In einigen Ausführungsformen ist das Verfahren 200 für eine Fahrzeugprogrammierung vorgesehen und/oder wird bei der Fahrzeugprogrammierung eingesetzt. Die Fahrzeugprogrammierung kann zum Beispiel die Programmierung von Steuergeräten (z.B. ECUs) für verschiedene Funktionen wie Motorsteuerung, Getriebesteuerung, Bremsen, Fahrwerkssteuerung, Infotainment usw. umfassen. In einem weiteren Beispiel kann die Fahrzeugprogrammierung Fahrassistenzsysteme zum automatisierten Fahren betreffen. Dies umfasst zum Beispiel die Programmierung von Algorithmen für Sensordatenverarbeitung, Entscheidungsfindung und Fahrzeugsteuerung in Echtzeit. Ergänzend oder alternativ wird das Verfahren 200 bei oder mit Embedded Systems eingesetzt. This allows the transmitting module to recognize certain capabilities of the receiving module and independently switch to an appropriate mode. In particular, different retransmission characteristics are used depending on whether the receiving module is configured for OoO queuing or not. For example, only the last unacknowledged data segment can be transmitted if the receiving module supports OoO queuing. However, if the receiving module does not support OoO queuing, the entire retransmission window can be transmitted. This allows the transmitting module to respond independently and flexibly to the capabilities of the receiving module and select a suitable operating mode, enabling improved data transmission between communication partners. In particular, improved TCP congestion control can be enabled in resource-limited systems. In some embodiments, method 200 is provided for vehicle programming and/or is used in vehicle programming. Vehicle programming may include, for example, the programming of control units (e.g., ECUs) for various functions such as engine control, transmission control, braking, chassis control, infotainment, etc. In another example, vehicle programming may relate to driver assistance systems for automated driving. This includes, for example, the programming of algorithms for sensor data processing, decision-making, and real-time vehicle control. Additionally or alternatively, method 200 is used in or with embedded systems.

Figur 3 zeigt eine Vielzahl von TCP-Segmenten des TCP gemäß Ausführungsformen der vorliegenden Offenbarung. Figure 3 shows a plurality of TCP segments of the TCP according to embodiments of the present disclosure.

Die TCP-Segmente umfassen im gezeigten Beispiel bestätigte TCP-Segmente SEG- A, für die Transmission verwendbare und zuvor noch nicht gesendete TCP-Segmente SEG-B, gesendete aber noch unbestätigte TCP-Segmente SEG-C, und nicht verwendbare TCP-Segmente SEG-D. In the example shown, the TCP segments include confirmed TCP segments SEG-A, TCP segments usable for transmission but not yet sent SEG-B, TCP segments sent but not yet confirmed SEG-C, and unusable TCP segments SEG-D.

Das TCP kann ein Sliding Window SLW umfassen. Das Sliding Window SLW wird im Allgemeinen verwendet, um die Übertragung von Daten zwischen Sendemodul und Empfängermodul zu steuern und ermöglicht es, mehrere Datenpakete gleichzeitig zu übertragen, ohne auf die Bestätigung jedes einzelnen Pakets warten zu müssen (Pipelining). Wenn Bestätigungen für gesendete Datenpakete eingehen, wird das Sliding Window SLW verschoben. Die Größe des Sliding Window SLW wird als „Fenstergröße“ bezeichnet und wird z.B. vom Empfängermodul im Rahmen der Flusssteuerung vorgegeben. TCP may include a sliding window (SLW). The sliding window (SLW) is generally used to control the transmission of data between the transmitting module and the receiving module and allows multiple data packets to be transmitted simultaneously without having to wait for each individual packet to be acknowledged (pipelining). When acknowledgements for sent data packets are received, the sliding window (SLW) is shifted. The size of the sliding window (SLW) is called the "window size" and is specified, for example, by the receiving module as part of flow control.

Innerhalb des Sliding Window SLW kann ein Wiederholfenster („Repeat Window“) REW definiert sein, welches ausschließlich gesendete TCP-Segmente SEG-A und SEG-C umfasst. Im ersten Betriebsmodus und im zweiten Betriebsmodus des Sendemoduls erfolgt eine Re-Transmission von TCP-Segmenten aus dem Wiederholfenster REW, insbesondere ausschließlich aus dem Wiederholfenster REW. Within the Sliding Window SLW, a Repeat Window REW can be defined, which only contains sent TCP segments SEG-A and SEG-C. In the first operating mode and the second operating mode of the transmit module, TCP segments are retransmitted from the retransmission window REW, in particular exclusively from the retransmission window REW.

Das Sliding Window SLW und das Wiederholfenster REW können denselben Startpunkt aufweisen, wie zum Beispiel ein Basis-TCP-Segment (base) des Sliding Window SLW, und können unterschiedliche Endpunkte aufweisen. Damit können das Sliding Window SLW und das Wiederholfenster REW unterschiedliche Fenstergrößen aufweisen. In einigen Ausführungsformen erstreckt sich das Wiederholfenster REW vom Basis-TCP-Segment (base) bis zu einem nächsten ungesendeten TCP-Segment des Sliding Window SLW (nextseq). The sliding window SLW and the retry window REW may have the same starting point, such as a base TCP segment (base) of the sliding window SLW, and may have different endpoints. Thus, the sliding window SLW and the retry window REW may have different window sizes. In some embodiments, the retry window REW extends from the base TCP segment (base) to a next unsent TCP segment of the sliding window SLW (nextseq).

In einigen Ausführungsformen ist die Re-Transmissionscharakteristik im ersten Betriebsmodus derart, dass nur ein ältestes unbestätigtes TCP-Segment des Wiederholfensters REW übertragen wird. Das älteste unbestätigte TCP-Segment ist dasjenige TCP-Segment mit der niedrigsten Sequenznummer, das noch nicht durch eine Bestätigung bzw. ein Acknowledgment vom Empfängermodul quittiert wurde. Damit kann bei angenommener OoO-Queuing-Befähigung des Empfängermoduls eine maximal effiziente Re-Transmission von unbestätigten Daten erfolgen. In some embodiments, the retransmission characteristic in the first operating mode is such that only the oldest unacknowledged TCP segment of the retransmission window REW is transmitted. The oldest unacknowledged TCP segment is the TCP segment with the lowest sequence number that has not yet been acknowledged by the receiver module. This allows for the most efficient retransmission of unacknowledged data, assuming the receiver module has OoO queuing capability.

Zudem kann die Re-Transmissionscharakteristik im zweiten Betriebsmodus derart sein, dass mehrere unbestätigte TCP-Segmente übertragen werden. Beispielsweise können alle TCP-Segmente des Wiederholfensters REW oder zumindest alle unbestätigten TCP-Segmente des Wiederholfensters REW übertragen werden. Damit kann bei angenommener fehlender OoO-Queuing-Befähigung des Empfängermoduls eine maximal effiziente Re-Transmission von unbestätigten Daten erfolgen, indem sämtliche „Re-Transmission Chains“ aufgebrochen werden. Figur 4 zeigt eine State Machine für eine adaptive Flusskontrolle gemäß Ausführungsformen der vorliegenden Offenbarung. In addition, the retransmission characteristics in the second operating mode can be such that multiple unacknowledged TCP segments are transmitted. For example, all TCP segments of the retransmission window REW, or at least all unacknowledged TCP segments of the retransmission window REW, can be transmitted. This allows for the most efficient retransmission of unacknowledged data, assuming the receiver module lacks OoO queuing capability, by breaking all retransmission chains. Figure 4 shows a state machine for adaptive flow control according to embodiments of the present disclosure.

In einigen Ausführungsformen kann das Sendemodul bestimmen, dass das Empfängermodul nicht für ein OoO-Queuing konfiguriert ist, wenn ein Duplicate Acknowledgment, DUP-ACK, vom Empfängermodul empfangen wird. Wird also z.B. im ersten Betriebsmodus BMI ein DUP-ACK oder eine bestimmte vom Sendefenster abhängige Anzahl an DUP-ACKs empfangen, kann vom ersten Betriebsmodus BMI in den zweiten Betriebsmodus BM2 gewechselt werden, in dem angenommen wird, dass das Empfängermodul nicht für Out-of-Order Queuing konfiguriert ist. In some embodiments, the transmitting module can determine that the receiving module is not configured for out-of-order queuing when a duplicate acknowledgment (DUP-ACK) is received from the receiving module. For example, if a DUP-ACK or a certain number of DUP-ACKs dependent on the transmit window is received in the first operating mode (BMI), the first operating mode (BMI) can be switched to the second operating mode (BM2), in which it is assumed that the receiving module is not configured for out-of-order queuing.

Duplicate Acknowledgment, DUP-ACK, ist eine Form der Bestätigung bzw. des Acknowledgment im TCP-Protokoll. Typischerweise tritt ein DUP-ACK in Situationen auf, in denen das Empfängermodul erkennt, dass ein bestimmtes TCP- Segment fehlt oder verloren gegangen ist. Wenn das Empfängermodul feststellt, dass ein bestimmtes Segment nicht rechtzeitig angekommen ist, sendet es ein DUP-ACK, um das Sendemodul (z.B. implizit) darauf hinzuweisen, dass das fehlende Segment erneut übertragen werden sollte. DUP-ACKs können auch in anderen Situationen auftreten, wie zum Beispiel bei der Verarbeitung von TCP-Segmenten, die außerhalb der erwarteten Reihenfolge eintreffen. In solchen Fällen sendet das Empfängermodul ein DUP-ACK, um das Sendemodul darüber zu informieren, dass Segmente außerhalb der Reihenfolge empfangen wurden. Der Empfang eines DUP-ACK liefert somit zum Beispiel unter in diesem Dokument genauer beschriebenen Voraussetzungen einen sicheren Hinweis darauf, dass das Empfängermodul nicht für ein Out-of-Order Queuing konfiguriert ist. Duplicate Acknowledgment (DUP-ACK) is a form of acknowledgment in the TCP protocol. Typically, a DUP-ACK occurs in situations where the receiving module detects that a particular TCP segment is missing or lost. If the receiving module determines that a particular segment did not arrive in time, it sends a DUP-ACK to inform the sending module (e.g., implicitly) that the missing segment should be retransmitted. DUP-ACKs can also occur in other situations, such as when processing TCP segments that arrive out of the expected order. In such cases, the receiving module sends a DUP-ACK to inform the sending module that segments have been received out of order. Thus, the receipt of a DUP-ACK provides, for example, under the conditions described in more detail in this document, a reliable indication that the receiving module is not configured for out-of-order queuing.

In einigen Ausführungsformen kann das Sendemodul vom zweiten Betriebsmodus BM2 (zurück) in den ersten Betriebsmodus BMI wechseln, wenn ein Cumulative Acknowledgment, CUM-ACK, vom Empfängermodul empfangen wird. Wird also im zweiten Betriebsmodus BM2, in dem angenommen wird, dass das Empfängermodul nicht für Out-of-Order Queuing konfiguriert ist, ein CUM-ACK empfangen, wird diese Annahme revidiert und der erste Betriebsmodus BMI ausgewählt, in dem angenommen wird, dass das Empfängermodul für Out-of-Order Queuing konfiguriert ist. In some embodiments, the transmitting module can switch from the second operating mode BM2 (back) to the first operating mode BMI when a cumulative acknowledgment, CUM-ACK, is received from the receiving module. Thus, in the second operating mode BM2, in which it is assumed that the If a CUM-ACK is received when the receiver module is not configured for out-of-order queuing, this assumption is revised and the first operating mode BMI is selected, in which it is assumed that the receiver module is configured for out-of-order queuing.

Cumulative Acknowledgment, CUM-ACK, ist eine Form der Bestätigung bzw. des Acknowledgment im TCP. Wenn das Empfängermodul Daten erfolgreich empfängt, sendet es ein ACK zurück an das Sendemodul, um dies zu bestätigen. Mit einem CUM-ACK bestätigt das Empfängermodul nicht nur das zuletzt empfangene Segment, sondern auch alle zuvor empfangenen Segmente bis zu einer bestimmten Sequenznummer. Das CUM-ACK gibt somit an, dass alle Daten bis zu einer bestimmten Sequenznummer erfolgreich empfangen wurden. Dies erleichtert die Implementierung und den Betrieb von TCP, da das Sendemodul nicht für jedes einzelne empfangene Segment eine separate Bestätigung erhalten muss. Der Empfang eines CUM-ACK im selben Sendefenster, in dem zuvor ein DUP-ACK aufgetreten ist, liefert somit einen sicheren Hinweis darauf, dass das Empfängermodul für ein Out-of-Order Queuing konfiguriert ist. Cumulative Acknowledgment (CUM-ACK) is a form of acknowledgment in TCP. When the receiving module successfully receives data, it sends an ACK back to the sending module to confirm this. With a CUM-ACK, the receiving module acknowledges not only the most recently received segment, but also all previously received segments up to a certain sequence number. The CUM-ACK thus indicates that all data up to a certain sequence number has been successfully received. This simplifies the implementation and operation of TCP, as the sending module does not need to receive a separate acknowledgment for each individual received segment. Receiving a CUM-ACK in the same send window in which a DUP-ACK previously occurred thus provides a reliable indication that the receiving module is configured for out-of-order queuing.

Die Ausführungsformen der vorliegenden Offenbarung ermöglichen nachhaltige Verbesserungen in TCP-Implementierungen, ohne dabei bestehende Features zu umgehen. Ein Fokus liegt auf der gezielten Optimierung von TCP-Stapeln für ressourcenbeschränkte Systeme, insbesondere solche, die in Embedded Systems implementiert sind und bewusst nicht alle Aspekte der einschlägigen Standards umsetzen. Damit ist ein effizienter und optimierter TCP Congestion Control- Algorithmus geschaffen, der gezielt auf die Implementierungsschwächen von Embedded Systems eingeht. The embodiments of the present disclosure enable sustainable improvements in TCP implementations without circumventing existing features. One focus is on the targeted optimization of TCP stacks for resource-constrained systems, particularly those implemented in embedded systems that deliberately do not implement all aspects of the relevant standards. This creates an efficient and optimized TCP congestion control algorithm that specifically addresses the implementation weaknesses of embedded systems.

Obwohl die Erfindung im Detail durch bevorzugte Ausführungsbeispiele näher illustriert und erläutert wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Es ist daher klar, dass eine Vielzahl von Variationsmöglichkeiten existiert. Es ist ebenfalls klar, dass beispielhaft genannte Ausführungsformen wirklich nur Beispiele darstellen, die nicht in irgendeiner Weise als Begrenzung etwa des Schutzbereichs, der Anwendungsmöglichkeiten oder der Konfiguration der Erfindung aufzufassen sind. Vielmehr versetzen die vorhergehende Beschreibung und die Figurenbeschreibung den Fachmann in die Lage, die beispielhaften Ausführungsformen konkret umzusetzen, wobei der Fachmann in Kenntnis des offenbarten Erfindungsgedankens vielfältige Änderungen beispielsweise hinsichtlich der Funktion oder der Anordnung einzelner, in einer beispielhaften Ausführungsform genannter Elemente vornehmen kann, ohne den Schutzbereich zu verlassen, der durch die Ansprüche und deren rechtliche Entsprechungen, wie etwa weitergehenden Erläuterungen in der Beschreibung, definiert wird. Although the invention has been illustrated and explained in detail by means of preferred embodiments, the invention is not limited by the disclosed examples and other variations can be derived therefrom by a person skilled in the art without departing from the scope of the invention. It is therefore clear that a multitude of possible variations exist. It is also clear that embodiments mentioned by way of example really only represent examples that are not to be understood in any way as limiting the scope of protection, the possible applications or the configuration of the invention. Rather, the foregoing description and the description of the figures enable the person skilled in the art to specifically implement the exemplary embodiments. The person skilled in the art, with knowledge of the disclosed inventive concept, can make various changes, for example with regard to the function or the arrangement of individual elements mentioned in an exemplary embodiment, without departing from the scope of protection defined by the claims and their legal equivalents, such as further explanations in the description.

Claims

Patentansprüche Patent claims 1. Verfahren (200) zur bidirektionalen Kommunikation in einem Netzwerk, umfassend: 1. A method (200) for bidirectional communication in a network, comprising: Senden (210), durch ein Sendemodul (HO), von Daten an ein Empfängermodul (120) gemäß dem Transmission Control Protocol, TCP; Sending (210), by a transmitting module (HO), data to a receiving module (120) according to the Transmission Control Protocol, TCP; Bestimmen (220), durch das Sendemodul (110), ob das Empfängermodul (120) für ein Out-of-Order Queuing, OoO-Queuing, konfiguriert ist; undDetermining (220), by the transmitting module (110), whether the receiving module (120) is configured for out-of-order queuing, OoO queuing; and Auswählen (230) eines ersten Betriebsmodus (BMI) des Sendemoduls (110), wenn das Empfängermodul (120) für ein OoO-Queuing konfiguriert ist, oder eines zweiten Betriebsmodus (BM2), wenn das Empfängermodul (120) nicht für ein OoO- Queuing konfiguriert ist, wobei der erste Betriebsmodus (BMI) und der zweite Betriebsmodus (BM2) unterschiedliche Re-Transmissionscharakteristika für unbestätigte TCP-Segmente (SEG-C) aufweisen. Selecting (230) a first operating mode (BMI) of the transmitting module (110) if the receiving module (120) is configured for OoO queuing, or a second operating mode (BM2) if the receiving module (120) is not configured for OoO queuing, wherein the first operating mode (BMI) and the second operating mode (BM2) have different retransmission characteristics for unacknowledged TCP segments (SEG-C). 2. Verfahren (200) nach Anspruch 1, weiter umfassend: 2. The method (200) of claim 1, further comprising: Empfangen, durch das Sendemodul (110), eines Duplicate Acknowledgment, DUP-ACK, vom Empfängermodul (120); und Receiving, by the transmitting module (110), a duplicate acknowledgment, DUP-ACK, from the receiving module (120); and Bestimmen, auf den Empfang des DUP-ACK hin, dass das Empfängermodul (120) nicht für ein OoO-Queuing konfiguriert ist. Determining, upon receipt of the DUP-ACK, that the receiver module (120) is not configured for OoO queuing. 3. Verfahren (200) nach Anspruch 1 oder 2, weiter umfassend: 3. The method (200) according to claim 1 or 2, further comprising: Empfangen, durch das Sendemodul (110) und im zweiten Betriebsmodus (BM2), eines Cumulative Acknowledgment, CUM-ACK, vom Empfängermodul (120); und Receiving, by the transmitting module (110) and in the second operating mode (BM2), a Cumulative Acknowledgment, CUM-ACK, from the receiving module (120); and Wechseln vom zweiten Betriebsmodus (BM2) in den ersten Betriebsmodus (BMI) auf den Empfang des CUM-ACK hin. Switching from the second operating mode (BM2) to the first operating mode (BMI) upon receipt of the CUM-ACK. 4. Verfahren (200) nach einem der Ansprüche 1 bis 3, wobei innerhalb eines Sliding Window (SLW) des TCP ein Wiederholfenster (REW) definiert ist, das ausschließlich gesendete TCP-Segmente (SEG-A, SEG-C) umfasst, wobei ein Basis- TCP-Segment einen Beginn des Sliding Window (SLW) und des Wiederholfensters (REW) darstellt, und wobei im ersten Betriebsmodus (BMI) und im zweiten Betriebsmodus (BM2) eine Re-Transmission von TCP-Segmenten aus dem Wiederholfenster (REW) erfolgt. 4. Method (200) according to one of claims 1 to 3, wherein within a sliding window (SLW) of the TCP a repetition window (REW) is defined, which comprises exclusively sent TCP segments (SEG-A, SEG-C), wherein a base TCP segment represents the beginning of the sliding window (SLW) and the retry window (REW), and in the first operating mode (BMI) and in the second operating mode (BM2) a retransmission of TCP segments from the retry window (REW) takes place. 5. Verfahren (200) nach Anspruch 4, wobei: das Sliding Window (SLW) und das Wiederholfenster (REW) unterschiedliche Endpunkte aufweisen; und/oder das Sliding Window (SLW) und das Wiederholfenster (REW) unterschiedliche Fenstergrößen aufweisen; und/oder das Wiederholfenster (REW) vom Basis-TCP-Segment bis zu einem nächsten ungesendeten TCP-Segment des Sliding Window (SLW) definiert ist. 5. The method (200) of claim 4, wherein: the sliding window (SLW) and the retry window (REW) have different endpoints; and/or the sliding window (SLW) and the retry window (REW) have different window sizes; and/or the retry window (REW) is defined from the base TCP segment to a next unsent TCP segment of the sliding window (SLW). 6. Verfahren (200) nach einem der Ansprüche 1 bis 5, wobei die Re- Transmissionscharakteristik im ersten Betriebsmodus (BMI) derart ist, dass nur ein ältestes unbestätigtes TCP-Segment übertragen wird, insbesondere ein ältestes unbestätigtes TCP-Segment des Wiederholfensters (REW). 6. The method (200) according to any one of claims 1 to 5, wherein the re-transmission characteristic in the first operating mode (BMI) is such that only an oldest unconfirmed TCP segment is transmitted, in particular an oldest unconfirmed TCP segment of the retransmission window (REW). 7. Verfahren (200) nach einem der Ansprüche 1 bis 6, wobei die Re- Transmissionscharakteristik im zweiten Betriebsmodus (BM2) derart ist, dass mehrere unbestätigte TCP-Segmente übertragen werden, insbesondere alle unbestätigten TCP-Segmente des Wiederholfensters (REW). 7. The method (200) according to any one of claims 1 to 6, wherein the re-transmission characteristic in the second operating mode (BM2) is such that a plurality of unconfirmed TCP segments are transmitted, in particular all unconfirmed TCP segments of the repetition window (REW). 8. Speichermedium, umfassend ein Software-Programm, das eingerichtet ist, um auf einem oder mehreren Prozessoren ausgeführt zu werden, und um dadurch das Verfahren (200) gemäß einem der Ansprüche 1 bis 7 auszuführen. 8. A storage medium comprising a software program configured to be executed on one or more processors and thereby to carry out the method (200) according to any one of claims 1 to 7. 9. System zur bidirektionalen Kommunikation in einem Netzwerk, umfassend: einen oder mehrere Prozessoren; und wenigstens einen Speicher, der mit dem einen oder den mehreren Prozessoren verbunden ist und Anweisungen enthält, die von dem einen oder den mehreren Prozessoren ausgeführt werden können, um das Verfahren zur bidirektionalen Kommunikation in einem Netzwerk gemäß einem der Ansprüche 1 bis 7 auszuführen. 9. A system for bidirectional communication in a network, comprising: one or more processors; and at least one memory connected to the one or more processors and containing instructions executed by the one or more Processors can be executed to carry out the method for bidirectional communication in a network according to one of claims 1 to 7. 10. System nach Anspruch 9, wobei das System das Sendemodul (110) umfasst, insbesondere das Sendemodul (110) und das Empfängermodul (120). 10. The system according to claim 9, wherein the system comprises the transmitter module (110), in particular the transmitter module (110) and the receiver module (120).
PCT/DE2024/101081 2024-02-16 2024-12-17 Method and system for bidirectional communication in a network Pending WO2025171833A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102024104465.9 2024-02-16
DE102024104465.9A DE102024104465A1 (en) 2024-02-16 2024-02-16 Method and system for bidirectional communication in a network

Publications (1)

Publication Number Publication Date
WO2025171833A1 true WO2025171833A1 (en) 2025-08-21

Family

ID=94383577

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2024/101081 Pending WO2025171833A1 (en) 2024-02-16 2024-12-17 Method and system for bidirectional communication in a network

Country Status (2)

Country Link
DE (1) DE102024104465A1 (en)
WO (1) WO2025171833A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553032B1 (en) * 1999-09-01 2003-04-22 Tantivy Communications, Inc. Packeting timeout spoofing in a wireless data communications network
CN102045362B (en) * 2010-12-21 2014-01-15 北京高森明晨信息科技有限公司 Data transmission method and system based on UDP protocol
US20160056927A1 (en) * 2013-03-29 2016-02-25 Vid Scale, Inc. Early packet loss detection and feedback
US20220116333A1 (en) * 2021-12-23 2022-04-14 Intel Corporation Apparatus, system, and method of out-of-order delivery of wireless communication frames
US20220386396A1 (en) * 2019-10-02 2022-12-01 Samsung Electronics Co., Ltd. Method and apparatus for processing out-of-order delivery for pdcp layer in wireless d2d communication system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080088408A1 (en) 2004-11-17 2008-04-17 Telefonaktiebolaget Lm Ericsson (Publ) Fast Resume Of Tcp Sessions
US20150055482A1 (en) 2013-08-20 2015-02-26 Brocade Communications Systems, Inc. TCP Extended Fast Recovery and Segment Timing
CN109936510B (en) 2017-12-15 2022-11-15 微软技术许可有限责任公司 Multipath RDMA transport
CN114363260B (en) 2021-11-09 2023-10-17 天津大学 Data flow scheduling system for data center network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553032B1 (en) * 1999-09-01 2003-04-22 Tantivy Communications, Inc. Packeting timeout spoofing in a wireless data communications network
CN102045362B (en) * 2010-12-21 2014-01-15 北京高森明晨信息科技有限公司 Data transmission method and system based on UDP protocol
US20160056927A1 (en) * 2013-03-29 2016-02-25 Vid Scale, Inc. Early packet loss detection and feedback
US20220386396A1 (en) * 2019-10-02 2022-12-01 Samsung Electronics Co., Ltd. Method and apparatus for processing out-of-order delivery for pdcp layer in wireless d2d communication system
US20220116333A1 (en) * 2021-12-23 2022-04-14 Intel Corporation Apparatus, system, and method of out-of-order delivery of wireless communication frames

Also Published As

Publication number Publication date
DE102024104465A1 (en) 2025-08-21

Similar Documents

Publication Publication Date Title
DE10066507B3 (en) Method and apparatus for communication with delayed acknowledgment and alarm management
DE69015275T2 (en) Data communication system and device with a cyclic acknowledgment response sequence.
DE60022994T2 (en) A FLEXIBLE CONTROL PROTOCOL FOR WIRELESS CONNECTIONS
DE60313178T2 (en) METHOD AND DEVICE FOR REDUCING TRANSMISSION ERRORS IN A CELLULAR SYSTEM OF THIRD GENERATION
DE69130187T2 (en) High speed transmission protocol with two windows
DE112008001599T5 (en) A communication system for a vehicle, a communication device for a vehicle, and a communication method for a vehicle
DE3882238T2 (en) Procedure for handling slow requests transmitted through a network.
DE60030094T2 (en) DATA EXCHANGE MECHANISM FOR SELECTIVE REPEAT PROTOCOLS
DE69632147T2 (en) COMPUTER ERROR RECOGNITION AND DATA PACKAGE NUMBERING IN A HIERARCHICAL ARQ TRANSMISSION SYSTEM
DE112006001587B4 (en) Block acknowledgments with reduced recipient status information
DE60114329T2 (en) TCP-aware local repeating procedure for unreliable transmission networks
DE60030442T2 (en) METHOD FOR PROVIDING A SAFE CONNECTION IN A MOBILE COMMUNICATION SYSTEM
DE68923102T2 (en) High throughput communication method and system for a digital mobile station crossing a zone boundary during a connection.
DE60223799T2 (en) METHOD AND TRANSMITTER FOR AN EFFICIENT PACKAGE DATA TRANSFER IN A TRANSMISSION PROTOCOL WITH REQUEST REQUIREMENTS
DE602004002086T2 (en) Method and apparatus for the shared dynamic management of window lengths of multiple ARQ data connections
DE60307032T2 (en) Control method and apparatus for data transmission
DE69427181T2 (en) Medium access control protocol for wireless communication
DE112005002986B4 (en) Method and medium access controller for wireless broadband communication with variable size of the data units and delayed construction of data units
DE60109959T2 (en) METHOD FOR INCREASING THE EFFICIENCY OF A DATA CURRENT IN A COMMUNICATION SYSTEM
EP0966824A1 (en) Method for transporting data and computer network for carrying out said method
JP2002527935A (en) Data communication methods and systems
DE102006020533A1 (en) Network to vehicle information transmission procedure uses SMS messages but sets up negotiated voice or data link if acknowledgement not received within a set time
KR100339342B1 (en) Method for confirming receiving of Protocol data
DE102020126153A1 (en) OPPORTUNISTIC PACKAGE RETRANSMISSIONS
DE102017222299A1 (en) COMMUNICATION WITH LOW LATENCY

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24846680

Country of ref document: EP

Kind code of ref document: A1