-
Die
vorliegende Erfindung betrifft Netzwerkkonnektivität und genauer
Schaltkreise und Verfahren zur intelligenten Bestätigungs-basierten
Flusskontrolle in Verarbeitungssystemnetzwerken.
-
Ein
Verarbeitungssystemnetzwerk wie beispielsweise ein Computernetzwerk
oder eine Kommunikationsnetzwerk ist eine Kombination von zwei oder
mehr unabhängigen
Knoten, die fähig
sind, miteinander über
einen Kommunikationskanal, Weg (Path) oder Link zu kommunizieren.
Ein Knoten kann ein unabhängiges
Verarbeitungssystem, wie beispielsweise ein herkömmlicher Computer oder ein anderes
Verarbeitungssystemnetzwerk sein.
-
Knoten
kommunizieren miteinander, um Ressourcen zu teilen, beispielsweise
Datenbanken und Datendateien, Softwareanwendungen, Hardwareperipheriegeräte und Kommunikationsverbindungen.
Kommunikationsverbindungen werden geteilt, um es zwei oder mehr
Knoten zu ermöglichen, durch
einen oder mehrere Zwischenknoten zu kommunizieren, ohne dass sie
direkt miteinander verbunden sind. Ressourcenteilung bedingt üblicherweise die Übertragung
von großen
Datenmengen. Die Daten werden üblicherweise
in Pakete, Frames, Gruppen, etc. („Datenpakete") geteilt. Jedes
Datenpaket enthält
Daten und Informationen, die notwendig sind, um es zwischen zwei
oder mehr Knoten zu leiten.
-
Netzwerke
gehören
herkömmlicher
Weise zu einer von zwei allgemeinen Kategorien, nämlich lokale
Netzwerke (local area networks, LANs) und Fernbereichsnetzwerke
(wide area networks, WANs). Ein LAN ist eine Gruppe von Kommunikationskno ten,
die relativ nah beieinander angeordnet sind, beispielsweise innerhalb
desselben Gebäudes
oder Gebäudekomplexes.
Ein WAN ist andererseits eine Sammlung von unabhängigen und bestimmten Netzwerkknoten,
die über
relativ große
Distanzen kooperieren. Kommunikationsverbindungen zwischen WAN-Knoten
werden routinemäßig durch
Drittanbieter bereitgestellt, wie beispielsweise Fernbereichstelefongesellschaften.
Gateways, wie beispielsweise Router, Bridges oder andere geeignete
Netzwerkzugangsvorrichtungen werden verwendet, um LANs und WANs
miteinander zu verbinden (d. h. LAN zu LAN, LAN zu WAN und WAN zu
WAN). Der herkömmliche Ansatz
ist, das Gateway als einen Kreuzungspunkt zu verwenden, durch welchen
die Datenpakete von einem Quellnetzwerk empfangenen zu einem oder mehreren
Zielnetzwerken geleitet (routed) werden. Gateways umfassen üblicherweise
einen Kontrollschaltkreis und einen Speicher. Der Speicher umfasst
häufig
die Routingadresse für
jedes mit dem Gateway verbundene LAN und jedes mit dem Gateway verbundene
WAN und umfasst auch oftmals die Adresse von einem oder mehreren
Knoten von jedem der LANs und WANs. Falls ein bestimmter Knoten selbst
ein LAN oder WAN ist, werden die Adressen von einem oder mehreren
seiner Knoten ebenso häufig
in dem Speicher gespeichert.
-
Die
Kommunikation zwischen Netzwerken und Knoten verwendet Ebenenoperationen.
Ebenenoperationen umfassen eine Datenverkehrsflusskontrolle, Ablaufsteuerung
(Sequencing), Übertragungsfehler-Erfassung
und -Korrektur und Ähnliches.
Beispielsweise werden drei seriell verbundene Netzwerke betrachtet
(d. h. Netzwerk A, Netzwerk B und Netzwerk C), in denen ein oder
mehrere Datenpakte von einem Netzwerk-A-Knoten zu einem Netzwerk-C-Knoten übertragen
werden. Definitionsgemäß laufen
die Datenpakete wie eine Staffel in einem Staffellauf vom Netzwerk
A zum Netzwerk B zum Netzwerk C, bis sie einen Zielknoten erreichen.
Der Zielknoten verarbeitet die empfan genen Pakete, um zu bestimmen,
ob sie korrekt empfangen wurden. In Antwort darauf gibt der Zielknoten üblicherweise
ein „ACK"-Signal zurück, wobei
dies bedeutet, dass die Übertragung
ohne Fehler empfangen wurde, oder ein „NAK"-Signal, wobei dies bedeutet, dass die Übertragung
fehlerhaft war. Falls der Sendeknoten ein ACK-Signal empfängt, löscht er üblicherweise
die zuvor gesendeten Datenpakete aus seiner Sendeschlange. Falls
er alternativ ein NAK-Signal empfängt, sendet der Sendeknoten
zumindest eines der einen oder mehreren Datenpakete zu dem Zielknoten.
-
Üblicherweise
werden Zeitschalter verwendet, um das Auftreten eines Ereignisses
innerhalb einer vorgeschriebenen Zeitspanne zu verifizieren, wie beispielsweise
den Empfang von einem oder mehreren Datenpaketen. Wenn der Sendeknoten
ein Datenpaket sendet, startet er einen Sendezeitschalter, der eingestellt
ist, abzulaufen, falls der Zielknoten nicht in der Form eines ACK-
oder NAK-Signals innerhalb einer eingestellten Zeitspanne antwortet. Beim
Zeitablauf wird die Übertragung
wiederholt und der Sendezeitschalter wird zurückgesetzt. Ein übliches
Problem mit Übertragungszeitschaltwerten
ist jedoch, dass sie dabei versagen, Zunahmen und Abnahmen im Netzwerkverkehr
(d. h. Kanalbenutzung) zu berücksichtigen.
Wenn der Verkehr zunimmt, neigen die Zeitabläufe dazu, zu früh aufzutreten.
Wenn der Verkehr entgegengesetzt abnimmt, neigen Zeitabläufe dazu,
zu spät
aufzutreten. Ein weiteres mit Zielknoten verknüpftes Problem ist, dass es
nach Rückgabe
eines ACKs erforderlich ist, dass sie ein oder mehrere Datenpakete
zu dem Sendeknoten zurückgeben.
Mit anderen Worten sendet nach Verarbeitung der empfangenen Datenpakete
der Zielknoten ein oder mehrere sich ergebende Datenpakete zu dem
Sendeknoten, wobei dabei der gesamte Netzwerkverkehr zunimmt.
-
Eine
Lösung
für dieses
zuletzt identifizierte Problem ist, die Rückgabe einer positiven Bestätigung für eine ausreichende
Zeitspanne zu verzögern,
um es dem Zielknoten zu ermöglichen,
die empfangenen Datenpakete zu verarbeiten und den ACK „Huckpack" auf ein zurückzugebendes
Datenpaket aufzusetzen. Üblicherweise
startet der Zielknoten, wenn er ein Datenpaket empfängt, einen
Bestätigungszeitschalter,
der eingestellt ist, um abzulaufen, falls der Zielknoten dabei versagt,
ein Rückgabedatenpaket
innerhalb einer eingestellten Zeitspanne zu erzeugen. Beim Zeitablauf
sendet der Zielknoten das ACK-Signal.
Ein übliches
Problem mit Bestätigungszeitschaltern
ist, dass sie versagen, für
eine Serie von Datenpaketen, die an dem Zielknoten empfangen werden
und die keine Rückgabedaten
erzeugen, vorbereitet zu sein. Mit anderen Worten, der Bestätigungszeitschalter
neigt dazu, wiederholt abzulaufen, wobei die Aussendung des ACK-Signals
zu dem Sendeknoten unnötig
verzögert
wird. Unglücklicherweise
werden diese wiederholten Zeitabläufe, wenn sie mit einem moderaten
oder mit viel Verkehr über
ein Netzwerk verknüpft
sind, den Sendeknoten verlangsamen und können das Auftreten von Senderzeitabläufen und
unnötigen
Wiederaussendungen erhöhen.
-
Dementsprechend
besteht im Stand der Technik ein Bedürfnis, um effektiv das Auftreten
von Bestätigungs-basierten
Zeitabläufen
zu begrenzen, insbesondere von solchen Zeitabläufen, die aus einem erhöhten Netzwerkverkehr
resultieren. Es besteht ein weiteres Bedürfnis im Stand der Technik, verlorene
Datenpaketaussendungen, die während Intervallen
mit geringerem Netzwerkverkehr auftreten, effizienter noch einmal
zu übertragen.
Es besteht ein weiteres Bedürfnis
im Stand der Technik, Serien von empfangenen Datenpaketen zu identifizieren, die
wahrscheinlich keine Daten zu einem Sendeknoten zurückgeben,
um geeignet Bestätigungszeitschalter
zu modifizieren, um den Datenpaketempfang effizienter zu bestätigen.
-
Die
EP-A-0 329 159 wird
in den allgemeinen Teilen der unabhängigen Ansprüche, die
hieran angefügt
sind, wiedergegeben. Das Dokument offenbart ein Verfahren zum Steuern
der Übertragung
eines Signals durch einen Übertragungsschaltkreis über ein
Netzwerk. Das Verfahren umfasst die Schritte des Überwachens
einer Latenzcharakteristik, die zumindest teilweise entweder ein
Effizienzniveau, das mit der Übertragung
des Signals verbunden ist, oder ein Benutzungsniveau des Netzwerks
angibt.
-
„Why TCP
timers don't work
well" von Zhang L.
COMPUTER COMMUNICATIONS REVIEW, US, ASSOCIATION FOR COMPUTING MACHINERY, New
York, Band 16, Nr. 3, 5. August 1986, Seiten 397-450 offenbart ebenso
ein Verfahren des Steuerns der Übertragung
eines Signals durch einen Übertragungsschaltkreis über ein
Netzwerk. Insbesondere offenbart das Dokument Beobachtungen von
TCP-Wiederaussendungs-Zeitschalter-Problemen und den intrinsischen
Begrenzungen, die durch Zeitschalter beim Aufzeichnen der optimalen
Netzwerkleistung offenbar werden. Weiterhin zeigt das Dokument,
dass äußere Ereignisse
als eine erste Verteidigungslinie gegenüber Fehlern verwendet werden
sollten.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, dynamisch und adaptiv
die Effizienz von Datenpaketübertragung
zu verbessern, um die oben angesprochenen Nachteile zu verbessern.
-
In Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Steuern einer Übertragung
eines Signals und einer Empfangsanzeige durch einen Übertragungsschaltkreis über ein
Netzwerk bereitgestellt, das die Schritte umfasst: Überwachen
einer ersten Latenzcharakteristik, wobei die erste Latenzcharakteristik
entweder ein mit der Über tragung
des Signals durch einen Übertragungsschaltkreis
verknüpftes
Effizienzniveau oder einen Benutzungsgrad des Netzwerks zumindest
teilweise wiedergibt; und Einstellen einer Wiederaussendungsverzögerung des
Sendeschaltkreises, die die Zeitspanne zwischen Aussendung und nachfolgender
Wiederaussendung von einem oder mehreren Datenpaketen ist, für das Signal über das
Netzwerk als eine Funktion der ersten Latenzcharakteristik, um dabei
die Sendeverzögerung
zu verwalten, gekennzeichnet durch: Überwachen einer zweiten Latenzcharakteristik,
wobei die zweite Latenzcharakteristik ein mit der Aussendung der
Empfangsanzeige durch den Sendeschaltkreis (515) verknüpftes Effizienzniveau
zumindest teilweise wiedergibt; und wobei die Sendeverzögerung der
Empfangsanzeige eine Funktion des mit dem Sendeschaltkreis verknüpften Effizienzniveaus
ist, wobei die Sendeverzögerung
ein abgelaufenes Intervall in Bezug auf ein empfangenes Datenpaket
darstellt.
-
In Übereinstimmung
mit einem anderen Aspekt der vorliegenden Erfindung wird ein Verwaltungsschaltkreis
bereitgestellt zum Steuern des Sendens von Datenpaketen und Empfangsanzeigen durch
einen Sendeschaltkreis über
ein Netzwerk, gekennzeichnet durch: einen Detektorschaltkreis, der betreibbar
ist, um eine erste Latenzcharakteristik des Netzwerks zu überwachen,
wobei die Latenzcharakteristik einen Benutzungsgrad des Netzwerks
zumindest teilweise wiedergibt und um eine zweite Latenzcharakteristik
zu überwachen,
die ein mit der Aussendung der Empfangsanzeige durch den Sendeschaltkreis
verknüpftes
Effizienzniveau zumindest teilweise wiedergibt; und gekennzeichnet
durch einen Kontrollschaltkreis, der mit dem Detektorschaltkreis
verknüpft
ist und wobei der Sendeschaltkreis betreibbar ist, um eine Wiederaussendungsverzögerung des Sendeschaltkreises
einzustellen, welche das Zeitintervall zwischen Aussendung und nachfolgender Wiederaussendung
von einem oder mehreren Datenpaketen der Datenpakete über das
Netzwerk und welche eine Funktion der ersten Latenzcharakteristik ist,
um es dabei dem Verwaltungsschaltkreis zu ermöglichen, die Wiederaussendungsverzögerung als eine
Funktion des Benutzungsgrads des Netzwerks zu verwalten und eine
Sendeverzögerung
des Sendeschaltkreises der Empfangsanzeige über das Netzwerk als eine Funktion
der zweiten Latenzcharakteristik anzupassen, um es dabei dem Verwaltungsschaltkreis
zu ermöglichen,
die Sendeverzögerung
als eine Funktion des mit dem Sendeschaltkreis verknüpften Effizienzniveaus
zu verwalten, wobei die Sendeverzögerung ein abgelaufenes Intervall
in Bezug auf ein empfangenes Datenpaket darstellt.
-
Eine
Ausführungsform
der vorliegenden Erfindung wird nun exemplarisch unter Bezugnahme auf
die begleitenden Zeichnungen beschrieben, wobei die Zeichnungen
zeigen:
-
1 ist
ein Blockdiagramm der Architekturstruktur eines beispielhaften Transport
Control Protocol/Internet Protocol (TCP/IP)-Netzwerkes;
-
2 ist
ein Blockdiagramm zum Leiten eines oder mehrerer Datenpakete zwischen
einem ersten und einem zweiten Ort in einem anderen beispielhaften
Verarbeitungssystemnetzwerk;
-
3 ist
eine isometrische Ansicht eines beispielhaften Verarbeitungssystems,
das fähig
ist, als ein Knoten innerhalb eines Verarbeitungssystemnetzwerkes
zu funktionieren;
-
4 ist
ein Blockdiagramm eines beispielhaften Mikroprozessorsystems, das
vorteilhafterweise in dem Verarbeitungssystem der 3 implementiert
sein kann;
-
5 ist
ein Blockdiagramm auf einer höheren
Ebene einer beispielhaften Netzwerkschnittstelle in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung; und
-
6 ist
ein Flussdiagramm zum Ausführen einer
intelligenten Bestätigungs-basierten
Flusskontrolle in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung.
-
Unter
jetziger Bezugnahme auf die 1 ist ein
Blockdiagramm der Architekturstruktur eines beispielhaften TCP/IP-Netzwerks 100 gezeigt.
TCP/IP ist ein bekannter Satz von Protokollen, die entwickelt wurden,
um nicht ähnliche
Computer über
viele verschiedene Arten von Netzwerken zu verbinden. Hierin wird
TCP/IP lediglich für
anschauliche Zwecke verwendet. Tatsächlich können die Prinzipien der vorliegenden
Erfindung in Übereinstimmung
mit einem beliebigen geeigneten Bestätigungs-basierten Datenpaketübertragungsschema
implementiert werden, einschließlich
Open Systems Interconnection (OSI), X.25 und Ähnlichem. „Einschließen", wie der Begriff hierin verwendet wird,
bedeutet „Einschließen ohne Begrenzung".
-
Das
beispielhafte Netzwerk 100 umfasst eine Mehrzahl von verbundenen
Knoten 105. Ein erster Satz von Knoten 105 bildet
ein erstes Unternetzwerk 110a, während ein zweiter Satz von
Knoten 105 ein zweites Unternetzwerk 110b bildet.
Beispielhafte Unternetzwerke 110 sind durch ein beispielhaftes Gateway 115 verbunden,
(d. h. einem Router, einer Bridge oder einer anderen geeigneten
Zugangsvorrichtung). „Oder", wie es hierin verwendet
wird, bedeutet „und/oder". Das Gateway 115 kann
vorteilhafterweise ein Core-Gateway oder ein Non-Core-Gateway sein. Ein
Core-Gateway umfasst Informationen über die Struktur des Netzwerks 100,
wohingegen ein Non-Core-Gateway eingeschränkte oder unvollständige Routinginformationen
umfasst, d. h. Wissen in Bezug auf eine oder mehrere Routen zu einem
Core-Gateway, jedoch kein Wissen über ein Routing über dasselbe
hinaus.
-
Core-Gateways
speichern üblicherweise Routinginformationen
in einer oder mehreren Routingtabellen. Jeder Knoten 105 muss
lediglich eine bestimmte Route zu seinem lokalen Gateway 115 wissen.
Ein zwischen zwei entfernt angeordneten Knoten übertragenes Datenpaket wird
dementsprechend von einem Gateway zu einem anderen übergeben,
bis dasselbe einen Zielknoten erreicht.
-
Eine
Routingtabelle kann vorteilhafterweise durch einen Programmierer
definiert sein oder dynamisch entwickelt sein (d. h. ein Gateway
fragt benachbarte Gateways oder Ähnliches
für Routeninformationen
an). Ein gegebenes Gateway kann vorzugsweise Routinginformationen
umfassen zu direkt verbundenen Netzwerken und allgemeines Wissen über Verkehr
zu entfernten Netzwerken. Falls ein Gateway nicht eine bestimmte
Routingadresse auflösen
kann, sendet es eine Anfrage, die um Unterstützung diesbezüglich nachsucht,
zu anderen Gateways.
-
Allgemein
wird ein Datenpaket, während
es zwischen Orten weitervermittelt wird, die eine Mehrzahl von Subnetzwerkumgebungen
aufspannen, verarbeitet, um die Adresse seines Zielortes oder möglicherweise
von Zwischenorten zu bestimmen. In Reaktion darauf wird das Datenpaket
vorteilhafterweise in einen Datenumschlag eingepackt oder eingewickelt.
Der Datenumschlag, wie beispielsweise ein File Transfer Protocol
Frame, umfasst üblicherweise einen
Kopf mit Routing- und Übertragungsinformationen.
Ein TCP-Kopf enthält
beispielsweise eine End to End Übertragungs-Quittung
oder -Bestätigung.
-
Unter
Bezugnahme als Nächstes
auf die 2 ist ein Blockdiagramm zum
Routen eines oder mehrerer Datenpakete zwischen einem ersten und einem
zweiten Ort in einem beispielhaften TCP/IP-Netzwerk 100 in Übereinstimmung
mit der vorliegenden Erfindung gezeigt. Das beispielhafte Netzwerk 100 umfasst
eine Mehrzahl von Knoten 105, wobei jeder davon lokal mit
einem geeigneten Subnetzwerk 110 verbunden ist. Ein erster
Knoten 105A, der als ein Internet Protocol (IP) Host arbeitet, sendet
ein beispielhaftes Datenpaket 205 zu einem Zielknoten 105n,
der ein IP-Adressier-Schema verwendet.
-
Ein
erstes Subnetzwerk 110a verarbeitet das Datenpaket 205 und
bestimmt, dass der Zielknoten 105n nicht lokal ist. In
Reaktion darauf wird ein IP-Kopf zu dem Datenpaket 205 hinzugefügt. Der IP-Kopf
umfasst eine globale IP-Adresse für ein zweites Unternetzwerk 110n.
Ein Gateway 115 leitet das Datenpaket 205 basierend
auf der Adresse des zweiten Subnetzwerks 110n. Das zweite
Subnetzwerk 110n bestimmt, ob die Adresse des Zielknotens 105n lokal
oder entfernt ist. Falls dieselbe wie dargestellt lokal ist, wird
der Datenumschlag entfernt und das Datenpaket 205 wird
zu dem Zielknoten 105n geleitet.
-
In
dem Fall, dass der Zielknoten 105n nicht lokal ist, würde das
Netzwerk 110n vorzugsweise die Adresse des nächsten Netzwerkselements
bestimmen und dessen Adresse zu dem existierenden IP-Datenpaket
hinzufügen.
Wenn das Element den Datenumschlag empfangen hat, der das IP-Datenpaket
enthält,
würde es
den Kopf, der die eigene Adresse des Elementes anzeigt, entfernen
und denselben Prozess wie das vorherige Netzwerk durchlaufen, wobei
bestimmt wird, ob die Zieladresse lokal ist, und falls nicht, das
IP-Datenpaket innerhalb eines anderen Adressierkopfes für das nächste Netzwerkelement
einpa cken. Dieser Prozess würde
sich fortsetzen, bis das Datenpaket schließlich zu der Zieladresse geleitet
ist.
-
In
der dargestellten Ausführungsform
ist der erste Knoten 105a weiterhin betreibbar, um das
Datenpaket 205 in Reaktion auf einen Sendezeitablauf wieder
auszusenden. Ein "Zeitablauf", wie der Begriff hierin
verwendet wird, umfasst jeden geeigneten Vergleich zwischen einem
Schwellenwert und einem Zeitschalter oder einem Uhrzeitwert, der
ein bestimmtes Ergebnis liefert. Der Zielknoten 105n ist
in Übereinstimmung
mit TCP betreibbar, um das empfangene Datenpaket 205 zu überprüfen und
vorzugsweise zu korrigieren, falls nötig und möglich. Falls korrekt, gibt
der Zielknoten 105n ein Bestätigungssignal zu dem ersten
Knoten 105a zurück.
Ansonsten kann er vorteilhafterweise eine negative Bestätigung zurückgeben.
-
Der
Zielknoten 105n ist auch vorzugsweise betreibbar, um vorteilhafterweise
einen Bestätigungszeitschalter
zu verwenden, um ein Intervall von verstrichener Zeit in Bezug auf
den Empfang des Datenpakets 205 zu messen. "Messen", wie es hierin verwendet
wird, umfasst Vergleichen, Zählen,
Berechnen, Evaluieren, Messen, Untersuchen, Quantifizieren, Wiegen
oder Ähnliches.
In dem Fall, bei dem das Verarbeitungsdatenpaket 205 ein
oder mehrere Datenpakete, die zu dem ersten Knoten 105a zurückzugeben
sind, erzeugt oder zu diesen führt,
setzt der Zielknoten eine Bestätigung,
wie beispielsweise ein ACK, huckepack auf zumindest ein Rückgabedatenpaket.
Der Zielknoten 105n ist vorzugsweise weiterhin betreibbar,
um die Bestätigung
alleine zu dem ersten Knoten 105a in Reaktion auf einen
Bestätigungszeitablauf
zu senden.
-
Beispielhafte
Sendezeitschalterwerte können
vorteilhafterweise abhängen,
ohne Begrenzung, von einer oder mehreren der folgenden Bedingungen:
- (a) Round-Trip-Propagation-Delay des Signals (üblicherweise
ein kleiner Wert, mit der Ausnahme von sehr langen und sehr schnellen
Schaltkreisen);
- (b) Verarbeitungszeit bei dem Empfänger (einschließlich der
Queuing-Time des Datenpakets);
- (c) Übertragungszeit
des Bestätigungs-Signals oder
-Frames; oder
- (d) Mögliche
Queue- und Verarbeitungs-Zeit bei dem Sender, wenn er die Bestätigung empfängt.
-
Es
wird daran erinnert, dass starker Netzwerkverkehr den Empfang des
Bestätigungssignals durch
den ersten Knoten 105b verzögern kann, wobei dabei ein
Zeitablauf und eine Wiederaussendung des Datenpakets 205 verursacht
werden. In Übereinstimmung
mit der dargestellten Ausführungsform
ist der erste Knoten 105a betreibbar, um die Häufigkeit/Frequenz
von Sende-Zeitablauf-Auftritten
zu überwachen.
Falls die Häufigkeit
unerwünschterweise
gleich einem Schwellenwert wird, wird der erste Knoten 105a vorzugsweise
betrieben, um die Zeitablauffunktion zu modifizieren (d. h. Änderung
des Zeitablaufschwellenwerts, Verlangsamen der Uhr oder des Zeitschalters
etc.), die Zeitablauffunktion vorübergehend deaktivieren, vorübergehend
das Bestätigungserfordernis
deaktivieren oder Ähnliches. "Deaktivieren" ("disable"), wie der Begriff
hierin verwendet wird, umfasst Trennen (Detach), Lösen (Disassociate),
Trennen (Disconnect), Deaktivieren (Disengage), Vermindern (Impair),
Abschalten (Incapacitate), Trennen (Separate) oder Ähnliches.
Ein wichtiger Aspekt der dargestellten Ausführungsform ist die verbesserte
Effizienz der Datenpaketübertragung.
-
Der
Zielknoten 105n ist in Übereinstimmung mit
der dargestellten Ausführungsform
betreibbar, um die Häufigkeit
der Bestätigungszeitablauf-Auftritte
zu überwachen.
Falls die Häufigkeit
unerwünschterweise
gleich einem Schwellenwert wird, wird der Zielknoten 105n vorzugsweise
betrieben, um die Zeitablauffunktion zu modifizieren (d. h. Änderung des
Zeitablaufschwellenwerts, Verlangsamen der Uhr oder des Zeitschalters
etc.), die Zeitablauffunktion vorübergehend deaktivieren, vorübergehend
das Bestätigungserfordernis
deaktivieren oder Ähnliches. Ein
anderer wichtiger Aspekt der dargestellten Ausführungsform ist die verbesserte
Effizienz der Datenpaketübertragung.
-
Unter
Bezugnahme auf die 3 ist eine isometrische Ansicht
eines beispielhaften Verarbeitungssystems 105 dargestellt.
Das Verarbeitungssystem 105 ist geeignet, als ein Knoten
innerhalb der beiden beispielhaften Verarbeitungssystemnetzwerke
der 1 oder 2 zu funktionieren. Das Verarbeitungssystem 105 umfasst
einen Monitor 305, ein Gehäuse 310 und eine Tastatur 315.
-
Das
Gehäuse 310 umfasst
ein Festplattenlaufwerk 320 und ein Diskettenlaufwerk 325.
Das Festplattenlaufwerk 320 ist geeignet, eine Speicherung
und einen Widerabruf mit schnellem Zugriff bereitzustellen. Das
Diskettenlaufwerk 325 ist betreibbar, um externe Disketten
aufzunehmen, zu lesen oder zu beschreiben und kann vorteilhafterweise
ersetzt werden oder kombiniert werden mit anderen herkömmlichen
Strukturen zum Übertragen
von Daten oder Anweisungen, einschließlich Kassetten- und CD-Laufwerken,
Telefon-Systemen und -Vorrichtungen (einschließlich Telefon, Video-Phone,
Fax oder Ähnliches),
Mitteiliungs-Paging, Netzwerkkommunikationsanschlüssen und Ähnlichem.
-
Das
Gehäuse 310 ist
teilweise ausgeschnitten, um eine Batterie 330, eine Uhr 335,
einen Prozessor 340 und einen abgetrennten lokalen Speicher 345 zu
zeigen, wobei alle in dem Gehäuse 310 geeignet
aufgenommen sind. Obwohl das Verarbeitungssystem 105 als
einen einzelnen Prozessor, ein einzelnes Festplattenlaufwerk und
einen einzelnen lokalen Speicher aufweisend dargestellt ist, kann
das Verarbeitungssystem 105 vorteilhafterweise mit jeder geeigneten
Mehrzahl und Kombination von Prozessoren oder Speichervorrichtungen
ausgerüstet
sein. Das Verarbeitungssystem 105 kann tatsächlich ersetzt
werden durch oder kombiniert werden mit jedem geeigneten Verarbeitungssystem,
das in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung betreibbar ist, einschließlich Video-Telefonen,
Telefonen, Fernsehern, Pagern, aufwändigen Taschenrechnern und
tragbaren Laptop-/Notebook-, Mini-, Mainframe- und Super-Computern,
wie auch mit Verarbeitungssystemnetzwerkkombinationen derselben.
-
Eine
herkömmliche
Verarbeitungssystemarchitektur ist vollständiger in Computer Organization
and Architecture von William Stallings, MacMillan Publishing Co.
(3. Ausgabe 1993) beschrieben; ein herkömmliches Verarbeitungssystemnetzwerkdesign ist
vollständiger
in Data Network Design, von Darren L. Spohn, McGraw-Rill, Inc. (1993)
beschrieben; und herkömmliche
Datenkommunikaton ist vollständig
in Data Communication Principles von R. D. Gitlin, J.F. Hages und
S.B. Weinstein, Plenum Press (1992) und in The Irwin Handbook of
Telecommunications von James Harry Green, Irwin Professional Publishing
(2. Auflage 1992) beschrieben. Jede der vorhergehenden Veröffentlichungen
ist hierin durch Referenz aufgenommen.
-
Unter
Bezugnahme auf die 4 ist ein Blockdiagramm eines
beispielhaften Mikroprozessorsystems 400 gezeigt, das vorteilhafterweise
in dem Verarbeitungssystem 105 der 3 implementiert sein
kann. Das Mikroprozessorsystem 400 umfasst einen Prozessor 340,
der über
einen Datenbus 405 mit einem abgetrennten (detached) lokalen
Speicher 345 verbunden ist. Der Speicher 345 ist
betreibbar, um Daten oder Anweisungen zu speichern, wobei der Prozessor 340 betreibbar
ist, um diese abzufragen und auszuführen.
-
Der
Prozessor 340 umfasst eine Kontrolleinheit 410,
eine arithmetisch und logische Einheit (arithmetic and logic unit,
ALU) 415 und einen internen Speicher 420 (beispielsweise
einen stapelbaren Cache, eine Vielzahl von Registern, etc.). Die
Kontrolleinheit 410 ist vorteilhafterweise betreibbar,
um eine der Anweisungen aus dem Speicher 345 zu holen.
Die ALU 415 ist vorteilhafterweise betreibbar, um eine
Mehrzahl von Operationen auszuführen,
wie beispielsweise eine Addition und ein Boolsches UND, die benötigt werden,
um diese Anweisungen auszuführen.
Der interne Speicher 420 ist vorteilhafterweise betreibbar,
um eine lokale Hochgeschwindigkeitsspeicherung bereitzustellen,
die verwendet wird, um temporäre
Ergebnisse und Kontrollinformationen zu speichern.
-
Unter
Bezugnahme auf die 5 ist auf höherer Ebene ein Blockdiagramm
einer beispielhaften Netzwerkschnittstelle 500 (beispielsweise
eine Modemkarte, eine FDDI-Karte, eine Ethernetkarte, etc.) in Übereinstimmung
mit den Prinzipien der vorlegenden Erfindung gezeigt. Die Schnittstelle 500 umfasst einen
beispielhaften Speicher 505, einen Verwaltungsschaltkreis 510,
einen Sendeschaltkreis 515, einen beispielhaften Erweiterungsbusverbinder 520, einen
beispielhaften Verbinder für
eine Twisted-Pair-Leitung 525, einen beispielhaften Verbinder für ein Koaxialkabel 530 und
einen beispielhaften Empfängerverbinder 535.
Der Verwaltungsschaltkreis 510 umfasst einen Detektorschaltkreis 550 und einen
Kontrollschaltkreis 545.
-
Die
Schnittstelle 500 kann vorteilhafterweise mit dem beispielhaften
Verarbeitungssystem 105 der 3 verbunden
sein. Der Verwaltungsschaltkreis 510 ist betreibbar, um
eine Aussendung von einem oder mehreren einer Mehrzahl von Datenpaketen, wie
auch Empfangsanzeigen, wie beispielsweise ACKs und NAKs durch den
Sendeschaltkreis 515 über
ein Netzwerk, wie beispielsweise das Netzwerk 100 der 1 und 2,
zu steuern. Der Verwaltungsschaltkreis 510 umfasst den
Detektorschaltkreis 540 und den Kontrollschaltkreis 545.
-
Der
Detektorschaltkreis 540 ist betreibbar, um eine erste Latenzcharakteristik
des Netzwerks zu überwachen.
Die erste Latenzcharakteristik zeigt zumindest teilweise an oder
ist zumindest teilweise repräsentativ
für zumindest
einen Benutzungsgrad (utilization level) des Netzwerks. Der Benutzungsgrad des
Netzwerks ist wichtig in Bezug auf die Datenpaketaussendung allgemein
und die Datenpaketwiederaussendung im Speziellen. Wie hierin zuvor
beschrieben, ist der mit einem Aussendezeitschalter verknüpfte Schwellenwert
kritisch für
eine effiziente Wiederaussendung. Der Detektorschaltkreis 540 ist weiterhin
betreibbar, um eine zweite Latenzcharakteristik zu überwachen.
Die zweite Latenzcharakteristik zeigt zumindest teilweise ein Effizienzniveau
an, das mit der Aussendung der Empfangsanzeige durch den Sendeschaltkreis 515 verknüpft ist.
Das Effizienzniveau, das mit der Aussendung der Empfangsanzeige verknüpft ist,
ist wichtig in Bezug auf die Datenpaketbestätigung allgemein und die positive
Bestätigung und
den ACK-Huckepack im Besonderen. Wie zuvor beschrieben, ist der
mit einem Bestätigungszeitschalter
verknüpfte
Schwellenwert kritisch für
eine effiziente Datenpaketbestätigung.
-
Der
Kontrollschaltkreis 545 ist sowohl mit dem Detektorschaltkreis 540 als
auch mit dem Sendeschaltkreis 515 ver knüpft. Der Kontrollschaltkreis 545 ist
betreibbar, um vorteilhafterweise eine Wiederaussendungsverzögerung anzupassen,
die mit der Aussendung der Datenpakete über das Netzwerk verknüpft ist.
Die Wiederaussendungsverzögerung ist
das Zeitintervall zwischen der Aussendung und der nachfolgenden
Wiederaussendung von einem oder mehreren Datenpaketen. Die Anpassung
wird als eine Funktion der ersten Latenzcharakteristik durchgeführt. Dies
ermöglicht
es oder erlaubt es vorteilhafterweise dem Verwaltungsschaltkreis 510,
die Wiederaussendungsverzögerung
als eine Funktion des Benutzungsgrads des Netzwerks zu verwalten.
-
Der
Kontrollschaltkreis 545 ist weiterhin betreibbar, um vorteilhafterweise
eine Sendeverzögerung
anzupassen, die mit der Aussendung der Empfangsanzeige über das
Netzwerk verknüpft
ist. Die Empfangsanzeige ist das Zeitintervall zwischen dem Empfang
eines Datenpakets und der eventuellen Aussendung der Empfangsanzeige
ohne sie Huckepack auf ein Rückgabedatenpaket
zu setzen. Die Anpassung wird als eine Funktion der zweiten Latenzcharakteristik
ausgeführt.
Dies erlaubt es vorteilhafterweise dem Verwaltungsschaltkreis 510,
die Sendeverzögerung
als eine Funktion des Effizienzniveaus zu verwalten, die mit dem
Sendeschaltkreis 515 verknüpft ist.
-
Beim
Ausführen
von beiden der zwei oben beschriebenen Anpassungen, kann der Kontrollschaltkreis 545 vorteilhafterweise
Prinzipien angewandter mathematischer Theorien, einschließlich Statistik,
stochastischer Modellierung, Chaostheorie, Standardabweichung, Wahrscheinlichkeitstheorie, Permutation
und Kombination, Häufigkeit
oder Ähnliches
verwenden. Weiterhin können
beim Herleiten der ersten messbaren Charakteristik zusätzlich zu der
Verwendung von Zeitschaltern, Uhren und Ähnlichem jede beliebige physikalisch
sensible Charakterstik oder jeder Aspekt des Netzwerks verwendet werden,
der den Kommunikationsdurchsatz beeinflusst (beispielsweise Kommunikationskanalbenutzungsanzeige).
-
Obwohl
die Netzwerkschnittstelle 500 verwendet wird, um eine Schaltkreisausführungsform der
vorliegenden Erfindung zu zeigen, können vorteilhafterweise andere
Schaltkreiskonfigurationen in anderen Verarbeitungssystemen, Knoten,
Gateways oder Ähnlichem
implementiert werden. Genauer können
in alternativen Ausführungsformen
die oben beschriebenen Schaltkreise und Schaltungen, wie auch das
Mikroprozessorsystem 400 der 4 vorteilhafterweise
ersetzt werden durch oder kombiniert werden mit programmierbaren
logischen Vorrichtungen, wie beispielsweise PALs (Programmable Array
Logic) und PLAs (Programmable Logic Arrays, perogrammierbare Baussteine),
DSPs (Digital Signal Processors, digitale Signalprozessoren), FPGAs
(Field Programmable Gate Arrays), ASICs (Application Specific Integrated
Circuits, Anwednungs-spezifische ICs), VLSIs (Very Large Scale Integrated
Circuits, Größt-ICs)
oder Ähnliches.
-
Unter
Bezugnahme auf die 6 ist ein Flussdiagramm zum
Ausführen
einer intelligenten Bestätigungs-basierten
Flusskontrolle in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung gezeigt. Lediglich
zu illustrativen Zwecken wird die Beschreibung der 6 unter
Bezugnahme auf die 5 angegeben. Der Verwaltungsschaltkreis 510 und
der Sendeschaltkreis 515 können jedoch auch in Knoten
angeordnet sein.
-
Es
wird eine Feststellung durchgeführt,
ob ein Datenpaket von einem Übertragungsknoten, Gateway
oder Ähnlichem
empfangen wurde (Entscheidungsschritt 602). Falls ein Datenpaket
empfangen wurde (Abzweigung „JA" des Entscheidungsschritts 602),
wird der Sendeschaltkreis 515 deaktiviert, ein Bestätigungs zeitschalter
wird zurückgesetzt und
der Bestätigungszeitschalter
beginnt, eine Sendeverzögerung
zu erzeugen (Prozessschritt 604). Die Sendeverzögerung gibt
ein abgelaufenes Zeitintervall in Bezug auf ein empfangenes Datenpaket wieder.
Es wird eine Feststellung durchgeführt, ob die Sendeverzögerung mit
einem Sendeschwellenwert ein unerwünschtes Ergebnis bringt (Entscheidungsschritt 606).
-
Falls
die Sendeverzögerung
einen unerwünschten
Vergleich ergibt (Abzweigung „JA" des Entscheidungsschritts 606),
wird dann eine Empfangsanzeige, wie beispielsweise ein Signal, an
den Übertragungsknoten,
das Gateway oder Ähnliches zurückgegeben
(Eingabe/Ausgabe-Schritt 608). Der Detektorschaltkreis 540 ist
betreibbar, um die Latenzcharakteristik als eine Funktion des Vergleichs
herzuleiten (Prozessschritt 610) und dieselbe mit einem Latenzschwellenwert
zu vergleichen (Prozessschritt 612), wie beispielsweise
einer maximalen Häufigkeit/Frequenz
des Auftretens. In dem Fall, dass der Vergleich der Latenzcharakteristik
unerwünscht
ausfällt
(Abzweig „JA" des Entscheidungsschritts 614), wird
dann der Kontrollschaltkreis 545 betrieben, um die Bestätigungszeitablauffunktion
anzupassen oder zu modifizieren (d. h. Ändern des Zeitablaufschwellenwerts,
Verlangsamung des Zeitschalters oder der Uhr etc.), vorübergehend
denselben deaktivieren, vorübergehend
das Bestätigungserfordernis
deaktivieren oder Ähnliches
(Prozessschritt 616), wobei dabei die Gesamteffizienz der
Bestätigungsübertragung
verbessert wird.
-
Mit
anderen Worten ist der Verwaltungsschaltkreis 510 betreibbar,
um die Latenzcharakteristik zu überwachen
und um die Sendeverzögerung
der Aussendung der Empfangsanzeige über das Netzwerk anzupassen.
Dies wird vorzugsweise ausgeführt
als eine Funktion der Latenzcharakteristik.
-
Falls
ein Datenpaket nicht empfangen wurde (Abzweigung „NEIN" des Entscheidungsschritts 602),
wird dann eine Feststellung durchgeführt, ob ein Datenpaket zu senden
ist (Entscheidungsschritt 618). Falls das Datenpaket zu
senden ist (Abzweigung „JA" des Entscheidungsschritts 618),
dann wird der Sendeschaltkreis 515 aktiviert und ein Wiederaussendungszeitschalter
wird zurückgesetzt.
Der Wiederaussendungszeitschalter beginnt, eine Wiederaussendungsverzögerung zu
erzeugen (Prozessschritt 620). Die Wiederaussendungsverzögerung stellt
ein abgelaufenes Zeitintervall in Bezug auf die Aussendung des Datenpakets
ohne Empfang einer Empfangsanzeige dar, wie beispielsweise ein Bestätigungssignal.
Es wird eine Feststellung durchgeführt, ob ein Vergleich der Wiederaussendungsverzögerung mit
einem Wiederaussendungsschwellenwert unerwünscht ausfällt (Entscheidungsschritt 622).
-
Falls
der Entscheidungsschrittvergleich unerwünscht ausfällt (Abzweigung „JA" des Entscheidungsschritts 622),
dann wird das Datenpaket über das
Netzwerk wieder ausgesendet (Eingabe/Ausgabe-Schritt 624).
Der Detektorschaltkreis 540 arbeitet, um die Latenzcharakteristik
als eine Funktion des Vergleichs herzuleiten (Prozessschritt 610)
und um denselben mit einem Latenzschwellenwert zu vergleichen (Prozessschritt 612),
wie beispielsweise eine maximale Häufigkeit/Frequenz des Auftretens. Falls
der Latenzcharakteristikvergleich ein unerwünschtes Ergebnis liefert (Abzweigung „JA" des Entscheidungsschritts 614),
dann arbeitet der Kontrollschaltkreis 545, um die Wiederaussendezeitablauffunktion
anzupassen oder zu modifizieren (d. h. Ändern des Zeitablaufschwellenwerts,
Verlangsamen des Zeitschalter oder der Uhr etc.), vorübergehendes
Abschalten desselben, vorübergehendes
Abschalten der Sendenotwendigkeit oder Ähnliches (Prozessschritt 626),
wobei dabei die Gesamteffizienz der Datenpaketwiederaussendung verbessert wird.
-
Die
Prinzipien der wie zuvor dargestellten vorliegenden Erfindung können vorteilhafterweise
als Software implementiert werden. Eine beispielhafte Softwareausführungsform
umfasst eine Mehrzahl von auf einem herkömmlichen Speichermedium gespeicherten
Anweisungen. Die Anweisungen sind durch einen geeigneten Prozessor
lesbar und ausführbar.
Die Anweisungen arbeiten bei der Ausführung, um den Prozessor zu
steuern, um Datenpakete durch ein Verarbeitungssystemnetzwerk in Übereinstimmung
mit der vorliegenden Erfindung zu leiten. Bevorzugte Speichermedien
umfassen ohne Begrenzung magnetische, optische und Halbleiter, wie
auch geeignete Kombinationen davon. Eine bevorzugte Softwareausführungsform
zum Steuern des Sendens von Empfangsanzeigen durch einen Sendeschaltkreis
bildet ein Teil von NCR's
STARGROUPTM LAN Manager für UNIXTM – OSI
Transport Version, die von der NCR Corporation in Dayton, Ohio erhältlich ist.