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 sindInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer 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.
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ß.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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)
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)
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 |
-
1995
- 1995-02-24 US US08/393,650 patent/US5587997A/en not_active Expired - Lifetime
- 1995-11-24 DE DE19543892A patent/DE19543892A1/de not_active Withdrawn
-
1996
- 1996-01-31 JP JP8015704A patent/JPH08265365A/ja active Pending
- 1996-02-07 GB GB9602503A patent/GB2298343A/en not_active Withdrawn
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 |