-
Querverweis zu zugehörigen Anmeldungen
-
Diese
Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldungen 60/724,462, eingereicht
am 7. Oktober 2005, 60/724,463, eingereicht am 7. Oktober 2005,
60/724,464, eingereicht am 7. Oktober 2005, 60/724,722, eingereicht
am 7. Oktober 2005, 60/725,060, eingereicht am 7. Oktober 2005 und
60/724,573, eingereicht am 7. Oktober 2005, wobei die Anmeldungen
hiermit durch Bezugnahme in ihrer Vollständigkeit aufgenommen werden.
-
Hintergrund der Erfindung
-
Die
Erfindung betrifft Vorrichtungen und Verfahren zur Echtzeitdatenübertragung,
beispielsweise in einem digitalen Videoverarbeitungszentrum oder einem
Unterhaltungssystem, einem Konferenzsystem oder anderen Applikationen,
welche RTP-Streaming verwenden. Zudem kann die Erfindung für Paketdatenübertragungsapplikationen
angewendet werden, wobei Informationen während der Paketbearbeitung
bestimmt werden und in ausgehende Datenpaketkopfabschnitte eingefügt werden,
beispielsweise als Paketadressen- oder Paketverarbeitungsinformation.
Dieser Betrieb erfordert ein Schritthalten mit einer Echtzeitdatenrate
für das
RTP-Streaming, vorzugsweise mit begrenzter rechnertechnischer Belastung.
Erfindungsgemäß wird eine
Richtungsdatei durch einen Steuerprozessor gebildet und erleichtert das
Einfügen
von solchen Informationen während der
Ausgabe der Pakete.
-
Die
erfindungsgemäßen Vorrichtungen
und Verfahren unterstützen
verschiedene Aufnahme-, Wiedergabe- und Verarbeitungsfunktionen,
wobei Inhalts- und Steuerinformationen an oder von Funktionselementen
gerichtet sind, welche Daten speichern, präsentieren oder verarbeiten.
Im Zusammenhang mit Daten-Streaming sind bestimmte Schritte erforderlich,
wenn auf die Steuerinformation reagiert wird. Wenn beispielsweise
eine Verbindung initiiert wird, ist es erforderlich, eine Datenpaketverarbeitung und
Adressenarrangements einzurichten, um auf die Steuerinformation
zu reagieren. Es kann erforderlich sein, Pakete, welche von einem
Speichermedium oder einem Kommunikationspfad oder einem Anschluss übertragen
werden sollen, zu finden oder auf die Pakete zuzugreifen. Basierend
auf der Steuereingabe und auch auf der in den Paketen gefundenen Information
bestimmt eine übertragungsvorrichtung, wie
die Übertragung
genau durchgeführt
wird. Erforderliche Codes, Flags, Adressen und andere Bedingungsanzeiger
können
bestimmt werden müssen und
bei der Signalisierung verwendet werden, beispielsweise beim Einfügen in Paketkopfabschnitte oder
bei der Bereitstellung von neuen Kopfabschnitten für Datenblöcke, in
welchen die ursprünglichen Pakete
zu übertragen
sind, usw. Diese Schritte können
eine große
rechnertechnische Komplexität
erfordern und im Wesentlichen softwaregestützt sein.
-
Nach
der Herstellung einer solchen Verbindung und dem Beginn der Datenübertragung
unterscheiden sich die Anforderungen etwas. Beispielsweise sind
die Information, Steuerung und Adressierung eines nächsten Pakets
in einem kontinuierlichen Strom wahrscheinlich sehr eng auf die
Informationen für
das zuletzt übertragene
Packet bezogen. Die sukzessiven Pakete können durch den Strom im Wesentlichen
auf die gleiche Weise bearbeitet werden. Die Pakete können sich
in inkrementalen Aspekten unterscheiden, wie beispielsweise in einer
Paketsequenznummer. Für
den Fall eines Lesevorgangs aus einem beliebigen Speicher, schreitet
die Quellenadresse fort. Das Niveau der rechnertechnischen Komplexität ist jedoch
geringer. Diese Schritte profitieren von der Geschwindigkeit und
Effizienz und sind im Wesentlichen hardwaregestützt.
-
Es
ist vorteilhaft, wenn wiederholende Datenverarbeitungsschritte,
welche rechnertechnisch nicht komplex sind, wie beispielsweise wiederholendes
Routen von Datenpaketen zu und von Speicherelementen, die mit einem
Netzwerk verbunden sind, unterschiedlich zu Funktionen, wie beispielsweise Steuerungsverarbeitungs-
und Adressierschritte, behandelt werden, welche rechnertechnisch
komplex aber auch relativ selten sind. Erforderlich ist eine optimale
Lösung.
-
Es
ist allgemein vorteilhaft, potentiell verschiedene Geräte freizugeben,
welche potentiell verschiedene Datenformate zur gegenseitigen Beeinflussung
verwenden. Entwurfsherausforderungen werden durch den Bedarf erhöht, anpassungsfähige Datenverarbeitungssysteme
bereitzustellen, während
verschiedenen Geräte
und Datenformate mit hohen Datenraten in Übereinstimmung zu bringen sind.
-
Industriestandards
regeln das Formatieren von bestimmten Datentypen. Standards beeinflussen die
Adressierungs- und Signalisierungstechniken, Datenspeicherung und
Datenwiedergewinnung, Kommunikationen usw. Standards werden typischerweise
auf mehreren Ebenen bzw. Schichten angewendet. Ein Paketsignalisierungsstandard
oder Paketsignalisierungsprotokoll kann beispielsweise verwendet
werden, wenn Videodaten übertragen
werden, welche gemäß einem
Videocodierstandard codiert sind, usw.
-
Paketdaten,
welche zwischen einer Quelle und einem Ziel übertragen werden, können in
vorteilhafter Weise Gegenstand von Zwischenverarbeitungsschritten,
wie einer Datenformatkonvertierung, Berechnungen, Pufferung und ähnlicher
Verarbeitungs- und/oder Speicherschritten sein. In einem Datenverarbeitungssystem,
das mehrere Server und Engeräte
aufweist, ist ein Teil der rechnertechnischen Belastungen auf Aktionen
gerichtet, die mit einer Datenformatierung und Datenneuformatierung assoziiert
sind. Teil der Belastung ist die Adressierung und das Umschalten
zwischen Datenquellen und Datenzielen, welche in Reaktion auf Bedingungen,
wie beispielsweise einer Benutzerauswahl, die Arrangements potentiell
wechseln.
-
Ein
Erfordernis, wenn ein Streaming-Vorgang mit Datenpaketen durchgeführt wird,
besteht darin, dass bestimmte Informationen, welche die Pakete identifizieren,
in den ausgehenden Datenpaketen bereitgestellt werden, um von Elementen
verwendet zu werden, welche weiter entfernt entlang dem Streaming-Signalpfad
angeordnet sind. Es könnte möglich sein,
einen Steuerprozessor zu verwenden, um die Streaming-Daten während ihrer Übertragung zu
analysieren, wodurch eine rechnertechnische Belastung hervorgerufen
wird. Es könnte
möglich
sein, ein Hardwarebauelement zu verwenden, um diese Funktion auszuführen, aber
dieses Bauelement würde
einen komplexen Aufbau erfordern und würde die Programmieranpassungsfähigkeit
verschlechtern. Daher ist eine andere Lösung erforderlich.
-
Die
Anforderungen zur Beschleunigung und Vereinfachung aus Geschwindigkeitsaspekten
gegenüber
der einer rechnerischen Komplexität bilden jedoch sich widersprechende
Entwurfsziele. Es könnte
vorteilhaft sein, den konkurrierenden Bedarf an Geschwindigkeit
und Datenkapazität
gegenüber dem
Bedarf an Rechnerleistung zu optimieren, so dass Arrangements bereitgestellt
werden können, welche
sowohl schnell als auch vielseitig einsetzbar sind. Die vorliegende
Erfindung verteilt bestimmte Funktionen, welche zum Managen von
ausgehenden Datenpaketen erforderlich sind, d. h. für die Datenausgabe,
derart, dass die komplexen und adaptiven rechnertechnischen Funktionen
zum Zusammensetzen der erforderlichen Ausgabeinformationen einem Steuerprozessor
zugeordnet sind und im Wesentlichen als Software umgesetzt werden
können.
-
In
bevorzugter Ausgestaltung wird die Erfindung in Bezug auf das Echtzeitprotokoll(RTP)-Paket-Streaming
vorgestellt. Eine beispielhafte Gruppe von Paketquellen- und Paketzieltypen
werden diskutiert, welche zur Videodatenverarbeitung zur Unterhaltung
oder für
Telekonferenzen anwendbar sind, aber potentiell Sicherheitsüberwachungen,
Spielsysteme und andere Anwendungen umfassen. Die Übertragungswege
können
drahtgebunden oder drahtlos sein und können unternehmenseigene oder öffentliche
Netzwerke einschließen.
Die Endgeräte zur
Wiedergabe können
Audio- und Videounterhaltungssysteme, Computerarbeitstationen, ortsfeste oder
tragbare Geräte
umfassen. Die Daten können unter
Verwendung von Netzwerkservern gespeichert und verarbeitet werden.
Beispielhafte Kommunikationssysteme umfassen lokale und Wide-Area-Netzwerke, Kabel-
und Telekommunikationsgesellschaftsnetzwerke usw.
-
In
Verbindung mit Audio- und Videodaten ist das Echtzeitprotokoll „RTP", das auch als „Echtzeitübertragungsprotokoll" bekannt ist, ein
Standardprotokoll, das zum Bewegen von in Pakete aufgeteilten Audio- und/oder Bild- und
Bewegtbilddaten über
ein Datenkommunikationsnetzwerk mit einer Echtzeitdatenrate geeignet
ist. Eine Wiedergabe von Audio- und Videodaten in einer Echtzeit-
oder Liverate ist wünschenswert,
um den Bedarf an Speicherpuffern zu minimieren, während das
Anhalten und Starten des Inhalts vermieden wird. Bei Applikationen,
wie beispielsweise bei Telekonferenzen und ähnlichen Kommunikationen, sollte
das Sammeln, Verarbeiten, Übertragen
und Wiedergeben von in Pakete aufgeteilten Daten in vorteilhafter
Weise mit kaum wahrnehmbaren Verzögerungen und ohne Pausen konsistent
mit in Echtzeit durchgeführten
Angesicht-zu-Angesicht-Konferenzen und -Kommunikationen erfolgen.
-
Das
RTP-Echtzeitprotokoll ist ein bekanntes Protokoll, um die Handhabung
von Echtzeitdaten, einschließlich
Audio- und Video, auf eine einfache Weise zu ermöglichen. Es kann für Media-on-Demand
sowie für
interaktive Dienstleistungen, wie Internet-Telefonie, verwendet
werden. Es kann zum Übertragen
von Audio und Video zu und von mehreren Quellen und Zielen verwendet
werden, um eine Präsentation
und/oder Aufnahme zusammen mit einer konkurrierenden Verarbeitung
zu ermöglichen.
-
Die
Weise, auf welche die Daten behandelt werden, kann von Zeit zu Zeit
unter Verwendung von Steuer- und Adressierfunktionen verändert werden, um
beispielsweise eine Verbindung, die bestimmte Quellen, Ziele oder
Beteiligte einschließt,
zu initiieren und zu beenden. Daher weist das RTP einen Dateninhaltsteil
für die Übertragung
des Inhalts und einen Steuerteil zum Variieren der Datenbehandlungsweise
auf, welche Starten, Anhalten und Adressieren umfasst. Der Steuerteil
des RTP wird als „RTCP" für Echtzeitsteuerprotokoll
bezeichnet.
-
Der
Datenteil des RTP ist ein dünnes
oder verschlanktes Protokoll, welches eine Unterstützung für Applikationen
mit Echtzeiteigenschaften bereitstellt, wie beispielsweise für die Übertragung
von kontinuierlichen Medien, z. B. Audio und Video. Diese Unterstützung umfasst
Zeitablauf rekonstruktion, Verlustdetektierung oder Verlusterkennung,
Sicherheit, Inhaltsidentifikation und ähnliche Funktionen, die wiederholend
sind und im Wesentlichen kontinuierlich mit der Übertragung von Medieninhalten
auftreten.
-
RTCP
stellt eine Unterstützung
für Echtzeitkonferenzen
von Gruppen beliebiger Größe innerhalb
eines Kommunikationsnetzwerkes, wie beispielsweise des Internets,
bereit. Diese Unterstützung
umfasst eine Quellenidentifizierung und Unterstützung für Gateways wie Audio- und Video-Bridges sowie
Gruppenruf-zu-Einzelruf-Übersetzern.
Es bietet eine Dienstqualität,
die vom Empfänger
zur Gruppenrufgruppe zurückgemeldet
wird, sowie eine Unterstützung
für die
Synchronisation von verschiedenen Medienströmen.
-
RTP
und RTCP sind Datenprotokolle, die insbesondere ausgeführt sind,
um die Übertragung von
Daten der oben beschriebenen Arten zu erleichtern, wobei die RTP-
und RTCP-Protokolle in einer vorgegebenen Netzwerkkonfiguration
aber mit höheren
oder niedrigeren Protokollen und Standards assoziiert werden können. Auf
einer höheren
Schicht können
die RTP- und RTCP-Protokolle beispielsweise verwendet werden, um
ein Videokonferenzsystem oder eine Anschau-und-Speicher-Technik oder andere
Techniken zur Behandlung von Daten zu unterstützen. Auf einer niedrigeren
oder einer mehr grundlegenden Schicht können die Pakete, die während der RTP-
und RTCP-Datenübertragung
verwendet werden, aktuell gemäß anderen
Paketübertragungsnachrichtenprotokollen übertragen
werden. Beispiele sind das Übertragungssteuerprotokoll
(TCP oder TCP/IP) und das Benutzerdatagrammprotokoll (UDP).
-
Die
TCP- und UDP-Protokolle dienen beide zur Paketübertragung, weisen aber grundsätzlich verschiedene
Eigenschaften in Bezug auf Paketintegrität- und Fehlerüberprüfung, Empfindlichkeit
gegenüber
verlorenen Paketen und anderen Aspekten auf. TCP verwendet im Wesentlichen
Protokollaspekte, die sicherzustellen helfen, dass eine Zweiwegverbindung
während
einer Übertragung
erhalten bleibt und die Verbindung erhalten bleibt, bis alle assoziierten
Pakete übertragen
und am Empfangsende zusammengesetzt sind, wobei möglicherweise
Neuversuche enthalten sind, um Pakete zu erhalten, die vermisst
oder beschädigt
sind. UDP bearbeitet im Wesentlichen Paketübertragungsversuche, aber es
liegt an den Applikationen, welche die Pakete senden und empfangen,
sicherzustellen, dass alle erforderlichen Pakete gesendet und empfangen
werden. Einige Applikationen, wie das Streaming von Telekonferenzbildern,
sind nicht sehr empfindlich auf Pakete, die zwischenzeitlich fallengelassen
werden. Es ist aber vorteilhaft, dass das Streaming so nahtlos wie
möglich weitergeführt wird,
wenn Pakete fallengelassen werden.
-
Es
könnte
vorteilhaft sein, wenn hier Techniken ausgearbeitet werden könnten, bei
denen Echtzeitübertragungen
unter Verwendung eines großen Bereichs
von höheren
und niedrigeren Protokollen ausführbar
sind, während
es der Konfiguration ermöglicht
wird, die Möglichkeiten
der verschiedenen Protokolle zu nutzen. Es könnte insbesondere in Systemen
mit hoher Leistungsfähigkeit
oder hohen Anforderungen nützlich
sein, die Funktionsweise so zuzuschneidern, dass die für die Kommunikation
verfügbaren
Ressourcen, die für
die Berechnungen verfügbaren
Ressourcen und situationsabhängige
Umschalt- und Entscheidungsfindungsprozesse optimiert werden können.
-
Zusammenfassung
-
Ein
Aspekt der Erfindung betrifft die Bereitstellung einer effizienten
Verarbeitung von Videodaten und ähnlichen
kontinuierlichen Streaming- bzw. Strömungsdaten
durch Verwenden eines Datenverarbeitungsarrangements, das charakteristische
und konkurrierende Übertragungsda tenpfade
und Steuerdatenpfade aufweist, wobei die beiden Datenpfade getrennt
datendurchsatzintensive Funktionen und datenverarbeitungsintensive
Funktionen unter Verwendung von charakteristischen kooperativen
Ressourcen verarbeiten, die geeignet unterschiedlich für die Durchsatz-
bzw. Verarbeitungsleistung konfiguriert sind.
-
Insbesondere
werden ein Verfahren und eine Vorrichtung zur Erleichterung und
Beschleunigung von Prozessen bereitgestellt, die von einem Medienserver
durch Partitionieren von Untermengen von bestimmten ressourcenintensiven
Prozessen, die mit dem Echtzeitprotokoll (RTP) assoziiert sind,
durchgeführt
werden, wobei die Untermengen von Prozessoren und Umschaltbauelementen
bearbeitet werden, welche für
die ihnen zugeordneten Untermengen optimiert sind. Die Partitionierung
von geschwindigkeitsbasierten Funktionen ist Geräten zugeordnet, welche die
Charakteristik der Daten-Pipelines aufweisen. Die rechnertechnische
Belastung ist einem oder mehreren Zentralprozessoren zugeordnet,
welche die RTP-Sitzungen steuern und die rechnertechnische Seite
mit weniger Prozessorbelastung zum Transportieren der Streaming-Daten
in der Datenkommunikations-Pipeline bearbeiten.
-
Bei
bestimmten Ausführungsformen
betrifft das Verfahren die Verwendung eines Hardwareschnittstellenelements,
das wenigstens teilweise die Information aufbaut, die bereitgestellt
wird, um ausgehende Datenblöcke
zu definieren, welche mit dem RTP-Paket-Streaming assoziiert sind.
Eine Richtungsdatei wird derart zur Verfügung gestellt, dass sie vollständig oder
teilweise vom Zentralprozessor verwendet werden kann und mit einem
Beschleunigungselement gekoppelt ist, das in Verbindung mit der
Paketausgabe auf die Richtungsdatei zugreift. Die Richtungsdatei
führt den
Hardwarebeschleuniger hinsichtlich der Paketausgabe. Es ist für den Prozessor
nicht erforderlich jedes Paket zu analysieren, das potentiell verschiedene
gleichzeitige Streaming-Verbindungen behandelt. Stattdessen richtet
der Prozessor die Richtungsdatei für jede Verbindung ein, die
in Gang ist, und der Beschleuniger legt die Information mit dem
Aussenden der Pakete an.
-
Der
Beschleuniger kann ein Hardwareschnittstellenelement sein, welches
mit einer hohen Datenrate ohne wesentliche Überwachung arbeitet und die
erforderliche Block- und Kopfabschnittinformation basierend auf
dem Inhalt der Richtungsdatei bereitstellt. Der Steuerprozessor
wird dadurch von der Steuerung der Funktionen befreit, die rechnertechnisch
intensiv sind. Obwohl der Beschleuniger in der beschriebenen bevorzugten
Ausführungsform ein
Hardwareelement ist, kann der Beschleuniger einen Prozessor umfassen.
-
Gemäß einer
Ausführungsform
wird eine inhaltsadressierbare Speicher(CAM)-Datei bereitgestellt,
durch die ein Hardwarebeschleuniger mehrere aktuell vorhandene Paketwarteschlangen
bestimmten Adressen zuordnet. Die CAM-Datei kann verwendet werden,
um die Kopfabschnittinformation zu bestimmen, insbesondere in Verbindung
mit Datenpaketen, die Kopfabschnitte mit Multioffsetpegeln enthalten.
Wenn eine SETUP-Anforderung empfangen wird, um eine neue Streaming-Verbindung zu einem neuen
Endpunkt zu initiieren, und kein übereinstimmender Eintrag in
der CAM-Datei gefunden wird, teilt dies der Hardwarebeschleuniger
dem Prozessor mit und ein Eintrag wird erstellt. Dem Hardwarebeschleuniger
werden zugehörige
Kopfabschnittwerte zur Verfügung
gestellt, indem ein Eintrag im inhaltsadressierbaren Speicher (CAM)
im Vorgriff auf eine RECORD- oder SEND-Nachricht erstellt wird.
Die mit dem neuen Endpunkt assoziierten Kopfabschnittwerte sind
dem Steuerprozessor bekannt, der Prozessor muss jedoch nur das Routen
für den
neuen Endpunkt durch Aufbauen einer neuen Paketwarteschlange im inhaltsadressierbaren
Speicher (CAM) einrichten. Der Hardwarebeschleuniger kann dann als
Automat arbeiten, der die Warteschlangeneinträge für ein ankommendes Paket findet,
die erforderlichen Werte substituiert und die Pakete in Richtung
ihres Ziels weiterleitet.
-
Wenn
eine RTSP-RECORD- oder SEND-Nachricht empfangen wird, die einen
eingerichteten Warteschlangeneintrag aufweist, liegt die Verantwortlichkeit
für die
Bestimmung des ausgehenden Kopfabschnittwertes beim Hardwarebeschleuniger
in Datenkommunikation mit dem Verkehrsmanager und dem Zentralprozessor.
Die Verbindung kann bis zum Abschluss oder bis der Zentralprozessor
erforderliche neue Steuerungen und Aktivitäten beeinflusst, wie beispielsweise
einem Bestimmen des Endpunkts oder von Endpunkten des Stroms gemäß beliebiger
programmierbarer Funktionen, in vollem Gange und mit dem Vorteil
der hohen Datenrate verbleiben. Solche Funktionen können viele
oder alle Funktionen umfassen, die sonst einen Steuerschaltkreis
erfordern, um mittels einer programmierten Softwareroutine zu entscheiden,
wie mit jedem weitergeleitenden Paket zu verfahren ist. Solche Funktionen
können
das Routen von Paketen zwischen Quellen und Zielen, Einfügen von
Zwischenprozessschritten, gleichzeitiges Routen von Paketen zu zwei
oder mehr Zielen, wie beispielsweise zum Aufnehmen während des
Abspielens, usw. umfassen.
-
Die
vorliegende Erfindung wendet eine Richtungsdatei an, welche Informationen
für einen
generalisierten Kopfabschnitt und einen Kopfabschnittblock enthält, welche
zusätzlich
zum RTP-Kopfabschnitt eingerichtet wird und in Verbindung mit der Paketausgabe,
d. h. mit dem Paketausgang, verwendet wird. Daher ist die Beschleunigung
des Managements der Paketausgabe eine Möglichkeit, um die Belastung
des Steuerprozessors während
der Übertragung
zu minimieren.
-
Anforderungen
an eine Streaming-Datenrate und einen Streaming-Datendurchsatz können hoch sein. Um unter Verwendung
eines Prozessors Schritt zu halten, kann ein sehr schneller und
geeigneter Zentralprozessor erforderlich sein, um ausreichende Rechenleistung
und auch das Erfordernis eine Information für die ausgehenden Datenblöcke aufzubauen
und einzufügen
zu gewährleisten.
Es ist ein erfinderischer Aspekt, die Richtungsdatei einzuführen, um
die rechnertechnische Belastung des Zentralprozessors zu minimieren.
In dem Umfang, wie die Richtungsdatei dazu konfiguriert werden kann,
eine Schnittstelle mit dem Hardwarebeschleuniger zu bilden, kann
die rechnertechnische Belastung wesentlich reduziert werden, um
die Richtungsdatei über den
Steuerschaltkreis bzw. die Steuereinheit aufzubauen und es zu ermöglichen,
dass der Strom kontinuierlich Datenblöcke ohne Überwachung durch die Steuereinheit
sendet.
-
Es
ist ein Aspekt der Erfindung eine optimale Lösung für die Verarbeitung von Steuer-
und Inhaltpaketen in einer effizienten Weise zur Verfügung zu stellen.
Eine RTSP/RTP-Lösung
sollte nicht vollständig
in Hardware oder Software implementiert werden, sondern wird am
Besten als Hybridlösung
implementiert, wobei der Prozess im Wesentlichen durch Software
gesteuert wird, wobei der Prozess Registerwerte und ähnliches
erzeugt, die vorzugsweise unter Verwendung von Hardware verarbeitet
werden, um die Datenübertragung
unter Verwendung von Medienobjekten und Unterstützungsdateien zu beschleunigen,
die durch Software erzeugt werden.
-
Aufgrund
ihrer relativen Komplexität
und seltenen Verwendung können
RTSP und PRCP, nämlich
Pakete, die zu ihrem größten Teil
zum Managen von Steuerprozessen verwendet werden, in einem Zentralprozessor
implementiert werden, ohne diesen zu überlasten, da RTSP- oder RTCP-Pakete
selten die Aufmerksamkeit erfordern. Eine RTP-Verarbeitung erfordert andererseits
eine Verarbeitung, um jedes ausgehende Paket im Medienstrom zu überwachen,
und profitiert von der Beschleunigung.
-
Paketausgabe-Streaming
sollte in Echtzeit erfolgen, d. h. im Gleichschritt mit der Echtzeitrate der
Datenpakete. Die vorliegende Erfindung wendet die Richtungsdatei
in einer Implementierung an, die sinngemäß Hinweise verwendet, um die
Hardware mit der RTP-Paketinformation zu versorgen, welche für sie erforderlich
ist, oder um direkter zur Erzeugung von den erforderlichen Ausgabeinformationen zu
führen.
Der Steuerprozessor kann in die Bestimmung des Inhalts der Richtungsdatei
einbezogen werden. Nachdem die Richtungsdatei jedoch für eine Verbindung
eingerichtet ist, beschleunigt die Hinweistechnik das RTP-Streaming
in einem Server durch Entfernen des Erfordernisses, dass der Server oder
die Steuereinheit die gestreamten Medien gleichzeitig analysiert,
um fortzuschreiten.
-
Die
erfindungsgemäße Technik
schiebt die Verantwortung nicht vollständig zur zugeordneten Hardware.
Die Technik erfordert beispielsweise nicht, dass die Hardware eine
ausreichende Komplexität aufweist,
wie es beispielsweise erforderlich sein kann, um Hinweisdaten zu
analysieren.
-
Das
Format für
die Richtungsdatei ist vorzugsweise flexibel dargestellt, um zukünftige Erweiterungen
zu ermöglichen.
Gleichzeitig sollte die Flexibilität des Richtungsdateiformats
nicht das Entwurfsziel zur Entlastung der wiederholenden und rechnertechnischen
einfachen Aspekte der Streaming-Funktionalität des Hardwarebauelements verkomplizieren.
-
Das
vorliegende Verfahren löst
dieses Problem durch Einbinden der erforderlichen Information, nicht
jedoch des Medienobjektes selbst, in eine komplementäre Datei,
die von der Hardware verwendet werden kann. Wenn eine Mediendatei
mit einem speziellen RTP-Pakettyp, nämlich mit einem Pakettyp, der
gemäß FRS definiert
ist, für
den Streamer zugreifbar ist, und es ein Kandidat für einen
Streaming-Vorgang ist, wird eine Richtungsdatei erzeugt. Diese Datei
wird durch Software erzeugt, welche im Hintergrund auf dem Zentralprozessor
abläuft,
nämlich
als Prozess mit niedriger Priorität, der verarbeitet wird, wenn
Ressourcen ver fügbar
sind. Die Richtungsdatei ist dahingehend einer Hinweisdatei ähnlich,
dass sie dem Streamer mitteilt, wie das Objekt für das RTP-Streaming in Pakete aufgeteilt werden soll.
Die erfindungsgemäße Richtungsdatei
ist jedoch dahingehend spezifischer als die Hinweisdatei, wie die
Ausgabe eines Pakets beeinflusst wird. Daher kann die erfindungsgemäße Technik
arbeiten, wobei der Zentralprozessor sogar wenig Wissen über das systemeigene
Medienobjekt hat.
-
Diese
und andere Gegenstände
und Aspekte werden durch die nachfolgende Beschreibung von bevorzugten
Ausführungsformen
und Ausführungsbeispielen
deutlich.
-
Kurze Beschreibung der Zeichnungen
-
In
den Zeichnungen sind bestimmte beispielhafte und nicht beschränkende bevorzugte
Ausführungsformen
der Erfindung dargestellt. Um den Gegenstand der Erfindung zu bestimmten,
wird jedoch auf die zugehörigen
Ansprüche
Bezug genommen, aus denen Rechte hervorgehen. Es zeigen:
-
1 ein
Blockdiagramm, das ein erfindungsgemäßes Quelle-zu-Ziel-Datenübertragungsverhältnis, z.
B. Server zu Client, darstellt, wobei eine RTP-Dateninhaltskomponente
um einen Steuerungspunkt, wie beispielsweise um einen Zentralprozessor,
der RTSP- und/oder RTCP-Steuersignalisierung bearbeitet, geroutet
wird.
-
2 ein
Blockdiagramm zur Darstellung eines erfindungsgemäßen Streaming-Steuerschaltkreises.
-
3 eine
Tabelle zur Darstellung von Komponentenwerten in einem RTP-Kopfabschnitt.
-
4 eine
Datentabelle zur Darstellung einer Richtungsdatei entsprechend einer
erfindungsgemäßen Ausführungsform.
-
5 ein
Blockdiagramm zur Darstellung der Komponenten eines Heimnetzwerks,
das mit einem Unterhaltungssystem „HNAS" verbunden ist, das in vorteilhafter
Weise konfiguriert ist, um die Paketdatenbearbeitungsvorschläge der Erfindung
zu umfassen.
-
Detaillierte Beschreibung
von bevorzugten Ausführungsformen
-
RTP
macht keine Adressenressourcenreservierungen und garantiert nicht,
dass eine Dienstqualität
für Echtzeitdienste,
wie beispielsweise Sicherstellen auf einer RTP-Protokollschicht,
bereitgestellt wird, dass Verbindungen erhalten bleiben und Pakete
nicht verloren gehen usw. Das Datenübertragungsprotokoll, nämlich RTP,
wird durch ein Steuerprotokoll (RTCP), das für eine Sitzungssteuerung, nämlich für RTP-Übertragungen von einer Quelle
zu einem Ziel, verwendet werden kann, und durch ein Gesamtpräsentationssteuerprotokoll
(RTSP) ergänzt.
-
Die
RTCP- und RTSP-Steuerprotokolle beziehen Signalisierungspakete mit
ein, die beispielsweise übertragen
werden, wenn ein Übertragungswechselpfad
aufgebaut oder getrennt wird, wenn eine Übertragung in eine Richtung
(PLAY) oder in eine andere Richtung (RECORD) initiiert wird, wenn eine
Pause eingefügt
wird usw. Die Inhaltsdatenpakete sollten so kontinuierlich wie möglich in
Echtzeit mit einigen Synchronisationsbezügen strömen. Die Inhaltspakete werden
zur gleichen Zeit wie die RTCP- und RTSP-Pakete übertragen, wobei die Pakete
der drei entsprechenden Protokolle jedoch unterschiedlich adressierte
logische Verbindungen oder Anschlussstellen verwenden.
-
Die
RTCP/RTSP-Steuer- und RTP-Daten-Streaming-Protokolle stellen gemeinsam
Werkzeuge bereit, die für
große
Gruppenrufnetzwerke skalierbar sind. RTP und RTCP sind bestimmt,
um unabhängig
von den unterlegten Transport- und Netzwerkschichten zu sein, und
können
daher mit verschiedenen Alternativen zu diesen Schichten verwendet
werden. Das Protokoll kann auch die Verwendung von RTP-Schicht-Übersetzern
und RTP-Schicht-Mischern unterstützen,
falls erforderlich.
-
Das
RTP-Steuerprotokoll (RTCP) weist die Fähigkeit auf, die Dienstqualität zu überwachen
und Informationen über
die Teilnehmer während
einer stattfindenden Sitzung zu transportieren. Die Teilnehmerinformation
ist für „locker
gesteuerte" Sitzungen ausreichend,
wo beispielsweise keine besondere Mitgliederkontrolle und Aufbau
erfolgt, wobei eine vorgegebene Applikation jedoch mehr Anforderungsauthorisierung
oder Kommunikationsanforderungen aufweisen kann, was allgemein im
Geltungsbereich des RTSP-Sitzungssteuerprotokolls liegt.
-
RTP-Dateninhaltpakete,
die zwischen einer Quelle und einem Ziel gestreamed bzw. geströmt werden,
werden im Wesentlichen in Echtzeit einfach in Richtung Zieladresse
weitergeführt.
Während
die Pakete in Echtzeit weitergeleitet werden, besteht ein geringer
Bedarf zur Pufferspeicherung in der empfangenden Vorrichtung. Aus
den gleichen Gründen
besteht in der sendenden Vorrichtung typischerweise kein Bedarf
an der Erzeugung einer Temporärdatei. Im
Gegensatz zu einigen andern Protokollen, wie beispielsweise HTTP-Objektübertragung,
teilt RTP das Objekt in Pakete mit medienspezifischen Kopfabschnitten
auf. Der RTP-Empfänger ist
dazu konfiguriert, sich von Paketverlusten eher zu erholen, als Wiederholungssignalisierungsfähigkeiten
aufzuweisen. Die RTP-Übertragungen
können
ein verbindungsloses TCP/IP-Protokoll verwenden. Typischerweise
werden RTP-Übertragungen
mit Benutzerdatagrammprotokoll(UDP)-Paketübertragungen von RTP-Daten
ausge führt,
typischerweise aber nicht notwendigerweise jeweils mit einem UDP-Paket,
das ein RTP-Paket bildet.
-
Ein
RTP-Paket weist einen festen Kopfabschnitt, welcher das Paket als
RTP identifiziert, eine Paketsequenznummer, einen Zeitstempel, eine Synchronisationsquellenidentifikation,
eine möglicherweise
leere Liste von beitragenden Quellenidentifizierungen und Nutzlastdaten
auf. Die Nutzlastdaten enthalten eine vorgegebene Anzahl von Datenwerten,
wie Audioabtastwerte oder komprimierte Videodaten.
-
Ein
RTP-Streaming-System verwendet gut erkennbare Echtzeitdateninhaltpakete
(RTP), Steuerpakete (RTCP) und/oder Sitzungssteuerpakete (RTSP).
Die Managementpakete (RTCP, RTSP) beziehen sich auf Verbindungen,
welche RTP-Inhaltpakete über
eine oder mehrere Verbindungen übertragen
können.
Die RTCP- und RTSP-Verbindungen beziehen andere „Verbindungsanschlussstellen" als RTP ein, aber
wichtiger ist, dass die Pakete in Frequenz und Funktion verschieden
sind.
-
Es
ist möglich,
einen Prozessor in einem Empfänger
bereitzustellen, wie beispielsweise einem netzwerkverbundenen Unterhaltungssystem,
einem Videokonferenzsystem, einem netzwerkverbundenen Speicherbauelement
usw., und den Prozessor zu programmieren, um angemessen zwischen RTP-Paketen
und RTCP- oder RTSP-Steuerpaketen unterscheiden zu können. Die
Datenpakete werden in Richtung ihres Ziels geleitet und die Steuerpakete werden
vom Prozessor verwendet, um andere programmierte Funktionen zu beeinflussen
und die Informationen zu übertragen.
Damit ein solches System Schritt halten kann, müssen die RTP-Inhaltpakete in
Echtzeit bearbeitet werden, und wenn der Zentralprozessor bestimmte
der Pakete managen muss, welche in Paketausgaben eingefügte Felder
aufweisen, muss der Prozessor mit einer hohen Datenrate arbeiten.
-
Die
Steuerpakete in Streaming-Situationen können zu verschiedenen Verbindungsszenarien
in eine oder mehrere Richtungen mit datenindifferenten Formaten
geleitet werden und eine Mehrzahl von Endpunkte einschließen. Der
Steuerprozessor erfordert eine rechnertechnische Komplexität und eine Programmierung,
die erforderlich ist, um potentiell betroffene Steuerprozesse zu
bearbeiten. Wenn ein vorgegebener Prozessor, der substantiell zu
einer rechnertechnischen Komplexität in der Lage ist, d. h. ein
kompliziertes Programm aufweist, auch einfach zum Weiterleiten von
RTP-Inhaltpaketen verwendet wird, dann ist sowohl eine hohe Datenrate
als auch eine hohe Rechnerkapazität erforderlich. Die Rechnerkapazität zur Bearbeitung
von komplexen Steuerungsberechnungen, die selten auftreten, wird
jedoch verschwendet, wenn der Prozessor den Großteil seiner Betriebskapazität zum aufeinander
folgenden Weiterleiten von RTP-Paketen über eine oder mehrere leicht
unterscheidbare Verbindungen verwendet.
-
Ein
Aspekt der vorliegenden Erfindung besteht darin, eine Lösung bereitzustellen,
durch welche die Berechnungsergebnisse, die von einem Steuerprozessor
bestimmt werden, zu einem weniger komplexen aber vielleicht schnelleren
Hardwarebauelement übertragen
werden, um die Pakete weiterzuleiten, beispielsweise für die Paketausgabe. Dies
wird unter Verwendung der erfindungsgemäßen Richtungsdateitechnik umgesetzt.
-
1 zeigt
eine einfache Netzwerkumgebung mit einem Steuerungspunkt, der zwischen
einem Server, nämlich
der Quelle der Streaming-Daten,
und einem Client, dem Ziel, eingeschleift ist. Jede Verbindung ist
mit den verschiedenen unterstützten
Pakettypen für
das RTP-Streaming bezeichnet. Der Erfindungsgegenstand kann allgemein
für Konfigurationen
angewendet werden, welche einen Steuerungspunkt einschließen und
durch Bereitstellung einer Technik, durch welche Felder in Nachrichtenkopfabschnitten
unter Verwendung eines beschriebenen Hard warebeschleunigers ersetzt
werden, wenigstens teilweise den Bedarf einer Verarbeitung am Steuerungspunkt
umgehen.
-
2 zeigt
eine beispielhafte Situation, in welcher der Steuerungspunkt durch
einen Zentralprozessor repräsentiert
wird, der mit einer Paketquelle, die als Server dargestellt ist, über ein
Netzwerk verbunden ist. In der dargestellten Konfiguration könnte der
Zentralprozessor in herkömmlicher
Weise erforderlich sein, um Pakete zu einem oder mehreren Zielen
weiterzuleiten, beispielsweise über
einen Verkehrsmanager/Verkehrsverwalter durch Leiten der in einem
Paketstrom identifizierten Pakete von der Paketquelle zu einem oder
mehreren adressierbaren Zielen, wie einem mit dem Netzwerk verbundenen Speicherelement,
welches bei dieser Ausführungsform
durch einen Disk-Speicher und seinen Steuerschaltkreis oder ein
Ausgabegerät
repräsentiert
wird.
-
Entsprechend
einem erfindungsgemäßen Aspekt
werden die Paketdaten in Teilen von einem Schnittstellenbauelement
in Form eines Netzwerkbeschleunigers bearbeitet. Der Netzwerkbeschleuniger kann
als Bauelement mit einem hohen Durchsatz mit einer minimalen, wenn überhaupt
vorhandenen rechnertechnischen Komplexität ausgeführt werden, welches dazu konfiguriert
ist, Werte in Datenblöcke
einzufügen,
welche RTP-Pakete umfassen, um ihre Handhabung und weitere stromabwärtige Verarbeitung
zu steuern. Aus diesem Grund wird eine Richtungsdatei erzeugt, die
einen generalisierten Kopfabschnittbereich aufweist, welcher einen
Identifizierungscode und einen Wertesatz aufweist, der einen Paketzähler, eine
Kopfabschnittblockgröße und Zeiger
und/oder Längenwerte
aufweist, welche die Position in den zu verarbeitenden Daten des
RTP-Kopfabschnitts identifizieren.
-
Die
einzelnen Quellen- und Zielelemente dieses Beispiels sind repräsentative
Beispiele. Die Erfindung kann in Situationen angewendet werden, welche
eine Vielzahl von potentiellen Quellen und potentiellen Zielen einschließen, welche
mehr oder weniger nah oder fern in der Datenkommunikation gekoppelt
sind, wie dargestellt ist, um zu einem vorgegebenen Zeitpunkt, als
Quelle oder Ziel der übertragenen
Pakete in der einen oder der anderen Richtung oder in beiden Richtungen
zwischen zwei solchen Elementen zu funktionieren. Das bestimmte Beispiel
kann für
die Übertragung
von Paketen in der Situation angeordnet sein, in welcher ein Inhaltsignal auf
einem Wiedergabegerät
dargestellt und gleichzeitig aufgenommen wird. In anderen Beispielen kann
ein Datenflussarrangement aufgebaut werden, in welchem Daten aufgenommen
aber nicht wiedergegeben werden oder wiedergegeben aber nicht aufgenommen
werden. Andere einzelne Quellen- und Zielelemente können betroffen
sein. Die gleichen ankommenden Pakete können von einer Quelle zu einem
oder mehreren Zielen geroutet werden. Alternativ kann der Inhalt
von zwei oder mehr Quellen für eine
koordinierte Speicherung oder Wiedergabe vorgesehen werden, beispielsweise
als eine Bild-im-Bild-Einfügung oder
für eine
gleichzeitige Seite-an-Seite-Darstellung, beispielsweise während einer
Telekonferenz. Diese und andere ähnliche
Applikationen sind gemäß der Erfindung
einfach realisierbar.
-
Der
Datenfluss zerfällt
in drei Haupttypen, nämlich
in RTSP-Pakete für
die Gesamtpräsentationssteuerung,
in RTCP-Pakete für
die individuelle Sitzungsprotokollsteuerung und in RTP-Pakete für die Dateninhaltübertragung.
-
RTSP
ist ein Applikationsschichtprotokoll, welches verwendet wird, um
eine oder mehrere konkurrierende Präsentationen oder Übertragungen
von Daten zu steuern. Eine einzelne RTSP-Verbindung kann mehrere
konkurrierende und/oder aufeinander folgende RPT-Objektübertragungen steuern. Bei einem
Videokonferenzarrangement, welches beispielsweise mehrere Orte umfasst,
können
bidirektionale Übertragungen
zwischen jedem Ortspaar aufgebaut werden. Die Syntax des RTSP ist ähnlich der von
HTTP/1.1, stellt aber Konventionen bereit, welche für die Medienübertragung
spezifisch sind. Die Haupt-RTSP-Befehle,
welche eine Sitzung definieren, sind:
- – SETUP:
Bewirkt, dass der Server Ressourcen für einen Strom und einen Start
einer RTSP-Sitzung zuordnet.
- – PLAY
und RECORD: Startet die einem Strom über SETUP zugeordnete Datenübertragung
von einer Quelle zu einem Ziel.
- – PAUSE:
Hält den
Strom temporär
an, ohne die Serverressourcen freizugeben.
- – TEARDOWN:
Gibt die mit dem Strom assoziierten Ressourcen frei. Die RTSP-Sitzung
hört auf
im Server zu existieren.
-
Wenn
der Steuerungspunkt unter Verwendung einer RTSP-SETUP-Anforderung eine
Objektübertragung
anfordert, sendet er eine Anforderung an den Server und den Client,
welche die Details der Objektübertragung,
einschließlich
Objektidentifikation, Quellen- und Ziel-IP-Adressen und Protokolports, und der
zu verwendenden Transportschichtprotokolle, allgemein RTP und entweder
TCP oder UDP, aufweisen. Auf diese Weise beschreiben die RTSP-Anforderungen
die Sitzung zwischen dem Client und dem Server. In einigen Fällen kann
die Anforderung speziell für
eine Untermenge eines verfügbaren
Objekts sein, wie beispielsweise für eine Audio- oder Videokomponente
des Objekts.
-
Wenn
alle erforderlichen SETUP-Anforderungen gemacht und bestätigt sind,
kann der Steuerungspunkt in Abhängigkeit
von der Richtung der Übertragung
eine PLAY- oder RECORD-Anforderung ausgeben. Die Anforderung kann
optional einen bestimmten Bereich des Objekts, welcher geliefert
werden soll, eine normale Wiedergabezeit des Objekts und einen lokalen
Zeitpunkt bestimmen, an welchem die Wiedergabe beginnen soll.
-
Nach
der Beendigung der Wiedergabe wird die Präsentation automatisch unterbrochen,
als ob ein PAUSE-Befehl ausgegeben worden wäre. Wenn ein PAUSE-Befehl ausgegeben
wird, wird der Zeitstempel spezifiziert, an welchem der Strom pausieren
soll, und der Server bzw. Client stoppt die gelieferten Daten, bis
eine nachfolgende PLAY- bzw. RECORD-Anforderung ausgegeben wird.
-
Wenn
eine TEARDOWN-Anforderung ausgegeben wird, wird die Datenlieferung
des spezifizierten Stroms angehalten und alle zugeordneten Sitzungsressourcen
werden freigegeben.
-
Ein
RTSP-Befehl kann eine Außerbandübertragungssitzung
spezifizieren, bei welcher RTP/UDP oder RTP/TCP für die Übertragung
verwendet wird. Eine „Außerbandübertragung" bezeichnet zwei
oder mehr charakteristische Übertragungs-
oder Verbindungspfade. Der RTSP-Verkehr kann in diesem Fall über eine
Verbindung erfolgen, und eine andere Verbindung kann durch RTSP
spezifiziert werden, um die aktuelle Übertragung der RTP-Daten auszuführen.
-
Die
RTP-Pakete können über TCP übertragen
werden. Dies ist allgemein ineffizient, da eine UDP-Übertragung
keine aufrechterhaltene Verbindung erfordert, nicht empfindlich
für verlorene
Pakete ist und/oder nicht versucht verlorene Pakete zu detektieren
und zu erkennen, wie dies bei TCP erfolgt. Das UDP-Übertragungsprotokoll
ist für
eine Echtzeitübertragung
von Paketen, wie beispielsweise von Audio- oder Videodatenabtastwerten,
geeignet. Solche Werte sind nicht individuell kritisch, sollten
aber mit einem hohen Datenvolumen übertragen werden. TCP unterscheidet
sich dadurch vom UDP, dass Verbindungen aufgebaut werden, das Protokoll
die Zuverlässigkeit
betont, beispielsweise durch den Versuch verlorene Pakete durch
eine Neuübertragung zu
erhalten usw. Diese Aspekte sind mit den Bedürfnissen von RTP weniger konsistent
als UDP. Diese Beschreibung setzt generell voraus, dass UDP für die RTP-Übertragung
verwendet wird. Die Offenbarung sollte aber nicht auf die bevorzugte
UDP-Übertragung
begrenzt werden sondern schließt
vielmehr TCP und andere Protokolle ein.
-
Wenn
ein Server eine Anforderung für
ein zu lieferndes Objekt unter Verwendung von RTP empfängt, wird
das Objekt typischerweise von seinem systemeigenen Format in ein
Paketformat überführt. Eine
Anzahl von „Inhaltsanforderungs(RFC)"-Nachrichtenbausteinen,
welche eine assoziierte RFC für verschiedene
vorgegebenen Datentypen umfassen, wurden in der Industrie, wie beispielsweise
von der Internet Engineering Task Force (ietf.org), entwickelt, um
Probleme zu lösen,
welche mit der beschriebenen Aufteilung der Daten in Pakete assoziiert
sind, und um einen Online-Zugriff aufrechtzuerhalten.
-
Jeder
Medienobjekttyp wird entsprechend den von der assoziierten RFC bereitgestellten
standardisierten Spezifikationen typischerweise etwas unterschiedlich
in Pakete aufgeteilt, sogar mit unter den Typen variierenden Kopfabschnittformaten.
Die Unterschiede treten aufgrund der verschiedenen Objekte und der
Probleme im Zusammenhang mit der Behandlung von verschiedenen Nutzdaten
auf.
-
3 zeigt
das Format des gemeinsamen RTP-Kopfabschnitts, wie es beispielsweise
in RFC 3550/3551 beschrieben ist. Die Kopfabschnittfeldabkürzungen
sind wie folgt:
„V" repräsentiert
eine Versionsnummer. Die aktuelle Version ist die Version 2. Obwohl
im Kopfabschnitt nichts Inhärentes
vorhanden ist, welches das Paket als eindeutig im RTP-Format identifiziert,
ist das Vorhandensein der Versionsnummer „2" an dieser Kopfabschnittposition ein
Indikator dafür.
-
„P” ist ein
Wert, der anzeigt, ob eine Auffüllung
am Ende der Nutzlast existiert, welche ignoriert werden sollte,
und wenn dem so ist, den Umfang der Auffüllung. Das letzte Byte des
Auffüllungswerts
gibt die Gesamtzahl der Auffüllungsbytes
an.
-
„X" ist ein Wert, der
zeigt, ob ein Erweiterungskopfabschnitt vorhanden ist oder nicht.
-
„CC" ist ein Zähler der
Anzahl von beisteuernden Quellen, die in diesem Kopfabschnitt identifiziert
sind.
-
„M" ist ein Markierungsbit.
Die Implementierung dieses Bits ist spezifisch für den Nutzlasttyp.
-
„PT" identifiziert den
Nutzlasttyp, nämlich den
Typ des Objekts, das übertragen
wird. Neben anderen Dingen erlaubt der Nutzlasttypidentifizierer dem
Empfänger
zu bestimmen, wie der RTP-Strom abgeschlossen wird.
-
„Sequenznummer" ist ein Zähler der
Anzahl von übertragenen
RTP-Paketen. Es
wird angemerkt, dass dies zum TCP verschieden ist, das eine Sequenznummer
verwendet, um die Anzahl der übertragenen
Bytes anzuzeigen. Die RTP-Sequenznummer ist die Anzahl der übertragenen
RTP-Pakete, d. h. ein Paketindex.
-
„Zeitstempel" ist ein Feldwert,
der vom Nutzlasttyp abhängig
ist. Typischerweise stellt der Zeitstempel einen Zeitindex für Pakete
bereit, die gesendet wurden, und stellt in einigen Fällen ein
Referenz bereit, welche es ermöglicht,
den Empfänger
während
einer Aufnahme oder einer Wiedergabe von Paketinhalten an Zeitbedingungen
anzupassen.
-
„SSRC ID" identifiziert die
Quelle der Daten, die übertragen
werden.
-
„CSRC ID” identifiziert
eine beliebige beteiligte Quelle oder Quellen, welche die Daten,
die übertragen
werden, verarbeitet haben, wie beispielsweise Mischer, Übersetzer
usw. Es kann eine Mehrzahl von beteiligten Quellen oder es kann
außer
der ursprünglichen
Quelle keine weitere Quelle in der SSRC ID identifiziert werden.
Wie oben ausgeführt
ist, stellt der Wert CC im Kopfabschnitt einen Zähler für beteiligte Quellen bereit.
Der Zähler
ermöglicht,
dass die unbestimmte Anzahl von beteiligten Quellenidentifikationen
als solche behandelt wird und der Inhalt, der dem Kopfabschnitt
folgt, aufwärts
indiziert wird.
-
Wenn
das X-Bit gesetzt ist, dann gibt es einen Erweiterungskopfabschnitt,
der dem RTP-Kopfabschnitt folgt. Die Verwendung und die Natur des Erweiterungskopfabschnitts
sind von der Nutzlast abhängig.
Die nutzlastspezifischen Subkopfabschnitte werden allgemein auf
eine Weise spezifiziert, die es ermöglicht, dass ein Paketverlust
verbessert wird, um bis zu einer gewissen Häufigkeit des Auftretens tolerierbar
zu sein. Für
einige Formate, wie beispielsweise für MPEG2, können einige komplexe Subkopfabschnitte
mit Video- und Audiocodierinformationen dem Haupt-RTP-Kopfabschnitt
folgen.
-
Die
Nutzlast folgt in dem in 3 dargestellten Paket dem letzen
Subkopfabschnitt. Die Nutzlastbeziehung zum systemeigenen Medienobjekt
wird auch durch den Standard bestimmt, welcher den korrespondierenden
Nutzlasttyp beschreibt. Es gibt häufig keine Eins-zu-Eins-Korrespondenz zwischen
dem systemeigenen Objekt und der Verkettung von RTP-Paketnutzlasten.
Obwohl verschiedene Faktoren vorhanden sind, welche dazu beitragen,
können einige
Beispielsituationen, welche den Unterschieden zwischen der RTP-Paketnutzlastsequenzen
und den Bytesequenzen der systemeigenen Objekte zugrunde liegen
können,
aufgrund von
- – einem Bedarf zur Synchronisation
von Audio- und Videoinformationen für einen vorgegebenen Rahmen,
- – einer
Verschachtelung von Datenblöcken
innerhalb der RTP-Nutzlast,
- – einer
Wiederholung für
kritische Datenelemente,
- – einer
Audio/Videodemultiplexierung, oder
- – 1.1.3
RTCP
entstehen.
-
Periodisch
werden, während
eine vorgegebene RTP-Sitzung aktiv ist, Steuerinformationen bezüglich der
Sitzung über
eine getrennte Verbindung unter Verwendung von RTCP ausgetauscht.
Für UDP verwendet
die RTP-Sitzung einen geradzahligen Zielport und die RTCP-Information
wird über
einen nächsthöheren ungeradzahligen
Zielport übertragen. RTCP
führt verschiedene
Funktionen aus, einschließlich
Bereitstellung einer Rückkopplung
der Qualität
der Datenverteilung, die für
einen Server nützlich
sein kann, um zu bestimmten, ob Netzwerkprobleme lokal oder global
sind, insbesondere für den
Fall einer IP-Gruppenrufübertragung.
RTCP wirkt auch, um einen stabilen Übertragungsschichtidentifizierer
für eine
RTP-Quelle, den CNAME, zu tragen. Da Konflikte oder Programmneustarts
eine Migration von SSRC IDs verursachen können, benötigen Empfänger den CNAME, um jeden Teilnehmer zu
beobachten. Der CNAME kann auch zum Synchronisieren von Strömen mit
Mehrfachbezügen
von verschiedenen RTP-Sitzungen verwendet werden, um beispielsweise
Audio oder Video zu synchronisieren.
-
Für alle Teilnehmer
einer Übertragung
ist es erforderlich, dass sie RTCP-Pakete senden. Die Anzahl der
von jedem Teilnehmer gesendeten Pakete kann in vorteilhafter Weise
abwärts
skaliert werden, wenn die Anzahl von Teilnehmern an einer Sitzung zunimmt.
Dadurch, dass jeder Teilnehmer seine RTCP-Pakete an alle anderen
sendet, kann jeder Teilnehmer die Anzahl der Teilnehmer beobachten. Diese
Anzahl wird wiederum verwendet, um die Rate zu berechnen, mit der
Steuerpakete gesendet werden. RTCP kann verwendet werden, um minimale Sitzungssteuerinformationen
zu übertragen,
wie beispielsweise an der Benutzerschnittstelle anzuzeigende Teilnehmerinformationen.
-
Um
diese Aufgabe umzusetzen, können RTCP-Pakete
in eine der folgenden Kategorien oder Formate fallen:
- – SR:
Senderbericht für Übertragungs-
und Empfangsstatistiken der Teilnehmer, welche aktive Sender sind,
- – RR:
Empfängerbericht
für Empfangsstatistiken von
Teilnehmern, die keine aktiven Sender sind, und in Kombination mit
SR für
aktive Sender, die an mehr als 31 Quellen berichten,
- – SDES:
Quellenbeschreibungselemente, einschließlich CNAME,
BYE: zeigt
ein Ende der Beteiligung an, und
PP: applikationsspezifische
Funktionen.
-
Wie
RTP beginnt jede Form von RTCP-Paketen mit einem gemeinsamen Kopfabschnitt,
der von Subkopfabschnitten mit variablen Längen gefolgt wird. Mehrere
Pakete können
zu einer Form eines zusammengesetzten Pakets verkettet werden und gemeinsam
in einem einzelnen Paket des niedrigeren Schichtprotokolls übertragen
werden. Dies erzeugt einen Bedarf für verschiedenen Zähler und
Zeiger, um die Position von erwarteten Feldern im Strom zu unterscheiden.
-
Es
ist ein Aspekt der vorliegenden Erfindung, die Handhabung von Streaming-Daten
im RTP-Format zu optimieren, und insbesondere das Ausgabe-Streaming
durch Einfügen
einer Richtungsdatei, welche be stimmte Zähler- und Indexzeigerwerte
enthält,
in ein Streaming-Paket zu erleichtern.
-
Das
Ausgabe-Streaming der RTP-Pakete muss in Echtzeit unterstützt werden.
Die Echtzeithandhabung ist ein wichtiger Aspekt des RTP-Protokolls, das den
Bedarf an Puffern oder wenigstens ihre Größe wegen der anhaltenden Natur
des Stroms reduziert. Die Erfindung verwendet eine Variation einer Hinweisgabe,
welche die Hardware direkt mit bestimmten RTP-Paketinformationen
versorgt. Die Hinweisgabe in dieser Form kann das RTP-Streaming
in einem Server durch Entfernen des Erfordernisses, dass der Server
die Medien während
der Übertragung
analysiert, beschleunigen.
-
„Hinweisgabe" ist ein Begriff,
der manchmal verwendet wird, um sich auf Informationen zu beziehen,
die gemeinsam mit komprimierten Video, wie MPEG-4, codiert sind,
die getrennt von den zu komprimierenden Daten gesendet werden und
die typischerweise von einem zugeordneten Gerät verwendet werden, das in
der Lage ist, die Hinweisdaten zu analysieren, um die mit den komprimierten
Videodaten assoziierte Dekomprimierung zu unterstützen.
-
Gemäß der vorliegenden
Erfindung wird eine komplementäre
Informationsdatei als generalisierter Kopfabschnitt und Kopfabschnittblock
zur Verfügung gestellt.
Es ist in diesem Fall für
die zugeordnete Hardware nicht erforderlich, die Hinweisdaten zu analysieren
und mit einem spezifischen Format von vorwärts- und rückwärtsbezogenen Bilddateien umzugehen.
Stattdessen ist die Richtungsdatei eine Folge von Zähler- und
Zeigerwerten, welche als Kennziffern verwendet werden, um RTP-Kopfabschnitt und Paketinformationen
zu lokalisieren.
-
Die
Richtungsdatei unterscheidet sich von einem Dekompressionshinweisgebungsmechanismus
oder ähnlichem
dadurch, dass die Zeigerin formation flexibel repräsentiert
wird, d. h. verschiedene Paketdatenformate repräsentieren kann, um zukünftige Erweiterungen
zu ermöglichen.
Durch die Bereitstellung der Flexibilität in einer Schnittstellendatei können Schwierigkeiten
dadurch entstehen, dass Teile der Streaming-Funktionalität von einem Prozessor, der
dazu programmiert sein kann, verschiedene Formate zu unterscheiden,
zu einem Hardwareelement verlagert werden, in dem die meisten Parameter
fest sind. Das vorliegende Verfahren löst dieses Problem durch Einfügen von
allen erforderlichen Informationen, außer dem Medienobjekt selbst,
in eine komplementäre
Richtungsdatei, welche von der Hardware in Teilen verwendet werden
kann, weil die Richtungsdatei Indexzeiger enthält, die zu Informationen komplementär sind,
die mit bekannten Offsets und anderen Erwartungswerten formatiert
sind.
-
Wenn
eine Mediendatei einen spezifizierten RTP-Pakettyp aufweist, (der
normalerweise durch ein RFC oder einen Kommentarfaden dokumentiert wird,
was zu einer Verfeinerung führt)
auf den der Streamer zugreifen kann, und ansonsten ein Kandidat
für Streaming
ist, wird die Richtungsdatei zuerst durch eine Software erzeugt,
die auf dem Zentralprozessor vorzugsweise im Hintergrund abläuft, wenn Ressourcen
verfügbar
sind.
-
Die
Richtungsdatei ist den Hinweisdaten ähnlich, indem sie dem Streamer
mitteilt, wie das Objekt für
das RTP-Streaming in Pakete aufgeteilt werden soll. Sie ist aber über die
Art und Weise, wie dies durchgeführt
werden soll, viel spezifischer und bewirkt, dass der Zentralprozessor
sogar wenig Wissen über
das systemeigene Medienobjekt aufweist. Das Format einer beispielhaften
Richtungsdatei 45, einer Binärdatei, ist in 4 dargestellt.
-
Unter
Bezugnahme auf 4 ist der generalisierte Kopfabschnitt
nur am Beginn der Datei spezifiziert und gilt für den gesamten Block. Der generalisierte
Kopfabschnitt umfasst:
- – ein Versions/Authentikationsfeld,
welches dem Streamer ermöglicht
zu verifizieren, dass die Richtungsdatei das richtige Format aufweist,
- – ein
Paketgesamtzahlfeld, das die Anzahl von Paketen spezifiziert, welche übertragen
werden, wenn die Gesamtdatei verwendet wird,
- – eine
Richtungsdateikopfabschnittblockgröße, welche die Anzahl von Bytes
spezifiziert, die jedem Kopfabschnittblock in der Richtungsdatei
zugeordnet sind.
-
Ein
Kopfabschnittblock wird für
jedes Paket spezifiziert, das für
die Übertragung
durch die Richtungsdatei 45 spezifiziert ist. Der Kopfabschnittblock weist
für eine
vorgegebene Richtungsdatei 45 eine feste Länge auf.
Der Kopfabschnittblock umfasst:
- – payload.ptr,
eine Datei, welche den Offset der aktuellen Paketnutzlast vom Anfang
des Objekts im Speicher enthält,
- – body.skip,
zeigt an, wie viele Bytes von der aktuellen Warteposition bis zum
Beginn der gültigen RTP-Nutzlast
zu überspringen
sind, wenn überhaupt,
- – body.length,
zeigt die Länge
der RTP-Nutzlast an,
- – header.length,
zeigt die Anzahl von Bytes des RTP-Kopfabschnittfelds an, die für das aktuelle RTP-Paket
zu verwenden ist.
-
Wenn
die Richtungsdatei erzeugt ist, wird sie gespeichert, so dass sie
einem bestimmten Objekt zugeordnet werden kann. Wie bei der Hinweisdatei, können mehrere
Richtungsdateien einem Objekt zugeordnet werden, wenn mehrere Wege,
wie beispielsweise verschiedene Pakettypen oder verschiedene Netzwertattribute
für den
gleichen Pakettyp, vorhanden sind, über welche das Objekt übertragen werden
kann.
-
Eine
Erweiterung dieser Tatsache erlaubt dem Streamer leicht eine Trick-Plag-Funktionalität durch
Erzeugen von Richtungsdateien zu implementieren, die nur auf I-Rahmen
oder nur auf jeden N-ten I-Rahmen zeigen, wobei N auf die Geschwindigkeit eines
schnellen Vorlaufs bezogen ist, der durch die Richtungsdatei 45 spezifiziert
wird.
-
Wenn
eine korrespondierende RTP-Sitzung noch nicht aufgebaut oder eingerichtet
ist, bleibt die Vorrichtung bereit, bis das auf dem Kernprozessor ablaufende
RTPS einen SETUP-Befehl bereitstellt, der vom Endpunkt empfangen
wird. Wenn das RTSP die SETUP-Nachricht empfängt, bestimmt es einen Nachschlagparametersatz,
wie z. B. Quellen- und Ziel-IP-Adressen,
Ports und das Transportprotokoll, von der SETUP-Nachricht und ordnet
einen Verbindungstabelleneintrag für diese Sitzung in einem inhaltsadressierbaren
Speicher CAM zu, der dem Hardwarebeschleuniger zugeordnet ist. Das
Gültigkeitsbit
wird unverzüglich
für die
RTP-Sitzung im CAM gesetzt. Dann erwartet das RTSP eine nachfolgende
PLAY-Anforderung vom assoziierten Steuerungspunkt. Die PLAY-Nachricht
kann einen Zeitbereich für
den Strom zur Wiedergabe enthalten.
-
An
diesem Punkt kann die Sitzung als eingerichtet betrachtet werden
und der Netzwerkbeschleuniger und der Verkehrsmanager sind bereit,
Daten zu liefern. Der Verkehrsmanager weist zwei zugeordnete Warteschlangen
auf, die für
jede RTP-Sitzung verfügbar
sind, weist eine Objektwarteschlange auf, die zum Übertragen
von Daten vom systemeigenen Medienobjekt verwendet wird, und weist
eine Kopfabschnittwarteschlange auf, die zur Übertragung des RTP-Kopfabschnitts
verwendet wird, der aus den Richtungsdateien gelesen wird. Für jedes
zu senden de RTP-Paket benutzt der Verkehrsmanager die Felder der
Richtungsdatei, um den RTP-Kopfabschnitt und die Nutzlast zu extrahieren
und legt die resultierenden Pakete zeitlich fest. Der Verkehrsmanager sendet
die Pakete dann zum Netzwerkbeschleuniger.
-
Der
Netzwerkbeschleunigerbetrieb umfasst die Schritte:
- – Addieren
eines Offsets, der durch den Zentralprozessor bestimmt und als ein
Feld in dem CAM-Verbindungstabelleneintrag für die zugeordnete Übertragung
gespeichert wird, zu dem Sequenznummerfeld des RTP-Kopfabschnitts
des ausgehenden Pakets. Dies ist vorteilhaft, um eine Zufalls-ISS
bereitzustellen, wie sie in RFC 3550 spezifiziert wird.
- – Einstellen
des ausgehenden Zeitstempels auf eine entsprechende Weise. Dies
ist vorteilhaft, um eine Zufalls-IST bereitzustellen, wie sie in
RFC 3550 spezifiziert wird,
- – Erstellen
und Anfügen
(z. B. Voranstellen) eines Schicht-Drei- und eines Schicht-Vier-Kopfabschnitts
an das ausgehende Paket, und
- – Senden
des ausgehenden Pakets an den MAC/PHY-Block.
-
Dieses
Verfahren ermöglicht
es, das Medienobjekt übertragen,
ohne dass der Netzwerkbeschleuniger irgendein Wissen über das
systemeigene Medienobjektformat hat. Da die Richtungsdatei vorzugsweise
durch eine Software erzeugt wird, welche auf einem Zentralprozessor
abläuft,
können
ausgehende Pakettypen leicht durch Software angepasst werden. Zudem
trägt dieses
Verfahren dazu bei, dass es möglich
ist, wiederholende Datenpipelinefunktionen der Streaming-Vorrichtung
vom Steuerprozessor an den mehr hardwareorientierten Netzwerkbeschleuniger zu übertragen.
Diese wiederholenden Datenpipelinfunktionen, die rechnertechnisch
nicht komplex sind, sind gleichwohl von hoher zeitlicher Priorität. Die Erfindung
unterstützt
diese Funktionen im Netz- Werkbeschleuniger
optimal und reserviert die Kapazität und Verarbeitungszeit des
Zentralprozessors für steuerungsorientierte,
weniger häufige
Anforderungen, die von der rechnertechnischen Komplexität profitieren
und etwas schwierig mit den zeitlichen Anforderungen der Datenpipelinefunktionen
der Streaming-Verbindung abzustimmen sind.
-
In Übereinstimmung
mit der Tatsache, dass der Netzwerkbeschleuniger nur wenig oder
kein Wissen über
das Medienobjektformat benötigt,
um die Datenpakete unter Verwendung der Richtungsdatei zu behandeln,
wird vorgezogen, dass die Richtungsinformationen vielmehr in einer
Datei als in einer Spur enthalten sind. Auf diese Weise ist es nicht
erforderlich, dass der Server weiß, wie die Richtungsinformation
für ein
bestimmtes ausgehendes Paket oder einen Block von Paketen extrahiert
wird.
-
Es
sei angenommen, dass wenn die Richtungsdatei 45 erzeugt
ist, das Objekt bereit ist, unter Verwendung der Zeiger- und Zählwerte
des allgemeinen Kopfabschnitts und des Blockkopfabschnitts, die nun
erzeugt sind, für
einen Streaming-Vorgang beliebig oft angefordert zu werden. Der
Streamer benötigt eine
Möglichkeit,
um auf die Richtungsinformation zuzugreifen und diese zu sortieren,
was durch die Verwendung der beschriebenen Zeiger und Zähler komfortabel
möglich
ist. Ein zusätzlicher
Vorteil wird dadurch erzielt, dass die ausgegebene Streaming-Richtungsdatei 45 nicht
zum Endpunkt übertragen
werden muss, welcher die Information nicht benötigt, die in Verbindung mit
der Ausgabe der Streaming-Vorrichtung verwendet wird, welche das
Paket oder den Block von Paketen zum Endpunkt sendet.
-
Es
ist ein Aspekt der Erfindung, die Implementierung einer gesamten
RTSP/RTP-Lösung durch
Bereitstellung einer hybriden Hardware- und Softwarelösung zu
verbessern, anstatt nur eine Hardwarelösung oder nur eine Softwarelösung bereitzustellen.
Eine beliebige ausschließliche Hardwarelösung wäre ziemlich
kompliziert, wenn sie für alle
Steuersituationsszenarien zur Verfügung gestellt werden müsste. Im
Gegensatz dazu würde
eine beliebige ausschließliche
Softwarelösung,
die einen Prozessor und einen Code aufweist, die in der Lage ist,
solche Datenübertragungen
zu handhaben, nicht vollständig
ausgenutzt werden. Für
die meisten Funktionen werden, nachdem der Strom in Gang gesetzt
ist, viele der Funktionen zur fortlaufenden Behandlung von nachfolgenden
Paketen für
einen vorgegebenen Strom unter Verwendung der Funktionen, die wiederholend
sind und keine rechnertechnische Leistung erfordern, auf die gleiche
Weise wie bei einem vorherigen Paket behandelt.
-
Die
vorliegende Erfindung ist Teil einer Hybridlösung, wobei Steuerprozesse
im Wesentlichen durch eine Steuereinheit bzw. einen Steuerschaltkreis
aufgebaut und durchgeführt
werden, die bzw. der ein potentiell komplexes und geeignetes Softwareprogramm
abarbeiten kann, aber einfach Faktoren, Werte und Zeiger aufbaut,
die es einem Netzwerkbeschleuniger ermöglichen, der vorzugsweise kein
reines Hardwarebauelement ist, den Streaming-Vorgang fortzusetzen,
den der Steuerschaltkreis aufgebaut hat, während die Verbindung aktiv
ist.
-
Bezugnehmend
auf 5 ist die Erfindung in einer vorteilhaften Ausführungsform
in ein Datenmanipulationssystem eingebunden, das ein Plattenarraysteuerbauelement
aufweist. Dieses Bauelement kann ein Speichermanagement durchführen und
digitale Medienapplikationen einer Verbraucherelektronik oder andere
Applikationen mit ähnlichen
Eigenschaften zuführen,
wie beispielsweise Kommunikations- und Telekonferenzen. Bei einer
Unterhaltungsanwendung stellt das Bauelement eine Schnittstelle zwischen
einem Heimnetzwerk und einem Bereich eines Datenspeicherbauelements
bereit, das beispielhaft durch Festplattenlaufwerke (HDDs) zum Speichern
von digitalen Medien, wie beispielsweise Audio, Video, Bilder, dargestellt
ist.
-
Das
Bauelement stellt vorzugsweise einen integrierten 10/100/100-Ethernet-MAC-Port
zur Bereitstellung der Schnittstellenfähigkeit zum Heimnetzwerk oder
einem anderen lokalen Netzwerk (LAN) zur Verfügung. Ein peripherer USB-2.0-Anschlussport
wird in vorteilhafter Weise als Vernetzungsmöglichkeit von Medieneingabegeräten, wie
einer Flashkarte, oder als Vernetzungsmöglichkeit von drahtlosen Heimnetzwerken über das
Hinzufügen
eines externen drahtlosen LAN-Adapters bereitgestellt.
-
Das
bevorzugte Datenmanipulierungssystem wendet eine Anzahl von Schichten
und Funktionen für
geteilte Hochleistungszugriffe auf Medienarchive über eine
Beschleunigungsmaschine für
ein hohes Schichtprotokoll zur IP/TCP- und IP/UDP-Verarbeitung und
einen sitzungsbezogenen Verkehrsmanager an. Der sitzungsbezogene
Verkehrsmanager arbeitet als Zentralprozessor, der zusätzlich zum Managen
des RTP-Streamings,
das hier behandelt wird, eine Zuordnung von geteilten Ressourcen,
wie beispielsweise Netzwerkbandbreite, Speicherbandbreite und Diskbereichbandbreite,
entsprechend dem Typ der aktiven Mediensitzung freigibt. Eine Videositzung
erhält
beispielsweise mehr Ressourcen als eine Bildbrowsingsitzung. Des
Weiteren wird die Bandbreite als garantierte Bandbreite für eine zeitkritische Mediensitzung
zugeordnet oder als bestmögliche Bandbreite
für nicht
zeitkritische Anwendung zugeordnet, wie beispielsweise ein Medienarchivvolumenzugriff
oder Multi-PC-Backup-Anwendungen.
-
Das
Datenmanipulierungssystem umfasst Hochleistungs-Streaming mit einem
zugeordneten redundanten Bereich von unabhängigen Platten (RAID). Der
Streaming-RAID-Block kann für
eine fehlergeschützte
Redundanz ausgebildet sein und schützt die im Archiv gespeicherten
Medien gegen den Ausfall einer beliebigen einzelnen HDD. Die HDDs
können
serielle ATA(SATA)-Disks sein, hier umfasst das System beispielsweise
acht SATA-Disks mit einer Kapazität, um bis zu 64 gleichzeitige bidirektionale
Ströme über einen
Verkehrsmanager/Verkehrsverwalterblock zu bearbeiten.
-
Das
Datenmanipulierungssystem in 7 ist hinsichtlich
der Erfindung dargestellt und wird nur in Bezug auf die Erfindung
allgemein beschrieben. Es gibt zwei separate Datenpfade innerhalb
des Gerätes,
nämliche
den Empfangspfad und den Sendepfad. Der „Empfangspad" berücksichtigt
die Richtung, durch die Verkehr von einem anderen externen Gerät zum System
fließt,
und der „Sendepfad" entspricht der entgegengesetzten
Richtung des Datenflusses, dessen Pfad an einem bestimmten Punkt von
einer Quelle in Richtung eines Ziels entsprechend dem Kontext eines
vorgegebenen Stroms führt.
-
Der
Prozessor (ULP) für
eine hohe Schicht ist in bidirektionaler Datenverbindung entweder
mit einem Gigabit-Ethernet-Steuerschaltkreis (GEC) oder dem peripheren
Verkehrssteuerschaltkreis (PTC) gekoppelt. Der PTC bildet direkt
eine Schnittstelle zum Verkehrsmanager/Verkehrverwalter (TMA) für nicht
paketbasierte Übertragungen.
Die Paketübertragungen
werden wie nachfolgend erläutert
durchgeführt.
-
Im
Empfangspfad empfängt
entweder der GEC- oder PTC-Block typischerweise die Ethernetpakete
von einer physikalischen Schnittstelle, beispielsweise zu oder von
einem größeren Netzwerk. Der
GEC führt
verschiedene ethernetprotokollbezogene Überprüfungen, einschließlich Paketintegrität, Gruppenrufadressenfilterung
usw. durch. Die Pakete werden für
eine weitere Verarbeitung an den ULP-Block weitergeleitet.
-
Der
ULP analysiert die Kopfabschnittfelder der Schichten 2, 3 und 4,
welche extrahiert werden, um eine Adresse zu bilden. Ein Verbindungsnachschlagvorgang
wird dann basierend auf der Adresse durchgeführt. Unter Verwendung des Nachschlageergebnisses
trifft der ULP eine Entscheidung, wohin das empfangene Paket gesendet
wird. Ein ankom mendes Paket von einer bereits aufgebauten Verbindung
wird mit einer vorbestimmten Warteschlangen-ID (QID) für Verkehrseinreihungsverwendungszwecke
markiert, welche durch den TMA verwendet werden. Ein Paket von einer
unbekannten Verbindung erfordert weitere Nachforschungen durch einen Applikationsprozessor
(AAP). Das Paket wird mit einer speziellen QID markiert und zum
AAP geroutet. Das endgültige
Ziel eines ankommenden Pakets nach dem AAP kann entweder die Festplatten
zum Speichern, wenn es Medieninhalte trägt, oder der AAP für weitere
Untersuchungen sein, wenn es Steuernachrichten trägt oder
das Paket durch den AAP nicht erkannt werden kann, was potentiell
zum Einrichten einer neuen Warteschlangen-ID führt. Bei einer beliebigen der
oben genannten Bedingungen wird das Paket zum TMA-Block gesendet.
-
Der
TMA speichert den ankommenden Verkehr in dem geteilten Speicher.
Für den
Fall einer Medienobjektübertragung
werden die ankommenden Objektdaten im Speicher gespeichert und zur
Speicherung auf einer Disk zu einem RAID-Decoder- und Codierer(RDE)-Block übertragen.
Der TMA verwaltet den Speicherprozess durch Bereitstellen der passenden
Steuerinformation an den RDE. Der Steuerverkehr, der für eine AAP-Überprüfung bestimmt
ist, wird ebenfalls im geteilten Speicher gespeichert und dem AAP
wird ein Zugriff erteilt, um die Pakete im Speicher zu lesen. Der
AAP benutzt diesen Mechanismus auch, um beliebige der Pakete, die
außerhalb
der Reihenfolge empfangen werden, neu zu ordnen. Ein Teil des geteilten
Speichers und der Disks enthalten Programmanweisungen und Daten
für den
AAP. Der TMA verwaltet den Zugriff auf den Speicher und die Disk
durch Übertragen
von Steuerinformationen von der Disk zum Speicher und vom Speicher
zur Disk. Der TMA gibt den AAP auch zum Einfügen von Daten und zum Extrahieren
von Daten in bzw. aus einem existierenden Paketstrom frei.
-
Im
Sendepfad verwaltet der TMA die wiederholenden Objektanforderungen
von der Disk, die als zum Senden über den Applikationsprozessor
oder die Netzwerkschnittstelle erforderlich bestimmt werden. Auf
den Empfang einer Medienwiedergabeanforderung vom Applikationsprozessor
empfängt
der TMA die von den Disks übertragenen
Daten über
die MDC- und RDE-Blöcke
und speichert sie im Speicher. Der TMA legt dann den zeitlichen
Ablauf der Daten zum ULP-Block entsprechend der erforderlichen Bandbreite
und dem Medientyp fest. Der ULP schließt die Daten für jedes
ausgehende Paket in die Ethernet- und L3/L4-Kopfabschnitte ein. Die Pakete werden
dann basierend auf dem spezifizierten Ziel-Port entweder zum GEC-
oder PTC-Block gesendet.
-
Für ankommende
Pakete auf dem Empfangsdatenpfad kann ein Verbindungsnachschlagfunktionsteil
des Netzwerkbeschleunigers eine Adressenbildung, einen CAM-Tabellennachschlag und
Verbindungstabellennachschlagfunktionsblöcke umfassen. Die CAM-Nachschlagadresse
wird in Teilen als ein Ergebnis einer Information gebildet, die aus
dem ankommenden Paketkopfabschnitt extrahiert wird. Die bestimmten
der zu extrahierenden Kopfabschnittfelder sind vom verwendeten Verkehrsprotokoll
abhängig.
Die zu bildende Adresse hat eine eindeutige Verbindung zu repräsentieren.
Für den
populärsten
Internetverkehr, der beispielsweise über IP-V4- und TCP/UDP-Protokolle
ausgeführt wird,
definieren eine Quellen-IP-Adresse, eine Ziel-IP-Adresse, eine TCP/UDP-Quellenportnummer, eine
TCP/UDP-Zielportnummer und ein Protokolltyp, welche als „fünf-Tupel" des Paketkopfabschnitts
bezeichnet werden, eine eindeutige Verbindung. Andere Felder können verwendet
werden, um eine Verbindung zu bestimmen, wenn ein Paket von einem
anderen Verkehrsprotokolltyp ist, wie beispielsweise einem IP-V6.
Geeignete Steuerungen wie Flags, Identifizierungscodes können referenziert
werden, wenn mehrere Protokolle unterstützt werden, um aus dem System
ein hierarchisches „protokollbewußtes" zu machen. Der Prozess
kann beispielsweise in drei Stufen aufgeteilt werden, wobei jede
Stufe mit ei nem Niveau eines unterstützten Protokolls korrespondiert. Eine
erste Stufe kann die Versionsnummer des L3-Protokolls in einem Feld überprüfen, das
während des
Kopfabschnittanalyseprozesses extrahiert und in einem Informationspuffereintrag
für ein
ankommendes Paket als Schritt im Adressenbildungsvorgang gespeichert
wird. Für
die zweite und dritte Stufe im Adressenbildungsprozess wird eine
zusammengesetzte Hardwaretabelle bereitgestellt. Die Anzahl von Tabelleneinträgen in jeder
Stufe ist von der Stufe, in welcher sich die Tabelle befindet, und
der Anzahl von verschiedenen Protokollen abhängig, die in jeder Stufe unterstützt werden.
Jeder Tabelleneintrag besteht immer aus einem inhaltsadressierbaren
Speicher(CAM)-Eintrag und einem Positionsnummerregister. Jedes Positionsregister
besteht immer aus einem Paar von Offsetumfangsfeldern. Jeder CAM-Eintrag
speichert den spezifischen Protokollwert für das korrespondierende Positionsregister.
Ein Offset spezifiziert die Anzahl von Bytes, welche vom Beginn
des Paketkopfabschnitts bis zum zu extrahierenden Feld zu überspringen
sind. Das Umfangsfeld spezifiziert die Anzahl von Halbbytes, die
zu extrahieren sind. Die gleiche Adresse wird verwendet, um auf das
CAM-Feld und das Positionsregister zuzugreifen.
-
Für ausgehende
Paketausgaben verwendet die Erfindung Richtungsdateien, wie beschrieben,
die in einem Speicher gebildet werden, auf den der Zentralprozessor
an jedem Punkt der Konfiguration zugreifen kann.
-
Die
Erfindung wurde in Verbindung mit beispielhaften Ausführungsformen
offenbart, es sollte aber zur Bestimmung des Schutzumgangs, für den Monopolrechte
beansprucht werden, auf die beigefügten Ansprüche anstatt auf die Beschreibung
der Ausführungsbeispiele
Bezug genommen werden.
-
Zusammenfassung
-
Eine
hardwarebeschleunigte Streaming-Anordnung, insbesondere für ein RTP-Echtzeitprotokoll-Streaming,
verwendet eine Richtungsdatei, welche Zeiger, Kopfabschnittlänge und
Offsets für
einen über
ein netzwerkbeschleunigtes Streaming-System zu sendenden Block mit
einem oder mehreren Datenpaketen bestimmt. Die Richtungsdatei wird
durch einen Steuerprozessor eingerichtet, der beispielsweise im
Hintergrund arbeitet, und gespeichert, um Informationen bereitzustellen,
welche es ermöglichen,
gewisse Informationen zu bestimmen, welche Kopfabschnittgröße und Zeiger
auf RTP-Nutzlasten und andere Daten umfassen, ohne während der
Ausgabe von Daten bezogen auf den Medientyp oder das betroffene
Protokoll eine Analyse zu erfordern. Dies befreit den Steuerprozessor
von Funktionen, die anderenfalls Rechenleistung binden würden, und
ermöglicht
es, den Ausgabeprozess auf eine wiederholende Art fortzuführen, insbesondere
dadurch, dass Funktionen soweit auf Hardwareelemente verlagert werden,
um die Geschwindigkeit zu erhöhen
und um Rechenleistung des Steuerprozessors für Steuerfunktionen zu reservieren,
die komplexer sind, aber selten und/oder nicht so zeitkritisch für das Streaming in
Echtzeit sind.