DE69931215T2 - Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen - Google Patents

Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen Download PDF

Info

Publication number
DE69931215T2
DE69931215T2 DE69931215T DE69931215T DE69931215T2 DE 69931215 T2 DE69931215 T2 DE 69931215T2 DE 69931215 T DE69931215 T DE 69931215T DE 69931215 T DE69931215 T DE 69931215T DE 69931215 T2 DE69931215 T2 DE 69931215T2
Authority
DE
Germany
Prior art keywords
packets
rate
transmission
message
packet loss
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.)
Expired - Lifetime
Application number
DE69931215T
Other languages
English (en)
Other versions
DE69931215D1 (de
Inventor
Keith S. Redmond Hamilton
Robert Steven Newcastle Meizlik
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE69931215D1 publication Critical patent/DE69931215D1/de
Application granted granted Critical
Publication of DE69931215T2 publication Critical patent/DE69931215T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • 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/1685Details of the supervisory signal the supervisory signal being transmitted in response to a specific request, e.g. to a polling signal
    • 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/1848Time-out mechanisms
    • 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/1854Scheduling and prioritising arrangements
    • 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/188Time-out mechanisms
    • H04L1/1883Time-out mechanisms using multiple timers
    • 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/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Verwandte Anmeldungen
  • Die vorliegende Anmeldung ist mit dem US-Patent Nr. 6.392.003 mit dem Titel „Method and Computer Program Product for Efficiently and Reliably Sending Small Data Messages From a Sending System to a Large Number of Receiving Systems", eingereicht im Namen von Keith Hamilton und Robert Meizlik sowie mit dem US-Patent Nr. 6.112.323 mit dem Titel „Method and Computer Program Product for Efficiently and Reliably Sending Small Data Messages From a Sending System to a Large Number of Receiving Systems", eingereicht im Namen von Keith Hamilton und Robert Meizlik, wobei beide Patente am gleichen Tag wie die vorliegende Anmeldung eingereicht wurden, verwandt.
  • 2. Gebiet der Erfindung
  • Das Gebiet der Erfindung betrifft das Übertragen einer kurzen Datennachricht von einem Sendesystem zu einer Vielzahl von vernetzten Empfangsystemen. Solch eine Datenübertragung ist für das gleichzeitige zentrale Überwachen und Kontrollieren von Systemen von Nutzen. Im Besonderen betrifft die Erfindung Verfahren, die dazu dienen, das Übertragen betriebssicher zu gestalten und gleichzeitig den mit einer solchen Betriebssicherheit einhergehenden Netzverkehr zu reduzieren.
  • 3. Stand der Technik
  • In großen Netzen ist es mitunter erstrebenswert, auf schnelle Art und Weise kurze Nachrichten an das Netz übertragen zu können, die relativ wenige Pakete enthalten, und, entweder mit einer hundertprozentigen Sicherheit oder mit einer sehr hohen Wahrscheinlichkeit sicherstellen zu können, dass jedes System im Netz die Nachricht empfängt. Ein Sendesystem kann die Nachricht an eine Anzahl von Empfangsystemen senden. Diese Fähigkeit kann für eine große Bandbreite an Aufgaben wie beispielsweise das zentralisierte Kontrollieren von Anwendungen, die in den Empfangssystemen angeordnet sind, genutzt werden. Sofern es möglich ist, auf betriebssichere Art und Weise relativ kurze Nachrichten zu übertragen, kann ein großes, locker vernetztes Netz Funktionseigenschaften einer zentralisierten Kontrolle aufweisen, die denen von Großrechnern ähnlich sind.
  • Ein Weg, um Betriebssicherheit sicherzustellen, besteht darin, unter Verwendung eines verbindungsbasierten Protokolls, wie beispielsweise dem Übertragungssteuerungsprotokoll (TCP) über ein Internet-Protokoll-Netz (IP-Netz) eine Verbindung zu einem jedem Empfangssystem herzustellen. In einem verbindungsbasierten Protokoll stellt ein System eine Verbindung zu einem anderen System her, das Protokoll wickelt sämtliche Kommunikationen innerhalb diesen Systems ab und beendet die Verbindung. Wenn ein Herstellen einer Verbindung mit mehreren Systemen gewünscht wird, wird der Reihe nach eine Verbindung zu jedem einzelnen System hergestellt. Der mit dem Erstellen und Verwalten einer Verbindung zwischen einem Sendesystem und mehreren Empfangssystemen verbundene Gesamtaufwand ist unerschwinglich hoch, wenn eine große Anzahl von Empfangssystemen vorhanden ist.
  • Um den mit der Verwendung von verbindungsbasierten Protokollen einhergehenden Gesamtaufwand zu reduzieren, wurden die verbindungslosen Protokolle wie beispielsweise das Benutzer-Datagramm-Protokoll (UDP) über ein Internet-Protokoll-Netz (IP-Netz) entwickelt. Verbindungslose Protokolle basieren typischerweise auf einem Broadcast- oder „Multicast"-Modell, bei dem eine einzige Nachricht an mehrere Empfangssysteme gesendet wird, ohne dabei eine Verbindung zu den einzelnen Systemen herzustellen. Mit Hilfe dieses Ansatzes wird zwar die Notwendigkeit des hohen Gesamtaufwandes, der mit dem Herstellen der Verbindungen mit einem jeden System einhergeht, beseitigt, jedoch mangelt es dem Ansatz an der Fähigkeit, sicherzustellen, dass sämtliche Systeme die Nachricht auch empfangen. Für IP-Netze gewährleistet das Design des Multicast-Modells für das Reduzieren des mit dem Senden der Pakete an mehrere Ziele verbundenen Gesamtaufwandes keine Betriebssicherheit.
  • Darüber hinaus wurden andere Nachrichtenprotokolle entwickelt, die zwar auf das Lösen des Problems der hohen Betriebssicherheit im Zusammenhang mit langen Nachrichten ausgerichtet waren, welche aus Hunderttausenden oder Millionen von Paketen bestehen, jedoch kurze Nachrichten mit relativ wenigen Paketen außer Acht ließen. Solche Protokolle senden unter Verwendung von IP-Multicast, womit der Gesamtaufwand reduziert wird, Daten von einem Sendesystem zu mehreren Empfangssystemen, die miteinander in einem IP-Netz verbunden sind. Bei dem Versuch, das Problem der bei IP-Multicast innewohnenden nicht gewährleisteten Betriebssicherheit anzugehen, sind derzeitige Lösungen zwar an der hohen Betriebssicherheit für relativ wenige Zieladressen orientiert, wie sie beispielsweise bei Videokonferenzschaltungen oder dynamischen Whiteboard-Anwendungen vorliegen, oder sie sind auch an vielen Zieladressen für große Datensätze wie beispielsweise beim Streaming von Audio- oder Videodaten ausgerichtet, bei denen das Abhandenkommen einiger Pakete nicht als ernstzunehmendes Problem anzusehen ist. Diese Lösungen für die innewohnende nicht vorhandene Betriebssicherheit bei IP-Multicast berücksichtigen jedoch nicht den Bedarf an relativ hoher Betriebssicherheit bei der Übertragung kurzer Nachrichten zwischen einem Sendesystem und einer Vielzahl von Empfangssystemen. Darüber hinaus sind solche Protokolle gewöhnlicherweise für sehr große Netze nicht gut skalierbar, da sie lange Ketten an Rückmeldungen (ACKs) für das positive Bestätigen des Empfangs und negative Rückmeldungen (NAKs) für das Veranlassen des erneuten Übertragens fehlender Pakete erzeugen. In großen Netzen kann diese Flut an ACKs und NAKs zu einer völligen Lahmlegung des Netzes führen.
  • Schließlich wird bei den voranstehend genannten Protokollen die Multicast-Übertragung einer ursprünglichen Nachricht nicht eng mit jeglichen Antworten gekoppelt, die empfangen werden können. Wieder ist dies auf die gelösten Probleme zurückzuführen, die darin bestanden, auf betriebssichere Art und Weise Daten und ohne das Erwarten von Antworten unidirektional zu senden, anstatt bidirektionale Übertragungen anzuwenden, wie sie bei der Kontrolle von verteilten Anwendungen vorliegen.
  • Es wäre ein Fortschritt für den Stand der Technik, würde man ein Verfahren zum Senden von kurzen Datennachrichten von einem Sendesystem zu einer Vielzahl von Empfangssystemen in einer Art und Weise bereitstellen, bei der der mit den derzeit verfügbaren Lösungen typischerweise einhergehende Netzverkehr reduziert wird, indem effiziente verbindungslose Datenübertragungsmechanismen wie beispielsweise UDP-Multicast über IP-Netze angewendet werden. Es würde darüber hinaus einen weiteren Fortschritt für ein solches Verfahren darstellen, wenn man, um einen bidirektionalen Kommunikati onspfad bereitzustellen, die Antwortnachrichten von einem jeden Empfangssystem eng an das Sendesystem koppeln würde.
  • US-5.727.002 beschreibt Verfahren für das Übertragen von Daten von einem Server zu Clients über ein Computernetzwerk. Eine Datei kann als eine Vielzahl von Blocks gesendet werden, wobei jeder Block eine Vielzahl von Frames enthält. Der Server ist in der Lage, die Übertragungsrate der Frames anzupassen. Die Clients sind in der Lage, eine negative Rückmeldung (NAK) für einen Block an einer Blockgrenze zu senden, wenn sie feststellen, dass sie einen fehlerhaften Frame innerhalb des Blockes empfangen haben. Nachdem der Server die gesamte Datei in einem ersten Durchgang gesendet hat, werden in darauffolgenden Durchgängen jene Blocks erneut an sämtliche Clients übertragen, für die NAKs erzeugt wurden. Es werden zwei Verfahren für die Blockierungskontrolle und Ablaufsteuerung beschrieben, mit denen zu einem schnellstmöglichen Zeitpunkt Informationen zu verlorenen oder fehlenden Frames erhalten werden. In einem ersten „Ansatz der variablen Blockgröße" wird die Größe der Blöcke mit einem Faktor 2 für jeden auf den ersten Block nachfolgenden Block so lange erhöht, bis das Ende der Datei, oder die Höchstgrenze für die Blockgröße erreicht ist. In einem alternativen „Verfahren der Statusabfrage" werden Blöcke mit einer unveränderlichen Größe übertragen, der Server ist jedoch in der Lage, vor einer Blockgrenze Statusabfragen auszusenden, wodurch eine Anforderung zu NAKs zu einem frühen Zeitpunkt in der Übertragung durchgeführt wird.
  • „A Reliable Multicast Framework for Light-Weight Sessions and Application Level Framing", Floyd, S., et al., IEEE/ACM Transactions on Networking, Vol. 5, No. 6, Dezember 1997, Seiten 784 bis 803, XP-000734407, beschreibt ein skalierbares betriebssicheres Multicast-Rahmenwerk für Light-Weight-Sessions in unterschiedlichen Netzwerktopologien. Dabei wird das Application-Level-Framing (ALF) erwähnt, bei dem das Multicast-Protokoll mit jeder Anwendung ein anderes ist und auf der Semantik der jeweiligen Anwendung basiert. Darüber hinaus werden Light-Weight-Sessions (LWS) beschrieben, die eine Ausführung des ALF unter Verwendung eines Light-Weight-Rendezvous-Mechanismus basierend auf dem IP-Multicast-Verteilungs-Modell und der empfängerbasierten Anpassung darstellen. Es werden drei Verfahren für die Blockierungskontrolle erwähnt: Abstimmen der Übertragungsrate auf den Empfänger mit der am wenigsten zuverlässigen Empfangsleistung; Gruppieren der Empfänger in Gruppen unterschiedli cher Bandbreite und Verwenden unterschiedlicher Substreams der Datenübertragung; und Empfänger, die Ressourcen dort zurückhalten, wo solche Netzwerkressourcen verfügbar sind.
  • „Architectural Considerations for a New Generation of Protocols", Clark and Tennenhouse, Computer Communications Review, ACM, NY, No. 4, Seiten 200 bis 2008, XP-000676296, beschreibt das Application-Level-Framing (ALF) in ausführlicher Art und Weise und zwar als Anwendung, die Dateneinheiten spezifiziert, in denen die unteren Schichten wie beispielsweise die Präsentations- und Transportschichten die Daten bearbeiten. Die Daten werden von der Anwendung in Aggregate unterteilt, und diese Datenaggregate, die Dateneinheiten ADU (Application Data Units), nehmen den Platz eines Pakets als die Manipulationseinheit an. Es wird die angemessene Größe einer ADU diskutiert. Eine zu lange ADU-Länge ist deshalb zu vermeiden, da damit die Wahrscheinlichkeit, dass die ADU einen Fehler enthält, ziemlich sicher bei 1 liegt. Eine Mindestgröße für eine ADU wird als die beschrieben, unterhalb derer die Anwendung nicht in der Lage ist, die Daten aufzuteilen und dennoch verlorengegangene oder fehlerhafte Datenbestandteile bearbeitet.
  • US-5.359.593 beschreibt ein Zugriffskontrollverfahren in einem Paketübertragungsnetz, das einen dynamischen Mechanismus zur Bandbreitenanpassung enthält, der die durchschnittliche Bitrate der Signalquelle und die Verlustwahrscheinlichkeit der Verbindung überwacht. Die durchschnittliche Bitrate und die Verlustwahrscheinlichkeit werden gefiltert, um Geräusche zu entfernen, und sie werden anschließend für das Testen, ob die Werte in einen akzeptablen Anpassungsbereich in der Ebene der Verlustwahrscheinlichkeit der durchschnittlichen Bitrate fallen, verwendet. Werte, die nicht innerhalb dieses Bereiches liegen, lösen Prozesse zur Aktualisierung der Bandbreite aus, die zur Verwendung einer neuen Verbindungsbandbreite und zum Bestimmen neuer Filterparameter sowie neuer Parameter für einen auf dem Leaky-Bucket-Algorithmus basierenden Zugriffsmechanismus führen.
  • „Protocol design for large group multicasting: the message distribution control", Jones et al, Computer Communications Vol. 14, No. 5, Juni 1991, Seiten 287–297, XP-000208347, beschreibt ein skalierbares Multicast-Protokoll, das negative Rückmeldungen zum Erhöhen der Betriebssicherheit sowie ein Sättigungsverfahren für kurze Nach richten verwendet. Auf der Transportebene wird ein auf Token Ring basierendes logisches System verwendet, mit dem verhindert wird, dass alle Empfänger eines Multicasts zur gleichen Zeit antworten. Eine Nachricht umfasst ein oder mehrere Pakete wobei jedes Paket von einem bestimmten Ersteller unter Verwendung einer Sequenznummer mit einem unikalen Tag versehen ist. Der Sättigungsalgorithmus wird dann verwendet, wenn die Anzahl der Pakete in einer Nachricht unter einem Schwellenwert liegt, welcher als Anzahl von Paketen definiert ist, die benötigt wird, um sicherzustellen, dass wenigstens ein Paket von jedem Empfänger empfangen wird. Fehlende Pakete werden durch eine Lücke in den Sequenznummern erfasst, wobei eine negative Rückmeldung dafür verwendet wird, verlorengegangene Pakete von dem Ersteller anzufordern, wobei jedes Paket eine oder mehrere Sequenznummern, eine für jedes fehlende Paket, enthält.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die mit dem betriebssicheren Senden von kurzen Datennachrichten von einem Sendesystem zu mehreren Empfangssystemen einhergehende Menge an Netzverkehr zu reduzieren.
  • Zum Reduzieren des Netzverkehrs kann die vorliegende Erfindung negative Suppression sowohl in dem Sendesystem als auch in jedem Empfangssystem anwenden.
  • In der nun folgenden Beschreibung werden zusätzliche Aufgaben und Vorteile der Erfindung beschrieben, und zum Teil werden diese anhand der Beschreibung offensichtlich oder können im Zuge der Umsetzung der Erfindung verstanden werden. Die Aufgaben und Vorteile der Erfindung können mit Hilfe der Vorrichtungen und Kombinationsmöglichkeiten, die insbesondere in den angehängten Ansprüchen erläutert sind, erfüllt beziehungsweise erzielt werden.
  • Um die oben genannten Aufgaben zu erfüllen, wird in Übereinstimmung mit der Erfindung und gemäß den hierin ausführlich beschriebenen Ausführungsbeispielen ein Verfahren und ein Computerprogrammprodukt für das effiziente und betriebssichere Übertragen von Datennachrichten von einem Sendesystem zu einer Anzahl von Empfangssystemen bereitgestellt.
  • Entsprechend einem ersten Aspekt der Erfindung wird ein Verfahren zum effizienten und betriebssicheren Übertragen einer Datennachricht von einem Sendesystem zu wenigs tens einem Empfangssystem in einer Art und Weise bereitgestellt, die den Netzverkehr minimiert, während eine hohe Betriebssicherheit erhalten bleibt, wobei das Sendesystem mit wenigstens einem Empfangssystem vernetzt ist und das Verfahren die folgenden Schritte umfasst: Aufteilen der zu sendenden Nachricht in eine Vielzahl von Datenblöcken und Anordnen jedes Datenblocks in ein sequentiell gekennzeichnetes Übertragungspaket; Erkennen, ob die Nachricht eine Anzahl von Übertragungspaketen, die kleiner als eine definierte Mindestanzahl ist, füllt, und falls dies der Fall ist, Erzeugen von zusätzlichen sequentiell gekennzeichneten Übertragungspaketen, bis die definierte Mindestanzahl verfügbar ist; Auswählen einer Übertragungsrate, die beim Übertragen der Vielzahl von Datenblöcken zu verwenden ist, wobei die Übertragungsrate zwischen einem Mindest- und einem Höchstwert entsprechend einem Auswählverfahren ausgewählt wird, das einen Größenwert der Paketverlustrate in dem Netzwerk verwendet, um die Übertragungsrate so anzupassen, dass die Pakete so schnell wie möglich übertragen werden können, während die Auswirkungen des Übertragens der Pakete bei der Paketverlustrate des Netzwerkes minimiert werden; Übertragen der sequentiell gekennzeichneten Übertragungspakete von dem Sendesystem zu dem wenigstens einen Empfangssystem mit der ausgewählten Übertragungsrate; Festellen in jedem Empfangssystem, das wenigstens eines der sequentiell gekennzeichneten Übertragungspakete empfängt, ob ein die Nachricht bildendes Übertragungspaket nicht empfangen wurde, und in Reaktion auf die Feststellung Senden einer negativen Rückmeldung zu dem Sendesystem, so dass das nicht empfangene Paket erneut gesendet werden kann, wobei entweder das Sendesystem oder das Empfangssystem oder beide einen Algorithmus zum Regulieren der Anzahl der durch das Empfangsystem zu dem Sendesystem gesendeten negativen Rückmeldungen enthält, wobei das Auswählverfahren die Übertragungsrate teilweise basierend auf den Parametern des Algorithmus anpasst; und die Übertragungsrate als eine gewichtete Summe einer Übertragungsrate, die entsprechend dem Auswählverfahren einer laufenden Iteration des Verfahrens berechnet wird und einer Übertragungsrate, die entsprechend dem Auswählverfahren einer vorherigen Iteration des Verfahrens berechnet wurde, ausgewählt wird.
  • Entsprechend weiterer Aspekte der Erfindung werden durch einen Computer ausführbare Befehle zum Erfüllen des Verfahrens-Aspektes der Erfindung sowie ein computerlesbares Medium als Träger solcher Befehle bereitgestellt.
  • Um die Probleme im Stand der Technik zu überwinden, wurden zwei Arten von Protokollen entwickelt. Das Basisprotokoll, das allgemein als „Statistisch betriebssichere Übertragung" oder als Modus der Statistischen Betriebssicherheit bezeichnet wird, basiert auf einem Wahrscheinlichkeitsmodell, dass so abgestimmt werden kann, dass die Wahrscheinlichkeit, dass ein beliebiges einzelnes System keine Nachricht empfangen hat, auf eine beliebig kleine Zahl verringert wird, wodurch sichergestellt wird, dass sämtliche Systeme eine Nachricht empfangen. Für jene Situationen, in denen das statistische Modell nicht ausreichend ist und der Empfang gewährleistet werden muss, können geringfügige Änderungen so an dem Protokoll durchgeführt werden, dass ein Protokoll einer „Positiv betriebssicheren Übertragung" oder ein Modus der positiven Betriebssicherheit erzeugt wird, bei dem die Systeme, die keine Nachricht empfangen, identifiziert werden und Schritte unternommen werden können, die sicherstellen, dass sie die Nachricht empfangen. Die Entscheidung darüber, welcher Modus angewendet werden soll, kann durch eine Anwendung pro Nachricht oder durch das Systemmanagement pro Sender beziehungsweise pro Ort getroffen werden.
  • Beide Protokolle basieren auf dem Benutzer-Datagramm-Protokoll UDP, und beide Protokolle führen eine Multicast-Übertragung von Paketen zu einem oder mehreren Empfängern durch. Das Basisprotokoll basiert auf der Übertragung von mehreren Paketen. Wenn demzufolge eine Nachricht weniger als eine bestimmten Mindestanzahl an Paketen füllt, wird die Nachricht erweitert, um die benötigte Mindestanzahl an Paketen zu füllen. Die Pakete werden durchnummeriert, so dass ein Empfänger bestimmen kann, ob die Nachricht vollständig empfangen wurde. Die Nachrichten werden unter Verwendung eines geschwindigkeitssteuernden Algorithmus, der die Geschwindigkeit, bei der die Pakete gesendet werden, zu den beabsichtigten Empfängern gesendet. Der geschwindigkeitssteuernde Algorithmus erkennt, dass die Paketübertragungsrate im Allgemeinen die Paketverlustrate in dem Netzwerk beeinflusst. Die Übertragungsrate wird auf Basis verschiedener Faktoren, wie beispielsweise einer Größe der Paketverlustrate in dem Netzwerk ausgewählt. Das Regulieren der Geschwindigkeit für das Übertragen der Pakete verhindert, dass die Paketübertragungsrate die Paketverlustrate nachteilig beeinflusst.
  • Wenn der Übertragungsmodus der positiven Betriebssicherheit verwendet wird, wird ein Flag mit einer angeforderten ACK einmal für jedes Nte Paket eingestellt. Die Sammlung von N Paketen wird als „ACK-Fenster" oder „Übertragungsfenster" bezeichnet. Das Ein stellen des Flags mit einer angeforderten ACK ist das Zeichen für den Empfänger, eine positive Rückmeldung für den Empfang des Paketes durch Senden einer ACK an den Sender auszuführen. Darüber hinaus weist das letzte Paket in dem Übertragungsfenster das Flag mit einer angeforderten ACK als eingestellt vor. Das Flag mit einer angeforderten ACK wird in dem Modus der statistisch betriebssicheren Übertragung nicht verwendet.
  • Da innerhalb einer Nachricht mehrere Pakete gesendet werden, wird die Wahrscheinlichkeit, dass ein System wenigstens eines der Pakete innerhalb der Nachricht empfängt, größer. Durch Anpassen der Mindestanzahl an pro Nachricht gesendeten Paketen basierend auf der Paketverlustrate des Systems kann die Wahrscheinlichkeit, dass ein System wenigstens ein Paket empfängt, auf eine sehr kleine Zahl reduziert werden. Systeme, die lediglich einen Teil einer Nachricht empfangen, können deren Unvollständigkeit identifizieren und daraufhin eine NAK senden, die ein erneutes Übertragen auslöst.
  • In einem großen Netzwerk kommt es gewöhnlicherweise vor, dass viele Systeme möglicherweise wenigstens einen Teil der Nachricht nicht empfangen haben. Wenn jedes betreffende System eine NAK gesendet hat, kann die Flut an NAKs das gesamte System überfordern. Die Erfindung verwendet Verfahren zum Unterdrücken von NAKs sowohl auf der Senderseite als auch auf der Empfängerseite. Die Empfänger berechnen eine Verzugszeit basierend auf einem definierten Algorithmus, der für das Senden einer NAK an den Sender verwendet wird. Dadurch wird die Anzahl der durch den Sender empfangenen NAKs reduziert. Als Reaktion auf eine empfangene NAK wird der Sender das fehlende Paket erneut übertragen. Jegliche zusätzliche NAKs, die durch den Sender für das gleiche Paket empfangen wurden, werden für einen vorgegebenen Zeitraum nach dem erneuten Übertragen des betreffenden Paketes ignoriert. Auf diese Weise wird der Netzverkehr weiter reduziert, indem dem erneut übertragenen Paket Zeit gegeben wird, durch ein anderes beliebiges System empfangen zu werden, die es möglicherweise verpasst haben. Darüber hinaus wird durch jedes erneute Übertragen die Wahrscheinlichkeit vergrößert, dass jedes System in dem Netzwerk wenigstens ein Paket innerhalb einer Nachricht empfängt. Die Schritte NAK/erneutes Übertragen werden für einen bestimmten Zeitraum wiederholt.
  • In dem positiven Betriebssicherheitsmodus, horcht der Sender je Empfänger nach ACKs und verfolgt diese. Demzufolge kann jeder Empfänger identifiziert werden, der eine ACK nicht zurücksendet. Es werden in regelmäßigen Abständen all diejenigen Systeme identifiziert, die eine ACK für ein bestimmtes Übertragungsfenster nicht zurückgesendet haben, und das letzte Paket des Übertragungsfensters wird ihnen erneut zugesendet.
  • Nachrichten können anzeigen, dass eine Antwort erfordert wird. Wenn eine Nachricht, die eine Antwort erfordert, durch einen Empfänger empfangen wird, sendet der Empfänger eine Antwortnachricht. Diese Antwort ist als separat von den oben beschriebenen Schritten NAK/erneutes Übertragen zu betrachten. Jede Nachricht enthält eine Nachrichtenidentifizierungsvorrichtung, die in der Antwort enthalten ist, so dass, wenn eine Antwortnachricht empfangen wird, die Antwort an die ursprüngliche Nachricht gekoppelt werden kann. Dadurch können mit Multicast-Übertragung ausgesendete Nachrichten mit den Antworten, die empfangen werden, in Korrelation gebracht werden.
  • Diese sowie weitere Aufgaben und Leistungsmerkmale der vorliegenden Erfindung werden anhand der folgenden Beschreibung und den angehängten Ansprüchen noch weiter verdeutlicht, oder sie werden bei der im Folgenden beschriebenen Umsetzung der Erfindung offensichtlich.
  • Damit die Art und Weise, in der die oben genannten sowie weitere Vorteile und Aufgaben der Erfindung erzielt beziehungsweise erfüllt werden, erreicht wird, wird die voranstehend kurz beschriebene Erfindung in einer noch spezielleren Beschreibung in Bezug auf bestimmte Ausführungsbeispiele der Erfindung, welche in den beigefügten Zeichnungen dargestellt sind, weiter beleuchtet. Unter Berücksichtigung der Tatsache, dass diese Zeichnungen lediglich typische Ausführungsbeispiele der Erfindung darstellen und aus diesem Grund nicht im restriktiven Sinne bezüglich ihres Umfangs verstanden werden sollten, wird die Erfindung unter Verwendung der beigefügten Zeichnungen mit besonders ausgeprägter Genauigkeit und ausführlichen Details beschrieben und erläutert, wobei in den Zeichnungen:
  • 1 ein Blockdiagramm eines exemplarischen Systems zum Umsetzen der vorliegenden Erfindung ist, wobei das System einen Universalcomputer in der Form eines herkömmlichen Personalcomputers enthält;
  • 2 ist ein Systemdiagramm, dass ein Sendesystem und eine Anzahl von Empfangssystemen in logischer Art und Weise darstellt;
  • 3 ist ein Logikdiagramm des Netzwerkprotokollstapels, das die Aufstellung der Software für das Senden und Empfangen kurzer Nachrichten entsprechend der Erfindung anzeigt;
  • 4 ist ein Logikdiagramm, das eine in eine Vielzahl von Übertragungspaketen unterteilte Nachricht darstellt, wie sie in dem Modus der statistisch betriebssicheren Übertragung entsprechend der vorliegenden Erfindung verwendet wird;
  • 5 illustriert repräsentative Übertragungspakete für ein Ausführungsbeispiel;
  • 6 illustriert ein Sendesystem, das in dem Modus der statistisch betriebssicheren Übertragung arbeitet;
  • 7 ist ein Ablaufplan, der die durch das Sendesystem, das in dem Modus der statistisch betriebssicheren Übertragung der vorliegenden Erfindung arbeitet, durchgeführten Verarbeitungsschritte illustriert;
  • 8 illustriert ein Empfangsystem, das in dem Modus der statistisch betriebssicheren Übertragung arbeitet;
  • 9 ist ein Ablaufplan, der die durch jedes Empfangsystem, das in dem Modus der statistisch betriebssicheren Übertragung der vorliegenden Erfindung arbeitet, durchgeführten Verarbeitungsschritte illustriert;
  • 10 illustriert ein Sendesystem, das in dem Modus der positiven Betriebssicherheit arbeitet; Die 11A und 11B sind Ablaufpläne, die die durch das Sendesystem, das in dem Modus der positiven Betriebssicherheit entsprechend der vorliegenden Erfindung arbeitet, darstellt;
  • 12 illustriert ein Empfangssystem, das in dem Modus der positiven Betriebssicherheit arbeitet; und
  • 13 ist ein Ablaufplan, der die durch jedes Empfangssystem, das in dem Modus der positiven Betriebssicherheit arbeitet, durchgeführten Verarbeitungsschritte, illustriert.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Im Folgenden wird die Erfindung unter Verwendung der Diagramme beschrieben, die entweder die Struktur oder die Verarbeitungsschritte der Ausführungsbeispiele illustrieren, welche zum Zwecke der Umsetzung des Systems und des Verfahrens der vorliegenden Erfindung angewendet werden. Das Verwenden der Diagramme in dieser Art und Weise zum Präsentieren der vorliegenden Erfindung ist nicht im Sinne einer Einschränkung des Umfangs der Erfindung beabsichtigt. Die vorliegende Erfindung beabsichtigt das Umsetzen von sowohl Verfahren als auch Systemen für das hierarchische Speichern von Daten. Die Ausführungsbeispiele der vorliegenden Erfindung können ein Spezialcomputer oder ein Universalcomputer umfassen, der unterschiedliche Computerhardware umfasst, wie dies nachstehend in ausführlicherer Weise beschrieben wird.
  • Die Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung umfassen darüber hinaus auch computerlesbare Medien, welche Träger ausführbarer Befehle oder Datenfelder sind. Zu solchen computerlesbaren Medien können jegliche beliebige erhältliche Medien gehören, auf die über einen Spezialcomputer oder einen Universalcomputer zugegriffen werden kann. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, können solche computerlesbaren Medien Computerspeichermedien wie beispielsweise Schreib-Lese-Speicher RAM, Nur-Lese-Speicher ROM, elektronisch löschbare und erneut programmierbare Nur Lese-Speicher EEPROM, CD-ROM oder andere optische Plattenspeicher, Magnetplattenspeicher oder eine andere Magnetspeichervorrichtung sowie jedes weitere beliebige Medium umfassen, das als Trägermedium für die erwünschten ausführbaren Befehle oder Datenfelder verwendet werden kann und auf das durch Universalcomputer oder Spezialcomputer Zugriff genommen werden kann. Wenn über ein Netzwerk oder eine andere Kommunikationsverbindung Informationen zu einem Computer übertragen oder diesem bereitgestellt werden, sieht der Computer die Verbindung ganz richtig als computerlesbares Medium an. Dementsprechend wird solch eine Verbindung auch ganz richtig als computerlesbares Medium bezeichnet. Kombinationen der oben genannten Medien sollten ebenfalls in den Umfang der computerlesbaren Medien aufgenommen werden. Ausführbare Befehle umfassen beispielsweise Befehle und Daten, durch die ein Universalcomputer oder ein Spezialcomputer oder eine Verarbeitungsvorrichtung für spezielle Zwecke veranlasst werden, eine bestimmte Funktion oder eine Gruppe von Funktionen auszuführen.
  • Mit 1 und der folgenden Diskussion wird beabsichtigt, eine kurze, allgemeine Beschreibung einer geeigneten Berechnungsumgebung bereitzustellen, in der die Erfindung umgesetzt werden kann. Obwohl dies nicht unbedingt erforderlich ist, wird die Erfindung in dem allgemeinen Kontext von durch Computer ausführbaren Befehlen wie beispielsweise Programmmodulen, welche von einem Personalcomputer ausgeführt werden, beschrieben. Im Allgemeinen umfassen Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen und so weiter, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Darüber hinaus wird es den Personen mit gewöhnlicher Erfahrung auf dem Gebiet der Technik offensichtlich sein, dass die Erfindung auch mit anderen Computersystemkonfigurationen, einschließlich Handgeräten, Multiprozessorsystemen, auf Mikroprozessoren basierenden oder programmierbaren Konsumelektronikgeräten, Netzwerk-PCs, Minicomputern, Großrechnern und Ähnlichen umgesetzt werden kann. Darüber hinaus kann die Erfindung auch in verteilten Berechnungsumgebungen umgesetzt werden, in denen Aufgaben durch dezentrale Informationsverarbeitende Geräte ausgeführt werden, die über ein Verbindungsnetzwerk angeschlossen sind. In einer verteilten Berechnungsumgebung können die Programmmodule sowohl in lokalen als auch in dezentralen Speichereinrichtungen vorhanden sein.
  • In Bezug auf 1 enthält ein exemplarisches System zum Umsetzen der Erfindung einen Universalcomputer in Form eines herkömmlichen Personalcomputers 20, der eine Verarbeitungseinheit 21, einen Systemspeicher 22 sowie einen Systembus 23 umfasst, der die verschiedenen Systemkomponenten einschließlich des Systemspeichers mit der Verarbeitungseinheit 21 koppelt. Der Systembus 23 kann ein beliebiger der unterschiedlichen Typen von Busstrukturen einschließlich eines Speicherbuses oder einer Spei chersteuereinheit, eines Peripheriebuses und eines lokalen Buses unter Verwendung einer beliebigen Architektur von einer Bandbreite an Busarchitekturen sein. Der Systemspeicher enthält einen Nur-Lese-Speicher (ROM) 24 und einen Schreib-Lese-Speicher (RAM) 25. Ein Allgemeines Eingabe-/Ausgabesystem 26 (BIOS), das die allgemeinen Routinen enthält, welche das Übertragen von Informationen zwischen den Elementen innerhalb des Personalcomputers 20 wie beispielsweise während des Hochfahrens unterstützt, ist im ROM 24 gespeichert. Darüber hinaus enthält der Personalcomputer 20 ein Festplattenlaufwerk 27 zum Lesen von und Schreiben auf eine Festplatte, nicht dargestellt, ein Magnetplattenlaufwerk 28 zum Lesen von oder Schreiben auf eine Magnetwechselplatte 29 und ein optisches Plattenlaufwerk 30 zum Lesen von oder Schreiben auf eine optische Wechselplatte 31 wie beispielsweise eine CD-ROM oder andere optische Medien. Das Festplattenlaufwerk 27, das Magnetplattenlaufwerk 28 und das optische Plattenlaufwerk 30 sind jeweils durch eine Festplattenlaufwerk-Schnittstelle 32, eine Magnetplattenlaufwerk-Schnittstelle 33 und eine optische Plattenlaufwerk-Schnittstelle 34 an den Systembus 23 angeschlossen. Die Laufwerke und ihre assoziierten computerlesbaren Medien stellen nichtflüchtige Speichereinrichtungen für durch Computer ausführbare Befehle, Datenstrukturen, Programmmodule und andere Daten für den Personalcomputer 20 zur Verfügung. Obwohl die hierin beschriebene exemplarische Umgebung eine Festplatte, eine Magnetwechselplatte 29 und eine optische Wechselplatte 31 verwendet, sollte es doch den Personen mit gewöhnlicher Erfahrung auf dem Gebiet der Technik offensichtlich sein, dass auch andere Arten von computerlesbaren Medien zum Speichern von Daten und auf die über einen Computer zugegriffen werden kann, wie beispielsweise Magnetkassetten, Flash-Speicherkarten, digitale Videoplatten, Bernoulli-Kassetten, Schreib-Lese-Speicher (RAMs), Nur-Lese-Speicher (ROM) und Ähnliche in der exemplarischen Berechnungsumgebung verwendet werden können.
  • Auf der Festplatte, der Magnetwechselplatte 29, der optischen Wechselplatte 31, dem ROM 24 und dem RAM 25 kann eine Anzahl von Programmmodulen einschließlich einem Betriebssystem 35, einem oder mehreren Anwendungsprogrammen 36, anderen Programmmodulen 37 und Programmdaten 38 gespeichert werden. Ein Benutzer kann über Eingabegeräte wie beispielsweise eine Tastatur 40 und ein Zeigegerät 42 Befehle und Informationen in den Personalcomputer 20 eingeben. Andere Eingabegeräte (nicht dargestellt) können ein Mikrophon, einen Joystick, ein Gamepad, eine Satellitenschüs sel, ein Scanner oder Ähnliches umfassen. Diese sowie weitere Eingabegeräte sind oftmals über eine serielle Anschlussschnittstelle 46, die mit dem Systembus gekoppelt ist, an die Verarbeitungseinheit 21 angeschlossen, sie können aber auch über andere Schnittstellen wie beispielsweise einen Parallelanschluss, einen Gameanschluss oder einen Universalserienbus (USB) angeschlossen sein. Ein Monitor 47 oder eine andere Art von Anzeigegerät ist ebenfalls über eine Schnittstelle wie beispielsweise einen Videoadapter 48 an den Systembus 23 angeschlossen. Zusätzlich zu dem Monitor enthalten Personalcomputer typischerweise andere dezentrale Ausgabegeräte (nicht dargestellt) wie beispielsweise Lautsprecher und Drucker.
  • Der Personalcomputer 20 kann unter Verwendung logischer Verbindungen zu einem oder mehreren dezentralen Computern wie beispielsweise einem dezentralen Computer 49 in einer Netzwerk-Umgebung arbeiten. Der dezentrale Computer 49 kann ein weiterer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, ein Partnergerät oder ein anderer herkömmlicher Netzwerkknoten sein und enthält typischerweise viele oder sämtliche der oben im Zusammenhang mit dem Personalcomputer 20 beschriebenen Elemente, obwohl in 1 lediglich eine Speichereinrichtung 50 illustriert wurde. Die in 1 dargestellten logischen Verbindungen umfassen ein Local Area Network (LAN) 51 und ein Wide Area Network (WAN) 52. Solche Netzwerkumgebungen sind üblicherweise in unternehmensweiten Büro-Computernetzen, Intranets und dem Internet vorzufinden.
  • Wenn der Personalcomputer 20 in einer LAN-Netzwerkumgebung verwendet wird, ist er über ein Netz oder einen Adapter 53 an das lokale Netzwerk 51 angeschlossen. Wenn der Personalcomputer 20 in einer WAN-Netzwerkumgebung verwendet wird, enthält er typischerweise ein Modem 54 oder eine andere Einrichtung zum Herstellen von Verbindungen über das Wide Area Network 52 wie beispielsweise das Internet. Das Modem 54, das ein internes oder ein externes Modem sein kann, ist über die serielle Anschlussschnittstelle 46 an den Systembus 23 angeschlossen. In einer Netzwerkumgebung können die im Zusammenhang mit dem Personalcomputer 20 dargestellten Programmmodule beziehungsweise Teile davon in der dezentralen Speichereinrichtung gespeichert sein. Es ist sicher offensichtlich, dass die dargestellten Netzwerkverbindungen exemplarischen Charakter besitzen und dass andere Vorrichtungen zum Herstellen einer Kommunikationsverbindung zwischen den Computern verwendet werden können.
  • Für bestimmte Umgebungen ist es wichtig, dass das Übertragen von Nachrichten, die relativ wenige Pakete füllen, von einem Computer zu einem oder mehreren anderen Computern in einer sehr betriebssicheren Art und Weise durchgeführt werden kann. So illustriert 2 beispielsweise eine allgemeine Netzwerkverbindung, in der eine Bedienerkonsole 20 zum Steuern mehrerer Mid-Tier-Server 72 und End-Clients 76 verwendet wird. Solch eine Umgebung kann beispielsweise für eine Situation repräsentativ sein, in der in einer verteilten Netzwerkumgebung mehrere Systeme von einer zentralen Bedienerkonsole verwaltet werden. Um eine solche Verwaltung durchführen zu können, muss oftmals ein höchst betriebssicherer Verbindungspfad zwischen der Bedienerkonsole und einem jeden der verwalteten Systeme vorhanden sein. Darüber hinaus können die Verwaltungsfunktionen bidirektionale Verbindungen erforderlich machen, bei denen Nachrichten von einer Bedienerkonsole zu mehreren verwalteten Systemen gesendet werden und die einzelnen verwalteten Systeme auf die Nachricht antworten. Die Nachrichten, die eine solche zentralisierte Verwaltung durchführen müssen, sind im Allgemeinen ziemlich kurze Nachrichten, die aus einem Paket bis mehreren hundert oder mehreren tausend Paketen bestehen. Darüber hinaus schließen Überlegungen zur Betriebssicherheit im Allgemeinen die Verwendung eines verbindungsbasierten Protokolls wie beispielsweise das Übertragungssteuerungsprotokoll TCP/Internet-Protokoll IP von vornherein aus. Verbindungslose Protokolle wie beispielweise das Benutzer-Datagramm-Protokoll UDP oder andere, die IP-Multicast verwenden, sind zwar effizient, aber auch inhärent nicht-betriebssicher, da sie den Empfang eines beliebigen bestimmten Pakets oder den Empfang von Paketen in einer beliebigen bestimmten Reihenfolge nicht garantieren. Demzufolge ist es in vielen vorhandenen Netzwerken äußerst wahrscheinlich, dass wenigstens einige Pakete gelegentlich verloren gehen. Die Wahrscheinlichkeit, dass ein beliebiges einzelnes Paket durch ein beliebiges einzelnes System empfangen wird, wird durch eine große Bandbreite von Faktoren in dem Netzwerk beeinflusst, die in ihrer Gesamtheit in einer kumulativen Paketverlustwahrscheinlichkeit resultieren. Die Paketverlustwahrscheinlichkeit kann durch verschiedene Faktoren beeinflusst werden, von denen einige physischen Charakters wie beispielsweise die Kabelinfrastruktur des Netzwerkes sind und andere mit der Menge an Verkehr in dem Netzwerk variieren. So können beispielsweise in einem Netzwerk, in dem Router und andere Zwischengeräte eine begrenzte Menge an Pufferkapazität haben, Pakete dann verloren gehen, wenn eine Pufferkapazitätsüberschreitung dadurch verursacht wird, dass Pakete bei einer Rate empfangen werden, die schneller als die Rate ist, bei der sie übertragen werden können.
  • Schließlich sollte es möglich sein, dass Nachrichten zu einer hohen Anzahl von Empfängern gesendet werden, ohne dass eine Flut an Rückmeldungen oder negativen Rückmeldungen erzeugt wird, die das Netzwerk überlasten. Mit zunehmender Anzahl von Systemen in einem Netzwerk erhöht sich die Wahrscheinlichkeit auf drastische Weise, dass eine Welle an Rückmeldungen oder negativen Rückmeldungen das Netzwerk überlastet.
  • Mit der vorliegenden Erfindung wird sowohl Effizienz als auch Betriebssicherheit durch das Erzeugen von High-Level-Protokollen auf der Basis von UDP-Multicast-Protokollen erzielt. Da das UDP inhärent nicht betriebssicher ist, wird die Betriebssicherheit durch das Aufeinanderschichten von zusätzlichen Protokollen auf das UDP sichergestellt. Als Ergebnis wird ein Protokoll erzeugt, das die Effizienz von UDP-Multicast mit einer sehr hohen Betriebssicherheit erzielt. Die Ausführungsbeispiele der vorliegenden Erfindung können entweder in einem statistischen Betriebssicherheitsmodus oder in einem positiven Betriebssicherheitsmodus arbeiten. Der statistische Betriebssicherheitsmodus kann so angepasst werden, dass die Wahrscheinlichkeit, dass ein beliebiges System die Nachricht nicht empfangen hat, auf eine sehr kleine Zahl reduziert wird. Der positive Betriebssicherheitsmodus erhöht die Funktionalität des statistischen Betriebssicherheitsmodus, indem zusätzlich den Sendern das Wissen darüber bereitgestellt wird, welche beabsichtigten Empfänger die Nachricht empfangen und welche die Nachricht nicht empfangen haben. Mechanismen der vorliegenden Erfindung ermöglichen es des Weiteren, dass Antworten, die von den Empfängern empfangen wurden, eng an die anfängliche Übertragung, welche die Antwort erzeugt hat, gekoppelt werden. Dadurch kann unter Verwendung der vorliegenden Erfindung eine bidirektionale Verbindung erreicht werden.
  • In Bezug auf 3 liefert ein Logikdiagramm, dass die Elemente eines Netzwerkprotokollstapels darstellt, einen Kontext für die vorliegende Erfindung. Jedes System in dem Netzwerk verwendet einen ähnlichen Protokollstapel, um Verbindungen zwischen den Systemen bereitzustellen. Im Allgemeinen stellt jede Schicht ein höheres Niveau an Funktionalität als die jeweils darunterliegende Schicht bereit und bearbeitet im Allgemei nen Aufgaben des niedrigeren Niveaus, indem sie die von der unter ihr liegenden Schicht angemessene Funktion des niedrigeren Niveaus verwendet. Der in 3 dargestellte Protokollstapel besitzt für ein exemplarisches Ausführungsbeispiel der vorliegenden Erfindung repräsentativen Charakter und sollte nicht im restriktiven Sinne bezüglich des Umfangs der Erfindung verstanden werden. Andere geeignete Protokollstapel können unterschiedliche Schichten entweder hinsichtlich der Zahl oder hinsichtlich ihrer Art enthalten.
  • Die unteren Ebenen des Stapels, die die Hardware, die Hardwaresteuerung, die Treiber für Geräte und so weiter repräsentieren, werden durch die Klammer 57 dargestellt und sind für das Erklären eines illustrativen Ausführungsbeispiels der vorliegenden Erfindung von keiner Bedeutung. Oberhalb der unteren Ebenen befindet sich die Schicht für das Internet-Protokoll oder die IP-Schicht 58, die unter Verwendung des Internet-Protokolls die allgemeinen Verbindungsdienste über heterogene Netzwerke bereitstellt. Eine Verbindungsprotokollschicht, die Schicht für das Übertragungssteuerungsprotokoll oder die TCP-Schicht 60 stellt die Verbindungen mit anderen IP-Hosts basierend auf einer IP-Adresse und einem Anschluss an dem Host bereit. Eine Verbindungsprotokollschicht wie beispielsweise die TCP-Schicht 60 verursacht jedoch trotz ihrer hohen Betriebssicherheit für ihre Erstellung, Wartung und Verwendung für das Übertragen von kurzen Nachrichten zu einer hohen Anzahl von Empfangssystemen einen zu hohen Gesamtaufwand.
  • Eine verbindungslose Protokollschicht wie beispielsweise die Schicht des Benutzer-Datagramm-Protokolls oder die UDP-Schicht 62 kann mit geringem Gesamtaufwand erstellt werden und bietet, wenn sie mit IP-Multicast-Adressen verwendet wird, eine Datenübertragung mit hoher Betriebssicherheit. Das UDP garantiert jedoch weder den Empfang von Paketen noch die Reihenfolge, in der die Pakete empfangen werden. Da es aufgrund seines Designs inhärent nicht betriebssicher ist, werden wahrscheinlich bestimmte Anzahlen von Paketen in den Netzwerken verloren gehen, selbst wenn diese bescheidener Komplexität sind, und dies ist umso mehr der Fall, wenn eine große Zahl von Empfangssystemen vorhanden sind.
  • Die Winsock-Schicht 64 stellt eine Anwendungsprogrammschnittstelle (API) bereit, die einen Zugang auf höherer Ebene sowohl zu der TCP-Schicht 60 als auch zu der UDP- Schicht 62 ermöglicht. Die Windows Socket API, die von der Winsock-Schicht 64 bereitgestellt wird, liefert eine standardisierte Windows-Schnittstelle zu verschiedenen Transportschichten wie beispielsweise TCP, UDP und IP so dass die Transportdetails der unteren Ebenen vor den höheren Ebenen versteckt werden. Schließlich wickelt eine Sende- und Empfangseinrichtung für kurze Nachrichten 66 das Übertragen von kurzen Nachrichten zwischen IP-Host-Systemen entsprechend der vorliegenden Erfindung ab. Diese Einrichtung stellt Dienste bereit, die viele unterschiedliche Anwendungen ermöglichen wie beispielsweise Anwendung 68, mit dem Ziel des Vereinfachens der internen Codeentwicklung und des Nutzens der Vorteile der betriebssicheren und effizienten Übertragungsmechanismen. Die Sende- und Empfangseinrichtung für kurze Nachrichten 66 kann darüber hinaus eine API der hohen Ebene bereitstellen wodurch Anwendungen die Vorteile der Funktion der Sende- und Empfangseinrichtung für kurze Nachrichten 66 nutzen können, ohne zahlreiche Details zum Senden und Empfangen von Nachrichten der unteren Ebene entsprechend der vorliegenden Erfindung berücksichtigen zu müssen.
  • Die Ausführungsbeispiele der vorliegenden Erfindung arbeiten entweder in dem statistischen Betriebssicherheitsmodus, in dem der Empfang der Nachricht durch ein jedes Empfangssystem statistisch sehr wahrscheinlich ist oder in einem positiven Betriebssicherheitsmodus, in dem jedes Empfangssystem den Empfang der Nachricht bestätigt. Unter Verwendung des statistischen Betriebssicherheitsmodus kann die Wahrscheinlichkeit des Empfangens einer Nachricht durch Einstellen der relevanten Parameter angepasst werden.
  • Um Betriebssicherheit zu gewährleisten, basiert der statistische Betriebssicherheitsmodus der vorliegenden Erfindung auf dem grundlegenden Konzept, dass, wenn ein Netzwerk eine Paketverlustrate aufweist, die mit dem Verlauf der Zeit, die zum Senden und Empfangen einer Reihe von Paketen benötigt wird, relativ konstant ist, die Wahrscheinlichkeit des Empfangens von k Paketen von n gesendeten Paketen durch die folgende Gleichung erhalten wird: pk = (nk )pk(1 – p)n-k wobei:
  • pk
    die Wahrscheinlichkeit für das Empfangen von k Paketen
    n
    die Gesamtanzahl der gesendeten Pakete
    k
    die Anzahl der empfangenen Pakete und
    p
    die Wahrscheinlichkeit für das Empfangen eines Paketes ist.
  • Die Wahrscheinlichkeit, dass keines der gesendeten Pakete durch einen Empfänger empfangen wird, wird durch die folgende Gleichung ausgedrückt: Pf = P0 = (1 – p)n
  • Die Wahrscheinlichkeit, dass alle gesendeten Pakete empfangen werden, wird durch die folgende Gleichung ausgedrückt: Ps = pn = pn
  • Und die Wahrscheinlichkeit, dass wenigstens ein Paket aber weniger als alle Pakete empfangen wird, wird durch die folgende Gleichung ausgedrückt: Pps = 1 – (po + pn) = 1 – (pf + ps)
  • Wenn beispielsweise eintausend Empfänger vorhanden sind, drei Pakete gesendet werden und die Paketverlustrate bei zwanzig Prozent liegt, wird die Wahrscheinlichkeit des erfolglosen Empfangs, die Wahrscheinlichkeit des erfolgreichen Empfangs und die Wahrscheinlichkeit eines teilweise erfolgreichen Empfangs folgendermaßen ausgedrückt: Pps = 1 – ,23 = ,008 Pps = ,83 = ,512 Pps = 1 – ,512 + ,008 = ,480
  • Demzufolge kann statistisch gesehen davon ausgegangen werden, dass 512 Empfänger alle drei Pakete empfangen werden, 480 Empfänger einige der Pakete empfangen werden und 8 Empfänger keines der Pakete empfangen werden. Die untenstehende Tabelle stellt die Wahrscheinlichkeit des erfolglosen Empfangs als eine Funktion aus der Paketverlustrate und der Anzahl der gesendeten Pakete dar. Wie in der Tabelle dargestellt, resultiert für moderate Paketverlustraten selbst ein relativ Anzahl gesendeter Pakete in einer sehr geringen Wahrscheinlichkeit des vollständig erfolglosen Empfangs. Demzufolge kann durch Anpassen der Anzahl an zu einer bestimmten Paketverlustrate gesendeten Paketen die Wahrscheinlichkeit des erfolglosen Empfangs auf eine sehr kleine Zahl reduziert werden.
  • Tabelle 1
    Figure 00210001
  • Um einen betriebssicheren Empfang in der vorliegenden Erfindung sicherzustellen, übertragen die Ausführungsbeispiele der vorliegenden Erfindung eine garantierte Mindestanzahl an Paketen. Für Nachrichten, die weniger als die Mindestanzahl von Paketen füllt, wird die Nachricht auf die Mindestanzahl von Paketen aufgefüllt. Dieser Prozess wird in 4 dargestellt. Eine Nachricht 80, die unter Verwendung der vorliegenden Erfindung von einem Sendesystem zu Empfangsystemen gesendet werden soll, wird von einer Anwendung empfangen und in eine bestimmte Mindestanzahl von Paketen 82a bis 82n aufgeteilt. Obgleich eine Nachricht wie voranstehend beschrieben in vielen Fällen durch nur ein Paket auf effiziente Art und Weise übertragen werden kann, wird die Nachricht auf eine bestimmte Mindestanzahl an Paketen aufgestockt, um die Wahrscheinlichkeit zu erhöhen, dass ein System wenigstens eines der Pakete empfängt. Wie im Folgenden beschrieben, kann ein System, wenn es ein Paket empfängt, eine negative Rückmeldung NAK senden, um ein erneutes Übertragen des fehlenden Paketes der Nachricht zu veranlassen.
  • Es können viele Verfahren zum Auffüllen einer Nachricht angewendet werden, damit diese eine Mindestanzahl von Paketen füllt. Wenn beispielsweise die Nachricht in Datenblöcke aufgeteilt werden kann, von denen jeder ein Paket füllt und wenn die Anzahl der Datenblöcke nicht ausreichend ist, um eine Mindestanzahl von Paketen zu füllen, können Leerstellen-Datenblöcke hinzugefügt werden, um die erforderliche Mindestanzahl von Paketen zu füllen. Alternativ dazu kann der letzte Datenblock eine ausreichende Anzahl von Malen so lange repliziert werden, bis die erforderliche Mindestanzahl von Datenblöcken erreicht ist. Als ein weiteres alternatives Beispiels dazu können die Auffüll-Pakete Datenblöcke mit Nulllängen (keine Daten) enthalten. Es kann auch jeder beliebige andere Mechanismus verwendet werden. So kann es zum Beispiel wünschenswert sein, dass die Auffüll-Datenblöcke mit einem festgelegten Muster gefüllt werden, so dass der Empfänger erkennen kann, dass der Datenblock ein Auffüll-Datenblock ist. Eine ähnliche Funktion würde man erhalten, wenn Pakete verwendet würden, die Datenblöcke mit Nulllängen enthalten. Schließlich muss nach dem Auffüllen lediglich sichergestellt sein, dass eine ausreichende Mindestanzahl von Paketen vorliegt.
  • Die genauen Inhalte der einzelnen Pakete, die für die vorliegende Erfindung verwendet werden, hängt von einer Bandbreite von Faktoren ab, von denen wiederum viele von dem bestimmten Satz an Leistungsmerkmalen abhängt, der in einem bestimmten Ausführungsbeispiel umgesetzt wird. Eine ausführliche Beschreibung eines Paketlayouts, das für die Verwendung in der vorliegenden Erfindung geeignet ist, ist in 5 dargestellt. Bestimmte Ausführungsbeispiele der vorliegenden Erfindung basieren auf den von den IP- und UDP-Protokollen bereitgestellten Funktionen. Dementsprechend sind Pakete, die unter Verwendung der vorliegenden Erfindung übertragen werden, in die UDP-Pakete eingekapselt. Dies ist sowohl für den statistischen Betriebssicherheitsmodus als auch für den positiven Betriebssicherheitsmodus der Erfindung der Fall. Sowohl der statistische Betriebssicherheitsmodus als auch der positive Betriebssicherheitsmodus verwenden sowohl Multicast- als auch Punkt-zu-Punkt-Übertragungskomponenten. Sowohl die Multicast- als auch die Punkt-zu-Punkt-Übertragungskomponenten sind in die UDP-Pakete eingekapselt. Die Protokolle der vorliegenden Erfindung hängen von den Quell- und Ziel-IP-Adressen sowie den UDP-Anschlüssen in den IP- und UDP-Abschnitten des Datagramm-Headers ab. Die IP- und UDP-Abschnitte des Datagramm-Headers sind in 5 durch den IP-/UDP-Datagramm-Header 86 dargestellt. Zusätzlich zu den Standardfeldern des IP-/UDP-Datagramms weist ein Ausführungsbeispiel der vorliegenden Erfindung außerdem ein Pakettyp-Feld 88, ein reserviertes Feld 90, ein Bitmap-Feld 92, ein Nachrichtennummern-Feld 94, ein Paketsequenznummern-Feld 96, ein Antwort-Anschluss-Feld 98, ein Datenlängen-Feld 100 und ein Daten-Feld 102 auf. Das Pakettyp-Feld 88 enthält eine kodierte Identifizierungseinrichtung, die den bestimmten Pakettyp identifiziert. Zu den in der vorliegenden Erfindung verwendeten Paketen gehören Heartbeat-Pakete, Positive-Rückmeldungs-Pakete, Negative-Rückmeldungs-Pakete und Daten-Pakete. Tabelle 2 fasst die unterschiedlichen Pakettypen und das für den bestimmten Pakettyp verwendete Paketlayout zusammen. Die Bedeutung des Typs Positive-Rückmeldungs-Paket wird nachstehend in ausführlicherer Art und Weise beschrieben. Heartbeat-Nachrichten können von dem Netzwerk dazu verwendet werden, Gruppenmitgliedschaften aufzubauen und zu erhalten. Obgleich eine vollständige Diskussion zu Prinzipen von Heartbeat-Nachrichten und Gruppenmitgliedschaften über den Umfang des vorliegenden Dokumentes hinausgehen, rührt der Wunsch nach Gruppen im Allgemeinen von dem Bestreben her, Nachrichten zu einem Subset aus Systemen zu übertragen und der Schwierigkeit, von allen Systemen zu verlangen, dass sie Adresseninformationen zu einem jedem System eines großen Netzwerks aufrechterhalten. Das Einteilen von Systemen eines Netzwerk in Gruppen (Gruppieren) hilft beim Lösen dieser Probleme. Heartbeat-Nachrichten können zum Auffinden von Informationen zu Gruppen und zum Aufrechterhalten von Gruppen verwendet werden.
  • Tabelle 2
    Figure 00230001
  • Das reservierte Feld 90 wird nicht verwendet und ist für zukünftige Weiterführungen reserviert. Das Bitmap-Feld 92 enthält Flags, die durch das Protokoll für verschiedene Zwecke genutzt werden. Die folgende Tabelle 3 erläutert die in dem Bitmap-Feld 92 enthaltenen Flags und ihre Bedeutung.
  • Tabelle 3
    Figure 00240001
  • Das Nachrichtennummern-Feld 94 ist ein Feld, das eine ID-Nummer für die bestimmte Nachricht enthält. Diese Nachrichten-ID-Nummer ist für sämtliche Pakete in einer bestimmten Nachricht identisch. Wenn darüber hinaus Antworten zu einer bestimmten Nachricht gesendet werden, enthält die Antwort ebenfalls die Nachrichtennummer der Nachricht, so dass beim Empfangen der Antwort diese als eine auf eine bestimmte Nachricht empfangene Antwort identifiziert werden kann. Durch die Verwendung der Nachrichtennummer können Anforderungen und Antworten eng miteinander verknüpft werden, so dass das System erkennen kann, welche Antworten zu welchen Anforderungen gehören, ohne dass ein bestimmter Typ eines Synchron- oder verbindungsbasierten Protokolls umgesetzt werden müsste.
  • Die Paketsequenznummer 96 ist eine Nummer, die mit jedem Paket in der Nachricht erhöht wird. Dadurch kann der Empfänger erkennen, ob alle Pakete der Nachricht emp fangen wurden, so dass NAKs gesendet werden können, um das erneute Übertragen der fehlenden Pakete anzufordern. Der Antwortanschluss 98 ist die UDP-Anschlussnummer, die für das Zurücksenden der Antworten zu der Nachricht verwendet werden sollte. Das Datenlängen-Feld 100 identifiziert die Länge des Daten-Feldes 102, so dass ein Empfänger alle Daten des Daten-Feldes extrahieren kann. Das Daten-Feld 102 enthält die Daten, die in dem Paket gesendet werden sollen.
  • Wie in 5 dargestellt, weisen die Pakete unterschiedliche Layouts auf, die als Layout 0, Layout 1 und Layout 2 dargestellt sind. Das Paketlayout für einen bestimmten Pakettyp wird in Tabelle 2 zusammengefasst.
  • Obgleich hinsichtlich einer bestimmten Implementierung eines Paketes einige Details in 5 dargelegt sind, wird dies nur im Sinne eines Beispiels dargestellt. Demzufolge sollte 5 nicht im restriktiven Sinne hinsichtlich des Umfangs der vorliegenden Erfindung verstanden werden. Andere Ausführungsbeispiele können durchaus auch andere Pakettypen verwenden, je nach dem bestimmten Satz an Leistungsmerkmalen, der in dem bestimmten Ausführungsbeispiel umgesetzt wird. Im Allgemeinen enthalten die meisten Paket-Implementierungen jedoch wenigstens die Ziel-ID, die Sender-ID, von denen jede eine IP-Adresse und eine Anschlussnummer umfasst, und ein Daten-Feld für jene Pakete, die Daten übertragen. Die Bedeutungen der anderen Felder wurden bereits voranstehend erklärt, und, wie in dem verbleibenden Teil der Beschreibung noch weiter illustriert werden wird, werden diese verwendet, um unterschiedliche Sätze an Leistungsmerkmalen zu implementieren oder weiterzuentwickeln, welche in verschiedenen Ausführungsbeispielen der vorliegenden Erfindung eingesetzt werden können.
  • In nochmaligem Bezug auf 2 wird die konzeptuelle Funktionsweise des statistischen Betriebssicherheitsmodus der vorliegenden Erfindung beschrieben. Angenommen, die Bedienerkonsole 70 möchte eine bestimmte Nachricht an End-Clients 76 senden. Die Bedienerkonsole 70 wird die Nachricht aufnehmen, und, wie im Zusammenhang mit 4 voranstehend beschrieben, wenigstens die Mindestanzahl der Pakete erzeugen, die für das erwünschte Niveau der statistischen Betriebssicherheit notwendig ist. Anschließend werden die Pakete unter Verwendung eines Multicast-Protokolls wie beispielsweise ein IP-Multicast, wie in 2 durch die IP-Multicast-Pakete 74 dargestellt, übertragen. Die Multicast-Pakete werden durch die Mid-Tier-Server 72 empfangen und Bewertung unterzogen. Da die Pakete schließlich und letztendlich für die End-Clients 76 bestimmt sind, werden die Multicast-Pakete wie beispielsweise die IP-Multicast-Pakete durch die Mid-Tier-Server 72 weiter an die End-Clients 76 übertragen.
  • Basierend auf dem oben beschriebenen statistischen Modell kann es sein, dass einige Endbenutzer alle Pakete empfangen, einige Endbenutzer nur einige Pakete empfangen und einige gar keine Pakete empfangen. Durch das Prüfen der Paketsequenznummer und gegebenenfalls dem Ende des Nachrichten-Flags können Systeme, die weniger als alle Pakete empfangen, eine NAK senden, womit ein erneutes Übertragen der fehlenden Pakete angefordert wird. Wenn ein End-Client 76 beispielsweise ein Paket in einer Nachricht von dem Mid-Tier-Server 72 nicht empfangen hat, kann dann der End-Client 76 eine NAK an den Mid-Tier-Server 72 senden. Der Mid-Tier-Server 72 empfängt dann die NAK und führt ein erneutes Übertragen des angeforderten Paketes durch. Ein ähnlicher Ansatz würde dann verfolgt werden, wenn ein bestimmter Mid-Tier-Server 72 von der Bedienerkonsole 70 ein oder mehrere Pakete nicht empfangen hat. In solche einem Fall sendet der Mid-Tier-Server 72 eine NAK an die Bedienerkonsole 70. Die Bedienerkonsole 70 empfängt die NAK und führt ein erneutes Übertragen der angeforderten Pakete durch. Andere Arten von Netzwerken, die nicht notwendigerweise wie das in 2 dargestellte Netzwerk aufgebaut sind, können dieses Protokoll ebenfalls zwischen einem beliebigen Sendesystem und einer Anzahl von Empfangssystemen verwenden.
  • Das erneute Übertragen von Paketen, das mit einer NAK angefordert wird, kann in Systemen resultieren, die keine Pakete empfangen haben oder in Systemen, die weniger als alle Pakete empfangen haben, wobei sie mehr Pakete empfangen als sie anfänglich empfangen haben. Basierend auf dem oben beschriebenen statistischen Modell, führt jedes erneute Übertragen von einem oder mehreren Paketen dazu, dass die statistische Wahrscheinlichkeit, dass die Systeme alle notwendigen Pakete empfangen, erhöht wird. Die Schritte NAK/erneutes Übertragen können über einen festgelegten Zeitraum hinweg so lange durchgeführt werden, bis bestimmte statistische Kriterien erfüllt sind.
  • Obgleich dies auf konzeptueller Basis geschieht, führt die obige Beschreibung dazu, dass die statistische Wahrscheinlichkeit, dass beliebige Systeme die von ihnen benötigten Informationen nicht empfangen, auf ein Beliebiges Minimum reduziert wird, in der Realität würde ein solcher Ansatz zu schwerwiegenden Problemen in vielen praktischen Installationen führen. Wenn unter Verwendung eines voranstehend beschriebenen Beispiels die Paketverlustrate bei 20 Prozent läge, und wenn drei Pakete zu eintausend Empfängern gesendet würden, kann statistisch gesehen davon ausgegangen werden, dass 512 Empfänger alle drei Pakete empfangen würden, 480 Empfänger ein oder zwei Pakete empfangen würden und acht Systeme keine Pakete empfangen würden. Wenn alle 480 Systeme NAKs an den Sender senden würden, würde das Aufkommen an Netzverkehr das Netzwerk völlig überlasten. Mit zunehmender Anzahl von Systemen in einem Netzwerk wird das Problem noch ausgeprägter und schwerwiegender. Im Idealfall würde nur eine ausreichende Anzahl an Systemen mit NAKs antworten, um zu garantieren, dass der Sender eine NAK für jedes fehlende Paket empfangen hat. Obwohl aus praktischer Sicht dieser Idealfall schwer zu erreichen ist, können verschiedene Schritte unternommen werden, um die Flut an NAKs zu reduzieren.
  • So können Ausführungsbeispiele der vorliegenden Erfindung Suppressions-Verfahren sowohl auf der sendenden als auch auf der empfangenden Seite anwenden, um das Verhalten des Netzwerkes auf ein erwünschtes Niveau zu bringen. Wie nachstehend erläutert wird, können diese Suppressions-Verfahren einen Teil einer Vorrichtung zum Reduzieren des Netzverkehrs während des Wiederherstellens verlorengegangener Pakete bilden. Im Wesentlichen wählt jeder Empfänger eine Verzugszeit basierend auf einer Wahrscheinlichkeitsdichte-Funktion mit spezifischen Eigenschaften aus, und wenn der Zeitpunkt der Verzugszeit für die NAK gekommen ist, überträgt der Empfänger seine NAK-Anforderung, wenn er nicht bereits das gewünschte Paket empfangen hat. Auf der sendenden Seite wird der Sender, wenn ein Paket erst einmal erneut übertragen wurde, die NAKs für die erneut übertragenen Pakete für einen festgelegten Zeitraum nach der erneuten Übertragung ignorieren. Durch das Kombinieren der Suppression sowohl auf der empfangenden als auch auf der sendenden Seite kann eine Annäherung an den Idealfall erzielt werden. Die Wechselwirkung zwischen der Suppression auf der empfangenden Seite und der Suppression auf der sendenden Seite wird nachstehend diskutiert, wenn die vollständigen Details dieser Verfahren beschrieben werden.
  • In Bezug auf 6 wird im Folgenden ein strukturelles Diagramm eines Ausführungsbeispiels der vorliegenden Erfindung beschrieben, das die Verarbeitungskomponenten in dem Sendesystem illustriert, das beim Senden von Nachrichten und beim erneuten Übertragen von fehlenden Nachrichten in dem statistischen Betriebssicherheitsmodus verwendet wird. In 6 kann das Sendesystem 104 die verschiedenen Hardwarekomponenten umfassen, die normalerweise mit dem Computersystem assoziiert sind wie beispielsweise die, die in Zusammenhang mit 1 oben beschrieben wurden. In 6 ist das zu Illustrationszwecken vorhandene Sendesystem 104 lediglich auf jene Verarbeitungskomponenten fokussiert, die durch die vorliegende Erfindung in dem statistischen Betriebssicherheitsmodus verwendet werden.
  • Wenn eine Nachricht wie beispielsweise die Nachricht 106 übertragen werden soll, wird sie zu einer Komponente weitergegeben, die für das Senden der Nachricht unter Verwendung des geeigneten Mechanismus verantwortlich ist. Dementsprechend können die Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Senden einer Nachricht umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 6 eine solche Vorrichtung durch den Sender 108 dargestellt. Der Sender 108 ist für das Senden sämtlicher Pakete in einer Nachricht verantwortlich. Wenn der statistische Betriebssicherheitsmodus verwendet wird, ist der Sender 108 darüber hinaus auch dafür verantwortlich, sicherzustellen, dass, wenn die Nachricht 106 gesendet wird, die notwendige Mindestanzahl an Übertragungspaketen erzeugt wird. Dies wird in 6 durch die Pakete 110 dargestellt, die über das Netzwerk 112 zu den Empfängern 114 gesendet werden. Die Empfänger 114 repräsentieren einen oder mehrere beabsichtigte Empfänger der Nachricht. Es sollte offensichtlich sein, dass die hierin beschriebenen Protokolle für die gesamte Anwendung zwischen jedem beliebigen Sendesystem und einem oder mehreren Empfangssystemen verwendet werden kann. In einem Ausführungsbeispiel ist der Sender 108 in eine Einrichtung für das Senden/Empfangen kurzer Nachrichten wie die in 3 dargestellte Sende- und Empfangseinrichtung für kurze Nachrichten 66 integriert. Wie ebenfalls in 3 dargestellt, kann der Sender 108 auf einem Protokollstapel basieren, der verschiedene Hardwarekomponenten, Treiber für Hardware und andere Protokolltreiber für das Übertragen der Pakete enthält. Wie voranstehend bereits beschrieben wurde, können in einem Ausführungsbeispiel die Pakete 110 denen in 5 dargestellten Paketen entsprechen.
  • Wie voranstehend beschrieben wurde, können Empfänger 114, die nicht alle Pakete in einer Nachricht empfangen haben, eine NAK an das Sendesystem senden, womit ein erneutes Übertragen der entsprechenden Pakete angefordert wird. Dieser Schritt wird in 6 durch die NAK 116 dargestellt, die über das Netzwerk 112 zu dem Sendesystem 104 gesendet wird. Wie voranstehend beschrieben, empfängt das Sendesystem 104 die NAK und führt ein erneutes Übertragen der entsprechenden Pakete durch. Dementsprechend können Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Empfangen von Anforderungen für das erneute Übertragen von Paketen umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, ist in 6 eine solche Vorrichtung durch die NAK-Empfangsvorrichtung 118 dargestellt. Die NAK-Empfangsvorrichtung 118 horcht nach NAKs und führt das erneute Übertragen von Paketen entsprechend Methodologien durch, die im weiteren Verlauf beschrieben werden. In 6 wird das erneute Übertragen der entsprechenden Pakete durch den Vorgang der erneuten Paketübertragung 120 dargestellt.
  • In 6 können der Sender 108 und die NAK-Empfangsvorrichtung 118 auf ganz unterschiedliche Art und Weise unter Verwendung einer Bandbreite von Technologien implementiert werden. Wenn das Sendesystem 104 ein Multi-Thread-System ist, kann das Sendesystem 104 den Sender 108 und die NAK-Empfangsvorrichtung 118 als separate Threads implementieren. Es können auch weitere geeignete Implementierungen angewendet werden.
  • In Bezug auf 7 wird im Folgenden ein Ablaufplan beschrieben, der die durch das Sendesystem durchgeführten Verarbeitungsschritte für das Senden einer Nachricht zu einem Empfangssystem entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung illustriert. 7 kann beispielsweise die Verarbeitungsschritte illustrieren, die durch den Sender 108 und die NAK-Empfangsvorrichtung 118 aus 6 durchgeführt werden. Nach dem Beginn bei Schritt 122 wird die Nachricht in Schritt 124 in wenigstens die benötigte Mindestanzahl an Übertragungspaketen aufgeteilt, die für die gewünschte Betriebssicherheit erforderlich ist. Dies geschieht in der Art und Weise wie voranstehend im Zusammenhang mit 4 beschrieben wurde. Hierbei ist zu beachten, dass wenn die Nachricht nicht sämtliche Pakete benötigt, zusätzliche Pakete wie voranstehend beschrieben hinzugefügt werden, um die Mindestanzahl an Paketen zu erreichen. Diese Auffüll-Pakete werden, obgleich sie keine Daten tragen, für das Bestimmen der Vollständigkeit der Nachricht in dem Empfangssystem verwendet. Das letzte Paket hat das Letztes-Paket-Flag oder das Ende-der-Nachricht-Flag eingestellt, und jedes Paket besitzt eine unikale sequenzielle Paketnummer. Schritt 124 ist demzufolge lediglich ein Beispiel für eine Vorrichtung zum Aufteilen der Nachricht in eine Vielzahl von einzelnen Übertragungspaketen und für das Hinzufügen von Paketen, wenn die Nachricht weniger als eine Mindestanzahl an einzelnen Übertragungspaketen füllt.
  • Nachdem die Übertragungspakete erzeugt wurden, wird die Nachricht durch das Senden eines jeden Paketes über das IP-Netz unter Verwendung der UDP-Multicast-Vorrichtung zu einer Gruppe an festgelegten Empfangssystemen gesendet. Die Übertragungsrate der Pakete kann die Paketverlustrate des Netzwerkes beeinflussen. Wenn zum Beispiel in einem Netzwerk mit Routern und anderen Systemen, die Nachrichten puffern und weiterleiten, die Pakete zu schnell übertragen werden, kann die Pufferkapazität überschritten werden, wodurch Pakete verloren gehen. Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung können aus diesem Grund Vorrichtungen zum Regulieren der Geschwindigkeit für das Übertragen von Paketen enthalten. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 7 eine solche Vorrichtung durch den Schritt 126 illustriert, in dem Pakete unter Verwendung eines Algorithmus zum Regulieren der Geschwindigkeit gesendet werden, der dazu dient, die Pakete in einer solchen Art und Weise zu übertragen, dass die Übertragung nur geringe oder gar keine Auswirkungen auf die Paketverlustrate hat. Mit Hilfe des Algorithmus zum Regulieren der Geschwindigkeit wird der Gesamtaufwand für das Netzwerk reduziert, da der Algorithmus auf allgemeine Paketfehlertrends in Netzwerken reagiert und Pakete in größeren Intervallen sendet (niedrigere Paketübertragungsrate), wenn das Netzwerk auf einem niedrigeren Niveau arbeitet. Demzufolge kann der Algorithmus zum Regulieren der Geschwindigkeit eine Vorrichtung zum Auswählen einer Übertragungsrate basierend auf dem jeweiligen Leistungsniveau des Netzwerkes umfassen. Beispiele solcher Vorrichtungen werden nachstehend beschrieben.
  • Idealerweise sollte es ein Algorithmus zum Regulieren der Geschwindigkeit dem System ermöglichen, Pakete so schnell wie möglich zu übertragen, ohne dabei die Paketverlustrate des Netzwerkes nachteilig zu beeinflussen. Im Allgemeinen ist die Paketverlustrate eine sehr komplexe Funktion, die sich aus vielen verschiedenen Parametern zusammensetzt, von denen wenigstens einige im Verlauf der Zeit Schwankungen aufweisen. Einige dieser Faktoren stehen im Zusammenhang mit der Hardware und der bestimmten Netzwerkinfrastruktur, die zur Kommunikation zwischen den Systemen verwendet wird. Andere Faktoren werden durch die interne Verarbeitungslast der einzelnen Systeme in dem Netzwerk beeinflusst. Da die Paketverlustrate des Netzwerkes durch eine so große Anzahl von Faktoren beeinflusst werden kann, würde es sich als äußerst schwierig erweisen, im Voraus die Paketverlustrate für eine bestimmte beliebige Netzwerkkonfiguration zu berechnen. Demzufolge verwendet die vorliegende Erfindung einen Ansatz, bei dem ein Messwert der Paketverlustrate der Netzwerkes genommen wird und die Übertragungsrate basierend auf der Paketverlustrate angepasst wird, damit verhindert wird, dass die Übertragungsrate die Paketverlustrate des Systems nachteilig beeinflusst.
  • Es können viele unterschiedliche Vorgehensweisen für das Verwenden der Paketverlustrate des Systems zum Bestimmen einer Übertragungsrate für den Sender entwickelt werden. Jedes dieser Verfahren ist richtigerweise ein Beispiel der Vorrichtung zum Auswählen einer Übertragungsrate. Algorithmen zum Regulieren der Geschwindigkeit, sollen sie eine gute Leistung vorweisen, sollten dennoch bestimmte Eigenschaften besitzen. Im Allgemeinen wird die Übertragungsrate für einen Sender zwischen einem Mindest- und einem Höchstwert bestimmt. Der Mindestwert ist notwendig, damit der Sender Pakete bei wenigstens einer Mindestrate überträgt, wie auch immer die Netzwerkbedingungen aussehen. Würde der Sender keine Pakete übertragen, würden die Netzwerkprotokolle vollständig zusammenbrechen. Demzufolge müssen selbst unter den schlechtesten Bedingungen Pakete durch den Sender übertragen werden. Das Anordnen eines Höchstwertes auf die Übertragungsrate ist oftmals dann ratsam, wenn verhindert werden soll, dass der Sender das Netzwerk völlig überlastet. Die Mindest- und die Höchstübertragungsrate werden oftmals basierend auf Prüfen oder anderen Verfahren eingestellt, mit denen akzeptable Mindest- und Höchstwerte erzeugt werden.
  • Wenn die Paketverlustrate zum Anpassen der Übertragungsrate verwendet wird, basieren typische Algorithmen zum Regulieren der Geschwindigkeit auf Verfahren zum Dämpfen, Filtern, Wichten und Glätten, um Leistungsniveaus zu erreichen, die annähernd den idealen Bedingungen entsprechen. Im Allgemeinen sollte das ausgewählte Verfahren zum Regulieren der Geschwindigkeit auf ein reelles Ansteigen oder Absinken der Paketverlustrate reagieren, währenddessen es relativ unempfindlich gegenüber kleinen Anzahlen von fortlaufenden Fehlern oder kleinen Ausbrüchen von Fehlern ist, so dass es nicht sofort ein Reduzieren auf minimale Übertragungsraten auslöst.
  • Im Allgemeinen ist es sehr schwierig, die Paketverlustrate des Netzwerkes direkt zu messen. Dennoch existieren Messwerte, die indirekte Indikatoren für die Paketverlustrate sind. Ein solcher Messwert ist die Anzahl der NAKs, die in Reaktion auf vorherige Übertragungen empfangen werden. Da der statistische Betriebssicherheitsmodus der vorliegenden Erfindung Systeme erfordert, die wenigstens ein aber weniger als alle der Pakete in einer Nachricht empfangen, damit eine NAK für die Pakete gesendet werden kann, die sie nicht empfangen haben, ist die NAK-Rate ein Indikator der Paketverlustrate des Systems. Wird die NAK-Rate als Indikator für die Paketverlustrate verwendet, müssen bestimmte Faktoren berücksichtigt werden. Wenn beispielsweise ein System Verfahren zur NAK-Suppression anwendet, um die Flut an NAKs zu reduzieren, die erzeugt werden kann, wenn Pakete im Netzwerk verloren gehen, kann die NAK-Rate für eine bestimmte Paketverlustrate künstlich niedrig sein. Dennoch können die Auswirkungen der NAK-Suppression so berücksichtigt werden, dass der Algorithmus zum Regulieren der Geschwindigkeit eine angemessene Empfindlichkeit gegenüber der gemessenen NAK-Rate aufweist. Wenn beispielsweise das Verfahren zur NAK-Suppression eine relativ unveränderliche Menge an NAKs ausfiltert, dann kann jedes gemessene NAK viele solcher möglichen NAKs repräsentieren, von denen die meisten allerdings niemals gesendet wurden. Besitzt der Algorithmus für die NAK-Suppression eine sich mit der Zeit ändernde Komponente wie beispielsweise einen Algorithmus für die NAK-Suppression, der konstruiert ist, um anfänglich eine relativ geringe Anzahl an NAKs zu senden aber anschließend eine zunehmende Anzahl an NAKs zu senden, wenn auf die anfänglich gesendeten NAKs keine Antwort erfolgte, dann kann es erforderlich sein, die Empfindlichkeit des Algorithmus zum Regulieren der Geschwindigkeit an die sich mit der Zeit ändernde Komponente des Algorithmus für die NAK-Suppression anzupassen. So können zum Beispiel nach der anfänglichen Übertragung einer Nachricht jegliche NAKs, die relativ bald nach der Übertragung empfangen wurden, relativ mehr gewichtet werden (da sie einen relativ größeren Teil der unterdrückten NAKs repräsentieren), und die NAKs, die zu einem späteren Zeitpunkt empfangen wurden, können relativ weniger gewichtet werden (da sie einen relativ kleineren Teil der unterdrückten NAKs repräsentieren).
  • Ein weiterer Faktor, der für das Erstellen eines Algorithmus zum Regulieren der Geschwindigkeit berücksichtigt werden kann, ist die Statistik der empfangenen NAKs. So kann beispielsweise eine sich stetig erhöhende NAK-Rate ein Anzeichen für sich ver schlechternde Netzwerkbedingungen und eine sich stetig erhöhende Paketverlustrate sein. In solch einer Situation kann es wünschenswert sein, einen Algorithmus zum Regulieren der Geschwindigkeit zu erstellen, der die Übertragungsrate allmählich nach unten anpasst, bis der Mindestwert erreicht ist. Auf ähnliche Art und Weise kann der Algorithmus zum Regulieren der Geschwindigkeit auf eine sich stetig verringernde NAK-Rate reagieren, indem die Übertragungsrate allmählich nach oben angepasst wird, bis der Höchstwert erreicht ist. Für sich erhöhende oder sinkende NAK-Raten über eine relativ kurze Dauer, was beispielsweise ein Anzeichen für ein Burst abgelegter Pakete sein kann, sollte der Algorithmus zum Regulieren der Geschwindigkeit im Allgemeinen unempfindlich gegenüber solchen Bursts sein und die Übertragungsrate am Ende des Bursts relativ unverändert belassen. Für NAK-Raten, die relativ beständig oberhalb oder unterhalb des gewünschten Schwellenwertes liegen, sollte die Übertragungsrate allmählich auf den Mindestwert nach unten beziehungsweise auf den Höchstwert nach oben angepasst werden.
  • Diese allgemeinen Eigenschaften können unter Verwendung einer großen Bandbreite an Verfahren zum Regulieren der Geschwindigkeit erzielt werden. Die Filter- und Vorhersagetheorie liefert einen ergiebigen Satz an Verfahren, die für diese Art von Problem angewendet werden können. Die Steuerungstheorie liefert ebenfalls eine große Bandbreite an analytischen Tools und Ansätzen, die für diese Art von Problem angewendet werden können. So können beispielsweise optimale oder suboptimale Filtertechniken angewendet werden, die darauf ausgerichtet sind, einen Messwert zu empfangen und anhand dessen eine geschätzte Menge zu erzeugen, die zum Anpassen der Übertragungsrate angewendet werden kann. Solche Verfahren erfordern im Allgemeinen einen Kompromiss zwischen Rechenbelastung und Vorhersagegenauigkeit. In dieser Situation bringen viele der eher vereinfachten Modelle wahrscheinlich adäquate Ergebnisse hervor. Zu solchen vereinfachten Modellen gehören Alphafilter, Alpha-Beta-Filter, suboptimale Kolman-Filter und Ähnliche. In einem Ausführungsbeispiel der vorliegenden Erfindung wird die Übertragungsrate mit Hilfe eines Mechanismus angepasst, der die Übertragungsrate durch eine veränderliche Menge nach unten anpasst, die davon abhängt, wie weit die NAK-Rate den gewünschten Schwellenwert übersteigt und der die Übertragungsrate mit einer unveränderlichen Menge nach oben anpasst, wenn die NAK-Rate unter einem gewünschten Schwellenwert liegt.
  • In dem illustrativen Ausführungsbeispiel wird die Übertragungsrate unter Verwendung einer iterativen Funktion berechnet, die zu einem angemessenen Zeitpunkt aktualisiert wird wie beispielsweise vor einer jeden neuen Übertragung einer Nachricht oder entsprechend eines zeit-basierten Kriteriums, das einen frühestmöglichen oder einen spätestmöglichen Aktualisierungszeitpunkt einstellt. Die Übertragungsrate bei der nten Iteration wird als ein gewichteter Durchschnitt einer Rohübertragungsrate von der nten Iteration und einer Rohübertragungsrate von der (1 – n)ten Iteration gemäß der folgenden Gleichung berechnet: Rwn = αRrn + (1 – α)Rr(n-1) Wobei:
  • Rwn
    die gewichtete Übertragungsrate zum Übertragen von Paketen ist;
    Rrn
    die Rohübertragungsrate bei der nten Iteration ist;
    Rr(n-1)
    die Rohübertragungsrate bei der (n – 1)ten Iteration ist;
    α
    ein Gewichtungsfaktor ist, der die Änderungsrate in der Übertragungsrate verlangsamt;
  • Die Rohübertragungsrate bei der nten Iteration wird folgendermaßen berechnet: Rrn = Rw(n-1) + Δr Wobei:
  • Rw(n-1)
    die gewichtete Übertragungsrate bei der (1 – n)ten Iteration ist, die unter Verwendung der voranstehend aufgeführten Gleichung berechnet wird;
    Δr
    ist die Rohänderung in der Übertragungsrate, die wie untenstehend angeführt, berechnet wird;
    Rm
    ist auf den Bereich Rmin ≤ Rm ≤ Rmax begrenzt, wobei Rmin und Rmax niedrigste beziehungsweise die höchste zulässige Übertragungsrate repräsentieren.
  • Die Änderung in der Übertragungsrate Δr wird unter Verwendung der folgenden Gleichung berechnet:
    Figure 00350001
    Wobei:
  • Δr
    die Änderung bei der Änderung der Übertragungsrate ist;
    RΔB
    ist die Basisänderung in der Übertragungsrate; und
    ΔNAK
    ist die Menge, mit der die gemessene NAK Rate über der gewünschten NAK-Rate liegt und wird wie untenstehend aufgeführt berechnet.
  • In der obenstehenden Gleichung wird die Menge, mit der die gemessene NAK Rate über der gewünschten NAK-Rate liegt, unter Verwendung der folgenden Gleichung berechnet:
    Figure 00350002
    Wobei:
  • ΔNAK
    die Menge ist, mit der die gemessene NAK-Rate über der gewünschten NAK-Rate liegt;
    TNAK
    ist die gewünschte NAK-Rate;
    NAK
    ist ein Dämpfungsfaktor, der die Differenz in der NAK-Rate im Vergleich zu dem vorhergehenden Zeitraum repräsentiert, der überschritten werden muss, ehe die Übertragungsrate reduziert wird; und
    RNAK
    ist die gemessene NAK-Rate.
  • Es ist oftmals wünschenswert, NAK-Raten und andere NAK Mengen als NAKs pro Sekunde auf 1000 Systeme in dem Netzwerk zu bearbeiten. Wenn dies der Fall ist, kann RNAK aus der vorhergehenden Gleichung mit der folgenden Gleichung berechnet werden:
    Figure 00350003
    Wobei:
  • RNAK
    die NAK-Rate auf 1000 Systeme in der Population pro Sekunde ist;
    NAK
    ist die Anzahl der NAKs, die pro eine Sekunde empfangen werden; und
    Population
    ist die Anzahl der Systeme in dem Netzwerk, die NAKs übertragen können.
  • Die Leistung und die Funktionsweise des oben aufgeführten Systems von Gleichungen können durch Ändern der verschiedenen Konstanten und Schwellenwerte, die in den Gleichungen identifiziert werden, optimiert werden. Darüber hinaus erfordern bestimmte Parameter im Allgemeinen das Auswählen eines Anfangswertes, ehe das System an Gleichungen iteriert wird. Im Allgemeinen basiert das Auswählen der Werte der verschiedenen Parameter und der anfänglichen Ausgangswerte auf empirischen Daten, die während Testdurchläufen des Systems gemessen wurden. Die gewünschten Werte hängen sehr stark von der genauen Installation und Art des betreffenden Netzwerkes ab. In einem Ausführungsbeispiel werden die folgenden Werte verwendet:
    TNAK = 5 Rmin = 250
    NAK = 2 Rmax = 2.000
    RΔB Rw0 = 750
    α = 0,5 R0 = 750
  • In der oben aufgeführten Liste sind Rw0 und R0 die anfänglichen Ausgangswerte der gewichteten Übertragungsrate beziehungsweise der Rohübertragungsrate.
  • In nochmaligem Bezug auf 7 wartet in Schritt 128 das Sendesystem auf die NAKs von den Empfangssystemen, damit es jegliche fehlende Pakete erneut übertragen kann. Um die Menge an Netzverkehr zu reduzieren, können Ausführungsbeispiele der Erfindung Vorrichtungen zum Unterdrücken von erneuten Paketübertragungen umfassen. Solch eine Vorrichtung kann ein Abschnitt einer Vorrichtung zum Reduzieren des Netzverkehrs während des Wiederauffindens von verlorengegangenen Paketen sein, mit dessen Hilfe sowohl NAKs unterdrückt werden, die erzeugt werden, wenn Pakete durch einen beabsichtigten Empfänger nicht empfangen werden, als auch das erneute Übertragen von Ersatzpaketen unter bestimmten Umständen unterdrückt werden. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 7 eine Vorrich tung zum Unterdrücken von erneuten Paketübertragungen durch die Erneute-Übertragung-Suppresionsvorrichtung 130, die innerhalb der gestrichelten Linie dargestellt ist, illustriert.
  • Die Erneute-Übertragung-Suppresionsvorrichtung 130 ist darauf ausgerichtet, die erneute Übertragung eines Paketes zu unterdrücken, die durch eine empfangene NAK angefordert wird, wenn das Paket vorher innerhalb eines festgelegten Zeitrahmens gesendet wurde. Dadurch wird den erneut übertragenen Pakete Zeit gegeben, sich im Netzwerk auszubreiten und doch noch empfangen zu werden, bevor sie ein zweites Mal erneut übertragen werden. Ein Ausführungsbeispiel der Erneute-Übertragung-Suppresionsvorrichtung 130 stellt einen Suppressions-Zeitgeber für jedes Mal, wenn ein Paket übertragen wird, ein. Dasselbe Paket wird solange nicht erneut übertragen, bis der Suppressions-Zeitgeber für dieses Paket abgelaufen ist. Der Wert des Suppressions-Zeitgebers hängt von der erwarteten Ausbreitungszeit des Paketes in dem Netzwerk ab.
  • In Schritt 132 wird ein Test durchgeführt, um zu sehen, ob ein Suppressions-Zeitgeber für dieses Paket läuft. Wenn dies der Fall ist, wird die NAK ignoriert, da eine erneute Übertragung bereits stattgefunden hat und es sein kann, dass dieses bestimmte Empfangssystem das fehlende Pakete bereits hat, oder dieses in Kürze haben wird. Wenn der Suppressions-Zeitgeber nicht wie in Schritt 132 festgelegt läuft, wird in Schritt 134 ein Zeitgeber für dieses Paket gestartet, und das Paket wird in Schritt 136 erneut übertragen, auch dieses Mal unter Verwendung von UDP-Multicast. Es wird deshalb die Multicast-Übertragung verwendet, damit alle Empfangssysteme, die das Paket vorher eventuell verpasst haben, dieses Mal die Chance haben, es zu empfangen. Wie im Folgenden beschrieben, können Vorrichtungen zum Unterdrücken von Anforderungen für das erneute Übertragen von Paketen auch ein Teil einer Vorrichtung zum Reduzieren des Netzverkehrs während des Wiederherstellens verlorengegangener Pakete wie beispielsweise eine Vorrichtung zum Unterdrücken von Anforderungen zum erneuten Übertragen von Paketen sein, die zusammen mit dem Empfangssystem arbeitet, wenn dieses Verarbeitungsschritte zum Reduzieren der tatsächlichen Anzahl von NAKs durchführt, die erzeugt werden, wenn ein Paket verloren geht. Für das in 6 dargestellte Ausführungsbeispiel können die Schritte 124 und 126 aus 7 in den Sender 108 eingegliedert werden, während die verbleibenden Schritte in die NAK-Empfangseinrichtung 118 eingegliedert werden können.
  • In Bezug auf 8 wird die strukturelle Darstellung der Verarbeitungsschritte, die in einem Empfangssystem oder einem Empfänger durchgeführt werden, wenn eine Nachricht unter Verwendung des statistischen Betriebssicherheitsmodus empfangen wird, illustriert. In 8 ist das Empfangssystem 138 durch die gestrichelte Linie 140 aufgeteilt. Die Komponenten oberhalb der gestrichelten Linie 140 stellen die Komponenten dar, die durch die vorliegende Erfindung bereitgestellt werden, damit sie den Anwendungen wie beispielsweise der Anwendung 142, die im Empfangssystem 138 ausführend ist, die empfangenen Nachrichten bereitstellen. Die oberhalb der gestrichelten Linie 140 dargestellten Komponenten können beispielsweise in einer Sende- und Empfangseinrichtung für kurze Nachrichten, wie die, die durch den Block 66 in 3 dargestellt ist, integriert sein.
  • Wie vorangehend beschrieben, wird, wenn ein Sendesystem wie beispielsweise das Sendesystem 144 eine Nachricht zu einem Empfangssystem wie beispielsweise dem Empfangsystem 138 unter Verwendung des statistischen Betriebssicherheitsmodus senden möchte, die Nachricht aufgeteilt und eine garantierte Mindestanzahl von Paketen übertragen. In 8 kann das Sendesystem 144 diese Funktion wie voranstehend im Zusammenhang mit den oben beschriebenen 6 und 7 beschrieben, implementieren. Die Pakete 146 werden über das Netzwerk 112 übertragen und durch ein Empfangssystem 138 empfangen. Dementsprechend können Ausführungsbeispiele innerhalb des Umfangs dieser Erfindung Vorrichtungen zum Empfangen von Paketen umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 8 eine solche Vorrichtung durch den Empfänger 148 illustriert. Der Empfänger 148 ist für das Empfangen von Paketen und das Anordnen dieser Pakete in der richtigen Reihenfolge verantwortlich. Der Empfänger 148 horcht ständig nach Paketen. Eine Nachricht beginnt mit Empfang des ersten empfangenen Paketes und dauert entweder so lange an, bis alle Pakete in einer Nachricht empfangen sind, oder bis für die Nachricht das Zeitlimit erschöpft ist und die Nachricht entfernt wird. Hierbei ist zu beachten, dass das erste empfangene Paket nicht notwendigerweise das erste Paket einer Nachricht sein muss. Das Erreichen des Zeitlimits und das Entfernen von Nachrichten wird im Folgenden ausführlicher beschrieben.
  • Die normalen Verarbeitungsschritte des Empfängers 148 umfassen das Anordnen von Paketen einer Nachricht in der Reihenfolge der Paketsequenznummern. Nachrichten werden nach Nachrichtennummer und nach Quell-IP-Adresse aufbewahrt. Da es vorkommen kann, dass Nachrichten so lange zwischengespeichert werden müssen, bis alle Pakete empfangen wurden, können Ausführungsbeispiele der vorliegenden Erfindung Vorrichtungen umfassen, die empfangene Pakete so lange speichern, bis eine vollständige Nachricht empfangen wird. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 8 eine solche Vorrichtung durch die Nachrichten-Empfangsliste 150 dargestellt. Wie in 8 dargestellt, wird für jede ankommende Nachricht eine Nachrichten-Empfangsliste erstellt. Diese Liste wird verwendet, um Paketströme neu in Nachrichten anzuordnen und den Sender während des Empfangs zu identifizieren. Die Nachrichten-Empfangsliste 150 kann je nach der genauen Implementierung und dem genauen Satz an Leistungsmerkmalen ganz unterschiedliche Informationen enthalten. In einem Ausführungsbeispiel enthält die Nachrichten-Empfangsliste 150 die Quell-IP-Adresse und die Quell-UDP-Anschlussnummer, die Nachrichtennummer, ein Nachricht-Vollständig-Empfangen-Flag, eine Zeigevorrichtung zu einem Nachrichtenpuffer, ein Nachrichtenbearbeitungsprogramm oder eine andere angemessene Identifizierungseinrichtung, den Zeitstempel des zuletzt empfangenen Paketes, den Zeitstempel des zuletzt gehörten Paketes und den Zeitstempel der letzten Umschaltung eines Paketes auf die Anwendung. Andere Ausführungsbeispiele können weitere oder andere Felder in der Nachrichten-Empfangsliste 150 enthalten. So kann es beispielsweise wünschenswert sein, eher den Pufferspeicher selbst als eine Zeigevorrichtung zu einem separaten Nachrichtenpuffer in die Nachrichten-Empfangsliste 150 aufzunehmen. Die genaue Ausführung hängt von unterschiedlichen Überlegungen wie beispielsweise den Implementierungsdetails des durch den Empfänger 148 zum Empfangen von Paketen aus dem Netzwerk 112 verwendeten Protokollstapels ab.
  • Wenn durch den Empfang eines Paketes mit einer nicht-sequentiellen Paketsequenznummer eine Lücke in der Paketsequenz erfasst wird, wird ein NAK-Wartezeitgeber gestartet. Nach Ablauf der Wartezeit für die NAK, wird eine NAK zu dem Sendesystem 144 übertragen, um das Sendesystem 144 darüber zu benachrichtigen, dass ein Paket verlorengegangen ist. Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung können Vorrichtungen zum Übertragen einer Anforderung für die erneute Paket übertragung umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird in 8 eine solche Vorrichtung durch den NAK-Zeitgeber 152 dargestellt. Der NAK-Zeitgeber 152 kann die Nachrichten-Empfangsliste 150 beobachten, um nicht-sequentielle Paketnummern zu erfassen. Alternativ dazu kann der Empfänger 148 auch den NAK-Zeitgeber 152 benachrichtigen, wenn nicht-sequentielle Pakete empfangen wurden. Als ein weiteres alternatives Beispiel dazu können das Erfassen einer nicht-sequentiellen Paketnummer ebenso wie das Starten des NAK-Zeitgebers auch in den Empfänger 148 integriert werden. Wie diese Funktion schließlich umgesetzt wird, basiert auf verschiedenen Überlegungen zum Design, die für jedes bestimmte Ausführungsbeispiel getroffen werden müssen. In dem in 8 dargestellten Ausführungsbeispiel ist der konzeptuelle NAK-Zeitgeber 152 für das Einstellen des NAK-Wartezeitgebers, wenn ein nicht-sequentielles Paket erfasst wird und für das Übertragen einer NAK zu dem Sendesystem 144, wenn der entsprechende NAK-Zeitgeber abgelaufen ist, verantwortlich.
  • Die Verwendung eines NAK-Wartezeitgebers zum Bestimmen, wann NAKs gesendet werden sollen, liefert mehrere Vorteile. Wie voranstehend bereits erklärt wurde, würde, wenn jedes System, dass ein Paket nicht erhalten hat, sofort beim Erfassen des fehlenden Paketes eine NAK senden würde, das Netzwerk komplett mit all diesen NAKs lahmgelegt werden. Aus diesem Grund ist es wünschenswert, NAKs mit Zwischenräumen zwischen die Systeme anzuordnen, so dass die NAKs, die gesendet werden, in einer angemessenen Art und Weise verteilt werden, damit die Übertragungseigenschaften des Netzwerkes nicht nachteilig beeinflusst werden. Darüber hinaus ist es, aufgrund der Tatsache, dass Protokolle unterer Ebenen wie beispielsweise das UDP (Übertragungssteuerungsprotokoll) den Empfang von Paketen in numerischer Reihenfolge nicht garantieren können, oftmals wünschenswert, eine kurze Zeit zu warten, ehe eine NAK für das Paket gesendet wird, um sehen zu können, ob das Paket noch auftaucht. Dementsprechend können die Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Unterdrücken von Anforderungen von erneuten Paketübertragungen umfassen. Wie voranstehend bereits erklärt wurde, kann solch eine Vorrichtung eine Komponente einer Gesamtvorrichtung zum Reduzieren des Netzverkehrs während des Wiederherstellens von verlorengegangenen Paketen sein. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, kann solch eine Vorrichtung zum Unterdrü cken von Anforderungen von erneuten Paketübertragungen eine NAK-Suppressions-Einrichtung, die in den NAK-Zeitgeber 152 integriert ist, umfassen.
  • Eine NAK-Suppressions-Einrichtung kann eine große Bandbreite an Strukturen und Verfahren zum Reduzieren der Flut an NAKs umfassen, die auftreten würde, wenn Empfangssysteme sofort dann eine NAK senden würden, wenn ein Paket außerhalb der sequentiellen Reihenfolge empfangen würde. In ihrer allgemeinsten Form umfasst die NAK-Suppressions-Einrichtung einen NAK-Wartezeitgeber, der auf einen beliebig gewählten Wert eingestellt wird, wenn ein Paket außerhalb der numerischen Reihenfolge empfangen wird. Das Einstellen des NAK-Wartezeitgebers auf einen beliebig gewählten Wert randomisiert die Wahrscheinlichkeit des Übertragens von einer NAK und verteilt die Anzahl an übertragenen NAKs über einen längeren Zeitraum. Wie jedoch untenstehend offenbart wird, sind noch weiter ausgefeilte Verfahren zur NAK-Suppression verfügbar.
  • Unter nochmaliger kurzer Bezugnahme auf 2 werden, wenn die Bedienerkonsole 70 eine Multicast-Übertragung einer Vielzahl von Paketen zu End-Clients 76 durchführt, einige Systeme alle übertragenen Pakete empfangen, einige System werden weniger als alle der übertragenen Pakete empfangen, und einige Systeme werden keines der übertragenen Pakete empfangen. Im Idealfall würde die Bedienerkonsole 70 nur eine NAK für jedes Paket empfangen, das durch ein beliebiges System in dem Netzwerk nicht empfangen wurde. Wenn beispielsweise mehrere Systeme in dem Netzwerk zwei Pakete von den vielen, die übertragen wurden, nicht empfangen, würde im Idealfall die Bedienerkonsole 70 lediglich eine NAK für jedes der zwei Pakete empfangen, die nicht empfangen wurden. Obwohl dieser Idealfall in der Praxis schwer zu erreichen ist, weisen die NAK-Suppressions-Einrichtungen bestimmte Eigenschaften auf, die diesen Idealfall näher bringen.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung verwendet die NAK-Suppressions-Einrichtung einen Zeitgeber, um die Übertragung von NAKs zu verzögern. Der Wert des Zeitgebers wird unter Verwendung einer pseudozufälligen Nummer eingestellt, die eine spezifische Wahrscheinlichkeitsdichtefunktion besitzt, mit der relativ wenige NAKs zu einem frühen Zeitpunkt und relativ mehr NAKs zu einem späteren Zeitpunkt erzeugt werden. Durch das Anpassen der Wahrscheinlichkeitsdichtefunktion auf den NAK-Zeitgeber, kann eine Situation geschaffen werden, in der von einer Population an Empfängern, die ein bestimmtes Paket nicht empfangen haben, einige wenige Systeme eine NAK relativ bald nach dem Zeitpunkt senden, an dem das Paket vermisst wird. So lange wie das System diese NAKs empfängt und mit den richtigen Paketen antwortet, werden Systeme, deren NAK-Zeitgeber tendenziell auf einen späteren Zeitpunkt eingestellt waren, das Paket empfangen, ehe ihre NAK-Zeitgeber abgelaufen sind. Wenn jedoch das Sendesystem die NAK nicht empfängt und mit der erneuten Übertragung des richtigen Paketes antwortet, dann werden relativ mehr Systeme eine NAK senden. Durch das Anpassen der Wahrscheinlichkeitsdichtefunktion auf die bestimmten Paketverlusteigenschaften des Netzwerkes, kann ein Leistung, die sich dem Idealfall annähert, erzielt werden.
  • Wenn die Wahrscheinlichkeitsdichtefunktion für die NAK-Zeitgeber erstellt werden, müssen verschiedene Faktoren berücksichtigt werden. Diese Faktoren können wie folgt zusammengefasst werden:
    • 1. Die Wahrscheinlichkeitsdichtefunktion sollte ein ziemlich scharf umrissener Eckbereich in der Nähe des gewünschten Mindestwertes haben, um einen endgültigen Trennungspunkt für den Mindestwert des Zeitgebers bereitzustellen.
    • 2. Die Wahrscheinlichkeitsdichtefunktion für das untere Ende sollte mit zunehmender Netzwerkgröße verringert werden, so dass die Gesamtanzahl an Systemen, die zu einem frühen Zeitpunkt NAKs senden, relativ unabhängig von der Netzwerkgröße ist.
    • 3. Die Wahrscheinlichkeitsverteilung der Wahrscheinlichkeitsdichtefunktion sollte es höchst wahrscheinlich machen, dass einige wenige Systeme zu einem relativ frühen Zeitpunkt NAKs senden.
    • 4. Die Wahrscheinlichkeitsdichtefunktion sollte relativ unempfindlich gegenüber den Mindest- und Höchst-NAK-Wartezeiten sein, so dass die Wahrscheinlichkeit, dass eine NAK durch ein bestimmtes System gesendet wird, relativ unverändert als ein Prozentsatz bleibt, wenn die Mindest-NAK-Wartezeit und die Höchst-NAK-Wartezeit angepasst werden.
    • 5. Die Wahrscheinlichkeitsdichtefunktion sollte die Wahrscheinlichkeit, für das Senden der NAKs erhöhen, wenn die Paketverlustrate ansteigt, so dass eine größere Anzahl an NAKs gesendet wird, wenn die Paketverlustrate hoch ist.
  • Der Bereich der stochastischen Prozesse bieten einen ergiebigen Hintergrund für das Auswählen einer angemessenen Wahrscheinlichkeitsdichtefunktion, und viele werden davon für den Zweck der vorliegenden Erfindung ausreichend sein. In einem Ausführungsbeispiel der vorliegenden Erfindung wird die Wahrscheinlichkeitsdichtefunktion so erstellt, dass relativ wenige NAKs zwischen der Mindest-NAK-Wartezeit und kurz vor der Höchst-NAK-Wartezeit gesendet werden. Sehr kurz vor oder zu der Höchst-NAK-Wartezeit steigt die Wahrscheinlichkeitsdichtefunktion jedoch dramatisch an. Solch eine Wahrscheinlichkeitsdichtefunktion kann durch Ausführen der folgenden Schritte erreicht werden:
    • 1. Erzeugen einer pseudozufälligen Nummer zwischen einem bestimmen Mindest- und Höchstwert.
    • 2. Anwenden einer Verzerrungskurve wie beispielsweise eine Kurve der Form Y = Xn, um eine Wahrscheinlichkeitsdichtefunktion zu erstellen, die von der Verzerrungskurve abhängig ist.
    • 3. Skalieren der resultierenden Ausgabe der Kurve, um die Wahrscheinlichkeitsdichtefunktion relativ unempfindlich gegenüber Änderungen in der Anzahl von Systemen in dem Netzwerk und gegenüber den Mindest- und Höchstwerten für die NAK-Wartezeiten zu machen.
    • 4. Für jegliche Werte, die unter dem Mindestwert für die NAK-Wartezeit liegen, Hinzufügen des Mindestwertes für die NAK-Wartezeit zu der Menge, um sie über den gewünschten Mindestwert für die NAK-Wartezeit zu bringen.
    • 5. Für jegliche Werte, die über dem zulässigen Höchstwert für die NAK-Wartezeit liegen, Abziehen der Werte von dem zulässigen Höchstwert für die NAK-Wartezeit.
  • Die folgenden Gleichungen beschreiben die Mathematik für die oben genannten Schritte. Der erste Schritt wird zum Erzeugen einer einheitlichen Zufallsnummer, R, durchgeführt, so dass R zwischen einem Mindestwert Rmin und einem Höchstwert Rmax liegt. In einem Ausführungsbeispiel der vorliegenden Erfindung werden Rmin = 0 und Rmax durch die folgende Gleichung ausgedrückt:
    Figure 00440001
    Wobei:
  • M
    die Anzahl von Systemen ist; und
    Lp
    die Paketverlustrate ist.
  • Die Paketverlustrate ist ein Größenwert, der den prozentualen Anteil an verlorengegangen Paketen wiedergibt. Durch Prüfen der Informationen, die einem bestimmten Empfänger zur Verfügung stehen, weiß der Empfänger, wie viele Pakete empfangen wurden, und der Empfänger weiß auch, wie viele NAKs gesendet wurden, um die Pakete anzufordern, die als fehlend identifiziert wurden. Dementsprechend kann ein grober Messwert der Paketverlustrate berechnet werden, indem die Anzahl der gesendeten NAKs durch die Anzahl der empfangenen Pakete dividiert wird. Eine bessere Vorhersage der Paketverlustrate kann durch Dividieren der Gesamtanzahl an gesendeten NAKs mit einer Summe aus der Anzahl von empfangen Paketen und der Anzahl gesendeter NAKs erzielt werden. In einigen Ausführungsbeispielen kann es wünschenswert sein, die Paketverlustrate ungeachtet des berechneten Wertes auf angemessene Werte zu begrenzen. So kann es beispielsweise in einem Ausführungsbeispiel wünschenswert sein, die Paketverlustrate auf einen Höchstwert von 1 und auf einen Mindestwert von 0,0001 zu begrenzen.
  • Wenn erst einmal eine angemessene einheitliche Zufallsnummer erhalten wurde, wird als nächster Schritt eine Verzerrungskurve angewendet und diese Verzerrungskurve skaliert. Eine skalierte Zeitverzögerung kann dementsprechend wie folgt ausgedrückt werden: Ts = SRn Wobei:
  • Ts
    die skalierte Zeitverzögerung ist,
    S
    ist der Skalierungsfaktor
    R
    ist die Zufallsnummer, die vorher erhalten wurde
    n
    ist die Leistung der angewendeten Kurve.
  • In der oben aufgeführten Gleichung wird eine Verzerrungskurve der Form Y = Xn verwendet, um die Zufallsnummern durch ein Erhöhen oder Reduzieren ihres Wertes zu verzerren und auf diese Weise die einheitliche Wahrscheinlichkeitsdichtefunktion zu modifizieren. Andere Verzerrungskurven mit einer anderen Form können ebenfalls verwendet werden. Durch Anpassen der Verzerrungskurve kann die bestimmte Form der resultierenden Wahrscheinlichkeitsdichtefunktion für ein bestimmtes Ausführungsbeispiel angepasst werden.
  • Um die Dichte der ursprünglichen Verteilung unabhängig von der Anzahl der in dem Netzwerk vorhandenen Systeme und die Mindest- und Höchstwerte für die Zeitgeber zu bewahren, kann der Skalierungsfaktor S mit Hilfe der folgenden Gleichung ausgewählt werden:
    Figure 00450001
    wobei:
  • S
    der Skalierungsfaktor für die obenstehende Gleichung ist;
    Rmax
    der vorher berechnete größtzulässige Zufallswert ist;
    Tmax
    der Höchstwert für den Zeitgeber ist; und
    M
    die Anzahl der Systeme ist.
  • Da wir einen Zeitgeberwert benötigen, der größer als der kleinstzulässige Zeitgeberwert ist, müssen Schritte unternommen werden, um sicherzustellen, dass der skalierte Zeitgeberwert Ts innerhalb des gewünschten Bereichs liegt.
  • Wenn dementsprechend Ts unter dem zulässigen Mindestwert für den Zeitgeber liegt, wird der zulässige Mindestwert für den Zeitgeber zu Ts hinzugefügt, um den Wert bis über den Mindestwert zu erhöhen. Mit anderen Worten ausgedrückt, bedeutet dies:
    Figure 00460001
    Wobei:
  • Tm
    der Zeitgeberwert ist, der garantiert über dem Mindestwert liegt;
    Ts
    der obenstehend berechnete skalierte Zeitgeberwert ist;
    Tmin
    der kleinstzulässige Zeitgeberwert ist.
  • In der oben aufgeführten Gleichung ist es wünschenswert, Tmin zu dem skalierten Zeitgeberwert zu addieren, wenn dieser geringer als der Mindestwert ist, anstatt einfach den skalierten Zeitgeberwert auf den Mindestwert zu trankieren. Das Trankieren des skalierten Zeitgeberwertes auf den Mindestwert würde zu einer unakzeptabel hohen Wahrscheinlichkeitsdichtefunktion an dem unteren Ende der Zeitgeberwerte führen. Das Addieren des Mindestwertes führt hingegen nicht zu solchen unerwünschten Auswirkungen. Schließlich können die oben aufgeführten Berechnungen dazu geführt haben, dass einige Werte über den höchstzulässigen Zeitgeberwerten liegen. Diese Werte können in den gewünschten Bereich gebracht werden, indem sie einfach auf den höchstzulässigen Zeitgeberwert begrenzt werden, wenn sie oberhalb des höchstzulässigen Zeitgeberwertes liegen. Dadurch wird die Wahrscheinlichkeitsdichtefunktion erhöht und ist folglich um den höchstzulässigen Zeitgeberwert herum angeordnet. Dies stellt jedoch deshalb kein Problem dar, da es wünschenswert ist, die Wahrscheinlichkeitsdichtefunktion in Richtung größere Werte zu beeinflussen. Dementsprechend wird der ausgewählte Zeitgeberwert, T, wie folgt ausgedrückt:
    Figure 00460002
    Wobei:
  • T
    der ausgewählte Zeitgeberwert ist
    Tm
    ist der Zeitgeberwert, der in der vorhergehenden obenstehenden Gleichung berechnet wurde
    Tmax
    ist der höchstzulässige Zeitgeberwert.
  • Unter nochmaliger Bezugnahme auf 8 wählt der NAK-Zeitgeber 152 dementsprechend einen NAK-Zeitgeberwert aus, wenn Pakete wie voranstehend diskutiert fehlen, und, bei Ablauf des NAK-Zeitgeberwertes sendet er eine NAK 154 zu dem Sendesystem 144, um das erneute Übertragen des richtigen Paketes anzufordern. Als Antwort auf die NAK 154 führt das Sendesystem 144 ein erneutes Übertragen des richtigen Paketes oder der Pakete, wie durch die erneute Paketübertragung 156 angezeigt, durch. Hierbei sollte beachtet werden, dass der NAK-Zeitgeber 152 einen Protokollstapel, beispielsweise einen wie den voranstehend in 3 illustrierten Protokollstapel, zum Übertragen der NAK 154 verwendet. Es ist auch möglich, dass der NAK-Zeitgeber 152 die voranstehend im Zusammenhang mit dem statistischen Betriebssicherheitsmodus der Übertragung beschriebenen Prinzipien anwendet, um die Wahrscheinlichkeit zu erhöhen, dass die NAK 154 an dem Sendesystem 144 ankommt. Mit anderen Worten bedeutet dies, dass die NAK 154 unter Anwendung der voranstehend beschriebenen Prinzipien in mehreren Paketen übertragen werden kann. Alternativ dazu kann die NAK 154 ein einziges Paket sein. In diesem Fall vergrößert die Statistik des NAK-Zeitgebers, die, wenn die ersten NAKs nicht empfangen werden, in mehreren Übertragungen des NAK-Paketes von verschiedenen Systemen aus resultiert, die Wahrscheinlichkeit, dass wenigstens eine NAK durch das Sendesystem 144 empfangen wird.
  • Wenn ein Paket in einer Nachricht empfangen wird, und die vollständige Nachricht noch nicht empfangen wurde, kann es immer vorkommen, dass der verbleibende Teil der Nachricht niemals empfangen wird. So kann beispielsweise vielleicht ein physisches Problem in dem Netzwerk auftreten, nachdem lediglich ein Teil der Nachricht empfangen wurde. In solch einer Situation besteht die Wahrscheinlichkeit, dass die vollständige Nachricht innerhalb eines angemessenen Zeitraumes empfangen wird praktisch überhaupt nicht. Demzufolge müssen Mechanismen eingesetzt werden, die eine teilweise empfangene Nachricht nach einem Zeitraum mit einer bestimmten Länge löschen, wenn der verbleibende Teil der Nachricht noch nicht empfangen wurde. Dementsprechend können Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Entfernen einer unvollständigen Nachricht umfassen. In 8 ist eine solche Vorrichtung beispielsweise durch einen Nachrichtenlebensdauer-Zeitgeber 158 illustriert. Wenn das erste Paket einer Nachricht empfangen wird, kann ein Zeitgeber eingestellt werden. Wenn vor Ablauf des Zeitgebers noch nicht die vollständige Nachricht empfangen wurde, kann der Nachrichtenlebensdauer-Zeitgeber 158 die teilweise empfangene Nachricht löschen und den von ihr belegten Platz wiederherstellen. Der Nachrichtenlebensdauer-Zeitgeber 158 kann für das Kommunizieren mit dem Empfänger 148 verantwortlich sein, um zu erfassen, wenn das erste Paket einer neuen Nachricht empfangen wurde. Alternativ dazu kann der Nachrichtenlebensdauer-Zeitgeber 158 die Nachrichten-Empfangs-Liste 150 auf neue Einträge hin überprüfen, die erstellt werden, wenn ein Paket zum ersten Mal für einen neue Nachricht empfangen wurde. Als ein weiteres alternatives Beispiel dazu kann der Empfänger 148 auch für das Einstellen des Anfangswertes des Zeitgebers sein, währenddessen der Nachrichtenlebensdauer-Zeitgeber 158 für das Entfernen von jeglichen unvollständigen Nachrichten, deren Zeitgeber abgelaufen ist, verantwortlich sein kann. Die genaue Umsetzung hängt von verschiedenen Entscheidungen hinsichtlich des Designs ab.
  • Die Funktionsweise des Zeitgebers, der die Lebensdauer von Nachrichten bestimmt, kann auf unterschiedliche Art und Weise durchgeführt werden. So wird der Zeitgeber in einem Ausführungsbeispiel beispielsweise anfänglich bei Empfang des ersten Paketes einer Nachricht eingestellt. Hierbei ist zu beachten, dass dieses erste Paket nicht automatisch auch das erste Paket in der Reihenfolge der Nachricht ist. Es handelt sich lediglich um das erste Paket, das durch einen bestimmten Empfänger empfangen wurde, ungeachtet der Paketsequenznummer. Der Wert des Zeitgebers kann auf eine bestimmte Länge an Zeit so eingestellt werden, dass, wenn die Nachricht nicht innerhalb des Zeitraumes mit dieser bestimmten Länge empfangen wurde, die Nachricht gelöscht wird. Alternativ dazu kann der Zeitgeber auf einen kleineren Wert eingestellt werden, der die Zeitlänge bis hin zu dem Zeitpunkt repräsentiert, an dem das nächste Paket erwartet wird. Wenn ein Paket innerhalb des festgelegten Zeitraumes empfangen wird, wird der Zeitgeberwert erneut eingestellt. Anderenfalls wird die Nachricht gelöscht. In dem ersten Verfahren repräsentiert der Zeitgeberwert schlicht die maximal zulässige Zeit, in der eine Nachricht empfangen werden muss. Bei dem zweiten Ansatz kann, so lange wie noch Pakete empfangen werden, der Zeitraum verlängert werden, in der Hoffung, dass ein weiteres Paket empfangen wird. In einem weiteren Ausführungsbeispiel können auch Kombinationen der beiden Ansätze verwendet werden. Mit anderen Worten bedeu tet dies, dass, so lange Pakete empfangen werden, der Zeitgeber neu eingestellt werden kann, es jedoch nicht zulässig ist, dass die Gesamtzeit einen Höchstwert übersteigt. Dieser Ansatz kann mit einem oder zwei Zeitgebern umgesetzt werden. Wie die Zeitgeber konkret gehandhabt werden, hängt von verschiedenen Überlegungen hinsichtlich des Designs ab.
  • Wenn eine Nachricht vollständig empfangen wurde, kann der Empfänger 148 ein Nachricht-Vollständig-Empfangen-Flag in die entsprechende Nachrichten-Empfangsliste 150 einfügen. Dies kann zum Beispiel ein Signal an eine andere Komponente wie beispielsweise ein Nachrichtenbearbeitungsprogramm 160 sein, wobei das Signal besagt, dass die Nachricht vollständig empfangen wurde und nun zu der geeigneten Anwendung wie beispielsweise Anwendung 142 übertragen werden sollte. Dementsprechend ist das in 8 dargestellte Nachrichtenbearbeitungsprogramm 160 ein Beispiel einer Vorrichtung zum Übertragen einer empfangenen Nachricht zu dem geeigneten Zielort. Alternativ dazu kann ein Signal einfach zu der geeigneten Anwendung gesendet werden, die ihrerseits die Nachricht direkt von dem Nachrichtenpuffer abruft.
  • Hierbei sollte beachtet werden, dass durch das Protokoll der vorliegenden Erfindung sichergestellt wird, dass Antworten zurück zu dem Sendesystem 144 gesendet werden. Demzufolge kann es möglich sein, dass, wenn eine Nachricht erst einmal durch die Anwendung 142 empfangen wurde, diese eine Antwort zurück zu dem Sendesystem 144 senden möchte. Dementsprechend kann jeder Empfänger eine Vorrichtung zum Übertragen der entsprechenden Antworten umfassen. Solche Vorrichtungen können die voranstehend beschriebenen Strukturen verwenden, um Informationen in dem statistischen Betriebssicherheitsmodus und in dem nachfolgend beschriebenen positiven Betriebssicherheitsmodus zu übertragen. Mit anderen Worten bedeutet dies, dass ein Empfänger nicht nur die Strukturen, die in 8 dargestellt sind, integrieren kann, sondern auch die Strukturen und Verarbeitungsschritte ausführen kann, die mit einem Sendesystem, wie beispielsweise dem in den 6 und 7 dargestellten und dem nachfolgend im Zusammenhang mit dem positiven Betriebssicherheitsmodus beschriebenen, assoziiert sind. Ein beliebiges System in dem Netzwerk kann mehrmals sowohl ein Sendesystem als auch ein Empfangssystem sein und die jeweils angemessenen Funktionen ausführen, um diese Rollen umzusetzen.
  • In Bezug auf 9 wird im Folgenden ein Ablaufplan beschrieben, der die durch ein Ausführungsbeispiel eines Empfangssystems durchgeführten Verarbeitungsschritte zum Empfangen einer Nachricht und zum Übertragen der Nachricht zu einer Anwendung darstellt. In 9 wurden keinerlei Anstrengungen unternommen, die Funktionen je nach den in 8 dargestellten Elementen zu trennen (zum Beispiel Empfänger 148, NAK-Zeitgeber 152, Nachrichtenlebensdauer-Zeitgeber 158 und Nachrichtenverarbeitungsprogramm 160). Das Augenmerk liegt hier vielmehr darauf, wie die Funktionen, die in die Elemente integriert werden, ausgeführt werden. Dennoch wird im Verlauf der Diskussion von 9 eine mögliche Zuteilung der Funktionen dargestellt.
  • Nach dem Beginn in Schritt 162 werden Überprüfungen hinsichtlich dem Ablaufen der drei relevanten Zeitgeber für eine bestimmte Nachricht dahingehend vorgenommen, ob diese Zeitgeber auch funktionieren. Das heißt, in Schritt 164 wird überprüft, ob der NAK-Wartezeitgeber, in Schritt 168 wird überprüft, ob der Empfangs-Wartezeitgeber und in Schritt 170 wird überprüft, ob der MSG-[Nachrichten]Lebensdauer-Zeitgeber abgelaufen ist. Wie voranstehend im Zusammenhang mit 8 beschrieben, kann die Überprüfung an dem NAK-Wartezeitgeber durch den NAK-Zeitgeber 152 durchgeführt werden, während die Überprüfungen an dem Empfangs-Wartezeitgeber und an dem Nachrichtenlebensdauer-Zeitgeber durch den Nachrichtenlebensdauer-Zeitgeber 158 durchgeführt werden können.
  • Wenn der NAK-Wartezeitgeber in Schritt 164 abgelaufen ist, wird in Schritt 172 eine NAK für dieses bestimmte Paket gesendet. Wie voranstehend beschrieben, arbeitet der NAK-Wartezeitgeber, um mehrere NAKs, die für dasselbe Paket von verschiedenen Systemen ankommen, zu staffeln. Dadurch wird die Blockierung im Netzwerk reduziert und die Gesamtzahl an NAKs verringert. Wenn der Empfangs-Wartezeitgeber in Schritt 168 abgelaufen ist, zeigt dies an, dass ein Paket längst „überfällig" ist und unerwarteterweise spät ist. Der NAK-Wartezeitgeber wird in Schritt 194 gestartet, und wenn das Paket nicht durch die ursprüngliche Übertragung oder durch die erneute Übertragung vor Ablauf des NAK-Wartezeitgebers empfangen wird, wird schließlich eine NAK gesendet. Der Wert des NAK-Wartezeitgebers kann mit einer angemessenen Wahrscheinlichkeitsdichtefunktion, wie voranstehend beschrieben, ausgewählt werden. Wenn der MSG-[Nachrichten]Lebensdauer-Zeitgeber in Schritt 170 abgelaufen ist, ist zu viel Zeit verstrichen, um alle Pakete zu empfangen und somit die Nachricht anzuordnen, folglich wird angezeigt, dass ein Fehler in irgendeiner Form aufgetreten ist. Es kann zu Umständen kommen, in denen ein Paket trotz Sendens von NAKs niemals an die empfangende Seite ausgeliefert werden kann. Die Fehleranzeige wird in Schritt 174 durchgeführt, ehe der Prozess zurück zum oberen Teil kehrt, um die Ankunft weiterer Pakete oder das Ablaufen eines Zeitgebers zu erwarten. Wie voranstehend bereits erwähnt, umfasst das Durchführen der Fehlerbearbeitung im Allgemeinen das Entfernen jeglicher teilweise empfangenen Nachrichten, aber es kann auch solche Schritte wie das Senden einer Benachrichtigung über einen erfolglosen Empfang zu einer geeigneten Fehlerprotokollierungseinrichtung oder einer anderen geeigneten Einrichtung umfassen.
  • In Schritt 178 wartet das Empfangssystem auf Pakete ebenso wie auf das Ablaufen der Zeitgeber (wie durch den mit gepunkteter Linie gezeichneten Kasten dargestellt). Sobald die Pakete in Schritt 178 empfangen werden, werden sie in einem Zwischenspeicher wie beispielsweise der Nachrichten-Empfangsliste 150 aus 8 abgelegt, um die eigentliche Datennachricht dann in Schritt 180 neu zusammenzustellen. Wenn dieses Paket, wie dies im Abfrageblock 182 bestimmt wird, auch das erste empfangene Paket für eine neue Nachricht ist (ungeachtet der Paketsequenznummer), wird in Schritt 184 der MSG-[Nachrichten]Lebensdauer-Zeitgeber gestartet. Der Empfang und das Platzieren von Paketen in einen geeigneten Zwischenspeicher kann durch den Empfänger 148 aus 8 durchgeführt werden. Das Einstellen des MSG-[Nachrichten]Lebensdauer-Zeitgebers in den Schritten 182 und 184 kann entweder durch den Empfänger 148 oder dem MSG-[Nachrichten]Lebensdauer-Zeitgeber 158 aus 8, je nach der genauen Umsetzung, durchgeführt werden.
  • Da ein Paket gerade erst empfangen wurde, wird der Empfangs-Wartezeitgeber in Schritt 186 neu eingestellt. Wie voranstehend beschrieben, ermöglicht der Empfangs-Wartezeitgeber ein Zeitintervall für das erwartet wird, dass Pakete innerhalb diesem Intervall von dem Sendesystem ankommen, nachdem eine Nachricht gestartet wurde. Dieses Intervall kann auf dem Algorithmus zum Regulieren der Geschwindigkeit basieren, so dass die zwei kooperieren und somit verhindern, dass übermäßig viele NAKs auftreten, die vorhanden sein können, wenn die Netzwerkleistung bereits so verschlechtert ist, dass der Algorithmus zum Regulieren der Geschwindigkeit die Zeiten zwischen den Paketen in die Länge zieht, die eventuell den Wert des Empfangs-Zeitgeberintervalls übersteigen. Dieser Schritt kann auch durch entweder den Empfän ger 148 oder den Nachrichtenlebensdauer-Zeitgeber 158, je nach der Umsetzung, durchgeführt werden. Wenn der Empfang des Paketes die Notwendigkeit des Sendens einer NAK beseitigt hat, wird der Betrieb des entsprechenden NAK-Wartezeitgebers auch in Schritt 186 abgebrochen.
  • In dem Abfrageblock 188 bestimmt das Empfangssystem, ob sich das Paket außerhalb der sequentiellen Reihenfolge befindet. Wenn dies nicht der Fall ist, wird in dem Abfrageblock 190 eine Festlegung getroffen, ob die Nachricht vollständig ist. Wenn die Nachricht nicht vollständig empfangen wurde, kehrt der Prozess zurück zu dem Schritt des Wartens auf das Ablaufen der Zeitgeber oder der Ankunft weiterer Pakete. Wenn anderenfalls die Nachricht, wie in dem Abfrageblock 190 festgelegt wird, erst einmal vollständig ist, wird die vollständige Nachricht in Schritt 192 zu der Anwendung übertragen, ehe der Prozess zurück zu dem oberen Schritt des Wartens auf das Ablaufen der Zeitgeber oder der Ankunft weiterer Pakete kehrt. Der in dem Abfrageblock 188 durchgeführte Test, ob Pakete nicht der Reihenfolge entsprechen, wird durch den Empfänger 148 durchgeführt, während der Test, ob die Nachricht vollständig ist, durch entweder den Empfänger 148 oder das Nachrichtenbearbeitungsprogramm 160 oder durch beide zusammen durchgeführt werden kann. Wenn eine Nachricht beispielsweise vollständig ist, kann der Empfänger 148 das Nachricht-Vollständig-Flag einstellen, das dem Nachrichtenverarbeitungsprogramm 160 signalisiert, die Nachricht zu der Anwendung weiterzuleiten.
  • Wenn ein Paket, wie in dem Abfrageblock 188 festgelegt wird, „übersprungen" wurde, kann es sein, dass das Paket verlorengegangen oder abgelegt worden ist, wodurch das Senden einer NAK erforderlich wird. Aus diesem Grund wird der NAK-Wartezeitgeber in Schritt 194 in einer voranstehend beschriebenen Art und Weise für das übersprungene Paket eingestellt.
  • Obgleich das Ausführungsbeispiel in 9 separate Empfangs-Wartezeitgeber und NAK-Wartezeitgeber verwendet, kann die Wirkung beider Arten von Zeitgebern auch durch das Verwenden von lediglich den NAK-Zeitgebern erzielt werden. Dies kann verdeutlicht werden, indem die Wirkung der Empfangs-Wartezeitgeber in 9 überprüft wird. Die Empfangs-Wartezeitgeber fügen eine unveränderliche Wartezeit zu dem NAK-Wartezeitgeber in dem Fall hinzu, in dem ein erwartetes Paket nicht ankommt. Dieselbe Wirkung kann auch erzielt werden, wenn ein NAK-Wartezeitgeber immer dann eingestellt wird, wenn ein Paket empfangen wird, wobei der NAK-Wartezeitgeber einen Mindestwert hat, der der gewünschten Empfangswartezeit plus dem regulären Mindestwert des NAK-Wartezeitgebers entspricht. Wird ein Paket außerhalb der Reihenfolge empfangen, ist der NAK-Wartezeitgeber immer noch mit dem regulären Mindestwert des NAK-Wartezeitgebers eingestellt.
  • In bestimmten Situationen ist die durch den statistischen Betriebssicherheitsmodus der vorliegenden Erfindung gewährleistete Betriebssicherheit nicht ausreichend, und es ist hundertprozentig garantierte Betriebssicherheit erforderlich. In solch einer Situation kann die vorliegende Erfindung in einem positiven Betriebssicherheitsmodus arbeiten. Der positive Betriebssicherheitsmodus führt zusätzliche Verarbeitungsschritte und Funktionen, die über die des statistischen Betriebssicherheitsmodus hinausgehen, durch, um den Empfang durch jeden beabsichtigten Empfänger der Nachricht zu garantieren, der in der Lage ist, Nachrichtenpakete zu empfangen. Der positive Betriebssicherheitsmodus ist in der Lage, jegliche beabsichtigte Empfänger zu identifizieren, die die Nachricht nicht empfangen haben, so dass ein erneutes Übertragen zu jenen beabsichtigten Empfängern durchgeführt werden kann. Die folgende Beschreibung legt das Augenmerk auf den positiven Betriebssicherheitsmodus der vorliegenden Erfindung. Hierbei sollte beachtet werden, dass die Ausführungsbeispiele innerhalb des Umfangs dieser Erfindung zwischen dem positiven Betriebssicherheitsmodus und dem statistischen Betriebssicherheitsmodus auf einer Nachricht-pro-Nachricht-Basis durch eine Anwendung, oder auf einer pro-Sender- beziehungsweise einer pro-Ort-Basis durch das Systemmanagement umschalten kann. Dementsprechend ist in Ausführungsbeispielen, in denen es wünschenswert ist, sowohl den statistischen Betriebssicherheitsmodus als auch den positiven Betriebssicherheitsmodus bereitzustellen, notwendig, dass die zusätzlichen Funktionen für den positiven Betriebssicherheitsmodus integriert werden.
  • Die Übertragung in dem positiven Betriebssicherheitsmodus wird im Großen und Ganzen genau so, wie voranstehend im Zusammenhang mit dem statistischen Betriebssicherheitsmodus beschrieben, jedoch mit einigen wichtigen Zusatzschritten durchgeführt. Im Allgemeinen erstellt das Sendesystem eine Übertragungs-Liste (TList) von sämtlichen beabsichtigten Empfängern. Die zu sendende Nachricht wird anschließend in Pakete für die Übertragung aufgeteilt, wobei zusätzliche Pakete hinzugefügt werden, um die erforderliche Mindestanzahl wie voranstehend beschrieben zu erreichen. Um eine positive Rückmeldung hinsichtlich des Empfangs der Pakete durch bestimmte beabsichtigte Empfänger zu gewährleisten, wird aller N Pakete ein Flag eingestellt, das eine Rückmeldung zum Empfang diesen Paketes anfordert. Die Anzahl an Paketen zwischen den Paketen, die ein Flag mit einer angeforderten Rückmeldung eingestellt haben, wird als ACK-Fenster oder Übertragungsfenster bezeichnet. In dieser Anwendung werden diese zwei Begriffe untereinander austauschbar verwendet. Wenn Pakete durch einen beabsichtigten Empfänger empfangen werden, wird, wenn das Flag mit angeforderter ACK eingestellt ist, eine ACK zu dem Sendesystem zurückgesendet. Mit den fehlenden Paketen wird unter Anwendung der voranstehend beschriebenen NAK-Schritte verfahren. Das Sendesystem horcht sowohl nach ACKs als auch nach NAKs und verfolgt, welche Systeme eine positive Rückmeldung zu allen Paketen gesendet haben, die das Flag mit einer angeforderten ACK eingestellt haben. Wenn das Sendesystem Pakete findet, zu denen keine Rückmeldung erfolgte, werden diese Pakete erneut zu den Systemen gesendet, die noch keine Rückmeldung zurückgesendet haben. Das Sendesystem verarbeitet empfangene NAKs in der voranstehend beschriebenen Art und Weise.
  • In Bezug auf 10 wird im Folgenden ein strukturelles Diagramm eines Ausführungsbeispiels beschrieben, das den positiven Betriebssicherheitsmodus ausführt. Hierbei ist zu beachten, dass es Ähnlichkeiten zwischen der 10 und der 6 gibt. Darüber hinaus arbeiten der Sender 108 und die NAK-Empfangsvorrichtung 118 im Wesentlichen in der gleichen Art und Weise wie voranstehend in 6 beschrieben. Jegliche Änderungen sind nachfolgend aufgeführt. Die zusätzlich in dem positiven Betriebssicherheitsmodus integrierten Funktionen sind in 10 durch die schattierten Blöcke dargestellt. Die Funktionsblöcke aus 10 können unter Verwendung separater Threads oder in einer beliebigen anderen Art und Weise ausgeführt werden.
  • In 10 umfasst das Sendesystem 196 eine Vielzahl von Funktionseinheiten. Die Nachricht 106, die von einer Anwendung oder einer anderen Quelle empfangen wird, wird durch den Sender 108 in die benötigte Anzahl von Übertragungspaketen aufgeteilt. Wie voranstehend beschrieben, werden, wenn die Anzahl der Pakete unter der benötigten Mindestanzahl liegt, zusätzliche Auffüll-Pakete hinzugefügt, bis die erforderliche Mindestanzahl erreicht ist. Der Sender 108 überträgt anschließend die Pakete 110 über das Netzwerk 112 zu den beabsichtigten Empfängern 114. Der Sender 108 kann die voranstehend beschriebenen Verfahren zum Regulieren der Geschwindigkeit anwenden. Empfänger, die wenigstens ein, aber weniger als alle der Pakete einer Nachricht empfangen, erzeugen eine NAK wie beispielsweise eine NAK 116, die die erneute Übertragung der fehlenden Pakete anfordert. Die NAK 116 wird durch die NAK-Empfangseinrichtung 118 empfangen, und in Reaktion darauf wird das entsprechende Paket 120 erneut übertragen. Alle Schritte können so wie voranstehend beschrieben durchgeführt werden.
  • In dem positiven Betriebssicherheitsmodus kann die Funktionsweise des Senders 108 ein wenig dahingehend modifiziert werden, dass er leicht abgeänderte Pakete für die Übertragung zu den Empfängern erzeugt. Wie voranstehend im Zusammenhang mit dem statistischen Betriebssicherheitsmodus beschrieben, werden die Pakete in dem Paketsequenznummern-Feld sequentiell durchnummeriert, beginnend mit Eins. Darüber hinaus wird jedoch auch das Flag mit angeforderter ACK bei jedem Nten Paket eingestellt. Wie voranstehend in Tabelle 3 beschrieben, erzeugt, wenn das Flag mit angeforderter ACK in einem Paket eingestellt wird, der Empfänger eine Rückmeldung oder eine ACK und überträgt die ACK zurück zu dem Sendesystem. Die Anzahl von Paketen zwischen den Paketen die ein Flag mit angeforderter ACK eingestellt haben, wird als Übertagungsfenster oder ACK-Fenster beschrieben. Dadurch weiß das Sendesystem 196 mit Sicherheit, dass alle der Pakete des ACK-Fensters empfangen wurden. Darüber hinaus hat, wenn der positive Betriebssicherheitsmodus verwendet wird, das letzte Paket der Nachricht das Flag mit angeforderter ACK eingestellt.
  • Vor der Übertragung wird eine Übertragungsliste beziehungsweise eine TList erstellt, die die beabsichtigten Empfänger der Nachricht enthält. In 10 wird dies durch die Übertragungsliste 198 dargestellt. Die Übertragungsliste 198 ist ein Beispiel einer Vorrichtung zum Verfolgen des Empfangs von Nachrichten durch beabsichtigte Empfänger. In einem Ausführungsbeispiel wird eine Übertragungsliste für jede Nachricht erstellt, die in dem positiven Betriebssicherheitsmodus gesendet wird. In einem Ausführungsbeispiel umfasst die Liste die Nachrichtennummer, eine Zeigevorrichtung zu dem Anfang des Nachrichtenpuffers, und, für jeden Empfänger, die UDP-Adresse des Empfängers, ein Übertragungslisten-Antwortbit, ein Übertragungsfenster-Bitmap und einen Zeitstempel der zuletzt empfangenen ACK oder NAK. So wie dies der Fall für andere hierin offenbarte Adressen der Fall ist, kann die UDP-Adresse eines jeden Empfängers eine IP- Adresse und eine UDP-Anschlussnummer umfassen. Das Übertragungslisten-Antwortbit wird auf „wahr" eingestellt, wenn die Nachricht eine Nachricht eines Typs ist, bei der die Antwort angefordert wird und die Antwort vollständig empfangen wurde. Das Übertragungsfenster-Bitmap enthält einen ACK-Bit und einen ACK/NAK-Zeitstempel für jedes Übertragungsfenster in der Nachricht. Die Übertragungsliste 198 kann durch den Sender 108 oder durch andere Komponenten in dem System erstellt werden.
  • Wenn die Empfänger 114 ein Paket mit dem eingestellten Flag mit angeforderter ACK empfängt, erzeugen die Empfänger 114 eine ACK 198 und senden diese zu dem Sendesystem 196. Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung können dementsprechend Vorrichtung zum Empfangen von Rückmeldungen umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, wird eine solche Vorrichtung durch die ACK-Empfangsvorrichtung 200 dargestellt. Die ACK-Empfangsvorrichtung 200 empfängt die ACK 198 und aktualisiert die Übertragungsliste 198 entsprechend der empfangenen ACKs. Mit anderen Worten bedeutet dies, dass wenn eine ACK empfangen wird, aktualisiert die ACK-Empfangsvorrichtung 200 das Übertragungsfenster-Bitmap durch Einstellen des entsprechenden ACK-Bits und des ACK/NAK-Zeitstempels. Darüber hinaus aktualisiert die ACK-Empfangsvorrichtung 200 das Feld, das die Zeitstempel der zuletzt empfangenen ACK oder NAK verfolgt. Demzufolge ist die ACK-Empfangsvorrichtung 200 auch ein Beispiel einer Vorrichtung zum Aktualisieren der Übertragungsliste.
  • Der Zweck des Verfolgens empfangener ACKs besteht darin, beabsichtigte Empfänger zu identifizieren, die das Rückmeldungs-Anforderungs-Paket nicht empfangen haben. Die Übertragungsliste 198 kann in regelmäßigen Abständen überprüft werden, und Empfänger, die keine Rückmeldung zu den entsprechenden Paketen erzeugt haben, können identifiziert werden. Die entsprechenden Pakete können anschließen erneut zu den beabsichtigten Empfängern übertragen werden. Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung können aus diesem Grund Vorrichtungen zum Identifizieren von Empfängern, die keine Rückmeldung zum Empfang von Paketen erzeugt haben, sowie Vorrichtungen zum erneuten Übertragen der Pakete umfassen. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, werden in 10 beide diese Vorrichtungen durch die Sendungs-Überprüfungsvorrichtung 202 dargestellt. Die Sendungs-Überprüfungsvorrichtung 202 scannt die Übertragungsliste 198 nach Einträgen in den Übertragungsfenster-Bitmaps, die einen ACK/NAK-Zeitstempel von Null haben. Wenn ein Übertragungsfenster ohne Rückmeldung erfasst wird, wird das Paket mit angeforderter Rückmeldung des Übertragungsfensters (das letzte Paket im Fenster) zu der UDP-Adresse des beabsichtigten Empfängers übertragen.
  • Es können verschiedene Regelungen dazu, wie oft die Sendungs-Überprüfungsvorrichtung 202 die Übertragungsliste 198 scannen soll, festgelegt werden. So beginnt beispielsweise in einem Ausführungsbeispiel die Sendungs-Überprüfungsvorrichtung 202 mit dem Scannen der Übertragungsliste 198, nachdem ein ausreichend langer Zeitraum verstrichen ist, an dessen Ende die Rücksendung einer ACK erwartet wird. Dieser Zeitverzug wird im Allgemeinen auf Basis der erwarteten Ausbreitungsverzögerung in dem Netzwerk eingestellt, also die Zeit, die für das Verarbeiten der Pakete in dem Empfangssystem benötigt wird, und die Ausbreitungsverzögerung bei dem Zurückkehren der ACK zu dem Sendesystem. Da darüber hinaus das Flag mit angeforderter ACK nur einmal für jedes Übertragungsfenster eingestellt wird, kann es wünschenswert sein, den Wert für die Verzögerung von wenigstens einem Übertragungsfenster zu dem erwarteten Wert hinzuzufügen. Darüber hinaus kann es wünschenswert sein, die Ausgabe der aktuellen Geschwindigkeitsregulierung zu berücksichtigten, da sie die Übertragungsrate der Pakete beeinflusst. Wenn der Thread der Sendungs-Überprüfungsvorrichtung 202 die Übertragungsliste 198 erst einmal gescannt hat, sollte die Vorrichtung die Liste auch in regelmäßigen Abständen erneut scannen. In einem Ausführungsbeispiel wird die Überragungsliste 198 mit der Frequenz der Halbzeiten der erwarteten ACK-Verzögerungszeit gescannt.
  • Da die Informationen in der Übertragungsliste 198 lediglich bis zum Empfang der Nachricht bereitgestellt werden, können Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Entleeren von Speicherplatz umfassen, der nicht länger von der Übertragungsliste 198 benötigt wird. In 10 ist eine solche Vorrichtung im Sinne eines Beispiels durch die Speicherplatz-Wiederherstellungsvorrichtung 204 dargestellt. Wenn durch alle Empfänger eine vollständige Rückmeldung zu einem Übertragungsfenster erfolgte, kann der Speicher, der sowohl für diesen Abschnitt des Nachrichtenpuffers als auch für den Eintrag in die Übertragungsliste für das Übertragungsfenster benötigt wurde, entleert werden. Mit anderen Worten bedeutet dies, dass wenn die entsprechenden ACK-Bits in dem Übertragungs fenster-Bitmap für sämtliche IP-Adressen eingestellt sind, die für das Empfangen der Nachricht identifiziert sind, kann der Speicher, der das Übertragungsfenster enthält, entleert werden und die Zeigevorrichtung zu dem Nachrichtenpuffer angepasst werden. Wenn die Nachricht erst einmal vollständig durch alle beabsichtigten Empfänger empfangen wurde, kann auch die Übertragungsliste entfernt werden. Verschiedene Ausführungsbeispiele der vorliegenden Erfindung können verschiedene Regeln für das Initiieren von Scans durch die Speicherplatz-Wiederherstellungsvorrichtung 204 anwenden. In einem Ausführungsbeispiel läuft die Speicherplatz-Wiederherstellungsvorrichtung 204 entsprechend dem gleichen Zeitplan wie die Sendungs-Überprüfungsvorrichtung 202. In anderen Ausführungsbeispielen können andere Zeitpläne angewendet werden.
  • In Bezug auf die 11A und 11B wird im Folgenden ein Ablaufplan beschrieben, der die durch das Sendesystem entsprechend der vorliegenden Erfindung durchgeführten Verarbeitungsschritte zum Senden einer Nachricht zu einem Empfangssystem darstellt. Nach dem Beginn in Schritt 206 in 11A erstellt das Sendesystem in Schritt 208 eine Übertragungsliste oder TList, so dass der ACK-Status für sämtliche Empfangsysteme verfolgt werden kann. Wie voranstehend beschrieben, wird eine „Verfolgungsliste" für jede übertragene Nachricht erstellt. Die Verfolgungsliste kann solche Informationen wie beispielsweise die Nachrichtennummer, eine Zeigevorrichtung zu dem Nachrichtenpuffer, und, für jeden Empfänger, die UDP-Adresse des Empfängers, einen Übertragungslisten-Antwortbit, ein Übertragungsfenster-Bitmap sowie den Zeitstempel der zuletzt empfangenen ACK oder NAK enthalten.
  • In Schritt 210 wird die Nachricht in die für die gewünschte Betriebssicherheit benötigte Mindestanzahl von Übertragungspaketen aufgeteilt. Dieser Schritt wird wie voranstehend beschrieben durchgeführt, wobei hierbei zusätzliche Pakete hinzugefügt werden, um gegebenenfalls die Mindestanzahl von Paketen zu erreichen. Diese Auffüll-Pakete, die nicht unbedingt notwendige Daten tragen, werden dazu verwendet, die Vollständigkeit der Nachricht in dem Empfangsystem zu bestimmen. Das letzte Paket hat das Letzte-Paket-Flag eingestellt, und jedes Paket besitzt eine unikale sequentielle Paketnummer.
  • Wenn die Pakete erstellt sind, stellt das Sendesystem das Flag mit angeforderter ACK für jedes Nte Paket ein. Das Intervall N wird auf Basis des gewünschten positiven Be triebssicherheitsmodus, bei dem kleinere Anzahlen weniger Netzverkehr erzeugen, aber gleichzeitig ein höheres Niveau an Betriebssicherheit gewährleistet wird, ausgewählt. Wenn dementsprechend das Flag mit angeforderter ACK für jedes Nte Paket eingestellt ist, ist ein Übertragungsfenster N Pakete lang.
  • Die Nachricht wird in Schritt 213 durch das Senden eines jeden Paketes in dem IP-Netz unter Verwendung der UDP-Multicast-Vorrichtung zu den festgelegten Empfangsystemen übertragen. Die Pakete werden in dem illustrativen Ausführungsbeispiel nicht alle zur gleichen Zeit oder so schnell wie möglich gesendet. Sie können entsprechend eines Algorithmus zum Regulieren der Geschwindigkeit, wie beispielsweise dem voranstehend beschriebenen, gesendet werden. Wie oben beschrieben, reduziert der Algorithmus zum Regulieren der Geschwindigkeit den Gesamtaufwand im Netzwerk, da er auf allgemeine Netzwerk-Paketfehlertrends reagiert und Pakete bei größeren Intervallen aussendet, wenn das Netzwerk auf einem niedrigeren Niveau arbeitet. Die Schritte 208, 210, 212 und 213 können durch den in 10 dargestellten Sender durchgeführt werden.
  • In Schritt 214 wartet das Sendesystem auf NAKs von den Empfangssystemen, so dass es jegliche fehlenden Pakete ebenso wie die ACKs von jedem Empfangssystem für jedes Nte empfangene Paket erneut übertragen kann. Das Horchen nach NAKs und das erneute Übertragen jeglicher Pakete kann durch die NAK-Empfangsvorrichtung 118 durchgeführt werden, während das Horchen nach ACKs durch die ACK-Empfangsvorrichtung 200 durchgeführt werden kann. Um den durch die erneute Übertragung verursachten Netzverkehr zu reduzieren, können Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Unterdrücken erneuter Paketübertragungen enthalten. Im Sinne eines Beispiels und nicht im restriktiven Sinne zu verstehen, ist in 11A einen solche Vorrichtung durch die Erneute-Übertragung-Suppresionsvorrichtung 215 dargestellt. Die Erneute-Übertragung-Suppresionsvorrichtung 215 reduziert die zwei Mal ausgeführte erneute Übertragung desselben Paketes, wenn innerhalb eines festgelegten Zeitraumes zwei NAKs für dasselbe Paket empfangen werden. In dem Abfrageblock 216 wird ein Test durchgeführt, um zu sehen, ob ein Suppressions-Zeitgeber für dieses Paket läuft. Wenn dies der Fall ist, wird das NAK ignoriert, da eine erneute Übertragung bereits vollzogen ist und das bestimmte Empfangssystem vielleicht bereits das fehlende Pakete empfangen hat oder es in Kürze empfangen wird. Auf diese Art und Weise werden zusätzliche erneute Über tragungen desselben Paketes verhindert, die typischerweise die Leistung des Netzwerkes verschlechtern.
  • Wenn der Suppressions-Zeitgeber nicht wie in dem Abfrageblock 216 bestimmt wird, läuft, wird in Schritt 218 ein solcher Zeitgeber gestartet, und das Paket wird in Schritt 220 erneut übertragen, auch dieses Mal unter Verwendung des UDP-Multicast. Die Multicast-Übertragung wird verwendet, damit alle Empfangssysteme, die eventuell vorher ein Paket verpasst haben, dieses Mal die Chance haben, es zu empfangen. Wie voranstehend im Zusammenhang mit der NAK-Suppressionsvorrichtung 130 in 7 beschrieben, kann die NAK-Suppressionsvorrichtung 215 zusammen mit den Verarbeitungsschritten des Empfangssystems zum Reduzieren der tatsächlichen Anzahl von erzeugten NAKs arbeiten. Der Schritt im Abfrageblock 216, Schritt 218 und Schritt 220 können durch die in 10 dargestellte NAK-Empfangsvorrichtung 215 durchgeführt werden.
  • Wenn in Schritt 214 eine ACK empfangen wird, führt das Sendesystem in Schritt 222 eine Markierung an dem entsprechenden Empfangssystem in der TList aus, die besagt, dass das entsprechende Paket positiv empfangen wurde. Hierbei handelt es sich um den Aktualisierungsverarbeitungsschritt, der, wie voranstehend beschrieben durch die ACK-Empfangsvorrichtung aus 10 durchgeführt wird. Wie in 11B dargestellt, scannt das Sendesystem in regelmäßigen Abständen die TList, um Empfangssysteme zu bestimmen, die eine ACK zu dem Empfang bestimmter Pakete hätten durchführen müssen. Dieser Vorgang wird durch den Schritt 226 dargestellt. Für diejenigen, die den Empfang nicht angemessen durch eine ACK bestätigt haben, führt das Sendesystem in Schritt 228 eine erneute Übertragung der entsprechenden Pakete durch. Die Schritte 226 und 228 können in der Sendungs-Überprüfungsvorrichtung 202 aus 10 durchgeführt werden.
  • In Bezug auf 12 werden im Folgenden die Details eines für die Verwendung geeigneten Empfangssystems beschrieben, wenn das positive Betriebssicherheitsprotokoll verwendet wird. In 12 wird angenommen, dass das Sendesystem 196 entsprechend dem voranstehend beschriebenen positiven Betriebssicherheitsmodus arbeitet. Die neuen Funktionen, die in einem Empfangssystem benötigt werden, wenn entsprechend einem positiven Betriebssicherheitsprotokoll gearbeitet wird, sind in 12 durch die schattierten Abschnitte dargestellt. Wie in 12 dargestellt, ist die einzige neue Funktion, die in dem Empfangssystem 234 hinzugefügt ist, die ACK-Übertragungseinrichtung 236. Wenn ein Paket, das das Flag mit angeforderter ACK eingestellt hat, empfangen wird, antwortet ein Empfangssystem mit einer ACK für dieses Paket. Demzufolge können Ausführungsbeispiele innerhalb des Umfangs der vorliegenden Erfindung Vorrichtungen zum Übertragen einer positiven Rückmeldung bereitstellen. In 12 ist eine solche Vorrichtung exemplarisch durch die ACK-Übertragungseinrichtung 236 dargestellt. Die ACK-Übertragungseinrichtung 236 ist verantwortlich für das Sicherstellen, dass eine ACK übertragen wird, wann immer ein Paket, das das Flag mit angeforderter ACK eingestellt hat, empfangen wird. In dem in 12 dargestellten Ausführungsbeispiel kann die ACK-Übertragungseinrichtung 236 eine Benachrichtigung von dem Empfänger 148 empfangen, dass ein Paket, das das Flag mit angeforderter ACK eingestellt hat, empfangen wurde, oder die ACK-Übertragungseinrichtung 236 kann in regelmäßigen Abständen Nachrichtenlisten 150 scannen, um die entsprechenden Pakete zu identifizieren. Abgesehen von diesem Unterschied arbeitet das Empfangssystem 234 wie voranstehend im Zusammenhang mit 8 beschrieben. Dies wird in 13 hervorgehoben, die ein Ablaufschema enthält, das dem in 9 dargestellten Ablaufschema ähnlich ist, welches die verschiedenen Verarbeitungsschritte für das Empfangssystem 234 illustriert. Hierbei ist zu beachten, dass der einzige Unterschied zwischen 13 und 9 der Abfrageblock 230 und der Schritt 232 ist, in dem erfasst wird, ob das Flag mit angeforderter ACK für ein bestimmtes Paket eingestellt ist, und, wenn dies der Fall ist, eine entsprechende Rückmeldung sendet. Der übrige Teil in 13 ist identisch mit dem in 9, und die Schritte sind dementsprechend durchnummeriert. Aus diesem Grund werden die verbleibenden Schritte zu diesem Zeitpunkt nicht noch einmal beschrieben.
  • Die vorliegende Erfindung kann auch in anderen bestimmten Formen ausgeführt werden. Die beschriebenen Ausführungsbeispiele sind in jederlei Hinsicht lediglich als Beispiele zu verstehen und nicht im restriktiven Sinne zu betrachten. Der Umfang der Erfindung ist aus diesem Grund eher durch die angehängten Ansprüche als durch die voranstehende Beschreibung definiert.

Claims (11)

  1. Verfahren zum effizienten und betriebssicheren Übertragen einer Datennachricht von einem Sendesystem (104, 144) zu wenigstens einem Empfangssystem (138) in einer Art und Weise, die den Netzverkehr minimiert, während eine hohe Betriebssicherheit erhalten bleibt, wobei das Sendesystem mit dem wenigstens einen Empfangssystem vernetzt ist, das Verfahren umfasst die folgenden Schritte: Aufteilen (124) der zu sendenden Nachricht in eine Vielzahl von Datenblöcken und Anordnen jedes Datenblocks in ein sequenziell gekennzeichnetes Übertragungspaket, Erkennen, ob die Nachricht eine Anzahl von Übertragungspaketen, die kleiner als eine definierte Mindestanzahl ist, füllt, und falls dies der Fall ist, Erzeugen von zusätzlichen sequenziell gekennzeichneten Übertragungspaketen, bis die definierte Mindestanzahl verfügbar ist, Auswählen einer Übertragungsrate, die beim Übertragen der Vielzahl von Datenblöcken zu verwenden ist, wobei die Übertragungsrate zwischen einem Mindest- und einem Höchstwert entsprechend einem Auswählverfahren ausgewählt wird, das einen Größenwert der Paketverlustrate in dem Netzwerk verwendet, um die Übertragungsrate so anzupassen, dass die Pakete so schnell wie möglich übertragen werden können, während die Auswirkungen des Übertragens der Pakete bei der Paketverlustrate des Netzwerkes minimiert werden, Übertragen (126) der sequenziell gekennzeichneten Übertragungspakete von dem Sendesystem zu dem wenigstens einen Empfangssystem mit der ausgewählten Übertragungsrate, Feststellen (164) in jedem Empfangssystem, das wenigstens eines der sequenziell gekennzeichneten Übertragungspakete empfängt, ob ein die Nachricht bildendes Übertragungspaket nicht empfangen wurde, und in Reaktion auf die Feststellung Senden (172) einer negativen Rückmeldung zu dem Sendesystem, die das nicht empfangene Paket identifiziert, so dass das nicht empfangene Paket erneut gesendet werden kann, wobei entweder das Sendesystem oder das Empfangssystem oder beide einen Algorithmus zum Regulieren der Anzahl der durch das Empfangssystem zu dem Sendesystem gesendeten negativen Rückmeldungen enthält, dadurch gekennzeichnet, dass das Auswählverfahren die Übertragungsrate teilweise basierend auf den Parametern des Algorithmus anpasst und die Übertragungsrate als eine gewichtete Summe einer Übertragungsrate, die entsprechend dem Auswählverfahren bei einer laufenden Iteration des Verfahrens berechnet wird, und einer Übertragungsrate, die entsprechend dem Auswählverfahren bei einer vorherigen Iteration des Verfahrens berechnet wurde, ausgewählt wird.
  2. Verfahren zum Übertragen einer Nachricht nach Anspruch 1, wobei das Auswählverfahren die Schritte des Messens einer die Paketverlustrate in dem Netzwerk anzeigenden Größe und das Feststellen, dass die Größe der aktuellen Paketverlustrate über oder unter einer Sollverlustrate ist, durch Subtrahieren der Sollverlustrate von der aktuellen Paketverlustrate, umfasst.
  3. Verfahren zum Übertragen einer Nachricht nach Anspruch 2, wobei die die Paketverlustrate anzeigende Größe ein Messwert für die Anzahl von Anforderungen für erneute Übertragungen von Paketen, die empfangen wurde, ist.
  4. Verfahren zum Übertragen einer Nachricht nach Anspruch 1, wobei das Auswählverfahren, das die Übertragungsrate auswählt, eine Übertragungsrate so auswählt, dass wenn der Größenwert der Paketverlustrate sich stetig verschlechternde Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate stetig nach unten anpasst, bis entweder der Mindestwert erreicht ist oder bis sich die Netzwerkbedingungen verbessern, wenn der Größenwert der Paketverlustrate sich stetig verbessernde Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate stetig nach oben anpasst, bis entweder der Höchstwert erreicht ist oder bis sich die Netzwerkbedingungen verschlechtern, wenn der Größenwert der Paketverlustrate entweder vorübergehende Verbesserung oder vorübergehende Verschlechterung der Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate unverändert lässt, wenn der Größenwert der Paketverlustrate einen stabilen Zustand anzeigt, in dem die Paketverlustrate über der Soll-Paketverlusthöchstrate ist, das Auswählverfahren die Übertragungsrate nach unten anpasst, bis der Mindestwert erreicht ist, und wenn der Größenwert der Paketverlustrate einen stabilen Zustand anzeigt, in dem die Paketverlustrate unter der Soll-Paketverlusthöchstrate ist, das Auswählverfahren die Übertragung nach oben anpasst, bis der Höchstwert erreicht ist.
  5. Verfahren zum Übertragen einer Nachricht nach Anspruch 1, wobei die Übertragungsrate durch wenigstens das Ausführen der folgenden Schritte ausgewählt wird: Messen einer die aktuelle Paketverlustrate in dem Netzwerk anzeigenden Größe, Subtrahieren der Größe von einer die Sollpaketverlustrate anzeigenden zweiten Größe und Vergleichen des resultierenden Wertes mit einem Schwellenwert und wenn der resultierende Wert unter dem Schwellenwert ist, dann Einstellen eines Differenzparameters auf null, andernfalls Einstellen des Differenzparameters auf den resultierenden Wert, Einstellen eines Ratenänderungsparameters gleich einem Basis-Ratenänderungswert, wenn der Differenzparameter null ist, andernfalls Einstellen des Ratenänderungsparameters gleich dem Negativ des Basis-Ratenänderungswertes multipliziert mit dem Differenzparameter, Berechnen einer Rohübertragungsrate für eine laufende Iteration des Verfahrens, die gleich der Summe des Ratenänderungsparameters und einer gewichteten Übertragungsrate, die bei einer vorherigen Iteration des Verfahrens berechnet wurde, ist, Auswählen, als die Übertragungsrate, einer gewichteten Summe der Rohübertragungsrate für die laufende Iteration des Verfahrens und einer Rohübertragungsrate bei der vorherigen Iteration des Verfahrens.
  6. Computerprogramm, Computerprogrammcodeeinrichtungen umfassend, die geeignet sind, die folgenden Schritte auszuführen, wenn sie auf einem Netzwerk betrieben werden, das ein Sendesystem, das mit wenigstens einem Empfangssystem vernetzt ist, umfasst, in dem Nachrichten von dem Sendesystem zu dem wenigstens einen Empfangssystem unter Verwendung von Übertragungspaketen gesendet werden, die ausgelegt sind, um eine zugewiesene Datenmenge zwischen einer Vielzahl von Systemen, die in einer Netzwerkkonfiguration miteinander verbunden sind, zu befördern: Unterteilen einer Nachricht in eine Vielzahl von sequenziell gekennzeichneten Übertragungspaketen, Erkennen, ob die Nachricht eine Anzahl von einzelnen Übertragungspaketen füllt, die kleiner als eine Mindestanzahl ist, und Hinzufügen zusätzlicher Übertragungspakete, wenn die Nachricht weniger als die Mindestanzahl von einzelnen Übertragungspaketen füllt, Auswählen einer Übertragungsrate zwischen einem Mindest- und einem Höchstwert entsprechend einem Auswählverfahren, das einen Größenwert der Paketverlustrate in dem Netzwerk verwendet, um die Übertragungsrate so anzupassen, dass die Pakete so schnell wie möglich übertragen werden, während die Auswirkungen des Übertragens der Pakete bei der Paketverlustrate des Netzwerkes minimiert werden, Senden der aus der Mindestanzahl von einzelnen Übertragungspaketen bestehenden Nachricht mit der gewählten Übertragungsrate, Feststellen, ob ein die Nachricht bildendes Übertragungspaket nicht empfangen wurde, und in Reaktion auf die Feststellung Senden einer negativen Rückmeldung an das Sendesystem, die das nicht empfangene Paket identifiziert, so dass das nicht empfangene Paket erneut gesendet werden kann, Bereitstellen eines Algorithmus entweder in dem Sende- oder dem Empfangssystem oder in beiden, um die Anzahl von negativen Rückmeldungen, die durch ein Empfangssystem zu dem Sendesystem übertragen wurden, zu regulieren, dadurch gekennzeichnet, dass das Auswählverfahren die Übertragungsrate teilweise basierend auf den Parametern des Algorithmus anpasst und die Übertragungsrate als eine gewichtete Summe einer Übertragungsrate ausgewählt wird, die entsprechend dem Auswählverfahren bei einer aktuellen Iteration berechnet wird, und einer Übertragungsrate, die entsprechend dem Auswählverfahren bei einer vorhergehenden Iteration berechnet wurde.
  7. Computerprogramm nach Anspruch 6, wobei das Auswählverfahren die Schritte des Messens einer die Paketverlustrate in dem Netzwerk anzeigenden Größe und des Feststellens, dass die Größe dieser Paketverlustrate über oder unter einer Sollverlustrate ist, durch Subtrahieren der Sollverlustrate von der aktuellen Paketverlustrate, umfasst.
  8. Computerprogramm nach Anspruch 7, wobei die die Paketverlustrate anzeigende Größe ein Messwert der Anzahl der Anforderungen für erneute Paketübertragungen, die empfangen wurde, ist.
  9. Computerprogramm nach Anspruch 6, wobei das Verfahren, das die Übertragungsrate auswählt, die Übertragungsrate so auswählt, dass wenn der Größenwert der Paketverlustrate sich stetig verschlechternde Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate stetig nach unten anpasst, bis entweder der Mindestwert erreicht ist oder bis sich die Netzwerkbedingungen verbessern, wenn der Größenwert der Paketverlustrate sich stetig verbessernde Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate stetig nach oben anpasst, bis entweder der Maximalwert erreicht ist oder bis sich die Netzwerkbedingungen verschlechtern, wenn der Größenwert der Paketverlustrate entweder vorübergehende Verbesserung oder vorübergehende Verschlechterung der Netzwerkbedingungen anzeigt, das Auswählverfahren die Übertragungsrate unverändert lässt, wenn der Größenwert der Paketverlustrate einen stabilen Zustand anzeigt, in dem die Paketverlustrate über der erwünschten Paketverlusthöchstrate ist, das Auswählverfahren die Übertragungsrate nach unten anpasst, bis der Mindestwert erreicht ist, und wenn der Größenwert der Paketverlustrate einen stabilen Zustand anzeigt, in dem die Paketverlustrate unter der erwünschten Paketverlusthöchstrate ist, das Auswählverfahren die Übertragung nach oben anpasst, bis der Höchstwert erreicht ist.
  10. Computerprogramm nach Anspruch 6, wobei die Computerprogrammcodeeinrichtungen zum Auswählen einer Übertragungsrate des Weiteren Computerpro grammcodeeinrichtungen zum Ausführen eines Verfahrens zum Auswählen der Übertragungsrate umfassen, das Verfahren umfasst die folgenden Schritte: Messen einer die aktuelle Paketverlustrate in dem Netzwerk anzeigenden Größe, Subtrahieren der Größe von einer die Sollpaketverlustrate anzeigenden zweiten Größe und Vergleichen des resultierenden Wertes mit einem Schwellenwert und wenn der resultierende Wert unter dem Schwellenwert ist, dann Einstellen eines Differenzparameters auf null, andernfalls Einstellen des Differenzparameters auf den resultierenden Wert, Einstellen eines Ratenänderungsparameters gleich einem Basis-Ratenänderungswert, wenn der Differenzparameter null ist, andernfalls Einstellen des Ratenänderungsparameters gleich dem Negativ des Basis-Ratenänderungswertes multipliziert mit dem Differenzparameter, Berechnen einer Rohübertragungsrate für eine laufende Iteration des Verfahrens, die gleich der Summe des Ratenänderungsparameters und einer gewichteten Übertragungsrate, die bei einer vorherigen Iteration des Verfahrens berechnet wurde, ist, Auswählen, als die Übertragungsrate, einer gewichteten Summe der Rohübertragungsrate für die laufende Iteration des Verfahrens und einer Rohübertragungsrate bei der vorherigen Iteration des Verfahrens.
  11. Computerprogramm nach einem der Ansprüche 6 bis 10, ausgeführt in einem computerlesbaren Medium.
DE69931215T 1998-06-29 1999-06-28 Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen Expired - Lifetime DE69931215T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US106400 1998-06-29
US09/106,400 US6381215B1 (en) 1998-06-29 1998-06-29 Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems

Publications (2)

Publication Number Publication Date
DE69931215D1 DE69931215D1 (de) 2006-06-14
DE69931215T2 true DE69931215T2 (de) 2006-10-12

Family

ID=22311212

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69931215T Expired - Lifetime DE69931215T2 (de) 1998-06-29 1999-06-28 Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen

Country Status (4)

Country Link
US (1) US6381215B1 (de)
EP (1) EP0969623B1 (de)
AT (1) ATE326095T1 (de)
DE (1) DE69931215T2 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6392993B1 (en) * 1998-06-29 2002-05-21 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
US6556556B1 (en) 1999-01-29 2003-04-29 Nortel Networks Limited Method and system for limiting data packet transmission within a digital mobile telephone communication network by discarding unsuccessfully transmitted radio link protocol frames
US6335933B1 (en) * 1999-05-21 2002-01-01 Broadcom Homenetworking, Inc. Limited automatic repeat request protocol for frame-based communication channels
US6584104B1 (en) * 1999-07-06 2003-06-24 Lucent Technologies, Inc. Lost-packet replacement for a digital voice signal
US6543005B1 (en) * 1999-10-27 2003-04-01 Oracle Corporation Transmitting data reliably and efficiently
US6934723B2 (en) * 1999-12-23 2005-08-23 International Business Machines Corporation Method for file system replication with broadcasting and XDSM
US6968359B1 (en) 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US6839752B1 (en) 2000-10-27 2005-01-04 International Business Machines Corporation Group data sharing during membership change in clustered computer system
US7185099B1 (en) 2000-11-22 2007-02-27 International Business Machines Corporation Apparatus and method for communicating between computer systems using a sliding send window for ordered messages in a clustered computing environment
US7769844B2 (en) * 2000-12-07 2010-08-03 International Business Machines Corporation Peer protocol status query in clustered computer system
US6965916B1 (en) * 2000-12-14 2005-11-15 Bellsouth Intellectual Property Corp. System and method for data distribution and recovery
US6918120B2 (en) * 2001-04-20 2005-07-12 Hewlett-Packard Development Company, L.P. Remote file system using network multicast
US6920598B2 (en) * 2001-05-21 2005-07-19 Lucent Technologies Inc. System and method for error recovery using NAKs
US7502860B1 (en) * 2001-07-09 2009-03-10 Cisco Technology, Inc. Method and apparatus for client-side flow control in a transport protocol
US7231461B2 (en) 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
AU2002327681A1 (en) * 2001-09-24 2003-04-07 Atheros Communications, Inc. Method and system for variable rate acknowledgement for wireless communication protocols
US6910080B2 (en) 2001-11-06 2005-06-21 International Business Machines Corporation Communication efficiency and performance in an unreliable communication environment
US7609639B2 (en) * 2002-02-07 2009-10-27 Motorola, Inc. Negative acknowledgment (NAK) suppression
US20030206549A1 (en) * 2002-05-03 2003-11-06 Mody Sachin Satish Method and apparatus for multicast delivery of information
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
JP4238562B2 (ja) 2002-11-07 2009-03-18 日本電気株式会社 移動無線装置
US7095725B2 (en) 2002-12-19 2006-08-22 Qualcomm Incorporated Method and apparatus for data transmission on a reverse link in a communication system
US7515605B2 (en) * 2003-03-24 2009-04-07 Corrigent Systems Ltd Efficient transport of TDM services over packet networks
US7356587B2 (en) * 2003-07-29 2008-04-08 International Business Machines Corporation Automatically detecting malicious computer network reconnaissance by updating state codes in a histogram
US20050249231A1 (en) * 2003-11-25 2005-11-10 Asif Khan Methods and systems for reliable distribution of media over a network
US7181170B2 (en) * 2003-12-22 2007-02-20 Motorola Inc. Apparatus and method for adaptive broadcast transmission
US8014340B2 (en) 2004-02-27 2011-09-06 Telefonaktiebolaget Lm Ericsson (Publ) Optimising resource usage in a packet switched network
US7818679B2 (en) * 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
DE102004024124B4 (de) * 2004-05-14 2006-05-18 Siemens Ag Verfahren, Sende- sowie Empfangseinrichtung zur Übertragung von digitalen Informationspaketen in einem Datennetz
EP1624610B1 (de) * 2004-08-06 2006-12-27 Matsushita Electric Industrial Co., Ltd. Rückkopplungssteuerung für Multicast und Broadcast Dienste
US8755407B2 (en) * 2005-02-18 2014-06-17 Qualcomm Incorporated Radio link protocols for enhancing efficiency of multi-link communication systems
KR101114737B1 (ko) * 2005-05-31 2012-02-29 삼성전자주식회사 이동통신시스템에서 패킷 수신 결과 보고방법
US7515536B2 (en) * 2005-07-11 2009-04-07 Corrigent Systems Ltd. Transparent transport of fibre channel traffic over packet-switched networks
WO2007040515A2 (en) * 2005-09-30 2007-04-12 Mitsubishi Electric Research Laboratories Training signals for selecting antennas and beams in mimo wireless lans
JP4374015B2 (ja) * 2006-11-30 2009-12-02 株式会社東芝 データ送信装置、データ受信装置及びデータ通信システム
CA2577030A1 (en) * 2007-01-31 2008-07-31 Unlimi-Tech Software Inc. Improved data transfer method, system and protocol
DE102007010868A1 (de) 2007-03-06 2008-09-11 Rohde & Schwarz Gmbh & Co. Kg Vorrichtung und Verfahren zur Ermittlung eines Übertragungsverhaltens von Unterkanälen
WO2008126806A1 (ja) * 2007-04-06 2008-10-23 Ntt Docomo, Inc. 再送要求送信方法及び受信側装置
US7933240B2 (en) * 2007-07-19 2011-04-26 Honeywell International Inc. Apparatus and method for redundant connectivity and multi-channel operation of wireless devices
US8681676B2 (en) * 2007-10-30 2014-03-25 Honeywell International Inc. System and method for providing simultaneous connectivity between devices in an industrial control and automation or other system
CN101631137B (zh) * 2008-07-15 2012-10-10 株式会社日立制作所 通信控制装置及通信控制方法
US20110314506A1 (en) * 2008-08-07 2011-12-22 Broadcom Corporation Point to multi-point wireless video delivery
US8112542B2 (en) * 2008-08-07 2012-02-07 Broadcom Corporation Multicast digital video lost packet recovery
US8300620B1 (en) * 2008-12-29 2012-10-30 Sprint Communications Company L.P. Dynamically tuning a timer mechanism according to radio frequency conditions
EP2234314A1 (de) * 2009-03-25 2010-09-29 Thomson Licensing SA Verfahren zur Verwaltung einer Paketverwaltungskarte
US8824687B2 (en) * 2011-05-04 2014-09-02 Acquire Media Ventures, Inc. Method and system for pacing, acking, timing, and handicapping (path) for simultaneous receipt of documents employing encryption
US9143279B2 (en) * 2013-01-18 2015-09-22 Qualcomm Incorporated Methods and devices for facilitating data retransmissions in wireless communication systems
US9609524B2 (en) 2014-05-30 2017-03-28 Honeywell International Inc. Apparatus and method for planning and validating a wireless network
CN105763474B (zh) 2014-12-19 2019-10-25 华为技术有限公司 数据传输方法和装置
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
EP3252979B1 (de) * 2016-06-03 2019-01-30 Mitsubishi Electric R&D Centre Europe B.V. Anforderung einer erneuten übertragung von daten in einem multicast-netzwerk
CN108199925B (zh) * 2018-01-30 2021-06-04 网宿科技股份有限公司 一种数据发送方法、接收方法及装置
CN111770350B (zh) * 2020-06-23 2022-09-16 北京字节跳动网络技术有限公司 直播间消息拉取的方法、装置、计算机设备和存储介质
WO2022098377A1 (en) * 2020-12-17 2022-05-12 Futurewei Technologies, Inc. Qualitative communication using adaptive network coding with a sliding window
US11533267B2 (en) * 2021-01-21 2022-12-20 Mellanox Technologies, Ltd. Out-of-order packet processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359593A (en) * 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
US5627970A (en) * 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
US5553083B1 (en) * 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US6097697A (en) * 1998-07-17 2000-08-01 Sitara Networks, Inc. Congestion control

Also Published As

Publication number Publication date
ATE326095T1 (de) 2006-06-15
DE69931215D1 (de) 2006-06-14
EP0969623B1 (de) 2006-05-10
EP0969623A2 (de) 2000-01-05
US6381215B1 (en) 2002-04-30
EP0969623A3 (de) 2003-05-02

Similar Documents

Publication Publication Date Title
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE60031263T2 (de) Umhüllungsverfahren für protokolldateneinheiten
DE69015275T2 (de) Datenkommunikationssystem und Vorrichtung mit einer zyklischen Quittungsantwortensequenz.
DE69636201T2 (de) Methode zur Mehrfachaussendung in Netzwerken mit ARQ zur Vermeidung unnötiger Wiederholungsübertragungen
DE60314214T2 (de) Verfahren und Vorrichtung zur Übertragungswiederholung von Multicastdaten
DE10066507B3 (de) Verfahren und Vorrichtung zur Kommunikation mit verzögerter Bestätigung und Alarmverwaltung
DE68925958T2 (de) Adaptives Datenübertragungsprotokoll
DE69328578T2 (de) Leistungsfähiges und betriebssicheres Übertragungsverfahren und System für grosse Datenmengen
DE602004007329T2 (de) Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen
DE60307032T2 (de) Steuerungs-Verfahren und -Vorrichtung zur Datenübertragung
DE60030094T2 (de) Datenablösungsmechanismus für selektive wiederholungsprotokolle
DE60317837T2 (de) Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
DE60029221T2 (de) Begrenztes automatisches wiederholungsaufforderungsprotokoll für rahmenbasierte kommunikationskanäle
DE69838360T2 (de) System und Verfahren zur Leistungsüberwachung eines drahtlosen lokalen Netzwerkes und zum dynamischen Einstellen seiner Betriebsparameter
DE60211335T2 (de) Echtzeitpaketisierung und Wiederübertragung in Streaming Anwendungen
DE69033551T2 (de) Vermeidung von Überlastung in Computer-Netzwerken mit Hilfe von Verzögerung
DE602006000721T2 (de) Verfahren zum Verhindern von Wiederübertragung wegen Verzögerung in einem Drahtlosnetzwerk
DE60109959T2 (de) Verfahren um die effizienz eines datenstromes in einem kommunikationssystem zu erhöhen
DE60313178T2 (de) Verfahren und einrichtung zur verminderung von übertragungsfehlern in einem zellularen system der dritte generation
DE19924922A1 (de) System und Verfahren für Nachrichtenübermittlung zwisfchen Netzwerkknoten, die durch parallele Verbindungen verbunden sind
DE602004004706T2 (de) Verfahren und System zur Kommunikationssteuerung
DE20307251U1 (de) Benutzervorrichtung, welche eine intelligente Flusssteuerung auf Basis der Kanalqualitätsbedingungen durchführt
DE602004011453T2 (de) Sendegerät zur Steuerung der Datenübertragung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition