-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein Kommunikationssysteme.
Noch spezieller betrifft die Erfindung Kabelmodemsysteme und Verfahren
zum Übertragen
von Daten.
-
Stand der Technik
-
In
herkömmlichen
Kabelmodemsystemen stellt ein Hybrid-Faser-Koaxial-(HFC)-Netzwerk eine Punkt-zu-Mehrpunkt-Topologie
für die
Unterstützung
einer Datenkommunikation zwischen einem Kabelmodem-Abschlusssystem
(CMTS; cable modem termination system) an der Kabelkopfstelle und
mehreren Kabelmodems (CM; cable modems) bei dem Kunden bereit. In
solchen System wird Information von dem CMTS downstream zu den Kabelmodems
als ein kontinuierlich übertragenes
Signal in Übereinstimmung
mit einem Zeitmultiplex-(TDM; time division multiplexing)-Verfahren
rundgesendet. Im Gegensatz dazu wird Information upstream von jedem
der Kabelmodems zu dem CMTS als Short-Burst-Signale in Übereinstimmung
mit einem Zeitbereich-Mehrfachzugriff-(TDMA; time domain multiple
access)-Verfahren übertragen.
Die Upstream-Übertragung
von Daten von den Kabelmodems wird von dem CMTS verwaltet, das jedem
Kabelmodem spezifische Zeitschlitze zuteilt, innerhalb welcher die
Daten zu übertragen
sind. Herkömmliche
Kabelmodemsysteme sind insofern asymmetrisch, als beträchtlich
weniger Bandbreite für
die Upstream-Übertragungen
zur Verfügung steht
als für
die Downstream-Übertragungen.
Dieser Mangel an Upstream-Bandbreite wird des Weiteren durch die
Tatsache verschärft,
dass die Upstream-Kanäle
von mehreren Kabelmodems gemeinsam genutzt werden müssen. Als
eine Folge davon ist die Erhaltung von Upstream-Bandbreite absolut erforderlich, um
die Gesamtsystemperformanz aufrecht zu erhalten. Dies gilt insbesondere
dann, wenn sich Kabelmodembenutzer mit Aktivitäten beschäftigen, die sowohl eine beträchtliche
Upstream-, als auch eine beträchtliche Downstream-Bandbreite
benötigen,
wie etwa die IP-Telefonie, Videotelefonkonferenzen und Internet-Spiele.
-
Herkömmliche
Kabelmodemsysteme benutzen DOCSIS-konforme Einrichtungen und Protokolle,
um den Transfer von Datenpaketen zwischen mehreren Ka belmodems und
einem CMTS auszuführen.
Der Begriff DOCSIS (Data Over Cable System Interface Specification)
bezieht sich im Allgemeinen auf eine Gruppe von Spezifikationen,
die von CableLabs veröffentlicht
wurden und die Industriestandards für Kabelkopfstellen- und Kabelmodemeinrichtungen
definieren. Zum Teil legt die DOCSIS-Spezifikation Anforderungen
und Aufgaben für
verschiedene Aspekte von Kabelmodemsystemen dar, die Operationsunterstützungssysteme,
das Management, Datenschnittstellen sowie auch Netzwerkschichten,
Datenverbindungsschichten und den physikalischen Schicht-Transport
für Data
Over Cable Systeme umfassen. Die aktuellste Version der DOCSIS-Spezifikation
ist DOCSIS 1.1.
-
Es
ist aber festgestellt worden, dass die Verwendung von proprietären Datenübertragungsprotokollen, die über diejenigen
hinausreichen, die von der DOCSIS-Spezifikation bereitgestellt werden,
vorteilhaft in Bezug auf die Erhaltung von Netzwerkbandbreite in
einem Kabelmodemsystem sein können.
Dies trifft vor allem auf die Nutzlast-Header-Unterdrückung (PHS;
Payload Header Suppression) zu. Die PHS, wie sie von DOCSIS 1.1
definiert ist, erlaubt die Unterdrückung von unnötigen Ethernet/IP-Header-Informationen
in einem DOCSIS-Paket durch das Kabelmodem und eine nachfolgende
Rekonstruktion des Header mittels des CMTS. Das Ziel der PHS ist,
die Anzahl an Bits zu reduzieren, die pro Paket übertragen werden, wodurch die
Netzwerkbandbreitenausnutzung verbessert wird. Aber die DOCSIS PHS
(DPHS) erlaubt die Header-Unterdrückung nur auf der Grundlage
des Vorhandenseins von redundanten Header-Bytes in sequentiell übertragenen Paketen.
Es wäre
wünschenswert,
effizientere Nutzlast-Header-Unterdrückungstechniken bei der Übertragung
von Daten über
ein Kabelmodemnetzwerk verwenden zu können. Insbesondere wäre es wünschenswert, proprietäre protokollspezifische
Header-Unterdrückungstechniken
zu verwenden, die eine größere Reduktion der
Größe der Nutzlast-Headers
innerhalb eines gegebenen DOCSIS-Pakets erlauben, als dies von DOCSIS 1.1
vorgesehen ist.
-
Die
Verwendung von proprietären
Datenübertragungsprotokollen,
die über
DOCSIS hinausgehen, kann aus einer Anzahl von weiteren Gründen erwünscht sein.
Zum Beispiel stellt die DOCSIS-Spezifikation keinen Mechanismus
zur Identifizierung von TCP/IP oder RTP Datenströmen innerhalb eines Kabelmodem-Serviceablaufs
bereit. Als eine Folge davon erlaubt DOCSIS keine spezialisierte
Handhabung solcher TCP/IP oder RTP Datenströme in einer Art und Weise,
die eine bessere Ausnutzung der Netzwerkbandbreite bereitstellt
(z.B. eine protokollspezifische Un terdrückung von Nicht-Header-Informationen).
Außerdem
können,
obwohl DOCSIS 1.1 Techniken für
die Fragmentierung von sehr großen
Paketen in mehrere Upstream-Bursts und die Verkettung von kleinen
Paketen in einen einzigen Upstream-Burst bereitstellt, eine effizientere
Paketfragmentierung und effizientere Verkettungstechniken erzielt
werden.
-
Bisher
ist die Verwendung von proprietären
Datenübertragungsprotokollen,
die über
diejenigen hinausgehen, die von der DOCSIS-Spezifikation bereitgestellt
werden, vermieden worden. Dies ist zum Teil auf die Tatsache zurückzuführen, dass
die DOCSIS-Spezifikation keinen Mechanismus für die Verwendung von alternativen
Protokollen in einem Kabelmodemsystem bereitstellt. Zum Beispiel
stellt die DOCSIS-Spezifikation keinen Mechanismus für die Verwendung
von Datenpaketformaten bereit, die sich von denen, die die DOCSIS-Spezifikation
bereitstellt, unterscheiden. Darüber
hinaus ist die Verwendung von erweiterten Protokollen vermieden
worden, um eine Interoperabilität
zwischen einzelnen Kabelmodemsystemkomponenten zu gewährleisten,
weil herkömmliche
CMTS- und Kabelmodemvorrichtungen in Übereinstimmung mit der DOCSIS-Spezifikation
entwickelt wurden. So sind zum Beispiel herkömmliche DOCSIS-konforme CMTS-Einrichtungen
nicht in der Lage, zwischen einen Standard-DOCSIS-Verkehr und einem
Verkehr zu unterscheiden, der in Übereinstimmung mit einem erweiterten
Protokoll übertragen
wird.
-
Folglich
werden ein System und ein Verfahren zur Übertragung von Daten in einem
Kabelmodemnetzwerk gewünscht,
das die Verwendung von Protokollen unterstützt, die über die DOCSIS-Spezifikation
hinausgehen. Zum Beispiel sollten das gewünschte System und das gewünschte Verfahren
die Verwendung von protokollspezifischen Paket-Header-Unterdrückungstechniken
unterstützen,
die effizienter als die DPHS sind. Aber das gewünschte System und Verfahren
sollten interoperabel mit DOCSIS in dem Sinne sein, dass Komponenten
eines Kabelmodemsystems, das die erweiterten Protokolle unterstützt, in
dem gleichen Netzwerk mit Komponenten existieren können, die
dies nicht tun. Des Weiteren sollten das gewünschte System und das gewünschte Verfahren
nur sehr geringe Modifikationen bei existierenden Kabelmodemsystemkomponenten,
wie etwa einer existierenden Kabelmodem- und CMTS-Einrichtung, erfordern.
-
Das
Dokument
US 6438123 "Method and apparatus
for supporting header suppression and multiple microflows in a network" offenbart ein Verfahren
zur dy namischen Einrichtung, Modifizierung und Verkettung/Mischung
von mehreren Microflows (Ende-zu-Ende-Datenströme) zwischen dem CMTS und dem
CM auf der gleichen Kabelmodem-SID (Service Identification; Dienstkennung).
Microflows werden verkettet und alle zusammen für jede Gewährungszuordnung gesendet. Operationen
wie etwa eine Header-Unterdrückung
können
für mehrere
Ströme
(Telefongespräche)
auf der gleichen SID durchgeführt
werden. Nichtsdestotrotz wird für
alle Microflows die gleiche Header-Unterdrückungstechnik verwendet (das
Header-Paket wird abgestreift), um eine konstante Paketgröße zu erhalten.
-
Das
Dokument XP002193659 "DATA-OVER-CARLE
SERVICE INTERFACE SPECIFICATIONS" ist Teil
der DOCSIS-Spezifikation und offenbart eine Nutzlast-Header-Unterdrückung.
-
Zusammenfassung der Erfindung
-
Die
Erfindung ist in den angehängten
Ansprüchen
definiert.
-
Kurze Beschreibung der Figuren
-
Die
beigefügten
Zeichnungen, die in der vorliegenden Beschreibung aufgenommen sind
und Teil der Patentschrift bilden, veranschaulichen die vorliegende
Erfindung, und zusammen mit der Beschreibung dienen sie des Weiteren
dazu, die Prinzipien der Erfindung zu erklären und einen Fachmann auf
dem relevanten Fachgebiet in die Lage zu versetzen, die Erfindung
auszuführen
und zu verwenden.
-
1 ist
ein Blockdiagramm hoher Ebene eines Kabelmodemsystems in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
2 ist
ein schematisches Blockdiagramm eines Kabelmodem-Abschlusssystems (CMTS) in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
3 ist
ein schematisches Blockdiagramm eines Kabelmodems in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
4 ist
ein Ablaufdiagramm eines Verfahrens zur Unterstützung von erweiterten Protokollen
in einem Kabelmodemsystem in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
5 ist
ein Ablaufdiagramm eines Verfahrens zur Unterstützung von erweiterten Protokollen
in einem Kabelmodemsystem in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
6A ist
ein Blockdiagramm eines nicht komprimierten Pakets, das typischerweise
von einem Kabelmodem in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung empfangen wird.
-
6B ist
ein Blockdiagramm eines Pakets, das von einem Kabelmodem in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung komprimiert ist.
-
6C ist
ein Blockdiagramm von mehreren, eine einzige SID enthaltenden Paketen,
die von einem Kabelmodem unter Verwendung von verschiedenen Paket-Header-Unterdrückungstechniken
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung komprimiert worden sind.
-
7 ist
ein Ablaufdiagramm eines Verfahrens zum Komprimieren von Paketen
unter Verwendung von unterschiedlichen Paket-Header-Unterdrückungstechniken
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
8 ist
ein Ablaufdiagramm eines Verfahrens zum Expandieren bzw. Dekomprimieren
von Paketen, die unter Verwendung verschiedener Paket-Header-Unterdrückungstechniken
komprimiert worden sind, in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
9A ist
ein Diagramm eines beispielhaften 802.3/IP/UDP/RTP Header.
-
9B ist
ein Diagramm eines RTP-Protokoll-Pakets.
-
10 ist
ein Diagramm, das ein Steuerwert-Byte veranschaulicht, das während der
Operation einer RTP-Header-Unterdrückungstechnik verwendet wird.
-
11 ist
ein Ablaufdiagramm hoher Ebene, das ein Verfahren für die RTP-Header-Unterdrückung veranschaulicht.
-
12A ist ein Ablaufdiagramm, das ein Verfahren
zum Unterdrücken
eines RTP Header unter Verwendung einer RTP-Header-Unterdrückungstechnik
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
12B ist ein Ablaufdiagramm, das ein Verfahren
zum Festlegen des Inkrements eines IP-Paket-ID-Feldes in einem RTP
Header gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
13 ist ein Ablaufdiagramm, das ein Verfahren
zum Rekonstruieren eines RTP-Header unter Verwendung einer RTP-Header-Unterdrückungstechnik
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
14A ist ein Diagramm, das einen beispielhaften
802.3/IP/TCP Header veranschaulicht.
-
14B ist ein Diagramm, das ein TCP-Protokoll-Paket
veranschaulicht.
-
15 ist
ein Diagramm, das ein TCP-Protokoll-Paket veranschaulicht, wobei
Felder, die sich von Paket zu Paket ändern können, hervorgehoben sind.
-
16A ist ein Diagramm hoher Ebene, das ein Verfahren
für eine
deltacodierte Header-Unterdrückungstechnik
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
16B ist ein Diagramm hoher Ebene, das ein Verfahren
für eine
deltacodierte Header-Rekonstruktionstechnik gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
17 ist
ein Diagramm. das ein Änderungsbyte
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
18 ist
ein Diagramm, das einen endgültigen
codierten Datenstrom gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
19 ist
ein Diagramm, das die Übertragungsreihenfolge
von Daten für
die TCP-Header-Unterdrückung
für einen
nicht lernenden Zustand gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
20 ist
ein Diagramm, das die Übertragungsreihenfolge
von Daten für
die TCP-Header-Unterdrückung
für einen
Lernzustand gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
21 ist
ein Ablaufdiagramm, das ein Verfahren für die TCP-Header-Unterdrückung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
22 ist ein Ablaufdiagramm, das ein Verfahren
für die
TCP-Header-Rekonstruktion
gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht.
-
23 ist
ein Diagramm, das ein beispielhaftes Computersystem veranschaulicht.
-
Die
Merkmale, Aufgaben und Vorteile der vorliegenden Erfindung werden
aus der ausführlichen
Beschreibung, die unten dargelegt ist, wenn sie zusammen mit den
Zeichnungen betrachtet wird, in denen gleiche Bezugszeichen durchgängig entsprechende
Elemente identifizieren, besser ersichtlich. In den Zeichnungen beziehen
sich gleiche Bezugszeichen im Allgemeinen auf identische, funktionell ähnliche
und/oder strukturell ähnliche
Elemente. Die Zeichnung, in der ein Element zum ersten Mal erscheint,
wird mit der Zahl ganz links in dem entsprechenden Bezugszeichen
angegeben.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsbeispiele
-
Obwohl
die vorliegende Erfindung hier unter Bezugnahme auf veranschaulichende
Ausführungsbeispiele
für bestimmte
Anwendungen beschrieben ist, sollte es klar sein, dass die Erfindung
nicht darauf beschränkt
ist. Diejenigen Fachleute auf dem Gebiet, die Zugang zu den hier
bereitgestellten Lehren haben, werden zusätzliche Modifikationen, Anwendungen
und Ausführungsbeispiele
innerhalb des Schutzumgangs davon und zusätzliche Fachgebiete erkennen,
in denen die vorliegende Erfindung von beträchtlichem Nutzen wäre.
-
A. Kabelmodemsystem in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung
-
1 ist
ein Blockdiagramm hoher Ebene eines beispielhaften Kabelmodem systems 100 in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung. Das Kabelmodemsystem 100 ermöglicht Sprachkommunikationen,
Video- und Datendienste auf der Basis eines bidirektionalen Transfers
von paketbasiertem Verkehr, wie etwa Internet Protocol (IP) Verkehr,
zwischen einer Kabelsystemkopfstelle 102 und einer Vielzahl
von Kabelmodems über
ein Hybrid-Faser-Koaxial-(HFC)-Kabelnetzwerk 110.
In dem beispielhaften Kabelmodemsystem 100 sind aus Gründen der
Klarheit nur zwei Kabelmodems 106 und 108 gezeigt.
Im Allgemeinen kann jegliche Anzahl von Kabelmodems in dem Kabelmodemsystem
der vorliegenden Erfindung enthalten sein.
-
Die
Kabelkopfstelle 102 besteht wenigstens aus einem Kabelmodem-Abschlusssystem
(CMTS) 104. Das CMTS 104 ist der Abschnitt der
Kabelkopfstelle 102, der die Upstream- und Downstream-Übertragung
von Daten zwischen der Kabelkopfstelle 102 und den Kabelmodems 106 und 108 verwaltet,
die sich beim Kunden befinden. Das CMTS 104 rundsendet
Informationen downstream zu den Kabelmodems 106 und 108 als
ein kontinuierlich übertragenes
Signal in Übereinstimmung
mit einem Zeitmultiplex-(TDM)-Verfahren. Außerdem steuert das CMTS 104 die
Upstream-Übertragung
von Daten von den Kabelmodems 106 und 108 zu sich
selber, indem es jedem Kabelmodem 106 und 108 kurze
Gewährungen
von Zeit zu weist, innerhalb derer die Daten übertragen werden sollen. In Übereinstimmung
mit diesem Zeitbereichs-Mehrfachzugriff-(TDMA)-Verfahren kann jedes
Kabelmodem 106 und 108 Informationen upstream
nur als Short-Burst-Signale während
einer Übertragungsgelegenheit
senden, die ihm von dem CMTS 104 zugeordnet worden ist.
-
Wie
in 1 gezeigt ist, dient das CMTS 102 des
Weiteren als eine Schnittstelle zwischen dem HFC-Netzwerk 110 und
einem Paketvermittlungsnetz 112, die IP-Pakete, die von
den Kabelmodems 106 und 108 empfangen werden,
zu dem Paketvermittlungsnetz 112 überträgt, und die IP-Pakete, die
von dem Paketvermittlungsnetz 112 empfangen werden, zu
den Kabelmodems 106 und 108 überträgt, wenn dies geeignet ist.
In Ausführungsbeispielen
umfasst das Paketvermittlungsnetz 112 das Internet.
-
Zusätzlich zu
dem CMTS 104 kann die Kabelkopfstelle 102 auch
einen oder mehrere Internet-Router umfassen, um die Verbindung zwischen
dem CMTS 104 und dem Paketvermittlungsnetz 112 zu
ermöglichen, sowie
auch einen oder mehrere Servers umfassen, um notwendige Netzwerkmanagementaufgaben
durchzuführen.
-
Das
HFC-Netzwerk 110 stellt eine Punkt-zu-Mehrpunkt-Topologie
für den
zuverlässigen
und sicheren Hochgeschwindigkeits-Transport von Daten zwischen der
Kabelkopfstelle 102 und den Kabelmodems 106 und 108 bei
dem Kunden bereit. Wie den Fachleuten auf dem/den relevanten Fachgebiet(en)
klar sein wird, kann das HFC-Netzwerk 110 Koaxialkabel,
Glasfaserkabel oder eine Kombination aus Koaxialkabel und Glasfaserkabel
verknüpft über einen
oder mehrere Faserknoten umfassen.
-
Jedes
der Kabelmodems 106 und 108 arbeitet als eine
Schnittstelle zwischen dem HFC-Netzwerk 110 und wenigstens
einer angeschlossenen Benutzervorrichtung. Insbesondere führen die
Kabelmodems 106 und 108 die Funktionen durch,
die notwendig sind, um Downstream-Signale, die über das HFC-Netzwerk 110 empfangen
werden, in IP-Datenpakete für
den Empfang durch eine angeschlossene Benutzervorrichtung umzuwandeln.
Außerdem
führen
die Kabelmodems 106 und 108 die Funktionen durch,
die notwendig sind, um IP-Datenpakete, die von der angeschlossenen
Besuchervorrichtung empfangen werden, in Upstream-Burst-Signale
umzuwandeln, die für
die Übertragung über das
HFC-Netzwerk 110 geeignet sind. In dem beispielhaften Kabelmodemsystem 100 ist
jedes Kabelmodem 106 und 108 aus Gründen der Klarheit
so gezeigt, dass es nur eine einzige Benutzervorrichtung unterstützt. Im
Allgemeinen ist jedes Kabelmodem 106 und 108 in
der Lage, eine Vielzahl von Benutzervorrichtungen für die Kommunikation über das
Kabelmodemsystem 100 zu unterstützen. Benutzervorrichtungen
können
Personal Computers, Datenterminal-Einrichtungen, Telefonievorrichtungen,
Breitbandmedienabspielgeräte,
netzwerkgesteuerte Anwendungen oder jegliche andere Vorrichtung
umfassen, die in der Lage ist, Daten über ein Paketvermittlungsnetz
zu übertragen
oder zu empfangen.
-
In
dem beispielhaften Kabelmodemsystem 100 repräsentiert
das Kabelmodem 106 ein konventionelles DOCSIS-konformes
Kabelmodem. Mit anderen Worten, das Kabelmodem 106 überträgt Datenpakete
zu dem CMTS 104 in Formaten, die die Protokolle befolgen,
die in der DOCSIS-Spezifikation dargelegt sind. Das Kabelmodem 108 ist
in ähnlicher
Weise in der Lage, Datenpakete zu dem CMTS 104 in Standard-DOCSIS-Formaten
zu übertragen.
Aber in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung ist das Kabelmodem 108 auch
so konfiguriert, dass es Datenpakete zu dem CMTS 104 unter
Verwendung proprietärer
Protokolle übertragen
kann, die über
die DOCSIS-Spezifikation hinausgehen. Nichtsdestotrotz ist das Kabelmodem 108 vollständig interoperabel
mit den DOCSIS-konformen Kabelmodems, wie etwa dem Kabelmodem 106,
und mit DOCSIS-konformen CMTS-Einrichtungen.
Die Art und Weise, in der das Kabelmodem 108 arbeitet,
um Daten zu übertragen,
wird unten ausführlicher
beschrieben werden.
-
Des
Weiteren arbeitet das CMTS 104 in dem beispielhaften Kabelmodemsystem 100 derart,
dass es Datenpakete empfängt
und verarbeitet, die zu diesem in Übereinstimmung mit den Protokollen übertragen werden,
die in der DOCSIS-Spezifikation dargelegt sind. Aber in Übereinstimmung
mit Ausführungsbeispielen der
vorliegenden Erfindung kann das CMTS 104 auch so arbeiten,
dass es Datenpakete empfängt
und verarbeitet, die unter Verwendung proprietärer Protokolle formatiert worden
sind, die über
diejenigen hinausgehen, die von der DOCSIS-Spezifikation bereitgestellt
werden, wie etwa Datenpakete, die von dem Kabelmodem 108 übertragen
werden. Die Art und Weise, in der das CMTS 104 arbeitet,
um Daten zu empfangen und zu verarbeiten, wird hier ebenfalls ausführlicher
beschrieben werden.
-
B. Beispielhafte Kabelmodemsystemkomponenten
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung
-
2 veranschaulicht
ein schematisches Blockdiagramm einer Implementierung des CMTS 104 des Kabelmodemsystems 100,
das beispielshalber präsentiert
wird und nicht dafür
bestimmt ist, die vorliegende Erfindung zu beschränken. Das
CMTS 104 ist so konfiguriert, dass es Signale zu und von
dem HFC-Netzwerk 110 empfangen und senden kann, wobei ein
Teil davon durch die Glasfaser 202 in 2 repräsentiert
wird. Dem gemäß wird das
CMTS 104 in Form eines Empfängerabschnitts und eines Senderabschnitts
beschrieben werden.
-
Der
Empfängerabschnitt
umfasst eine Glasfaser-zu-Koaxialkabel-Stufe 204, einen
HF-Eingang 206, einen Splitter 214 und eine Vielzahl
von Burst-Empfängern 216.
Der Empfangsvorgang beginnt mit dem Empfang von Upstream-Burst-Signalen,
die von einem oder mehreren Kabelmodems stammen, mittels der Glasfaser-zu-Koaxialkabel-Stufe 204 über die
Glasfaser 202. Die Glasfaser-zu-Koaxialkabel-Stufe 204 routet
die empfangenen Burst-Signale zu dem Hochfrequenz-(HF)-Eingang 206 über das
Koaxialkabel 208. In Ausführungsbeispielen weisen diese
Upstream-Burst-Signale
spektrale Charakteristiken innerhalb des Frequenzbereichs von etwa
5-42 MHz auf.
-
Die
empfangenen Signale werden von dem HF-Eingang 206 zu dem
Splitter 214 des CMTS 104 geliefert, der die HF-Eingangssignale
in N separate Kanäle
aufteilt. Jeder der N separaten Kanäle wird dann einem separaten
Burst-Receiver 216 bereitgestellt, der dahingehend arbeitet,
die empfangenen Signale in jedem Kanal in Übereinstimmung mit einer Quadraturphasenumtastungs-(QPSK)-
oder 16-Quadraturamplitudenmodulations-(QAM)-Technik zu demodulieren,
um die zugrunde liegenden Informationssignale wiederherzustellen.
Jeder Burst-Empfänger 216 wandelt
die zugrunde liegenden Informationssignale auch von einer analogen
Form in eine digitale Form um. Diese digitalen Daten werden dann
nachfolgend der Kopfstellen-Medienzugriffssteuerung
(MAC) 218 bereitgestellt.
-
Die
Kopfstellen-MAC 218 arbeitet dahingehend, die digitalen
Daten in Übereinstimmung
mit der DOCSIS-Spezifikation, und wenn dies zweckdienlich ist, in Übereinstimmung
mit proprietären
Protokollen, die über die
DOCSIS-Spezifikation hinausgehen, zu verarbeiten, was hier noch
ausführlicher
beschrieben werden wird. Die Funktionen der Kopfstellen-MAC 218 können in
Hardware oder in Software implementiert werden. In der beispielhaften
Implementierung von 2 sind die Funktionen der Kopfstellen-MAC 218 sowohl
in Hardware als auch in Software imp lementiert. Softwarefunktionen
der Kopfstellen-MAC 218 können in entweder dem Direktzugriffsspeicher
(RAM) 220 oder in dem Nur-Lese-Speicher (ROM) 218 gespeichert
und von der CPU 222 ausgeführt werden. Die Kopfstellen-MAC
steht in elektrischer Kommunikation mit diesen Elementen sowohl über eine
Ruckwandplatinen-Schnittstelle 220 als auch über ein
gemeinsam genutztes Kommunikationsmedium 232. In Ausführungsbeispielen
kann das gemeinsam genutzte Kommunikationsmedium 232 einen
Computerbus oder ein Mehrfachzugriff-Datennetzwerk umfassen.
-
Die
Kopfstellen-MAC 218 steht sowohl über die Rückwandplatinen-Schnittstelle 220 als
auch über
das gemeinsam genutzte Kommunikationsmedium 232 auch in
elektrischer Kommunikation mit der Ethernet-Schnittstelle 224.
Wenn es zweckdienlich ist, werden Ethernet-Pakete, die von der Kopfstellen-MAC 218 wiederhergestellt
werden, zu der Ethernet-Schnittstelle 224 transferiert,
um über
einen Router zu dem Paketvermittlungsnetz 112 übermittelt
zu werden.
-
Der
Senderabschnitt des CMTS 104 umfasst einen Downstream-Modulator 226,
ein Oberflächenwellen-(SAW;
surface acoustic wave)-Filter 228, einen Verstärker 230,
einen Zwischenfrequenz-(ZF)-Ausgang 212, einen Hochfrequenz-(HF)-Aufwärtskonvertierer 210 und
die Glasfaser-zu-Koaxialkabel-Stufe 204. Der Sendevorgang
beginnt mit der Erzeugung eines digitalen Rundsendesignals durch
die Kopfstellen-MAC 218. Das digitale Rundsendesignal kann
Daten enthalten, die ursprünglich
von dem Paketvermittlungsnetz 112 über die Ethernet-Schnittstelle 224 empfangen
wurden. Die Kopfstellen-MAC 218 gibt das digitale Rundsendesignal an
den Downstream-Modulator 226 aus, der dieses in eine analoge
Form umwandelt und es in Übereinstimmung
mit entweder einem 64-QAM-Verfahren oder einem 256-QAM-Verfahren
auf ein Trägersignal
moduliert.
-
Die
modulierte Trägersignalausgabe
von dem Downstream-Modulator 256 wird in das SAW-Filter 228 eingegeben,
das nur spektrale Komponenten des Signals übermittelt, die innerhalb einer
gewünschten
Bandbreite liegen. Das gefilterte Signal wird dann an einen Verstärker 230 ausgegeben,
der dieses verstärkt
und es an den ZF-Ausgang 212 ausgibt. Der ZF-Ausgang 212 routet
das Signal zu dem HF-Aufwärtskonvertierer 210, der
das Signal aufwärtskonvertiert.
In Ausführungsbeispielen
weist das aufwärtskonvertierte
Signal spektrale Charakteristiken in dem Frequenzbereich von etwa
54-860 MHz auf. Das aufwärtskonvertierte
Signal wird dann an die Glasfaser-zu-Koaxialkabel-Stufe 204 über das
Koaxialkabel 208 ausgegeben. Die Glasfaser-zu-Koaxialkabel-Stufe 204 rundsendet
das Signal über
die Glasfaser 202 des HFC-Netzwerks 110.
-
3 veranschaulicht
ein schematisches Blockdiagramm einer Implementierung des Kabelmodems 107 des
Kabelmodemsystems 100, das beispielshalber präsentiert
wird, und ist nicht dafür
bestimmt, die vorliegende Erfindung zu beschränken. Das Kabelmodem 108 ist
so konfiguriert, dass es Signale zu und von dem HFC-Netzwerk 110 über den
Koaxialstecker 332 von 3 empfangen
und senden kann. Dem gemäß wird das
Kabelmodem 108 vermittels eines Empfängerabschnitts und eines Senderabschnitts
beschrieben.
-
Der
Empfängerabschnitt
umfasst ein Diplex-Filter 302, eine HF-Abstimmvorrichtung 304,
ein SAW-Filter 306 und einen Verstärker 308 und einen
Downstream-Empfänger 310.
Der Empfangsvorgang beginnt mit dem Empfang eines Downstream-Signals,
das von dem CMTS 104 stammt, mittels des Diplex-Filters 302.
Das Diplex-Filter 302 arbeitet dahingehend, das Downstream-Signal
zu isolieren und dieses zu der HF-Abstimmvorrichtung 304 zu
routen. In Ausführungsbeispielen
weist das Downstream-Signal spektrale Charakteristiken in dem Frequenzbereich
von etwa 54-860 MHz auf. Die HF-Abstimmvorrichtung 304 wandelt
das Signal abwärts
und gibt dieses an das SAW-Filter 306 aus, das nur die
spektralen Komponenten des abwärtsgewandelten
Signals übermittelt,
die sich in einer gewünschten
Bandbreite befinden. Das gefilterte Signal wird an den Verstärker 308 ausgegeben,
der es verstärkt
und zu dem Downstream-Empfänger 310 übermittelt.
Automatische Verstärkungsregelungen
werden der HF-Abstimmvorrichtung 304 von dem Downstream-Empfänger 310 bereitgestellt.
-
Der
Downstream-Empfänger 310 demoduliert
das verstärkte
Signal in Übereinstimmung
mit entweder einer 64-QAM-Technik oder einer 256-QAM-Technik, um
das zugrunde liegende Informationssignal wiederherzustellen. Der
Downstream-Empfänger 310 wandelt
das zugrunde liegende Informationssignal auch von der analogen Form
in die digitale Form um. Diese digitalen Daten werden danach der
Medienzugriffssteuerung (MAC) 314 bereitgestellt.
-
Die
MAC 314 verarbeitet die digitalen Daten, die zum Beispiel
Ethernet-Pakete
für die Übertragung
zu einer angeschlossenen Benutzervorrichtung umfassen können. Die
Funktionen der MAC 314 können in Hardware oder in Software
imple mentiert werden. In der beispielhaften Implementierung von 3 sind
die Funktionen der MAC 314 sowohl in Hardware, als auch
in Software implementiert. Software-Funktionen der MAC 314 können in
entweder dem RAM 322 oder dem ROM 324 gespeichert
und von der CPU 320 ausgeführt werden. Die MAC 314 steht über ein
gemeinsam genutztes Kommunikationsmedium 316 in elektrischer
Kommunikation mit diesen Elementen. In Ausführungsbeispielen kann das gemeinsam
genutzte Kommunikationsmedium einen Computerbus oder ein Mehrfachzugriff-Datennetzwerk
umfassen.
-
Die
MAC 314 steht über
das gemeinsam genutzte Kommunikationsmedium 316 auch in
elektrischer Kommunikation mit der Ethernet-Schnittstelle 318.
Wenn es zweckdienlich ist, werden die Ethernet-Pakete, die von der
MAC 314 wiederhergestellt werden, zu der Ethernet-Schnittstelle 318 für die Übertragung
zu einer angeschlossenen Benutzervorrichtung übertragen.
-
Der
Senderabschnitt des Kabelmodems 108 umfasst einen Upstream-Burst-Modulator 326,
ein Tiefpassfilter 328, einen Leistungsverstärker 330 und
das Diplex-Filter 302.
Die Übertragung
beginnt mit der Konstruktion eines Datenpakets durch die MAC 314.
Das Datenpaket kann Daten umfassen, die ursprünglich von einer angeschlossenen
Benutzervorrichtung über
die Ethernet-Schnittstelle 318 empfangen wurden. In Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung kann die MAC 314 das Datenpaket
in Übereinstimmung
mit den Protokollen formatieren, die in der DOCSIS-Spezifikation
dargelegt sind, oder, falls zweckdienlich, kann sie das Datenpaket
in Übereinstimmung
mit einem proprietären
Protokoll formatieren, das sich über
diejenigen, die in der DOCSIS-Spezifikation dargelegt sind, hinaus
erstreckt, was hier noch ausführlicher
beschrieben werden wird. Die MAC 314 gibt das Datenpaket
an den Upstream-Burst-Modulator 326 aus, der dieses in
eine analoge Form umwandelt und es auf ein Trägersignal in Übereinstimmung
mit entweder einer QPSK-Technik oder einer 16-QAM-Technik moduliert.
-
Der
Upstream-Burst-Modulator 326 gibt das modulierte Trägersignal
an das Tiefpassfilter 328 aus, das Signale mit spektralen
Charakteristiken in einer gewünschten
Bandbreite übermittelt.
In Ausführungsbeispielen liegt
die gewünschte
Bandbreite innerhalb des Frequenzbereichs von etwa 5-42 MHz. Die
gefilterten Signale werden dann in den Leistungsverstärker 330 eingeführt, der
das Signal verstärkt
und es dem Diplex-Filter 302 bereitstellt. Die Verstärkung in
dem Leistungsverstär ker 330 wird
von dem Burst-Modulator 326 geregelt. Das Diplex-Filter 302 isoliert
das verstärkte
Signal und sendet es upstream über
das HFC-Netzwerk 110 während einer
geplanten Burst-Gelegenheit.
-
C. Unterstützung erweiterter Datenübertragungsprotokolle
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung
-
Wie
oben angemerkt worden ist, senden und empfangen das Kabelmodem 108 und
das CMTS 104 Daten in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung jeweils in proprietären Formaten, die sich über Standard-DOCSIS-Protokolle
hinaus erstrecken. Zum Beispiel modifiziert in Ausführungsbeispielen
das Kabelmodem 108 Datenpakete in Übereinstimmung mit einem proprietären Header-Unterdrückungsverfahren
für die Übertragung
zu dem CMTS 104, und bei Empfang der modifizierten Datenpakete
rekonstruiert das CMTS 104 diese in Übereinstimmung mit dem gleichen
proprietären
Header-Komprimierungsverfahren.
-
In
weiterer Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung ist das Kabelmodem 108 nichtsdestotrotz
interoperabel mit herkömmlichen
DOCSIS-konformen CMTS-Einrichtungen, die anders als das CMTS 104 keine
Unterstützung
für erweiterte
Protokolle bereitstellen. Das Kabelmodem 108 erzielt diesen
Zweck, indem es ermittelt, ob es mit einem CMTS kommuniziert, das
erweiterte Protokolle unterstützt,
wie z.B. das CMTS 104, oder ob es mit einem CMTS kommuniziert,
das dies nicht tut. Wenn das CMTS erweiterte Protokolle nicht unterstützt, dann überträgt das Kabelmodem 108 die
Daten formatiert in Übereinstimmung
mit Standard-DOCSIS-Protokollen anstatt in Übereinstimmung mit erweiterten
Protokollen.
-
4 veranschaulicht
ein Ablaufdiagramm 400 eines Verfahrens zum Unterstützen erweiterter
Protokolle in einem Kabelmodemsystem in Übereinstimmung mit Ausführungsbeispielen
der vorliegenden Erfindung, das diesen Prozess ausführlicher
erläutert.
Die Erfindung ist aber nicht auf die Beschreibung beschränkt, die
von dem Ablaufdiagramm 400 bereitgestellt wird. Im Gegenteil,
es wird den Fachleuten auf dem/den relevanten Fachgebiet(en) aus
den hier bereitgestellten Lehren klar sein, dass andere funktionelle
Abläufe
innerhalb des Schutzumfangs der vorliegenden Erfindung liegen. Das
Ablaufdiagramm 400 wird unter fortgesetzter Bezugnahme
auf das beispielhafte CMTS 104 und das beispielhafte Kabelmodem 108 des
Kabelmo demsystems 100 sowie unter Bezugnahme auf eine beispielhafte
Hardware-Implementierung
des Kabelmodems 108 von 3 beschrieben.
-
Im
Schritt 402 sendet das Kabelmodem 108 eine Registrierungsnachricht
an das CMTS 104, die eine Unterstützung für ein erweitertes Protokoll
designiert. Hinsichtlich der beispielhaften Implementierung des
Kabelmodems 108, die unter Bezugnahme auf 3 beschrieben
ist, konstruiert die MAC 314 die Registrierungsnachricht
sowie auch andere MAC-Maintenance-Nachrichten, die von dem Kabelmodem 108 ausgegeben
werden.
-
In
Ausführungsbeispielen
sendet das Kabelmodem 108 diese Registrierungsnachricht
als einen Teil eines Austausches von Registrierungsnachrichten,
die zwischen einem Kabelmodem und einem CMTS stattfinden müssen, wenn
das Kabelmodem zum ersten Mal in dem HFC-Netzwerk erscheint. In Übereinstimmung mit
der DOCSIS-Spezifikation umfasst dieser Austausch von Registrierungsnachrichten
im Allgemeinen das Senden einer Registrierungsanforderungs-(REG-REQ)-Nachricht
von dem Kabelmodem zu dem CMTS und das Senden einer Registrierungsantwort-(REG-RSP)-Nachricht
von dem CMTS zu dem Kabelmodem in Reaktion auf die empfangene REG-REQ-Nachricht.
Dieses Registrierungsprotokoll ist auf dem Fachgebiet allgemein
bekannt.
-
In
Ausführungsbeispielen
meldet das Kabelmodem 108 dem CMTS 104, dass es
ein erweitertes Protokoll unterstützt, indem es einen erweiterten
Protokollunterstützungs-Deskriptor
in einem händlerspezifischen Informationsfeld
der REG-REQ-Nachricht
platziert, die zu dem CMTS 104 gesendet wird. Im umgekehrten
Fall bezeichnet in solchen Ausführungsbeispielen
das Nichtvorhandensein eines erweiterten Protokollunterstützungs-Deskriptors
in einem händlerspezifischen
Informationsfeld der REG-REQ-Nachricht, dass ein Kabelmodem nur
Standard-DOCSIS-Protokolle unterstützt.
-
Beim
Schritt 404 empfängt
das Kabelmodem 108 eine Antwort auf die Registrierungsnachricht
von dem CMTS 104, die anzeigt, ob das CMTS 104 das
erweiterte Protokoll unterstützt
oder nicht. Da das CMTS 104 des beispielhaften Kabelmodemsystems 100 das
gleiche erweiterte Protokoll wie das Kabelmodem 108 unterstützt, wie
dies oben erörtert
worden ist, wird die Antwort auf die Registrierungsnachricht anzeigen,
dass das erweiterte Protokoll unterstützt wird. Aber wenn das CMTS 104 das
erweiterte Protokoll nicht unterstützen würde (wenn es zum Beispiel ein
herkömmliches
DOCSIS-konformes CMTS wäre),
dann würde
die Antwort auf die Registrierungsnachricht eine Anzeige enthalten,
dass es dem CMTS 104 nicht gelungen ist, das erweiterte
Protokoll zu erkennen. Zum Beispiel kann die Antwort in Ausführungsbeispielen,
bei denen die Registrierungsnachricht eine REG-REQ-Nachricht umfasst,
die einen erweiterten Protokollunterstützungs-Deskriptor in einem
händlerspezifischen
Informationsfeld umfasst, eine REG-RSP-Nachricht sein, die anzeigt,
dass es dem CMTS 104 nicht gelungen ist, den erweiterten
Protokollunterstützungs-Deskriptor
zu erkennen.
-
Wenn
die Antwort auf die Registrierungsnachricht anzeigt, dass das erweiterte
Protokoll von dem CMTS unterstützt
wird, dann wird das Kabelmodem 108 Datenpakete für die Übertragung
zu dem CMTS in Übereinstimmung
mit dem erweiterten Protokoll formatieren, wie dies von den Schritten 406 und 408 gezeigt ist.
Wenn andererseits die Antwort auf die Registrierungsnachricht anzeigt,
dass das CMTS das erweiterte Protokoll nicht unterstützt, dann
wird das Kabelmodem 108 Datenpakete für die Übertragung zu dem CMTS in Übereinstimmung
mit Standard-DOCSIS-Protokollen
formatieren, wie dies von den Schritten 406 und 410 gezeigt
ist. Wie oben unter Bezugnahme auf die beispielhafte Implementierung
des Kabelmodems 108, die in 3 veranschaulicht
ist, erörtert
wurde, ist die MAC 314 verantwortlich für die Formatierung von Datenpaketen
für die Übertragung
zu dem CMTS.
-
In
alternativen Ausführungsbeispielen
der vorliegenden Erfindung kann ein privater Kommunikationskanal
anstelle des Standard-DOCSIS-REG-REQ/-REG-RSP-Protokolls, das oben beschrieben
ist, verwendet werden, um die Schritte 402 und 404 des
Ablaufdiagramms 400 zu implementieren. Zum Beispiel sendet
in einem solchen Ausführungsbeispiel
das CMTS 104 eine Unicast-UDP-Nachricht an das Kabelmodem 108 im Anschluss
an eine erfolgreiche Kabelmodemregistrierung, die anzeigt, dass
das CMTS 104 in der Lage ist, erweiterte Protokolle zu
unterstützen
(wobei dieser Schritt in 4 nicht gezeigt ist). Wenn das
Kabelmodem 108 ein erweitertes Protokoll unterstützt, antwortet
es auf die UDP-Nachricht, indem es eine UDP-Antwort sendet, die
anzeigt, welches erweiterte Protokoll von ihm unterstützt wird.
In Übereinstimmung
mit dieser Technik umfasst die Registrierungsnachricht von Schritt 402 die
UDP-Antwort von dem Kabelmodem 108. In Ausführungsbeispielen
zeigt die UDP-Antwort auch den spezifischen Grad an, in dem das
Kabelmodem 108 in der Lage ist, das erweiterte Protokoll
zu unterstützen.
-
Wenn
das Kabelmodem kein erweitertes Protokoll unterstützt, sendet
es keine Antwort auf die UPD-Nachricht. In Ausführungsbeispielen sendet das
CMTS 104 die UDP-Nachricht eine vorbestimmte Anzahl von
Malen erneut, und wenn keine Antwort von dem Kabelmodem nach der
vorbestimmten Anzahl von erneuten Übertragungen erhalten wird,
stellt das CMTS 104 fest, dass das Kabelmodem keine erweiterten
Protokolle unterstützt.
Aber wenn das CMTS 104 eine geeignete UDP-Antwort von dem
Kabelmodem 108 empfängt,
erfasst es die erweiterten Protokollfähigkeiten des Kabelmodems 108 und
antwortet mit einer zweiten UDP-Nachricht, die anzeigt, ob es das
spezifische erweiterte Protokoll, das von dem Kabelmodem 108 unterstützt wird,
unterstützt
oder nicht. In Übereinstimmung
mit dieser Technik umfasst die Antwort auf die Registrierungsnachricht
von Schritt 404 die zweite UDP-Nachricht von dem CMTS 104.
-
Das
Verfahren, das in dem Ablaufdiagramm 400 beschrieben wird,
gewährleistet
die Interoperabilität zwischen
einem Kabelmodem, das ein erweitertes Protokoll unterstützt, in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung und CMTS-Einrichtungen, die nicht das
gleiche Protokoll unterstützen. In ähnlicher
Weise ist ein CMTS, das ein erweitertes Protokoll in Übereinstimmung
mit Ausführungsbeispielen der
vorliegenden Erfindung unterstützt,
wie etwa das CMTS 104, interoperabel mit einem Kabelmodem,
das das gleiche erweiterte Protokoll nicht unterstützt. Zum
Beispiel ist das CMTS 104 interoperabel mit herkömmlichen
DOCSIS-konformen Kabelmodems, die erweiterte Protokolle nicht unterstützen, wie
etwa das Kabelmodem 106. Das CMTS 104 erzielt
diesen Zweck, indem es feststellt, ob ein empfangenes Paket von
einem herkömmlichen
DOCSIS-konformen Kabelmodem, wie etwa dem Kabelmodem 106,
oder von einem Kabelmodem gesendet wurde, das in der Lage ist, Daten
unter Verwendung erweiterter Protokolle zu übertragen, wie etwa das Kabelmodem 108,
und das Paket entsprechend verarbeitet.
-
5 veranschaulicht
ein Ablaufdiagramm 500 eines Verfahrens zum Unterstützen erweiterter
Protokolle in einem Kabelmodemsystem in Übereinstimmung mit Ausführungsbeispielen
der vorliegenden Erfindung, das diesen Prozess ausführlicher
beschreibt. Die Erfindung ist aber nicht auf die Beschreibung beschränkt, die
von dem Ablaufdiagramm 500 bereitgestellt wird. Im Gegenteil,
es wird den Fachleuten auf dem/den relevanten Fachgebiet(en) aus
den hier bereitgestellten Lehren klar sein, dass andere funktionelle Abläufe innerhalb
des Schutzumfangs der vorliegenden Erfindung liegen. Das Ablaufdiagramm 500 wird
unter fortgesetzter Bezugnahme auf das beispielhafte CMTS 104 und
die beispielhaften Kabelmodems 106 und 108 des
Kabelmodemsystems 100 sowie auch unter Bezugnahme auf die
beispielhafte Hardware-Implementierung des CMTS 104 von 2 beschrieben.
-
Beim
Schritt 502 empfängt
das CMTS eine Registrierungsnachricht von einem Kabelmodem, die
ein Datenübertragungsprotokoll
designiert, das von dem Kabelmodem unterstützt wird. Im Hinblick auf das
beispielhafte Kabelmodemsystem 100 von 1 kann
die Registrierungsnachricht von dem Kabelmodem 106 stammen,
in welchem Fall die Nachricht die Datenübertragung in Übereinstimmung
mit Standard-DOCSIS-Protokollen designiert, oder die Registrierungsnachricht
kann von dem Kabelmodem 108 stammen, in welchem Fall die
Nachricht die Datenübertragung
in Übereinstimmung
mit einem erweiterten Protokoll designiert. In Ausführungsbeispielen
ist die Registrierungsnachricht eine DOCSIS-REG-REQ-Nachricht, und
das Vorhandensein eines erweiterten Protokoll-Deskriptors in einem
händlerspezifischen
Feld der REG-REQ-Nachricht designiert eine Datenübertragung in Übereinstimmung
mit einem erweiterten Protokoll, während das Nichtvorhandensein
des erweiterten Protokoll-Deskriptors die Datenübertragung in Übereinstimmung
mit Standard-DOCSIS-Protokollen designiert.
-
Beim
Schritt 504 weist das CMTS 104 dem Kabelmodem
eine einzigartige Kabelmodem-ID zu und sendet die Kabelmodem-ID
zu dem Kabelmodem. In Ausführungsbeispielen
umfasst die Kabelmodem-ID die primäre DOCSIS-Dienstkennung (SID,
service ID), die von dem CMTS zugewiesen wird und zu dem Kabelmodem
als Teil der DOCSIS-REG-RSP-Nachricht gesendet wird. Im Hinblick
auf die beispielhafte Implementierung des CMTS 104, die
unter Bezugnahme auf 2 beschrieben ist, ist die Kopfstellen-MAC 218 verantwortlich
für das
Zuweisen einer einzigartigen Kabelmodem-ID zu dem Kabelmodem.
-
Beim
Schritt 506 erzeugt das CMTS 104 eine Speicherassoziation
zwischen der Kabelmodem-ID und einem Protokollindikator, der das
Datenübertragungsprotokoll
anzeigt, das von dem Kabelmodem unterstützt wird. Im Hinblick auf die
beispielhafte Implementierung des CMTS 104, die unter Bezugnahme
auf 2 beschrieben ist, wird diese Aufgabe von der
Kopfstellen-MAC 218 ausgeführt, die die Kabelmodem-ID
und den Protokollindikator als assoziierte Werte in entweder dem
ROM 218 oder dem RAM 220 speichert. In Ausführungsbeispielen
speichert das CMTS 104 die Kabelmodem-ID und den Protokollindikator
als assoziierte Werte in einer Nachschlagetabelle.
-
Beim
Schritt 508 empfängt
das CMTS 104 eine Anforderung bezüglich einer Übertragungsgelegenheit von
einem Kabelmodem, die die Kabelmodem-ID umfasst, die mit dem Kabelmodem
assoziiert ist. In Ausführungsbeispielen
wird die Anforderung in einem Anforderungskonkurrenzbereich (request
contention area) empfangen, der von einer DOCSIS-Zuordnungs-MAP
definiert ist. Die Zuordnungs-MAP ist eine MAC-Managementnachricht
variierender Länge,
die von dem CMTS auf dem Downstream-Kanal übertragen wird, die für ein gewisses
Zeitintervall die Verwendungen beschreibt, für die die Upstream-Bandbreite
verwendet werden muß.
Die Zuordnungs-MAP ordnet Bandbreite in Form von Basiszeiteinheiten
zu, die Minislots genannt werden. Eine gegebene Zuordnungs-MAP kann
einige Minislots als eine Gewährung
für ein
bestimmtes Kabelmodem beschreiben, um Daten darin zu senden, und
kann andere Minislots als für
die Konkurrenzübertragung
durch mehrere Kabelmodems verfügbar
beschreiben. Die DOCSIS-Zuordnungs-MAP ist in der DOCSIS-Spezifikation beschrieben
und ist in dem Fachgebiet wohl bekannt.
-
Beim
Schritt 510 ordnet das CMTS 104 dem Kabelmodem
eine Übertragungsgelegenheit
im Ansprechen auf die Anforderung bezüglich einer Übertragungsgelegenheit
zu. In Ausführungsbeispielen
weist das CMTS 104 dem Kabelmodem eine Übertragungsgelegenheit zu,
indem es dem Kabelmodem eine Anzahl von Minislots in einer DOCSIS-Zuordnungs-MAP
für die Übertragung
von Daten upstream in Übereinstimmung
mit der DOCSIS-Spezifikation zuweist. Im Hinblick auf die beispielhafte
Implementierung des CMTS 104, die unter Bezugnahme auf 2 beschrieben
ist, wird die Konstruktion einer MAP-Zuordnungsnachricht von der
Kopfstellen-MAC 218 ausgeführt.
-
Beim
Schritt 512 verwendet das CMTS 104 die Kabelmodem-ID
aus der Anforderung bezüglich
der Übertragungsgelegenheit,
um auf den Protokollindikator zuzugreifen, der mit der Kabelmodem-ID
assoziiert ist, die in einem vorhergehenden Schritt 506 in
einem Speicher gespeichert worden ist. In Ausführungsbeispielen konsultiert
das CMTS 104 eine Nachschlagetabelle, die die Kabelmodem-ID
dem Protokollindikator zuordnet. Im Hinblick auf die beispielhafte
Implementierung des CMTS 104, die unter Bezugnahme auf 2 beschrieben
ist, wird dieser Schritt von der Kopfstellen-MAC 218 ausgeführt.
-
Beim
Schritt 514 verarbeitet das CMTS 104 Daten, die
von dem Kabelmodem während
der zugeordneten Übertragungsgelegenheit
in Übereinstimmung
mit dem Datenübertragungsprotokoll übertragen
worden sind, das von dem Indikator angezeigt worden ist. Wenn zum
Beispiel der Indikator anzeigt, dass ein erweitertes Protokoll unterstützt wird,
wie bei dem Fall des Kabelmodems 108, dann wird das CMTS 104 das
Datenpaket, das es von dem Kabelmodem zu empfangen erwartet, in Übereinstimmung
mit einem erweiterten Protokoll verarbeiten. Wenn keine Unterstützung für ein erweitertes
Protokoll angezeigt wird, wie dies bei dem Kabelmodem 106 der
Fall ist, dann wird das CMTS 104 das Datenpaket, das es
von dem Kabelmodem zu empfangen erwartet, in Übereinstimmung mit Standard-DOCSIS-Protokollen verarbeiten.
Im Hinblick auf die beispielhafte Implementierung des CMTS 104,
die unter Bezugnahme auf 2 beschrieben ist, wird die
Verarbeitung von Datenpaketen von der Kopfstellen-MAC 218 durchgeführt.
-
Auf
diese Weise erfasst und speichert das CMTS 104 in Übereinstimmung
mit Ausführungsbeispielen der
vorliegenden Erfindung während
einer Kabelmodemregistrierung Informationen über die Fähigkeiten des Kabelmodems,
mit dem es kommunizieren wird. Wenn das CMTS 104 danach
einem Kabelmodem eine Upstream-Bandbreite zuordnet, greift es auf
die gespeicherten Informationen zu, um festzustellen, wie es die Daten
verarbeiten soll, die es von dem Kabelmodem zu empfangen erwartet.
Diese Technik wird durch die TDMA-Aspekte eines Kabelmodemsystems
ermöglicht,
was erfordert, dass das CMTS Kenntnis davon hat, von welchem Kabelmodem
es Daten zu einem gegebenen Zeitpunkt empfängt. Diese Technik ist vorteilhaft,
weil sie die Verwendung von Protokollen erlaubt, die über DOCSIS
hinausgehen, während
sie die Interoperabilität gewährleistet,
indem an Standard-DOCSIS-Registrierungs-,
-Anforderungs- und Gewährungs-Protokollen festgehalten
wird.
-
1. Paket-Header-Unterdrückung
-
Die 6A-8 sind
nützlich
für die
Erklärung
einer Art und Weise, in der Pakete in Übereinstimmung mit Ausführungsbeispielen
der vorliegenden Erfindung von dem Kabelmodem 108 komprimiert
und von dem CMTS 104 dekomprimiert werden.
-
6A repräsentiert
ein Datenpaket 605, das von einer Benutzervorrichtung zur Übertragung über das
HFC-Netzwerk 110 erzeugt worden ist. Das Datenpaket 605 umfasst
einen MAC-Header 607, einen IP-Header 609, einen
UDP-Header 611, einen RTP-Header 613 und eine
Nutzlast 615. In diesem Beispiel umfasst der MAC-Header 607 14
Bytes, der IP-Header 609 umfasst 20 Bytes, der UDP-Header 611 umfasst
12 Bytes, der RTP-Header 613 umfasst 8 Bytes und die Nutzlast 615 umfasst
irgendeinen Wert von 1 bis N Bytes, und zwar in Abhängigkeit
von dem Typ an Daten, die gesendet werden.
-
In Übereinstimmung
mit der vorliegenden Erfindung kann das Datenpaket 605 von
einem Anwendungsprogramm erzeugt werden, das auf der Benutzervorrichtung 116 abläuft, wie
oben unter Bezugnahme auf 1 beschrieben
worden ist. Zum Beispiel kann ein Anwendungsprogramm, das auf der
Benutzervorrichtung 116 abläuft, Sprach- oder Dateninformationen
für die Übertragung über das
HFC-Netzwerk 110 erzeugen. Diese Sprach- oder Dateninformationen
umfassen die Nutzlast 615 des Datenpakets 605.
Das Anwendungsprogramm, das auf der Benutzervorrichtung 116 abläuft, wird
den IP-Header 609, den UDP-Header 611 und den
RTP-Header 613 an
die Nutzlast 615 anhängen,
um eine Übertragung
in Übereinstimmung
mit Standard-IP-Protokollen zu erlauben. Eine Ethernet-Karte in
der Benutzervorrichtung 116 wird des Weiteren den MAC-Header 607 an
das Datenpaket 605 anhängen,
um eine Übertragung
in Übereinstimmung
mit Standard-Ethernet-Protokollen zu erlauben.
-
Beim
Empfang des Datenpakets 605 unterdrückt das Kabelmodem das Datenpaket 605 in Übereinstimmung
mit irgendeiner gewünschten
Header-Unterdrückungstechnik.
Beispiele für
Header-Unterdrückungstechniken
umfassen die Standard-DOCSIS-PHS sowie auch Techniken, die über Standard-DOCSIS-Protokolle
hinausgehen, wie etwa die dynamische Deltacodierung und die RTP-Codierung,
die hier noch ausführlicher
beschrieben werden. Nach dem Lesen dieser Patentschrift würde ein
Fachmann auf dem/den relevanten Fachgebiet(en) erkennen, dass jegliche
Anzahl von Unterdrückungstechniken
verwendet werden kann, ohne dass vom Schutzumfang der vorliegenden
Erfindung abgewichen wird.
-
6B repräsentiert
das Aussehen des Datenpakets 605, nachdem es komprimiert
ist, um ein komprimiertes Datenpaket 610 in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung zu erzeugen. In diesem exemplarischen Ausführungsbeispiel
sind der IP-Header 609, der UDP-Header 611 und
der RTP-Header 613 eliminiert
und durch einen Ein-Byte-Index 617 ersetzt. Dem gemäß besteht
das komprimierte Datenpaket 610 aus dem Index 617,
dem MAC-Header 607 und der Nutzlast 615. Der Index 617 besteht
aus einem Byte und wird verwendet, um anzuzeigen, dass das Datenpaket 610 komprimiert
worden ist. Der Index 617 wird auch dazu verwendet, die
spezielle Unterdrückungstechnik
anzuzeigen, die verwendet wurde, um das Datenpaket zu komprimieren.
Weitere Einzelheiten des Index 617 werden unten unter Bezugnahme
auf 7 beschrieben werden. Als eine Folge der Eliminierung
der oben spezifizierten Headers ist das komprimierte Datenpaket 610 um
40 Bytes kleiner als das ursprüngliche
Datenpaket 605.
-
6C ist
ein Beispiel für
einen gemischten Protokoll-DOCSIS-Sende-Burst (d.h., SID) 606,
der mehrere Pakete enthält,
die in Übereinstimmung
mit den Ausführungsbeispielen
der vorliegenden Erfindung unterdrückt wurden. Die gemischte Protokoll-SID 606 besteht
aus dem komprimierten Datenpaket 610 und zusätzlichen
komprimierten Datenpaketen 612 und 614. In einem
Ausführungsbeispiel
ist das komprimierte Datenpaket 610 unter Verwendung der
DOCSIS PHS komprimiert, wie dies von dem Index 617 angezeigt
wird. Das komprimierte Datenpaket 612 ist unter Verwendung
der dynamischen Deltacodierung komprimiert, wie dies von dem Index 619 angezeigt
wird, und das komprimierte Datenpaket 614 ist unter Verwendung
der RTP-Codierung komprimiert worden, wie dies von dem Index 621 angezeigt
ist. Die Indizes 617, 619 und 621 trennen die
Pakete innerhalb der gemischten Protokoll-SID 606. Diese
Trennung ist im Wesentlichen ein Framing-Protokoll. Auf diese Weise
ist die gemischte Protokoll-SID 606 in der Lage, mehrere
Pakete zu senden, die mittels verschiedener Paket-Header-Unterdrückungstechniken
unterdrückt
worden sind.
-
7 veranschaulicht
ein Ablaufdiagramm 700 eines Verfahrens zum Komprimieren
von Paketen unter Verwendung verschiedener Paket-Header-Unterdrückungstechniken
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung. Die Erfindung ist aber nicht auf die
hier im Hinblick auf das Ablaufdiagramm 700 bereitgestellte
Beschreibung beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren klar sein, dass
andere funktionelle Abläufe
innerhalb des Schutzumfangs der vorliegenden Erfindung liegen. Das
Ablaufdiagramm 700 wird unter fortgesetzter Bezugnahme
auf das beispielhafte Kabelmodemsystem 100 von 1 beschrieben
werden.
-
Beim
Schritt 702 wird das Kabelmodem 108 eingeschaltet
und initiiert eine Handshaking-Routine mit dem CMTS 104 über das
HFC-Netzwerk 110. Während
dieses Initialisierungsprozesses designiert bzw. bestimmt das Kabelmodem 108 eine
oder mehrere Indexzahlen, um einen bestimmten Typ von Paket-Header-Unterdrückungstechnik
zu repräsentieren.
Zum Beispiel kann der Index 1 für
die DOCSIS PHS Unterdrückung
bestimmt werden, während
die Indexzahlen 2 bis 10 für
die Verwendung mit der dynamischen Deltacodierung bestimmt werden
können.
Noch weiter können
die Indexzahlen 11 bis 20 für
die Verwendung mit der RTP-Codierung bestimmt werden. Wenn diese
Designierungen einmal getätigt
sind, wird diese Information zu dem CMTS 104 über das
HFC-Netzwerk 110 kommuniziert. Während des Initialisierungsprozesses
werden auch die Regeln, die mit der Unterdrückung und Expandierung eines
Pakets in Übereinstimmung
mit den zur Verfügung
stehenden Unterdrückungstechniken
assoziiert sind, ausgetauscht. Die Regeln werden dem CMTS 104 von
dem Kabelmodem 108 bereitgestellt. Das CMTS 104 speichert
die Indexzahlen und ihre entsprechenden Regeln in einer Nachschlagetabelle
für ein
späteres
Abrufen während
des Paketexpandierungsprozesses.
-
In
Ausführungsbeispielen
ist der oben beschriebene Initialisierungsprozess Teil von Standard-DOCSIS-Kabelmodemregistrierungsprotokollen.
In alternativen Ausführungsbeispielen
kann ein privater Kommunikationskanal, der vorher unter Bezugnahme
auf 4 beschrieben worden ist, verwendet werden, um
den Transfer von Indexzahlen und Regeln zu ermöglichen. Dies kann im Besonderen
in DOCSIS 1.0 Kabelmodemsystemen vorteilhaft sein, in denen das
DOCSIS-Protokoll keine Klassifizierungs-/Header-Unterdrückungs-Fähigkeit
definiert.
-
Beim
Schritt 704 empfängt
das Kabelmodem 108 ein Datenpaket von der Benutzervorrichtung 116. Das
Datenpaket kann zum Beispiel das Datenpaket 605 von 6A sein.
Beim Schritt 706 stellt das Kabelmodem 108 fest,
ob das Datenpaket in Übereinstimmung
mit der vorliegenden Erfindung unterdrückt werden soll. In einem Ausführungsbeispiel
wird das Kabelmodem 108 das Datenpaket nicht unterdrücken, wenn
es ein nicht komprimierbares Paket (d.h., kein IP-Paket) ist. In
diesem Fall würde
das Kabelmodem 108 das Datenpaket mit seinem vollen Header übertragen.
-
Beim
Schritt 708 wird das Kabelmodem 108 eine geeignete
Paket-Header-Unterdrückungstechnik
für diejenigen
Datenpakete auswählen,
die im Schritt 706 identifiziert worden sind. In einem
Ausführungsbeispiel, bei
dem Datenpakete von einem unbekannten IP-Datagramm-Typ sind, wird
DOCSIS PHS ausgewählt.
Für IP/RTP-Datenpakete
(d.h., Sprachpakete) wird die RTP-Unterdrückung ausgewählt. Für IP/TCP-Datenpakete variabler
Länge wird
die dynamische Deltaunterdrückung
ausgewählt.
-
Beim
Schritt 710 wird das Kabelmodem 108 ein Paket-Header-Element
an das Datenpaket anhängen, das
unterdrückt
wird. Das Paket-Header-Element enthält die Indexzahl, die im Schritt 702 für die bestimmte Unterdrückungstechnik
bestimmt wurde, die im Schritt 708 ausgewählt worden
ist.
-
Beim
Schritt 712 wird das Datenpaket in Übereinstimmung mit den Regeln
unterdrückt,
die mit der Unterdrückungstechnik
assoziiert sind, die im Schritt 708 ausgewählt worden
ist. Das resultierende komprimierte Datenpaket kann zum Beispiel
das komprimierte Datenpaket 610 von 6B sein.
In Übereinstimmung
mit der vorliegenden Erfindung gestatten die Schritte (704-712)
die Unterdrückung
von Datenpaketen in Übereinstimmung
mit jeder gewünschten
Header-Unterdrückungstechnik.
Die Indexzahl, die mit jedem Datenpaket assoziiert ist, identifiziert
den Beginn des Datenpakets. Folglich ist die Indexzahl ein nützlicher
Mechanismus zur Trennung eines Datenpakets von einem anderen und
zur Identifizierung der speziellen Header-Unterdrückungstechnik,
die verwendet wird, um jedes Datenpaket zu verarbeiten.
-
Wie
vorher erörtert
worden ist, ermöglicht
das DOCSIS-Protokoll die Verkettung von Datenpaketen, aber es erlaubt
nicht das Mischen von unterschiedlichen Header-Unterdrückungstechniken
innerhalb eines einzelnen DOCSIS-Sende-Burst bzw. einer einzelnen
SID. Aber weil die Indexzahl, die in dem Paket-Header-Element enthalten
ist, der im Schritt 710 angehängt worden ist, eine Einrichtung
zum Trennen der Pakete bereitstellt, ist das Mischen von unterschiedlichen
Header-Unterdrückungstechniken
innerhalb einer SID nun möglich.
Dem gemäß wird in
einem alternativen Ausführungsbeispiel
eine gemischte Protokoll-SID im Schritt 714 erzeugt.
-
Im
Schritt 714 werden die Datenpakete miteinander verkettet.
Als Folge von verketteten Paketen, die mit unterschiedlichen Header-Unterdrückungstechniken
unterdrückt
worden sind, kann die SID nun als eine gemischte Protokoll-SID betrachtet
werden. Im Wesentlichen dient der Index als ein Framing-Protokoll,
das die Pakete innerhalb der gemischten Protokoll-SID trennt sowie
auch den Typ an Header-Unterdrückung kommuniziert,
der bei jedem Datenpaket innerhalb der gemischten Protokoll-SID
verwendet wird. In einem Ausführungsbeispiel
kann die gemischte Protokoll-SID zum Beispiel die gemischte Protokoll-SID 606 von 6C sein.
Schließlich
wird im Schritt 716 die gemischte Protokoll-SID zu einem
CMTS 104 gesendet.
-
2. Paket-Header-Expandierung
-
8 ist
ein Ablaufdiagramm eines Verfahrens zum Expandieren bzw. Dekomprimieren
von Paketen, die unter Verwendung verschiedener Paket-Header-Unterdrückungstechniken
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung komprimiert worden sind.
-
Beim
Schritt 802 empfängt
das CMTS 104 eine gemischte Protokoll-SID, die aus einem
oder mehreren Datenpaketen besteht.
-
Beim
Schritt 805 überprüft das CMTS 104 jedes
der Datenpakete, um festzustellen, ob es unterdrückt worden ist. Wenn ein Paket-Header-Element
an ein Datenpaket angehängt
worden ist, dann weiß das
CMTS 104, dass das Datenpaket unterdrückt worden ist. Wenn kein Paket-Header-Element
gefunden wird, dann ist das Datenpaket nicht unterdrückt worden,
und die Steuerung geht unmittelbar zum Schritt 820 weiter.
-
Beim
Schritt 810 durchsucht das CMTS 104 seine Nachschlagetabelle
nach der Indexzahl, die in dem Paket-Header-Element enthalten ist.
Wenn die Indexzahl gefunden wird, dann sind die Expandierungsregeln, die
mit der Unterdrückungstechnik
assoziiert sind, dem CMTS 104 vorher bereitgestellt worden.
In einem Ausführungsbeispiel
wären die
Expandierungsregeln vorher während
des Initialisierungsprozesses, der im Schritt 702 beschrieben
worden ist, bereitgestellt worden. Wenn die Indexzahl nicht gefunden
wird, dann geht die Steuerung weiter zum Schritt 815.
-
Beim
Schritt 815 tauschen das CMTS 104 und das Kabelmodem 108 Daten,
die die Regeln für
das Expandieren des Datenpakets beschreiben, in Echtzeit (d.h.,
wenn das Datenpaket ankommt) aus.
-
Beim
Schritt 820 verarbeitet das CMTS 104 jedes der
Datenpakete. In dem Fall, bei dem das Datenpaket nicht unterdrückt ist
(d.h., ein Paket-Header-Element war nicht vorhanden), wird das Datenpaket
gemäß Standard-DOCSIS-Protokollen
verarbeitet. In dem Fall, bei dem das Datenpaket unterdrückt ist
(d.h., ein Paket-Header-Element
war vorhanden), ruft das CMTS 104 die Regeln für das Expandieren
des Datenpakets auf der Grundlage der Unterdrückungstechnik ab, die von der
Indexzahl angezeigt wird, die in dem Paket-Header-Element gefunden
worden ist. Beim Expandieren des Datenpakets erzeugt das CMTS 104 ein
dekomprimiertes Datenpaket. In einem Ausführungsbeispiel würde das
CMTS 104 an dem Ende des Schrittes 820 ein Datenpaket
wie etwa das nicht komprimierte Datenpaket 605 von 6A erzeugen.
Da die gemischte Protokoll-SID ein oder mehrere Datenpakete enthält, werden
die Schritte 805 bis 820 wiederholt, bis alle
Datenpakete in der gemischten Protokoll-SID verarbeitet worden sind.
Die Verarbeitung endet beim Schritt 825.
-
3. RTP-Header-Unterdrückung
-
Wie
vorher angemerkt worden ist, stellt die Erfindung eine Real Time
Transport Protocol (RTP)-Header-Unterdrückung bereit. Die RTP-Header-Unterdrückungstechnik
der vorliegenden Erfindung stellt große Effizienzverstärkungen
in der Netzwerkbandbreitenausnutzung bereit, indem sie die Übertragung
von redundanten Mustern eliminiert und indem sie sich ändernde
Felder in einem Datenstrom unterdrückt. Die Erfindung erzielt
dies, indem sie regelmäßige Muster
im Netzwerkverkehr erkennt. In Ausführungsbeispielen können die regelmäßigen Muster
eliminiert werden, indem bewirkt wird, dass sich ein Sender von
Netzwerkverkehr, wie etwa das CM 108, und ein Empfänger von
Netzwerkverkehr, wie etwa das CMTS 104, auf Regeln für eine korrekte
Header-Rekonstruktion einigen, um den Header an dem empfangenden
Ende zu reproduzieren. Durch das Reduzieren des Betrags an Netzwerkbandbreite,
der benötigt
wird, um RTP-Informationen quer durch das Netz zu übertragen,
ermöglicht
die vorliegende Erfindung eine gesteigerte Performanz für die gleiche
Anzahl von Benutzern in dem Netzwerk sowie auch die Fähigkeit,
dem Netzwerk effizient mehr Benutzer hinzufügen zu können.
-
Vor
dem Beschreiben der RTP-Header-Unterdrückungstechnik der Erfindung
wird ein herkömmlicher 802.3/IP/UDP/RTP-Protokoll-Header 900 für eine RTP-Übertragung in 9A beschrieben
werden. Der beispielhafte Protokoll-Header 900 umfasst
einen 802.3-Header 902 mit 14 Bytes, einen IP/(Internet
Protocol)-Header 904 mit 20 Bytes, einen UDP/(User Datagram
Protocol)-Header 906 mit 8 Bytes und einen RTP-Header 908 mit
12 Bytes. In diesem Beispiel erzeugt der 802.3/IP/UDP/RTP-Header 900 einen 54-Byte-Header.
Der Datenabschnitt eines RTP-Pakets kann im Vergleich zu dem Overhead,
der benötigt
wird, um die Daten unter Verwendung des 802.3/IP/UDP/RTP-Header 900 zu
senden, klein sein. Zum Beispiel kann der Datenabschnitt eines RTP-Pakets
20 Bytes klein sein, was weniger als die Hälfte der Größe des Header 900 ist.
Auch ändern
sich die meisten Felder innerhalb eines Protokoll-Header 900 nicht
von Paket zu Paket. Die Übertragung
von solchen redundanten Mustern (sich nicht ändernde Header-Informationen
von Paket zu Paket) können
große
Beträge
an Netzwerkbandbreite vergeuden, vor allem dann, wenn der Datenabschnitt des
RTP-Pakets kleiner als der Header 900 ist. Es wäre daher
sehr uneffizient, den Header 900 zu übertragen, ohne ihn zu komprimieren.
-
DOCSIS
1.1 ermöglicht
die Unterdrückung
von redundanten Informationen in Paketen mit einem Merkmal, das "Nutzlast-Header-Unterdrückung" (PHS; payload header
suppression) genannt wird. PHS ermöglicht die Unterdrückung von
sich nicht ändernden
Bytes in einer individuellen SID (d.h., einem Datenstrom). Leider
kann PHS, wie vorher angemerkt worden ist, nicht sich dynamisch ändernde
Felder unterdrücken.
-
Die
RTP-Header-Unterdrückungstechnik
der vorliegenden Erfindung steigert die Effizienz der Datenübertragung,
indem sie Verhaltensmuster in den sich ändernden Feldern des 802.3/IP/UDP/RTP-Header 900 erkennt. 9B ist
ein Diagramm eines RTP-Protokoll-Pakets 910. Das RTP-Protokoll-Paket 910 umfasst
unter anderem ein Ziel-MAC-Adressenfeld 912, ein Quell-MAC-Adressenfeld 914,
ein Typ-/Längen-Feld 916,
ein Protokollversionsfeld 918, ein Header-Längen-Feld 920,
ein Diensttypfeld 922, ein Gesamtlängen-Feld 924, ein
Paket-ID-Feld 926, ein Fragment-Offset-Feld 928, ein Lebenszeitfeld 930,
ein Protokollfeld 932, ein Header-Prüfsummen-Feld 934,
ein Quell-IP-Adressenfeld 936, ein Ziel-IP-Adressenfeld 938,
ein Quellportfeld 940, ein Zielportfeld 942, ein
Längenfeld 944,
ein Prüfsummenfeld 946,
ein Flag-Feld 948, ein Sequenznummernfeld 950,
ein Zeitstempelfeld 952, ein Synchronisierungsquellenidentifizierungsfeld 954,
eine PDU 956, und ein CRC-32 958. RTP-Protokoll-Pakete
sind in dem/den Fachgebiet(en) wohl bekannt, so dass nicht jedes
einzelne Feld ausführlich
erörtert
werden wird.
-
Der
größte Teil
des Header 900 kann unterdrückt werden. Die Felder des
Datenpakets 910, die sich von Paket zu Paket ändern, umfassen
das IP-Paket-ID-Feld 926, das IP-Header-Prüfsummenfeld 934,
das RTP-Sequenznummernfeld 950 und das RTP-Zeitstempelfeld 952.
Das UDP-Prüfsummenfeld 946 ist
immer auf Null gesetzt, weil es nicht verwendet wird. Die restlichen
Felder bleiben für
die Lebensdauer einer Sprachverbindung konstant.
-
Das
RTP-Sequenznummernfeld 950 startet bei irgendeinem willkürlichen
Wert und inkrementiert um einen Wert von Eins für jedes nachfolgende Paket.
Das RTP-Zeitstempelfeld 952 inkrementiert um einen Wert auf
der Grundlage des Quantisierungsintervalls des Codec. Das Delta
zweiter Ordnung dieser Zahl wird für jeden gegebenen Codec bei
einem vorgegebenen Quantisierungsintervall immer Null sein.
-
Die
Erfindung ermöglicht
eine Übertragung
von Paketen auf der Upstream-DOCSIS-HF-Verbindung
in der richtigen Reihenfolge. Die Erfindung unterdrückt den
802.3/IP/UDP/RTP-Header 900 am CM 108 und gewährleistet,
dass der Header 900 von dem CMTS 104 wieder erschaffen
wird. Die Rekonstruktion des Header 900 muß eine exakte
Rekonstruktion sein. Dies wird dadurch erzielt, dass der Unterschied
zwischen einem RTP-Sequenznummernfeld 950 eines RTP-Eingangspakets
und dem RTP-Sequenznummernfeld 950 des vorhergehenden RTP-Pakets
berechnet wird. Wenn der Unterschied zwischen aufeinanderfolgenden
RTP-Paket Sequenznummernfeldern 950 1 ist, wird der Unterschied
zwischen einem Zeitstempelfeld 952 eines neuen RTP-Pakets
und dem Zeitstempelfeld 952 eines vorhergehenden RTP-Pakets der Unterschied
erster Ordnung sein, der bei jedem nachfolgenden Paket erscheinen
wird, während
der Codec und das Quantisierungsintervall konstant bleiben.
-
Durch
Beobachtung wurde ermittelt, dass der Unterschied erster Ordnung
in dem Zeitstempelfeld 952 des RTP-Pakets für eine Quantisierung
von 10 Millisekunden für
G711, G726, G738 und G729 80 Dezimale beträgt. Für eine Quantisierung von 5
Millisekunden beträgt
der Unterschied erster Ordnung in dem Zeitstempelfeld 952 des
RTP-Pakets 40 Dezimale.
-
Zuerst
sendet das CM 108 einen oder mehrere nicht unterdrückte, vollständige Headers
mit einem Steuerbit, das anzeigt, dass das CMTS 104 den
Header 900" lernen" soll. Wenn der Quantisierungswert
bestimmt ist, wird der Quantisierungswert dazu verwendet zu verifizieren,
dass die Rekonstruktion des Header 900 korrekt sein wird.
Zu diesem Zeitpunkt sendet das CM 108 entweder ein "Lern-Header"-Steuerbit mit einem vollständigen Header
in dem Falle, dass die Rekonstruktion des Header 900 eventuell
inkorrekt ist, oder ein 5-Bit-RTP-Sequenz-Delta, einen 8-Bit-Quantisierungswert
und ein optionales 1-Byte-IP-Paket-ID-Delta anstelle des 54 Byte
großen
802.3/IP/UDP/RTP-Header 900. In Ausführungsbeispielen kann während des
Lernprozesses mehr als ein sequentieller Header mit dem gesetzten
Lernbit gesendet werden. Dies gewährleistet, dass in dem Fall,
dass ein Paket auf der HF-Verbindung fallengelassen wird, das CMTS 104 am
Ende einen gültigen
Vorlagen-Header aufweisen wird, aus dem Pakete neu erschaffen werden
können,
wenn das Lernbit nicht mehr länger
gesetzt ist.
-
10 ist
ein Diagramm, das ein Steuerwert-Byte 1000 veranschaulicht,
das während
der Operation der RTP-Header-Unterdrückungstechnik verwendet wird.
Das Steuerwert-Byte 1000 umfasst ein L-Bit 1002, ein
I(1)-Bit 1004, ein I(0)-Bit 1006 und einen 5-Bit-V-Wert 1008.
Das L-Bit 1002 ist ein Lernbit. Das L-Bit 1002 wird
gesetzt, wenn das CMTS 104 den Header 900 lernen
soll.
-
Moderne
IP-Protokoll-Stacks inkrementieren oftmals das IP-Paket-ID-Feld
926 um
entweder 0x0001 oder 0x0100 zwischen Datagrammen. Die vorliegende
Erfindung verwendet einen Zwei-Bit-Flag-Wert, nämlich das I(1)-Bit
1004 und
das I(0)-Bit
1006, um zu bestimmen, ob das IP-Paket-ID-Feld
926 um
0x0001 oder um 0x0100 inkrementiert werden soll, oder ob das IP-Paket-ID-Feld
926 durch
ein 2-Byte-Delta-Feld
ersetzt werden soll, das upstream von dem CM
108 übertragen
wird. Wenn sowohl I(1) als auch I(0) nicht gesetzt sind, dann wird
das IP-Paket-ID-Feld
926 um 0x0001 inkrementiert. Wenn
sowohl I(1) als auch I(0) gesetzt sind, dann wird das IP-Paket-ID-Feld
926 nicht
inkrementiert. Wenn I(1) nicht gesetzt ist und I(0) gesetzt ist,
dann wird das IP-Paket-ID-Feld
926 um 0x0100 inkrementiert.
Wenn I(1) gesetzt ist und I(0) nicht gesetzt ist, dann wird die Änderung
in dem IP-Paket-ID-Feld
926 upstream
in einem Zwei-Byte-Delta-Feld übertragen.
Tabelle 1 repräsentiert
die vier Möglichkeiten
zur Bestimmung des Wertes des IP-Paket-ID-Feldes
926. Tabelle 1
I(1) | I(0) | IP-Paket-ID |
0 | 0 | um
0x0001 inkrementieren |
0 | 1 | um
0x0100 inkrementieren |
1 | 0 | die Änderung
wird upstream in einem Zwei-Byte-Delta-Feld übertragen |
1 | 1 | kein
Inkrementwert |
-
Der
Steuerwert (V) 1008 ist ein Fünf-Bit-Wert, der den Delta-Wert
des Sequenznummernfeldes 950 repräsentiert.
-
11 ist
ein Ablaufdiagramm 1100 hoher Ebene, das ein Verfahren
für die
RTP-Header-Unterdrückung
veranschaulicht. Die Erfindung ist nicht auf die Beschreibung beschränkt, die
hier im Hinblick auf das Ablaufdiagramm 1100 gegeben wird.
Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt mit Schritt 1102,
bei dem der Prozess sofort zu Schritt 1104 weitergeht.
-
Im
Schritt 1104 werden Informationen, die die RTP-Header-Unterdrückung betreffen,
von dem CM 108 zu dem CMTS 104 kommuniziert, um
eine Rekonstruktion von RTP-Paketen an dem CMTS 104 zu
ermöglichen.
Wie vorher erörtert
worden ist, kann dies eine Indexzahl, die den speziellen Typ von
Paket-Header-Unterdrückungstechnik
anzeigt, die Regeln, die mit der Unterdrückung und der Rekonstruktion
eines Pakets in Übereinstimmung
mit dem bestimmten Typ von Paket-Header-Unterdrückungstechnik
assoziiert sind, etc. umfassen. Der Prozess geht dann weiter zum
Schritt 1106.
-
Im
Schritt 1106 wird ein komplettes RTP-Paket, wie etwa das
RTP-Paket 910, von dem CM 108 zu dem CMTS 104 gesendet,
um dem CMTS 104 ein Lernen zu ermöglichen. Das CMTS 104 speichert
den vollen Header des RTP-Pakets 910 für eine zukünftige Referenz als eine Vorlage.
Der Prozess geht dann weiter zu dem Entscheidungsschritt 1108.
-
Im
Entscheidungsschritt 1108 wird ermittelt, ob das CMTS 104 das
RTP-Paket 910 gelernt
hat. Wenn das CMTS 104 das RTP-Paket 910 nicht
gelernt hat, dann kehrt der Prozess zurück zu Schritt 1106,
an dem ein komplettes Paket von dem CM 108 zu dem CMTS 104 für ein Fortfahren
des Lernens gesendet wird.
-
Nun
wird nochmals auf den Entscheidungsschritt 1108 Bezug genommen.
Wenn festgestellt wird, dass das CMTS 104 das RTP-Paket 910 gelernt
hat, dann geht der Prozess weiter zum Schritt 1110. Im
Schritt 1110 werden nachfolgende Pakete in dem RTP-Strom
von dem CM 108 zu dem CMTS 104 gesendet. Die nachfolgenden
Pakete bestehen aus Delta-Werten, die Änderungen in dem RTP-Header 900 repräsentieren.
Auf diese Weise wird nicht mehr länger das gesamte RTP-Paket 910 gesendet.
Statt dessen werden nur Delta-Werte, die die Änderungen in dem RTP-Header 900 repräsentieren,
gesendet. Das PDU-Feld 956 wird ebenfalls gesendet. Wenn
eine Fehlerkorrektur gewünscht
wird, werden die nachfolgenden Pakete auch ein zusätzliches Byte
umfassen, das das niedrigere Byte des RTP-Sequenznummernfelds 940 anzeigt.
Wenn ein Paket aus irgendwelchen Gründen fallen gelassen wird,
kann das CMTS 104 effektiv den Header-Wiederherstellungsalgorithmus
erneut synchronisieren, indem die Änderungen an das Sequenznummernfeld 940 und
das Zeitstempelfeld 952 des RTP-Header 900 für jedes
fehlende Paket angelegt werden. Auf diese Weise wird das Senden des
Byte niedrigerer Ordnung des Paketsequenznummernfeldes 940 eine
Rekonstruktion von fallen gelassenen oder verlorenen Paketen ermöglichen.
Der Prozess geht dann weiter zum Entscheidungsschritt 1112.
-
Im
Entscheidungsschritt 1112 wird festgestellt, ob alle RTP-Pakete
gesendet worden sind. Wenn nicht alle RTP-Pakete gesendet worden
sind, kehrt der Prozess zu dem Entscheidungsschritt 1110 zurück, um zu ermöglichen,
dass nachfolgende Pakete in dem RTP-Strom zu dem CMTS 104 gesendet
werden können. Wenn
zurückkehrend
zu dem Entscheidungsschritt 1112 festgestellt wird, dass
alle RTP-Pakete
gesendet worden sind, dann geht der Prozess weiter zu Schritt 1114,
bei dem der Prozess endet.
-
12A ist ein Ablaufdiagramm, das ein Verfahren
zum Unterdrücken
eines RTP-Header unter Verwendung einer RTP-Header-Unterdrückungstechnik
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht. Die Erfindung ist nicht
auf die hier im Hinblick auf das Ablaufdiagramm 1200 bereitgestellte
Beschreibung beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den rele vanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt mit dem Schritt 1202,
bei dem ein RTP-Unterdrücker
an dem sendenden Ende (d. h., beim CM 108) gestartet wird.
Der Prozess geht dann sofort weiter zu Schritt 1204. Im
Schritt 1204 wird das Delta des RTP-Zeitstempelfeldes 952 zwischen
zwei aufeinanderfolgenden RTP-Paketen 900 bestimmt. Der
sich ergebende Wert ist der Zeitstempel-Delta-Wert. Der sich ergebende
Zeitstempel-Delta-Wert wird gleich temp(0) gesetzt. Es sei angemerkt, dass
während
der Initialisierung temp(0) auf Null gesetzt ist. Der Prozess geht
dann weiter zum Schritt 1206.
-
Im
Schritt 1206 wird der Delta-Wert für das Sequenznummernfeld 940 bestimmt.
Der sich ergebende Delta-Wert wird gleich dem Steuerwert (V) gesetzt.
Dies wird dadurch erzielt, dass das Byte niedriger Ordnung eines
neuen Sequenznummernfeldes 950, das mit dem Hex-Wert 7f
einem UND unterzogen wird, bestimmt wird, und dass das Byte niedriger
Ordnung des alten Sequenznummernfeldes 950, das mit dem
Hex-Wert 7f einem UND unterzogen wird, bestimmt wird. Der sich ergebende
Wert des neuen Sequenznummernfeldes 950 wird dann von dem
sich ergebenden alten Sequenznummernfeld 950 subtrahiert,
um das Delta oder den Wert des Steuerwerts (V) zu erhalten. Der
Prozess geht dann weiter zu dem Entscheidungsschritt 1208.
-
Im
Entscheidungsschritt 1208 wird festgestellt, ob eine korrekte
Rekonstruktion stattfinden wird. Dies wird dadurch erreicht, dass
der Delta-Wert des Sequenznummernfeldes 950, der im Schritt 1206 berechnet worden
ist, mit dem konstanten Wert für
den Codec multipliziert wird und dieser dann zu dem vorhergehenden Zeitstempelwert
addiert wird. Wenn dieser Wert nicht gleich dem neuen Zeitstempel
ist, dann geht der Prozess weiter zum Schritt 1210.
-
Im
Schritt 1210 wird das Lernbit 1002 des Steuerwertes 1000 gesetzt.
Der Prozess geht dann weiter zum Schritt 1210.
-
Im
Schritt 1212 wird temp(1) gleich dem Steuerwert 1000 gesetzt.
Temp(1) enthält
nun den Delta-Wert für
das Sequenznummernfeld 950. Der Prozess geht dann weiter
zum Schritt 1214.
-
Im
Schritt 1214 wird ein neuer Pufferspeicher zugeordnet,
und die beiden Bytes aus temp (der Delta-Wert für das Zeitstempel-Feld 952 und
der Steuerwert 1000, der den Delta-Wert für das Sequenznummernfeld 950 enthält) werden
in dem neuen Pufferspeicher gespeichert. Der Prozess geht dann weiter
zum Schritt 1216.
-
Im
Schritt 1216 werden der neue Pufferspeicher und der ursprüngliche
Pufferspeicher, der einen vollständigen
RTP-Header 910 enthält,
zu dem CMTS 104 gesendet. Auf diese Weise wird der komplette RTP-Header 910 zusammen
mit dem Delta-Wert für
das Zeitstempelfeld 952 und dem Steuerwert 1000 zu dem
CMTS 104 gesendet. Der Prozess geht dann weiter zum Schritt 1218,
bei dem der Prozess endet.
-
Nun
wird nochmals auf den Schritt 1208 Bezug genommen. Wenn
festgestellt wird, dass der berechnete Wert gleich dem neuen Zeitstempelfeld 952 ist,
dann hat das CM 108 den Quantisierungswert bestimmt. Der
Prozess geht dann weiter zum Schritt 1220.
-
Im
Schritt 1220 wird der Inkrementwert für das Inkrementieren des IP-Paket-ID-Feldes 926 bestimmt. Die
Bits I(1) 1004 und I(0) 1006 des Steuerwerts 1000 werden
entsprechend dem Wert des Inkrements für den verwendeten IP-Protokoll-Stack
gesetzt. Der Steuerwert wird dann in temp(1) gespeichert. Der Prozess
geht dann weiter zum Schritt 1222.
-
Im
Schritt 1222 werden die beiden Bytes aus temp in den ursprünglichen
Pufferspeicher kopiert. Temp (0) ist der Delta-Wert für das Zeitstempelfeld 952 oder
der Quantisierungswert. Temp (1) ist der Steuerwert 1000,
der den Delta-Wert für
das Sequenznummernfeld 950 umfasst. Der Prozess geht dann
weiter zum Schritt 1224.
-
Im
Schritt 1224 wird die ursprüngliche Länge minus 52 Bytes beginnend
beim Offset 52 übertragen. Auf
diese Weise werden der Quantisierungswert oder das Delta des Zeitstempelfeldes 952,
der Steuerwert 1000 und das PDU-Feld 956 zu dem
CMTS 104 übertragen.
Der Prozess geht dann weiter zum Schritt 1218, bei dem
der Prozess endet.
-
Wie
vorher angemerkt worden war, inkrementieren moderne IP-Protokoll-Stacks das IP-Paket-ID-Feld 926 im
Allgemeinen um entweder 0x0001 oder 0x0100 zwischen Datagrammen.
Eine spezielle Regel in der vorliegenden Erfindung hand habt das
Setzen der Steuerbits 1004 und 1006, um den Inkrementwert
zu bestimmen. 12B ist ein Ablaufdiagramm,
das ein Verfahren zum Setzen der Inkrementbits I(1) 1004 und
I(0) 1006 des Steuerwerts 1000 für das Inkrementieren
des IP-Paket-ID-Feldes 926 in
dem RTP-Paket 910 veranschaulicht. Der Prozess beginnt
bei Schritt 1232, bei dem der Prozess sofort zum Entscheidungsschritt 1234 weitergeht.
-
Die
vorliegende Erfindung enthält
einen Testmodus, in dem das Testen verschiedener Aspekte des Systems
durchgeführt
werden kann. Wenn gewisse Tests durchgeführt werden, werden die Steuerbits
I(1) 1004 und I(0) 1006 dementsprechend gesetzt,
um ein Inkrement von Null bereitzustellen. Im Entscheidungsschritt 1234 wird
festgestellt, ob sich das System in einem Testmodus befindet. Wenn
sich das System in einem Testmodus befindet, dann geht der Prozess
weiter zum Schritt 1236.
-
Im
Schritt 1236 wird das Steuerwert-Bit I(1) 1004 auf
1 gesetzt und das Steuerwert-Bit I(0) 1006 wird auf 1 gesetzt.
Dann geht der Prozess weiter zum Schritt 1248.
-
Nun
wird nochmals auf den Entscheidungsschritt 1234 Bezug genommen.
Wenn festgestellt wird, dass sich das System nicht in einem Testmodus
befindet, dann geht der Prozess weiter zu dem Entscheidungsschritt 1238.
-
Im
Entscheidungsschritt 1238 wird festgestellt, ob der Wert
für das
IP-Paket-ID-Feid 926 upstream
gesendet werden soll. Wenn der Wert für das IP-Paket-ID-Feld 926 upstream
gesendet werden soll, dann wird der Prozess zum Schritt 1240 weitergehen.
-
Im
Schritt 1240 wird das Steuerwert-Bit I(1) 1004 auf
1 gesetzt und das Steuerwert-Bit I(0) 1006 wird auf 0 gesetzt.
Dann geht der Prozess zum Schritt 1248 weiter.
-
Nun
wird nochmals auf den Entscheidungsschritt 1238 Bezug genommen.
Wenn der Wert für
das IP-Paket-ID-Feld 926 nicht upstream gesendet werden
soll, dann geht der Prozess weiter zum Entscheidungsschritt 1242.
-
Im
Entscheidungsschritt 1242 wird festgestellt, ob der IP-Protokoll-Stack
ein Inkrement von 0x0001 für das
IP-Paket-ID-Feld 926 benötigt. Wenn der IP-Protokoll-Stack ein
Inkrement von 0x0001 für
das IP-Paket-ID-Feld 926 benötigt, dann geht der Prozess
weiter zu dem Schritt 1244.
-
Im
Schritt 1244 wird das Steuerwert-Bit I(1) 1004 auf
0 gesetzt und das Steuerwert-Bit I(0) 1006 wird auf 0 gesetzt.
Dann geht der Prozess weiter zum Schritt 1248.
-
Nun
wird nochmals auf den Entscheidungsschritt 1242 bezug genommen.
Wenn der IP-Protokoll-Stack kein Inkrement von 0x0001 für das IP-Paket-ID-Feld 926 benötigt, dann
geht der Prozess weiter zu 1246.
-
Im
Schritt 1246 wird ein Inkrement von 0x0100 für das IP-Paket-ID-Feld 926 benötigt. Das
Steuerwert-Bit I(1) 1004 wird auf 0 gesetzt und das Steuerwert-Bit
I(0) 1006 wird auf 1 gesetzt. Dann geht der Prozess weiter
zum Schritt 1248.
-
Beim
Schritt 1248 endet der Prozess.
-
13 ist ein Ablaufdiagramm 1300,
das ein Verfahren zum Rekonstruieren eines unterdrückten RTP-Pakets
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht. Die Erfindung ist nicht
auf die hier im Hinblick auf das Ablaufdiagramm 1300 bereitgestellte
Beschreibung beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt beim Schritt 1302,
bei dem der Rekonstruktor gestartet wird. Der Prozess geht dann
weiter zum Schritt 1304.
-
Im
Schritt 1304 wird ein 54-Byte-Header gelesen. Dann geht
der Prozess weiter zum Schritt 1306.
-
Im
Schritt 1306 wird ein 1-Byte-Steuerwert 1000 aus
dem Eingangsstrom ausgelesen. Dann geht der Prozess weiter zum Entscheidungsschritt 1308.
-
Im
Entscheidungsschritt 1308 wird festgestellt, ob das Lernbit 1002 des
Steuerwerts 1000 gesetzt ist. Wenn festgestellt wird, dass
das Lernbit 1002 gesetzt ist, dann muß der Header 900 von
dem CMTS 104 gelernt werden. Dann geht der Prozess weiter
zum Schritt 1310.
-
Im
Schritt 1310 wird ein zweiter 1-Byte-Wert aus dem Eingangsstrom
ausgelesen. Dieser zweite 1-Byte-Wert wird verworfen. Dann geht
der Prozess weiter zum Schritt 1312.
-
Im
Schritt 1312 wird der aktuelle 54-Byte-Header, der im Schritt 1304 gelesen
wurde, verworfen. Das CMTS 104 verwirft diese Daten, weil
dieser 54-Byte-Header
von dem Nutzlast-Header-Unterdrückungsmechanismus
der Hardware an dem Ende des Rekonstruktorprozesses erzeugt wurde,
was unten unter Bezugnahme auf den Schritt 1318 erörtert werden
wird. Wenn der Nutzlast-Header-Unterdrückungsmechanismus der Hardware
diesen 54-Byte-Header injiziert, dann wird der 54-Byte-Header vor
dem Steuerwert 1000 platziert. Auf diese Weise wird dieser
54-Byte-Header dann,
wenn das Lernbit 1002 gesetzt ist, als Datenmüll betrachtet und
muß verworfen
werden. Von Standpunkt des CM 108 aus war das, was gesendet
wurde, ein Unterdrückungsindex.
Der Empfang des Unterdrückungsindex
durch das CMTS 104 hat das CMTS 104 veranlasst,
54 Bytes an inkorrekten Daten in den Datenstrom zu injizieren. Dann
geht der Prozess weiter zum Schritt 1314.
-
Im
Schritt 1314 wird der korrekte 54-Byte-Header, der von
dem CM 108 übertragen
wurde, aus dem Eingangsstrom ausgelesen. Dann geht der Prozess weiter
zum Schritt 1316.
-
Im
Schritt 1316 wird der 54-Byte-Header zu einem Vorlagen-Header
kopiert, und der 54-Byte-Header, auf den die Daten aus der PDU 956 folgen,
wird emittiert. Dann geht der Prozess weiter zum Schritt 1318,
an dem der Prozess endet.
-
Wenn
zurückkehrend
zum Entscheidungsschritt 1308 festgestellt wird, dass das
Lernbit 1002 des Steuerwerts 1000 nicht gesetzt
ist, dann geht der Prozess weiter zum Schritt 1320.
-
Im
Schritt 1320 wird der zweite 1-Byte-Wert aus dem Eingangsstrom
ausgelesen und in ein Byte niedriger Ordnung einer lokalen Variablen
namens DELTA platziert. DELTA ist ein 32 Bit langes Wort. DELTA
wird bei dem Start des RTP-Delta-Rekonstruktorprozesses 1300 auf
Null vorinitialisiert. Dann geht der Prozess weiter zum Schritt 1322.
-
Der
Schritt 1322 beginnt den Prozess zur Bestimmung, ob das
IP-Paket-ID-Feld 926 inkrementiert werden
soll, wie dies in der Tabelle 1 dargelegt ist. Im Schritt 1322 wird
festgestellt, ob I(1) 1004 des Steuerwerts 1000 gesetzt
ist. Wenn I(1) 1004 des Steuerwerts 1000 nicht
gesetzt ist, dann geht der Prozess weiter zum Schritt 1324.
-
Im
Schritt 1324 wird festgestellt, ob I(0) 1006 des
Steuerwerts 1000 gesetzt ist. Wenn I(0) nicht gesetzt ist,
dann geht der Prozess weiter zum Schritt 1326.
-
Im
Schritt 1326 wird eine lokale Variable namens INCR auf
0x0001 für
das Inkrementieren des IP-Paket-ID-Feldes 926 gesetzt.
Es sei angemerkt, dass die lokale Variable INCR ein vorzeichenloser
16-Bit-Wert ist. INCR wird beim Schritt 1302 auf Null vorinitialisiert.
Dann geht der Prozess weiter zum Schritt 1334.
-
Nun
wird nochmals auf den Schritt 1324 Bezug genommen. Wenn
I(0) gesetzt ist, dann geht der Prozess weiter zum Schritt 1328.
Im Schritt 1328 wird die lokale Variable INCR auf 0x0100
zum Inkrementieren des IP-Paket-ID-Feldes 926 gesetzt.
Dann geht der Prozess weiter zum Schritt 1334.
-
Nun
wird nochmals auf den Schritt 1322 Bezug genommen. Wenn
I(1) gesetzt ist, dann geht der Prozess weiter zum Schritt 1330.
Im Schritt 1330 wird festgestellt, ob I(0) 1006 des
Steuerwerts 1000 gesetzt ist. Wenn I(0) gesetzt ist, dann
geht der Prozess weiter zum Schritt 1334.
-
Nun
wird nochmals auf den Schritt 1330 Bezug genommen. Wenn
I(0) nicht gesetzt ist, dann geht der Prozess weiter zum Schritt 1332.
Im Schritt 1332 wird die Änderung in dem IP-Paket-ID-Feld 926 upstream ausgehend
von dem CM 108 übertragen.
Ein vorzeichenloser Zwei-Byte-Wert wird aus dem Eingangsstrom eingelesen
und am Offset 18 des rekonstruierten Datenpakets platziert. Der
Offset 18 des rekonstruierten Datenpakets ist das IP-Paket-ID-Feld 926.
Dann geht der Prozess weiter zum Schritt 1334.
-
Die
Schritte 1334 bis 1340 stellen alle Aktualisierungen
für das
IP-Paket-ID-Feld 926,
das RTP-Sequenznummernfeld 950 und das RTP-Zeitstempelfeld 952 für die Rekonstruktion
des RTP-Pakets 910 bereit. Im Schritt 1334 wird
festgestellt, ob die Bits 4-0 des Byte am Offset 45 (Bits niedriger
Ordnung des Sequenznummernfelds 950) des RTP-Pakets 910 gleich
V 1008 in dem Steuerwert 1000 sind. Wenn festgestellt
wird, dass die Bits 4-0 des Byte an dem Offset 45 (Bits niedriger
Ordnung des Sequenznummernfelds 950) des RTP-Pakets 910 gleich
V 1008 in dem Steuerwert 1000 sind, dann geht
der Prozess weiter zum Schritt 1342.
-
Im
Schritt 1342 wird eine neue IP-Header-Prüfsumme bestimmt
und an dem Offset 24 (IP-Header-Prüfsumme 934) platziert.
Das IP-Header-Prüfsummenfeld 934 ist
das 16-Bit-Einerkomplement der Einerkomplementsumme aller 16-Bit-Worte
im Header 900. Für
die Zwecke der Berechnung der Prüfsumme
ist der Wert des Prüfsummenfeldes
null.
-
Nun
wird nochmals auf den Schritt 1334 Bezug genommen. Wenn
festgestellt wird, dass die Bits 4-0 des Byte an dem Offset 45 (Bits
niedriger Ordnung des Sequenznummernfeldes 950) des RTP-Pakets 910 nicht
gleich V 1008 im Steuerwert 1000 sind, dann geht
der Prozess weiter zum Schritt 1336.
-
Im
Schritt 1336 wird der Wert von Eins zu dem Wort an dem
Offset 44 des RTP-Pakets 910 addiert, welcher das RTP-Sequenznummernfeld 950 ist.
Dann geht der Prozess weiter zum Schritt 1338.
-
Im
Schritt 1338 wird das Wort am Offset 18 des RTP-Pakets 910,
welcher das IP-Paket-ID-Feld 926 ist, um die lokale Variable
INCR inkrementiert. Dann geht der Prozess weiter zum Schritt 1340.
-
Im
Schritt 1340 wird das Wort an dem Offset 46 des RTP-Pakets 910,
welcher das RTP-Zeitstempelfeld 952 ist, um eine lokale
Variable DELTA inkrementiert. Der Prozess kehrt dann zurück zum Schritt 1334, um
festzustellen, ob der Steuerwert (V) 1008 mit den fünf Bits
niedriger Ordnung in dem Sequenznummernfeld 950 des RTP-Pakets 910 übereinstimmt.
Die Schritte 1334 bis 1340 werden wiederholt,
bis diese Zahlen gleich sind. Wenn diese Zahlen gleich sind, dann
wird der Prozess zum Schritt 1342 weitergehen, wie dies
oben beschrieben ist.
-
4. Dynamisches Deltacodierungsverfahren
-
Wie
vorher angemerkt worden ist, sorgt die Erfindung für eine Optimierung
der Übertragung
von TCP/IP-(Internet Protocol)-Verkehr quer durch ein DOCSIS-Netzwerk. Die Unterdrückungstechnik
der vorliegenden Erfindung ist eher feldorientiert als byteorientiert.
Viele Felder in einem TCP-Protokoll-Header ändern sich nicht zwischen Paketen
in dem gleichen TCP-Verbindungsstrom. Diese redundanten Informationen
werden einmal übertragen
und in den nachfolgenden Paketen unterdrückt. Andere Felder in dem TCP-Protokoll-Header ändern sich
in einer vorhersagbaren Weise. Diese Felder werden nicht in ihrer
Gesamtheit übertragen.
Statt dessen wird ein kleinerer deltacodierter Wert übertragen,
der jede Änderung
im Wert eines Feldes von einem Paket zum nächsten repräsentiert. Die deltacodierten
Werte für
32-Bit-Felder werden
immer als eine 16-Bit-Zahl repräsentiert.
Diese Technik reduziert die Bandbreite, die für das Senden der sich ändernden Felder
benötigt
wird, um etwa 50%, und stellt auf diese Weise eine hocheffiziente
Verstärkung
bei der TCP-Bestätigungs-(ACK)-Übertragung
bereit.
-
DOCSIS-Kabelmodems
können
eine Übermittlung
von Paketen in jedem IP-Strom
in der richtigen Reihenfolge gewährleisten.
Diese garantierte Vermittlungsreihenfolge ermöglicht die Verwendung von deltacodierten
Feldern zur Aktualisierung jeglicher sich ändernder Felder in einem 802.3/IP/TCP-Protokoll-Header.
-
Vor
dem Beschreiben des dynamischen Deltacodierungsverfahrens für die TCP-Header-Unterdrückung wird
ein herkömmlicher
802.3/IP/TCP-Protokoll-Header 1400 für die TCP/IP-Übertragung
in 14A beschrieben werden. Der Protokoll-Header 1400 umfasst
einen 802.3-Header 1402 mit 14 Bytes, einen IP-Header 1404 mit
20 Bytes und einen TCP-Header 1406 mit 20 Bytes. In diesem
Beispiel erzeugt der 802.3/IP/TCP-Header 1400 einen 54-Byte-Header
für die
TCP/IP-Übertragung.
-
14B ist ein Diagramm eines TCP-Protokoll-Pakets 1410.
Das TCP-Protokoll-Paket 1410 umfasst unter
anderem ein Ziel-MAC-Adressenfeld 1412, ein Quell-MAC-Adressenfeld 1414,
ein Typen-/Längenfeld 1416,
ein Protokollversionsfeld 1418, ein Header-Längen-Feld 1420,
ein Diensttypfeld 1422, ein Gesamtlängen-Feld 1424, ein Paket-ID-Feld 1426,
ein Fragment-Offset-Feld 1428, ein Lebenszeitfeld 1430,
ein Protokollfeld 1432, ein Header-Prüfsummen-Feld 1434,
ein Quell-IP- Adressenfeld 1436,
ein Ziel-IP-Adressenfeld 1438, ein Quellportfeld 1440,
ein Zielportfeld 1442, ein Sequenznummernfeld 1446,
ein Bestätigungsnummernfeld 1448,
ein Daten-Offset-Feld 1450, ein Flags-Feld 1452,
ein Fensterfeld 1454, ein Prüfsummenfeld 1456,
ein Dringlichkeitszeiger-Feld 1458, ein PDU-Feld 1460 und
ein CRC-32-Feld 1462. TCP-Protokoll-Pakete sind in dem/den
relevanten Fachgebiet(en) wohl bekannt, so dass deshalb nicht jedes
einzelne Feld ausführlich
erörtert
werden wird.
-
Die
meisten Felder in dem TCP-Protokoll-Paket 1410 ändern sich
nicht zwischen Paketen in dem gleichen TCP-Verbindungsstrom. Im
TCP-Protokoll-Paket 1410 kann der gesamte Header 1402 und
das meiste des Header 1404 unterdrückt werden, wenn der Empfänger einmal
die redundanten oder sich nicht ändernden Felder
gelernt hat. Viele dieser Felder in dem TCP-Header 1406 ändern sich
zwischen Paketen in dem gleichen TCP-Verbindungsstrom. Mit der vorliegenden
Erfindung werden diese Felder nicht in ihrer Gesamtheit übertragen.
Statt dessen wird ein kleinerer deltacodierter Wert übertragen.
Der deltacodierte Wert repräsentiert jede Änderung
bezüglich
des Wertes eines Feldes von einem Paket zu dem nächsten.
-
15 ist
ein Diagramm, dass die Felder veranschaulicht, die sich von Paket
zu Paket in dem TCP-Protokoll-Paket 1410 ändern. Die
Felder, die sich von Paket zu Paket ändern, sind hervorgehoben.
Die sich ändernden
Felder umfassen das Paket-ID-Feld 1426 von
dem IP-Header 1404 und das Sequenznummernfeld 1446,
das Bestätigungsnummernfeld 1448,
das Daten-Offset-Feld 1450, das Fensterfeld 1454,
das Prüfsummenfeld 1456 und
das Dringlichkeitszeiger-Feld 1458 von dem TCP-Header 1406.
-
Die
Erfindung ermöglicht
die Übermittlung
von Paketen in der richtigen Reihenfolge auf der Upstream-DOCSIS-HF-Verbindung.
Die Erfindung unterdrückt
den 802.3/IP/TCP-Header 1400 am CM 108 und gewährleistet,
dass der Header 1400 in seinem ursprünglichen Format von dem CMTS 104 rekonstruiert wird.
Die 16A und 16B stellen
jeweils eine Beschreibung hoher Ebene des deltacodierten Unterdrückungs-
und Rekonstruktionsprozesses für
die vorliegende Erfindung bereit.
-
16A ist ein Ablaufdiagramm 1600 hoher
Ebene, das ein Verfahren für
eine deltacodierte Unterdrückungstechnik
veranschaulicht. Die Erfindung ist nicht auf die hier im Hinblick
auf das Ablaufdiagramm 1600 bereitgestellte Beschreibung
begrenzt. Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt mit dem Schritt 1601 und
geht sofort zum Schritt 1602 weiter.
-
Im
Schritt 1602 werden Informationen, die die deltacodierte
TCP-Header-Unterdrückung betreffen, von
dem CM 108 zu dem CMTS 104 kommuniziert, um die
Rekonstruktion von TCP-Paketen an dem CMTS 104 zu ermöglichen.
Wie vorher erörtert
worden ist, kann dies eine Indexzahl, die den speziellen Typ von
Paket-Header-Unterdrückungstechnik
anzeigt, die Regeln, die mit dem Unterdrücken und Rekonstruieren eines Pakets
in Übereinstimmung
mit einem bestimmten Typ von Paket-Header-Unterdrückungstechnik
assoziiert sind, etc. umfassen. Das CM 108 wählt den
Unterdrückungsindex
und auf diese Weise die Unterdrückungstechnik
aus. Dies verhindert die Notwendigkeit einer Zwei-Wege-Befehlstransaktion
während
schneller Datenübertragungen.
Der Prozess geht dann weiter zum Schritt 1603.
-
Im
Schritt 1603 wird ein individueller TCP-Verbindungsstrom
identifiziert. Ein Framing-Protokoll wird verwendet, um jeden TCP-Verbindungsstrom
in einer einzelnen DOCSIS-SID zu trennen und zu identifizieren. Nach
dem Identifizieren des TCP-Verbindungsstroms geht der Prozess weiter
zum Schritt 1604.
-
Im
Schritt 1604 wird ein erstes TCP-Protokoll-Paket 1410 in
einem TCP-Verbindungsstrom
in seiner Gesamtheit zu einem Empfänger übertragen. Das erste TCP-Protokoll-Paket 1410 umfasst
einen Lernindikator. Der Indikator instruiert den Empfänger dahingehend,
den kompletten Header zu lernen. Der komplette Protokoll-Header 1400 kann
gelernt werden, ohne dass eine Bestätigung von einem Empfänger, wie
etwa dem CMTS 104, notwendig ist. Dies erlaubt es, dass
die Headers in Echtzeit gelernt werden können. Wenn der Header dann
gelernt ist, können
nachfolgende Pakete in einem komprimierten Format gesendet werden.
Eine maximale Effizienz wird erzielt, indem es erlaubt wird, dass
auf einen nicht unterdrückten
(gelernten) Header sofort ein unterdrückter Header folgen kann. Dies
beseitigt die Verzögerung,
die in dem DOCSIS-Lösungsweg eingeführt wird
und die es erfordert, dass auf eine Gelernt-Bestätigung von dem Empfänger gewartet
wird. Der Prozess geht dann weiter zum Schritt 1606.
-
Im
Schritt 1606 wird das nächste
Paket in dem TCP-Verbindungsstrom abgerufen. Der Prozess geht dann
weiter zum Schritt 1608.
-
Im
Schritt 1608 werden die Felder, die sich seit dem vorher übertragenen
Paket geändert
haben, identifiziert, und ein deltacodierter Wert, der diese Änderung
repräsentiert,
wird bestimmt. Der Prozess geht dann weiter zum Schritt 1610.
-
Beim
Schritt 1610 wird ein Bitmap-Flag (bit-mapped flag) erzeugt.
Das Bitmap-Flag zeigt an, welche der möglichen deltacodierten IP/TCP-Feld-Werte
zwischen einem Änderungsbyte
und dem Datenbereich des komprimierten TCP-Protokoll-Pakets vorhanden sind. Das Änderungsbyte
ist ein Ein-Byte-Bitmap-Flagfeld zum
Anzeigen, welche Felder sich innerhalb des Protokoll-Header 1400 geändert haben.
Das Änderungsbyte wird
unten unter Bezugnahme auf 17 ausführlicher
beschrieben werden. Der Prozess geht dann weiter zum Schritt 1612.
Im Schritt 1612 wird das komprimierte TCP-Protokoll-Paket
erzeugt, und das Bitmap-Flag wird
vorne an das komprimierte TCP-Paket angehängt. Der Prozess geht dann
weiter zum Schritt 1614.
-
Im
Schritt 1614 wird das komprimierte TCP-Protokoll-Paket
zu dem Empfänger übertragen.
Der Prozess geht dann weiter zum Entscheidungsschritt 1616.
-
Im
Entscheidungsschritt 1616 wird festgestellt, ob es noch
mehr TCP-Protokoll-Pakete 1410 in
dem TCP-Verbindungsstrom gibt, die übertragen werden sollen. Wenn
es noch mehr Pakete zum Übertragen
gibt, dann kehrt der Prozess zurück
zu Schritt 1606, um das nächste Paket abzurufen.
-
Nun
wird nochmals auf den Entscheidungsschritt 1616 Bezug genommen.
Wenn keine weiteren Pakete mehr in dem TCP-Verbindungsstrom vorhanden
sind, die übertragen
werden sollen, dann wird der Prozess zurück zum Schritt 1603 gehen,
bei dem ein anderer TCP-Verbindungsstrom identifiziert wird.
-
16B ist ein Ablaufdiagramm 1620 hoher
Ebene, das ein Verfahren für
eine deltacodierte Header-Rekonstruktionstechnik veranschaulicht.
Die Erfindung ist nicht auf die hier im Hinblick auf das Ablaufdiagramm 1620 bereitgestellte
Beschreibung beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den relevan ten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt mit dem Schritt 1622,
bei dem der Prozess sofort zum Schritt 1624 weitergeht.
-
Im
Schritt 1624 wird ein TCP-Protokoll-Paket 1410 aus
einem TCP-Verbindungsstrom
abgerufen. Der Prozess geht dann weiter zum Entscheidungsschritt 1626.
-
Im
Entscheidungsschritt 1626 wird festgestellt, ob das abgerufene
TCP-Protokoll-Paket 1410 gelernt werden
soll. Dies wird dadurch erzielt, dass ermittelt wird, ob das Indikator-Lernbit
gesetzt ist. Wenn das Indikator-Lernbit gesetzt ist, geht der Prozess
weiter zum Schritt 1628.
-
Im
Schritt 1628 lernt der Empfänger den aktuellen TCP-Protokoll-Header
des Pakets 1410 und speichert das Paket 1410 für eine zukünftige Referenz
als eine Header-Vorlage. Der Prozess kehrt dann zum Schritt 1624 zurück, um ein
anderes Paket abzurufen.
-
Nun
wird nochmals auf den Entscheidungsschritt 1626 Bezug genommen.
Wenn das Indikator-Lernbit nicht gesetzt ist, dann geht der Prozess
weiter zum Schritt 1630.
-
Im
Schritt 1630 wird das Änderungsbyte
gelesen und die entsprechenden deltacodierten Werte werden gelesen.
Der Prozess geht dann zum Schritt 1632 weiter.
-
Im
Schritt 1632 wird der Header rekonstruiert. Die TCP/IP-Header-Flags
werden aktualisiert, und die deltacodierten Werte werden verwendet,
um die geänderten
Felder in einer gespeicherten Header-Vorlage zu aktualisieren. Der
Prozess geht dann weiter zum Schritt 1634.
-
Im
Schritt 1634 wird der komplett wiederhergestellte Header
vor jegliche empfangene Daten aus dem TCP-Protokoll-Paket platziert,
das im Schritt 1624 abgerufen worden ist. An diesem Punkt
ist das Paket vollständig
in seinem ursprünglichen
Format wiederhergestellt und kann über ein IP-Netzwerk übertragen
werden. Der Prozess geht dann zurück zum Schritt 1624,
bei dem ein weiteres TCP-Protokoll-Paket abgerufen wird.
-
17 ist
ein Diagramm, das das Änderungsbyte 1700 veranschaulicht,
das bei der Ausführung
der deltacodierten Header-Unterdrückungstechnik verwendet wird.
Das Änderungsbyte 1700 ist
ein 1-Byte-Bitmap-Flag-Feld zum Anzeigen, welche Felder des Protokoll-Header 1400 sich
geändert
haben. Das Änderungsbyte 1700 zeigt
auch an, ob der Header 1400 an dem empfangenden Ende gelernt
werden soll oder nicht. Das Änderungsbyte 1700 zeigt
ferner an, ob die IP-Paket-ID 1426 inkrementiert werden
soll, und zeigt auch den Betrag an, um den die IP-Paket-ID 1426 inkrementiert
werden soll. Das Änderungsbyte 1700 umfasst ein
L-Bit 1702, ein I(1)-Bit 1704,
ein I(0)-Bit 1706, ein S-Bit 1708, ein A-Bit 1710,
ein P-Bit 1712, ein W-Bit 1714 und
ein U-Bit 1716.
-
Das
L-Bit 1702 zeigt dann, wenn es gesetzt ist, an, dass der
Rest des Änderungsbyte
ignoriert werden kann, und dass ein ganzer 54 Byte großer 802.3/IP/TCP-Header 1400 in
dem Burst enthalten ist und dazu verwendet werden sollte, den aktuellen
Vorlagen-Header zu ersetzen.
-
Das
I(1)-Bit 1704 und das I(0)-Bit 1706 werden verwendet,
um die Änderung
für das
IP-Paket-ID-Feld 1426 in einer ähnlichen Weise zu bestimmen,
wie dies oben in Tabelle 1 angegeben ist. Das I(1)-Bit 1704 zeigt dann,
wenn es gesetzt ist, an, dass der nächste Wert in dem Datenstrom
ein 2-Byte-Wert ist, der zu dem IP-Paket-ID-Feld 1426 des Vorlagen-Header
kopiert werden soll. Das Ergebnis soll zu dem Vorlagen-Header zurückgeschrieben
und emittiert werden. Wenn das I(1)-Bit 1704 leer ist,
dann muß das
I(0)-Bit 1706 überprüft werden,
um festzustellen, wie die IP-Paket-ID 1426 inkrementiert werden
soll. Das I(0)-Bit 1706 zeigt dann, wenn es gesetzt ist,
an, dass 0x0100 zu dem Vorlagen-Header-IP-Paket-ID-Feld 1426 addiert
werden soll, zu dem Vorlagen-Header zurückgeschrieben werden soll und
emittiert werden soll. Wenn es leer ist, zeigt das I(0)-Bit 1706 an,
dass das Vorlagen-Header-IP-Paket-ID-Feld 1426 um 0x0001 inkrementiert
werden soll, in den Vorlagen-Header zurückgeschrieben werden soll und
emittiert werden soll. Das I(1)-Bit 1704 und das I(0)-Bit 1706 werden
auf der Grundlage der Operation der modernen IP-Protokoll-Stacks und der Art
und Weise bestimmt, in der sie inkrementiert werden, wie dies oben
beschrieben worden ist.
-
Das
S-Bit 1708 zeigt dann, wenn es gesetzt ist, an, dass der
nächste
Wert in dem Datenstrom ein 2-Byte-Wert ist, der zu dem 4-Byte-TCP-Bestätigungsnummernfeld 1446 des
Vorlagen-Header addiert werden soll. Das Ergebnis soll zu dem Vorlagen-Header
zurückgeschrieben
werden und emittiert werden. Wenn das S-Bit 1708 leer ist,
soll das TCP-Sequenznummernfeld 1446 des Vorlagen-Header
so verwendet werden, wie es ist.
-
Wenn
das A-Bit 1710 gesetzt ist, dann ist der nächste Wert
in dem Datenstrom ein 2-Byte-Wert, der zu dem 4-Byte-TCP-Bestätigungsnummernfeld 1448 des
Vorlagen-Header addiert werden soll. Das Ergebnis soll zu dem Vorlagen-Header
zurückgeschrieben
werden und emittiert werden. Wenn das A-Bit 1710 leer ist, dann
soll das TCP-Bestätigungsnummernfeld 1448 des
Vorlagen-Header so verwendet werden, wie es ist.
-
Das
P-Bit 1712 zeigt dann, wenn es gesetzt ist, an, dass das
PUSH-Bit (nicht gezeigt) eines Nibble (4-Bit-Einheit) des TCP-Flags-Feldes 1452 gesetzt
werden soll und emittiert werden soll. Wenn das P-Bit 1712 leer
ist, soll das PUSH-Bit eines Nibble des TCP-Flags-Feldes 1452 gelöscht und
emittiert werden.
-
Wenn
das W-Bit 1714 gesetzt ist, dann ist der nächste Wert
in dem Datenstrom ein 2-Byte-Wert, der zu dem TCP-Fensterfeld 1454 des
Vorlagen-Header kopiert werden soll. Das Ergebnis soll zu dem Vorlagen-Header
zurückgeschrieben
und emittiert werden. Wenn das W-Bit 1714 leer ist, dann
soll das TCP-Fensterfeld 1454 des Vorlagen-Header so verwendet
werden, wie es ist.
-
Wenn
das U-Bit 1716 gesetzt ist, dann ist der nächste Wert
in dem Datenstrom ein 2-Byte-Wert, der zu dem TCP-Dringlichkeitszeiger-Feld 1458 des
Vorlagen-Header kopiert werden soll. Das Ergebnis soll zu dem Vorlagen-Header
zurückgeschrieben
und emittiert werden. Wenn das U-Bit 1716 leer ist, soll
das TCP-Dringlichkeitszeiger-Feld 1458 des
Vorlagen-Header so verwendet werden, wie es ist. Auf der Grundlage der
Felder, die sich seit den vorher übertragenen Werten tatsächlich ändern, wird
eine von zwei Aktionen stattfinden. Das TCP-Protokoll-Paket 1410 kann
ohne irgendeine Unterdrückung
gesendet werden, oder das TCP-Protokoll-Paket 1410 kann
an das Änderungsbyte 1700 angehängt werden
und entweder ein ganzes TCP-Protokoll-Paket 1410 oder zwei
oder mehr Felder an Stelle des 54-Byte-802.3/IP/TCP-Header 1400 enthalten.
Die zwei oder mehr Felder, die den 802.3/IP/TCP-Header 1400 ersetzen,
umfassen: (1) einen derzeitigen IP-Paket-ID-1426-Wert (der nur dann gesendet wird,
wenn die IP-Paket-ID nicht um 0x0001 oder 0x0100 inkrementiert wurde);
(2) einen deltacodierten Wert für
die TCP-Sequenznummer 1446 (der nur dann gesendet wird,
wenn die deltacodierte TCP-Sequenznummer ≠ 0 ist), (3) einen deltacodierten
Wert für
das TCP-Bestätigungsnummernfeld 1448 (der
nur gesendet wird, wenn die deltacodierte TCP-Bestätigungsnummer ≠ 0 ist); (4)
ein Byte an Daten für
das TCP-Daten-Offset-Feld 1450; (5) einen derzeitigen Wert
für das
TCP-Fensterfeld 1454 (der nur gesendet wird, wenn ein deltacodierter
Wert für
das TCP-Fensterfeld 1454 ≠ 0
ist; (6) einen derzeitigen Wert für das TCP-Header-Prüfsummenfeld 1456;
und (7) einen derzeitigen Wert für
das TCP-Dringlichkeitszeiger-Feld 1458 (der
nur gesendet wird, wenn das IP-Dringlichkeits-Flag gesetzt ist). Deshalb verwendet
die Erfindung einen Framing-Mechanismus, der komprimierten, nicht
komprimierten Verkehr und Verkehr, der nicht von der IP-Art ist,
in einer einzigen DOCSIS SID kombiniert.
-
Traditionelle
Internet-TCP/IP-Header-Unterdrückungsprotokolle
verwenden ein Deltacodierungsverfahren variabler Länge, um
sich ändernde
Felder zu repräsentieren.
Die vorliegende Technik ist für
Charakteristiken von Hochgeschwindigkeits-TCP/IP-Netzwerken optimiert. Für solche
Netzwerke werden die sich ändernden
TCP-Felder (d.h., ACK, SEQ, WIN) typischerweise um mehr als 255
Einheiten inkrementiert. Das Codieren dieser Änderungen mit einem festen
Zwei-Byte-Delta-Feld
optimiert den typischen Fall für
Hochgeschwindigkeitsnetzwerke und reduziert die Verarbeitung, die
für jedes übertragene
TCP-Protokoll-Paket 1410 benötigt wird.
-
18 ist
ein Diagramm, das einen endgültigen
codierten Datenstrom 1800 veranschaulicht, der zu einem
Empfänger
(d.h., CMTS) gesendet wird, wenn das L-Bit 1702 nicht gesetzt ist. 18 zeigt
eine erste Reihe 1802 für
jedes Feld in einem endgültigen
codierten Datenstrom 1800 und eine zweite Reihe 1804,
die eine Anzahl von Bytes anzeigt, die jedem Feld in dem endgültigen codierten
Datenstrom 1800 entsprechen.
-
Ein
erstes Feld 1806 ist das Änderungsbyte 1700.
Wie vorher angegeben, besteht das Änderungsbyte 1700 aus
1 Byte 1806.
-
Ein
zweites Feld 1808 ist ein deltacodierter Wert für das IP-Paket-ID-Feld 1426.
Der deltacodierte Wert 1808 für das IP-Paket-ID-Feld 1426 kann
aus entweder 0 oder 2 Bytes an Daten bestehen (1809), und
zwar in Abhängigkeit
davon, ob ein Wert zu dem Vorlagen-Header für das IP-Paket-ID-Feld 1426 kopiert
werden soll, oder ob der Wert des IP-Paket-ID-Feldes 1426 um
entweder 0x0001 oder 0x0100 inkrementiert werden soll. Wenn ein
Wert zu dem Vorlagen-Header für
das IP-Paket-ID-Feld 1426 kopiert
werden soll, dann wird der endgültige
codierte Datenstrom 1800 2 Bytes für das IP-Paket-ID-Feld 1426 enthalten.
Wenn kein Wert zu dem Vorlagen-Header für das IP-Paket-ID-Feld 1426 kopiert
werden soll, dann wird der endgültige
codierte Datenstrom 1800 keine Bytes für die IP-Paket-ID 1426 enthalten.
Statt dessen wird ein Inkrementwert für das IP-Paket-ID-Feld 1426 unter
Verwendung der Bits I(1) 1704 und I(0) 1706 des Änderungsbyte 1700 bestimmt
werden.
-
Ein
drittes Feld 1810 ist ein deltacodierter Wert für die TCP-Sequenznummer 1446.
Der deltacodierte Wert 1810 für das TCP-Sequenznummernfeld 1446 kann
aus entweder 0 oder 2 Bytes an Daten (1811) bestehen, und
zwar in Abhängigkeit
davon, ob eine Änderung
in dem TCP-Sequenznummernfeld 1446 seit dem vorher übertragenen
Wert stattgefunden hat. Wenn eine Änderung in der TCP-Sequenznummer 1446 seit
dem vorher übertragenen
Wert stattgefunden hat, wird das S-Bit 1708 des Änderungsbyte 1700 gesetzt
und der endgültige
codierte Datenstrom 1800 wird 2 Bytes an Daten für die Aktualisierung
des TCP-Sequenznummernfeldes 1446 in dem Vorlagen-Header
enthalten. Wenn in dem TCP-Sequenznummernfeld 1446 seit
dem vorher übertragenen
Wert keine Änderung
stattgefunden hat, dann wird das S-Bit 1708 des Änderungsbyte 1700 nicht
gesetzt, und der endgültige
codierte Datenstrom 1800 wird keine Bytes für das TCP-Sequenznummernfeld 1446 enthalten.
-
Ein
viertes Feld 1812 ist ein deltacodierter Wert für das TCP-Bestätigungsnummernfeld 1448.
Der deltacodierte Wert 1812 für das TCP-Bestätigungsnummernfeld 1448 kann
aus entweder 0 oder 2 Bytes an Daten (1813) bestehen, und
zwar in Abhängigkeit
davon, ob eine Änderung
in dem TCP-Bestätigungsnummernfeld 1448 seit
dem vorher übertragenen
Wert stattgefunden hat oder nicht. Wenn eine Änderung in dem TCP-Bestätigungsnummernfeld 1448 seit
dem vorher übermittelten
Wert stattgefunden hat, wird das A-Bit 1710 des Änderungsbyte 1700 gesetzt,
und der endgültige
codierte Datenstrom 1800 wird 2 Bytes an Daten für die Aktualisierung
des TCP-Bestätigungsnummernfeldes 1448 in
dem Vorlagen-Header enthalten. Wenn keine Änderung in dem Sequenznummernfeld 1446 seit
dem vorher übertragenen
Wert stattgefunden hat, dann wird das A-Bit 1710 des Änderungsbyte 1700 nicht
gesetzt, und der endgültige
codierte Datenstrom 1800 wird keine Bytes für das TCP-Bestätigungsnummernfeld 1448 enthalten.
-
Ein
fünftes
Feld ist für
das TCP-Daten-Offset-Feld 1450. Ein Wert für das TCP-Daten-Offset-Feld 1450 besteht
aus 1 Byte an Daten (1815), das in den endgültigen codierten
Datenstrom 1800 eingefügt
werden sollen.
-
Ein
sechstes Feld 1816 ist für das TCP-Fensterfeld 1454.
Ein Wert für
das TCP-Fensterfeld 1454 kann aus 0 oder 2 Bytes an Daten
(1817) bestehen, und zwar in Abhängigkeit davon, ob eine Änderung
in dem TCP-Fensterfeld 1454 seit dem vorher übertragenen
Wert stattgefunden hat. Wenn eine Änderung in dem TCP-Fensterfeld 1454 seit
dem vorher übertragenen
Wert stattgefunden hat, wird das W-Bit 1714 des Änderungsbyte 1700 gesetzt
werden, und der endgültige
codierte Datenstrom 1800 wird 2 Bytes an Daten für die Aktualisierung
des TCP-Fensterfeldes 1454 in dem Vorlagen-Header aufweisen.
Wenn keine Änderung
in dem TCP-Fensterfeld 1454 seit
dem vorher übertragenen
Wert stattgefunden hat, wird das W-Bit 1714 des Änderungsbyte 1700 nicht
gesetzt, und der endgültige
codierte Datenstrom 1800 wird keine Bytes für das TCP-Fensterfeld 1454 enthalten.
-
Ein
siebtes Feld 1818 ist für
das TCP-Prüfsummenfeld 1456.
Ein Wert für
das TCP-Prüfsummenfeld 1456 besteht
aus 2 Bytes an Daten (1819), die in den endgültigen codierten
Datenstrom 1800 eingefügt
werden sollen.
-
Ein
achtes Feld 1820 ist für
das TCP-Dringlichkeitszeiger-Feld 1458. Ein Wert für das TCP-Dringlichkeitszeiger-Feld 1458 kann
aus 0 oder 2 Bytes an Daten (1821) bestehen, und zwar in
Abhängigkeit
davon, ob ein IP-Dringlichkeits-Flag in dem TCP-Flags-Feld 1452 gesetzt
ist. Wenn das IP-Dringlichkeits-Flag in dem TCP-Flags-Feld 1452 gesetzt ist,
wird das U-Bit 1716 des Änderungsbyte 1700 gesetzt
werden, und der endgültige
codierte Datenstrom 1800 wird 2 Bytes an Daten enthalten,
die in den Vorlagen-Header kopiert werden sollen. Wenn das IP-Dringlichkeits-Flag in dem TCP-Flags-Feld 1454 nicht
gesetzt ist, wird das U-Bit 1716 des Änderungsbyte 1700 nicht
gesetzt, und der endgültige
codierte Datenstrom 1800 wird keine Bytes für das TCP-Dringlichkeitszeiger-Feld 1458 enthalten.
-
Ein
neuntes Feld 1822 ist für
die TCP PDU 1460. Die TCP PDU kann aus 0-n Bytes bestehen
(1823).
-
19 ist
ein Diagramm, das eine Sendereihenfolge 1900 für den endgültigen codierten
Datenstrom 1800 veranschaulicht, wenn das L-Bit 1702 nicht
gesetzt ist. Die Sendereihenfolge 1900 beginnt mit dem Änderungsbyte 1700.
Die Felder 1808, 1810, 1812, 1814, 1816, 1818, 1820 und 1822 folgen.
-
20 ist
ein Diagramm, das eine Sendereihenfolge 2000 veranschaulicht,
wenn das L-Bit 1702 gesetzt ist. Dies zeigt an, dass die
Header-Information, die übertragen
wird, von dem Empfänger
gelernt werden soll. Die Sendereihenfolge 2000 besteht
aus dem Änderungsbyte 1700,
einem Pad 2002, einem 54-Byte-TCP-Protokoll-Header 1410 und der
PDU 1460.
-
21 ist
ein Ablaufdiagramm 2100, das ein Verfahren für die TCP-Header-Unterdrückung veranschaulicht.
Die Erfindung ist nicht auf die hier im Hinblick auf das Ablaufdiagramm 2100 bereitgestellte
Beschreibung beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Der Prozess beginnt mit Schritt 2102,
bei dem ein TCP-Unterdrücker
gestartet wird. Der Prozess geht dann weiter zum Schritt 2104.
-
Im
Schritt 2104 werden das L-Bit 1702, das I(1)-Bit 1704,
das I(0)-Bit 1706, das S-Bit 1708, das A-Bit 1710,
das P-Bit 1712, das W-Bit 1714 und das U-Bit 1716 des Änderungsbyte 1700 ermittelt.
Dann wird das Änderungsbyte
in temp(0) kopiert. Der Prozess geht dann weiter zum Entscheidungsschritt 2106.
-
Im
Entscheidungsschritt 2106 wird festgestellt, ob das L-Bit 1702 gesetzt
ist. Wenn das L-Bit 1702 gesetzt ist, so zeigt dies an,
dass 802.3/IP/TCP in seiner Gesamtheit gesendet werden sollte, damit
er von einem Empfänger
wie etwa dem CMTS 104 gelernt werden kann. Dann geht der
Prozess weiter zum Schritt 2108.
-
Im
Schritt 2108 wird ein neuer Pufferspeicher zugeordnet.
Dann geht der Prozess weiter zum Schritt 2110.
-
Im
Schritt 2110 werden das Änderungsbyte 1700 und
ein einzelnes Pad-Byte (Stopf-Byte) in dem Pufferspeicher gespeichert,
der in dem Schritt 2108 zugeordnet worden ist. Die System-Hardware
sieht es nicht gerne, wenn es Pufferspeicher mit einer Zuordnung
von einem einzigen Byte gibt. Deshalb besteht eine Hardware-Einschränkung darin,
Pufferspeicher mit mehr als 1 Byte bereitzustellen. Auf diese Weise
wird auch ein Pad-Byte in den Pufferspeicher eingefügt. Der
Prozess geht dann weiter zum Schritt 2112.
-
Im
Schritt 2112 wird ein ursprünglicher Pufferspeicher, der
das TCP-Protokoll-Paket 1410 hält, an den neuen
Pufferspeicher in einem BD-Ring angehängt. Dann geht der Prozess
weiter zum Schritt 2114.
-
Im
Schritt 2114 werden die ursprüngliche Pufferspeicherlänge und
die neue Pufferspeicherlänge übertragen.
Auf diese Weise werden das Änderungsbyte
und ein Pad mit dem 54-Byte-Header und der PDU 1460 zum
Lernen des kompletten 802.3/IP/TCP-Header übertragen. Wenn das L-Bit 1702 gesetzt
ist, gilt die Sendereihenfolge 2000. Der Prozess geht dann
weiter zum Schritt 2116, bei dem der Prozess endet.
-
Nun
wird nochmals auf den Entscheidungsschritt 2106 Bezug genommen.
Wenn das L-Bit 1702 nicht gesetzt ist, dann geht der Prozess
weiter zum Schritt 2118. Im Schritt 2118 wird
die Länge
von temp berechnet und ein Zeiger wird auf den Pufferspeicher [54]
minus die Länge
von temp gesetzt. Die Länge
von temp umfasst die Länge
aller Daten, die in dem endgültigen
codierten Datenstrom 1800 gesendet werden. Dann geht der
Prozess weiter zum Schritt 2120.
-
Im
Schritt 2120 wird temp zu dem Zeiger kopiert. Dann geht
der Prozess weiter zum Schritt 2122.
-
Im
Schritt 2122 wird der Zeiger auf den BD-Ring gesetzt. Dann
geht der Prozess weiter zum Schritt 2124.
-
Im
Schritt 2124 wird die ursprüngliche Länge – [54] + die Länge von
temp übertragen.
Auf diese Weise wird der endgültige
codierte Datenstrom 1800 übertragen. Wenn das L-Bit 1702 nicht
gesetzt ist, gilt die Sendereihenfolge 1900. Dann geht
der Prozess weiter zum Schritt 2116, bei dem der Prozess
endet.
-
22 ist ein Ablaufdiagramm 2200,
das ein Verfahren für
die TCP-Header-Rekonstruktion
veranschaulicht. Die Erfindung ist nicht auf die hier im Hinblick
auf das Ablaufdiagramm 2200 bereitgestellte Beschreibung
beschränkt.
Im Gegenteil, es wird den Fachleuten auf dem/den relevanten Fachgebiet(en)
nach dem Lesen der hier bereitgestellten Lehren offensichtlich sein,
dass andere funktionelle Ablaufdiagramme innerhalb des Schutzumfangs
der vorliegenden Erfindung liegen. Ein 54-Byte-Vorlagen-Header wird von der DOCSIS-Nutzlast-Header-Rekonstruktionsmaschine
(nicht gezeigt) vor dem Start des Ablaufdiagramms 2200 erzeugt.
Der Prozess beginnt mit Schritt 2202, bei dem ein TCP-Header-Rekonstruktor
gestartet wird. Der Prozess geht dann weiter zum Schritt 2204.
-
Beim
Schritt 2204 wird ein 54-Byte-Header aus dem Eingangsstrom
ausgelesen. Dann geht der Prozess weiter zum Schritt 2206.
-
Im
Schritt 2206 wird das Änderungsbyte 1700 aus
dem Eingangsstrom ausgelesen. Dann geht der Prozess weiter zum Entscheidungsschritt 2208.
-
Im
Entscheidungsschritt 2208 wird festgestellt, ob das L-Bit 1702 aus
dem Änderungsbyte 1700 gesetzt
ist. Wenn das L-Bit 1702 gesetzt ist, dann geht der Prozess
weiter zum Schritt 2210.
-
Im
Schritt 2210 wird der 54-Byte-Header, der im Schritt 2204 erfasst
wurde, verworfen. Diese Daten werden verworfen, weil diese Daten
nicht aus dem Eingangsstrom erzeugt wurden, sondern von dem Nutzlast-Header-Unterdrückungsmechanismus
der Hardware an dem Ende des Rekonstruktorprozesses erzeugt wurde,
was unten unter Bezugnahme auf den Schritt 2216 beschrieben
werden wird. Wenn der Nutzlast-Header-Unterdrückungsmechanismus der Hardware
diesen 54-Byte-Header
injiziert, wird der 54-Byte-Header vor dem Änderungsbyte 1700 platziert.
Auf diese Weise wird dieser 54-Byte-Header dann, wenn das L-Bit 1702 gesetzt
ist, als Datenmüll
betrachtet und muß verworfen
werden. Vom Standpunkt des CM 108 aus, war das, was gesendet
wurde, ein Unterdrückungsindex.
Der Empfang des Unterdrückungsindex
durch das CMTS 1104 hat das CMTS 104 veranlasst,
54 Bytes an inkorrekten Daten in den Datenstrom zu injizieren. Dann
geht der Prozess weiter zum Schritt 2212.
-
Im
Schritt 2212 wird ein 1-Byte-Pad aus dem Eingangsstrom
ausgelesen und verworfen. Dann geht der Prozess weiter zum Schritt 2214.
-
Im
Schritt 2214 wird der korrekte 54-Byte-Header, der von
dem CM 108 übertragen
worden ist, aus dem Eingangsstrom ausgelesen. Dann geht der Prozess
weiter zum Schritt 2216.
-
Im
Schritt 2216 wird der korrekte 54-Byte-Header zu einem
Vorlagen-Header kopiert, und der 54-Byte-Header und die Daten aus
der PD 1460, die folgen, werden emittiert. Dann geht der
Prozess weiter zum Schritt 2218, bei dem der Prozess endet.
-
Nun
wird nochmals auf den Entscheidungsschritt 2208 Bezug genommen.
Wenn das L-Bit 1702 des Änderungsbyte 1700 nicht
gesetzt ist, dann geht der Prozess weiter zum Entscheidungsschritt 2220.
-
Der
Entscheidungsschritt 2220 beginnt den Prozess zum Ermitteln,
ob das IP-Paket-ID-Feld 1426 um 0x0001
oder 0x0100 inkrementiert werden soll, oder ob ein 2-Byte-Wert aus
dem Eingangsstrom in den Vorlagen-Header des IP-Paket-ID-Feldes 1426 kopiert
werden soll. In dem Entscheidungsschritt 2220 wird festgestellt,
ob das I(1)-Bit 1704 des Änderungsbyte 1700 gesetzt
ist. Wenn I(1) gesetzt ist, geht der Prozess weiter zum Schritt 2222.
-
Im
Schritt 2222 wird ein 2-Byte-Wert aus dem Eingangsstrom
ausgelesen und in das IP-Paket-ID-Feld 1426 kopiert (Offset
18). Dann geht der Prozess weiter zum Schritt 2230.
-
Nun
wird nochmals auf den Entscheidungsschritt 2220 Bezug genommen.
Wenn das I(1)-Bit 1704 des Änderungsbyte 1700 nicht
gesetzt ist, geht der Prozess weiter zum Entscheidungsschritt 2224.
Im Entscheidungsschritt 2224 wird festgestellt, ob das
I(0)-Bit 1706 des Änderungsbyte 1700 gesetzt
ist. Wenn das I(0)-Bit 1706 nicht gesetzt ist, geht der
Prozess weiter zum Schritt 2226.
-
Im
Schritt 2226 wird 0x0001 zu dem IP-Paket-ID 1426 an
dem Offset 18 addiert. Dann geht der Prozess weiter zum Schritt 2230.
-
Nun
wird nochmals auf den Entscheidungsschritt 2224 Bezug genommen.
Wenn das I(0)-Bit 1706 des Änderungsbyte 1700 gesetzt
ist, geht der Prozess weiter zum Schritt 2228. Im Schritt 2228 wird
0x0100 zu dem IP-Paket-ID 1426 an dem Offset 18 addiert.
Dann geht der Prozess weiter zum Entscheidungsschritt 2230.
-
Im
Entscheidungsschritt 2230 wird festgestellt, ob das S-Bit 1708 des Änderungsbyte 1700 gesetzt
ist. Wenn das S-Bit 1708 gesetzt ist, was anzeigt, dass
eine Änderung
in dem TCP-Sequenznummernfeld 1446 seit dem vorherigen
Wert stattgefunden hat, dann geht der Prozess weiter zum Schritt 2232.
-
Im
Schritt 2232 werden die nächsten 2 Bytes an Daten aus
dem Eingangsstrom zu dem TCP-Sequenznummernfeld 1446 an
dem Offset 38 hinzugefügt.
Dann geht der Prozess weiter zum Entscheidungsschritt 2234.
-
Nun
wird nochmals auf den Entscheidungsschritt 2230 Bezug genommen.
Wenn das S-Bit 1708 des Änderungsbyte 1700 nicht
gesetzt ist, geht der Prozess weiter zum Entscheidungsschritt 2234.
-
Im
Entscheidungsschritt 2234 wird festgestellt, ob das A-Bit 1710 des Änderungsbyte 1700 gesetzt
ist. Wenn das A-Bit 1710 gesetzt ist, was anzeigt, dass
eine Änderung
in dem TCP-Bestätigungsnummernfeld 1448 stattgefunden
hat, dann geht der Prozess weiter zum Schritt 2236.
-
Im
Schritt 2236 werden die nächsten 2 Bytes an Daten aus
dem Eingangsstrom zu dem TCP-Bestätigungsnummernfeld 1448 an
dem Offset 42 addiert. Dann geht der Prozess weiter zum Schritt 2238.
-
Nun
wird nochmals auf den Entscheidungsschritt 2234 Bezug genommen.
Wenn das A-Bit 1710 des Änderungsbyte 1700 nicht
gesetzt ist, dann geht der Prozess weiter zum Schritt 2238.
-
Im
Schritt 2238 wird das nächste
Byte an Daten aus dem Eingangsstrom in das TCP-Daten-Offset-Feld 1450 bei
dem Offset 46 kopiert. Der Prozess geht dann weiter zum Entscheidungsschritt 2240.
-
Im
Entscheidungsschritt 2240 wird festgestellt, ob das P-Bit 1712 des Änderungsbyte 1700 gesetzt
ist. Wenn das P-Bit 1712 gesetzt ist, dann geht der Prozess
weiter zum Schritt 2242.
-
Im
Schritt 2242 wird 0x08 einem ODER mit den Daten in dem
TCP-Flag-Feld 1452 an
dem Offset 47 unterzogen. Dann geht der Prozess weiter zum Entscheidungsschritt 2246.
-
Nun
wird nochmals auf den Entscheidungsschritt 2240 Bezug genommen.
Wenn das P-Bit 1712 des Änderungsbyte 1700 nicht
gesetzt ist, dann geht der Prozess weiter zum Schritt 2244.
-
Im
Schritt 2244 wird 0xF7 mit den Daten in dem TCP-Flag-Feld 1452 bei
dem Offset 47 einem UND unterzogen. Der Prozess geht dann weiter
zum Entscheidungsschritt 2246.
-
Im
Entscheidungsschritt 2246 wird festgestellt, ob das W-Bit 1714 des Änderungsbyte 1700 gesetzt ist.
Wenn das W-Bit 1714 gesetzt ist, was anzeigt, dass eine Änderung
in dem TCP-Fensterfeld 1545 stattgefunden hat, dann geht
der Prozess weiter zum Schritt 2248.
-
Im
Schritt 2248 werden die nächsten zwei Bytes an Daten
aus dem Eingangsstrom in das TCP-Fensterfeld 1454 bei dem
Offset 48 kopiert. Dann geht der Prozess weiter zum Schritt 2250.
-
Nun
wird nochmals auf den Entscheidungsschritt 2246 Bezug genommen.
Wenn festgestellt wird, dass das W-Bit 1714 des Änderungsbyte 1700 nicht
gesetzt ist, dann geht der Prozess weiter zum Schritt 2250.
-
Im
Schritt 2250 werden die nächsten 2 Bytes an Daten aus
dem Eingangsstrom in das TCP-Prüfsummenfeld 1456 bei
dem Offset 50 kopiert. Dann geht der Prozess weiter zum Entscheidungsschritt 2252.
-
Im
Entscheidungsschritt 2252 wird festgestellt, ob das U-Bit 1716 des Änderungsbyte
gesetzt ist. Wenn das U-Bit 1716 gesetzt ist, dann geht
der Prozess weiter zum Schritt 2254.
-
Im
Schritt 2254 werden die nächsten 2 Bytes an Daten aus
dem Eingangsstrom in das TCP-Dringlichkeitszeiger-Feld 1458 bei
dem Offset 52 kopiert. Dann geht der Prozess weiter zum Schritt 2256.
-
Im
Schritt 2256 wird das U-Bit in dem TCP-Flags-Feld 1452 gesetzt,
indem 0x20 durch ein ODER mit dem TCP-Flags-Feld 1452 an
dem Offset 4 verknüpft
wird. Dann geht der Prozess weiter zum Schritt 2260.
-
Nun
wird nochmals auf den Entscheidungsschritt 2252 Bezug genommen.
Wenn das U-Bit 1716 des Änderungsbyte 1700 nicht
gesetzt ist, dann geht der Prozess weiter zu Schritt 2258.
Im Schritt 2258 wird das U-Bit in dem TCP-Flags-Feld 1452 gelöscht, indem
0xDF durch ein UND mit dem TCP-Flags-Feld 1452 bei dem
Offset 47 verknüpft
wird. Der Prozess geht dann weiter zum Schritt 2260.
-
Im
Schritt 2260 wird das IP-Gesamtlängen-Feld 1424 gleich
der restlichen PDU-1460-Länge
plus 40 Bytes gesetzt. Ein neues IP-Header-Prüfsummenfeld 1434 wird
bestimmt und in den Vorlagen-Header bei dem Offset 24 platziert.
Die IP-Header-Prüfsumme ist
das 16-Bit-Einerkomplement der Einerkomplementsumme der Werte bei
den Offsets 14, 16, 18, 22, 26, 28, 30 und 32. Der Prozess geht
dann weiter zum Schritt 2216, bei dem 54 Bytes zu dem Vorlagen-Header
kopiert und emittiert werden. Dann geht der Prozess zu dem Schritt 2218 weiter,
bei dem der Prozess endet.
-
D. Umgebung
-
Wie
hier an anderer Stelle erörtert
worden ist, können
die oben beschriebenen Techniken bzw. Verfahren als Software-Routinen
teilweise von dem MAC-Abschnitt eines Kabelmodems und dem Kopfstellen-MAC-Abschnitt
eines CMTS ausgeführt
werden. Zum Beispiel und unter Bezugnahme auf die beispielhafte Implementierung
des Kabelmodems 108, die unter Bezugnahme auf 3 beschrieben
worden ist, führt
die MAC 314 notwendige Verfahrensschritte durch, indem
sie Software-Funktionen mit der Hilfe der CPU 320 ausführt. Diese
Software-Funktionen können
entweder in dem RAM 322 oder dem ROM 324 gespeichert
sein. Des Weiteren und unter Bezugnahme auf die beispielhafte Implementierung
des CMTS 104 führt
die Kopfstellen-MAC 218 notwendige Verfahrensschritte durch,
indem sie Software- Funktionen
mit der Hilfe der CPU 222 ausführt. Diese Software-Funktionen
können
entweder im RAM 220 oder im ROM 218 gespeichert
werden.
-
Aber
Verfahren der vorliegenden Erfindung brauchen nicht auf diese Ausführungsbeispiele
beschränkt zu
sein. Zum Beispiel können
die Verfahren der vorliegenden Erfindung in Software-Routinen verkörpert sein, die
in Computersystemen wie etwa einem Computersystem 2300,
wie es in 23 gezeigt ist, ablaufen. Verschiedene
Ausführungsbeispiele
werden im Hinblick auf dieses beispielhafte Computersystem 2300 beschrieben.
Nach dem Lesen dieser Beschreibung wird es einem Fachmann auf dem
relevanten Fachgebiet offensichtlich sein, wie die Erfindung unter
Verwendung anderer Computersysteme und/oder Computerarchitekturen
implementiert werden kann. Das Computersystem 2300 umfasst
einen oder mehrere Prozessoren, wie etwa den Prozessor 2303.
Der Prozessor 2303 ist mit einem Kommunikationsbus 2302 verbunden.
-
Das
Computersystem 2300 umfasst auch einen Hauptspeicher 2305,
vorzugsweise einen Direktzugriffsspeicher (RAM), und kann auch einen
externen Speicher 2310 umfassen. Der externe Speicher 2310 kann
zum Beispiel ein Festplattenlaufwerk 2312 und/oder ein
Wechselspeicherlaufwerk 2314 umfassen, das ein Magnetdiskettenlaufwerk,
ein Magnetbandlaufwerk, ein CD-Laufwerk, etc. repräsentiert.
Das Wechselspeicherlaufwerk 2314 liest aus einer Wechselspeichereinheit 2318 in
einer wohl bekannten Art und Weise aus bzw. schreibt in diese hinein.
Die Wechselspeichereinheit 2318 repräsentiert eine Magnetdiskette,
ein Magnetband, eine CD, etc, die von dem Wechselspeicherlaufwerk 2314 gelesen
und beschrieben werden. Wie klar sein wird, umfasst die Wechselspeichereinheit 2318 ein
von einem Computer benutzbares Speichermedium, in dem Computer-Software
und/oder Daten gespeichert sind.
-
In
alternativen Ausführungsbeispielen
kann der externe Speicher 2310 andere ähnliche Einrichtungen umfassen,
die es erlauben, dass Computerprogramme oder andere Instruktionen
in das Computersystem 2300 geladen werden können. Solche
Einrichtungen können
zum Beispiel eine Wechselspeichereinheit 2322 und eine
Schnittstelle 2320 umfassen. Beispiele dafür können eine
Programmkassette und eine Kassettenschnittstelle (wie sie etwa in
Videospielvorrichtungen vorgefunden werden), einen auswechselbaren
Speicherchip (wie etwa ein EPROM oder PROM) und einen assoziierten
Sockel sowie auch andere auswechselbare Speichereinheiten 2322 und
Schnittstellen 2320 umfassen, die es erlauben, dass Software
und Daten von der Wechselspeichereinheit 2322 zu dem Computersystem 2300 übertragen
werden können.
-
Das
Computersystem 2300 kann auch eine Kommunikationsschnittstelle 2324 umfassen.
Die Kommunikationsschnittstelle 2324 erlaubt es, dass Software
und Daten zwischen dem Computersystem 2300 und externen
Geräten übertragen
werden können.
Beispiele einer Kommunikationsschnittstelle 2324 können ein
Modem, eine Netzwerkschnittstelle (wie etwa eine Ethernet-Karte),
einen Kommunikationsport, einen PCMCIA-Schlitz und eine PCMCIA-Karte,
eine drahtlose LAN-Schnittstelle (Schnittstelle eines Nahbereichsnetzes),
etc. umfassen. Software und Daten, die über die Kommunikationsschnittstelle 2324 übertragen
werden, liegen in der Form von Signalen 2328 vor, die elektronische,
elektromagnetische, optische oder andere Signale sein können, die
von der Kommunikationsschnittstelle 2324 empfangen werden
können.
Diese Signale 2328 werden der Kommunikationsschnittstelle 2324 über einen
Kommikationspfad (d.h., Kanal) 2326 bereitgestellt. Dieser
Kanal 2326 überträgt die Signale 2328 und
kann unter Verwendung von Draht oder Kabel, Glasfaseroptik, einer
Telefonleitung, einer Funktelefonverbindung, einer drahtlosen Verbindung
und anderer Kommunikationskanäle
implementiert werden.
-
In
diesem Dokument bezieht sich der Begriff "Computerprogrammerzeugnis" auf Wechselspeichereinheiten 2318, 2322 und
die Signale 2328. Diese Computerprogrammerzeugnisse sind
Einrichtungen zum Bereitstellen von Software für das Computersystem 2300.
Die Erfindung ist auf solche Computerprogrammerzeugnisse ausgerichtet.
-
Computerprogramme
(die auch Computersteuerlogik genannt werden) werden in dem Hauptspeicher 2305 und/oder
dem externen Speicher 2310 und/oder in Computerprogrammerzeugnissen
gespeichert. Computerprogramme können
auch über
die Kommunikationsschnittstelle 2324 empfangen werden.
Solche Computerprogramme ermöglichen
es dem Computersystem 2300 dann, wenn sie ausgeführt werden,
die Merkmale der vorliegenden Erfindung so durchzuführen, wie
sie hier erörtert
worden sind. Insbesondere ermöglichen es
die Computerprogramme dem Prozessor 2303 dann, wenn sie
ausgeführt
werden, die Merkmale der vorliegenden Erfindung durchzuführen. Folglich
repräsentieren
solche Computerprogramme die Steuervorrichtungen des Computersystems 2300.
-
In
einem Ausführungsbeispiel,
in dem die Erfindung unter Verwendung von Software implementiert
ist, kann die Software in einem Computerprogrammerzeugnis gespeichert
sein und in das Computersystem 2300 unter Verwendung des
Wechselspeicherlaufwerks 2314, des Festplattenlaufwerks 2312 oder
der Kommunikationsschnittstelle 2324 geladen werden. Die
Steuerlogik (Software) bewirkt dann, wenn sie von dem Prozessor 2303 ausgeführt wird,
dass der Prozessor 2303 die Funktionen der Erfindung, wie
sie hier beschrieben ist, durchführt.
-
In
einem anderen Ausführungsbeispiel
ist die Erfindung primär
in Hardware unter Verwendung von zum Beispiel Hardware-Komponenten
wie etwa anwendungsspezifische integrierte Schaltkreise (ASICs;
application specific integrated circuits) implementiert. Eine Implementierung
einer oder mehrerer Hardware-Zustandsmaschine(n)
zur Durchführung
der hier beschriebenen Funktionen wird den Fachleuten auf dem/den
relevanten Fachgebiet(en) offensichtlich sein.
-
In
noch einem anderen Ausführungsbeispiel
wird die Erfindung unter Verwendung einer Kombination aus Hardware
und Software implementiert.
-
E. Schlussfolgerung
-
Die
vorliegende Erfindung ist nicht auf die Ausführungsbeispiele eines Kabelmodemsystems
beschränkt.
Die vorliegende Erfindung kann mit jedem System verwendet werden,
das TCP-Pakete über
ein Netzwerk überträgt. Die
vorausgehende Beschreibung der bevorzugten Ausführungsbeispiele ist bereitgestellt worden,
um einen Fachmann auf dem Gebiet in die Lage zu versetzen, die vorliegende
Erfindung durchführen oder
verwenden zu können.
Obwohl die Erfindung insbesondere unter Bezugnahme auf bevorzugte
Ausführungsbeispiele
davon gezeigt und beschrieben worden ist, wird es den Fachleuten
auf dem Gebiet klar sein, dass verschiedene Änderungen bezüglich Form
und Details durchgeführt
werden können,
ohne dass vom Schutzumfang der Erfindung abgewichen wird.