-
Hintergrund
der Erfindung
-
Technisches
Gebiet
-
Die
Erfindung bezieht sich auf ein Kombinieren eines Netzwerkstapels
mit einem Modemkern für
eine Verwendung bei sowohl Computer- als auch Nicht-Computer-Anwendungen.
Insbesondere bezieht sich die Erfindung auf ein internetbewusstes
Modem, das irgendeine Anzahl von Punkt-Zu-Punkt-Vorrichtungen mit den Netzwerkprotokollen
kombiniert, die notwendig sind, um in dem Internet zu kommunizieren,
wobei diese Vorrichtungen herkömmliche
Modems verschiedener Geschwindigkeit von 2400 kbps bis 56 kbps,
ISDN-Modems, neuere xDSL-Modems und digitale zelluläre Modems
umfassen.
-
Beschreibung
des Stands der Technik
-
Computermodems
wurden in einer Zeit entwickelt, als die meisten Verbindungen zu
proprietären
Online-Diensten, interaktiven Terminals, Nachrichtenbrettdiensten
(BBSs = Bulletin Board Services) oder Firmennetzwerksystemen hergestellt
wurden. An sich war es notwendig, Verbindungsprotokolle in einer
Software zu implementieren, weil zu der Zeit eine Anzahl derartiger
Protokolle existierte. Diese Protokolle umfassten x-Modem, y-Modem,
z-Modem, Kermit und interaktive schriftzeichenbasierte Schnittstellen.
-
Heute
wird mit einer Beliebtheit des Internet eine große Mehrheit von Modems nun
ausschließlich
verwendet, um eine Verbindung zu ISPs herzustellen, die wiederum
den Benutzer mit dem Internet verbinden. Deshalb gibt es nun einen
vorherrschenden Satz von Verbindungsprotokollen. Derartige Protokolle
werden für die
meisten Modemverbindungen verwen det. Folglich gibt es einen echten
Bedarf und einen Vorteil bei einem Entwerfen eines Modems, das internetbereit
ist.
-
Die
Verbindungsprotokolle, die durch das Internet verwendet werden,
und die hierarchische Beziehung derselben sind in 1 gezeigt.
Diese Protokolle umfassen TCP 10, IP 11, UDP 13 und
PPP 12. Ein Optimieren eines Modems für eine Verwendung mit dem Internet
bietet viele Vorteile, einschließlich einer reduzierten Übertragungslatenz,
reduzierter Wartungsanforderungen, niedrigerer Verarbeitungsanforderungen von
der CPU des Systems und optimierter Übertragungsraten.
-
Aktuelle
Computersysteme behandeln ein Modemuntersystem als eine serielle
Vorrichtung. Ein Blockdiagramm eines existierenden Systems ist in 2 gezeigt.
Bei einem derartigen System wird eine Internetanwendung, wie beispielsweise
ein Web-Browser 21, in einer Software 19 auf der
Haupt-CPU 22 ausgeführt. Diese
Anwendung wiederum ruft den Computernetzwerkstapel 23 auf,
der ebenfalls in einer Software implementiert ist. Der Netzwerkstapel
implementiert die Protokolle TCP, IP, UDP und PPP. Sobald die Daten
verarbeitet wurden, werden die resultierenden Pakete durch die CPU über den
Computerbus 28 zu einer Seriell-Tor-Schnittstelle 27 in
dem Modemsystem 30 gesendet. Das Modemsystem, z. B. eine
Modemkarte 18, wird durch den Host-Prozessor als eine serielle
I/O-Vorrichtung angesehen. Diese Vorrichtungen nehmen gewöhnlich Daten
in Bytemengen an und platzieren dieselben in einem ausgehenden FIFO 24.
Diese FIFOs können irgendwo
zwischen 8 Byte und 64 Byte liegen. Die CPU schreibt normalerweise
eine feste Anzahl von Bytes, wartet dann darauf, dass die serielle
I/O-Vorrichtung dieselbe benachrichtigt, dass alle Daten gesendet
wurden und dass dieselbe bereit ist, mehr Daten anzunehmen. Diese
Benachrichtigung wird häufig über Systemunterbrechungen
vorgenommen. Die Paketdaten werden, nachdem dieselben in den FIFO
geschrieben sind, mit der ausgehenden Datenrate dem Modemkern 25 und
somit der Telefonleitung 29 zugeführt.
-
Für empfangene
Daten platziert das Modem zuerst alle eingehenden Pakete in den
Eingangs-FIFO 26. Die Vorrichtung kann dann konfiguriert
sein, um die Host-CPU zu unterbrechen, wenn irgendwelche Daten verfügbar sind
oder wenn die empfangenen Daten einen gewissen Pegel (d. h. 16 Byte)
erreichen. Wenn dieselbe benachrichtigt ist, liest die CPU alle
Daten in dem Eingangs-FIFO und speichert die Daten temporär in einem
Puffer in einem Systemspeicher (nicht gezeigt). Das untere Protokoll,
PPP (siehe 1), kann anfangen, die Daten
zu verarbeiten, aber dasselbe kann die Daten nicht zu der nächsten Schicht
hinaufleiten, bis das gesamte Paket empfangen ist.
-
Sobald
das gesamte Paket empfangen ist, leitet der PPP-Abschnitt des Softwarenetzwerkstapels
die Daten hinauf zu dem zweiten Protokoll (IP). Die IP-Software
verarbeitet dann den IP-Kopfblock und leitet nach einem Verifizieren
der Kopfblockprüfsumme
das Paket zu der TCP-Handhabungseinrichtung. Die TCP-Handhabungseinrichtung
prüft dann
die Prüfsumme
derselben und leitet die Daten zu der geeigneten Anwendung weiter,
wie es durch die TOR-Nummer (PORT-Nummer) in dem TCP-Kopfblock spezifiziert
ist.
-
Weil
die meisten Modems in Computern heute verwendet werden, um eine
Verbindung mit dem Internet herzustellen, macht dasselbe es ökonomisch
machbar und praktisch, ein Modem für diese Umgebung zu optimieren.
Was dies nach sich zieht, ist ein Einbetten der Fähigkeit
in dem Modemsystem, die nötigen
Netzwerkprotokolle zu handhaben, und eine Verwendung der Kenntnis
der Protokolle, um die Übertragungscharakteristika
des Modems abzustimmen. Dies ist das gleiche Grundprinzip hinter
der Beliebtheit von Windows-Beschleunigergrafikkarten.
Weil Grafikchiphersteller wissen, dass eine große Mehrheit von PCs heutzutage
das Betriebssystem Microsoft Windows® ausführen, stellen
dieselben die Architekturen derselben fein ein, um die Leistungsfähigkeit
in dieser Umgebung zu verbessern. Dies wäre nicht praktisch, falls es
eine Anzahl von Betriebssystemen mit unterschiedlichen Grafik-APIs
gäbe, jede
mit unterschiedlichen Grafik-APIs gäbe, jede mit einem erheblichen
Marktanteil. Bei dem einen überwiegenden
Standard jedoch haben sich die meisten Grafikkartenhersteller entschieden,
die Software derselben für
die Windows-Umgebung zu optimieren, obwohl heutige Pentiumklasse-Prozessoren
sehr wohl zum Handhaben der Grafikaufgaben ohne eine externe Unterstützung in
der Lage sind. Dies ist so, weil die Funktion unter den meisten
Umständen
erforderlich ist und es vorteilhaft ist, den Host-Prozessor zu entlasten,
so dass derselbe so viel mehr MIPs aufweist, um Standardanwendungen
auszuführen.
-
Eine ähnliche
Situation besteht nun auf dem Modemkartenmarkt. Es wäre deshalb
vorteilhaft, den Internetnetzwerkprotokollstapel zusammen mit einer
speziellen Logik einzubetten, wodurch ermöglicht wird, dass die Modemvorrichtung
internetbereit wird, derart, dass das Modemsystem viel von der Netzwerkprotokollverarbeitung
von der Haupt-CPU entlädt,
während
die Gesamtleistungsfähigkeit
des Kommunikationssystems verbessert wird.
-
PORTABLE
COMPUTER AND COMMUNICATIONS ASSOCIATION – MODEM STANDARDS COMMITTEE: „The IP
Modem Interface Standard" PCCA
DRAFT, [Online] 5. Juni 1998, XP002120914 (ftp://ftp.wrp.com/pcca/ipmd0506.pdf>) offenbart eine Architektur,
die eine DCE-Vorrichtung umfasst, die unter Verwendung von V.24-Schaltungen
mit einer DTE-Vorrichtung verbunden ist. Zum Implementieren eines IP-Modems
weist die DCE einen Internetprotokollstapel auf.
-
Die
WO 97/17764 bezieht sich auf eine Vorrichtung für einen globalen Netzwerkkommunikator,
der eine anwendungsspezifische Kommunikationsvorrichtung im Wesentlichen
lediglich für
Globalnetzwerkkommunikationen umfasst und eine anwendungsspezifische
Globalnetzwerkbenutzerschnittstelle umfasst. Eine Netzwerkprotokollverarbeitungsschaltungsanordnung
ist für
eine Kommunikation mit dem globalen Netzwerk und zum Formatieren
von Daten zu einem erforderlichen Protokoll, das durch das globale
Netzwerk eingesetzt wird, und zum Übersetzen von Daten, die von
dem globalen Netzwerk empfangen werden, in ein Format wirksam, das
für die
Benutzerschnittstelle annehmbar ist. Eine Kommunikationsleitungsschnittstelle
verbindet die Netzwerkprotokollverarbeitungsschaltungsanordnung
mit dem globalen Netzwerk und umfasst logische und physische Schnittstellenvorrichtungen
und Modulations- und Demodulationsvorrichtungen für Informationen, die
zu dem globalen Netzwerk gesendet werden, bzw. Informationen, die
von dem globalen Netzwerk empfangen werden, und eine Netzwerkzugriffsaktivierungsschaltungsanordnung
zum Einleiten einer Kommunikation zwischen dem Kommunikator und
dem globalen Netzwerk.
-
Die
Erfindung bettet den Internetnetzwerkprotokollstapel zusammen mit
einer speziellen Logik ein, wodurch ermöglicht wird, dass die Modemvorrichtung
internetbereit wird. Folglich entlädt das Modemsystem viel von
der Netzwerkprotokollverarbeitung von der Haupt-CPU und verbessert
die Gesamtleistungsfähigkeit
des Kommunikationssystems. Die Erfindung schafft ein internetbewusstes
Modem gemäß Anspruch
1 und ein Verfahren zum Herstellen eines derartigen Modems gemäß Anspruch
2, wobei das Modem irgendeine Anzahl von Punkt-Zu-Punkt-Vorrichtungen
mit den Protokollen kombiniert, die nötig sind, um in dem Internet
zu kommunizieren, wobei diese Vorrichtungen herkömmliche Modems verschiedener
Geschwindigkeit von 2400 kbps bis 56 kbps, ISDN-Modems, neuere xDSL-Modems
und digitale zelluläre
Modems umfassen.
-
Senden von
Daten
-
Bei
einem System, das mit einem internetbereiten Modem ausgerüstet ist,
richtet die Internetanwendung zuerst die Sockelparameter ein. Diese
umfassen die Bestimmungstornummer, den Verbindungstyp (TCP/UDP),
die TOS-Anforderungen (TOS = Type-Of-Service = Diensttyp) und die
Bestimmungs-IP-Adresse. Wenn
der Netzwerkstapel an einer internetbereiten Modemkarte diese Informationen
erhält,
versucht derselbe, eine Verbindung durch ein Aussenden eines SYN-Pakets
zu beginnen. Dieses Paket wird zu der IP-Maschine geleitet, die
den IP-Kopfblock anbringt und die IP-Kopfblock-Prüfsumme
berechnet. Das Paket wird dann zu der PPP-Handhabungseinrichtung geleitet, die
den PPP-Kopfblock anbringt, die Daten verkapselt, und die PPP-Prüfsumme beifügt. Nach
einer PPP-Einkapselung wird das resultierende Netzwerkpaket durch
den Ausgangs-FIFO hindurch zu dem Modemkern gesendet. Für dieses
Paket gibt die TCP-Maschine dem Paketanalysatorblock an, dass dasselbe
ein SYN-Paket ist. Der Paketanalysator gibt dann dem Modem an, dass
dieses ein alleinstehendes Paket ist und dass dasselbe unmittelbar
gesendet werden kann. Auf ein Empfangen dieser Informationen hin
sendet das Modem das Netzwerkpaket aus, ohne zuerst die üblichen
50 ms abzuwarten, um zu sehen, ob zusätzliche Informationen unterwegs
sind.
-
Nachdem
der Bestimmungssockel ein Rück-SYN-ACK-Paket
sendet, wird ein ACK-Paket von der Modemkarte gesendet. Dieses Paket
folgt den gleichen Schritten wie diesen für das SYN-Paket. An diesem Punkt steht die Sockelverbindung
und die Anwendungssoftware (wie beispielsweise ein Web-Browser)
wird benachrichtigt. Die Anwendung kann nun die Daten derselben
direkt zu dem Modem in einem Datenpaketformat senden. Bei diesem
Beispiel, bei dem die Anwendung ein Web-Browser ist, kann die Anwendung eine
HTTP-Anforderung direkt zu dem Modemsystem über eine Paketschnittstelle
senden, gegenüber
der Seriell-Tor-I/O-Schnittstelle bei einem regulären Modemsystem.
Datentransporte im DMA-Stil können
zu diesem Zweck verwendet werden. Bei diesem Verfahren ist ein Datenbytezählwert in
die Paketschnittstelle programmiert. Daten können dann automatisch von einem
Speicher in eine Speicherkarte übertragen
werden, ohne einen weiteren Eingriff von der Host-CPU. Nachdem alle
Daten übertragen
wurden, kann eine Unterbrechung von der Modemkarte zu der Host-CPU
gesendet werden, wobei angegeben wird, dass der Datentransfer abgeschlossen
ist.
-
Wenn
die Daten bei der Modemkarte ankommen, werden dieselben (bei diesem
Beispiel) zu einem TCP-Datenausgangspuffer gesendet. Nachdem alle
Daten empfangen sind oder wenn die maximale Datengröße pro Paket
empfangen wurde, beginnt der TCP-Block ein Berechnen der Prüfsumme.
Das Paket wird in der gleichen Weise wie das SYN-Paket eingekapselt.
Parallel dazu gibt die TCP-Maschine dem Paketanalysatorblock an,
dass das Bestimmungstor für
das Paket 80 ist, was das gut bekannte HTTP-Tor ist. Der
Paketanalysator weiß dann,
dass es nicht mehr Daten gibt und das Modem wieder das aktuelle
Paket unmittelbar senden sollte.
-
Empfangen
von Daten
-
Bei
einem Empfangen von Netzwerkpaketen werden die Daten von dem Modemkern
durch den Eingangs-FIFO zu der PPP-Maschine gesendet, die den PPP-Kopfblock
syntaktisch analysiert, die Daten entkapselt und eine laufende Prüfung an
dem Paket für
Prüfsummenberechnungen
beginnt. Falls die Maschine bestimmt, dass die eingekapselten Daten
ein IP-Paket sind,
gibt dieselbe die IP-Maschine frei, und alle Daten nach dem PPP-Kopfblock
werden zu der IP-Maschine weitergeleitet. Die IP-Maschine analysiert
den IP-Kopfblock syntaktisch, prüft
die Prüfsumme,
und sendet, falls dieselbe bestimmt, dass das eingekapselte Protokoll TCP
ist, dann alle Daten nach dem IP-Kopfblock zu der TCP-Maschine.
Die TCP-Maschine analysiert dann den TCP-Kopfblock syntaktisch und
sendet den Datenabschnitt zu der Sicherheitsschicht. Falls die Daten HTML-Daten
sind, können
dieselben durch eine Bewertungsprüfung geleitet werden, die Bewertungskennungen
von Seiten syntaktisch herausanalysiert. Falls die Seite eine Bewertung
unter oder gleich der Modemkarteneinstellung aufweist, dann dürfen die
Daten passieren. Falls die Bewertung die Einstellung an der Karte überschreitet,
wird anstelle dessen eine Nachricht weitergeleitet, die solches
angibt. Falls die Seite keine Bewertungen enthält, kann ein Bit gesetzt werden,
um die Seite entweder durchzu lassen oder zu blockieren. Alle Nicht-HTML-Daten
werden direkt zu dem TCP-Datenpuffer geleitet.
-
Wenn
die Daten in den Puffer geschrieben werden, wird ein laufender Zählwert gehalten,
um zu sehen, wie viele Daten empfangen wurden. An dem Ende des Netzwerkpakets
kann dann, falls die PPP-Prüfsumme angibt,
dass das gesamte Paket ohne Fehler empfangen wurde, eine Unterbrechung
zu der Host-CPU erzeugt werden. Die Anwendung kann dann den empfangenen
Datenzählwert
lesen und eine DMA-Übertragung
programmieren, um Daten von dem TOP-Puffer in einen Hauptspeicher
zu übertragen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm, das Verbindungsprotokolle, die durch das Internet
verwendet werden, und die hierarchische Beziehung derselben zeigt;
-
2 ist
ein Blockdiagramm, das ein typisches Modemuntersystem zeigt;
-
3 ist
ein schematisches Blockdiagramm, das ein internetbereites Modemsystem
gemäß der Erfindung
zeigt;
-
4 ist
ein schematisches Blockdiagramm, das ein Modem mit einem vollen
Netzwerkstapel gemäß der Erfindung
zeigt;
-
5 ist
ein Blockschema, das eine PPP-Funktion gemäß der Erfindung zeigt;
-
6a ist
ein schematisches Blockdiagramm, das ein Modem und eine Netzwerkkarte
des Stands der Technik zeigt;
-
6b ist
ein schematisches Blockdiagramm, das ein Modem gemäß der Erfindung
und eine verbesserte Ethernet-Netzwerkkarte zeigt;
-
7 ist
ein schematisches Diagramm, das Felder zeigt, die bei einem PPP-Protokollpaket
verwendet werden, um eine Latenz zu bestimmen, gemäß der Erfindung;
-
8 ist
ein schematisches Blockdiagramm, das eine Optimierung basierend
auf TOS gemäß der Erfindung
zeigt;
-
9 ist
ein schematisches Blockdiagramm, das eine Optimierung basierend
auf einem Bestimmungstor gemäß der Erfindung
zeigt;
-
10 ist
ein schematisches Blockdiagramm, das eine Optimierung basierend
auf einem Paketzustand gemäß der Erfindung
zeigt;
-
11 ist
ein schematisches Blockdiagramm, das kombinierte Latenztabellen
gemäß der Erfindung zeigt;
-
12 ist
ein schematisches Blockdiagramm, das ein verbessertes Modemsystem
gemäß der Erfindung
zeigt;
-
13 ist
ein schematisches Blockdiagramm, das einen Datenfluss eines empfangenen
Pakets durch eine HTML-Abhörvorrichtung
gemäß der Erfindung
zeigt; und
-
14 ist
ein schematisches Blockdiagramm, das eine HTML-Abhörvorrichtung
gemäß der Erfindung zeigt.
-
Detaillierte
Beschreibung der Erfindung
-
Die
Erfindung sieht ein internetbewusstes Modem vor, das irgendeine
Anzahl von Punkt-Zu-Punkt-Vorrichtungen mit den Netzwerkprotokollen
kombiniert, die nötig
sind, um in dem Internet zu kommunizieren, wobei diese Vorrichtungen
herkömmliche
Modems verschiedener Geschwindigkeit von 2400 kbps bis 56 kbps, ISDN-Modems,
neuere xDSL-Modems und digitale zelluläre Modems umfassen. Die Erfindung
bettet den Internetnetzwerkprotokollstapel zusammen mit einer speziellen
Logik ein, wodurch ermöglicht
wird, dass die Modemvorrichtung internetbereit wird. Folglich entlädt das Modemsystem
viel von der Netzwerkprotokollverarbeitung von der Haupt-CPU und
verbessert die Gesamtleistungsfähigkeit
des Kommunikationsuntersystems.
-
Die
Erfindung sieht mehrere Technologien vor, die eine Modemleistungsfähigkeit
und -effizienz bei einer Verwendung mit Internetprotokollen verbessern.
Diese Technologien umfassen:
- • blockbasierte
Kommunikation,
- • Latenz-Optimierung,
- • reduzierte
Verarbeitungsleistung,
- • reduzierte
Energieanforderungen und
- • Sicherheitsverbesserungen.
-
Reduzierung
von Datenübertragungsmehraufwand
-
Modems
kommunizieren heute alle über
serielle Tore. Diese serielle Kommunikation weist mehrere Leistungsfähigkeitsnachteile
gegenüber
anderen Kommunikationsvorrichtungen auf, wie beispielsweise Ethernet-Adaptern,
die durch ein Senden und Empfangen von Datenblöcken über DMA (Direct Memory Access
= Direktspeicherzugriff) mit der Host-CPU kommunizieren.
-
Serielle Kommunikationen
-
Eine
serielle Kommunikation unter Verwendung einer älteren seriellen Hardware (z.
B. UARTs) erfordert eine Unterbrechung für jedes gesendete oder empfangene
Schriftzeichen. Dies bewirkt so viel Mehraufwand, dass es nicht
möglich
ist, mit Geschwindigkeiten über
19200 bps zu kommunizieren, ohne bei den meisten Computersystemen
Daten fallen zu lassen. Eine serielle Hardware einer zweiten Generation
(z. B. der 16550 UART und die Derivate desselben) sind in der Lage,
bis zu 16 Byte bei einem Senden und Empfangen zu Puffern, und können Unterbrechungen
verzögern,
bis ein Puffer einen bestimmten Pegel erreicht. Dies reduziert die
Anzahl von Unterbrechungen, die erforderlich sind, um Daten zu und
von dem Modem zu übertragen.
Dies ermöglicht,
dass moderne Modems serielle Datenraten von 56000 bps bis 230400
bps erreichen, ohne bei den meisten CPUs Daten zu verlieren.
-
Obwohl
eine serielle Hochgeschwindigkeitskommunikation unter Verwendung
einer seriellen Hardware der zweiten Generation nun möglich ist,
können
bei diesen höheren
Datenraten serielle Kommunikationen eine merkliche Verschlechterung
bei einer Systemleistungsfähigkeit
bewirken, besonders wenn das Computersystem internetfähige Action-Spiele oder Multimediakommunikationsprogramme
ausführt.
Tausende von Unterbrechungen pro Sekunde sind bei den höheren Datenraten
erforderlich (siehe Tabelle 1 unten). Tabelle
1. Beispiel einer Anforderung einer seriellen Unterbrechung
-
Jede
Unterbrechung benötigt
eine Unterbrechungsdienstroutine, um Daten zu/von der seriellen
Hardware und zu/von dem Betriebssystem des Computers zu lesen und
zu schreiben. Diese Unterbrechungsroutinen lesen und schreiben zu
I/O-Toren, die Systemressourcen
nicht effizient verwenden.
-
Optimierung unter Verwendung
von Blockübertragungen
-
Es
gab Gespräche über einen
UART einer nächsten
Generation, der entweder 32- oder 64-Byte-Puffer aufweisen würde, um
die Anzahl von Unterbrechungen und eine Belastung an einem System
zu reduzieren. Während
dies eventuell hilfreich ist, haben die Erfinder erkannt, dass die
korrekte Lösung
darin besteht, das Modem für
Internetprotokolle zu optimieren und Daten als Blöcke von
Datenpaketen zu übertragen.
-
Eine
blockbasierte Kommunikation zu/von Modems wurde bisher nicht betrachtet,
weil die Internetprotokolle, die entworfen sind, um ein Modemeine
serielle Vorrichtung schnittstellenmäßig zu verbinden, seriell-basiert
sind (SLIP/PPP) und herkömmlicherweise
in dem Betriebssystem des Computersystems implementiert sind. Unter
Verwendung der hierin beschriebenen Erfindung ist es vorteilhaft,
die Netzwerkstapelprotokolle von dem Computerbetriebssystem in das
Modem zu bewegen. Die Schichten des Netzwerkprotokolls, die in einer
Hardwarevorrichtung gemäß der Erfindung
implementiert sein können,
können
von nur der PPP-Schicht bis hin zu der IP-, der TCP- und der UDP-Schicht
reichen.
- Beispiel: blockbasierte Unterbrechungsanforderung:
unter
der Annahme eines durchschnittlichen IP-Pakets von 100 Byte:
25600
Bps/100 = 256 Unterbrechungen pro Sekunde.
-
Wie
es bei dem obigen Beispiel gezeigt ist, reduziert ein Übertragen
von Blöcken
anstelle von Brocken von Schriftzeichen, wie bei der seriellen Lösung, die
Anzahl von erforderlichen Unterbrechungen. Ein zusätzlicher
Vorzug besteht darin, dass die Übertragungsroutine
einen Direktspeicherzugriff (DMA) verwenden kann, um Daten zu leiten,
anstelle eines langsameren I/O-Tor-Pumpens. Eine aktuelle Seriell-Tor-Hardware und -Software
unterstützt
keinen DMA.
-
Dies
ermöglicht
die Entwicklung einer Software, die schnellere, effizientere Datenhandhabungsroutinen
erzeugen kann, weil die Host-CPU eines Handhabens des Übertragens
einzelner Bytes von Daten erleichtert ist.
-
Reduzierte
Latenz
-
Sobald
das Modem weiß,
dass dasselbe es mit IP-Paketen zu tun hat, weist dasselbe eine
Kenntnis dessen auf, wo Daten einheiten anfangen und enden. Modemprotokolle,
wie beispielsweise V.42 und V.42 bis, können optimiert sein, um diese
Kenntnis auszunutzen.
-
V.42
weist eine veraltete Ansicht dessen auf, welche Art von Daten über ein
Modem getragen wird, aber falls der Netzwerkstapel zusammen mit
einem Modemkern eingebettet ist, kann derselbe dem Modemkern das
Ende von Dateneinheiten angeben. Der Modemkern kann dann die V.42-Pakete
desselben entsprechend segmentieren. Dies reduziert eine Latenz
bei einer Neuübertragung,
weil eine Neuübertragung
eine höhere
Wahrscheinlichkeit eines Beeinflussens von lediglich einem IP-Paket
aufweisen würde.
Eine Kenntnis des Endes eines Pakets kann ebenfalls verwendet werden,
um das Warten auf einen Zeitablauf von mehr Daten zu reduzieren,
den das V.42-Protokoll einbringt. Falls bekannt ist, dass das letzte
empfangene Byte ein Ende eines physischen Datenblocks ist, muss
das Modem nicht warten oder kann die Zeit reduzieren, die dasselbe wartet,
dass mehr Daten zu demselben gesendet werden, bevor dasselbe diese
Daten sendet, die dasselbe zum Senden bereit hat.
-
Dieser
Aspekt der Erfindung kann erweitert werden, um ein IP- und TCP-Paket-Abhören durchzuführen, um
weiter zu optimieren, was wann gesendet wird und wie lange das V.42-Protokoll vor einem
Komprimieren und Senden des aktuellen Blocks wartet. Das TOS-Feld
in dem IP-Kopfblock beispielsweise kann verwendet werden, um den
Betrag einer Latenz zu bestimmen, der bei der Übertragung des Pakets verwendet
wird. Falls das Paket ein Paket mit hoher Priorität ist, kann
das System entscheiden, das Paket unmittelbar zu senden, wobei nicht
geprüft
wird, um zu bestimmen, ob mehr Pakete bereit zum Senden sind. Das
System kann basierend auf diesen TOS-Informationen variierende Zeitdauern
lang auf mehr Daten warten.
-
Eine
zusätzliche
Latenzoptimierung kann durch ein Überprüfen des TCP-Kopfblocks erzielt
werden. Falls das SYN-Flag in dem TCP-Kopfblock gesetzt ist, dann
sollten die Daten auch unmittelbar gesendet werden, weil nichts
mehr passieren kann, bis das SYN-ACK von der anderen Seite der Verbindung
zurückgegeben wird.
-
Ungleich
vorheriger Fortschritte bei einer Modemtechnologie, die erforderten,
dass die gleichen technischen Fortschritte sowohl an dem empfangenden
als auch dem sendenden Ende der Kommunikationsverbindung bestehen,
kann ferner das hierin offenbarte Modem bei allen heute existierenden
Modems wirksam sein und ist kompatibel zu denselben. Deshalb ist
es möglich,
Leistungsfähigkeitserhöhungen durch
ein Aktualisieren lediglich eines Endes der Verbindung zu gewinnen.
Auf diese Weise ist eine Übernahme
der Technologie nicht von Veränderungen
bei einer ISP-Infrastruktur abhängig.
-
Reduzierte, von Host-CPU
benötigte
Verarbeitungsleistung
-
Durch
ein Einbetten des Netzwerkstapels zusammen mit dem Modemkern ist
eine deutliche Reduzierung bei einer Verarbeitungsleistung möglich, die
erforderlich ist, um eine Verbindung mit dem Internet herzustellen
und über
dasselbe zu kommunizieren. Dies ermöglicht, dass kleine, kostengünstige Vorrichtungen
mit wenig Leistung unter Verwendung von Modems über das Internet kommunizieren.
Beispiele dieser Typen von Vorrichtungen umfassen Spielkonsolen,
PDAs, Spielzeuge und andere Verbraucherelektronik und mobile elektronische
Geräte.
-
Prozessorleistungsreduzierung
von PPP
-
Das
PPP-Protokoll erfordert, dass Pakete an dem Ende jedes Pakets angehängt eine
CRC umfassen. Diese Berechnung erfordert etwas, was ein erheblicher
Betrag an Verarbeitungsleistung bei kostengünstigen Prozessoren sein könnte.
-
Andere
Aspekte des Protokolls, wie beispielsweise ein Verkapseln von Daten
und Parameterverhandlungen, benötigen
Speicherzugriffe für
jedes Byte, wenn dieselben als eine Softwarelösung implementiert sind. Durch
ein Implementieren von PPP in dem Modem können alle Verhandlungen örtlich begrenzt
auf das Modem und das System gehalten werden, wodurch ein Systembusverkehr
und ein Verarbeitungsmehraufwand erleichtert werden.
-
Prozessorleistungsreduzierung
eines Einbettens von IP
-
Ein
Einbetten von IP entlädt
die Kopfblockprüfsummenberechnungen
von dem Host-Prozessor. Dasselbe hält ferner eine ICMP-Echo-Paketverarbeitung örtlich begrenzt
auf die Modemkarte. Dieses Protokoll wird für PING-Anwendungen verwendet.
-
Prozessorleistungsreduzierung
eines Einbettens von UDP
-
Obwohl
es möglich
ist, UDP als eine Einkapselungsvorrichtung zu verwenden, die wenig
Verarbeitungsleistung benötigt,
wenn dieselbe bei Prüfsummen
verwendet wird, kann UDP einige Prozessorressourcen benötigen. Hier
ist zu beachten, dass die meisten dünnen Internet-Clients auf IP/UDP
basieren, um die Daten derselben zu übertragen.
-
Prozessorleistungsreduzierung
eines Einbettens von TCP
-
TCP
ist ein viel komplizierteres Protokoll als UDP und erfordert somit
viel mehr Verarbeitungsleistung. Das TCP weist viele Zustände auf
und erfordert, dass Prüfsummen
an Paketen vorgeformt sind. Für
eingebettete Produkte, die eine TCP-Unterstützung benötigen, liefert die hierin beschriebene
Erfindung eine Möglichkeit,
die ganze Komplexi tät
und alle Prozessoranforderungen auf eine zweckgebundene Hardwareschaltung zu
entladen.
-
Portierbarkeit
der Lösung
-
Durch
ein Einbetten des Netzwerkstapels innerhalb des Modemuntersystems
kann das gleiche Modemsystem nun über mehrere Rechen- und Systemplattformen
hinweg verwendet werden. Weil kein Portieren irgendeiner Netzwerkstapelsoftware
erforderlich ist, wird ein Bewegen des Modems in unterschiedliche
Systeme sehr einfach. Dies ist besonders auf dem Markt eingebetteter
Systeme bedeutsam, der nicht eines oder zwei Haupt-OS aufweist,
sondern anstelle dessen aus einer Anzahl unterschiedlicher OS, RIOS
und in einigen Fällen
keinem OS gebildet ist. Der Markt eingebetteter Systeme ist ferner
dadurch gekennzeichnet, dass derselbe aus einer Anzahl inkompatibler
Prozessoren gebildet ist. Dieses Fehlen eines überwiegenden Standards begünstigt ebenfalls
eine sehr portierbare Netzwerklösung.
-
Reduzierte
Energieanforderungen
-
Die
hierin beschriebene Erfindung ist ferner sehr effizient hinsichtlich
Energieanforderungen. Eine sehr optimierte Zustandsmaschine reduziert
die Taktrate, die erforderlich ist, um die Funktionalität der Internetprotokollfolge
durchzuführen,
um zwei Größenordnungen.
Dies übersetzt
sich in eine erweiterte Batterielebensdauer und weniger Wärme, die
durch Produkte erzeugt wird, die mit der hierin beschriebenen Erfindung
entworfen sind.
-
Sicherheitsverbesserungen
-
Durch
ein Implementieren des Netzwerkstapels in einer Hardware zusammen
mit dem Modem liefert die Erfindung einen sehr sicheren, nicht hackbaren
Netzwerkstapel. Dies rührt
von der Hardwarearchitekturimplementierung her, die ein jegliches
empfangenes Paket nicht beachtet, wenn nicht bereits eine Sockelverbindung
für dasselbe
eingerichtet ist. Ferner kommen die Pakete nicht an der Modemkarte
vorbei, wodurch eine jegliche Wechselwirkung zwischen unangeforderten
Paketen und einer Software unmöglich
gemacht wird.
-
Durch
ein Umfassen einer HTML-Paketabhörvorrichtung
ist es zusätzlich
möglich,
HTML-Bewertungskennungen zu decodieren. Die Paketabhörvorrichtung
interpretiert Bytes in dem Paketpuffer und kann eingerichtet sein,
um lediglich diese Seiten durchzulassen, die innerhalb des voreingestellten
Bewertungspegels derselben liegen. Für Seiten, die den programmierten
Bewertungspegel überschreiten,
leitet die HTML-Abhörvorrichtung
eine Wiedererlangung-fehlgeschlagen-Nachricht hinauf und lässt den
HTML-Inhalt nicht an dem Modemuntersystem vorbei. Dies macht das
Modem zu einer inhaltsgetriebenen Mini-Firewall.
-
Für diese
Seiten, die keine Bewertungskennung umfassen, kann die Abhörvorrichtung
konfiguriert sein, um entweder diese Seiten gar nicht durchzulassen
oder um zu ermöglichen,
dass die Seiten durchgelassen werden. Der Bewertungspegel kann lediglich über Platineneinstellungen
programmiert, d. h. fest verdrahtet werden. Der Vorteil eines Implementierens
dieser Lösung
in einer Hardware besteht darin, dass es für Eltern oder irgendjemanden,
der bestimmte Websites herausfiltern möchte, unmöglich ist, um dieses System
herumzukommen, ohne die Modemkarte aus dem System zu nehmen. Bei
irgendeiner Softwarelösung
könnte der
Benutzer einfach einen nichtfilternden Browser laden oder ein bestimmtes
Plug-in sperren und das Filter würde
umgangen. Durch ein Vorsehen des Filters in einer Hardware auf der
Modemkarte gibt es keine Möglichkeit,
die Funktion zu umgehen.
-
Systemimplementierung
-
3 ist
ein schematisches Blockdiagramm eines internetbereiten Modemsystems.
-
Senden von
Daten
-
Bei
einem System, das mit einem internetbereiten Modem 31 ausgerüstet ist,
richtet die Internetanwendung zuerst die Sockelparameter ein. Diese
umfassen die Bestimmungstornummer, den Verbindungstyp (TCP/UDP),
die TOS-Anforderungen (TOS = Type-Of-Service) und die Bestimmungs-IP-Adresse.
Wenn der Netzwerkstapel 30 an dem internetbereiten Modem 31 diese
Informationen erhält,
versucht derselbe, durch ein Aussenden eines SYN-Pakets eine Verbindung
zu beginnen. Dieses Paket wird zu der IP-Maschine innerhalb des
Netzwerkstapels geleitet, die den IP-Kopfblock anbringt und die
IP-Kopfblockprüfsumme
berechnet. Das Paket wird dann zu der PPP-Handhabungseinrichtung
innerhalb des Netzwerkstapels geleitet, die den PPP-Kopfblock anbringt,
die Daten verkapselt und die PPP-Prüfsumme anhängt. Nach einer PPP-Einkapselung wird
das resultierende Netzwerkpaket durch den Ausgangs-FIFO 32 zu
dem Modemkern 33 gesendet. Für dieses Paket gibt die TCP-Maschine
dem Paketanalysatorblock 34 an, dass dasselbe ein SYN-Paket
ist. Der Paketanalysator 34 gibt dann dem Modem an, dass
dies ein alleinstehendes Paket ist und dass dasselbe unmittelbar
gesendet werden kann. Auf ein Empfangen dieser Informationen hin
sendet das Modem das Netzwerkpaket aus, ohne die normalen 50 ms
zu warten, um zu sehen, ob zusätzliche
Informationen unterwegs sind.
-
Nachdem
der Bestimmungssockel ein Rück-SYN-ACK-Paket
sendet, wird ein ACK-Paket von der Modemkarte gesendet. Dieses Paket
folgt den gleichen Schritten wie diesen für das SYN-Paket. An diesem Punkt steht die Sockelverbindung
und die Anwendungssoftware (wie beispielsweise ein Web-Browser 21)
wird benachrichtigt. Die Anwendung kann nun die Daten derselben
direkt zu dem Modem in einem Datenpaketformat senden.
-
Bei
dem in 3 gezeigten Beispiel, bei dem die Anwendung ein
Web-Browser ist, kann die Anwendung eine HTTP-Anforderung direkt zu dem Modemsystem über eine
Paketschnittstelle 38 senden, im Gegensatz zu der Seriell-Tor-I/O-Schnittstelle
bei einem gewöhnlichen
Modemsystem (siehe 2). Datentransporte im DMA-Stil
können
zu diesem Zweck verwendet werden. Bei diesem Verfahren wird ein
Datenbytezählwert
in die Paketschnittstelle programmiert. Daten können dann automatisch von einem
Speicher in eine Modemkarte übertragen
werden, ohne einen weiteren Eingriff von der Host-CPU. Nachdem alle
Daten übertragen
wurden, kann eine Unterbrechung von der Modemkarte zu der Host-CPU 23 gesendet
werden, wobei angegeben wird, dass der Datentransfer abgeschlossen
ist.
-
Wenn
die Daten an der Modemkarte ankommen, werden dieselben (bei diesem
Beispiel) zu einem TCP-Datenausgangspuffer gesendet. Nachdem alle
Daten empfangen sind oder wenn die maximale Datengröße pro Paket
empfangen wurde, beginnt der TCP-Block ein Berechnen der Prüfsumme.
Das Paket wird in der gleichen Weise wie das SYN-Paket eingekapselt.
Parallel dazu gibt die TCP-Maschine in dem Netzwerkstapel dem Paketanalysatorblock
an, dass das Bestimmungstor für
das Paket 80 ist, was das gut bekannte HTTP-Tor ist. Der
Paketanalysator weiß dann,
dass es keine weiteren Daten gibt und erneut das Modem das aktuelle
Paket unmittelbar senden sollte.
-
Empfangen
von Daten
-
Bei
einem Empfangen von Netzwerkpaketen werden die Daten von dem Modemkern 33 durch
den Eingangs-FIFO 35 hindurch zu der PPP-Maschine in dem
Netzwerkstapel gesendet, der den PPP-Kopfblock syntaktisch analysiert,
die Daten entkapselt und eine laufende Prüfung an dem Paket für Prüfsummenberechnungen
beginnt. Falls die Maschine bestimmt, dass die eingekapselten Daten
ein IP-Paket sind, gibt dieselbe die IP-Maschine in dem Netzwerkstapel
frei und alle Daten nach dem PPP-Kopfblock werden zu der IP-Maschine
weitergeleitet. Die IP-Maschine analysiert den IP-Kopfblock syntaktisch,
prüft die
Prüfsumme,
und falls dieselbe bestimmt, dass das eingekapselte Protokoll TOP
ist, dann sendet dieselbe alle Daten nach dem IP-Kopfblock zu der
TCP-Maschine in dem Netzwerkstapel. Die TCP-Maschine analysiert
dann den TOP-Kopfblock
syntaktisch und sendet den Datenabschnitt zu der Sicherheitsschicht 36.
Falls die Daten HTML-Daten sind, können dieselben durch eine Bewertungsprüfung geleitet
werden, die Bewertungskennungen von Seiten syntaktisch herausanalysiert.
Falls die Seite eine Bewertung unterhalb oder gleich der Einstellung
der Modemkarte aufweist, dann dürfen
die Daten passieren. Falls die Bewertung die Einstellung an der
Karte überschreitet,
wird eine Nachricht, die dies angibt, anstelle dessen weitergeleitet.
Falls die Seite keine Bewertungen enthält, kann ein Bit gesetzt werden,
um die Seite entweder durchzulassen oder zu blockieren. Alle Nicht-HTML-Daten
werden direkt zu dem TCP-Datenpuffer 37 geleitet.
-
Wenn
die Daten in den Puffer geschrieben werden, wird ein laufender Zählwert gehalten,
um zu sehen, wie viele Daten empfangen wurden. An dem Ende des Netzwerkpakets
kann dann eine Unterbrechung zu der Host-CPU 23 erzeugt
werden, falls die PPP-Prüfsumme
angibt, dass das gesamte Paket ohne Fehler empfangen wurde. Die
Anwendung kann dann den Empfangene-Daten-Zählwert lesen und einen DMA-Transfer
programmieren, um Daten von dem TCP-Puffer in einen Hauptspeicher
zu übertragen.
-
Merkmale der Erfindung
-
Die
folgende Erörterung
beschreibt verschiedene Merkmale der Erfindung:
- 1.
Ein Modem als eine Blockvorrichtung.
- 2. Latenzoptimierung basierend auf Paketparametern:
a)
grundlegende Paketende-Optimierung,
b) Optimierung basierend
auf einem IP-TOS-Flag,
c) Optimierung basierend auf UDP/TCP-Tornummern,
d)
Optimierung basierend auf einem TCP-Zustand und
e) Latenztabelle.
- 3. Ein Modem als eine vollständige
Internetzugriffsvorrichtung:
a) Teilstapellösungen:
i) PPP/IP,
ii)
PPP/IP/ICMP und
iii) PPP/IP/ICMP/UDP; und
b) vollständige Stapellösungen (PPP/IP/ICMP/UDP/
TCP).
- 4. Verbesserte Sicherheit und HTML-Filterung bei einem internetfähigen Modem.
-
Die
folgende Erörterung
beschreibt die obigen Merkmale detaillierter.
-
Ein Modem
als eine Blockvorrichtung
-
Abhängig von
den Netzwerkschichten, die bei der Modemhardware enthalten sind,
werden unterschiedliche Datenformate zu dem Modemuntersystem gesendet.
Bei irgendeiner der Implementierungen jedoch können DMA-Transfers verwendet
werden, um einen CPU-Mehraufwand zu optimieren, der für die Transfers
erforderlich ist.
-
Für die folgende
Erörterung
nehme man Bezug auf 4. Bei der Implementierung,
bei der der gesamte Netzwerkstapel 40 bei der Modemkarte 41 enthalten
ist, müssen
lediglich die Daten der Anwendung 42 übertragen werden. Softwareanwendungen 44 kommunizieren
mit der Modemkarte über
eine Sockel-API 43.
-
Zumindest
kann lediglich PPP zu dem Modem hinzugefügt werden. Die Funktion von
PPP besteht darin, IP-Pakete (Blöcke
von Daten) in einen seriellen Strom zu transformieren, so dass derselbe über eine
serielle Vorrichtung (siehe 5) transportiert
werden kann. Das PPP-Protokoll ist ferner für ein Verhandeln der Parameter
verantwortlich, die verwendet werden, um Daten über die serielle Verbindung
zu übertragen
(z. B. Komprimierungsschemata und verkapselte Bytes). Wenn die PPP-Funktion 50 innerhalb
des Modems durchgeführt
wird, ist die Kommunikation zwischen dem Modem und der IP-Protokollstapelsoftware
auf eine Weise wirksam, die dieser ähnlich ist, in der ein IP-Stapel
mit einer Ethernet-Karte kommuniziert.
-
Wie
bei einer Ethernet-Karte werden Pakete von dem IP-Protokollstapel zu
dem Vorrichtungstreiber versandt. In dem Fall des Modems ist der
Vorrichtungstreiber ein einfaches Schnittstellenbildungssoftwareprogramm,
das Datenblöcke
zu und von dem Modem und dem Host-Computer überträgt. Man vergleiche die Architektur
des Modems von 6a des Stands der Technik mit
dieser eines Modems gemäß der Erfindung,
wie es in 6b gezeigt ist.
-
Dieses
Ausführungsbeispiel
der Erfindung ermöglicht
alle der oben beschriebenen Effizienzvorzüge und ist eine attraktive
Lösung,
weil dasselbe durch ein Hinzufügen
lediglich einer minimalen Menge an zusätzlicher Logik zu bestehenden
Modemchipsätzen
implementiert werden kann und weil dasselbe nur 512 Byte Speicher
zu einer Unterstützung
benötigt.
Dies macht dasselbe sehr kostengünstig
zu irgendeinem bestehenden Modem hinzuzufügen.
-
Latenzoptimierung
-
Herkömmliche
Modems weisen keine Kenntnis des Datentyps auf, den dieselben tragen,
und die Protokolle derselben sind für Schnittstellen auf Basis
interaktiver Schriftzeichen optimiert. Die herkömmlichen Modemprotokolle weisen
eine eingebaute Verzögerung
von 50 ms vor einem Senden von Informationen auf. Diese Verzögerung liegt
vor, weil das Modem keine Ahnung davon hat, wo die Daten aufhören und
anfangen, so dass dasselbe wartet, bis dasselbe weiß, dass
keine Daten mehr gesendet werden.
-
Bei
der Beliebtheit des Internet werden beinahe alle Modems heute verwendet,
um eine Verbindung mit dem Internet herzustellen. Ein Verwenden
dieser Kenntnis und der Informationen darüber, wann die Pakete anfangen
und enden, kann helfen, Modemübertragungen
zu optimieren. Diese Optimierung kann die Menge an Zeit reduzieren,
die benötigt
wird, um ein Internetprotokollpaket von einem Modem zu einem anderen
zu bewegen, durch ein Reduzieren oder Eliminieren der Verzögerung von
50 ms, die in die Modemprotokolle eingebaut ist. Dieses Merkmal
der Erfindung kann unter Verwendung unterschiedlicher Teile des
Netzwerkpakets erweitert werden, um Entscheidungen dahingehend zu
treffen, ob es irgendeine Verzögerung
geben sollte oder wie lange dieselbe sein sollte, bevor das Modem
ein Paket verarbeitet. Das Hardwaremodul, das diese Optimierung
handhabt, ist der Paketanalysatorblock 34 (siehe 3).
-
Grundlegende
Paketende-Optimierung
-
Auf
der grundlegendsten Ebene könnte
man die Kenntnis des Endes des PPP-Pakets verwenden, um den Modemprotokollen
zu sagen, eine geringe Menge an Zeit zu warten, bevor das Paket
gesendet wird (siehe 7). Bei dem herkömmlichen
Modemmodell würde
das Modem, falls es genug Bytes gäbe, um einen Modemprotokollrahmen
(wie beispielsweise V42) herzustellen, auf mehr Daten bis zu 50
ms lang warten, bevor dasselbe einen Zeitablauf feststellt und das
Paket sendet. Mit einer Kenntnis des Endes des PPP-Pakets und des
eingekapselten Protokolls könnte
das Modem das Senden des Pakets mit dem Wissen beschleunigen, dass
dasselbe ein vollständiges
Paket aufweist.
-
Dieser
Algorithmus ist für
PPP-Unterprotokolle nützlich,
wie beispielsweise LCP (Link Control Protocol), PAP (Password Authentication
Protocol), CHAP (Challenge Handshake Authentication Protocol) und NCP
(Network Control Protocol). Bei diesen und ähnlichen PPP-Unterprotokollen
sind Pakete, die übertragen werden,
dahingehend alleinstehend, dass alle Informationen innerhalb eines
einzigen Pakets enthalten sind. In den meisten Fällen werden ferner, nachdem
das Paket gesendet ist, keine weiteren Daten gesendet, weil die
Vorrichtung auf eine Antwort von der anderen Vorrichtung wartet.
Falls deshalb der Paketanalysator erfasst, dass ein PPP-Paket ein
PPP-Unterprotokoll enthält,
wenn derselbe das PPP-FCS-Feld erfasst, kann derselbe das Modem
anweisen, lediglich 2 ms zu warten, bevor die Daten gesendet werden,
anstelle der normalen 50 ms. Der Grund dafür, ein Minimum von zumindest
2 ms zu warten, besteht darin, dass bei dem Übergang zwischen der LTP-,
der Authentifizierungs- und der NCP-Phase der PPP-Verhandlungen
Rücken-an-Rücken-Pakete
ausgesendet werden können.
Es gäbe
jedoch niemals mehr als zwei Rücken-an-Rücken-Pakete und
das zweite Paket folgt immer unmittelbar innerhalb von 2 ms des
ersten Pakets.
-
Eine
weitere Optimierung kann durch ein Betrachten des Befehlcodes des
PPP-Unterprotokollpakets auftreten. Eine beispielhafte Matrix von
Befehlstypen und der entsprechenden Latenzeinstellung ist in der
Tabelle 1 unten gezeigt. Tabelle
2. Matrix von Befehlstypen und entsprechender Latenzeinstellung
-
Optimierung basierend
auf IP-Kopfblockfeldern
-
Optimierung basierend
auf dem TOS-Feld
-
Für IP-, TOP-
und UDP-Pakete kann eine intelligentere Entscheidung darüber, wie
lange zu warten ist oder wann Pakete zu senden sind, durch ein Untersuchen
des Diensttypfelds (TOS-Felds) in dem IP-Kopfblock bestimmt werden.
Das TOS-Feld beschreibt die Priorität und Zuverlässigkeit,
die für
das Paket angefordert sind. Die Eigenschaften, die für das TOS-Feld
einstellbar sind, sind Verzögerung
Minimieren, Durchsatz Maximieren, Zuverlässigkeit Maximieren und Kosten
Minimieren. Es kann mehr als eine der TOS-Flag-Eigenschaften zu
einer Zeit gesetzt sein. Diese Informationen können verwendet werden, um variable
Wartezeitverzögerungen
zu setzen oder das zu senden, was sich unmittelbar in dem Modempuffer
befindet.
-
8 zeigt,
wie es möglich
ist, in das TOS-Flag 80 nach einer Verzögerung-Minimieren-Eigenschaft zu
suchen und diese Informationen und die Informationen darüber, wann
das IP-Paket endet, zu verwenden, um den Modemprotokollen zu sagen,
das Paket unmittelbar zu senden.
-
Optimierung
basierend auf dem eingekapselten Protokoll
-
Eine
weitere Optimierung, die basierend auf IP-Kopfblockfeldern durchgeführt werden
kann, besteht darin, die Latenzeinstellung auf dem Protokollfeld
zu basieren. Die meisten ICMP- und IGMP-Pakete sind in sich abgeschlossen,
weshalb minimale Wartezeiten benötigt
werden, nachdem dieselben gesendet sind. Nachdem der Paketanalysator
bestimmt, dass das IP-Paket entweder ein IGMP- oder ICMP-Paket enthält, signalisiert
derselbe dem Modemkern, das Paket unmittelbar zu senden.
-
Optimierung
basierend auf Pakettoren
-
Bestimmte
Arten von Internetdiensten weisen Informationsverteilungen auf,
die erfordern, dass lediglich ein Paket von Daten gesendet und empfangen
wird. Bei diesen Typen von Diensten ist es optimal, immer ein Paket
unmittelbar zu senden, ohne auf mehr Daten zu warten. Andere Internetdienste
weisen jedoch andere Paketverteilungsmuster auf, die für UDP und
TCP optimiert sein können,
die Hauptprotokolle, die zusätzlich
zu IP verwendet werden. Beide verwenden Tore, um Dienste zu beschreiben. 9 liefert
ein Beispiel dessen, wie die Torinformationen, die sowohl in UDP
als auch TCP getragen sind, verwendet werden, um eine Modemlatenz
zu optimieren.
-
Die
Latenztabelle
90 enthält
eine Tabelle von Toren und die Zeitdauer, die nach dem Ende des
Pakets auf mehr Daten zu warten ist. Ein Beispiel eines Optimierens
unter Verwendung dieses Verfahrens ist die DNS-Anwendung. Bei dieser
Anwendung kann der gesamte Datenabschnitt der Nachricht ohne weiteres
in ein Internetpaket passen. Falls nach einem Untersuchen des Bestimmungstors
in dem UDP-Kopfblock deshalb bestimmt wird, dass dasselbe ein DNS-Paket
ist, kann das Paket unmittelbar gesendet werden, weil keine weiteren
Pakete kommen. Tabelle 3 unten stellt eine beispielhafte Protokoll-Tor-Latenztabelle
bereit. Tabelle
3. Latenztabelle – Beispiel
I
-
Latenzoptimierung basierend
auf Paketzustand
-
TCP
ist ein zustandsbasiertes Protokoll und bestimmte Zustände weisen
gut bekannte Eigenschaften auf, die für eine Latenzoptimierung verwendet
werden können.
Ein Beispiel ist der Dreiwege-Quittungsaustausch (Dreiwege-Handshake), mit dem
alle TCP-Verbindungen beginnen. Die ersten wenigen Pakete dieser Transaktion
sind kleine Pakete, die gesendet werden müssen, bevor irgendwelche weiteren
Kommunikationen stattfinden können.
Die Erfindung kann die Zeit, die dieser Verbindungsprozess benötigt, merklich
verbessern. Dies kann eine sehr merkliche Verbesserung sein, besonders
wenn eine Software betrieben wird, die viele TCP-Verbindungen zu
einer Zeit während
einer Transaktion verbindet, wie beispielsweise mit einem Web-Browser.
-
In
10 werden
Informationen von dem IP-Kopfblock (TCP-Protokolltyp)
100 und der TCP-Zustand
101 verwendet,
um einen Latenzwert nachzuschlagen, der durch das Modemprotokoll
an dem Ende des Pakets geleitet werden soll. Tabelle 4 unten stellt
eine beispielhafte Latenztabelle unter Verwendung dieser Informationen
bereit. Tabelle
4. Latenztabelle – Beispiel
II
-
Die Latenztabelle
-
Latenztabellen
sind Zustandsmaschinen, die eine Anzahl von Eingaben aufweisen,
die durch Charakteristika eines Pakets ausgelöst werden. Aus diesen Eingaben
erzeugt die Latenztabelle einen optimierten Latenzwert für das Modemprotokoll,
wobei jedes Paket wirksam optimiert wird, wenn dasselbe das System
durchläuft.
Ein schematisches Blockdiagramm der Latenztabellen ist in der 11 gezeigt,
in der die oben erörterten Informationen
kombiniert sind.
-
Die
IP-Latenzauflöseeinrichtung 110 nimmt
die Eingaben von der IP-Unterprotokoll-Latenztabelle 111 und
der IP-TOS-Feld-Latenztabelle 112 und
wählt den
niedrigeren der zwei Werte aus. Die TCP-Latenzauflöseeinrichtung 113 führt eine ähnliche
Funktion für
die Bestimmungstor-Latenztabelle 114 und die TCP-Zustand-Latenztabelle 115 durch.
Die Ausgaben der IP-Latenzauflöseeinrichtung
und der TCP-Latenzauflöseeinrichtung
werden gemultiplext 117, um einen kombinierten Latenzwert
für dasselbe
zu erzeugen. (Die Multiplexauswahl ist durch das Protokollfeld in
dem IP-Kopfblock bestimmt, wie es durch die IP-Unterprotokoll-Latenztabelle
III syntaktisch analysiert ist.) Ein Wert wird auch durch die PPP-Latenztabelle 116 geliefert.
Dieser Wert wird mit dem gemultiplexten 117 Wert der IP-Latenzauflöseeinrichtung
und der TCP-Latenzauflöseeinrichtung
gemultiplext. Die Multiplexauswahl für einen Multiplexer 118 ist
durch das Protokollfeld in dem PPP-Kopfblock bestimmt, wie es durch
die PPP-Latenztabelle 116 syntaktisch analysiert ist. Der
endgültige Latenzwert
wird dann zu dem Modemuntersystem gesendet.
-
Ein Modem
als eine vollständige
Internetzugriffsvorrichtung
-
Das
erweiterte Internetmodemmodell ist ein alleinstehendes, einbettbares,
höchst
integriertes Kommunikationsprodukt, das beinahe eine jegliche elektronische
Vorrichtung (siehe 12) internetfähig machen kann.
Diese Lösung
weist eine Anzahl von Vorteilen gegenüber den oben erörterten
prozessorbasierten Lösungen
auf. Genauer gesagt ermöglicht
diese Architektur die Hinzufügung
einer Internetunterstützung
zu Nicht-Computer-Anwendungen, wie beispielsweise Spielkonsolen
und VCRs. Dieselbe ist auch sehr nützlich für diese Vorrichtungen, die
begrenzte Speicherstandflächen
(Spei cher-Footprints) aufweisen und nicht die ganze Zeit eine Netzwerkunterstützung benötigen. Ein
Beispiel für
dies sind Vorrichtungen des Typs Palm Pilot, bei denen das einzige
Mal, wenn die zusätzliche
Netzwerkunterstützung
benötigt
wird, dann ist, wenn das Modem verwendet wird. Ein Vorteil der Erfindung
besteht darin, dass es nicht nötig
ist, Speicherressourcen an Merkmale zu verschwenden, die nicht die
ganze Zeit verwendet werden.
-
Verbesserte
Sicherheitsvorzüge
-
Wie
es oben angemerkt ist, besteht ein Sicherheitsvorzug eines Aufweisens
eines hardwarebasierten Netzwerkstapels darin, dass lediglich diese
empfangenen Pakete, die für
eine vorkonfigurierte Sockelverbindung bestimmt sind, das Modemuntersystem
passieren dürfen.
Alle anderen Pakete werden auf der Hardwareebene herausgefiltert,
wobei eine jegliche Wechselwirkung zwischen diesen Paketen und einer
Software unmöglich
gemacht ist. Mit der Hinzufügung
der HTML-Abhörvorrichtung
kann ferner eine V-Chip-ähnliche
Filterung geliefert werden, die nicht ohne weiteres umgangen werden
kann. Blockdiagramme der HTML-Abhörvorrichtung sind in 13 und 14 gezeigt.
-
In 13 wird
ein Paket 138 an der TCP-Maschine 139 empfangen.
Das Paket ist für
einen spezifischen Sockel bestimmt. Die HTML-Paketabhörvorrichtung 144 weist
eine voreingestellte Bewertung 146 auf, die auf das Paket
angewandt wird, um zu bestimmen, ob das Paket in dem Empfangspaketpuffer 145 platziert werden
soll.
-
Wie
es in 14 gezeigt ist, nimmt innerhalb
der HTML-Paketabhörvorrichtung
der HTTP-Ansprechen-Parser 140 (die Einrichtung zum syntaktischen
Analysieren eines HTTP-Ansprechens)
empfangene Pakete von dem Sockel 141 und interpretiert
den HTTP-Kopfblock, um zu bestimmen, ob der Dateninhalt gültige HTML-Daten
enthält.
Falls dem so ist, gibt derselbe den HTML-Bewertungsdecoder 142 frei,
der beginnt, die HTML-Daten hinsichtlich Bewertungskennungen syntaktisch
zu analysieren. Der HTML-Decoder schreibt alle empfangenen Daten
zu dem Empfangspaketpuffer 145 (einschließlich des
HTTP-Kopfblocks) und analysiert zu der gleichen Zeit Kennungen syntaktisch.
Falls derselbe eine Bewertungskennung erfasst, vergleicht derselbe
die Bewertung der Seite mit dem voreingestellten Bewertungspegel
der Karte. Falls dieselbe besteht, dann wird fortgefahren, die Seite
in dem Empfangspuffer zu speichern. Falls die Seite durchfällt, dann
werden alle weiteren Daten unterdrückt, wird der Speicherpuffer
auf den Punkt vor dem Empfangen des aktuellen Pakets rückgesetzt
und wird eine Zurückweisungsnachricht
in einem Speicher gespeichert. Falls die Seite keine Bewertungen
an dem Kopf der Seite enthält,
kann die Karte entweder konfiguriert sein, um die Seite durchzulassen
oder die Seite zurückzuweisen.