DE19543892A1 - Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind - Google Patents

Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind

Info

Publication number
DE19543892A1
DE19543892A1 DE19543892A DE19543892A DE19543892A1 DE 19543892 A1 DE19543892 A1 DE 19543892A1 DE 19543892 A DE19543892 A DE 19543892A DE 19543892 A DE19543892 A DE 19543892A DE 19543892 A1 DE19543892 A1 DE 19543892A1
Authority
DE
Germany
Prior art keywords
computer
message
packets
accumulator
counter
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.)
Withdrawn
Application number
DE19543892A
Other languages
English (en)
Inventor
David M Jacobson
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19543892A1 publication Critical patent/DE19543892A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

Die vorliegende Erfindung bezieht sich auf den Nachrichten­ austausch zwischen einer Mehrzahl von untereinander verbun­ denen Computern. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Vorrichtung zum Bestim­ men, wann alle Pakete einer Nachricht, die von einem Quel­ lencomputer gesendet worden sind, bei einem Bestimmungscom­ puter angekommen sind.
Ein Computernetz umfaßt Sammlungen von untereinander verbun­ denen Computern, die auch als Multicomputer oder Cluster be­ kannt sind. Fig. 1 ist ein Blockdiagramm eines typischen Computernetzes. In der Figur sind mehrere mit einem Netz verbundene Computer 19, 20 gezeigt, wobei das Netz auch als Verbindungsstruktur bezeichnet wird und mehrere Netzknoten 10-12, 16-18 umfaßt. Jeder Knoten kann seinerseits mit einem Mehrfachknoten (sog. "hub") 13, 15 und ebenfalls mit einem oder mehreren Routern 14, 21 verbunden sein.
Bei derartigen Netzen werden Daten von einem Computer zu ei­ nem anderen in der Form von Nachrichten übertragen, wobei jede Nachricht aus einem oder mehreren Paketen mit fester Größe oder begrenzt variabler Größe besteht. Jedes Paket wird über die Verbindungsstruktur von einem Quellencomputer zu einem Bestimmungscomputer übertragen. Derartige Netze va­ riieren stark bezüglich der Lieferungsgarantien, die sie schaffen. Einige Netze (z. B. das Ethernet) lassen Pakete aus oder duplizieren sie, während einige garantieren, daß jedes Paket genau einmal geliefert wird. Da ein besseres Verhalten erreichbar ist, wenn Pakete um eine Stauung herum geleitet werden oder verschiedene oder zufällige Routen zu ihrem Be­ stimmungsort nehmen, leiten viele Hochleistungsverbindungs­ systeme nicht alle Pakete, die eine Nachricht bilden, über die gleiche Route. Dadurch entsteht eine Wahrscheinlichkeit, daß Pakete, die eine Route nehmen, an der Bestimmung früher ankommen als Pakete, die früher gesendet worden sind, die jedoch eine andere (und langsamere oder verstopftere) Route nahmen. Somit können die Pakete an dem Bestimmungscomputer außerhalb der Reihenfolge ankommen.
Die vorliegende Erfindung bezieht sich auf Verbindungssyste­ me, die jedes Paket genau einmal liefern, die jedoch keine Garantien bezüglich der Lieferreihenfolge übernehmen.
Der Empfangscomputer besteht normalerweise aus mehreren Kom­ ponenten, wobei jede einen (zeitlichen) Aufwand benötigt, der der mit Kenntnis derselben von etwas oder mit dem Ant­ worten derselben auf etwas verknüpft ist. Eine Schnittstel­ lenkarte kann fast ohne Zeitverzögerung etwas wissen oder auf etwas antworten. Das Betriebssystem kann über ein be­ stimmtes Ereignis informiert werden und mittels einer Pro­ zedur, die als "Unterbrechung" oder auch "Interrupt" bekannt ist, kurz laufen. Dies kann ein paar hundert Zyklen kosten, oder das Betriebssystem muß den Betrieb irgendeines Pro­ gramms, das gerade lief, aufschieben und die Anwendung hoch­ fahren, die mit der ankommenden Nachricht zu tun hat. Die Handlung des Aufschiebens eines Prozesses und des Hochfahren eines anderen wird als eine Kontextumschaltung bezeichnet. Eine Kontextumschaltung kann tausende von Zyklen benötigen.
Um Verzögerungen zwischen dem Zeitpunkt, zu dem die Daten ankommen, und dem Zeitpunkt zu vermeiden, zu dem sie verwen­ det werden können, werden die Daten jedes Paketes direkt an ihren endgültigen Bestimmungsadressen abgelegt und nicht zu­ erst in vorübergehende Puffer, von denen sie auf eine Be­ stimmungsadresse kopiert werden können. Zusätzlich muß der Bestimmungscomputer davon benachrichtigt werden, wenn alle Pakete, die eine Nachricht bilden, angekommen sind.
Das Problem besteht darin, zu bestimmen, wann dies aufgetre­ ten ist.
Dieses Problem kann in mehrere Fälle unterteilt werden. Zu­ erst existiert der Fall, bei dem nur eine Sendevorrichtung existiert, wobei derselbe nachfolgend als das Einzelsender-Pro­ blem bezeichnet wird. Es wurden mehrere Lösungen für das Einzelsender-Problem vorgeschlagen:
  • 1. Plazieren einer Flag in dem letzten Paket einer Nach­ richt, die anzeigt, daß dies das letzte Paket ist. Diese Lösung funktioniert nur bei Systemen, die eine Lieferung der Pakete entsprechend ihrer Reihenfolge garantieren. Wie oben diskutiert wurde, garantieren viele Verbin­ dungsstrukturen keine Lieferung in der richtigen Reihen­ folge.
  • 2. Der Empfangscomputer muß von vornherein wissen, wieviel Pakete gesendet wurden.
  • Dabei wird dieser Wert in einem Zähler plaziert, wobei der Zähler bei der Ankunft jedes Paketes dekrementiert wird, bis der Wert in dem Zähler Null ist. Diese Lösung erlaubt keine Übertragung von Daten, deren Größe der Empfangscomputer nicht von vornherein kennt.
  • 3. Plazieren eines Wertes, der der Gesamtzahl von gesende­ ten Paketen für eine bestimmte Nachricht entspricht, in dem ersten Paket, wobei dann am Empfangscomputer herun­ tergezählt wird, während jedes Paket ankommt, bis sich der Zählwert auf Null befindet. Ungünstigerweise exi­ stieren bei dieser Lösung zwei Probleme:
    • a. das Computernetz muß garantieren, daß das erste Pa­ ket am Bestimmungsort tatsächlich zuerst ankommt, was entweder dazu führt, daß das Verbindungssystem auf eines begrenzt ist, das die Lieferung in der richtigen Reihenfolge garantiert, oder daß der Emp­ fangscomputer den Empfang des ersten Paketes bestä­ tigen muß, wobei der Sendecomputer vor dem Senden darauffolgender Pakete auf diese Bestätigung warten muß. Der letztere Lösungsansatz ist nicht wünschens­ wert, da derselbe zusätzliche Verzögerungen und Kom­ plexität in das Computernetz einführt; und
    • b. das Computernetz muß die Gesamtzahl von Paketen, die gesendet werden, bestimmen, bevor das erste Paket abgeschickt worden ist.
Ein zweites Problem, das nachfolgend als das Mehrfachsen­ der-Problem bezeichnet wird, tritt bei einem Computernetz in der Situation auf, in der ein Computer Nachrichten von vie­ len Quellencomputern empfängt und bestimmen muß, wann alle Pakete, die alle diese Nachrichten bilden, angekommen sind. Die Anzahl von Quellencomputern kann dem Bestimmungscomputer von vornherein bekannt sein, wobei jedoch jede Nachricht aus einer unterschiedlichen Anzahl von Paketen bestehen kann. Mehrere Lösungen für das Mehrfachsender-Problem wurden vor­ geschlagen, so z. B.:
  • 1. Bereitstellen eines Zählers am Bestimmungscomputer, der auf die Anzahl von Quellen (d. h. von Quellencomputern) initialisiert wird, von denen Nachrichten empfangen wer­ den. Die Auswahl der Verbindungssysteme ist dann auf diese begrenzt, die eine Lieferung in der richtigen Reihenfolge garantieren. Jeder Quellencomputer setzt eine Letztes-Paket-Flag in dem letzten Paket jeder Nach­ richt. Jedesmal, wenn der Bestimmungscomputer ein Paket empfängt, bei dem die Letztes-Paket-Flag gesetzt ist, dekrementiert derselbe den Zähler. Wenn der Zähler Null erreicht, wird dem Bestimmungscomputer mitgeteilt, daß alle Pakete einer Nachricht angekommen sind.
  • 2. Der Bestimmungscomputer muß von vornherein wissen, wie­ viele Pakete gesendet werden.
  • Dieser Wert wird in einem Zähler plaziert, wobei der Zähler bei der Ankunft jedes Pakets am Bestimmungscompu­ ter dekrementiert wird, bis der Wert in dem Zähler Null erreicht. Ungünstigerweise erlaubt dieser Lösungsansatz keine Übertragung von Daten, deren Größe nicht von vor­ neherein bekannt ist.
  • 3. Bereitstellen eines Vektors, der für jeden Quellencompu­ ter einen Zähler enthält. Jeder Quellencomputer sendet das erste Paket seiner Nachricht, welches eine Zahl ent­ hält, die die Gesamtzahl von Paketen in der Nachricht anzeigt. Es muß beispielsweise durch eine der vorher be­ schriebenen Verfahren für den Einzelsender-Fall sicher­ gestellt sein, daß das erste Paket vor irgendeinem der anderen Pakete von demselben Quellencomputer ankommt. Während jedes Paket ankommt, wird der Zähler desselben dekrementiert. Wenn alle Zähler auf Null sind, wird es dem Bestimmungscomputer mitgeteilt. Zusätzlich zu den obigen Begrenzungen besteht ein zusätzlicher Nachteil dieses Lösungsansatzes darin, daß die maximal mögliche Anzahl von Quellencomputern auf die Größe des Vektors der Zähler begrenzt ist.
  • 4. Der Bestimmungscomputer empfängt unter Verwendung be­ kannter Verfahren die Nachricht von jedem Quellencompu­ ter getrennt. Der Bestimmungscomputer zählt die ankom­ menden Nachrichten, und wenn die notwendige Anzahl ange­ kommen ist, beginnt er die Verarbeitung.
  • Da der Bestimmungscomputer eine Kontextumschaltung durchführen muß, um jede Nachricht anzunehmen, benötigt diese Lösung bei dem Bestimmungscomputer eine übermäßige Anzahl von Kontextumschaltungen.
Ein drittes Problem, das nachfolgend als das Dynamische-Sen­ der-Problem bezeichnet wird, tritt in einem Computernetz auf, bei dem kein Knoten die Anzahl von Quellencomputern kennt. Statt dessen ist jedem Empfangsknoten ein bestimmter Satz von Sendeknoten bekannt, wobei diese Knoten jedoch die Verantwortlichkeit für einen Teil der Anwendung zu noch wei­ teren Knoten delegiert haben könnten.
Diese weiteren Knoten müssen ebenfalls Nachrichten zu dem Bestimmungscomputer senden, wobei dies rekursiv vor sich ge­ hen kann.
Die offensichtliche Lösung für das Dynamische-Sender-Problem besteht darin, daß jeder Knoten, der eine Verantwortlichkeit auf weitere Knoten delegiert hat, die Daten von diesen Kno­ ten sammeln muß und dann diese Daten zu dem Bestimmungscom­ puter weiterleiten muß. Dies kann durch irgendeine der Mehr­ fachsender-Techniken, die oben aufgelistet wurden, durchge­ führt werden. Alternativ kann jeder Knoten, der die Verant­ wortlichkeit zu weiteren Knoten delegiert, eine Liste dieser Knoten dem Knoten weiterreichen, von dem er seine Verant­ wortlichkeit empfing. Schließlich leiten die Knoten der obersten Ebene die Informationen zu dem Bestimmungscomputer weiter, welcher dann eine beliebige der im Zusammenhang mit dem Mehrfachsender-Problem oben beschriebenen Techniken ver­ wenden kann.
Eine vorgeschlagene Lösung für das Problem des Zusammenset­ zens empfangener Pakete zu einer Nachricht ist in Verbindung mit dem Internet von D. Clark, Datagram Reassembly Algorithms, MIT Laboratory for Computer Science, Computer Systems and Communications Group, RFC: 815IP, Juli 1982, beschrieben worden. Das Internet besteht aus einer Sammlung von vielen Computernetzen, von denen jedes seine eigenen Charakteristika aufweist. Wenn ein IP-Paket (IP = Internet Protocol = Internet-Protokoll) erzeugt worden ist, kann es eine bestimmte Größe aufweisen, die der Fähigkeit des Compu­ ternetzes entspricht, in dem dasselbe erzeugt worden ist. Während das IP-Paket zu seiner Bestimmung geleitet wird, muß es wahrscheinlich durch ein weiteres Computernetz laufen, das nicht in der Lage ist, Pakete dieser Größe handzuhaben, derart, daß dasselbe in kleinere Pakete fragmentiert wird. Bezüglich des Internet-Protokolls besteht keine Anforderung, daß derartige Fragmente nicht überlappen.
Clark offenbart eine Technik, die bestimmt, wann alle Pake­ te, die ein ganzes Internet-Paket bilden, angekommen sind. Zuerst ist es notwendig, alle Fragmente zu verfolgen.
Wenn ein neues Fragment ankommt, muß es zweitens mit den existierenden Fragmenten auf eine Anzahl von verschiedenen Weisen kombiniert werden. Es kann beispielsweise den Raum zwischen zwei Fragmenten genau ausfüllen, es kann mit exi­ stierenden Fragmenten überlappen, es kann existierende Frag­ mente vollständig duplizieren oder es kann einen Raum zwi­ schen zwei Fragmenten teilweise ausfüllen, ohne an dieselben anzustoßen. Somit bringt das Wiederzusammensetzen einen kom­ plizierten Algorithmus mit sich, der nach einer Anzahl von verschiedenen Optionen überprüft.
Eine teilweise wieder zusammengesetzte Nachricht besteht aus bestimmten Sequenzen von Fragmenten, die bereits angekommen sind, und bestimmten Bereichen, die Fragmente enthalten sol­ len, die noch kommen sollen. Diese fehlenden Bereiche werden als Löcher bezeichnet. Jedes Loch kann durch zwei Zahlen charakterisiert sein. Die Nummer des ersten Fragments in dem Loch und die Nummer des letzten Fragments in dem Loch. Die­ ses Zahlenpaar wird als der Lochbeschreiber bezeichnet. Alle Lochbeschreiber für eine bestimmte Nachricht werden in einer Lochbeschreiberliste gesammelt.
Die allgemeine Form des Algorithmus von Clark lautet folgen­ dermaßen: Wenn ein neues Fragment der Nachricht ankommt, kann es vielleicht eines oder mehrere der existierenden Lö­ cher füllen. Jeder Eintrag in der Lochbeschreiberliste wird dahingehend untersucht, ob das fragliche Loch durch dieses ankommende Fragment beseitigt wird. Wenn das so ist, wird dieser Eintrag von der Lochbeschreiberliste gelöscht. Schließlich sind alle Fragmente, die notwendig sind, um die Nachricht zu vollenden, angekommen, derart, daß jeder Ein­ trag aus der Lochbeschreiberliste beseitigt ist. An diesem Punkt ist die Nachricht vollständig wieder zusammengesetzt, und dieselbe kann zur weiteren Verarbeitung zu höheren Pro­ tokollebenen weitergeleitet werden.
Ferner wird auf M. C. Lobelle, Datagrams Transferred As Message Trains In Local Area Networks, Interfaces in Compu­ ting, 2 (1984), S. 131-146, verwiesen, worin ein Verfahren offenbart ist, um die Integrität einer Paketübertragungs­ sequenz zu garantieren, wobei sowohl der Sender als auch der Empfänger die Struktur der Nachricht vor dem Senden der Nachricht kennen. Die empfangenen Pakete werden gezählt und ein Bestätigungspaket wird pro vollständiger Nachricht von dem Empfänger zu dem Sender gesendet.
Die Aufgabe der vorliegenden Erfindung besteht nun darin, eine verbesserte Vorrichtung und ein verbessertes Verfahren zu schaffen, welche bestimmen, wann alle Pakete einer Nach­ richt empfangen worden sind.
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und durch ein Verfahren gemäß Anspruch 16 gelöst.
Die Erfindung schafft eine Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht an einem Bestimmungscomputer an­ gekommen sind, wenn das Verbindungssystem eines Computernet­ zes keine Lieferung in der richtigen Reihenfolge garantiert. Die Erfindung besteht aus einem Zähler, der bei jedem Quel­ lencomputer positioniert ist, einem Akkumulator bei dem Be­ stimmungscomputer, einem Deltafeld in jedem Paket, einer Einrichtung bei dem Bestimmungscomputer, die bestimmt, wann der Akkumulator einen vorbestimmten Wert (z. B. Null) gespei­ chert hat, und einem Protokoll, das zwischen den verschiede­ nen Kommunikationsprozessen verwendet wird. Alle Zähler und der Akkumulator weisen die gleiche Anzahl von Bits oder Zif­ fern auf, derart, daß sie modulo das gleiche Modul zählen oder akkumulieren. Somit würde beispielsweise ein Zähler, der den maximal darstellbaren Wert enthält, bei der nächsten Zählung auf Null zurückkehren. Der Zähler bei dem Quellen­ computer speichert einen Anfangswert und ist angepaßt, um jedem Paket in einer Nachricht einen Deltawert zuzuweisen. Der Akkumulator bei dem Bestimmungscomputer extrahiert den Deltawert von jedem Paket der Nachricht, derart, daß dem Be­ stimmungscomputer nur mitgeteilt wird, daß alle Pakete in der Nachricht angekommen sind, wenn die Summe der in dem Ak­ kumulator gespeicherten extrahierten Deltawerte dem Anfangs­ wert, der in dem Zähler gespeichert ist, gleich ist. Ein Vorteil dieses Lösungsansatzes besteht darin, daß er in Com­ puternetzen wirksam arbeitet, die keine Lieferung in der richtigen Reihenfolge schaffen, ohne daß der Bedarf besteht, in einer getrennten Nachrichtenrunde Paketzählwerte oder Senderidentitäten miteinander auszutauschen.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines typischen Computernetzes;
Fig. 2 ein Blockdiagramm eines Computernetzes gemäß der vorliegenden Erfindung, bei dem der Bestimmungscom­ puter bestimmt, wann alle Pakete einer Nachricht angekommen sind;
Fig. 3 ein Flußdiagramm eines Verfahrens gemäß der vorlie­ genden Erfindung zum Senden einer Nachricht über ein Computernetz, wobei der Bestimmungscomputer be­ stimmt, wann alle Pakete einer Nachricht angekommen sind; und
Fig. 4 ein Flußdiagramm eines Verfahrens gemäß der vorlie­ genden Erfindung zum Empfangen einer Nachricht über ein Computernetz, bei dem der Bestimmungscomputer bestimmt, wann alle Pakete einer Nachricht angekom­ men sind.
Die Erfindung begegnet Problemen, die entstehen, wenn das Verbindungssystem eines Computernetzes die Lieferung jedes Paketes (ohne das Aufteilen in mehrere kleine Pakete) garan­ tiert und niemals Pakete dupliziert, das jedoch die Liefe­ rung von Paketen in der richtigen Reihenfolge nicht garan­ tiert. Die Erfindung besteht aus einem Zähler bei jedem Quellencomputer, einem Akkumulator bei dem Bestimmungscom­ puter, einschließlich einer Einrichtung bei dem Bestimmungs­ computer, die bestimmt, wann der Akkumulator auf einen vor­ bestimmten Wert (z. B. Null) ist, und eines Protokolls, das zwischen den verschiedenen Kommunikationsverfahren in dem Computernetz verwendet wird.
Bei dem bevorzugten Ausführungsbeispiel der Erfindung ist die Hardware bei dem Quellencomputer und dem Bestimmungscom­ puter genauso wie das Protokoll sehr einfach. Bei einer Mehrfachsenderanwendung beseitigen beispielsweise das hierin beschriebene Verfahren und die hierin beschriebene Vorrich­ tung die Notwendigkeit, daß der Empfangscomputer bei der An­ kunft jeder Nachricht eine Kontextumschaltung zu der Emp­ fangsanwendung durchführen muß. Statt dessen führt der Be­ stimmungscomputer nur einmal eine Kontextumschaltung zu der Empfangsanwendung durch, und zwar wenn alle Nachrichten angekommen sind, wodurch der Mehraufwand von n-1 Kontextum­ schaltungen eingespart wird, wenn n Quellencomputer existie­ ren.
Bei einer Dynamische-Sender-Anwendung beseitigen das hierin beschriebene Verfahren und die hierin beschriebene Vorrich­ tung die Notwendigkeit, dem Bestimmungscomputer zusätzliche Nachrichten zu liefern, die Informationen über den Satz von Quellencomputern enthalten.
Fig. 2 ist ein Blockdiagramm eines erfindungsgemäßen Compu­ ternetzes, bei dem der Bestimmungscomputer bestimmt, wann alle Pakete einer Nachricht angekommen sind. Eine Nachricht 24 umfaßt mehrere Pakete A (32), B (31), C (30) und D (29), die über ein Computernetz-Verbindungssystem 26 zu einem Be­ stimmungscomputer gesendet werden. Jedes Paket 29-32 jeder Nachricht weist mehrere Felder auf. Ein typisches Paket 34 ist beispielsweise in der Figur gezeigt, das einen Bestim­ mungsanfangsblock 34, eine Adresse 41, ein "Delta"-Feld 42 und ein Datenfeld 43 aufweist. (Der Wert des Deltafelds wird in manchen Fällen nachfolgend durch das Symbol "Δ" bezeich­ net.)
In der Figur umfaßt der Quellencomputer einen Rückwärtszäh­ ler 33, der modulo ein bestimmtes vorbestimmtes Modul, z. B. 232, zählt. Es wird angemerkt, daß ein gewöhnlicher 32-Bit-Binär­ zähler ein Modulo-2³²-Zähler ist, da Überträge/Borg­ überträge des höchstwertigen Bits verworfen werden. Der Zähler in dieser Anmeldung ist auf einen beliebigen Wert initialisiert. Bei allen Paketen außer dem letzten der Nachricht ist das Deltafeld auf "1" eingestellt (z. B. in den Paketen 30, 31, 32), wobei der Zähler 33 bei jedem der­ artigen Paket um "1" dekrementiert wird. Der Wert des Zäh­ lers wird als das Deltafeld des letzten Pakets 29 der Nach­ richt zu dem Bestimmungscomputer übertragen.
Der Bestimmungscomputer umfaßt einen Akkumulator 28, der modulo ein vorbestimmtes Modul, z. B. 2³², akkumuliert. Das Modul wird nachfolgend durch das Symbol M bezeichnet. (Es wird angemerkt, daß ein 32-Bit-Binäraddierer und ein 32-Bit-Binärregister einen Modulo-2³²-Akkumulator bilden, da Überträge/Borgüberträge des höchstwertigen Bits verworfen werden.) Bei dem bevorzugten Ausführungsbeispiel der Er­ findung wird der Akkumulator auf Null initialisiert, wobei jedoch jeder beliebige Wert verwendet werden könnte. Während jedes Paket bei dem Bestimmungscomputer ankommt, wird das Deltafeld des Pakets zu dem Akkumulator addiert. Wenn der Akkumulator auf Null gebracht ist, was anzeigt, daß alle Pakete angekommen sind, wird dem Computer mitgeteilt, daß die Nachricht 25 empfangen worden ist.
Bei verschiedenen Protokollen, die in Verbindung mit der Er­ findung verwendet werden können, beträgt die Summe der Del­ tafelder in den Paketen Null oder M, wobei Null und M zu Null modulo M kongruent sind, was bewirkt, daß nach der letzten angekommenen Nachricht eine Null in dem Akkumulator ist.
Bei dem Einzelsender-Fall umfaßt die Erfindung ein Proto­ koll, bei dem die Software bei dem Quellencomputer den Quel­ lencomputerzähler auf Null initialisiert, und bei dem die Software bei dem Bestimmungscomputer den Bestimmungscompu­ ter-Akkumulator auf Null initialisiert. Bei einer Nachricht mit N-Paketen ist die Summe der Deltafelder bei allen Pake­ ten in einer Nachricht mit Ausnahme des letzten Paketes gleich der Gesamtzahl der Pakete minus 1, d. h. N-1. Der Zähler wird jedesmal, wenn ein Paket gesendet wird, um 1 modulo-M-mäßig dekrementiert. Der anfängliche Nullwert ist zu M kongruent, wodurch die anfängliche Null als das Modul betrachtet werden kann. Somit enthält das letzte Paket den Wert M-(N-1). Wenn somit alle Deltawerte für alle Pakete zusammenaddiert worden sind, wird ein Wert von Null reali­ siert. Demgemäß kehrt der Wert des Akkumulators bei dem Bestimmungscomputer auf Null zurück, wenn alle Pakete emp­ fangen worden sind, unabhängig von der Reihenfolge, in der die Pakete ankommen.
Wenn die Nachricht nur aus einem einzigen Paket besteht, be­ trägt der Deltawert Null. Bei dem Empfangscomputer wird die­ se Null zu der Null hinzuaddiert, die sich bereits in dem Akkumulator befindet, was in einem Nullwert resultiert, wo­ bei die Einrichtung dem Empfangscomputer mitteilt, daß alle Pakete angekommen sind.
Bei Anwendungen, bei denen mehrere Sender auftreten, wird der Zähler jedes Computers mit der Nummer i auf einen Wert ki initialisiert, wobei ki eine positive Zahl und ungleich Null ist, welche größer oder gleich der Anzahl von Paketen ist, die die von dem Computer Nummer i zu sendende Nachricht bilden können, wobei ki der Bedingung unterworfen ist, daß die Summe über alle Sender gleich dem Modul ist, d. h. Σki = M.
Die Beschränkung des minimalen Wertes von ki ist jedoch kaum eine Beschränkung. Bei dem typischen Fall, bei dem das Modul 2³² beträgt, beschränkt die Adressierung in dem vorliegenden Computer inhärent die Nachrichten auf eine Maximalgröße von etwas weniger als 2³² Bytes, wobei ein typisches Verbin­ dungssystem Pakete von etwa 256 Bytes annimmt. Somit könnten die meisten Computer ki = 2²⁴ verwenden, wobei sie die Nach­ richtengrößenbeschränkung vollständig außer acht lassen, da es unmöglich ist, dieselbe zu verletzen. Damit ist es immer noch möglich, Nachrichten von 256 Computern zusammen zu sam­ meln.
Es wird angemerkt, daß der einzig wirkliche Unterschied zwi­ schen dem Einzelsender-Fall und dem Mehrfachsender-Fall da­ rin besteht, daß der Einzelsender-Fall ermöglicht, daß der Anfangswert des Zählers Null ist, was dann als das Modul be­ trachtet werden kann, während dies bei dem Mehrfachsender-Fall verboten ist.
Bei dem Dynamische-Sender-Fall wird dem Computer mit der Nummer i in dem anfänglichen Satz von Computern, die dem Empfänger bekannt sind, eine Quote ki gegeben, wobei ki eine positive Zahl und ungleich Null ist und größer oder gleich der Anzahl von Paketen ist, die alle Nachrichten bilden kön­ nen, die von einem Computer mit der Nummer i oder von ir­ gendeinem anderen Computer, auf den derselbe Arbeit dele­ giert, gesendet werden sollen, wobei ki der Bedingung unter­ worfen ist, daß die Summe über alle Sender gleich dem Modul ist, d. h. Σki = M. Immer wenn ein Computer eine Nachricht-Sende­ verantwortlichkeit zu weiteren Computern delegiert, muß er dies derart tun, daß die Summe der ki von ihm und den Computern, zu denen er delegierte, zu dem ursprünglichen ki gleich ist, das er empfangen hat. Vor dem Senden einer Nach­ richt zu dem Empfänger setzt jeder Computer seinen Zähler auf seinen Wert von ki.
Die folgenden Regeln gelten für Dynamische-Sender-Anwendun­ gen:
  • 1. Die Quoten, die von einem speziellen Quellencomputer de­ legiert worden sind, dürfen die empfangene Quote nicht überschreiten.
  • 2. Kein Quellencomputer kann eine Nachricht senden, die mehr Pakete als seine Quote enthält.
  • 3. Wenn ein Quellencomputer an weitere Quellencomputer de­ legiert, wird seine eigene Quote um den Betrag redu­ ziert, um den derselbe an weitere Computer delegiert.
  • 4. Jeder Computer muß seine Quote als den Anfangswert für seinen Zähler verwenden.
Die Quotendelegation kann zu einer beliebigen Tiefe gehen, die nur begrenzt ist, wenn die für einen Quellencomputer verfügbare Quote kleiner als die Anzahl von Paketen ist, die der Quellencomputer senden muß.
Das Modul soll beispielsweise 2³² sein und es sollen vier anfängliche Sender existieren. Jedem Sender kann eine Quote von 2³⁰ gegeben werden. Einer dieser Sender kann an zwei weitere Sender delegieren, indem er 2²⁸ für sich selbst be­ hält und 2²⁸ zu einem weiteren und 2²⁹ zu dem anderen weite­ ren abgibt. Es besteht keine Anforderung dahingehend, daß die Ziffern rund sein müssen, nur daß die Summe der Quoten nach dem Delegierungsprozeß gleich der ursprünglichen Quote ist, die von dem Computer gehalten wird, der die Delegierung durchführt.
Abgesehen von der Delegierung von Quoten besteht wirklich kein Unterschied zwischen dem Mehrfachsender-Fall und dem Dynamische-Sender-Fall.
Ein weiteres Ausführungsbeispiel der Erfindung ermöglicht es, daß der Empfangscomputer seinen Akkumulator auf einen Wert Z, der nicht Null ist, initialisiert. In diesem Fall müssen die anfänglichen Zählerwerte die Gleichung Z+ki = M erfüllen.
Bei einem weiteren Ausführungsbeispiel der Erfindung werden die Deltafelder als mit Vorzeichen versehene Zahlen betrachtet. Das letzte Paket wird dann betrachtet, als ob es Δ = -(N-1) aufweist, wobei N die Gesamtanzahl von Paketen ist, welche Nachrichten bilden. Bei diesem Ausführungsbei­ spiel umfaßt der Bestimmungscomputer einen zusätzlichen Zäh­ ler G, der jedesmal automatisch dekrementiert wird, wenn ein Paket ankommt, das einen Deltawert aufweist, der nicht gleich 1 ist. Derartige Pakete sind immer das letzte Paket jeder Nachricht, die von dem Quellencomputer übertragen wird. Am Beginn einer Nachricht wird jeder Quellencomputer­ zähler auf Null initialisiert, während der Bestimmungscom­ puterakkumulator auf Null initialisiert wird und der Akkumu­ lator G auf die Anzahl von Quellencomputern, z. B. "1" in dem Fall eines Einzelsenders, initialisiert wird. Dem Bestim­ mungscomputer wird mitgeteilt, wann sowohl der Bestimmungs­ computerakkumulator als auch der Zähler G auf Null sind. Es wird angemerkt, daß dieses Ausführungsbeispiel der Erfindung für Dynamische-Sender-Anwendungen nicht gut geeignet ist.
Fig. 3 ist ein Flußdiagramm eines Verfahrens zum Senden ei­ ner Nachricht über ein Computernetz gemäß der vorliegenden Erfindung, bei dem der Empfangscomputer bestimmt, wann alle Pakete einer Nachricht angekommen sind. In der Fig. wird am Start des Prozesses der Wert Nachricht_Delta errichtet (100). Der Zählerwert wird eingestellt, damit er dem Wert Nachricht_Delta gleich ist (110) und der Quellencomputer überprüft, um zu bestimmen, ob das Paket, das gerade über­ tragen werden soll, das letzte Paket der Nachricht ist (120).
Wenn das gegenwärtige Paket nicht das letzte Paket der Nach­ richt ist, wird in dem Paket ein Deltawert von "1" plaziert (130) und der Zählwert in dem Zähler wird um "1" dekremen­ tiert (140). Bei dem bevorzugten Ausführungsbeispiel der Er­ findung kann der Zähler ein Register mit einer Kapazität von 2³² sein. Sobald das Deltafeld eingestellt ist, wird das Pa­ ket gesendet (150) und das nächste Paket wird untersucht, um zu bestimmen, ob es das letzte Paket der Nachricht ist (120).
Wenn das letzte Paket der Nachricht untersucht worden ist, wird das Deltafeld des Paketes auf den Wert, der gegenwärtig in dem Zähler gespeichert ist, eingestellt (160) und das Pa­ ket wird dann gesendet (170), wobei an diesem Punkt der Sen­ deprozeß der Nachricht vollendet ist (180).
Fig. 4 ist ein Flußdiagramm eines Verfahrens zum Empfangen einer Nachricht über ein Computernetz gemäß der vorliegenden Erfindung, bei dem der Empfangscomputer bestimmt, wann alle Pakete einer Nachricht angekommen sind. In der Figur kommt ein Paket bei dem Bestimmungscomputer an (200), wonach die Nutzlast des Paketes an die Adresse, die in dem Paketan­ fangsblock angegeben ist, des Bestimmungscomputerspeichers kopiert wird (210). Der Akkumulator bei dem Bestimmungscom­ puter ist anfangs auf Null eingestellt. Der Deltawert des Paketes wird zu dem Akkumulator addiert (220) und der Akku­ mulatorwert wird überprüft, um zu bestimmen, ob der Wert dann Null ist, was angibt, daß alle Pakete der Nachricht an­ gekommen sind (230).
Wenn der Akkumulator bei einer Ankunft eines Pakets nach den benannten Berechnungen auf Null ist, wird der Anwendung mit­ geteilt, daß die Nachricht vollständig ist (240) und daß der Prozeß vollendet ist (250). Wenn der Akkumulator nicht auf Null ist (230), wartet der Bestimmungscomputer auf das näch­ ste Paket (260) und die Prozedur wiederholt sich, bis das letzte Paket empfangen ist, was durch den Akkumulator an­ gegeben wird, wenn derselbe auf Null zurückkehrt.
Richtigkeitsbeweis
Zuerst wird eine allgemeine Betrachtung gegeben: Die Summe der Deltafelder aller Pakete, die eine Nachricht bilden, ist in allen Fällen gleich dem Anfangswert des Zählers. Die ein­ zige Ausnahme stellt der Fall einer Mehrfachpaket-Nachricht zusammen mit dem anfänglichen Zählerstand von Null dar, wo­ bei dann die Summe gleich dem Modul M ist.
Der Beweis gliedert sich in drei Fälle. Beim Fall einer Ein­ fachpaket-Nachricht entspricht das Delta in dem einen und einzigen Paket gerade dem Wert des Zählers, derart, daß ΣΔ gleich dem anfänglichen Zählerwert ist. Der Mehrfachpaket-Fall gliedert sich auf zwei Teilfälle. Beim Fall, bei dem der Zähler am Anfang nicht Null ist, wird jedesmal, wenn ei­ ne "1" in dem Deltafeld gesendet wird, der Zähler um 1 er­ niedrigt, wobei die Invarianz beibehalten wird, daß die Sum­ me des gegenwärtigen Zählerwerts und die Deltafelder aller vorhergehenden Pakete konstant ist. Das Deltafeld in dem letzten Paket entspricht dem Wert des Zählers an diesem Punkt. Somit ist die Summe des Deltawertes des letzten Pake­ tes und aller vorhergehender Pakete gleich dem Anfangswert des Zählers. Beim Fall, bei dem der Zähler zu Anfang auf Null ist, wird angemerkt, daß, nachdem das erste Paket ge­ sendet worden ist, der Zähler M-1 enthält. Gemäß dem vorhe­ rigen Fall muß die Summe der Deltawerte aller restlichen Pa­ kete M-1 sein, wobei das Delta des ersten Pakets 1 ist, wo­ durch die komplette Summe der Deltawerte aller Pakete M sein muß.
Der Einzelsender-Fall
Aufgrund der vorherigen allgemeinen Betrachtung und der Vor­ bedingung, daß der Akkumulator anfänglich auf Null ist, kehrt der Akkumulator auf Null zurück, wenn alle Pakete, die die Nachricht bilden, angekommen sind. Der Beweis, daß nur dann Null enthalten wird, wenn alle Pakete angekommen sind, gliedert sich in zwei Fälle, wobei im ersten Fall gerade ein Paket existiert und im zweiten Fall die Anzahl von Paketen zwei oder größer ist. In dem ersten Fall beträgt der Delta­ wert ebenso wie der Anfangswert des Akkumulators Null, womit bei dem ersten Paket ein Nullwert erhalten wird, was korrekt ist. Im zweiten Fall sind alle Deltawerte nicht Null und po­ sitiv. Wenn mindestens ein Paket angekommen ist, darf die Summe nicht Null sein. Wenn irgendwelche Pakete fehlen, ist die Summe kleiner als das Modul und somit nicht ausreichend groß, damit der Akkumulator auf Null springt, wodurch der Akkumulator ungleich Null ist.
Der Mehrfachsender-Fall
Durch das Protokoll wird der Zähler eines Computers auf ei­ nen bestimmten Wert Ei initialisiert. Gemäß der allgemeinen Betrachtung, wenn alle Pakete von einem Computer mit der Nummer i angekommen sind, beträgt der Beitrag der Deltafel­ der dieser Pakete zu dem Wert in dem Akkumulator ki.
Wenn somit alle Pakete angekommen sind, hat der Akkumulator eine Summe von Σki = M akkumuliert, wodurch er gerade auf Null zurückgesprungen ist. Alle Pakete weisen ein Δ < 0 auf. Wenn somit irgendwelche Pakete fehlen, jedoch eines angekom­ men ist, muß die Summe der empfangenen Deltawerte kleiner als das Modul sein, dieselbe kann jedoch nicht Null sein, wodurch der Akkumulator nicht auf Null sein kann.
Der Dynamische-Sender-Fall
Jeder Quellencomputer besitzt eine Quote, die derselbe zwi­ schen sich selbst und weiteren Quellencomputern aufteilt, auf welche derselbe das Senden delegiert. Durch das Proto­ koll gleicht die Summe der Anfangsquoten dem Modul, wobei das Delegationsverfahren diese Invarianz schützt. Der Rest des Beweises ist zum Mehrfachsender-Fall identisch.
Die Variante mit einem getrennten Zähler G
G ist Null, wenn und nur wenn alle Endpakete angekommen sind. Somit hat jedes dieser Pakete seinen Beitrag zu dem Bestimmungscomputer-Akkumulator gebracht, wobei der Wert desselben dann gerade dem Negativen der Anzahl der ausste­ henden Pakete entspricht, und Null ist, wenn und nur wenn alle Pakete angekommen sind.
Es existiert eine Anzahl von möglichen abweichenden Proto­ kollen, bei denen der Zähler am Empfangscomputer auf einen Wert ungleich Null initialisiert wird. Der offensichtlichste Fall dafür ist dann gegeben, wenn jedem Computer wie in dem Mehrfachsender-Fall oder dem Dynamische-Sender-Fall eine be­ stimmte Quote ki gegeben worden ist, ohne daß die Begrenzung Σki = Modul existiert. Der Empfangscomputer stellt den An­ fangswert seines Akkumulators auf M-Σki ein. Aufgrund der allgemeinen Betrachtung erhöht die Ankunft aller Nachrichten den Akkumulator um ki, wodurch derselbe gerade das Modul er­ reicht und somit auf Null springt. Der Rest des Beweises entspricht dem des Mehrfachsender-Falls.
Obwohl die Erfindung bezugnehmend auf das bevorzugte Ausfüh­ rungsbeispiel beschrieben worden ist, ist es für Fachleute ohne weiteres offensichtlich, daß die hierin dargelegten An­ wendungen durch andere ersetzt werden können, ohne vom Be­ reich der vorliegenden Erfindung abzuweichen. Ein wichtiger Aspekt der Erfindung besteht beispielsweise darin, daß die Pakete Werte aufweisen, die sich auf einen Wert aufsummie­ ren, der dem Bestimmungscomputer bekannt sein kann. Das be­ vorzugte Ausführungsbeispiel der Erfindung setzt in die Del­ tafelder aller Pakete außer dem letzten Paket einer Nach­ richt eine "1" und einen speziellen Wert in das Deltafeld des letzten Paketes der Nachricht. Die Erfindung ist jedoch äquivalent auf ein beliebiges Schema anwendbar, das diese Werte oder irgendeine Darstellung derselben unabhängig von der Reihenfolge in die Pakete setzt. Die Erfindung ist eben­ falls auf ein beliebiges Schema anwendbar, das die Vorzei­ chen der Werte umkehrt oder dieselben mit einer Konstanten multipliziert. Zusätzlich können die akkumulierten Werte in beliebigen gewünschten Einheiten, wie z. B. Bytes oder Wör­ tern, sein.

Claims (30)

1. Vorrichtung zum Bestimmen, wann alle Pakete (29, 30, 31, 32) einer Nachricht (25), die über ein Computernetz (26) gesendet worden ist, an ihrer Bestimmung angekom­ men sind, mit folgenden Merkmalen:
einem Zähler (33), der bei einem Quellencomputer posi­ tioniert ist, wobei der Zähler (33) einen Anfangswert in sich speichert und angepaßt ist, um jedem Paket (29, 30, 31, 32) in einer Nachricht (24) einen Deltawert zu­ zuweisen; und
einem Akkumulator (28), der bei einem Bestimmungscompu­ ter positioniert ist, wobei der Akkumulator (28) ange­ paßt ist, um den Deltawert aus jedem Paket (29, 30, 31, 32) der Nachricht (25) zu extrahieren;
wobei dem Bestimmungscomputer mitgeteilt wird, daß alle Pakete (29, 30, 31, 32) in der Nachricht (25) nur dann angekommen sind, wenn die Summe der extrahierten Delta­ werte, die in dem Akkumulator (28) gespeichert sind, gleich dem Anfangswert ist, der in dem Akkumulator (28) gespeichert ist.
2. Vorrichtung gemäß Anspruch 1, bei der jedes Paket (29, 30, 31, 32) in der Nachricht (24,25) ein Deltafeld auf­ weist.
3. Vorrichtung gemäß Anspruch 1 oder 2, bei der ein erster Deltawert jedem Paket (30, 31, 32) außer dem letzten Paket (29) in einer Nachricht (24) zugewiesen ist, und die ferner folgendes Merkmal aufweist:
eine Einrichtung zum Dekrementieren des Zählers (33) für jedes gesendete Paket (30, 31, 32), wobei der Zähler (33) einen zweiten Deltawert speichert, der dem in dem Zähler (33) gespeicherten Anfangswert vermindert um die Anzahl von vorher gesendeten Paketen (30, 31, 32) gleich ist, und wobei der zweite Deltawert dem letzten Paket (29) zugewiesen ist.
4. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 3, bei der das Modul des Zählers (33) gleich dem Modul des Akkumulators (28) ist.
5. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 4, bei der die Nachricht (24) derart verteilt wird, daß sie von mindestens zwei Quellencomputern gesendet wird.
6. Vorrichtung gemäß Anspruch 5, bei der die Nachricht (24) ferner durch mindestens einen der mindestens zwei Quellencomputer auf mindestens einen zusätzlichen Quel­ lencomputer verteilt wird.
7. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 6, bei der das Computernetz (26) keine Lieferung der Pakete (29, 30, 31, 32) in der richtigen Reihenfolge garantieren kann.
8. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 7 mit folgendem zusätzlichen Merkmal:
einem Protokoll zum Initialisieren des Zählers (33) oder des Akkumulators (28) oder beider auf Null.
9. Vorrichtung gemäß Anspruch 8, bei der die Summe der Deltawerte für alle Pakete (29, 30, 31, 32) in einer Nachricht zu Null modulo dem Modul des Akkumulators (28) kongruent ist, derart, daß der Wert des Akkumu­ lators (28) ohne Rücksicht auf die Reihenfolge, in der die Pakete (29, 30, 31, 32) ankommen, auf Null zurück­ kehrt, wenn alle Pakete (29, 30, 31, 32) empfangen wor­ den sind.
10. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 9, die ferner folgendes Merkmal aufweist:
mindestens zwei Quellencomputer, wobei der Zähler (33) jedes Quellencomputers auf einen Wert ki initialisiert ist, wobei i für jeden Computer spezifisch ist, wobei ki eine positive Zahl ist, die größer oder gleich der Anzahl von Paketen (29, 30, 31, 32) ist, die die von diesem Computer zu sendende Nachricht (24) bilden; und
wobei die Summe der Zählerwerte dem Modul des Akkumu­ lators (28) entspricht.
11. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 10, die ferner folgendes Merkmal aufweist:
mindestens zwei Quellencomputer, wobei der Zähler (33) jedes Quellencomputers auf einen Wert ki initialisiert ist, wobei i für jeden Computer spezifisch ist, wobei ki eine positive Zahl ist, die größer oder gleich der Anzahl von Paketen (29, 30, 31, 32) ist, die die von diesem Computer zu sendende Nachricht (24) bilden, und wobei der Akkumulator (28) des Empfangscomputers auf eine Zahl initialisiert ist, die durch das Modul des Akkumulators (28) verringert um die Summe der ki gege­ ben ist.
12. Vorrichtung gemäß einem beliebigen der Ansprüche 1 bis 11, wobei die Vorrichtung ferner folgendes Merkmal auf­ weist:
mindestens einen Quellencomputer, der dem Bestimmungs­ computer direkt bekannt ist, wobei mindestens einer der Quellencomputer eine Nachrichtenübertragung zu einem oder mehr Delegierungs-Quellencomputern delegieren kann, und wobei der Quellencomputer eine Quote empfängt und der Zähler (33) in dem Quellencomputer auf die Quo­ te, die derselbe empfängt, minus der Summe von Quoten, die zu dem einen oder zu den mehreren Delegierungs-Quellen­ computern weitergegeben wurde, initialisiert ist.
13. Vorrichtung gemäß Anspruch 12, bei der die Quoten, die durch einen speziellen Quellencomputer delegiert worden sind, eine empfangene Quote nicht überschreiten dürfen.
14. Vorrichtung gemäß Anspruch 12 oder 13, bei der kein Quellencomputer eine Nachricht (24) senden kann, die mehr Pakete (29, 30, 31, 32) enthält, als seine Quote groß ist.
15. Vorrichtung gemäß einem beliebigen der Ansprüche 12 bis 14, bei der ein Quellencomputer, der zu weiteren Quel­ lencomputern delegiert, nicht mehr als die Quote, die er empfangen hat minus der Quote, die er für sich selbst zurückhält, delegieren kann.
16. Verfahren zum Bestimmen, wann alle Pakete (29, 30, 31, 32) einer Nachricht (25), die über ein Computernetz (26) gesendet worden ist, an ihrer Bestimmung angekom­ men sind, mit folgenden Schritten:
Speichern (110) eines Anfangswertes in einem Zähler (33), der bei einem Quellencomputer positioniert ist;
Zuweisen (130, 160) eines Deltawertes jedem Paket (29, 30, 31, 32) in einer Nachricht (24);
Senden (150, 170) jedes Paketes (29, 30, 31, 32) von dem Quellencomputer zu einem Bestimmungscomputer über das Computernetz (26);
Extrahieren des Deltawertes von jedem Paket (29, 30, 31, 32) der Nachricht (25) bei dem Bestimmungscomputer;
Summieren (220) der extrahierten Deltawerte in einem Akkumulator (28), der bei dem Bestimmungscomputer posi­ tioniert ist; und
Benachrichtigen des Bestimmungscomputers, daß alle Pa­ kete (29, 30, 31, 32) der Nachricht (25) angekommen sind, nur, wenn die Summe der extrahierten Deltawerte, die in dem Akkumulator (28) gespeichert sind, gleich dem Anfangswert ist, der in dem Akkumulator (28) ge­ speichert ist.
17. Verfahren gemäß Anspruch 16, bei dem jedes Paket (29, 30, 31, 32) in der Nachricht (24, 25) ein Deltafeld aufweist.
18. Verfahren gemäß Anspruch 16 oder 17, bei dem ein erster Deltawert jedem Paket (30, 31, 32) einer Nachricht außer dem letzten Paket (29) zugewiesen wird und das ferner folgende Schritte aufweist:
Dekrementieren (140) des Zählers (33) für jedes gesen­ dete Paket (30, 31, 32);
Speichern (160) eines zweiten Deltawerts, der dem an­ fänglichen Zählerwert minus der Anzahl von vorher ge­ sendeten Paketen (30, 31, 32) gleich ist; und
Zuweisen (160) eines zweiten Deltawerts zu dem letzten Paket (29).
19. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 18, bei dem das Modul des Zählers (33) gleich dem Modul des Akkumulators (28) ist.
20. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 19, bei dem die Nachricht (24) derart verteilt ist, daß sie durch mindestens zwei Quellencomputer gesendet wird.
21. Verfahren gemäß Anspruch 20, bei dem die Nachricht (24) ferner durch mindestens einen der mindestens zwei Quel­ lencomputer auf mindestens einen zusätzlichen Quellen­ computer verteilt wird.
22. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 21, bei dem das Computernetz (26) keine Lieferung der Pakete (29, 30, 31, 32) in der richtigen Reihenfolge garantieren kann.
23. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 22, das ferner folgenden Schritt aufweist:
Initialisieren entweder des Zählers (33) oder des Akku­ mulators (28) oder beider auf Null.
24. Verfahren gemäß Anspruch 23, bei dem die Summe der Del­ tawerte für alle Pakete (29, 30, 31, 32) in einer Nach­ richt zu Null modulo dem Modul des Akkumulators (28) kongruent ist, derart, daß der Wert des Akkumulators (28) ohne Rücksicht auf die Reihenfolge, in der die Pa­ kete (29, 30, 31, 32) ankommen, auf Null zurückkehrt, wenn alle Pakete (29, 30, 31, 32) empfangen worden sind.
25. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 24, das ferner folgenden Schritt aufweist:
Initialisieren der Zähler (33) von jedem von mindestens zwei Quellencomputern auf einen Wert ki, wobei i für jeden Computer spezifisch ist, wobei ki eine positive Zahl ist, die größer oder gleich der Anzahl von Paketen (29, 30, 31, 32) ist, die eine von diesem Computer zu sendende Nachricht (24) enthalten kann; und wobei die Summe der Zählerwerte dem Modul des Akkumulators (28) entspricht.
26. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 25, das ferner folgenden Schritt aufweist:
Initialisieren der Zähler (33) jedes von mindestens zwei Quellencomputern auf einen Wert ki, wobei i für jeden Computer spezifisch ist, wobei ki eine positive Zahl ist, die größer oder gleich der Anzahl von Paketen (29, 30, 31, 32) ist, die die Nachricht (24), die von diesem Computer gesendet werden soll, enthält; und
wobei der Akkumulator (28) des Empfangscomputers auf eine Zahl initialisiert wird, die durch das Modul des Akku­ mulators (28) verringert um die Summe der ki gegeben ist.
27. Verfahren gemäß einem beliebigen der Ansprüche 16 bis 26, das ferner folgende Schritte aufweist:
Delegieren einer Nachrichtenübertragung von mindestens einem von zwei Quellencomputern zu mindestens einem zu­ sätzlichen Quellencomputer;
Geben einer Quote jedem Quellencomputer; und
Einstellen des Zählers (33) in dem Quellencomputer auf die ursprüngliche Quote minus der Summe der Quoten, die zu jedem zusätzlichen Computer delegiert worden sind.
28. Verfahren gemäß Anspruch 27, bei dem die Quoten, die von einem speziellen Quellencomputer delegiert worden sind, eine empfangene Quote nicht überschreiten dürfen.
29. Verfahren gemäß Anspruch 27 oder 28, bei dem kein Quel­ lencomputer eine Nachricht (24) senden kann, die mehr Pakete (29, 30, 31, 32) enthält, als seine Quote groß ist.
30. Verfahren gemäß einem beliebigen der Ansprüche 27 bis 29, bei dem ein Quellencomputer, der zu weiteren Quel­ lencomputern delegiert, nicht mehr als die Quote, die er empfangen hat minus der Quote, die er für sich selbst zurückhält, delegieren kann.
DE19543892A 1995-02-24 1995-11-24 Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind Withdrawn DE19543892A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/393,650 US5587997A (en) 1995-02-24 1995-02-24 Method and apparatus for determining when all packets of a message have arrived

Publications (1)

Publication Number Publication Date
DE19543892A1 true DE19543892A1 (de) 1996-08-29

Family

ID=23555663

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19543892A Withdrawn DE19543892A1 (de) 1995-02-24 1995-11-24 Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind

Country Status (4)

Country Link
US (1) US5587997A (de)
JP (1) JPH08265365A (de)
DE (1) DE19543892A1 (de)
GB (1) GB2298343A (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011778A (en) * 1997-03-20 2000-01-04 Nokia Telecommunications, Oy Timer-based traffic measurement system and method for nominal bit rate (NBR) service
US6151321A (en) * 1997-11-14 2000-11-21 Fore Systems, Inc. Method and system for sending ATM cells to an ATM network from a host
US6185208B1 (en) * 1998-04-30 2001-02-06 Phone.Com, Inc. Method and apparatus for fragmenting messages for a wireless network using group sharing of reference numbers
EP1011226A1 (de) * 1998-12-17 2000-06-21 Alcatel Verfahren und Anlage zur Überwachung von Datenverkehr und Telekommunikationsnetzwerk mit einer solchen Anlage
JP3349490B2 (ja) * 2000-02-14 2002-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像表示方法、画像表示システム、ホスト装置、画像表示装置、およびディスプレイ用インターフェイス
US7162512B1 (en) * 2000-02-28 2007-01-09 Microsoft Corporation Guaranteed exactly once delivery of messages
US6473435B1 (en) * 2000-06-30 2002-10-29 Marconi Communications, Inc. Method and apparatus for transferring packets to a memory
US20070258383A1 (en) * 2004-09-03 2007-11-08 Takeshi Wada Packet Loss Measurement Device and Error Rate Measurement Device Using the Same
US7619993B2 (en) * 2005-11-01 2009-11-17 International Business Machines Corporation Efficient probabilistic duplicate packet detector in computer networks
US8923124B1 (en) 2006-01-31 2014-12-30 Juniper Networks, Inc. Data unit counter
US8130761B2 (en) * 2008-01-22 2012-03-06 Dell Products L.P. Method and system for providing confirmed delivery of ethernet packets
CN110865891B (zh) * 2019-09-29 2024-04-12 深圳市华力特电气有限公司 一种异步消息编排方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769810A (en) * 1986-12-31 1988-09-06 American Telephone And Telegraph Company, At&T Bell Laboratories Packet switching system arranged for congestion control through bandwidth management
JPH04138743A (ja) * 1990-09-29 1992-05-13 Toshiba Corp トラヒック監視方式
US5361363A (en) * 1990-10-03 1994-11-01 Thinking Machines Corporation Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes
US5187707A (en) * 1990-12-03 1993-02-16 Northern Telecom Limited Packet data flow control for an isdn D-channel
DE69126604T2 (de) * 1991-03-13 1998-01-08 Ibm Anpassungseinrichtung und Verfahren zur wirksamen Verbindung von Datenverarbeitungseinrichtungen und Netzwerken
US5361393A (en) * 1992-01-28 1994-11-01 Prodigy Services Company Method for improving interactive-screen uploading of accounting data
SE515419C2 (sv) * 1993-06-15 2001-07-30 Ericsson Telefon Ab L M Förfarande och anordning för resekvensiering

Also Published As

Publication number Publication date
GB2298343A (en) 1996-08-28
US5587997A (en) 1996-12-24
GB9602503D0 (en) 1996-04-03
JPH08265365A (ja) 1996-10-11

Similar Documents

Publication Publication Date Title
DE69033551T2 (de) Vermeidung von Überlastung in Computer-Netzwerken mit Hilfe von Verzögerung
DE69833928T2 (de) Netzwerkbandbreitensteuerung
DE69702708T2 (de) Verfahren und vorrichtung für klientverwaltete flusssteuerung in einem rechnersystem mit begrenztem speicher
DE69330675T2 (de) Verbesserte Paketstruktur für Netzschicht
DE60031516T2 (de) Verfahren und gerät für die verwaltung eines netzflusses in einer hochleistungs-netzschnittstelle
DE60038600T2 (de) Netzwerk-Datenübertragungs-Zuteilungsverfahren und -vorrichtungen zum Bestimmen einer Paketübertragungspriorität zwichen einer Vielzahl von Datenströmen
DE69634928T2 (de) Netzwerkverwaltungssystem mit verbesserter Knotenerkennung und -überwachung
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69829203T2 (de) Paketnetzwerk
DE69927252T2 (de) Auf der Überwachung der Belegung von Puffern basierte Planung der Netzwerkkapazität
DE69321145T2 (de) Verfahren und vorrichtung zur herausarbeitung der vermittlungsinformation aus dem kopfteil eines protokolls
DE69735740T2 (de) Asynchrone paketvermittlung
DE3780799T2 (de) Anordnung zur ueberlastregelung durch bandbreitenverwaltung fuer paketvermittlungssystem.
DE69318081T2 (de) Prioritätsverwaltung in einem Netzwerk
DE60202136T2 (de) Cache-eintrag-auswahlverfahren und -vorrichtung
DE69919994T2 (de) Reduzierter paketkopf im drahtlosen nachrichtennetz
DE69330791T2 (de) Verfahren und Einrichtung zum Datentransfer in ein ATM-Netz
EP0483397B1 (de) Verfahren zur Überwachung von einer Bitrate von wenigstens einer virtuellen Verbindung
EP0902600B1 (de) Verfahren zum Einrichten von logischen Verbindungen in einem synchronen digitalen Nachrichtenübertragungsnetz, Netzelement und Managementsystem
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60000023T2 (de) Vom Rechenaufwand her effizientes Verkehrsformer
EP1466425B1 (de) Verfahren zur reduzierung der latenzzeit bei der interaktiven datenkommunikation über ein satellitennetzwerk
DE19543892A1 (de) Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind
DE60132360T2 (de) Verwaltung von netzwerk-verkehr durch anwendung einer hashfunktion
DE60127499T2 (de) Routenaktualisierungsverfahren für ein Mikromobilitätsnetzwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal