DE69923041T2 - Einrichtung für Datenübertragung, Verfahren und Rechnerprogrammprodukt zur Durchführung eines Datenkommunikationsprotokolls mit einer effizienten Bildung von Datagrammen - Google Patents

Einrichtung für Datenübertragung, Verfahren und Rechnerprogrammprodukt zur Durchführung eines Datenkommunikationsprotokolls mit einer effizienten Bildung von Datagrammen Download PDF

Info

Publication number
DE69923041T2
DE69923041T2 DE69923041T DE69923041T DE69923041T2 DE 69923041 T2 DE69923041 T2 DE 69923041T2 DE 69923041 T DE69923041 T DE 69923041T DE 69923041 T DE69923041 T DE 69923041T DE 69923041 T2 DE69923041 T2 DE 69923041T2
Authority
DE
Germany
Prior art keywords
datagrams
datagram
records
data
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69923041T
Other languages
English (en)
Other versions
DE69923041D1 (de
Inventor
Barry K. Winchester Aldred
Paul A. Winchester Beaven
Davin M. Winchester Coleman
Brian P. E. Winchester Fisk
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69923041D1 publication Critical patent/DE69923041D1/de
Application granted granted Critical
Publication of DE69923041T2 publication Critical patent/DE69923041T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/12Protocol engines

Description

  • Die vorliegende Erfindung betrifft Protokolle (d.h. Sätze von Regeln) für die Übertragung von digitalen Daten zwischen einem Absender und einem Empfänger (der Absender und der Empfänger sind z.B. Computersysteme, die sich an unterschiedlichen physischen Orten befinden).
  • Die gebräuchliche Form der digitalen Datenübertragung enthält das Senden von digitalen Daten in der Form von Datagrammen über ein Netz. Siehe z.B. Computer Networks von Andrew S. Tanenbaum, Prentice-Hall Inc., Eaglewood Cliffs, NJ 1981. Ein Datagramm ist eine Gruppe von Bits, die einen Abschnitt der digitalen Daten, die zu übertragen sind, darstellen, und jedes Datagramm wird einzeln vom Netz behandelt. Somit unterteilt die Datenverarbeitungseinheit des Absenders dann, wenn eine große Datenmenge von einer Datenverarbeitungseinheit des Absenders zu einer Datenverarbeitungseinheit des Empfängers zu übertragen ist, die große Datenmenge in Blöcke kleinerer Größe (die nachfolgend als Datensätze bezeichnet werden) und packt diese Sätze in Datagramme für eine Übertragung über ein Datenübertragungsnetz zu der Datenverarbeitungseinheit des Empfängers. Die Datagramme, die über das Netz gesendet werden, haben eine Größe im Bereich von 1 Byte bis zu einer festen Anzahl (beispielsweise n) Bytes. Die Datensätze, die in die Datagramme gepackt werden sollen, können ebenfalls eine Größe im Bereich von 1 Byte bis zu einer anderen festen Anzahl (beispielsweise m) Bytes besitzen.
  • Immer dann, wenn ein Datagramm über das Netz gesendet wird, gibt es verschiedene Verwaltungsdaten, die mit einer derartigen Übertragung verbunden sind. Erstens wird eine Zeitdauer benötigt, um jedes Datagramm an dem sendenden und an dem empfangenden Ende zu verarbeiten. Diese Zeitdauer wird in zwei Komponenten unterteilt: einen festen Betrag für jedes Datagramm und einen Betrag, der zu der Größe des Datagramms proportional ist. Der feste Betrag ist gewöhnlich bedeutend größer als der variable Betrag. Zweitens muss jedes Datagramm spezielle ihm zugeordnete Daten (Adressinformationen usw.) aufweisen, die eine feste Menge der speziellen Daten beinhalten, die jedem Datagramm anzufügen sind. Infolge dieser Verwaltungsdaten ist es deswegen nicht zweckmäßig, kleine Datagramme über das Netz zu senden.
  • Die übliche Technik zum Packen von Datensätzen in Datagramme beinhaltet das Übernehmen der Datensätze in einer Reihenfolge. Es soll z.B. eine Aufstellung von Datensätzen mit variabler Länge von 200 Byte, 250 Byte, 100 Byte und 50 Byte in eine Vielzahl von 512 Byte-Datagrammen gepackt werden. Die ersten beiden Sätze können in das erste Datagramm gepackt werden (da die Summe von 200 Byte und 250 Byte in ein 512 Byte-Datagramm passt). Der nächste Datensatz (von 100 Byte) passt jedoch nicht hinein (da 450 plus 100 größer ist als die Kapazität eines Datagramms von 512 Byte). Somit muss der 100 Byte-Datensatz in das nächste Datagramm gepackt werden.
  • Ein Problem bei dieser Technik des Standes der Technik besteht jedoch darin, dass in dem ersten Datagramm ein bestimmter Platz übrigbleibt, der nicht genutzt wurde. Somit werden die oben erläuterten Verwaltungsdaten für eine Datenübertragung verwendet, die kleiner ist als andernfalls möglich. Wenn ferner bestimmte Datenübertragungsnetze verwendet werden, wie etwa ein Mobilnetz, kann die Übertragungszeit sehr teuer sein, deshalb ist es äußerst vorteilhaft, wenn möglichst wenige Datagramme über das Netz übertragen werden, wobei möglichst viele Daten in jedes Datagramm gepackt sind. Dadurch hat der gegenwärtige Stand der Technik auf diesem Gebiet eine wenig leistungsfähige und möglicherweise sehr teure Systemarchitektur zur Folge.
  • Patent Abstracts of Japan, Bd. 012, Nr. 072 (E-588), 5. März 1988, offenbart eine Technik zum Packen von Datagrammen, bei der Datensätze gleicher Länge aus der Reihenfolge herausgenommen werden.
  • Gemäß einem ersten Aspekt stellt die Erfindung eine Datenübertragungsvorrichtung bereit, die mit einem Netz verbunden ist, durch welches Datagramme von der Datenübertragungsvorrichtung zu wenigstens einer anderen Datenübertragungsvorrichtung, die ebenfalls mit dem Netz verbunden ist, übertragen werden, wie im Anspruch 1 beansprucht ist.
  • Das Mittel zum Zuweisen berücksichtigt vorzugsweise zu einem Zeitpunkt lediglich ein Datagramm, wenn Datensätze Datagrammen zugeordnet werden. Das Mittel zu Zuweisen berücksichtigt jedoch alternativ zu einem Zeitpunkt eine Vielzahl von Datagrammen, wenn Datensätze Datagrammen zugeordnet werden.
  • Vorzugsweise muss jeder Datensatz kleiner als oder gleichgroß wie jedes Datagramm sein. Alternativ ist der Datensatz jedoch größer als ein Datagramm.
  • Gemäß einem zweiten Aspekt stellt die Erfindung ein Verfahren zum Ausführen der Funktionen dar, die in Bezug auf den ersten Aspekt genannt wurden.
  • Gemäß einem dritten Aspekt stellt die Erfindung ein auf einem computerlesbaren Speichermedium gespeichertes Computerprogrammprodukt bereit, das dann, wenn es auf einem Computersystem läuft, die Funktionen ausführt, die in Bezug auf den ersten Aspekt genannt wurden.
  • Durch das Herausnehmen von Datensätzen aus der Reihenfolge, wenn Datensätze Datagrammen zugewiesen werden, und indem dadurch vor der Übertragung möglichst viele Daten in jedes Datagramm gepackt werden, ist eine sehr leistungsfähige Nutzung des Übertragungsaufwandes möglich. Das schafft eine sehr große Kosteneinsparung, insbesondere dann, wenn das Netz drahtlos ist, bei dem es (im Vergleich zu Drahtnetzen) teuer ist, ein Datagramm zu übertragen.
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun unter Bezugnahme auf die beigefügten Figuren genau beschrieben, durch die ein besseres Verständnis der Erfindung möglich ist.
  • 1 ist ein Blockschaltplan einer Vielzahl von Datenübertragungsvorrichtungen, die mit einem Netz verbunden sind, wobei die bevorzugte Ausführungsform der vorliegenden Erfindung in diesem Kontext beschrieben wird;
  • 2 ist ein Ablaufplan, der die Schritte erläutert, die beim Packen von Datensätzen in Datagramme gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung angewendet werden; und
  • 3 veranschaulicht ein Beispiel des Packens von Daten, das gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ausgeführt wird.
  • Wie in 1 gezeigt ist, ist eine Datenübertragungsvorrichtung 10 (die ein Personalcomputer sein könnte) mit einem Netz 11 (das das Internet oder ein anderes Netz zum Verbinden von Datenübertragungsgeräten sein könnte) verbunden. An das Netz 11 sind außerdem weitere Datenübertragungsvorrichtungen 12, 13 und 14 angeschlossen. Jede Datenübertragungsvorrichtung kann mit anderen Datenübertragungsvorrichtungen kommunizieren, indem Daten über das Netz gesendet werden.
  • Die Datenübertragungsvorrichtung 10 ist genauer gezeigt, und es wird bei der folgenden Erläuterung angenommen, dass diese Vorrichtung 10 Daten an wenigstens eine weitere Datenübertragungsvorrichtung (12, 13 und/oder 14) sendet. Die Vorrichtung 10 enthält eine Speichereinheit 101 zum Speichern von Daten, die durch die Vorrichtung 10 übertragen werden sollen. Diese Speichereinheit 101 könnte ein Festplattenlaufwerk, ein Floppy-Disk-Laufwerk, ein Halbleiterspeicher oder eine andere wohlbekannte Speichereinheit sein. Eine Datenzugriffeinheit 102 wählt aus, welche Daten zu übertragen sind, greift auf diese Daten in der Speichereinheit 101 zu und leitet dann die Daten, auf die zugegriffen wurde, zu einer Datensatz-Bildungseinheit 103. Die Datensatz-Bildungseinheit 103 teilt die Daten in Datensätze mit verschiedenen Größe auf, wobei einige Datensätze z.B. kleiner sind als andere. Die Datensatz-Bildungseinheit 103 sendet dann die Datensätze zu der Datenpackeinheit 104, die die Datensätze in Datagramme packt (die Einheit 104 nimmt z.B. die Datensätze, die nachfolgend als Datagramm bezeichnet werden, und weist sie einer netzeigenen Datenübertragungseinheit 11 zu).
  • Die Funktion, die von der Datenpackeinheit 104 ausgeführt wird, wenn sie von der Datensatz-Bildungseinheit 103 mit Datensätzen beliefert wird, wird nachfolgend in Verbindung mit dem Ablaufplan von 2 beschrieben. Zuerst wird jedoch eine Quellencodeversion der Funktionalität angegeben, um diese Funktionalität deutlich zu veranschaulichen:
  • Figure 00060001
  • In 4 beginnt der Prozess des Packens von Datensätzen in ein erstes Datagramm. Im Schritt 200 wird ein erstes Datagramm zum Packen vorbereitet (d.h., die Datenpackeinheit 104 konzentriert sich auf ein erstes Datagramm, dem sie nun Datensätze zuweist). Im Schritt 201 wird festgestellt, ob der in diesem ersten Datagramm zur Verfügung stehende Platz (d.h. der Teil des Datagramms, in den noch keine Datagramme geschrieben wurden) größer oder gleich dem kleinsten Datensatz ist, der noch keinem Datagramm zugewiesen wurde. Das heißt, es wird ermittelt, ob noch Raum vorhanden ist, einen weiteren Datensatz in dieses erste Datagramm einzufügen. Wenn die Antwort "ja" lautet, geht das Programm zum Schritt 202, in dem der größte nicht zugewiesene Datensatz, der in den verfügbaren Raum in dem ersten Datagramm passt, dem ersten Datagramm zugewiesen wird. Wenn die Antwort im Schritt 201 "nein" lautet, geht die Steuerung zum Schritt 204, in dem veranlasst wird, dass das erste Datagramm von der Datenpackeinheit 104 zum Netz 11 für eine Übertragung zu einer empfangenden Vorrichtung (z.B. 12) geleitet wird. In diesem Fall ist in diesem Datagramm kein Platz mehr vorhanden, um einen weiteren Datensatz zu packen, so dass das Datagramm über das Netz 11 ausgesendet wird. Nachdem der Schritt 204 ausgeführt wurde, geht die Steuerung zum Schritt 205, in dem ein zweites Datagramm zum Packen vorbereitet wird, wobei die Steuerung anschließend zurück zum Schritt 201 geht.
  • Wenn der Schritt 202 ausgeführt wurde, geht die Steuerung zum Schritt 203, in dem festgestellt wird, ob restliche Datensätze vorhanden sind, die noch darauf warten, einem Datagramm zugewiesen zu werden. Wenn das der Fall ist, schleift die Steuerung zurück zum Schritt 201. Wenn das nicht der Fall ist, geht die Steuerung zum Schritt 206, in dem festgestellt wird, ob Datagramme vorhanden sind, in welche wenigstens ein Datensatz gepackt wurde, die jedoch noch nicht über das Netz 11 gesendet wurden. Wenn das der Fall ist, wird ein derartiges Datagramm im Schritt 207 über das Netz gesendet, wobei anschließend der Steuerungsablauf endet. Wenn das nicht der Fall ist, endet der Steuerungsablauf.
  • Es wird nun ein weiteres Beispiel behandelt, um ein noch deutlicheres Verständnis der Funktionalität zu schaffen, die in der Datenpackeinheit 104 der bevorzugten Ausführungsform der vorliegenden Erfindung enthalten ist. In dem Beispiel greift die Datenzugriffseinheit 102 aus der Speichereinheit 101 auf einen Datenblock zu, der 81 Bytes enthält. Diese 81 Bytes sollen von der Datenübertragungsvorrichtung 10 zu einer anderen Datenübertragungsvorrichtung 13 über das Netz 11 übertragen werden.
  • Die Datenzugriffseinheit 102 sendet den Datenblock aus 81 Bytes zu der Datensatz-Bildungseinheit 103, die den Block in 8 Datensätze DR1 bis DR8 mit unterschiedlichen Größen unterteilt, wie nahe am oberen Rand von 3 gezeigt ist. Der erste Datensatz DR1 repräsentiert die ersten 8 Bytes des 81-Byte-Datenblocks. Der zweite Datensatz DR2 repräsentiert die nächsten 4 Bytes des 81-Byte-Datenblocks. Der dritte Datensatz DR3 repräsentiert die nächsten 7 Bytes des 81-Byte-Datenblocks. Dieses Muster setzt sich fort bis zum letzten Datensatz DR8, der die letzten 9 Bytes des 81-Byte-Datenblocks repräsentiert.
  • Die Datensatz-Bildungseinheit 103 leitet dann diese acht Datensätze DR1 bis DR8 an die Datenpackeinheit 104 weiter, die die Datensätze DR1 bis DR8 für eine Übertragung über das Netz 11 in Datagramme packt. Für ein erstes Datagramm (Datagramm 1, nahe am unteren Rand von 3) mit der Länge von 35 Byte beginnt die Steuerung im Schritt 201, in dem festgestellt wird, dass in dem Datagramm 1 ausreichend verfügbarer Raum übrig ist (da bisher noch keine Datensätze in das Datagramm 1 gepackt wurden), und deswegen wird der ja-Zweig genommen. Im Schritt 202 wird der größte nicht zugewiesene Datensatz, z.B. DR5 mit der Länge 20 Byte, dem Datagramm 1 zugewiesen. Im Schritt 203 wird ermittelt, dass weitere sieben Datensätze vorhanden sind, die noch gepackt werden müssen, deshalb schleift die Steuerung zurück zum Schritt 201.
  • Im Schritt 201 wird festgestellt, dass der im Datagramm 1 verfügbare Raum eine Größe von 15 Byte hat (z.B. 35 Bytes minus 20 Bytes sind 15 Bytes) und dass diese 15 Byte größer sind als der kleinste verfügbare Datensatz (der Datensatz DR7 mit einer Länge von 3 Byte). Deswegen geht die Steuerung zum Schritt 202, in dem der größte nicht zugewiesene Datensatz, der in das Datagramm passt, dem Datagramm 1 zugewiesen wird. Da in diesem Fall im Datagramm 1 15 Byte zur Verfügung stehen, ist DR3 mit einer Länge von 15 Byte der größte verfügbare Datensatz, der in das Datagramm 1 passt und deswegen wird DR3 dem Datagramm 1 zugewiesen. Dann geht die Steuerung zum Schritt 202, in dem festgestellt wird, dass weitere Datensätze vorhanden sind, die noch zugewiesen werden müssen, deswegen geht die Steuerung wieder zum Schritt 201.
  • Diesmal wird im Schritt 201 festgestellt, dass der im Datagramm 1 verfügbare Raum nicht größer oder gleich dem kleinsten zur Verfügung stehenden Datensatz ist (da im Datagramm 1 kein freier Raum mehr zur Verfügung steht und 0 Byte nicht mehr oder gleich 3 Bytes ist). Deswegen geht die Steuerung zum Schritt 204, in dem das Datagramm 1 über das Netz 11 zur Datenübertragungsvorrichtung 13 gesendet wird. Dann geht die Steuerung zum Schritt 205, in dem ein weiteres Datagramm, das Datagramm 2 (das ebenfalls eine Länge von 35 Byte aufweist) zum Packen vorbereitet wird. Die Steuerung kehrt dann zum Schritt 201 zurück, in dem festgestellt wird, ob der im Datagramm 2 zur Verfügung stehende Raum größer als der kleinste verfügbare Datensatz ist. Die Antwort ist in diesem Fall "ja", da die gesamten 35 Bytes des Datagramms 2 zum Packen von Datensätzen zur Verfügung stehen, und somit geht die Steuerung zum Schritt 202. Im Schritt 202 wird der größte nicht zugewiesene Datensatz (z.B. DR6 mit 15 Byte) dem Datagramm 2 zugewiesen. Im Schritt 203 wird dann festgestellt, dass noch weitere Datensätze zugewiesen werden müssen und deswegen geht die Steuerung wieder zum Schritt 201.
  • Im Schritt 201 wird festgestellt, dass der im Datagramm 2 zur Verfügung stehende Raum, der eine Größe von 20 Byte hat, (35 Bytes minus 15 Bytes sind 20 Bytes) größer ist als der kleinste zur Verfügung stehende Datensatz (DR7 mit 3 Bytes), da 20 Bytes mehr als 3 Bytes sind. Deswegen geht die Steuerung zum Schritt 202, in dem der größte nicht zugewiesene Datensatz (DR8 mit der Länge 9 Byte) dem Datagramm 2 zugewiesen wird. Da im Schritt 203 immer noch Datensätze zugewiesen werden müssen, schleift die Steuerung zurück zum Schritt 201.
  • Im Schritt 201 wird festgestellt, dass der im Datagramm 2 zur Verfügung stehende Raum, der eine Größe von 11 Byte hat (20 Byte minus 9 Byte sind 11 Byte) größer ist als der kleinste zur Verfügung stehende Datensatz (DR3 mit 3 Byte), da 11 Byte größer als 3 Byte sind. Deswegen geht die Steuerung zum Schritt 202, in dem der größte nicht zugewiesene Datensatz (DR1 mit der Länge 8 Byte) dem Datagramm 2 zugewiesen wird. Da im Schritt 203 immer noch Datensätze zugewiesen werden müssen, schleift die Steuerung zurück zum Schritt 201.
  • Im Schritt 201 wird festgestellt, dass der im Datagramm 2 zur Verfügung stehende Raum, der eine Größe von 3 Byte hat (11 Byte minus 8 Byte sind 3 Byte), gleich dem kleinsten zur Verfügung stehenden Datensatz ist (DR7 mit 3 Byte). Deswegen geht die Steuerung zum Schritt 202, in dem der größte nicht zugewiesene Datensatz, der passt (DR7 mit der Länge 3 Byte) dem Datagramm 2 zugewiesen wird. Da im Schritt 203 immer noch Datensätze zugewiesen werden müssen, schleift die Steuerung zurück zum Schritt 201.
  • Diesmal wird im Schritt 201 festgestellt, dass der im Datagramm 2 zur Verfügung stehende Raum nicht größer oder gleich dem kleinsten zur Verfügung stehenden Datensatz ist (da in dem Datagramm 2 kein Platz mehr zur Verfügung steht). Deswegen geht die Steuerung zum Schritt 204, in dem das Datagramm 2 über das Netz 11 an die Datenübertragungsvorrichtung 13 gesendet wird. Dann geht die Steuerung zum Schritt 205, in dem ein weiteres Datagramm, das Datagramm 3 (das eine Länge von 30 Byte aufweist) zum Packen vorbereitet wird. Die Steuerung kehrt dann zum Schritt 201 zurück.
  • Im Schritt 201 wird festgestellt, dass der im Datagramm 3 zur Verfügung stehende Raum (die gesamten 30 Bytes) größer ist als der kleinste zur Verfügung stehende Datensatz (der nun DR2 mit einer Länge von 4 Byte ist), und deswegen geht die Steuerung zum Schritt 202, in dem der größte nicht zugewiesene Datensatz (z.B. DR4 mit 7 Byte) dem Datagramm 3 zugewiesen wird. Die Steuerung geht dann zum Schritt 203, in dem festgestellt wird, dass noch ein weiterer Datensatz (z.B. DR2) zugewiesen werden muss, deswegen geht die Steuerung zum Schritt 201. Im Schritt 201 wird festgestellt, dass der im Datagramm 3 zur Verfügung stehende Raum eine Größe von 23 Byte hat (30 Bytes minus 7 Bytes sind 23 Bytes) und dieser größer ist als der kleinste zur Verfügung stehende Datensatz (DR2 hat eine Länge von 4 Byte), deshalb geht die Steuerung zum Schritt 202, in dem DR2 dem Datagramm 3 zugewiesen wird.
  • Nun wird im Schritt 203 der "nein"-Zweig genommen, da keine weiteren Datensätze zugewiesen werden müssen. Die Steuerung geht somit zum Schritt 206, in dem festgestellt wird, dass ein Datagramm vorhanden ist (z.B. das Datagramm 3), das noch nicht gesendet wurde, in das jedoch wenigstens ein Datensatz gepackt wurde (z.B. DR4 und DR2). Somit wird der "ja"-Zweig genommen, und die Steuerung geht zum Schritt 207, in dem das Datagramm 3 über das Netz 11 an die Datenübertragungsvorrichtung 13 gesendet wird, woraufhin der Steuerungsablauf schließlich beendet wird.
  • Die empfangende Datenübertragungsvorrichtung 13 muss lediglich jeden Datensatz jeweils aus den empfangenen Datagrammen entnehmen und die Datensätze an der richtigen Stelle in eine verknüpfte Liste aus Datensätzen einsetzen. Die Daten können dann in der korrekten Reihenfolge ausgelesen werden, wobei die Teile eine beliebige geeignete Größe aufweisen können. Am sendenden Ende sollte demzufolge jedem Datagramm und außerdem jedem Datensatz in dem Datagramm ein kleiner Kopfabschnitt angefügt werden, um die enthaltenen Daten zu kennzeichnen. In vielen Netzen (wie etwa das Internet) gibt es keine garantierte Reihenfolge der Zustellung von Datagrammen, und deswegen muss die empfangende Vorrichtung 13 lediglich die Kopfabschnitte der Datagramm prüfen, um die richtige Reihenfolge zu bestimmen.
  • Bei großen Datenblöcken, die zu übertragen sind, könnte die Datensatz-Bildungseinheit 103 vorzugsweise Datensätze in Bündeln gruppieren und ein einzelnes Bündel aus Datensätzen gleichzeitig zu der Datenpackeinheit zum Packen in Datagramme leiten. Die Datenpackeinheit würde dann den Ablaufplan von
  • 2 an lediglich einem Bündel gleichzeitig ausführen. Wenn ein gesendetes Bündel aus Datensätzen von einer empfangenden Datenübertragungsvorrichtung 13 empfangen wird, sendet die Vorrichtung 13 eine Bestätigung über das Netz 11 zurück an die sendende Vorrichtung 10, um die Vorrichtung 10 darüber zu informieren, dass die Vorrichtung 13 das gesamte Bündel aus Datensätzen sicher und korrekt empfangen hat. In diesem Fall kann dem letzten Datagramm in dem Bündel ein Bitmerker angefügt werden, um anzugeben, dass dies das Ende des Bündels ist und eine Bestätigung erfolgen sollte. Diese Technik verringert die Anzahl der erforderlichen Bestätigungen im Vergleich zu einer früheren Technik, bei der für jedes empfangene Datagramm eine separate Bestätigung zurückgesendet wird.
  • Eine weitere Ausführungsform der vorliegenden Erfindung verwendet einen der 2 ähnlichen Ablaufplan, berücksichtigt jedoch beim Packen den zur Verfügung stehenden Raum in zwei (oder mehreren) Datagrammen. Der Schritt 201 stellt z.B. fest, ob der zur Verfügung stehende Raum in einer Gruppe aus zwei Datagrammen größer oder gleich dem kleinsten zur Verfügung stehenden Datensatz ist. Auf diese Weise können Datensätze, die größer sind als die Größe des Datagramms, behandelt werden, und außerdem kann bewirkt werden, dass Datensätze (selbst kleine Datensätze, die vollständig in ein Datagramm passen würden) sich über mehr als ein Datagramm erstrecken.
  • Die Datenübertragungsvorrichtung 10 mit den beschriebenen funktionalen Einheiten wurde als die bevorzugte Ausführungsform beschrieben. Die Erfindung umfasst jedoch außerdem eine Datenübertragungsvorrichtung, die keine Speichereinheit, Zugriffseinheit und/oder Datensatz-Bildungseinheit besitzt. Die Datenübertragungsvorrichtung könnte z.B. eingangsseitig (bereits gebildete) Datensätze, die zu übertragen sind, empfangen. Als ein weiteres Beispiel könnte die Datenübertragungsvorrichtung als einen Eingang Daten empfangen, die bereits aus einem Speicher gewonnen wurden, die jedoch noch zu Datensätzen gebildet und in Datagramme gepackt werden müssen.
  • Während in der bevorzugten Ausführungsform im Schritt 202 der größte nicht zugewiesene Datensatz, der in das Datagramm passt, das gegenwärtig gepackt wird, ausgewählt wird, könnte bei einer weiteren Ausführungsform irgendein anderes Kriterium ausgewählt werden, um den nächsten möglichen Datensatz festzulegen, der geprüft wird, um festzustellen, ob er in das Datagramm passt (oder Datensätze könnten willkürlich ausgewählt werden, wobei das einzige Kriterium darin bestehen würde, ob der Datensatz in das Datagramm passt).

Claims (7)

  1. Datenübertragungsvorrichtung (10), die mit einem Netz (11) verbunden ist, durch welches Datagramme von der Datenübertragungsvorrichtung zu wenigstens einer weiteren Datenübertragungsvorrichtung (12), die ebenfalls mit dem Netz verbunden ist, übertragen werden, wobei die Vorrichtung umfasst: ein Mittel zum Empfangen von Daten, die über das Netz übertragen werden sollen, wobei die Daten in Datensätze (103) mit variabler Länge unterteilt werden; und ein Mittel (104) zum Packen der Datensätze in Datagramme für eine Übertragung über das Netz, das ein Mittel zum Zuordnen von Datensätzen zu Datagrammen enthält; wobei das Mittel zum Packen so beschaffen ist, dass es die Datensätze aus der Reihenfolge herausnimmt, wenn Datensätze Datagrammen zugeordnet werden; und wobei das Mittel zum Packen so beschaffen ist, dass es einem Datagramm, das momentan gepackt wird, den größten nicht zugeordneten Datensatz, der in das Datagramm passt, zuordnet.
  2. Vorrichtung nach Anspruch 1, bei der das Mittel zum Zuordnen so beschaffen ist, dass es beim Zuordnen von Datensätzen zu Datagrammen zu einem Zeitpunkt lediglich ein Datagramm berücksichtigt.
  3. Vorrichtung nach Anspruch 1, bei der das Mittel zum Zuordnen so beschaffen ist, dass es beim Zuordnen von Datensätzen zu Datagrammen zu einem Zeitpunkt mehrere Datagramme berücksichtigt.
  4. Vorrichtung nach Anspruch 1, bei der die Größe jedes Datensatzes kleiner oder gleich der Größe aller Datagramme sein muss.
  5. Vorrichtung nach Anspruch 1, bei der die Größe eines Datensatzes größer als die Größe eines Datagramms ist.
  6. Datenübertragungsverfahren zum Betreiben einer Datenübertragungsvorrichtung (10), die mit einem Netz (11) verbunden ist, durch welches Datagramme von der Datenübertragungsvorrichtung zu wenigstens einer weiteren Datenübertragungsvorrichtung (12), die ebenfalls mit dem Netz verbunden ist, übertragen werden, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von Daten, die über das Netz übertragen werden sollen, wobei die Daten in Datensätze mit variabler Länge unterteilt werden; und Packen der Datensätze in Datagramme für eine Übertragung über das Netz, wobei das Packen das Zuordnen von Datensätzen zu Datagrammen enthält; wobei der Schritt des Packens die Datensätze aus der Reihenfolge nimmt, wenn Datensätze Datagrammen zugeordnet werden, und wobei der Schritt des Packens einem Datagramm, das momentan gepackt wird, den größten nicht zugeordneten Datensatz, der in das Datagramm passt, zuordnet (202).
  7. Computerprogramm, das sich auf einem computerlesbaren Medium befindet, wobei das Computerprogramm ein Computerprogrammcodemittel umfasst, das so beschaffen ist, dass es alle Schritte des Verfahrens von Anspruch 6 ausführt, wenn das Programm auf einem Computer läuft.
DE69923041T 1998-07-08 1999-07-01 Einrichtung für Datenübertragung, Verfahren und Rechnerprogrammprodukt zur Durchführung eines Datenkommunikationsprotokolls mit einer effizienten Bildung von Datagrammen Expired - Lifetime DE69923041T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9814669 1998-07-08
GB9814669A GB2339368A (en) 1998-07-08 1998-07-08 Data communications protocol with efficient packing of datagrams

Publications (2)

Publication Number Publication Date
DE69923041D1 DE69923041D1 (de) 2005-02-10
DE69923041T2 true DE69923041T2 (de) 2006-03-02

Family

ID=10835058

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69923041T Expired - Lifetime DE69923041T2 (de) 1998-07-08 1999-07-01 Einrichtung für Datenübertragung, Verfahren und Rechnerprogrammprodukt zur Durchführung eines Datenkommunikationsprotokolls mit einer effizienten Bildung von Datagrammen

Country Status (7)

Country Link
US (1) US6493764B1 (de)
EP (1) EP0978975B1 (de)
JP (1) JP3548051B2 (de)
KR (1) KR100330523B1 (de)
AT (1) ATE286640T1 (de)
DE (1) DE69923041T2 (de)
GB (1) GB2339368A (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392282B2 (en) * 2001-03-14 2008-06-24 International Business Machines Corporation Method for ensuring client access to messages from a server
US7209482B1 (en) 2001-12-21 2007-04-24 Juniper Networks, Inc. Reorder engine with error recovery
US9143161B1 (en) 2014-04-25 2015-09-22 International Business Machines Corporation Field level compression in parallel data flows

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703475A (en) * 1985-12-04 1987-10-27 American Telephone And Telegraph Company At&T Bell Laboratories Data communication method and apparatus using multiple physical data links
JPS62214744A (ja) * 1986-03-17 1987-09-21 Hitachi Ltd パケツト伝送方式
JPS62233951A (ja) 1986-04-02 1987-10-14 Nec Corp 多重パケツト伝送方式
US5243592A (en) * 1990-10-15 1993-09-07 Digital Equipment Corporation Method and apparatus for distance vector routing on datagram point-to-point links
JP3441726B2 (ja) * 1990-11-30 2003-09-02 株式会社日立製作所 通信装置及び通信方法
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US5461627A (en) * 1991-12-24 1995-10-24 Rypinski; Chandos A. Access protocol for a common channel wireless network
JPH05207023A (ja) * 1992-01-24 1993-08-13 Hitachi Ltd 大量データ伝送方法
JPH0712311A (ja) 1993-06-21 1995-01-17 Sanyo Electric Co Ltd 燃焼装置
JPH07177176A (ja) 1993-12-21 1995-07-14 Nec Corp パケット伝送制御方式
JP2557203B2 (ja) * 1993-12-27 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション ファジィ・パッキング方法及びデータ記憶システム
JP2802228B2 (ja) 1994-07-08 1998-09-24 株式会社ピーエフユー パケット交換を用いたデータ転送方法
US5526353A (en) * 1994-12-20 1996-06-11 Henley; Arthur System and method for communication of audio data over a packet-based network
FR2748875A1 (fr) * 1994-12-30 1997-11-21 Thomson Csf Procede et dispositif de multiplexage et de demultiplexage asynchrone de microcellules permettant l'optimisation des moyens de transmission d'un reseau atm
US5680400A (en) * 1995-05-31 1997-10-21 Unisys Corporation System for high-speed transfer of a continuous data stream between hosts using multiple parallel communication links
CA2224238A1 (en) * 1995-06-15 1997-01-03 Hall, David Communication system for superimposing data onto a video signal
JPH098841A (ja) 1995-06-19 1997-01-10 Ricoh Co Ltd 電文配信処理方法
JPH0918473A (ja) * 1995-06-29 1997-01-17 Mitsubishi Electric Corp データ伝送装置
US5841764A (en) * 1995-10-30 1998-11-24 Ericsson Inc. Method and apparatus for permitting a radio to originate and receive data messages in a data communications network
US5850526A (en) * 1996-02-07 1998-12-15 Kingston Technology Co. LAN station for determining the destination LAN station is capable of decompressing by comparing destination address to block of addresses assigned by a LAN manufacturer
US5781549A (en) * 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
US5923655A (en) * 1997-06-10 1999-07-13 E--Net, Inc. Interactive video communication over a packet data network
US6026093A (en) * 1997-10-02 2000-02-15 Sun Microsystems, Inc. Mechanism for dispatching data units via a telecommunications network
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6246684B1 (en) * 1997-12-24 2001-06-12 Nortel Networks Limited Method and apparatus for re-ordering data packets in a network environment
US6111924A (en) * 1998-02-03 2000-08-29 Videoserver, Inc. Error-correction-code synchronization in a videoconferencing gateway
US6269402B1 (en) * 1998-07-20 2001-07-31 Motorola, Inc. Method for providing seamless communication across bearers in a wireless communication system
JP2000092118A (ja) * 1998-09-08 2000-03-31 Hitachi Ltd プログラマブルネットワーク

Also Published As

Publication number Publication date
EP0978975B1 (de) 2005-01-05
DE69923041D1 (de) 2005-02-10
KR100330523B1 (ko) 2002-03-28
JP3548051B2 (ja) 2004-07-28
KR20000011328A (ko) 2000-02-25
GB2339368A (en) 2000-01-19
JP2000049900A (ja) 2000-02-18
EP0978975A2 (de) 2000-02-09
ATE286640T1 (de) 2005-01-15
GB9814669D0 (en) 1998-09-02
EP0978975A3 (de) 2003-02-05
US6493764B1 (en) 2002-12-10

Similar Documents

Publication Publication Date Title
EP0743595B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Software
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
EP2115948A1 (de) Verfahren und anlage zur optimierten übertragung von daten zwischen einer steuereinrichtung und mehreren feldgeräten
DE19822543A1 (de) Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE602004007948T2 (de) Verfahren und vorrichtung zum übersetzen von datenpaketen aus einem netzwerkprotokoll in ein anderes
DE69635544T2 (de) Optimierung der Leistung in einem Paket-Transportsystem mit Paketschlitzpriorität
DE60301899T2 (de) Netzmanagementsystem, verwaltete Vorrichtung, Managementvorrichtung und Programm
CH653783A5 (de) Steuereinrichtung, insbesondere fuer fernsprechvermittlungsanlagen.
DE69923041T2 (de) Einrichtung für Datenübertragung, Verfahren und Rechnerprogrammprodukt zur Durchführung eines Datenkommunikationsprotokolls mit einer effizienten Bildung von Datagrammen
DE2558417A1 (de) Datenverarbeitungssystem
DE10120615B4 (de) Dynamische Speicherverwaltung für Objekte unterschiedlicher Größe
DE19856616A1 (de) Addressenzuordnungsverfahren und dieses verwendende Kommunikationssysteme
EP2294763A1 (de) Teilnehmerknoten eines kommunikationssytems mit funktional getrenntem sende-ereignisspeicher
DE4129412A1 (de) Verfahren zur datenuebertragung und datenverarbeitungsanlage mit verteilten rechnerknoten
EP1081913B1 (de) Netzwerk mit einer Kennungsreduktion
DE19901792C2 (de) Datenverarbeitunsvorrichtung und Datenverarbeitungsverfahren
DE69927378T2 (de) Bitstopfung für synchrones hdlc
DE10015683B4 (de) Datenübertragungsspeicher
DE60308528T2 (de) Übermittlung von zustands-information in einem netzwerk
EP1357477B1 (de) An einen Bus angeschlossene Einrichtung
EP1241835B1 (de) Empfangseinrichtung für einen CAN-Bus
DE60110318T2 (de) Verfahren und Vorrichtung zur Überwachung und Steuerung von elektronischen Geräten
DE2419522A1 (de) Verfahren und anordnung zur unterteilung eines oder mehrerer nicht benutzter bereiche eines mit einem rechner verbundenen speichers
DE10347762B4 (de) Verfahren zur Speicherung von Übertragungseinheiten und Netzwerkkommunikations-Vorrichtung
DE60219244T2 (de) Aktives Netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7