DE112013006723B4 - Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern - Google Patents

Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern Download PDF

Info

Publication number
DE112013006723B4
DE112013006723B4 DE112013006723.4T DE112013006723T DE112013006723B4 DE 112013006723 B4 DE112013006723 B4 DE 112013006723B4 DE 112013006723 T DE112013006723 T DE 112013006723T DE 112013006723 B4 DE112013006723 B4 DE 112013006723B4
Authority
DE
Germany
Prior art keywords
hash
computer
computer system
digest
data packet
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.)
Active
Application number
DE112013006723.4T
Other languages
English (en)
Other versions
DE112013006723T5 (de
Inventor
Nils Haustein
Harald SEIPP
Ulf Troppens
Daniel J. Winarski
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 DE112013006723T5 publication Critical patent/DE112013006723T5/de
Application granted granted Critical
Publication of DE112013006723B4 publication Critical patent/DE112013006723B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren zum Verwalten eines Datenpakets, wobei das Verfahren die Schritte aufweist: dass ein erster Computer ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk einen ersten Computer und einen zweiten Computer enthält; auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass der erste Computer eine Benachrichtigung an den zweiten Computer sendet, dass der erste Computer in den Deduplizierungsmodus gewechselt hat; dass der erste Computer ermittelt, ob eine Auslastung einer Zentraleinheit (CPU), die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass der erste Computer eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; dass der erste Computer einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass der erste Computer ermittelt, ob sich der Hausauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computer verbunden ist; wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass der erste Computer das Datenpaket zu dem zweiten Computer sendet, dass der erste Computer den Hashauszug, einen Index, der auf den ...

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Datenverarbeitungsverfahren und ein System zum Verwalten von Datenübertragungsverkehr und insbesondere eine Technik zum Ausführen einer Integritätsprüfung und selektiven Deduplizierung an einem Datenstrom von Nachrichtenpaketen.
  • Hintergrund
  • Eine Verschlüsselungs-Hashfunktion ist ein Algorithmus, der einen beliebigen Datenblock als Eingabe nimmt und einen Hashauszug (auch bekannt als Hashwert, Verschlüsselungs-Hashwert oder Digest), der eine Zeichenfolge mit fester Bitgröße ist, erzeugt und zurückgibt. Eine Verschlüsselungs-Hashfunktion erzeugt den Hashauszug so, dass eine zufällige oder beabsichtigte Änderung an den Eingabedaten mit einer sehr hohen Wahrscheinlichkeit den Hashauszug ändern wird. Ferner ist eine Verschlüsselungs-Hashfunktion eine Lawinenfunktion, weil ein im Wesentlichen kleiner Unterschied (z. B. selbst ein Unterschied von einem Bit) in der Eingabe für die Funktion zu einem im Wesentlichen großen (d. h. äußerst nicht-linearen) Unterschied im Auszug führt. Zu Verschlüsselungs-Hashfunktionen gehören Funktionen des Secure Hash Algorithm (SHA) (sicherer Hash-Algorithmus) und Funktionen des Message Digest (MD) (Nachrichtenauszug). Beispiele für Verschlüsselungs-Hashfunktionen und die Größe der jeweiligen Hashauszüge sind in Tabelle 1 enthalten Tabelle 1
    Verschlüsselungs-Hashfunktion Größe(n) von Hashauszug (Bits)
    GOST 256
    HAVAL 256/224/192/160/128
    MD2 128
    MD4 128
    MD5 128
    PANAMA 256
    RadioGatún Bis zu 19 Wörter
    RACE Integrity Primitives Evaluation Message Digest (RIPEMD) 128
    RIPEMD-128/256 128/256
    RIPEMD-160/320 160/320
    SHA-0 160
    SHA-1 160
    SHA-256/224 256/224
    SHA-512/384 512/384
    Tiger(2)-192/160/128 192/160/128
    WHIRLPOOL 512
  • Netzwerk-Datenübertragungseinheiten verwenden Datenübertragungsprotokolle zum Senden von Datenübertragungs-(d. h. Daten)Paketen von einer sendenden Netzwerkeinheit (d. h. einem Sender) zu einer empfangenden Netzwerkeinheit (d. h. einem Empfangsgerät oder Empfänger). Gemäß bekannten Datenübertragungsprotokollen wie Transmission Control Protocol over Internet Protocol (TCP/IP), Fibre Channel over Ethernet (FCoE), Small Computer System Interface (SCSI), Internet SCSI (iSCSI), Serial-Attached-SCSI (SAS), Infiniband und Ethernet enthalten Datenübertragungspakete Felder für Metadaten und Nutzdaten. Die Metadaten- und Nutzdaten-Felder werden durch Protokollstandards gemäß dem Vermittlungsschichtmodell von Open Systems Interconnection (OSI) definiert. Bestimmte Metadaten-Felder werden zum Speichern einer Prüfsumme der Nutzdaten verwendet, die ein Ausführen einer Integritätsprüfung gestattet. Die sendende Netzwerkeinheit berechnet die Prüfsumme und fügt sie zu den Metadaten hinzu und sendet die Nutzdaten und die Metadaten, die die Prüfsumme enthalten, zu der empfangenden Netzwerkeinheit. Nach dem Empfangen der Nutzdaten und der Metadaten, die die Prüfsumme enthalten, berechnet die empfangende Netzwerkeinheit die Prüfsumme der empfangenen Nutzdaten und vergleicht das Ergebnis mit der Prüfsumme, die in den empfangenen Metadaten enthalten ist, um Datenintegrität zu gewährleisten. Bekannte Prüfsummen beruhen auf zyklischen Codes wie beispielsweise einer zyklischen Blockprüfung (Cyclic Redundancy Check) (CRC).
  • Eine Technologie aus dem Umfeld der im Folgenden vorgeschlagenen Lösung findet sich im Dokument US 2012/0257626 A1 . Dort werden Systeme und Verfahren vorgeschlagen, die eine Entfernung von doppelt vorhandenen Netzwerkpaketen in einem Netzwerk-Paket-Stream, der mit großer Geschwindigkeit übertragen wird, vorschlagen. Die Verfahren basieren auf einem Hash-Algorithmus.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In einer ersten Ausführungsform stellt die vorliegende Erfindung ein Verfahren zum Verwalten eines Datenpakets bereit. Das Verfahren enthält einen ersten Computer, der ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist. Das Netzwerk enthält den ersten Computer und einen zweiten Computer. Das Verfahren enthält ferner auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt. Die Schritte in dem Deduplizierungsmodus enthalten, dass der erste Computer eine Benachrichtigung an den zweiten Computer sendet, dass der erste Computer in den Deduplizierungsmodus gewechselt hat. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer ermittelt, ob eine Auslastung einer Zentraleinheit (CPU), die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer einen Hashauszug des Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer ermittelt, ob sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computer verbunden ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass der erste Computer das Datenpaket an den zweiten Computer sendet, dass der erste Computer an den zweiten Computer den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computer verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass der erste Computer das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  • In einer zweiten Ausführungsform stellt die vorliegende Erfindung ein erstes Computersystem bereit, das eine Zentraleinheit (CPU) enthält; einen Arbeitsspeicher, der mit der CPU verbunden ist; eine computerlesbare, konkrete Speichereinheit, die mit der CPU verbunden ist, wobei die Speichereinheit Anweisungen enthält, die von der CPU über den Arbeitsspeicher ausgeführt werden, um ein Verfahren zum Verwalten eines Datenpakets umzusetzen. Das Verfahren enthält das erste Computersystem, das ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist. Das Netzwerk enthält das erste Computersystem und ein zweites Computersystem. Das Verfahren enthält ferner auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt. Die Schritte in dem Deduplizierungsmodus enthalten, dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob eine Auslastung der CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem einen Hashauszug des Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket an das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  • In einer dritten Ausführungsform stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das eine computerlesbare konkrete Speichereinheit enthält; und einen computerlesbaren Programmcode, der in der computerlesbaren konkreten Speichereinheit gespeichert ist. Der computerlesbare Programmcode enthält Anweisungen, die von einer CPU eines ersten Computersystems ausgeführt werden, um ein Verfahren zum Verwalten eines Datenpakets umzusetzen. Das Verfahren enthält das erste Computersystem, das ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist. Das Netzwerk enthält das erste Computersystem und ein zweites Computersystem. Das Verfahren enthält ferner auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt. Die Schritte in dem Deduplizierungsmodus enthalten, dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob eine Auslastung der CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem einen Hashauszug des Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket an das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  • In einer vierten Ausführungsform stellt die vorliegende Erfindung einen Prozess zum Unterstützen von Datenverarbeitungsinfrastruktur bereit. Der Prozess enthält ein Bereitstellen von mindestens einem Unterstützungsdienst für mindestens eines von Erstellen, Integrieren, Hosten, Verwalten und Einsetzen von computerlesbarem Code in einem ersten Computersystem. Der computerlesbare Code enthält Anweisungen, die, wenn sie von einem Prozessor des ersten Computersystems ausgeführt werden, ein Verfahren zum Verwalten eines Datenpakets umsetzen. Das Verfahren enthält das erste Computersystem, das ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist. Das Netzwerk enthält das erste Computersystem und ein zweites Computersystem. Das Verfahren enthält ferner auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt. Die Schritte in dem Deduplizierungsmodus enthalten, dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob eine Auslastung der CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem einen Hashauszug des Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass das erste Computersystem ermittelt, ob sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket an das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet. Die Schritte in dem Deduplizierungsmodus enthalten ferner, wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  • In einer fünften Ausführungsform stellt die vorliegende Erfindung ein Verfahren zum Verwalten eines Datenpakets bereit. Das Verfahren enthält einen zweiten Computer, der Schritte in einem Verdoppelungsmodus ausführt. Die Schritte in dem Verdopplungsmodus werden im Anschluss an eine Ermittlung ausgeführt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastung-Schwellenwert ist, wobei das Netzwerk einen ersten Computer und den zweiten Computer enthält; ein Wechseln in einen Deduplizierungsmodus durch den ersten Computer; eine Benachrichtigung des zweiten Computers durch den ersten Computer, dass der erste Computer in den Deduplizierungsmodus gewechselt hat; eine Ermittlung durch einen ersten Computer, ob eine Auslastung einer CPU, die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; eine Auswahl einer ersten Hashfunktion statt einer zweiten Hashfunktion, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist; eine Auswahl der zweiten Hashfunktion statt der ersten Hashfunktion, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist, wobei eine Anwendung der ersten Hashfunktion die CPU weniger beansprucht als eine Anwendung der zweiten Hashfunktion; eine Ermittlung eines Hashauszugs des Datenpakets durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion; eine Ermittlung, dass sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computer verbunden ist; und ein Senden des Hashauszugs, eines Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computer verbunden ist, und einer Kennung der ersten oder der zweiten Hashfunktion durch den ersten Computer an den zweiten Computer, ohne ein Senden des Datenpakets an den zweiten Computer. Die Schritte in dem Verdoppelungsmodus enthalten auf Grundlage der Benachrichtigung des zweiten Computers durch den ersten Computer, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, dass der zweite Computer ermittelt, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde. Die Schritte in dem Verdoppelungsmodus enthalten ferner, dass der zweite Computer den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion empfängt. Die Schritte in dem Verdoppelungsmodus enthalten ferner in Reaktion darauf, dass der zweite Computer ermittelt, dass das Datenpaket nicht empfangen wurde, und auf Grundlage des Index, dass der zweite Computer den Hashauszug in der Empfänger-Hashtabelle sucht. Die Schritte in dem Verdoppelungsmodus enthalten ferner, dass der zweite Computer ermittelt, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt. Die Schritte in dem Verdoppelungsmodus enthalten ferner auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das Datenpaket abruft, das dem gefundenen Hashauszug aus der Empfänger-Hashtabelle zugehörig ist. Die Schritte in dem Verdoppelungsmodus enthalten ferner auf Grundlage der empfangenen Kennung, dass der zweite Computer die ausgewählte erste oder zweite Hashfunktion ermittelt und einen neuen Hashauszug ermittelt, indem die erste oder die zweite Hashfunktion auf das abgerufene Datenpaket angewendet wird. Die Schritte in dem Verdoppelungsmodus enthalten ferner, dass der zweite Computer ermittelt, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt. Die Schritte in dem Verdoppelungsmodus enthalten ferner, wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das abgerufene Datenpaket an eine Anwendung übergibt.
  • In einer sechsten Ausführungsform stellt die vorliegende Erfindung ein Verfahren zum Verwalten eines Datenpakets bereit. Das Verfahren enthält einen ersten Computer, der ermittelt, dass eine erste Auslastung eines Netzwerks kleiner als ein oder gleich einem Netzwerkauslastungs-Schwellenwert ist. Das Netzwerk enthält den ersten Computer und einen zweiten Computer. Das Verfahren enthält ferner auf Grundlage, dass die Auslastung des Netzwerks kleiner als der oder gleich dem Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer Schritte ausführt ohne in einem Deduplizierungsmodus zu sein. Die Schritte, ohne sich in dem Deduplizierungsmodus zu befinden, enthalten, dass der erste Computer ermittelt, ob eine Auslastung einer CPU, die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist. Die Schritte, ohne sich in dem Deduplizierungsmodus zu befinden, enthalten, dass der erste Computer eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist. Die Schritte, ohne sich in dem Deduplizierungsmodus zu befinden, enthalten ferner, dass das erste Computersystem die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist. Die Schritte, ohne sich in dem Deduplizierungsmodus zu befinden, enthalten ferner, dass der erste Computer einen Hashauszug des Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Das Verfahren enthält ferner auf Grundlage, dass der erste Computer die Schritte ausführt, ohne im Deduplizierungsmodus zu sein, dass der erste Computer den Hashauszug zu einer Sender-Hashtabelle hinzufügt, die mit dem ersten Computer verbunden ist, und dass der erste Computer das Datenpaket, den Hashauszug und eine Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt. Ein Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, enthält einen Empfang des Datenpakets, des Hashauszugs und der Kennung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer. Das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, enthält ferner auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das empfangene Datenpaket. Das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, enthält ferner eine Ermittlung, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt. Wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, enthält das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung sendet, eine Ermittlung, ob das Datenpaket Integrität besitzt, ein Hinzufügen des Datenpakets und des Hashauszugs zu einer Empfänger-Hashtabelle, die mit dem zweiten Computer verbunden ist, und ein Übergeben des Datenpakets an eine Anwendung. Wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, enthält das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung sendet, eine Benachrichtigung des ersten Computers, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf, dass das Datenpaket und der Hashauszug durch den ersten Computer erneut an den zweiten Computer gesendet werden. Das Verfahren enthält ferner im Anschluss an den Schritt des Sendens des Datenpakets, des Hashauszugs und der Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer, dass der erste Computer ermittelt, ob eine zweite Auslastung eines Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist. Das Verfahren enthält ferner auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer in den Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt. Die Schritte in dem Deduplizierungsmodus enthalten, dass der erste Computer den zweiten Computer benachrichtigt, dass der erste Computer in den Deduplizierungsmodus gewechselt hat. Die Schritte in dem Deduplizierungsmodus enthalten ferner, dass der erste Computer einen zweiten Hashauszug eines zweiten Datenpakets ermittelt, indem die ausgewählte erste oder zweite Hashfunktion angewendet wird. Die Schritte in dem Deduplizierungsmodus enthalten, dass der erste Computer ermittelt, ob der zweite Hashauszug des zweiten Datenpakets mit dem Hashauszug übereinstimmt, der zu der Sender-Hashtabelle hinzugefügt wurde. Die Schritte in dem Deduplizierungsmodus enthalten ferner auf Grundlage, dass der zweite Hashauszug des zweiten Datenpakets mit dem Hashauszug übereinstimmt, der der Sender-Hashtabelle hinzugefügt wurde, und ohne dass der erste Computer das Datenpaket an den zweiten Computer sendet, dass der erste Computer den zweiten Hashauszug, einen Index, der auf den Hashauszug verweist, der der Sender-Hashtabelle hinzugefügt wurde, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält auf Grundlage, dass der zweite Computer benachrichtigt wird, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, eine Ermittlung durch den zweiten Computer, dass das Datenpaket nicht zusammen mit dem zweiten Hashauszug, dem Index und der Kennung empfangen wurde. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner einen Empfang des zweiten Hashauszugs, des Index und der Kennung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner in Reaktion auf die Ermittlung, dass das Datenpaket nicht empfangen wurde und auf Grundlage des Index eine Suche nach dem Hashauszug, der der Empfänger-Hashtabelle durch den zweiten Computer hinzugefügt wurde. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner eine Ermittlung durch den zweiten Computer, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner auf Grundlage dessen, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist, durch den zweiten Computer. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner auf Grundlage des Empfangs der Kennung eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer und eine Ermittlung eines zweiten neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer auf das abgerufene Datenpaket, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält ferner eine Ermittlung durch den zweiten Computer, ob der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt. Ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und den Index an den zweiten Computer sendet, enthält, wenn der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, ein Übergeben des abgerufenen Datenpakets durch den zweiten Computer an eine Anwendung.
  • Ausführungen der vorliegenden Erfindung wenden Verschlüsselungs-Hashfunktionen an, um Hashauszüge in Datenübertragungsverkehr einzubetten, um eine Datenintegritätsprüfung und Datendeduplizierung bereitzustellen, wenn eine Netzwerkauslastung einen Auslastungsschwellenwert erreicht oder überschreitet. Durch Bereitstellen einer Datendeduplizierung verringern Ausführungsformen der vorliegenden Erfindung die Datenmenge, die zwischen sendenden und empfangenden Netzwerkeinheiten übertragen wird.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockschaubild eines Systems zum Verwalten eines Datenpakets gemäß Ausführungsformen der vorliegenden Erfindung.
  • 2A bis 2B stellen einen Ablaufplan eines Prozesses zum Verwalten eines Datenpakets in dem System von 1 gemäß Ausführungsformen der vorliegenden Erfindung dar.
  • 3 ist ein Ablaufplan eines Prozesses zum Verwalten eines Hashtabellenbereichs in dem System von 1 gemäß Ausführungsformen der vorliegenden Erfindung.
  • 4 ist ein beispielhaftes Datenübertragungspaket, das ein Datenpaket enthält, das durch den Prozess von 2A bis 2B gemäß Ausführungsformen der vorliegenden Erfindung verwaltet wird.
  • 5 ist ein Blockschaubild eines Computersystems, das in einer alternativen Ausführungsform des Systems von 1 enthalten ist und das die Prozesse von 2A bis 2B und 3 gemäß Ausführungsformen der vorliegenden Erfindung umsetzt.
  • Ausführliche Beschreibung
  • Übersicht
  • Ausführungsformen der vorliegenden Erfindung verringern die Datenmenge, die zwischen sendenden und empfangenden Netzwerkeinheiten übertragen wird, indem Verschlüsselungs-Hashfunktionen auf Datenübertragungsverkehr in einem Netzwerk angewendet werden, um eine selektive Datendeduplizierung des Datenübertragungsverkehrs in Reaktion auf ein Ermitteln bereitzustellen, dass eine Netzwerkauslastung oder ein Netzwerkdurchsatz größer als ein benutzerdefinierter Schwellenwert ist. Die Verschlüsselungs-Hashfunktionen, die auf den Datenübertragungsverkehr angewendet werden, stellen auch Prüfsummen für eine Datenintegritätsprüfung bereit.
  • System zum Verwalten eines Datenpakets
  • 1 ist ein Blockschaubild eines Systems zum Verwalten eines Datenpakets gemäß Ausführungsformen der vorliegenden Erfindung. Ein System 100 enthält ein erstes Computersystem 101, das eine Zentraleinheit (CPU) 102, einen Arbeitsspeicher 104, einen Bus 108 und eine Sender-Netzwerkschnittstellenkarte (NIC) 116 enthält, die das erste Computersystem 101 mit einem Computernetzwerk 130 verbindet. Das erste Computersystem 101 enthält auch eine Eingabe/Ausgabe-Schnittstelle (nicht gezeigt), die mit der CPU 102 über den Bus 108 verbunden ist. Die Sender-Netzwerkschnittstellenkarte 116 ist eine NIC, die durch Ausführungsformen der vorliegenden Erfindung so erweitert wird, dass sie ein Überwachungsmodul 118 auf Software-Grundlage, ein Deduplizierungsmodul 120 auf Software-Grundlage und eine Sender-Hashtabelle 122 enthält.
  • Das erste Computersystem 101 überträgt Daten über das Computernetzwerk 130 mit einem oder mehreren Computersystemen, das ein zweites Computersystem 151 enthält. Das erste Computersystem ist ein Sender-Computersystem, das Anforderungen verarbeitet, Datenpakete an ein oder mehrere andere Empfänger-Computersysteme zu senden, die mit dem Netzwerk 130 verbunden sind, das zweite Computersystem 151 eingeschlossen. Das erste Computersystem 101 führt ein Betriebssystem (nicht gezeigt) und eine oder mehrere Software-Anwendungen (nicht gezeigt) aus. Eine der Anwendungen initiiert ein Senden von Daten über das Netzwerk 130, das die Anwendung enthält, die das Betriebssystem anweist, die Daten zu senden, und in Reaktion darauf weist das Betriebssystem die Sender-NIC 116 an, die Daten über das Netzwerk 130 zu senden.
  • Das zweite Computersystem 151 enthält eine CPU 152, einen Arbeitsspeicher 154, einen Bus 158 und eine Empfänger-Netzwerkschnittstellenkarte 166, die das zweite Computersystem 151 mit dem Netzwerk 130 verbindet. Das zweite Computersystem 151 enthält auch eine Eingabe/Ausgabe-Schnittstelle (nicht gezeigt), die mit der CPU 152 über den Bus 158 verbunden ist. Die Empfänger-Netzwerkschnittstellenkarte 166 ist eine NIC, die durch Ausführungsformen der vorliegenden Erfindung so erweitert wird, dass sie ein Verdoppelungsmodul 168 auf Software-Grundlage und eine Empfänger-Hashtabelle 172 enthält. Der Datenübertragungsverkehr im Netzwerk 130 enthält Datenübertragungspakete, die von der Sender-NIC 116 an die Empfänger-NIC 166 gesendet werden.
  • Obwohl das erste Computersystem 101 hierin so beschrieben wird, dass es ein Datenübertragungspaket von der NIC 116 sendet, und das zweite Computersystem 151 hierin so beschrieben wird, dass es das Datenübertragungspaket an der NIC 166 empfängt, wird dem Fachmann klar sein, dass Ausführungsformen der vorliegenden Erfindung die NIC 166 als die sendende Einheit und die NIC 116 als die empfangende Einheit enthalten.
  • Die Sender-Hashtabelle 122 und die Empfänger-Hashtabelle 172 enthalten Dateneinträge mit entsprechenden Indices, entsprechenden Hashauszügen, entsprechenden Datenpaketen und entsprechenden Nutzungszahlen. Ein bestimmter Index in der Sender-Hashtabelle 122 oder der Empfänger-Hashtabelle 172 verweist auf ein bestimmtes Datenpaket, einen bestimmten Hashauszug, der durch Anwenden einer Hashfunktion auf das Datenpaket erzeugt wurde, und eine bestimmten Nutzungszahl. In einer Ausführungsform ist ein Index in der Sender-Hashtabelle 122 oder der Empfänger-Hashtabelle 172 eine Zeilennummer, die die Zeile der Sender-Hashtabelle 122 (siehe 1) oder der Empfänger-Hashtabelle 172 angibt, die ein bestimmtes Datenpaket, einen bestimmten Hashauszug und eine bestimmte Nutzungszahl enthält. Die Nutzungszahl gibt an, wie oft das erste Computersystem 101 eine bzw. mehrere Anforderungen verarbeitet hat, das Datenpaket an ein bzw. mehrere entsprechende Empfänger-Computersysteme zu senden, das bzw. die mit dem Netzwerk verbunden sind, wie beispielsweise das Computersystem 151. So wie das System 100 arbeitet, stimmt der Inhalt der Sender-Hashtabelle 122 mit dem Inhalt der Empfänger-Hashtabelle 172 überein, oder die Sender-Hashtabelle 122 hat eine neue Zeile mit Daten, die noch nicht zu der Empfänger-Hashtabelle 172 hinzugefügt wurde, aber hinzugefügt werden wird. Die Verwaltung von verfügbarem Bereich in der Sender-Hashtabelle 122 und von verfügbarem Bereich in der Empfänger-Hashtabelle 172 wird im Folgenden unter Bezugnahme auf 3 erörtert.
  • In einer Ausführungsform enthält jede Zeile in der Sender-Hashtabelle 122 und der Empfänger-Hashtabelle 172 eine Zeilennummer, einen Hashauszug, ein Datenpaket und eine Nutzungszahl, wie in dem in Tabelle 2 dargestellten Beispiel veranschaulicht. In Tabelle 2 enthält die erste Spalte die Nummer der Zeile, die für jede neue Zeile um eins erhöht wird. Die zweite Spalte von Tabelle 1 enthält den Hashauszug für das Datenpaket in der dritten Spalte. Die vierte Spalte von Tabelle 2 enthält die Nutzungszahl, die angibt, wie oft das Datenpaket von einem mit dem Netzwerk 130 verbundenen Computersystem gesendet worden ist. Tabelle 2
    Zeilen-nummer Hashauszug Datenpaket Nutzungsanzahl
    1 348c5427e5871c2e6 23d823fe6cea727 „Hallo Leute, Fehler sind da, um gemacht zu werden” 2
    2 d10aab85789956275 56d54651b0b962d „Nichts ist unmöglich” 1
  • Wenn das Überwachungsmodul 118 ermittelt, dass eine Auslastung des Netzwerks 130 einen benutzerdefinierten Netzwerkauslastungs-Schwellenwert überschreitet, wechselt das erste Computersystem 101 in einen Deduplizierungsmodus, der Schritte enthält, die von dem Deduplizierungsmodul 120 ausgeführt werden. Einige der Schritte in dem Deduplizierungsmodus werden in diesem Abschnitt beschrieben. Schritte in dem Deduplizierungsmodus und Schritte, die außerhalb des Deduplizierungsmodus ausgeführt werden, werden ausführlich in der nachstehenden Erörterung der 2A bis 2B beschrieben.
  • Im Deduplizierungsmodus empfängt und verarbeitet das erste Computersystem 101 eine Anforderung, ein Datenpaket an eine Software-Anwendung zu senden, die von dem zweiten Computersystem 151 oder einem anderen Computersystem (nicht gezeigt) ausgeführt wird, das mit dem Netzwerk 130 verbunden ist. Das erste Computersystem 101 wendet eine Hashfunktion an, um einen Hashauszug des Datenpakets zu ermitteln. Wenn sich der Hashauszug bereits in der Sender-Hashtabelle 122 befindet, sendet das erste Computersystem 101 den Hashauszug und den Index des Hashauszugs an das zweite Computersystem 151. Das Verdoppelungsmodul 168 verwendet den empfangenen Index zum Suchen und Abrufen des Datenpakets aus der Empfänger-Hashtabelle 172, ohne dass veranlasst wird, dass das Datenpaket von dem ersten Computersystem 101 über das Netzwerk 130 an das zweite Computersystem 151 gesendet wird. Indem veranlasst wird, dass das Datenpaket nicht über das Netzwerk 130 gesendet wird, wird die über das Netzwerk gesendete Datenmenge verringert.
  • Wenn sich der Hashauszug nicht bereits in der Sender-Hashtabelle 122 befindet, fügt das erste Computersystem 101 den Hashauszug und das Datenpaket zu der Sender-Hashtabelle 122 hinzu und sendet den Hashauszug und das Datenpaket an das zweite Computersystem 151. Das Verdoppelungsmodul 168 ermittelt einen neuen Hashauszug des empfangenen Datenpakets und verwendet einen Vergleich des neuen Hashauszugs und des empfangenen Hashauszugs als Datenintegritätsprüfung des empfangenen Datenpakets.
  • Wiederum sollte angemerkt werden, dass die Details der Schritte im Deduplizierungsmodus im Folgenden in der Erläuterung von 2A bis 2B dargestellt werden.
  • Die Funktionsweise der Komponenten von 1 wird ausführlicher in den nachstehenden Erläuterungen unter Bezugnahme auf 2A bis 2B und 3 und in dem Abschnitt mit der Überschrift „Computersystem” beschrieben. In einer alternativen Ausführungsform enthält das Computersystem 101 auch ein Verdoppelungsmodul (nicht gezeigt), dessen Funktionsweise mit der Funktionsweise des Verdoppelungsmoduls 168 übereinstimmt, und das Computersystem 151 enthält ein Überwachungsmodul (nicht gezeigt) und ein Deduplizierungsmodul (nicht gezeigt), deren Funktionsweise jeweils mit der Funktionsweise des Überwachungsmoduls 118 und des Deduplizierungsmoduls 120 übereinstimmt. In dieser alternativen Ausführungsform führt das Verdoppelungsmodul in dem Computersystem 101 (siehe 1) die Schritte in 2A bis 2B aus, die im Folgenden als durch das Verdoppelungsmodul 168 (siehe 1) ausgeführt beschrieben werden; das Überwachungsmodul im Computersystem 151 (siehe 1) führt die Schritte in 2A bis 2B und in 3 aus, die im Folgenden als durch das Überwachungsmodul 118 (siehe 1) ausgeführt beschrieben werden; und das Deduplizierungsmodul im Computersystem 151 (siehe 1) führt die Schritte in 2A bis 2B aus, die im Folgenden als durch das Deduplizierungsmodul 120 (siehe 1) ausgeführt beschrieben werden.
  • Verfahren zum Verwalten eines Datenpakets
  • 2A bis 2B stellen einen Ablaufplan eines Prozesses zum Verwalten eines Datenpakets in dem System von 1 gemäß Ausführungsformen der vorliegenden Erfindung dar. In der nachstehenden Erläuterung von 2A bis 2B wird jeder Schritt, der als durch das Überwachungsmodul 118 ausgeführt beschrieben wird (siehe 1), von dem Computersystem 101 ausgeführt (siehe 1), das einen in dem Überwachungsmodul 118 (siehe 1) enthaltenen Programmcode ausführt; jeder Schritt, der als durch das Deduplizierungsmodul 120 ausgeführt beschrieben wird (siehe 1), wird von dem Computersystem 101 ausgeführt (siehe 1), das einen in dem Deduplizierungsmodul 120 (siehe 1) enthaltenen Programmcode ausführt; und jeder Schritt, der als durch das Verdoppelungsmodul 168 ausgeführt beschrieben wird (siehe 1), wird von dem Computersystem 151 ausgeführt (siehe 1), das einen in dem Verdoppelungsmodul 168 (siehe 1) enthaltenen Programmcode ausführt.
  • Der Prozess von 2A bis 2B beginnt mit Schritt 200, wobei das erste Computersystem 101 (siehe 1) eine Anforderung empfängt oder erzeugt, um ein Datenpaket an das zweite Computersystem 151 zu senden (siehe 1). Vor Schritt 202 empfängt das erste Computersystem 101 (siehe 1) einen Netzwerkauslastungs-Schwellenwert, der eine maximale Auslastung des Netzwerks 130 (siehe 1) angibt, die einem Senden von Datenpaketen von dem ersten Computersystem 101 (siehe 1) an das zweite Computersystem 151 (siehe 1) als zugehörig zulässig ist, ohne dass sich dieses im Deduplizierungsmodus befindet. Die Auslastung des Netzwerks 130 ist eine Messung der Anzahl von Datenpaketen, die pro Zeiteinheit über das Netzwerk 130 übertragen werden (siehe 1). Der Netzwerkauslastungs-Schwellenwert kann ein Standardwert oder ein benutzerdefinierter Wert sein. In einer Ausführungsform ist der Netzwerkauslastungs-Schwellenwert ein Prozentwert des maximalen Durchsatzes des Netzwerks 130 (siehe 1), der auf der Topologie des Netzwerks 130 (siehe 1) und der speziellen, vom Netzwerk 130 verwendeten Technologie beruht.
  • In Schritt 202 ermittelt das Überwachungsmodul 118 (siehe 1), ob eine Auslastung des Netzwerks 130 (siehe 1) (d. h. Netzwerkauslastung) größer als der Netzwerkauslastungs-Schwellenwert ist. Wenn das Überwachungsmodul 118 (siehe 1) in Schritt 202 ermittelt, dass die Netzwerkauslastung größer als der Netzauslastungs-Schwellenwert ist, wird der Abzweig „Ja” von Schritt 202 eingeschlagen, und Schritt 204 wird ausgeführt. Wenn das Überwachungsmodul 118 (siehe 1) in Schritt 202 ermittelt, dass die Netzwerkauslastung kleiner als der Netzauslastungs-Schwellenwert ist, wird der Abzweig „Nein” von Schritt 202 eingeschlagen, und Schritt 206 wird als Nächstes ausgeführt.
  • In einer alternativen Ausführungsform wird in Schritt 202 ermittelt, ob eine Messung des Durchsatzes durch das Netzwerk 130 (siehe 1) einen Durchsatzschwellenwert überschreitet, und wenn der Durchsatz den Schwellenwert überschreitet, wird Schritt 204 ausgeführt; andernfalls wird Schritt 206 als Nächstes ausgeführt.
  • In Schritt 204 weist das Überwachungsmodul 118 (siehe 1) das Deduplizierungsmodul 120 (siehe 1) an, in einen Deduplizierungsmodus zu wechseln, wenn sich das Deduplizierungsmodul 120 (siehe 1) nicht bereits im Deduplizierungsmodus befindet. In Reaktion darauf, und wenn sich das Deduplizierungsmodul 120 (siehe 1) nicht bereits im Deduplizierungsmodus befindet, wechselt das Deduplizierungsmodul 120 (siehe 1) in den Deduplizierungsmodus. In einer Ausführungsform werden die Schritte 206 bis 218 in 2A und die Schritte 220 bis 228 in 2B von dem Computersystem 101 (siehe 1) im Deduplizierungsmodus ausgeführt. Nach einer Anweisung an das Deduplizierungsmodul 120 (siehe 1), in einen Deduplizierungsmodus ”zu wechseln und vor dem Schritt 206 sendet das Überwachungsmodul 118 (siehe 1) eine Benachrichtigung an das Verdoppelungsmodul 168 (siehe 1), das im Computersystem 151 (siehe 1) ausgeführt wird, wo die Benachrichtigung das Computersystem 151 (siehe 1) informiert, dass das Deduplizierungsmodul 120 (siehe 1) in den Deduplizierungsmodus gewechselt hat. Das Verdoppelungsmodul 168 (siehe 1) empfängt die Benachrichtigung, die von dem Überwachungsmodul 118 (siehe 1) gesendet wurde.
  • Schritt 206 folgt auf Schritt 204 und den Abzweig „Nein” von Schritt 202. In Schritt 206 weist das Deduplizierungsmodul 120 (siehe 1) die Sender-Hashtabelle 122 zu (siehe 1), und das Verdoppelungsmodul 168 (siehe 1) weist die Empfänger-Hashtabelle 172 (siehe 1) in Reaktion darauf zu, dass das Verdoppelungsmodul 168 (siehe 1) die vorher genannte Benachrichtigung empfängt, dass das Deduplizierungsmodul 120 (siehe 1) in den Deduplizierungsmodus gewechselt hat. Wenn Schritt 206 dem Abzweig „Nein” von Schritt 202 folgt, enthält der Schritt 206, dass das Überwachungsmodul 118 (siehe 1) das Deduplizierungsmodul 120 (siehe 1) anweist, den Deduplizierungsmodus zu verlassen, wenn sich das Deduplizierungsmodul 120 (siehe 1) bereits im Deduplizierungsmodus befindet. Nach einer Anweisung an das Deduplizierungsmodul 120 (siehe 1), den Deduplizierungsmodus zu verlassen, sendet das Überwachungsmodul 118 (siehe 1) eine Benachrichtigung an das Verdoppelungsmodul 168 (siehe 1), das im Computersystem 151 (siehe 1) ausgeführt wird, wo die Benachrichtigung das Computersystem 151 (siehe 1) informiert, dass das Deduplizierungsmodul 120 (siehe 1) den Deduplizierungsmodus verlassen hat. Das Verdoppelungsmodul 168 (siehe 1) empfängt die Benachrichtigung, die von dem Überwachungsmodul 118 (siehe 1) gesendet wurde.
  • Vor Schritt 208 empfängt das erste Computersystem 101 (siehe 1) einen CPU-Auslastungsschwellenwert, der eine maximale derzeitige Auslastung der CPU 102 (siehe 1) angibt, deren Vorhandensein zulässig ist, wenn eine zweite Hashfunktion statt einer ersten Hashfunktion ausgewählt wird. Eine Anwendung der ersten Hashfunktion auf ein Datenpaket zum Erzeugen eines Hashauszugs verwendet weniger Ressourcen, die von der CPU 102 (siehe 1) bereitgestellt werden, als die Anwendung der zweiten Hashfunktion auf dasselbe Datenpaket zum Erzeugen eines Hashauszugs. Die zweite Hashfunktion ist jedoch stärker als die erste Hashfunktion, weil die Hashfunktion einen längeren Hashauszug erzeugt als den Hashauszug, der durch die erste Hashfunktion erzeugt wird, und daher wird durch Anwenden der zweiten Hashfunktion statt der ersten Hashfunktion die Wahrscheinlichkeit von Hash-Kollisionen verringert. Somit wird das Anwenden der zweiten Hashfunktion gegenüber der ersten Hashfunktion bevorzugt, wenn ausreichende CPU-Kapazität verfügbar ist (d. h. die CPU-Auslastung ist kleiner als der oder gleich dem CPU-Auslastungsschwellenwert). Der CPU-Auslastungsschwellenwert kann ein Standardwert oder ein benutzerdefinierter Wert sein. In Schritt 208 ermittelt das Überwachungsmodul 118 (siehe 1), ob eine Auslastung der CPU 102 (siehe 1) (d. h. CPU-Auslastung) größer als der CPU-Auslastungsschwellenwert ist. Wenn das Überwachungsmodul 118 (siehe 1) in Schritt 208 ermittelt, dass die CPU-Auslastung größer als der CPU-Auslastungsschwellenwert ist, wird der Abzweig „Ja” von Schritt 208 eingeschlagen, und Schritt 210 wird ausgeführt.
  • In Schritt 210 wählt das Deduplizierungsmodul 120 (siehe 1) die erste Hashfunktion statt einer zweiten Hashfunktion aus und weist die ausgewählte erste Hashfunktion als die zum Ermitteln eines Hashauszugs für das Datenpaket zu verwendende Hashfunktion zu.
  • Wenn unter Rückkehr zu Schritt 208 das Überwachungsmodul 118 (siehe 1) in Schritt 208 ermittelt, dass die CPU-Auslastung kleiner ist als der CPU-Auslastungsschwellenwert, wird der Abzweig „Nein” von Schritt 208 eingeschlagen, und Schritt 212 wird ausgeführt.
  • In Schritt 212 wählt das Deduplizierungsmodul 120 (siehe 1) die zweite Hashfunktion statt der ersten Hashfunktion aus. Das Deduplizierungsmodul (siehe 1) weist die ausgewählte zweite Hashfunktion als die zum Ermitteln eines Hashauszugs für das Datenpaket zu verwendende Hashfunktion zu.
  • Schritt 214 folgt auf Schritt 210 und Schritt 212. In Schritt 214 ermittelt das Deduplizierungsmodul 120 (siehe 1) durch Anwenden der in Schritt 210 ausgewählten ersten Hashfunktion oder der in Schritt 212 ausgewählten zweiten Hashfunktion den Hashauszug D1 des Datenpakets. Hierin wird im Folgenden die entweder in Schritt 210 oder Schritt 212 ausgewählte Hashfunktion auch als die ausgewählte Hashfunktion bezeichnet.
  • In Schritt 216 ermittelt das Deduplizierungsmodul 120 (siehe 1), ob in Schritt 204 ein Wechsel in den Deduplizierungsmodus erfolgt ist. Wenn das Deduplizierungsmodul 120 (siehe 1) in Schritt 216 ermittelt, dass in Schritt 204 kein Wechsel in den Deduplizierungsmodus erfolgt ist, wird der Abzweig „Nein” von Schritt 216 eingeschlagen, und Schritt 218 wird ausgeführt.
  • In Schritt 218 sendet das Deduplizierungsmodul 120 (siehe 1) das Datenpaket, den Hashauszug D1 und eine Kennung der ausgewählten Hashfunktion in einem Datenübertragungspaket über das Netzwerk 130 (siehe 1) an das zweite Computersystem 151 (siehe 1). Zum Beispiel können mehrere Hashfunktionen, wie die in Tabelle 1 aufgelisteten Hashfunktionen, eindeutig durch jeweilige Nummern gekennzeichnet werden (die Kennung von MD5 ist z. B. 1, die Kennung von SHA-256 ist 2 und die Kennung von WHIRLPOOL ist 3). Schritt 230 in 2B folgt auf Schritt 218.
  • Wenn unter Rückkehr zu Schritt 216 das Deduplizierungsmodul 120 (siehe 1) ermittelt, dass der Wechsel in den Deduplizierungsmodus erfolgt ist, wird der Abzweig „Ja” von Schritt 216 eingeschlagen, und der nächste Schritt in dem Prozess von 2A bis 2B ist Schritt 220 in 2B.
  • In Schritt 220 in 2B ermittelt das Deduplizierungsmodul 120 (siehe 1), ob sich der Hashauszug D1 bereits in der Sender-Hashtabelle 122 befindet (siehe 1). Zum Beispiel versucht das Deduplizierungsmodul 120 (siehe 1), den Hashauszug D1 mit der zweiten Spalte von Tabelle 2 abzugleichen. Wenn das Deduplizierungsmodul 120 (siehe 1) in Schritt 220 ermittelt, dass sich der Hashauszug D1 in der Sender-Hashtabelle 122 befindet (siehe 1), wird der Abzweig „Ja” von Schritt 220 eingeschlagen, und Schritt 222 wird ausgeführt.
  • In Schritt 222 ermittelt das Deduplizierungsmodul 120 (siehe 1) einen Index, der auf den Hashauszug D1 in der Sender-Hashtabelle 122 verweist (siehe 1), und das Deduplizierungsmodul 120 (siehe 1) aktualisiert eine Nutzungszahl in einem Eintrag der Sender-Hashtabelle 122 (siehe 1), wobei der Eintrag den Index, den Hashauszug D1, das Datenpaket und die Nutzungszahl enthält. In einer Ausführungsform erhöht das Deduplizierungsmodul 120 (siehe 1) die Nutzungszahl bei jeder Verarbeitung des Datenpakets über den Abzweig „Ja” von Schritt 220 und Schritt 222 um 1. In einer Ausführungsform ist der in Schritt 222 ermittelte Index eine Zeilennummer der Sender-Hashtabelle 122 (siehe 1).
  • In Schritt 224 erzeugt das Deduplizierungsmodul 120 (siehe 1) ein Datenübertragungspaket, das den Hashauszug D1 und den Index enthält, der auf den Hashauszug D1 in der Sender-Hashtabelle 122 verweist (siehe 1), und optional die Kennung der ausgewählten Hashfunktion enthält, und sendet das erzeugte Datenübertragungspaket an das zweite Computersystem 151 (siehe 1). Das Datenpaket ist nicht in dem Datenübertragungspaket enthalten, das in Schritt 224 erzeugt wurde. Schritt 230 folgt auf Schritt 224.
  • Wenn unter Rückkehr zu Schritt 220 das Deduplizierungsmodul 120 (siehe 1) ermittelt, dass sich der Hashauszug D1 nicht in der Sender-Hashtabelle 122 befindet (siehe 1), wird der Abzweig „Nein” von Schritt 220 eingeschlagen, und Schritt 226 wird ausgeführt.
  • In Schritt 226 fügt das Deduplizierungsmodul 120 (siehe 1) den Hashauszug D1 und das Datenpaket in einem neuen Datensatz hinzu (z. B. in einer neuen Zeile), der an die Sender-Hashtabelle 122 angehängt wird (siehe 1). Das Deduplizierungsmodul 120 (siehe 1) ermittelt einen Index (z. B. eine Zeilennummer), die auf den Hashauszug D1 und das Datenpaket verweist, die in Schritt 226 zu der Sender-Hashtabelle 122 hinzugefügt werden (siehe 1). Das Deduplizierungsmodul 120 (siehe 1) initialisiert auch den Wert einer Nutzungszahl in dem neuen Datensatz. Zum Beispiel kann der initialisierte Wert der Nutzungszahl 1 sein.
  • In Schritt 228 erzeugt das Deduplizierungsmodul 120 (siehe 1) ein Datenübertragungspaket, welches das Datenpaket, den als Metadaten eingebetteten Hashauszug D1 und eine Kennung der in Schritt 210 (siehe 2A) oder Schritt 212 (siehe 2A) ausgewählten Hashfunktion enthält, und sendet das erzeugte Datenübertragungspaket an das zweite Computersystem 151 (siehe 1).
  • In Schritt 230, der nach Schritt 224 und Schritt 228 folgt, empfängt das Verdoppelungsmodul 168 (siehe 1), das in dem zweiten Computersystem 151 (siehe 1) ausgeführt wird, das in Schritt 224 oder Schritt 228 erzeugte Datenübertragungspaket.
  • In Schritt 232 ermittelt das Verdoppelungssystem 168 (siehe 1), ob das in Schritt 230 empfangene Datenübertragungspaket das Datenpaket enthält. Wenn das Verdoppelungsmodul 168 (siehe 1) in Schritt 232 ermittelt, dass das in Schritt 230 empfangene Datenübertragungspaket das Datenpaket enthält, das in Schritt 228 oder 218 gesendet wurde (siehe 2A), wird der Abzweig „Ja” von Schritt 232 eingeschlagen, und Schritt 234 wird ausgeführt. In einer Ausführungsform ermittelt das Verdoppelungsmodul 168 (siehe 1), dass das in Schritt 230 empfangene Datenübertragungspaket das Datenpaket nicht enthält auf Grundlage, dass das Verdoppelungsmodul 168 (siehe 1) in Schritt 204 die Benachrichtigung erhalten hat (siehe 2A), dass das Deduplizierungsmodul 120 (siehe 1) in den Deduplizierungsmodus gewechselt hat, und auf Grundlage, dass das Verdoppelungsmodul 168 (siehe 1) in Schritt 230 das Datenübertragungspaket empfangen hat, das den Hashauszug D1, den auf den Hashauszug D1 in der Sender-Hashtabelle 122 verweisenden Index (siehe 1) und die Kennung der ausgewählten Hashfunktion enthält.
  • Im Anschluss an Schritt 232 und vor Schritt 234 identifiziert das Verdoppelungsmodul 168 (siehe 1) die ausgewählte Hashfunktion unter Verwendung der Kennung der Hashfunktion, die in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist. In Schritt 234 ermittelt das Verdoppelungsmodul 168 (siehe 1) einen Hashauszug D2 durch Anwenden der identifizierten Hashfunktion auf das Datenpaket, das in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist.
  • In Schritt 236 ermittelt das Verdoppelungsmodul 168 (siehe 1), ob der Hashauszug D1, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist, gleich dem Hashauszug D2 ist, wodurch angegeben wird, ob das empfangene Datenpaket Datenintegrität besitzt. Wenn das Verdoppelungsmodul 168 (siehe 1) in Schritt 236 ermittelt, dass D1 nicht gleich D2 ist, ermittelt das Verdoppelungsmodul eine fehlende Datenintegrität in dem empfangenen Datenpaket, der Abzweig „Nein” von Schritt 236 wird eingeschlagen, und Schritt 238 wird ausgeführt.
  • In Schritt 238 wird eine Fehlerbehebungsprozedur ausgeführt. Die Fehlerbehebungsprozedur enthält, dass das Verdoppelungsmodul 168 (siehe 1) eine Nachricht an das erste Computersystem 101 sendet (siehe 1) die angibt, dass dem Datenpaket Datenintegrität fehlt. In Reaktion auf den Empfang der Nachricht über die fehlende Datenintegrität erzeugt das erste Computersystem 101 (siehe 1) ein weiteres Datenübertragungspaket, um das Datenpaket zusammen mit dem Hashauszug D1 und der Kennung der ausgewählten Hashfunktion erneut an das zweite Computersystem 151 zu senden (siehe 1). Der Prozess von 2A bis 2B endet an Schritt 240. Zwar wird dies nicht gezeigt, aber nachdem das erste Computersystem 101 (siehe 1) in Schritt 238 das Datenpaket, den Hashauszug D1 und die Kennung der ausgewählten Hashfunktion erneut gesendet hat, werden die Schritte 230, 232, 234 und 236 wiederholt, bis in Schritt 236 ermittelt wird, dass D1 = D2, und der Abzweig „Ja” eingeschlagen wird, wie im Folgenden beschrieben. Nach einer Wiederholung der Schritte 230, 232, 234 und 236 und wenn D1 nicht gleich D2 ist, kann die Fehlerbehebungsprozedur in Schritt 238 wiederholt werden.
  • Wenn unter Rückkehr zu Schritt 236 das Verdoppelungsmodul 168 (siehe 1) ermittelt, dass D1 = D2, wird der Abzweig „Ja” von Schritt 236 eingeschlagen, und Schritt 242 wird ausgeführt.
  • In Schritt 242 ermittelt das Verdoppelungsmodul 168 (siehe 1), dass das empfangene Datenpaket Datenintegrität besitzt und fügt den empfangenen Hashauszug D1 und das Datenpaket in einem neuen Datensatz hinzu (z. B. in einer neuen Zeile), der an die Empfänger-Hashtabelle 172 angehängt wird (siehe 1). Somit stimmt der neue, in Schritt 242 an die Empfänger-Hashtabelle 172 (siehe 1) angehängte Datensatz mit dem neuen, an die Sender-Hashtabelle 122 (siehe 1) angehängten Datensatz in der letzten Ausführung von Schritt 226 überein. Nach dem Anhängen des neuen Datensatzes an die Empfänger-Hashtabelle 172 (siehe 1) stimmen die Inhalte der Empfänger-Hashtabelle 172 (siehe 1) wieder mit den Inhalten der Sender-Hashtabelle 122 (siehe 1) überein.
  • In Schritt 244 sendet das Verdoppelungsmodul 168 (siehe 1) das Datenpaket an die Anwendung, die das Datenpaket angefordert hat. Nach Schritt 244 endet der Prozess von 2A bis 2B an Schritt 240.
  • Wenn unter Rückkehr zu Schritt 232 das Verdoppelungsmodul 168 (siehe 1) ermittelt, dass das in Schritt 230 empfangene Datenübertragungspaket das Datenpaket nicht enthält (d. h. in Schritt 224 wurde das Datenübertragungspaket nur mit dem Hashauszug D1 und dem Index von D1 gesendet), wird der Abzweig „Nein” von Schritt 232 eingeschlagen, und Schritt 246 wird ausgeführt.
  • In Schritt 246 sucht das Verdoppelungsmodul 168 (siehe 1) den im Schritt 230 empfangenen Index in der Empfänger-Hashtabelle 172 (siehe 1) und findet und ruft auf Grundlage der Suchfunktion einen Hashauszug in einem Eintrag in der Empfänger-Hashtabelle 172 ab (siehe 1), auf den durch den Index verwiesen wird.
  • In Schritt 248 ermittelt das Verdoppelungsmodul 168 (siehe 1), ob der in Schritt 246 aus der Empfänger-Hashtabelle 172 (siehe 1) abgerufene Hashauszug gleich dem Hashauszug D1 ist, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war. Wenn das Verdoppelungsmodul 168 (siehe 1) in Schritt 248 ermittelt, dass der aus der Empfänger-Hashtabelle 172 (siehe 1) abgerufene Hashauszug gleich dem Hashauszug D1 ist, wird der Abzweig „Ja” von Schritt 248 eingeschlagen, und Schritt 250 wird ausgeführt.
  • In Schritt 250 ruft das Verdoppelungsmodul 168 (siehe 1) ein Datenpaket aus der Empfänger-Hashtabelle 172 (siehe 1) auf Grundlage des Datenpakets ab, auf das durch den Index verwiesen wurde, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist. Wenn die Kennung der ausgewählten Hashfunktion in Schritt 224 gesendet wurde und in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist, enthält der Schritt 250 auch, dass das Verdoppelungsmodul 168 (siehe 1) die folgenden Schritte ausführt: (1) auf Grundlage der Kennung der ausgewählten Hashfunktion ermitteln, die in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist, welche Hashfunktion die ausgewählte Hashfunktion ist; (2) einen neuen Hashauszug durch Anwenden der ausgewählten Hashfunktion auf das in Schritt 250 abgerufene Datenpaket ermitteln; und (3) ermitteln, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt.
  • In Schritt 244, der auf Schritt 250 folgt, und wenn die Kennung der ausgewählten Hashfunktion nicht in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, sendet das Verdoppelungsmodul 168 (siehe 1) das Datenpaket an die Anwendung, die das Datenpaket angefordert hat, wobei das gesendete Datenpaket das in Schritt 250 abgerufene Datenpaket ist. Wenn die Kennung der ausgewählten Hashfunktion in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, und wenn der in Schritt 250 ermittelte neue Hashauszug mit dem Hashauszug übereinstimmt, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, sendet das Verdoppelungsmodul 168 (siehe 1) in Schritt 244 das Datenpaket an die Anwendung, die das Datenpaket angefordert hat, wobei das gesendete Datenpaket das in Schritt 250 abgerufene Datenpaket ist. Wie oben beschrieben wird das Datenpaket aus der Empfänger-Hashtabelle 172 (siehe 1) abgerufen und in Reaktion darauf, dass nur der Hashauszug D1 und der Index von D1 in Schritt 224 gesendet wurden, an die Anwendung gesendet (d. h. ohne dass das Datenpaket in Schritt 224 über das Netzwerk 130 (siehe 1) von dem ersten Computersystem 101 (siehe 1) an das zweite Computersystem 151 (siehe 1) gesendet wurde), wodurch die über das Netzwerk 130 (siehe 1) gesendete Datenmenge im Vergleich mit bekannten Techniken verringert wird, die ein Datenpaket über ein Netzwerk in Reaktion darauf, dass dasselbe Datenpaket mehrmals angefordert wird, übertragen und erneut übertragen. Nach Schritt 244 endet der Prozess von 2A bis 2B an Schritt 240.
  • Wenn unter Rückkehr zu Schritt 248 das Verdoppelungsmodul 168 (siehe 1) ermittelt, dass der in Schritt 246 aus der Empfänger-Hashtabelle 172 (1) abgerufene Hashauszug nicht gleich dem Hashauszug D1 ist, wird der Abzweig „Nein” von Schritt 248 eingeschlagen, und Schritt 252 wird ausgeführt.
  • In Schritt 252 wird eine Fehlerbehebungsprozedur ausgeführt. Die Fehlerbehebungsprozedur in Schritt 252 enthält, dass das Verdoppelungsmodul 168 (siehe 1) weitere Einträge der Empfänger-Hashtabelle 172 (siehe 1) nach einem Hashauszug durchsucht, der mit dem Hashauszug D1 übereinstimmt. Wenn das Ergebnis dieser Suche ist, dass das Verdoppelungsmodul 168 (siehe 1) einen Eintrag in der Empfänger-Hashtabelle 172 (siehe 1) findet, der einen Hashauszug enthält, der mit dem Hashauszug D1 übereinstimmt, ruft das Verdoppelungsmodul 168 (siehe 1) das Datenpaket ab, das sich in dem gefundenen Eintrag befindet, sendet das abgerufene Datenpaket an die Anwendung, die das Datenpaket angefordert hat, und verschiebt den gefundenen Eintrag in der Empfänger-Hashtabelle 172 (siehe 1) so, dass dessen Index mit dem Index übereinstimmt, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, wodurch die Fehlerbehebungsprozedur beendet wird.
  • Wenn die Kennung der ausgewählten Hashfunktion in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, führt das Verdoppelungsmodul 168 (siehe 1) vor dem Senden des abgerufenen Datenpakets an die Anwendung optional die folgenden Schritte aus: (1) auf Grundlage der Kennung der ausgewählten Hashfunktion ermitteln, die in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten ist, welche Hashfunktion die ausgewählte Hashfunktion ist; (2) einen neuen Hashauszug durch Anwenden der ausgewählten Hashfunktion auf das abgerufene Datenpaket ermitteln; und (3) ermitteln, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt. Wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, sendet das Verdoppelungsmodul 168 (siehe 1) anschließend das abgerufene Datenpaket an die Anwendung, die das Datenpaket angefordert hat, und verschiebt den gefundenen Eintrag in der Empfänger-Hashtabelle 172 (siehe 1) so, dass dessen Index mit dem Index übereinstimmt, der in dem in Schritt 230 empfangenen Datenübertragungspaket enthalten war, wodurch die Fehlerbehebungsprozedur beendet wird.
  • Wenn das Verdoppelungsmodul 168 (siehe 1) keinen Eintrag in der Empfänger-Hashtabelle 172 (siehe 1) finden kann, der einen Hashauszug enthält, der gleich dem Hashauszug D1 ist, sendet das Verdoppelungsmodul 168 (siehe 1) eine Nachricht an das erste Computersystem 101 (siehe 1), die angibt, dass das dem Hashauszug D1 entsprechende Datenpaket nicht in der Empfänger-Hashtabelle 172 (siehe 1) gefunden wurde, wodurch die Fehlerbehebungsprozedur abgeschlossen wird. Nach dem Abschließen der Fehlerbehebungsprozedur in Schritt 252 endet der Prozess der 2A bis 2B an Schritt 240.
  • In einer Ausführungsform wiederholt sich der Prozess von 2A bis 2B zum Verarbeiten von einer oder mehreren zusätzlichen Anforderungen, ein oder mehrere Datenpakete von dem ersten Computersystem 101 (siehe 1) an das zweite Computersystem 151 (siehe 1) zu senden, für jedes der anderen Datenpakete an Schritt 214 (siehe 2A), und solange die Netzwerkauslastung weiterhin den Netzwerkauslastungs-Schwellenwert überschreitet, bleibt das Deduplizierungsmodul 120 (siehe 1) im Deduplizierungsmodus, und es erfolgt kein erneutes Senden der Benachrichtigung von dem Computersystem 101 (siehe 1) an das Computersystem 151 (siehe 1), dass sich das Deduplizierungsmodul 120 (siehe 1) im Deduplizierungsmodus befindet. In einer alternativen Ausführungsform erfolgt die Prüfung der CPU-Auslastung in Schritt 208, und die Schritte 210, 212 und 214 (siehe 2A) erfolgen vor der Prüfung der Netzwerkauslastung in Schritt 202 (siehe 2A).
  • In einer alternativen Ausführungsform führt ein Computersystem 101-1 (siehe 5), das den Überwachungsprogrammcode 518 (siehe 5) ausführt, die Schritte 202, 204 und 208 aus (siehe 2A); das Computersystem 101-1 (siehe 5), das einen Deduplizierungsprogrammcode 520 (siehe 5) ausführt, führt die Zuweisung der Sender-Hashtabelle 122 (siehe 1) in Schritt 206 (siehe 2A), den Schritten 210, 212, 214, 216 und 218 (siehe 2A) und den Schritten 220, 222, 224, 226 und 228 aus (siehe 2B). Ferner führt in der Ausführungsform, die in diesem Abschnitt beschrieben wird, das Computersystem 151 (siehe 1), das den Verdoppelungsprogrammcode 568 (siehe 5) ausführt, die Zuweisung der Empfänger-Hashtabelle 172 (siehe 1) in Schritt 206 (siehe 2A) und in den Schritten 230, 232, 234, 236, 238, 242, 244, 246, 248, 250 und 252 aus (siehe 2B).
  • Prozess zum Verwalten von Hashtabellenbereich
  • 3 ist ein Ablaufplan eines Prozesses zum Verwalten eines Hashtabellenbereichs in dem System von 1 gemäß Ausführungsformen der vorliegenden Erfindung. In einer Ausführungsform tritt der Prozess von 3 periodisch auf, wenn der Prozess von 2A bis 2B für mehrere Datenpakete in einem Deduplizierungsmodus wiederholt wird. Der Prozess von 3 beginnt mit Schritt 300. In Schritt 302 ermittelt das Überwachungsmodul 118 (siehe 1) die Bereichsmenge, die in der Sender-Hashtabelle 122 (siehe 1) zur Verfügung steht (d. h. den verfügbaren Bereich). Vor Schritt 304 empfängt das Überwachungsmodul 118 (siehe 1) einen Schwellenwert für verfügbaren Bereich, der angibt, wie gering die Menge an verfügbarem Bereich in der Sender-Hashtabelle 122 (siehe 1) sein darf, ohne einen Löschvorgang für einen oder mehrere Einträge in der Sender-Hashtabelle 122 (siehe 1) zu erfordern, um den verfügbaren Bereich zu vergrößern.
  • In Schritt 304 ermittelt das Überwachungsmodul 118 (siehe 1), ob der verfügbare Bereich, der in Schritt 302 bestimmt wurde, kleiner ist als der Schwellenwert für verfügbaren Bereich. Wenn das Überwachungsmodul 118 (siehe 1) ermittelt, dass der in Schritt 302 ermittelte verfügbare Bereich größer als der oder gleich dem Schwellenwert für verfügbaren Bereich ist, wird der Abzweig „Nein” von Schritt 304 eingeschlagen, und der Prozess von 3 kehrt in einer Schleife zu Schritt 302 zurück. Wenn das Überwachungsmodul 118 (siehe 1) ermittelt, dass der in Schritt 302 ermittelte verfügbare Bereich kleiner ist als der Schwellenwert für verfügbaren Bereich, wird der Abzweig „Ja” eingeschlagen, und Schritt 306 wird ausgeführt. Alternativ prüft der Empfänger (d. h. das Computersystem 151 in 1) den verfügbaren Bereich, und wenn der verfügbare Bereich unter den Schwellenwert fällt, sendet der Empfänger eine Nachricht an den Sender (d. h. das Computersystem 101 in 1), mit der eine Bereinigung der Empfänger-Hashtabelle 172 angefordert wird. Nach dem Senden der vorgenannten Nachricht wird der Abzweig ”Ja” von Schritt 304 eingeschlagen.
  • In Schritt 306 ermittelt das Überwachungsmodul 118 (siehe 1) auf Grundlage dessen, dass der verfügbare Bereich in der Sender-Hashtabelle 122 (siehe 1) kleiner ist als der Schwellenwert für verfügbaren Bereich, einen Index oder mehrere Indices (z. B. Zeilennummern) von einem oder mehreren Einträgen in der Sender-Hashtabelle 122 (siehe 1), deren jeweilige Nutzungszahl(en) gleich einer niedrigsten Nutzungszahl oder nächstniedrigsten Nutzungszahl ist bzw. sind. In der ersten Ausführung von Schritt 306 ermittelt das Überwachungsmodul 118 (siehe 1) den Index bzw. die Indices des oder der Einträge in der Sender-Hashtabelle 122 (siehe 1), die eine Nutzungszahl gleich der niedrigsten Nutzungszahl haben im Vergleich mit allen anderen Nutzungszahlen in der Sender-Hashtabelle 122 (siehe 1). In einer anschließenden Ausführung von Schritt 306, die sich aus der Schleife ergibt, die am Abzweig „Ja” von Schritt 314 beginnt, wie im Folgenden beschrieben, ermittelt das Überwachungsmodul 118 (siehe 1) einen Index bzw. Indices von einem oder mehreren Einträgen in der Sender-Hashtabelle 122 (siehe 1), die eine Nutzungszahl haben, die gleich der nächstniedrigsten Nutzungszahl relativ zu der bestimmten Nutzungszahl ist, die in der letzten vorherigen Ausführung von Schritt 306 verwendet wurde.
  • In Schritt 308 sendet das Überwachungsmodul 118 (siehe 1) den Index bzw. die Indices, die in Schritt 306 ermittelt wurden (z. B. als eine Liste), an das Empfänger-Computersystem 151 (siehe 1). Anschließend an Schritt 308 und vor Schritt 310 empfängt das Empfänger-Computersystem 151 (siehe 1) den Index bzw. die Indices, die vom Überwachungsmodul 118 (siehe 1) gesendet wurden.
  • In Schritt 310 löscht das Überwachungsmodul 118 (siehe 1) oder ein anderes Modul auf Software-Grundlage, das im Sender-Computersystem 101 (siehe 1) ausgeführt wird, den einen oder die mehreren Dateneinträge in der Sender-Hashtabelle 122 (siehe 1), die dem Index bzw. den Indices entsprechen, die in Schritt 306 ermittelt wurden. Ebenfalls im Schritt 310 löscht ein Modul auf Software-Grundlage, das in dem Empfänger-Computersystem 151 (siehe 1) ausgeführt wird, den einen oder die mehreren Dateneinträge in der Empfänger-Hashtabelle 172 (siehe 1), die dem Index bzw. den Indices entsprechen, die in Schritt 306 gesendet wurden und anschließend vom Empfänger-Computersystem 151 (siehe 1) empfangen wurden.
  • In Schritt 312 ermittelt das Überwachungsmodul 118 (siehe 1) erneut den verfügbaren Bereich in der Sender-Hashtabelle 122 (siehe 1).
  • In Schritt 314 ermittelt das Überwachungsmodul 118 (siehe 1), ob der verfügbare Bereich in der Sender-Hashtabelle 122 (siehe 1) immer noch kleiner ist als der Schwellenwert für verfügbaren Bereich. Wenn das Überwachungsmodul 118 (siehe 1) in Schritt 314 ermittelt, dass der verfügbare Bereich kleiner als der Schwellenwert für verfügbaren Bereich ist, wird der Abzweig „Ja” von Schritt 314 eingeschlagen, und der Prozess von 3 kehrt in einer Schleife zum Schritt 306 zurück, um einen oder mehrere Indices von einem oder mehreren anderen Hashtabellen-Dateneinträgen zu ermitteln, die gelöscht werden müssen, um den verfügbaren Bereich in der Sender-Hashtabelle 122 (siehe 1) und in der Empfänger-Hashtabelle 172 (siehe 1) zu vergrößern. Wenn andernfalls das Überwachungsmodul 118 (siehe 1) in Schritt 314 ermittelt, dass der verfügbare Bereich größer als oder gleich dem Schwellenwert für verfügbaren Bereich ist, wird der Abzweig „Nein” von Schritt 314 eingeschlagen, und Schritt 316 wird ausgeführt Der Prozess von 3 endet mit Schritt 316.
  • Zum Beispiel wird angenommen, dass die Sender-Hashtabelle 122 (siehe 1) in den Zeilen 1 bis 10 jeweils die folgenden Nutzungszahlen aufweist: 1, 2, 1, 5, 2, 4, 5, 2, 4, 4 (d. h. die erste Zeile hat eine Nutzungszahl 1, die zweite Zeile hat eine Nutzungszahl 2, die dritte Zeile hat eine Nutzungszahl 1 usw., bis zur zehnten Zeile, die eine Nutzungszahl 4 hat). In diesem Beispiel ermittelt die erste Ausführung von Schritt 306, dass die Zeilen mit den Nummern 1 und 3 gelöscht werden müssen, um den verfügbaren Bereich in der Sender-Hashtabelle 122 (siehe 1) und in der Empfänger-Hashtabelle 172 (siehe 1) zu vergrößern, weil die niedrigste Nutzungszahl 1 ist, und die erste und die dritte Zeile die niedrigste Nutzungszahl 1 aufweisen. Wenn nach dem Löschen der Zeilen mit den Nummern 1 und 3 im Schritt 310 der Schritt 314 ermittelt, dass der verfügbare Bereich immer noch kleiner als der Schwellenwert ist, ermittelt eine zweite Ausführung von Schritt 306, dass die Zeilen mit den Nummern 2, 5 und 8 gelöscht werden müssen, weil 2 die nächstniedrigste Nutzungszahl nach der Nutzungszahl 1 ist, die in der ersten Ausführung von Schritt 306 verwendet wurde, und weil die zweite, fünfte und achte Zeile die nächstniedrigste Nutzungszahl 2 aufweisen. Wenn nach dem Löschen der zweiten, fünften und achten Zeile der Schritt 314 ermittelt, dass der verfügbare Bereich immer noch kleiner als der Schwellenwert ist, ermittelt eine dritte Ausführung von Schritt 306, dass die Zeilen mit den Nummern 6, 9 und 10 gelöscht werden müssen, weil die nächstniedrigste Zahl 4 ist, nachdem die Nutzungszahl 2 in der zweiten Ausführung von Schritt 306 verwendet wurde, und weil die sechste, neunte und zehnte Zeile die nächstniedrigste Nutzungszahl 4 aufweisen.
  • Beispiel
  • 4 ist ein beispielhaftes Datenübertragungspaket, das ein Datenpaket enthält, das durch den Prozess von 2A bis 2B gemäß Ausführungsformen der vorliegenden Erfindung verwaltet wird. Ein Datenübertragungspaket 402 enthält einen Header 404 und ein Datenpaket 406. Der Header 404 enthält eine Hashfunktionskennung 408, einen Hashauszug D1 410 und weitere Metadaten 412. Das Datenübertragungspaket 402 ist insofern eine Erweiterung von bekannten Datenübertragungspaketen, als der Header 404 die zusätzlichen Metadaten der Hashfunktionskennung 408 und des Hashauszugs Digest D1 410 enthält. Bekannte Metadaten sind in den weiteren Metadaten 412 enthalten.
  • Das Datenübertragungspaket 402 ist ein Beispiel für das in Schritt 218 (siehe 2A) oder Schritt 228 (siehe 2B) gesendete Datenübertragungspaket. Die Hashfunktionskennung 408 ist eine beispielhafte Kennung der in Schritt 210 (siehe 2A) oder Schritt 212 (siehe 2A) ausgewählten Hashfunktion. Beispiele für verfügbare Hashfunktionen siehe Tabelle 1. Das Datenpaket 406 ist ein Beispiel des Datenpakets, für das in Schritt 214 (siehe 2A) der Hashauszug D1 ermittelt wird, der in Schritt 218 (siehe 2A) oder Schritt 228 (siehe 2B) an das zweite Computersystem 151 (siehe 1) gesendet wird, und das in Schritt 244 (siehe 2B) an eine Anwendung gesendet wird. Der Hashauszug D1 410 ist ein Beispiel für den in Schritt 214 (siehe 2A) ermittelten Hashauszug und der an das Empfänger-Computersystem 151 (siehe 1) in Schritt 218 (siehe 2A) oder Schritt 228 (siehe 2B) gesendet wird.
  • Eine Variation des Datenübertragungspakets 402, die das Datenpaket 406 nicht enthält oder die im Datenpaket 406 keine Daten enthält, ist ein Beispiel des in Schritt 224 (siehe 2B) gesendeten Datenübertragungspakets. Wenn das Datenübertragungspaket 402 in Schritt 224 (siehe 2B) gesendet wird, enthält der Hashauszug D1 410 den in Schritt 214 (siehe 2A) ermittelten Hashauszug D1, und die weiteren Metadaten 412 enthalten den Index, der in Schritt 224 (siehe 2B) gesendet wird.
  • Computersystem
  • 5 ist ein Blockschaubild eines Computersystems, das die Prozesse von 2A bis 2B und 3 gemäß Ausführungsformen der vorliegenden Erfindung umsetzt. Ein System 500 enthält ein erstes Computersystem 101-1 und ein zweites Computersystem 151-1, die über ein Computernetzwerk 130-1 miteinander in Datenaustausch stehen.
  • Das erste Computersystem 101-1 weist im Allgemeinen eine Zentraleinheit (CPU) 102-1, einen Arbeitsspeicher 104-1, eine Eingabe/Ausgabe-(E/A)Schnittstelle 106-1, einen Bus 108-1 und eine Sender-NIC 116-1 auf. Ferner ist das Computersystem 101-1 mit E/A-Einheiten 110-1 und einer Computer-Datenspeichereinheit 112-1 verbunden. Desgleichen weist das Computersystem 151-1 im Allgemeinen eine CPU 152-1, einen Arbeitsspeicher 154-1, eine E/A-Schnittstelle 156-1, einen Bus 158-1 und eine Empfänger-NIC 166-1 auf, und das Computersystem 151-1 ist mit E/A-Einheiten 160-1 und einer Computer-Datenspeichereinheit 162-1 verbunden.
  • Die CPUs 102-1 und 152-1 führen Berechnungs- und Kontrollfunktionen jeweils für das Computersystem 101-1 und 151-1 aus, einschließlich dessen, dass die CPU 102-1 Anweisungen ausführt, die in dem Überwachungsprogrammcode 518 und dem Deduplizierungsprogrammcode 520 enthalten sind, und dass die CPU 152-1 Anweisungen ausführt, die in dem Verdoppelungsprogrammcode 568 enthalten sind, um ein Verfahren zum Verwalten eines Datenpakets unter Verwendung einer Sender-Hashtabelle 522 im Arbeitsspeicher 104-1 und einer Empfänger-Hashtabelle 572 im Arbeitsspeicher 154-1 auszuführen. Die im Code 518 und 520 enthaltenen Anweisungen werden von der CPU 102-1 über den Arbeitsspeicher 104-1 ausgeführt. Die im Code 568 enthaltenen Anweisungen werden von der CPU 152-1 über den Arbeitsspeicher 154-1 ausgeführt. Die CPU 102-1 und die CPU 152-1 können jeweils eine einzelne Verarbeitungseinheit aufweisen oder über eine oder mehrere Verarbeitungseinheiten an einer oder mehreren Positionen (z. B. auf einem Client und einem Server) verteilt sein.
  • In einer anderen Ausführungsform enthält das Computersystem 101-1 auch einen Verdoppelungsprogrammcode, dessen Funktionalität mit der Funktionalität des Verdoppelungsprogrammcodes 568 übereinstimmt, und das Computersystem 151-1 enthält auch einen Überwachungsprogrammcode und einen Deduplizierungsprogrammcode, deren Funktionalität jeweils mit der Funktionalität des Überwachungsprogrammcodes 518 und des Deduplizierungsprogrammcodes 520 übereinstimmt.
  • Der Arbeitsspeicher 104-1 und der Arbeitsspeicher 154-1 können jeweils jedes bekannte computerlesbare Speichermedium enthalten, wie im Folgenden beschrieben. In einer Ausführungsform können Cache-Speicherelemente des Arbeitsspeichers 104-1 und des Arbeitsspeichers 154-1 eine vorübergehende Speicherung von zumindest einigem Programmcode bereitstellen (z. B. Programmcode 518 und Programmcode 520), um die Anzahl der Abrufe von Code aus dem Massenspeicher zu verringern, während Anweisungen aus dem Programmcode ausgeführt werden. Des Weiteren können der Arbeitsspeicher 104-1 und der Arbeitsspeicher 154-1 sich jeweils an einer einzigen physischen Position befinden, die einen oder mehrere Typen eines Datenspeichers aufweist, oder über eine Vielzahl von physischen Systemen in verschiedenen Formen verteilt sein. Ferner können der Arbeitsspeicher 104-1 und der Arbeitsspeicher 154-1 jeweils Daten enthalten, die zum Beispiel über ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN) verteilt sind.
  • Die E/A-Schnittstelle 106-1 und die E/A-Schnittstelle 156-1 enthalten jeweils ein beliebiges System zum Austauschen von Informationen für oder von einer externen Quelle. Die E/A-Einheiten 110-1 und die E/A-Einheiten 160-1 enthalten jeden bekannten Typ einer externen Einheit, darunter eine Anzeigeeinheit (z. B. Monitor), Tastatur, Maus, Drucker, Lautsprecher, Handheld-Einheit, Fax usw. Der Bus 108-1 und der Bus 158-1 stellen eine Datenübertragungsverbindung zwischen jeder der Komponenten in dem jeweils ersten Computersystem 101-1 und dem zweiten Computersystem 151-1 bereit und können jeweils jeden Typ von Übertragungsverbindung aufweisen, einschließlich elektrisch, optisch, drahtlos usw.
  • Die E/A-Schnittstelle 106-1 und die E/A-Schnittstelle 156-1 ermöglichen es auch jeweils dem Computersystem 101-1 und dem Computersystem 151-1, Informationen (z. B. Daten oder Programmanweisungen wie den Programmcode 518 und den Programmcode 520) jeweils auf der Computer-Datenspeichereinheit 112-1 und der Computer-Datenspeichereinheit 162-1 oder einer anderen Computer-Datenspeichereinheit (nicht gezeigt) zu speichern und die Informationen von diesen abzurufen. Die Computer-Datenspeichereinheit 112-1 und die Computer-Datenspeichereinheit 162-1 können jeweils jedes bekannte computerlesbare Speichermedium aufweisen, wie im Folgenden beschrieben. Zum Beispiel kann die Computer-Datenspeichereinheit 112-1 oder die Computer-Datenspeichereinheit 162-1 eine nicht flüchtige Datenspeichereinheit wie beispielsweise eine Magnetplatte (d. h. ein Festplattenlaufwerk) oder ein optisches Laufwerk sein (z. B. ein CD-ROM-Laufwerk, das eine CD-ROM-Diskette aufnimmt).
  • Die Sender-NIC 116-1 ist eine Komponente, die das erste Computersystem 101-1 mit dem Netzwerk 130-1 verbindet. Die Empfänger-NIC 166-1 ist eine Komponente, die das zweite Computersystem 151-1 mit dem Netzwerk 130-1 verbindet.
  • Der Arbeitsspeicher 104-1 und/oder die Speichereinheit 112-1 können den Computerprogrammcode 518 und den Programmcode 520 speichern, die Anweisungen enthalten, die von der CPU 102-1 über den Arbeitsspeicher 104-1 zum Verwalten eines Datenpakets ausgeführt werden. Der Arbeitsspeicher 154-1 und/oder die Speichereinheit 162-1 können den Computerprogrammcode 568 speichern, der Anweisungen enthält, die von der CPU 152-1 über den Arbeitsspeicher 154-1 zum Verwalten eines Datenpakets ausgeführt werden. Obwohl 5 den Arbeitsspeicher 104-1 so darstellt, als enthielte er den Programmcode 518 und den Programmcode 520, berücksichtigt die vorliegende Erfindung Ausführungsformen, in denen der Arbeitsspeicher 104-1 den Code 518 und den Code 520 nicht gleichzeitig vollständig enthält, sondern stattdessen zu einem Zeitpunkt nur einen Abschnitt des Codes 518 und/oder einen Abschnitt des Codes 520 enthält. Obwohl 5 den Arbeitsspeicher 154-1 so darstellt, als enthielte er den Programmcode 568, berücksichtigt die vorliegende Erfindung Ausführungsformen, in denen der Arbeitsspeicher 154-1 nicht gleichzeitig den gesamten Code 568 enthält, sondern stattdessen zu einem Zeitpunkt nur einen Abschnitt des Codes 568 enthält.
  • Ferner können der Arbeitsspeicher 104-1 und der Arbeitsspeicher 154-1 weitere Systeme enthalten, die nicht in 5 gezeigt sind, wie beispielsweise jeweils ein Betriebssystem, das auf der CPU 102-1 ausgeführt wird und eine Steuerung von verschiedenen Komponenten in und/oder verbunden mit dem Computersystem 101-1 bereitstellt, und ein Betriebssystem, das auf der CPU 152-1 ausgeführt wird und eine Steuerung von verschiedenen Komponenten in und/oder verbunden mit dem Computersystem 151-1 bereitstellt.
  • In einer Ausführungsform speichern die Speichereinheit 112-1 und/oder eine oder mehrere andere Computer-Datenspeichereinheiten (nicht gezeigt), die mit dem Computersystem 101-1 verbunden sind, eine Sender-Hashtabelle 522. In einer Ausführungsform speichern die Speichereinheit 162-1 und/oder eine oder mehrere andere Computer-Datenspeichereinheiten (nicht gezeigt), die mit dem Computersystem 151-1 verbunden sind, eine Empfänger-Hashtabelle 572.
  • Wie einem Fachmann klar sein wird, kann die vorliegende Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert wenden. Dementsprechend kann ein Aspekt einer Ausführungsform der vorliegenden Erfindung in der Form eines vollständigen Hardware-Aspekts, eines vollständigen Software-Aspekts (einschließlich Firmware, residente Software, Mikrocode usw.) oder eines Aspekts vorliegen, der Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Modul” Bezug genommen werden kann. Des Weiteren kann eine Ausführungsform der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist (z. B. Arbeitsspeicher 104-1 und/oder Computer-Datenspeichereinheit 112-1; z. B. Arbeitsspeicher 154-1 und/oder Computer-Datenspeichereinheit 162-1), auf denen computerlesbarer Programmcode (z. B. Programmcode 518 und 520; z. B. Programmcode 568) verkörpert oder gespeichert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien (z. B. Arbeitsspeicher 104-1 und Computer-Datenspeichereinheit 112-1; z. B. Arbeitsspeicher 154-1 und/oder Computer-Datenspeichereinheit 162-1) kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Speichermedium oder ein computerlesbares Signalmedium sein. In einer Ausführungsform ist das computerlesbare Speichermedium eine computerlesbare Speichereinheit oder eine computerlesbare Speichervorrichtung. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches oder Halbleitersystem, eine derartige Vorrichtung, Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen für das computerlesbare Speichermedium enthält: eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments ist ein computerlesbares Speichermedium ein konkretes Medium, das ein Programm (z. B. Programm 518 und 520; z. B. Programm 568) zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen enthalten oder speichern kann. Die Begriffe „computerlesbares Speichermedium” und „computerlesbare Speichereinheit” schließen ein Verbreitungsmedium jedoch nicht ein.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede einer Vielfalt von Formen annehmen, unter anderem elektromagnetisch, optisch oder jede geeignete Kombination davon, es ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen übertragen, verbreiten oder transportieren kann.
  • In einem computerlesbaren Medium verkörperter Programmcode (z. B. Programmcode 518, 520 und 568) kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, Funkfrequenz (HF) usw. oder jede geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
  • Ein Computerprogrammcode (z. B. Programmcode 518, 520 und 568) zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie JAVA, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C” oder ähnlichen Programmiersprachen. Anweisungen des Programmcodes können vollständig auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden, wobei der vorgenannte Computer des Benutzers, der entfernt angeordnete Computer und Server zum Beispiel das Computersystem 101-1, das Computersystem 151-1 oder ein anderes Computersystem (nicht gezeigt) sein können, die Komponenten analog zu den Komponenten des in 5 enthaltenen Computersystems 101-1 oder des Computersystems 151-1 haben. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk (nicht gezeigt) verbunden sein, einschließlich einem LAN oder einem WAN, oder die Verbindung kann zu einem externen Computer hergestellt werden (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen (z. B. 2A bis 2B und 3) und/oder von Blockschaubildern von Verfahren, Vorrichtungen (Systemen) (z. B. 1 und 5) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können (z. B. Programmcode 518, 520 und 568). Diese Computerprogrammanweisungen können für einen oder mehrere Hardware-Prozessoren (z. B. CPU 102-1 oder CPU 152-1) eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den bzw. die Prozessoren des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einer computerlesbaren Einheit gespeichert werden (z. B. Arbeitsspeicher 104-1 oder Computer-Datenspeichereinheit 112-1; z. B. Arbeitsspeicher 154-1 oder Computer-Datenspeichereinheit 162-1) die einen Computer (z. B. das Computersystem 101-1 oder das Computersystem 151-1), andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu funktionieren, sodass die Anweisungen (z. B. Programmcode 518 und 520; z. B. Programmcode 568), die in der computerlesbaren Einheit gespeichert sind, einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer (z. B. das Computersystem 101-1 oder das Computersystem 151-1), eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen (z. B. Programmcode 518 und 520; z. B. Programmcode 568), die auf dem Computer, anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Jede der Komponenten einer Ausführungsform der vorliegenden Erfindung kann von einem Dienstanbieter angewendet, verwaltet, gepflegt usw. werden, der anbietet, eine Datenverarbeitungsinfrastruktur in Bezug auf die Verwaltung eines Datenpakets anzuwenden oder zu integrieren. Somit offenbart eine Ausführungsform der vorliegenden Erfindung einen Prozess zum Unterstützen einer Computer-Infrastruktur, wobei der Prozess ein erstes Computersystem enthält, das mindestens einen Unterstützungsdienst für mindestens eines von Integrieren, Hosten, Verwalten und Anwenden von computerlesbarem Code (z. B. Programmcode 518 und 520; z. B. Programmcode 568) in einem zweiten Computersystem (z. B. Computersystem 101-1 oder Computersystem 151-1) bereitstellt, das einen oder mehrere Prozessoren enthält (z. B. CPU 102-1 oder CPU 152-1), wobei der bzw. die Prozessoren Anweisungen ausführen, die in dem Code enthalten sind und das zweite Computersystem veranlassen, ein Datenpaket zu verwalten.
  • In einer anderen Ausführungsform stellt die Erfindung ein Verfahren bereit, das die Prozessschritte der Erfindung auf Grundlage eines Abonnements, von Werbung und/oder von Gebühren ausführt. Das heißt, dass ein Dienstanbieter, wie beispielsweise ein Lösungsintegrator, anbieten kann, einen Prozess zum Verwalten eines Datenpakets zu erstellen, zu verwalten, zu unterstützen usw. In diesem Fall kann der Dienstanbieter eine Computer-Infrastruktur erstellen, verwalten, unterstützen usw., die die Prozessschritte der Erfindung für einen oder mehrere Kunden ausführt. Im Gegenzug kann der Dienstanbieter eine Bezahlung von dem oder den Kunden gemäß einem Abonnement und/oder einer Gebührenvereinbarung erhalten und/oder der Dienstanbieter kann eine Bezahlung aus dem Verkauf von Werbeinhalt an eine oder mehrere dritte Parteien erhalten.
  • Die Ablaufpläne in 2A bis 2B und 3 und die Blockschaubilder in 1 und 5 veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt (z. B. Programmcode 518 und 520; z. B. Programmcode 568) darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block der Veranschaulichungen von Blockschaubildern und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder Veranschaulichungen des Ablaufplans durch spezielle Systeme auf Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
  • Unter erneuter Bezugnahme auf 1 ist das erste Computersystem 101 in einer Ausführungsform mit E/A-Einheiten (nicht gezeigt) und einer Computer-Datenspeichereinheit (nicht gezeigt) verbunden, wobei die E/A Einheiten und die Computer-Datenspeichereinheit jeweils die Funktionalität der E/A-Einheiten 110-1 (siehe 5) und der Computer-Datenspeichereinheit 112-1 (siehe 5) haben. In einer Ausführungsform ist das zweite Computersystem 151 mit E/A-Einheiten (nicht gezeigt) und einer Computer-Datenspeichereinheit (nicht gezeigt) verbunden, wobei die E/A Einheiten und die Computer-Datenspeichereinheit jeweils die Funktionalität der E/A-Einheiten 160-1 (siehe 5) und der Computer-Datenspeichereinheit 162-1 (siehe 5) haben.
  • Die CPU 102 führt Berechnungs- und Kontrollfunktionen für das erste Computersystem 101 aus, einschließlich des Ausführens von Anweisungen, die in dem Programmcode enthalten sind, der enthält, dass das Überwachungsmodul 118 und das Deduplizierungsmodul 120 ein Verfahren zum Verwalten eines Datenpakets ausführen. In einer Ausführungsform werden die Anweisungen, die im Überwachungsmodul 118 und im Deduplizierungsmodul 120 enthalten sind, durch einen Prozessor (nicht gezeigt) in der Sender-NIC 116 über einen Arbeitsspeicher (nicht gezeigt) in der Sender-NIC 116 oder durch die CPU 102 über den Arbeitsspeicher 104 ausgeführt. In einer anderen Ausführungsform werden die Anweisungen, die im Überwachungsmodul 118 und im Deduplizierungsmodul 120 enthalten sind, von der CPU 102 über den Arbeitsspeicher 104 ausgeführt.
  • Die CPU 152 führt Berechnungs- und Kontrollfunktionen für das zweite Computersystem 151 aus, einschließlich des Ausführens von Anweisungen, die in dem Programmcode enthalten sind, der enthält, dass das Verdoppelungsmodul 168 ein Verfahren zum Verwalten eines Datenpakets ausführt. In einer Ausführungsform werden die Anweisungen, die im Verdoppelungsmodul 168 enthalten sind, durch einen Prozessor (nicht gezeigt) in der Empfänger-NIC 166 über einen Arbeitsspeicher (nicht gezeigt) in der Empfänger-NIC 166 ausgeführt. In einer anderen Ausführungsform werden die Anweisungen, die im Verdoppelungsmodul 168 enthalten sind, von der CPU 152 über den Arbeitsspeicher 154 ausgeführt.
  • Die CPU 102 und die CPU 152 können jeweils eine einzelne Verarbeitungseinheit aufweisen oder über eine oder mehrere Verarbeitungseinheiten an einer oder mehrere Positionen (z. B. auf einem Client und einem Server) verteilt sein.
  • Der Arbeitsspeicher 104 und der Arbeitsspeicher 154 können jeweils jedes bekannte computerlesbare Speichermedium enthalten, wie oben beschrieben. Der Arbeitsspeicher 104 und der Arbeitsspeicher 154 haben jeweils die Merkmale und Einschränkungen des Arbeitsspeichers 104-1 (siehe 5) und des Arbeitsspeichers 154-1 (siehe 5), wie oben beschrieben.
  • In einer Ausführungsform ist die Funktionalität des Überwachungsmoduls 118 gleichwertig mit der Funktionalität des Überwachungsprogrammcodes 518 (siehe 5), die Funktionalität des Deduplizierungsmoduls 120 ist gleichwertig mit der Funktionalität des Deduplizierungsprogrammcodes 520 (siehe 5), die Funktionalität der Sender-Hashtabelle 122 ist gleichwertig mit der Funktionalität der Sender-Hashtabelle 522 (siehe 5), die Funktionalität des Verdoppelungsmoduls 168 ist gleichwertig mit der Funktionalität des Verdoppelungsprogrammcodes 568, und die Funktionalität der Empfänger-Hashtabelle 172 ist gleichwertig mit der Funktionalität der Empfänger-Hashtabelle 572 (siehe 5).
  • In einer alternativen Ausführungsform werden die Schritte, die in 2A bis 2B und in 3 durch das Überwachungsmodul 118, das Deduplizierungsmodul 120 und das Verdoppelungsmodul 168 ausgeführt werden, stattdessen jeweils durch das Computersystem 101-1 ausgeführt, das den Überwachungsprogrammcode 518 ausführt (siehe 5), das Computersystem 101-1, das den Deduplizierungsprogrammcode 520 ausführt (siehe 5) und das Computersystem 151-1, das den Verdoppelungsprogrammcode 568 ausführt (siehe 5).
  • Zwar wurden hierin Ausführungsformen der vorliegenden Erfindung zu Veranschaulichungszwecken beschrieben, doch werden für den Fachmann viele Modifizierungen und Änderungen offenkundig. Dementsprechend sollen die Ansprüche im Anhang alle derartigen Modifizierungen und Änderungen mit einschließen, die unter den Erfindungsgedanken und Schutzumfang dieser Erfindung fallen.

Claims (20)

  1. Verfahren zum Verwalten eines Datenpakets, wobei das Verfahren die Schritte aufweist: dass ein erster Computer ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk einen ersten Computer und einen zweiten Computer enthält; auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass der erste Computer eine Benachrichtigung an den zweiten Computer sendet, dass der erste Computer in den Deduplizierungsmodus gewechselt hat; dass der erste Computer ermittelt, ob eine Auslastung einer Zentraleinheit (CPU), die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass der erste Computer eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; dass der erste Computer einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass der erste Computer ermittelt, ob sich der Hausauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computer verbunden ist; wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass der erste Computer das Datenpaket zu dem zweiten Computer sendet, dass der erste Computer den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computer verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet; und wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass der erste Computer das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  2. Verfahren nach Anspruch 1, das ferner aufweist, dass der zweite Computer die Benachrichtigung empfängt, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, wobei der erste Computer ermittelt, dass sich der Hashauszug in der Sender-Hashtabelle befindet, und dass der erste Computer den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, und in Reaktion darauf: auf Grundlage der empfangenen Benachrichtigung, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, dass der zweite Computer ermittelt, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde; dass der zweite Computer den Hashauszug, den Index und die Kennung der ersten oder zweiten Hashfunktion empfängt: in Reaktion darauf, dass der zweite Computer ermittelt, dass das Datenpaket nicht empfangen wurde und auf Grundlage des Index, dass der zweite Computer den Hashauszug in der Empfänger-Hashtabelle sucht; dass der zweite Computer ermittelt, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das Datenpaket abruft, das dem gefundenen Hashauszug in der Empfänger-Hashtabelle zugehörig ist; auf Grundlage der empfangenen Kennung, dass der zweite Computer die ausgewählte erste oder zweite Hashfunktion ermittelt und einen neuen Hashauszug ermittelt, indem die erste oder die zweite Hashfunktion auf das abgerufene Datenpaket angewendet wird; dass der zweite Computer ermittelt, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt; und wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das abgerufene Datenpaket an eine Anwendung übergibt.
  3. Verfahren nach Anspruch 1, wobei der erste Computer ermittelt, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, und wobei das Verfahren ferner die Schritte aufweist: im Anschluss an den Schritt des Ermittelns, dass der Hashauszug nicht in der Sender-Hashtabelle ist, dass der erste Computer den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion in Metadaten einbettet, die in einem Datenübertragungspaket enthalten sind, das Datenpaket in das Datenübertragungspaket einbettet und das Datenübertragungspaket an den zweiten Computer sendet; in Reaktion auf den Schritt, dass der erste Computer das Datenübertragungspaket an den zweiten Computer sendet, dass der zweite Computer den Hashauszug, die Kennung der ausgewählten ersten oder zweiten Hashfunktion und das Datenpaket empfängt, indem er das Datenübertragungspaket empfängt; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion, dass der zweite Computer einen neuen Hashauszug ermittelt, indem die ausgewählte erste oder zweite Hashfunktion auf das empfangene Datenpaket angewendet wird; und dass der zweite Computer ermittelt, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, dass der zweite Computer ermittelt, ob das Datenpaket Integrität besitzt, und in Reaktion darauf, dass der zweite Computer das Datenpaket und den Hashauszug zu der Empfänger-Hashtabelle hinzufügt und das Datenpaket an eine Anwendung übergibt, und wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, dass der zweite Computer den ersten Computer benachrichtigt, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf, dass der erste Computer das Datenpaket und den Hashauszug an den zweiten Computer sendet.
  4. Verfahren nach Anspruch 3, wobei der zweite Computer ermittelt, dass der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und der zweite Computer das Datenpaket und den Hashauszug zu der Empfänger-Hashtabelle hinzufügt, und wobei das Verfahren ferner aufweist: im Anschluss daran, dass der erste Computer das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt, im Anschluss daran, dass der zweite Computer das Datenpaket und den Hashauszug zu der Empfänger-Hashtabelle hinzufügt, auf Grundlage, dass das Datenpaket zu der Sender-Hashtabelle hinzugefügt wird und ohne dass der erste Computer das Datenpaket an den zweiten Computer sendet, dass der erste Computer einen zweiten Hashauszug und den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, an den zweiten Computer sendet; dass der zweite Computer den zweiten Hashauszug und den Index empfängt, der von dem ersten Computer gesendet wurde; dass der zweite Computer auf Grundlage des Index den Hashauszug in der Empfänger-Hashtabelle sucht; dass der zweite Computer ermittelt, dass der Hashauszug, der sich in der Empfänger-Hashtabelle befindet, mit dem empfangenen zweiten Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, dass der zweite Computer das Datenpaket abruft, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion, dass der zweite Computer die ausgewählte erste oder zweite Hashfunktion ermittelt und einen neuen zweiten Hashauszug ermittelt, indem die ausgewählte erste oder zweite Hashfunktion auf das abgerufene Datenpaket angewendet wird, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; dass der zweite Computer ermittelt, ob der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; und wenn der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, dass der zweite Computer das abgerufene Datenpaket an die Anwendung übergibt.
  5. Verfahren nach Anspruch 1, wobei der erste Computer ermittelt, dass sich der Hashauszug in der Sender-Hashtabelle befindet und in Reaktion darauf, dass der erste Computer eine Zählerangabe aktualisiert, die in einer Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten ist, wobei die Zählerangabe angibt, wie oft der erste Computer den Index und den Hashauszug des Datenpakets zu irgendeinem anderen Computer in dem Netzwerk sendet, und wobei das Verfahren ferner die Schritte aufweist: dass der erste Computer die Schritte in dem Deduplizierungsmodus für andere Datenpakete wiederholt; dass der erste Computer andere Zählerangaben aktualisiert, die in der Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten sind, wobei die anderen Zählerangaben angeben, wie oft der erste Computer andere Indices und andere Hashauszüge der anderen Datenpakete an irgendeinen anderen Computer in dem Netzwerk sendet; dass der erste Computer während des Deduplizierungsmodus einen verfügbaren Bereich in der Sender-Hashtabelle ermittelt; dass der erste Computer ermittelt, dass der verfügbaren Bereich in der Sender-Hashtabelle kleiner ist als ein Bereichsschwellenwert; auf Grundlage dessen, dass der verfügbare Bereich in der Sender-Hashtabelle kleiner ist als der Bereichsschwellenwert, dass der erste Computer einen oder mehrere Indices der Sender-Hashtabelle ermittelt, die auf eine niedrigste Zählerangabe verweisen, die in der Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten ist; dass der erste Computer einen oder mehrere Einträge in der Sender-Hashtabelle löscht, die dem einen oder den mehreren Indices entsprechen und die niedrigste Zählerangabe enthalten, sodass der verfügbare Bereich in der Sender-Hashtabelle den Bereichsschwellenwert überschreitet; und dass der erste Computer den einen oder die mehreren Indices, die auf die niedrigste Zählerangabe verweisen, an den zweiten Computer sendet.
  6. Verfahren nach Anspruch 5, das des Weiteren die Schritte aufweist: dass der zweite Computer von dem ersten Computer den einen oder die mehreren Indices empfängt, die auf die niedrigste Zählerangabe verweisen; und dass der zweite Computer einen oder mehrere Einträge in der Empfänger-Hashtabelle löscht, die dem einen oder den mehreren Indices entsprechen und die niedrigste Zählerangabe enthalten, sodass der Bereich, der in der Empfänger-Hashtabelle verfügbar ist, sich so ändert, das er nicht mehr kleiner als der Bereichsschwellenwert ist, sondern den Bereichsschwellenwert überschreitet.
  7. Erstes Computersystem, aufweisend: eine Zentraleinheit (CPU): einen Arbeitsspeicher, der mit der CPU verbunden ist; eine computerlesbare konkrete Speichereinheit, die mit der CPU verbunden ist, wobei die Speichereinheit Anweisungen enthält, die von der CPU über den Arbeitsspeicher ausgeführt werden, um ein Verfahren zum Verwalten eines Datenpakets umzusetzen, wobei das Verfahren die Schritte aufweist: dass das erste Computersystem ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk das erste Computersystem und ein zweites Computersystem enthält; und auf der Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat; dass das erste Computersystem ermittelt, ob eine Auslastung einer CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; dass das erste Computersystem einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass das erste Computersystem ermittelt, ob sich der Hausauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist; wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket zu das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet; und wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  8. Erstes Computersystem nach Anspruch 7, wobei ein Ergebnis dessen, dass das erste Computersystem die Benachrichtigung sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat, ein Empfang der Benachrichtigung durch den zweiten Computer ist, wobei das erste Computersystem ermittelt, dass sich der Hashauszug in der Sender-Hashtabelle befindet, und das erste Computersystem den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, und wobei ein Ergebnis des Schritts des Sendens des Hashauszugs, des Index und der Kennung durch das erste Computersystem an das zweite Computersystem enthält: auf Grundlage des Empfangs der Benachrichtigung, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat, eine Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde; einen Empfang des Hashauszugs, des Index und der Kennung der ausgewählten ersten oder zweiten Hashfunktion an dem zweiten Computersystem; eine Suche nach dem Hashauszug durch das zweite Computersystem in der Empfänger-Hashtabelle auf der Grundlage des Index und in Reaktion auf die Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht empfangen wurde; eine Ermittlung durch das zweite Computersystem, dass der Hashauszug, der in der Empfänger-Hashtabelle gefunden wurde, mit dem empfangenen Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage des Empfangs der Kennung eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion durch das zweite Computersystem, und eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket durch das zweite Computersystem; eine Ermittlung durch das zweite Computersystem, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt; und wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an eine Anwendung durch das zweite Computersystem.
  9. Erstes Computersystem nach Anspruch 7, wobei das erste Computersystem ermittelt, dass der Hashauszug nicht in der Sender-Hashtabelle ist, und wobei das Verfahren ferner die Schritte aufweist: im Anschluss an den Schritt des Ermittelns, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion in Metadaten einbettet, die in einem Datenübertragungspaket enthalten sind, das Datenpaket in das Datenübertragungspaket einbettet und das Datenübertragungspaket an das zweite Computersystem sendet, wobei ein Ergebnis des Schritts des Sendens des Datenübertragungspakets an das zweite Computersystem enthält: einen Empfang des Hashauszugs, der Kennung der ausgewählten ersten oder zweiten Hashfunktion und des Datenpakets durch das zweite Computersystem; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das empfangene Datenpaket; und eine Ermittlung, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis eine Ermittlung, ob das Datenpaket Integrität besitzt, ein Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle und eine Übergabe des Datenpakets an eine Anwendung enthält, und wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis eine Benachrichtigung des ersten Computersystems enthält, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf, dass der erste Computer das Datenpaket und den Hashauszug erneut an das zweite Computersystem sendet.
  10. Erstes Computersystem nach Anspruch 9, wobei das Ergebnis des Schritts des Sendens des Datenübertragungspakets an das zweite Computersystem ferner die Ermittlung enthält, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und das Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle, und wobei das Verfahren ferner aufweist: im Anschluss daran, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt, im Anschluss an das Hinzufügen des Datenpakets und des Hashauszugs zu dem Empfänger-Hashtabelle, auf Grundlage, dass das Datenpaket zu der Sender-Hashtabelle hinzugefügt wird und ohne dass das erste Computersystem das Datenpaket an das zweite Computersystem sendet, dass das erste Computersystem einen zweiten Hashauszug und den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, an das zweite Computersystem sendet, wobei ein Ergebnis des Schritts des Sendens des Datenpakets durch das erste Computersystem an das zweite Computersystem enthält: einen Empfang des zweiten Hashauszugs und des Index, die durch das erste Computersystem gesendet wurden; auf Grundlage des Index eine Suche des Hashauszugs in der Empfänger-Hashtabelle; eine Ermittlung, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion, und eine Ermittlung eines neuen zweiten Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; eine Ermittlung, ob der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; und wenn der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an die Anwendung.
  11. Computerprogrammprodukt, aufweisend: eine computerlesbare konkrete Speichereinheit; und einen computerlesbaren Programmcode, der in der computerlesbaren konkreten Speichereinheit gespeichert ist, wobei der computerlesbare Programmcode Anweisungen enthält, die von einer Zentraleinheit (CPU) eines ersten Computersystems ausgeführt werden, um ein Verfahren zum Verwalten eines Datenpakets umzusetzen, wobei das Verfahren die Schritte aufweist: dass das erste Computersystem ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk das erste Computersystem und ein zweites Computersystem enthält; und auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat; dass das erste Computersystem ermittelt, ob eine Auslastung einer CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; dass das erste Computersystem einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass das erste Computersystem ermittelt, ob sich der Hausauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist; wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket zu das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet; und wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  12. Computerprogrammprodukt nach Anspruch 11, wobei ein Ergebnis dessen, dass das erste Computersystem die Benachrichtigung sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat, ein Empfang der Benachrichtigung durch das zweite Computersystem ist, wobei das erste Computersystem ermittelt, dass sich der Hashauszug in der Sender-Hashtabelle befindet, und das erste Computersystem den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, und wobei ein Ergebnis des Schritts des Sendens des Hashauszugs, des Index und der Kennung durch das erste Computersystem an das zweite Computersystem enthält: auf Grundlage des Empfangs der Benachrichtigung, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat, eine Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde; einen Empfang des Hashauszugs, des Index und der Kennung der ausgewählten ersten oder zweiten Hashfunktion an dem zweiten Computersystem; eine Suche nach dem Hashauszug durch das zweite Computersystem in der Empfänger-Hashtabelle auf Grundlage des Index und in Reaktion auf die Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht empfangen wurde; eine Ermittlung durch das zweite Computersystem, dass der Hashauszug, der in der Empfänger-Hashtabelle gefunden wurde, mit dem empfangenen Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage des Empfangs der Kennung eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion durch das zweite Computersystem, und eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket durch das zweite Computersystem; eine Ermittlung durch das zweite Computersystem, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt; und wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an eine Anwendung durch das zweite Computersystem.
  13. Programmprodukt nach Anspruch 11, wobei das erste Computersystem ermittelt, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, und wobei das Verfahren ferner die Schritte aufweist: im Anschluss an den Schritt des Ermittelns, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion in Metadaten einbettet, die in einem Datenübertragungspaket enthalten sind, das Datenpaket in das Datenübertragungspaket einbettet und das Datenübertragungspaket an das zweite Computersystem sendet, wobei ein Ergebnis des Schritts des Sendens des Datenübertragungspakets an das zweite Computersystem enthält: einen Empfang des Hashauszugs, der Kennung der ausgewählten ersten oder zweiten Hashfunktion und des Datenpakets durch das zweite Computersystem; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das empfangene Datenpaket; und eine Ermittlung, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis eine Ermittlung, ob das Datenpaket Integrität besitzt, ein Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle und eine Übergabe des Datenpakets an eine Anwendung enthält, und wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis eine Benachrichtigung des ersten Computersystems enthält, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf, dass der erste Computer das Datenpaket und den Hashauszug erneut an das zweite Computersystem sendet.
  14. Programmprodukt nach Anspruch 13, wobei das Ergebnis des Schritts des Sendens des Datenübertragungspakets an das zweite Computersystem ferner die Ermittlung enthält, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und das Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle, und wobei das Verfahren ferner aufweist: im Anschluss daran, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt, im Anschluss an das Hinzufügen des Datenpakets und des Hashauszugs zu dem Empfänger-Hashtabelle, auf Grundlage, dass das Datenpaket zu der Sender-Hashtabelle hinzugefügt wird und ohne dass das erste Computersystem das Datenpaket an das zweite Computersystem sendet, dass das erste Computersystem einen zweiten Hashauszug und den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, an das zweite Computersystem sendet, wobei ein Ergebnis des Schritts des Sendens des Datenpakets durch das erste Computersystem an das zweite Computersystem enthält: einen Empfang des zweiten Hashauszugs und des Index, die durch das erste Computersystem gesendet wurden; auf Grundlage des Index eine Suche des Hashauszugs in der Empfänger-Hashtabelle; eine Ermittlung, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion, und eine Ermittlung eines neuen zweiten Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; eine Ermittlung, ob der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; und wenn der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an die Anwendung.
  15. Prozess zum Unterstützen einer Datenverarbeitungsinfrastruktur, wobei der Prozess den Schritt aufweist: Bereitstellen von mindestens einem Unterstützungsdienst für mindestens eines von Erstellen, Integrieren, Hosten, Verwalten und Einsetzen von computerlesbarem Code in einem ersten Computersystem, wobei der computerlesbare Code Anweisungen enthält, wobei die Anweisungen, wenn sie von einem Prozessor des ersten Computersystems ausgeführt werden, ein Verfahren zum Verwalten eines Datenpakets umsetzen, wobei das Verfahren die Schritte aufweist: dass das erste Computersystem ermittelt, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk das erste Computersystem und ein zweites Computersystem enthält; und auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass das erste Computersystem in einen Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass das erste Computersystem eine Benachrichtigung an das zweite Computersystem sendet, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat; dass das erste Computersystem ermittelt, ob eine Auslastung einer CPU, die in dem ersten Computersystem enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass das erste Computersystem eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; dass das erste Computersystem einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass das erste Computersystem ermittelt, ob sich der Hausauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computersystem verbunden ist; wenn sich der Hashauszug in der Sender-Hashtabelle befindet, ohne dass das erste Computersystem das Datenpaket zu das zweite Computersystem sendet, dass das erste Computersystem an das zweite Computersystem den Hashauszug, einen Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, die mit dem zweiten Computersystem verbunden ist, und optional eine Kennung der ausgewählten ersten oder zweiten Hashfunktion sendet; und wenn der Hashauszug sich nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem das Datenpaket und den Hashauszug zu der Sender-Hashtabelle hinzufügt und das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt.
  16. Prozess nach Anspruch 15, wobei ein Ergebnis dessen, dass das erste Computersystem die Benachrichtigung sendet, dass dieses erste Computersystem in den Deduplizierungsmodus gewechselt hat, ein Empfang der Benachrichtigung durch das zweite Computersystem ist, wobei das erste Computersystem ermittelt, dass der Hashauszug in der Sender-Hashtabelle ist und das erste Computersystem den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an das zweite Computersystem sendet, und wobei ein Ergebnis des Schritts des Sendens des Hashauszugs, des Index und der Kennung durch das erste Computersystem an das zweite Computersystem enthält: auf Grundlage des Empfangs der Benachrichtigung, dass das erste Computersystem in den Deduplizierungsmodus gewechselt hat, eine Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde; einen Empfang des Hashauszugs, des Index und der Kennung der ausgewählten ersten oder zweiten Hashfunktion an dem zweiten Computersystem; eine Suche nach dem Hashauszug durch das zweite Computersystem in der Empfänger-Hashtabelle auf Grundlage des Index und in Reaktion auf die Ermittlung durch das zweite Computersystem, dass das Datenpaket nicht empfangen wurde; eine Ermittlung durch das zweite Computersystem, dass der Hashauszug, der in der Empfänger-Hashtabelle gefunden wurde, mit dem empfangenen Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist; auf Grundlage des Empfangs der Kennung eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion durch das zweite Computersystem, und eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket durch das zweite Computersystem; eine Ermittlung durch das zweite Computersystem, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt; und wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an eine Anwendung.
  17. Prozess nach Anspruch 15, wobei das erste Computersystem ermittelt, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, und wobei das Verfahren ferner die Schritte aufweist: im Anschluss an den Schritt des Ermittelns, dass sich der Hashauszug nicht in der Sender-Hashtabelle befindet, dass das erste Computersystem den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion in Metadaten einbettet, die in einem Datenübertragungspaket enthalten sind, das Datenpaket in das Datenübertragungspaket einbettet und das Datenübertragungspaket an das zweite Computersystem sendet, wobei ein Ergebnis des Schritts des Sendens des Datenübertragungspakets an das zweite Computersystem enthält: einen Empfang des Hashauszugs, der Kennung der ausgewählten ersten oder zweiten Hashfunktion und des Datenpakets durch das zweite Computersystem; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das empfangene Datenpaket; und eine Ermittlung, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis ein Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle und eine Übergabe des Datenpakets an eine Anwendung enthält, und wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis eine Benachrichtigung des ersten Computersystems enthält, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf, dass das erste Computersystem das Datenpaket und den Hashauszug erneut an das zweite Computersystem sendet.
  18. Verfahren zum Verwalten eines Datenpakets, wobei das Verfahren einen zweiten Computer aufweist, der Schritte in einem Verdoppelungsmodus ausführt im Anschluss an: eine Ermittlung, dass eine Auslastung eines Netzwerks größer als ein Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk einen ersten Computer und einen zweiten Computer enthält; einen Wechsel in einen Deduplizierungsmodus durch den ersten Computer; eine Benachrichtigung an den zweiten Computer durch den ersten Computer, dass der erste Computer in den Deduplizierungsmodus gewechselt hat; eine Ermittlung durch einen ersten Computer, ob eine Auslastung einer CPU, die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; eine Auswahl einer ersten Hashfunktion statt einer zweiten Hashfunktion, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist; eine Auswahl der zweiten Hashfunktion statt der ersten Hashfunktion, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist, wobei eine Anwendung der ersten Hashfunktion die CPU weniger beansprucht als die Anwendung der zweiten Hashfunktion; eine Ermittlung eines Hashauszugs des Datenpakets durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion; eine Ermittlung, dass sich der Hashauszug in einer Sender-Hashtabelle befindet, die mit dem ersten Computer verbunden ist; und ein Senden des Hashauszugs, eines Index, der auf den Hashauszug in der Sender-Hashtabelle und in einer Empfänger-Hashtabelle verweist, und einer Kennung der ausgewählten ersten oder zweiten Hashfunktion durch den ersten Computer an den zweiten Computer, ohne ein Senden des Datenpakets an den zweiten Computer, wobei die Schritte in dem Verdoppelungsmodus enthalten: auf Grundlage der Benachrichtigung des zweiten Computers durch den ersten Computer, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, dass der zweite Computer ermittelt, dass das Datenpaket nicht zusammen mit dem Hashauszug, dem Index und der Kennung empfangen wurde; dass der zweite Computer den Hashauszug, den Index, der auf den Hashauszug in der Sender-Hashtabelle und in der Empfänger-Hashtabelle verweist, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion empfängt; in Reaktion darauf, dass der zweite Computer ermittelt, dass das Datenpaket nicht empfangen wurde und auf Grundlage des Index, dass der zweite Computer den Hashauszug in der Empfänger-Hashtabelle sucht; dass der zweite Computer ermittelt, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt; auf Grundlage, dass der gefundene Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das Datenpaket abruft, das dem gefundenen Hashauszug aus der Empfänger-Hashtabelle zugehörig ist; auf Grundlage der empfangenen Kennung, dass der zweite Computer die ausgewählte erste oder zweite Hashfunktion ermittelt und einen neuen Hashauszug ermittelt, indem die erste oder die zweite Hashfunktion auf das abgerufene Datenpaket angewendet wird; dass der zweite Computer ermittelt, ob der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt; und wenn der neue Hashauszug mit dem empfangenen Hashauszug übereinstimmt, dass der zweite Computer das abgerufene Datenpaket an eine Anwendung übergibt.
  19. Verfahren nach Anspruch 18, das ferner aufweist, dass der zweite Computer zusätzliche Schritte in dem Verdoppelungsmodus ausführt im Anschluss an: eine Aktualisierung einer Zählerangabe, die in einer Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten ist, wobei die Zählerangabe angibt, wie oft der erste Computer den Index und den Hashauszug des Datenpakets zu irgendeinem anderen Computer in dem Netzwerk sendet; eine Wiederholung der Schritte in dem Deduplizierungsmodus für andere Datenpakete; eine Aktualisierung von anderen Zählerangaben, die in der Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten sind, wobei die anderen Zählerangaben angeben, wie oft der erste Computer andere Indices und andere Hashauszüge der anderen Datenpakete an irgendeinen anderen Computer in dem Netzwerk sendet; eine Ermittlung eines verfügbaren Bereichs in der Sender-Hashtabelle während des Deduplizierungsmodus; eine Ermittlung, dass der in der Sender-Hashtabelle verfügbare Bereich kleiner als ein Bereichsschwellenwert auf Grundlage dessen ist, dass der verfügbare Bereich in der Sender-Hashtabelle kleiner als der Bereichsschwellenwert ist; eine Ermittlung von einem oder mehreren Indices der Sender-Hashtabelle, die auf eine niedrigste Zählerangabe verweisen, die in der Mehrzahl von Zählerangaben in der Sender-Hashtabelle enthalten ist; ein Löschen von einem oder mehreren Einträge in der Sender-Hashtabelle, die dem einen oder den mehreren Indices entsprechen und die niedrigste Zählerangabe enthalten, sodass der verfügbare Bereich in der Sender-Hashtabelle den Bereichsschwellenwert überschreitet; und ein Senden des einen oder der mehreren Indices, die auf die niedrigste Zählerangabe verweisen, an den zweiten Computer, wobei die zusätzlichen Schritte in dem Verdoppelungsmodus enthalten: dass der zweite Computer von dem ersten Computer den einen oder die mehreren Indices empfängt, die auf die niedrigste Zählerangabe verweisen; und dass der zweite Computer einen oder mehrere Einträge in der Empfänger-Hashtabelle löscht, die dem einen oder den mehreren Indices entsprechen und die niedrigste Zählerangabe enthalten, sodass der Bereich, der in der Empfänger-Hashtabelle verfügbar ist, sich so ändert, das er nicht mehr kleiner als der Bereichsschwellenwert ist, sondern den Bereichsschwellenwert überschreitet.
  20. Verfahren zum Verwalten eines Datenpakets, wobei das Verfahren die Schritte aufweist: dass ein erster Computer ermittelt, dass eine erste Auslastung eines Netzwerks kleiner als ein oder gleich einem Netzwerkauslastungs-Schwellenwert ist, wobei das Netzwerk den ersten Computer und einen zweiten Computer enthält; auf Grundlage, dass die Auslastung des Netzwerks kleiner als der oder gleich dem Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer, ohne in einem Deduplizierungsmodus zu sein, Schritte ausführt, die enthalten: dass der erste Computer ermittelt, ob eine Auslastung einer CPU, die in dem ersten Computer enthalten ist, größer als ein CPU-Auslastungsschwellenwert ist; dass der erste Computer eine erste Hashfunktion statt einer zweiten Hashfunktion auswählt, wenn die Auslastung der CPU größer als der CPU-Auslastungsschwellenwert ist, und die zweite Hashfunktion statt der ersten Hashfunktion auswählt, wenn die Auslastung der CPU kleiner als der oder gleich dem CPU-Auslastungsschwellenwert ist; und dass der erste Computer einen Hashauszug des Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; auf Grundlage, dass der erste Computer die Schritte ausführt, ohne im Deduplizierungsmodus zu sein, dass der erste Computer den Hashauszug zu einer Sender-Hashtabelle hinzufügt, die mit dem ersten Computer verbunden ist, und dass der erste Computer das Datenpaket, den Hashauszug und eine Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, um auf Grundlage des Hashauszugs zu ermitteln, ob das Datenpaket Integrität besitzt, wobei ein Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, enthält: einen Empfang des Datenpakets, des Hashauszugs und der Kennung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer; auf Grundlage der empfangenen Kennung der ausgewählten ersten oder zweiten Hashfunktion eine Ermittlung eines neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das empfangene Datenpaket; und eine Ermittlung, ob der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, und wenn der empfangene Hashauszug mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung sendet, eine Ermittlung, ob das Datenpaket Integrität besitzt, ein Hinzufügen des Datenpakets und des Hashauszugs zu der Empfänger-Hashtabelle, die mit dem zweiten Computer verbunden ist, und eine Übergabe des Datenpakets an eine Anwendung enthält, und wenn der empfangene Hashauszug nicht mit dem neuen Hashauszug übereinstimmt, dass das Ergebnis dessen, dass der erste Computer das Datenpaket, den Hashauszug und die Kennung sendet, eine Benachrichtigung des ersten Computers enthält, dass das Datenpaket keine Integrität besitzt, und in Reaktion darauf ein erneutes Senden des Datenpakets und des Hashauszugs durch den ersten Computer an den zweiten Computer; im Anschluss an den Schritt des Sendens des Datenpakets, des Hashauszugs und der Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer, dass der erste Computer ermittelt, ob eine zweite Auslastung eines Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist; und auf Grundlage dessen, dass die Auslastung des Netzwerks größer als der Netzwerkauslastungs-Schwellenwert ist, dass der erste Computer in den Deduplizierungsmodus wechselt und anschließend Schritte in dem Deduplizierungsmodus ausführt, die enthalten: dass der erste Computer den zweiten Computer benachrichtigt, dass der erste Computer in den Deduplizierungsmodus gewechselt hat; dass der erste Computer einen zweiten Hashauszug eines zweiten Datenpakets durch Anwenden der ausgewählten ersten oder zweiten Hashfunktion ermittelt; dass der erste Computer ermittelt, ob der zweite Hashauszug des zweiten Datenpakets mit dem Hashauszug übereinstimmt, der zu der Sender-Hashtabelle hinzugefügt wurde; und auf Grundlage, dass der zweite Hashauszug des zweiten Datenpakets mit dem Hashauszug übereinstimmt, der der Sender-Hashtabelle hinzugefügt wurde, und ohne dass der erste Computer das Datenpaket an den zweiten Computer sendet, dass der erste Computer den zweiten Hashauszug, einen Index, der auf den Hashauszug verweist, der der Sender-Hashtabelle hinzugefügt wurde, und die Kennung der ausgewählten ersten oder zweiten Hashfunktion an den zweiten Computer sendet, wobei ein Ergebnis dessen, dass der erste Computer den zweiten Hashauszug, den Index und die Kennung an den zweiten Computer sendet, enthält: auf Grundlage dessen, dass der zweite Computer benachrichtigt wurde, dass der erste Computer in den Deduplizierungsmodus gewechselt hat, eine Ermittlung durch den zweiten Computer, dass das Datenpaket nicht zusammen mit dem zweiten Hashauszug, dem Index und der Kennung empfangen wurde; einen Empfang des zweiten Hashauszugs, des Index und der Kennung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer; in Reaktion auf die Ermittlung, dass das Datenpaket nicht empfangen wurde und auf Grundlage des Index, eine Suche nach dem der Empfänger-Hashtabelle hinzugefügten Hashauszug durch den zweiten Computer; eine Ermittlung, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; auf Grundlage, dass der in der Empfänger-Hashtabelle gefundene Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, einen Abruf des Datenpakets, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist, durch den zweiten Computer; auf Grundlage des Empfangs der Kennung eine Ermittlung der ausgewählten ersten oder zweiten Hashfunktion durch den zweiten Computer, und eine Ermittlung eines zweiten neuen Hashauszugs durch eine Anwendung der ausgewählten ersten oder zweiten Hashfunktion auf das abgerufene Datenpaket, das dem in der Empfänger-Hashtabelle gefundenen Hashauszug zugehörig ist, durch den zweiten Computer; eine Ermittlung durch den zweiten Computer, ob der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt; und wenn der zweite neue Hashauszug mit dem empfangenen zweiten Hashauszug übereinstimmt, eine Übergabe des abgerufenen Datenpakets an die Anwendung durch den zweiten Computer.
DE112013006723.4T 2013-02-22 2013-12-16 Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern Active DE112013006723B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/773,680 US8938417B2 (en) 2013-02-22 2013-02-22 Integrity checking and selective deduplication based on network parameters
US13/773,680 2013-02-22
PCT/IB2013/060969 WO2014128540A1 (en) 2013-02-22 2013-12-16 Integrity checking and selective deduplication based on network parameters

Publications (2)

Publication Number Publication Date
DE112013006723T5 DE112013006723T5 (de) 2015-11-12
DE112013006723B4 true DE112013006723B4 (de) 2016-10-13

Family

ID=51389252

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013006723.4T Active DE112013006723B4 (de) 2013-02-22 2013-12-16 Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern

Country Status (6)

Country Link
US (2) US8938417B2 (de)
JP (1) JP6282293B2 (de)
CN (1) CN105009508B (de)
DE (1) DE112013006723B4 (de)
GB (1) GB2525346B (de)
WO (1) WO2014128540A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656160B2 (en) * 2006-06-21 2014-02-18 Ebay Inc. Computer system authentication using security indicator
US8938417B2 (en) 2013-02-22 2015-01-20 International Business Machines Corporation Integrity checking and selective deduplication based on network parameters
US9251160B1 (en) * 2013-06-27 2016-02-02 Symantec Corporation Data transfer between dissimilar deduplication systems
US9442941B1 (en) * 2014-03-28 2016-09-13 Emc Corporation Data structure for hash digest metadata component
US9602486B2 (en) 2014-03-31 2017-03-21 EXILANT Technologies Private Limited Increased communication security
US9419949B2 (en) 2014-03-31 2016-08-16 EXILANT Technologies Private Limited Increased communication security
US10389714B2 (en) * 2014-03-31 2019-08-20 Idaax Technologies Private Limited Increased communication security
US9426136B2 (en) 2014-03-31 2016-08-23 EXILANT Technologies Private Limited Increased communication security
WO2016057672A1 (en) * 2014-10-07 2016-04-14 Google Inc. Methods and systems for cache lines de-duplication
US10255287B2 (en) * 2015-07-31 2019-04-09 Hiveio Inc. Method and apparatus for on-disk deduplication metadata for a deduplication file system
US10044583B2 (en) * 2015-08-21 2018-08-07 Barefoot Networks, Inc. Fast detection and identification of lost packets
US10169358B2 (en) 2015-10-08 2019-01-01 International Business Machines Corporation Data deduplication using a small hash table
CN105530372A (zh) * 2015-12-03 2016-04-27 小米科技有限责任公司 消息显示方法、装置及终端设备
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10242021B2 (en) 2016-01-12 2019-03-26 International Business Machines Corporation Storing data deduplication metadata in a grid of processors
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
US10255288B2 (en) * 2016-01-12 2019-04-09 International Business Machines Corporation Distributed data deduplication in a grid of processors
US10705907B1 (en) 2016-03-24 2020-07-07 EMC IP Holding Company LLC Data protection in a heterogeneous random access storage array
US9857990B1 (en) 2016-03-24 2018-01-02 EMC IP Holding Company LLC Fast startup for modular storage systems
US10101934B1 (en) 2016-03-24 2018-10-16 Emc Corporation Memory allocation balancing for storage systems
US10324782B1 (en) 2016-03-24 2019-06-18 Emc Corporation Hiccup management in a storage array
US10223008B1 (en) 2016-09-30 2019-03-05 EMC IP Holding Company LLC Storage array sizing for compressed applications
US10152371B1 (en) 2016-09-30 2018-12-11 EMC IP Holding Company LLC End-to-end data protection for distributed storage
US10255172B1 (en) 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection
CN106708927B (zh) * 2016-11-18 2021-01-05 北京二六三企业通信有限公司 文件的去重处理方法和装置
KR101968389B1 (ko) * 2016-11-30 2019-04-11 성균관대학교산학협력단 비트 시퀀스 발생 확률 기반 위상 회전 변조 방법 및 장치, 직교 진폭 위상 회전 변조 방법 및 장치
US10915498B2 (en) * 2017-03-30 2021-02-09 International Business Machines Corporation Dynamically managing a high speed storage tier of a data storage system
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
JP2019159812A (ja) 2018-03-13 2019-09-19 東芝メモリ株式会社 制御装置、制御方法、プログラムおよび通信システム
US11514001B2 (en) * 2018-04-17 2022-11-29 EMC IP Holding Company LLC Concurrent computations operating on same data for CPU cache efficiency
CN108984662B (zh) * 2018-06-28 2021-02-09 杭州复杂美科技有限公司 一种区块链数据同步方法
US11159327B2 (en) * 2018-08-06 2021-10-26 Tyson York Winarski Blockchain augmentation of a material exchange format MXF file
KR101981013B1 (ko) * 2018-10-15 2019-05-21 성균관대학교산학협력단 직교 진폭 위상 회전 변조 방법 및 장치
US10942654B2 (en) * 2018-11-01 2021-03-09 EMC IP Holding Company LLC Hash-based data recovery from remote storage system
US10789003B1 (en) * 2019-03-28 2020-09-29 Western Digital Technologies, Inc. Selective deduplication based on data storage device controller status and media characteristics
US11093292B2 (en) * 2019-09-27 2021-08-17 International Business Machines Corporation Identifying recurring actions in a hybrid integration platform to control resource usage
US10997072B1 (en) * 2019-10-16 2021-05-04 EMC IP Holding Company LLC Host-based acceleration of a content addressable storage system
CN111200609B (zh) * 2020-01-02 2022-08-12 苏州盛科通信股份有限公司 一种INT Metadata数据处理方法及装置
US11593028B2 (en) * 2021-03-11 2023-02-28 EMC IP Holding Company LLC Adaptive turbo toggling
US20220368765A1 (en) * 2021-05-13 2022-11-17 Agora Lab, Inc. Universal Transport Framework For Heterogeneous Data Streams
US11811877B2 (en) 2021-05-13 2023-11-07 Agora Lab, Inc. Universal transport framework for heterogeneous data streams
CN114244781B (zh) * 2021-12-20 2023-12-22 苏州盛科通信股份有限公司 一种基于dpdk的报文去重处理方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120257626A1 (en) * 2011-04-06 2012-10-11 Mcghee David W Systems and methods for in-line removal of duplicate network packets

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976168B1 (en) * 1999-07-23 2005-12-13 Mcafee, Inc. System and method for adaptive cryptographically synchronized authentication
US7313234B2 (en) 2002-10-31 2007-12-25 Matsushita Electric Industrial Co., Ltd. Communication device, communication system, and algorithm selection method
US7995465B2 (en) * 2007-05-18 2011-08-09 Nvidia Corporation Intelligent load balancing and failover of network traffic
US8179792B1 (en) * 2008-06-06 2012-05-15 Sprint Communications Company L.P. Packet de-duplication
US8984628B2 (en) * 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
WO2010113167A1 (en) * 2009-03-30 2010-10-07 Hewlett-Packard Development Company L.P. Deduplication of data stored in a copy volume
US8050251B2 (en) 2009-04-10 2011-11-01 Barracuda Networks, Inc. VPN optimization by defragmentation and deduplication apparatus and method
US8539199B2 (en) * 2010-03-12 2013-09-17 Lsi Corporation Hash processing in a network communications processor architecture
JP2011018491A (ja) * 2009-07-08 2011-01-27 Canon Inc 電子放出素子とこれを用いた電子線装置、画像表示装置
US8750370B2 (en) 2009-09-04 2014-06-10 Brocade Communications Systems, Inc. Congestion-adaptive compression
JP5595701B2 (ja) * 2009-09-16 2014-09-24 株式会社日立製作所 ファイル管理方法及びストレージシステム
US8548012B2 (en) 2010-01-15 2013-10-01 Alcatel Lucent Method and apparatus for reducing redundant traffic in communication networks
US8340039B2 (en) 2010-05-04 2012-12-25 International Business Machines Corporation Deduplicated data processing congestion control
US9678688B2 (en) 2010-07-16 2017-06-13 EMC IP Holding Company LLC System and method for data deduplication for disk storage subsystems
US8799226B2 (en) * 2010-09-28 2014-08-05 International Business Machines Corporation Prioritization of data items for backup in a computing environment
US8938417B2 (en) 2013-02-22 2015-01-20 International Business Machines Corporation Integrity checking and selective deduplication based on network parameters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120257626A1 (en) * 2011-04-06 2012-10-11 Mcghee David W Systems and methods for in-line removal of duplicate network packets

Also Published As

Publication number Publication date
GB2525346A (en) 2015-10-21
US20140244598A1 (en) 2014-08-28
JP6282293B2 (ja) 2018-02-21
GB2525346B (en) 2017-02-08
CN105009508B (zh) 2017-12-29
JP2016517551A (ja) 2016-06-16
US20150154244A1 (en) 2015-06-04
US8938417B2 (en) 2015-01-20
CN105009508A (zh) 2015-10-28
GB201513161D0 (en) 2015-09-09
US9158806B2 (en) 2015-10-13
DE112013006723T5 (de) 2015-11-12
WO2014128540A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
DE112013006723B4 (de) Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE102016221813B4 (de) Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses
EP2490393B1 (de) Verfahren und Vorrichtung zur Analyse von Datenpaketen
DE102013209118B4 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
DE60308260T2 (de) Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten
DE112014000322B4 (de) Skalierbare Fluss- und Überlastungssteuerung in einem Netzwerk
DE202017106594U1 (de) Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE102014113582B4 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE102015119889A1 (de) Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung
DE112012002631T5 (de) Stream-Verarbeitung unter Verwendung einer Client-Server-Architektur
DE112012000989B4 (de) Peet-To-Peer-Kooperation von Herausgebern in einer Publikations-Abonnement-Umgebung
DE112012002762T5 (de) Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver
DE112012002624T5 (de) Regex-Kompilierer
DE202017105977U1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE112019001293T5 (de) Übermitteln von paketen in einem maschennetz
DE112014000578T5 (de) System und Verfahren zum Erkennen eines kompromittierten Computersystems
DE102020213105A1 (de) Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung
DE202014010940U1 (de) Dynamische Shuffle-Rekonfiguration
DE602004012660T2 (de) System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport
DE102012223167A1 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE102020111199B4 (de) Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte
DE112020003437T5 (de) Hyper-scale p2p-dedupliziertes speichersystem unter verwendung einesdistributed ledger

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R084 Declaration of willingness to licence
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R020 Patent grant now final