DE60309527T2 - System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten - Google Patents

System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten Download PDF

Info

Publication number
DE60309527T2
DE60309527T2 DE60309527T DE60309527T DE60309527T2 DE 60309527 T2 DE60309527 T2 DE 60309527T2 DE 60309527 T DE60309527 T DE 60309527T DE 60309527 T DE60309527 T DE 60309527T DE 60309527 T2 DE60309527 T2 DE 60309527T2
Authority
DE
Germany
Prior art keywords
tcp
marker
frame
header
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60309527T
Other languages
English (en)
Other versions
DE60309527D1 (de
Inventor
Uri 92606 Irvine Elzur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27767949&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60309527(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60309527D1 publication Critical patent/DE60309527D1/de
Publication of DE60309527T2 publication Critical patent/DE60309527T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1016IP multimedia subsystem [IMS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

  • HINTERGRUND DER ERFINDUNG
  • Das Transmission Control Protocol/Internet Protocol (TCP/IP) ist ein Protokoll, das bei der Nachrichtenübermittlung weit verbreitet ist. Das Empfangen, Zwischenspeichern, Verarbeiten und Speichern der in TCP Segmenten kommunizierten Daten kann jedoch ein beträchtliches Ausmaß von Host-Verarbeitungsleistung und Speicherbandbreite beim Empfänger verbrauchen. In einem typischen System umfasst der Empfang die Verarbeitung in mehreren Kommunikationsschichten, bevor die Daten schließlich an ihr Endziel, einen Anwendungspuffer, kopiert werden. Eine typische Netzwerkkarte (Network Interface Card; NIC) verarbeitet die Schicht 2 (Layer 2) Header (z.B. Ethernet Header) und kopiert dann die verbleibenden Header (z.B. Schicht 3 (Layer 3) und höhere Header) und/oder die Upper Layer Protocol (ULP) Nutzlast (payload) in einen Transport-Puffer (z.B. einen TCP Puffer) zur Vernetzungs- und Transportschicht-Verarbeitung. Die Transport- und Vernetzungs-Verarbeitung (z.B. TCP/IP, wenn TCP das Transportschicht-Protokoll ist) entfernt die Schicht 3 und Schicht 4 Header und kopiert die verbleibenden Header und die ULP Nutzlast in einen anderen Puffer. Dieser Vorgang wiederholt sich auf der nächsten Ebene, bis der letzte Header entfernt ist und die ULP Nutzlast in den von der Anwendung zugeordneten Puffer kopiert ist. Die meisten Bytes in den Frames sind Nutzlast (z.B. Daten), aber sie werden immer wieder kopiert, während der Steuerabschnitt der Frames (z.B. die Header) schichtweise verarbeitet werden. Die Host-CPU, die einen großen Overhead von Verarbeitung und Kopieren übernimmt, einschließlich z.B. der Handhabung vieler Unterbrechungen und Kontextwechsel, führt dies durch. Somit sind zur Anwendungsverarbeitung, der gewünschten Verwendung einer Servervorrichtung, sehr wenige Takte verfügbar. Für Hochgeschwindigkeits-Vernetzung (z.B. 10 Gigabit pro Sekunde) belastet das zusätzliche Kopieren das Speicher-Untersystem des Computers. Für durchschnittlich drei Datenkopien wird das Speicher-Untersystem der meisten im Handel erhältlichen Servercomputer zum Engpass, wodurch verhindert wird, dass das System 10 Gigabit Netzwerk-Verkehr unterstützt. Da TCP/IP das vorherrschende Transport-Protokoll ist, das von den meisten heutigen Anwendungen verwendet wird, wäre es daher von Nutzen, die Belastung dieser Verarbeitung zu verringern, um beispielsweise eine skalierbare geringe CPU-Verwendung zu erreichen, wenn mit einer gleichrangigen Maschine kommuniziert wird.
  • Zur Reduzierung des Overheads ist es nötig sicherzustellen, dass Daten ein Mal von der Leitung in den Anwendungspuffer kopiert werden. Ein Problem ist, dass die NIC nicht weiß, welcher Teil eines empfangenen Frames beispielsweise ULP Daten sind, und welcher Teil ULP-Steuerung ist. Es ist erforderlich, dass der Sender die Frames so aufbaut, dass es für die Empfänger-NIC einfach ist, diese Unterscheidung zu treffen. Jedes ULP-Protokoll kann jedoch eine eigene Art des Mischens von Daten und Steuerung aufweisen, wodurch es sehr schwierig wird, eine NIC zu konstruieren, die alle unterstützt.
  • Ein weiteres Problem ist, dass das TCP einen Bytestrom-Dienst für das ULP anbietet. Es ist nicht immer möglich, den Anfang einer ULP Nachricht (z.B. die Protokolldateneinheit; Protocol Data Unit (PDU)) innerhalb dieses Endlosstroms von Bytes (z.B. der TCP Daten) zu bestimmen. Unter der Annahme, dass die Frames ohne Resegmentierung beim Empfänger (z.B. einem Server) ankommen, kann der Empfänger den Frame mittels TCP entpacken und könnte den ULP Header lokalisieren. Der ULP Header kann beispielsweise Steuerinformationen enthalten, die eine Stelle in dem Anwendungspuffer identifizieren können, an die die ULPDU (Upper Layer Protocol Data Unit; Protokolldateneinheit höherer Schichten) direkt platziert werden kann. Doch auch wenn ein Sender so ausgestaltet werden könnte, dass er in jedem TCP Segment eine TCP Schicht verwendet, die ULP Steuerinformationen beginnend in dem ersten Nutzlast-Byte des TCP Segments platzieren kann, könnte dies nicht ausreichend sein. Dies deshalb, weil Resegmentierung in TCP-/IP-Kommunikationen nicht ungewöhnlich ist. Es gibt keine Garantie, dass die TCP Segmente am anderen Ende der Leitung so ankommen, wie sie vom Sender aufgebaut worden sind, weil es beispielsweise zwischen dem Sender und dem Empfänger Netzwerk-Architektur-Strukturen geben kann. Eine Zwischenbox oder Mittelbox (z.B. eine Firewall) kann beispielsweise die TCP Verbindung mit dem Sender beenden und, ohne dass der Sender oder der Empfänger dies merkt, eine andere TCP Verbindung mit dem Empfänger aufbauen. Die Zwischenbox kann die ankommenden Frames resegmentieren (z.B. kleinere TCP Nutzlasten verwenden). Somit kann ein einzelner Frame in die Zwischenbox eintreten, aber eine Vielzahl kleinerer Frames, jeder mit eigenem TCP Header, aus der Zwischenbox austreten. Dieses Verhalten der Zwischenbox kann in der richtigen Reihenfolge platzierten Steuer- und Datenabschnitte durcheinander bringen.
  • Im Fall der Resegmentierung kann sich der Empfänger einer Reihe von Herausforderungen gegenüber sehen. Es ist beispielsweise möglich, dass der Empfänger nichts von dem Vorhandensein von Zwischenboxen zwischen dem Sender und dem Empfänger weiß. Außerdem kann es sein, dass das von dem Sender verwendete Anfangs-Segmentierschema nicht das von dem Empfänger empfangene Segmentier-Schema ist. Somit ist es möglich, dass, obwohl der Empfänger die kleineren Frames ordnen kann, er beispielsweise den ULP Header und die ULPDU nicht lokalisieren kann. Demgemäß ist es möglich, dass der Empfänger die Steuer- und Grenzinformationen, die gegebenenfalls erforderlich sind, um die ULPDU an der richtigen Stelle z.B. des Anwendungspuffers des Empfängers zu platzieren, nicht ermitteln kann.
  • Ein weiteres Problem ist, dass TCP/IP Netzwerke Segmente außer der Reihe liefern können. Es ist möglich, dass das ULP eine PDU aufweist, die länger ist, als ein TCP Segment, das auf 1460 Byte beschränkt sein kann, wenn es mit Ethernet verwendet wird, und die ULPDU kann zwischen einer Vielzahl von TCP Segmenten aufgesplittet sein. Daher können einige TCP Segmente beispielsweise nur Daten und keine Steuer-Informationen enthalten, die die empfangende NIC instruieren, wohin die Daten zu platzieren sind. Der Empfänger steht vor der Wahl, entweder die Segmente außer der Reihe fallen zu lassen und eine neue Übertragung anzufordern, was hinsichtlich Verzögerung und Leistungsverlust teuer ist, oder die Segmente außer der Reihe zwischenzuspeichern, bis alle fehlenden Segmente empfangen worden sind. In einigen Implementierungen kann das Ansammeln aller defekten Segmente gewählt werden, um auf den Empfang der fehlenden TCP Segmente zu warten und sie dann in der richtigen Reihenfolge zu platzieren. Die empfangende NIC kann dann den ganzen Satz TCP Segmente verarbeiten, während sie den Steuerabschnitt verwendet, um Datenplatzierungs-Informationen zu erhalten. Durch dieses Vorgehen entstehen zusätzliche Kosten für den temporären Puffer, und es werden eine Hochleistungs-CPU und ein breiterer Datenpfad, als sonst benötigt, verwendet. Die empfangende NIC verarbeitet alle angesammelten TCP Segmente parallel zur Verarbeitung anderer TCP Segmente mit Leitungsgeschwindigkeit, da der Verkehr auf dem Link die ganze Zeit anhält. Die Segmente außer der Reihe können für den Empfänger eine „Verarbeitungs-Blase" entstehen lassen.
  • Ein Lösungsvorschlag zur Lokalisierung des ULP Headers ist die Verwendung des TCP ULP Framing (TUF)-Protokolls. Gemäß dem TUF-Protokoll platziert ein Sender einen bestimmten Wert (z.B. einen Schlüssel) in dem TCP Segment als erstes Byte, das dem TCP Header folgt, wie in 1 gezeigt ist. Der Schlüssel kann ein eindeutiger Wert sein (z.B. ein bestimmter 48 Bit Wert), nach dem der Empfänger suchen kann. Demgemäß hat der Empfänger, wenn er den Schlüssel fin det, beispielsweise auch den ULP Header oder den Beginn der Steuerinformationen (z.B. das erste Byte des DDP/RDMA Headers; Direct Data Placement/Remote Direct Memory Access Header) gefunden. Das TUF-Protokoll ist jedoch von wahrscheinlichkeitstheoretischer Natur. Der eindeutige Wert kann beispielsweise zufällig in der ULPDU auftauchen. Des Weiteren kann der Empfänger angesichts beispielsweise der Resegmentierung oder TCP Neuübertragung (z.B. von einem ungeeigneten TCP Sender) den Beginn der Steuerinformationen falsch identifizieren, was aufgrund der Platzierung an der falschen Stelle des Host-Speichers zu einer stillen Korruption der Daten führt. Obwohl die Länge des eindeutigen Werts vergrößert werden kann, um den Fall einer solchen Falschidentifizierung zu verringern, besteht die Wahrscheinlichkeit immer. Der Schlüssel kann auch ein Sicherheitsrisiko darstellen, wenn ein unberechtigter Empfänger den eindeutigen Wert erhalten kann, der es ihm ermöglicht, auf die ULP Nutzlast zuzugreifen.
  • Eine weitere Lösung zum Lokalisieren eines bestimmten Headers ist es, ein Fixed Interval Markers (FIM)-Protokoll zu verwenden. Das FIM-Protokoll verwendet nur vorwärts zeigende Marker und ist auf internet Small Computer System Interface (iSCSI)-Anwendungen beschränkt. Bei dem FIM-Protokoll wird ein vorwärts zeigender Marker an einer bekannten Stelle in dem TCP-Bytestrom platziert. Dies ermöglicht es dem Empfänger, ihn in dem endlosen TCP-Bytestrom möglicherweise zu lokalisieren. Der FIM Marker zeigt nach vorne zum Beginn des iSCSI Headers, wie in 2 gezeigt ist. Der Marker wird standardmäßig alle 8192 Bytes gesetzt, obwohl dies verhandelbar ist. Das FIM-Protokoll kann jedoch einen Nachteil haben, weil der Marker nur sparsam, alle 8192 Bytes, gesetzt wird. Demgemäß ist es möglich, dass viele Frames zwischengespeichert werden müssen, bevor oder wenn der iSCSI Header zu identifizieren ist. Es kann sein, dass auf andere iSCSI Header kein FIM Marker zeigt, so dass der Empfänger die TCP Segmente verarbeiten muss, um die iSCSI Daten platzieren zu können. Das FIM-Protokoll liefert auch keine Garantie, dass der iSCSI Header nach dem TCP Header angeordnet wird, oder dass der iSCSI Header überhaupt vollständig in einem TCP Segment platziert wird. Um das FIM-Protokoll zu verwenden, muss der Empfänger die Stelle der TCP Sequenz, auf die dieser FIM zeigt, lokal speichern. Er verwendet diese, wenn das TCP Segment mit dieser Stelle empfangen wird (d.h. zusätzliche Zustandsinformationen werden für jeden empfangenen FIM gespeichert, bis das entsprechende TCP Segment mit dem iSCSI-Header empfangen ist). Das FIM-Protokoll macht keinen Vorschlag und gibt keine Lehre hinsichtlich der Verarbeitung defekter TCP Segmente, wenn die außer der Reihe empfangenen TCP Segmente kleiner sind, als der FIM-Abstand (z.B. 8192 Bytes beim Standard). Das FIM-Protokoll ist ebenfalls auf iSCSI-Anwendungen beschränkt und kann für das Framing-Problem, das sich allen Anwendungen stellen kann, die das Hochgeschwindigkeits-TCP/IP-Protokoll verwenden, keine generische Lösung liefern. Ein Protokoll, das Fixed Interval Markers verwendet, ist in draft-iets-ips-iSCSI-10 offenbart.
  • Weitere Einschränkungen und Nachteile herkömmlicher und traditioneller Ansätze werden für den Fachmann aus einem Vergleich derartiger Systeme mit einigen Aspekten der vorliegenden Erfindung, die im Rest der vorliegenden Anmeldung unter Bezug auf die Zeichnungen dargelegt sind, offensichtlich.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist durch den Gegenstand des unabhängigen Anspruchs 1 definiert.
  • Ein Beispiel stellt ein Verfahren bereit, das einen Marker Header in einem empfangenen TCP Frame lokalisiert. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Lokalisieren eines nach hinten zeigenden Markers; und Verwenden von Informationen, die in dem nach hinten zeigenden Marker gespeichert sind, um den Frame Header zu lokalisieren.
  • Ein Beispiel stellt ein Verfahren bereit, das die Resegmentierung eines TCP Segments ermittelt. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Lokalisieren eines nach hinten zeigenden Markers in dem TCP Segment; Bestimmen einer Stelle eines Frame Headers unter Verwendung von Informationen, die in dem nach hinten zeigenden Marker gespeichert sind; und Bestimmen, dass eine Resegmentierung des TCP Segments stattgefunden hat, wenn sich der Frame Header nicht vorne in dem TCP Segment nach einem TCP Header des TCP Segments befindet.
  • Ein Beispiel stellt ein Verfahren bereit, das eine Resegmentierung eines TCP Segments ermittelt. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Lokalisieren eines nach hinten zeigenden Markers in dem TCP Segment; Bestimmen einer Stelle eines Frame Headers unter Verwendung von Informationen, die in dem nach hinten zeigenden Marker gespeichert sind; und Bestimmen, dass eine Resegmentierung des TCP Segments stattgefunden hat, wenn der nach hinten zeigende Marker auf eine Stelle außerhalb des TCP Segments zeigt.
  • Ein Beispiel stellt ein Verfahren bereit, das eine Resegmentierung eines TCP Segments ermittelt. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Lokalisieren eines nach hinten zeigenden Markers in dem TCP Segment; Bestimmen einer Stelle eines Frame Headers unter Verwendung von Informationen, die in dem nach hinten zeigenden Marker gespeichert sind; und Bestimmen, dass eine Resegmentierung des TCP Frames stattgefunden hat, wenn die Anzahl von Nutzlast-Bytes in dem TCP Segment nicht gleich der Anzahl ist, die von einem Frame Header Längenfeld plus einem Pad und einem CRC Feld angegeben wird.
  • Ein Beispiel stellt ein Verfahren bereit, das eine Resegmentierung eines TCP Segments ermittelt. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Lokalisieren eines nach hinten zeigenden Markers in dem TCP Segment; Bestimmen einer Stelle eines Frame Headers unter Verwendung von Informationen, die in dem nach hinten zeigenden Marker gespeichert sind; und Bestimmen, dass eine Resegmentierung des TCP Frames stattgefunden hat, wenn die Anzahl von Nutzlast-Bytes in dem TCP Segment nicht gleich der Summe aller Werte eines Frame Header Längenfelds plus Pads und CRC Feldern für mehrere Frame PDUs ist, die in einem TCP Segment platziert sind.
  • Ein Beispiel stellt ein Verfahren bereit, das einen potentiellen Fehler in einem Bytestrom-Transportprotokoll-Segment ermittelt durch Vergleichen eines empfangenen Fehlerermittlungscodes mit einem berechneten Fehlerermittlungscode über eine Frame PDU. Das Verfahren kann einen oder mehrere der folgenden Schritte umfassen: Wenn der Vergleich vor der Verarbeitung des Bytestrom-Transportprotokolls stattfindet, Verwerfen des empfangenen Segments und Berufen auf das Bytestrom-Transport-Wiederherstellungs-Protokoll ohne Notwendigkeit einer spezifischen Frameschicht-Wiederherstellung; wenn der Vergleich nach der Verarbeitung des Bytestrom-Transportprotokolls stattfindet, Abbrechen der Verbindung; und Zulassen zusätzlichen Schutzes über das Bytestrom-Transport-Prüfsummen-Protokoll hinaus.
  • Ein Beispiel stellt ein Verfahren bereit, bei dem von einem TCP Segment keine Informationen gespeichert werden, um die Verarbeitung eines anderen TCP Segments zu ermöglichen.
  • Ein Beispiel stellt ein Verfahren bereit, das zusätzlichen Schutz eines Markers bereitstellt durch Anhängen von 16 Bits eines Fehlerermittlungscodes, beispielsweise Cyclical Redundancy Checking (CRC) (zyklische Redundanzprüfung), z.B. CRC16, an den Marker.
  • Ein Beispiel stellt ein Verfahren bereit, das ermöglicht, dass zusätzliche Informationen in den reservierten Bits (z.B. 16 reservierte Bits) des Markers getragen werden. Dies kann beispielsweise ein weiterer Marker für einen ULP-spezifischen Zweck oder beliebige andere nützliche Daten sein, die in einer Sequenz dieser 16 Bit Einheiten getragen werden können. Das reservierte Feld kann beispielsweise zum Signalisieren zwischen 2 ULPs verwendet werden.
  • Bei einigen Ausführungsformen kann die vorliegende Erfindung ein Frame Protokoll definieren, das es dem Empfänger ermöglicht, den Beginn von ULP-Steuer- und -Datenabschnitten, die in dem TCP/IP Bytestrom eingebettet sind, zu identifizieren. Jedes TCP Segment kann selbstbeschreibend sein, um eine Datenplatzierung zu ermöglichen, wenn es in der richtigen Reihenfolge oder außer der Reihe empfangen wird. Auf dem Frame Protokoll geschichtet kann sich beispielsweise ein Direct Data Placement/Remote Direct Memory Access (DDP/RDMA) Protokoll Header befinden. Der DDP/RDMA Header kann die Informationen hinsichtlich des zu verwendenden Puffers und der Offsets in diesen Puffer tragen. Sobald der Empfänger das DDP/RDMA Feld findet, kann er die Steuer- und Datenabschnitte einzeln benennen und die ULP Daten ohne Verarbeitung der protokollspezifischen Steuerinformationen platzieren. Die obere Schicht (Upper Layer (UL)) kann ein ULP Paket bilden, indem ULP Steuerinformationen oder eine ULP Dateneinheit (ULP Data Unit (ULPDU)) als Nutzlast für das Lower Layer Protocol (Protokoll niedrigerer Schicht) (z.B. RDMA/DDP) platziert werden. Die RDMA/DDP PDU kann in eine Frame PDU platziert werden. Die TCP Schicht kann ein TCP Segment bilden, indem ein TCP Header an das ULP/RDMA/DDP Frame-Paket angehängt wird. Die Pakete können durch andere Schichten des Protokollstapels (z.B. die Ethernet-Schicht) laufen, bevor sie auf einem Datenlink (z.B. einer Leitung) als Frames durch den Sender (z.B. einen Client) platziert werden.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden aus einer Durchsicht der folgenden detaillierten Beschreibung der vorliegenden Erfindung zusammen mit den beigefügten Zeichnungen ersichtlich, in denen gleiche Bezugszeichen durchwegs gleiche Teile bezeichnen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel des TUF-Protokolls.
  • 2 zeigt ein Beispiel des FIM-Protokolls zur Verwendung mit iSCSI.
  • 3 zeigt eine Ausführungsform eines Systems, das Frame-Markierung gemäß der vorliegenden Erfindung bereitstellen kann.
  • 4 zeigt eine Ausführungsform eines TCP Frames gemäß der vorliegenden Erfindung.
  • 5 zeigt eine Ausführungsform eines TCP Frames gemäß der vorliegenden Erfindung.
  • 6 zeigt eine Ausführungsform eines TCP Frames gemäß der vorliegenden Erfindung.
  • 7 zeigt eine Ausführungsform eines Marker Header- und Trailer-Formats gemäß der vorliegenden Erfindung.
  • 8 zeigt eine Ausführungsform eines Markerformats gemäß der vorliegenden Erfindung.
  • 9A–B zeigen ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Markieren von Frames gemäß der vorliegenden Erfindung.
  • 10A–D zeigen ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Empfangen von TCP Frames gemäß der vorliegenden Erfindung.
  • 11 zeigt ein Beispiel der Resegmentierung eines TCP Frames.
  • 12A–D zeigen Ausführungsformen spezieller Marker-Stellen gemäß der vorliegenden Erfindung.
  • 13 zeigt ein Beispiel eines Verfahrens, das resegmentierte TCP Segmente ermittelt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 3 zeigt eine Ausführungsform eines Systems, das ein Verfahren zur Identifizierung von Upper Layer Protocol (ULP)-Nachrichtengrenzen bereitstellt. Das Verfahren kann beispielsweise ULP-Nachrichtengrenzen in einem Bytestrom-Transportprotokoll (z.B. einem Frame-Protokoll) identifizieren. Ein Sender 10 (z.B. ein Client) kann über ein Netzwerk 20, z.B. das Internet, an einen Empfänger 30 (z.B. einen Server) gekoppelt sein. Das Netzwerk 20 kann optional eine Zwischenbox 40 aufweisen. Eine TCP-Verbindung kann zwischen dem Sender 10 und dem Empfänger 30 hergestellt werden. Die Zwischenbox 40 (z.B. eine Firewall) kann die TCP-Verbindung des Senders 10 beenden und eine andere TCP-Verbindung mit dem Empfänger 30 herstellen. Die Zwischenbox 40 kann einen ersten Satz TCP Frames von dem Sender 10 empfangen und den ersten Satz TCP Frames zu einem zweiten Satz TCP Frames resegmentieren. Die Resegmentierung des ersten Satzes TCP Frames kann beispielsweise zu kleineren TCP Frames führen. In einem solchen Fall ist es möglich, dass das von dem Sender 10 gesendete Frame-Schema nicht das von dem Empfänger 30 empfangene Frame-Schema ist.
  • 4 und 5 zeigen Ausführungsformen von TCP Frames gemäß der vorliegenden Erfindung. Der TCP Frame 50 kann beispielsweise einen TCP Header 60, einen Frame Header 70, einen oder mehrere Marker 80, einen Frame Trailer 90, der gegebenenfalls beispielsweise ein Pad oder Cyclical Redundancy Checking (CRC) enthält, und Nutzlast 100, die beispielsweise ULP Daten enthalten kann, aufweisen. 4 zeigt eine Ausführungsform, bei der sich ein Marker 80 in dem TCP Frame 50 befindet, und 5 zeigt eine Ausführungsform, bei der sich zwei Marker 80 in dem TCP Frame 50 befinden. Obwohl einer oder zwei Marker 80 in dem TCP Frame 50 gezeigt sind, können sich in dem TCP Frame 50 null, drei oder mehr Marker befinden. Der TCP Header 60 kann ein herkömmlicher TCP Header 60 sein und bei spielsweise Stelleninformationen innerhalb des TCP Sequenznummernraums bereitstellen. Das CRC 90 kann optional für Fehlerermittlung verwendet werden. Das CRC 90 kann beispielsweise den Frame Header 70, den einen oder die mehreren Marker 80, die Nutzlast 100 und, wenn vorhanden, das Pad 100 abdecken. Andere Arten von Fehlerermittlung oder Fehlerkorrektur können ebenfalls anstelle oder zusätzlich zu dem CRC 90 verwendet werden. Das CRC kann beispielsweise CRC-32c verwenden.
  • Der Frame Header 70 (z.B. ein Marker Header) kann nach dem TCP Header 60 angeordnet sein. Der Frame Header 70 folgt unmittelbar nach dem letzten Byte des TCP Headers 60, der beliebige potentielle TCP Optionen enthalten kann, in dem TCP Frame 50. Der Sender 10 kann garantieren, dass alle TCP Segmente (einschließlich Neuübertragungen) als erstes Byte, das unmittelbar auf den TCP Header (plus Optionen, wenn verwendet) folgt, den Frame Header 70 aufweisen. Der Frame Header 70 kann Informationen wie beispielsweise Dateninformationen oder Steuerinformationen (z.B. ULP Steuerinformationen) enthalten. Der Frame Header 70 kann auch Informationen hinsichtlich Grenzen der Nutzlast 100 bereitstellen, die dem Frame Header 70 entsprechen. Außerdem kann der ULP Header 110 spezifische Informationen darüber enthalten, in welchem Speicher (z.B. einem Anwendungspuffer) und insbesondere wo in dem Speicher des Empfängers 10 die Nutzlast 100 platziert (z.B. gespeichert) werden sollte. Der ULP Header 110 kann beispielsweise einen DDP/RDMA Header/Trailer oder andere Arten von ULP Headern/Trailern enthalten. 6 zeigt eine Ausführungsform eines TCP Frames 50, der den Frame Header 70 und einen separaten DDP/RDMA Header 110 aufweist.
  • 7 zeigt eine Ausführungsform eines Marker Header-Formats gemäß der vorliegenden Erfindung. Eine Nutzlast-Länge kann die Länge in Bytes der in dem TCP Segment enthaltenen ULPDU angeben. Es kann sein, dass sie die Länge des Frame Headers selbst, des Pads, des CRCs oder eines beliebigen Markers, der in der Frame PDU vorhanden sein kann, nicht enthält. Die ULPDU kann beispielsweise die ULP Daten (oder die ULP Steuerung) sein. Das Pad kann beispielsweise bis zu drei Bytes bereitstellen, um die Länge des Frames zu einem Modulo 4 Byte zu machen. Das CRC kann beispielsweise ein CRC-32c sein. Bei einem Beispiel kann die Gesamtlänge in Bytes der ULPDU und der Frame Header und des Trailers in dem TCP Paket die Nutzlast-Länge plus die Länge des CRCs (z.B. 4 Bytes für CRC-32c) plus die Anzahl von Pad-Bytes sein.
  • In einem TCP Segment können sich mehrere Frame PDUs befinden. Jede von ihnen kann unabhängig von dem Empfänger 30 verarbeitet werden.
  • Der Marker 80 ist ein nach hinten zeigender Marker. Der Marker 80 kann nach hinten zu dem Beginn des Frame Headers 70 zeigen, wodurch er den Frame Header 70 identifiziert. Wenn in dem TCP Frame 50 mehr als ein Marker 80 vorhanden ist, kann/können, wie in 5 gezeigt ist, ein oder mehrere Marker nach hinten auf denselben Frame Header 70 zeigen. Bei einer Ausführungsform zeigen alle Marker 80 in dem TCP Frame 50 auf den Frame Header 70. Somit ist, anders als beim TUF-Protokoll, die Identifizierung der ULP Nachrichtengrenze (z.B. der Beginn des Frame Headers) vollkommen deterministisch und keinem wahrscheinlichkeitstheoretischen Fehlschlag unterworfen. Somit kann, anders als beim FIM-Protokoll, ein Zwischenspeichern minimiert werden, da jedes TCP Segment, das einen Marker 80 trägt, selbstbeschreibend ist und es dem Empfänger 30 ermöglicht, die Puffer-Platzierungs-Informationen, die in diesem Segment, beispielsweise in dem ULP Header 110, getragen werden, zu lokalisieren. Der Marker 80 kann verwendet werden, um von den beispielsweise in dem ULP Header platzierten Puffer-Platzierungs-Informationen abzuleiten, ob das TCP Segment in der richtigen Reihenfolge oder außer der Reihe empfangen worden ist. Ein TCP Segment kann beispielsweise in der richtigen Reihenfolge empfangen werden, wenn alle vorhergehenden TCP Segmente mit niedrigeren TCP Sequenznummern, die legal empfangen werden können, innerhalb des TCP „Windows" liegen. Auch ein TCP Segment, das außer der Reihe empfangen worden ist, jedoch einen Marker 80 trägt, kann verarbeitet werden, um die ULP Daten, die es enthält, zu platzieren, da der Marker 80 auf den Frame Header 70 zeigt. Aus dem Frame Header 70 kann der Empfänger 30 den ULP Header 110 ermitteln, der die Pufferinformationen enthalten kann. Der TCP Header kann gemäß dem TCP-Protokoll separat verarbeitet werden.
  • Der Marker 80 kann von dem Sender 10 in einem vorgegebenen Intervall in dem TCP Strom platziert werden. Der Marker 80 kann beispielsweise alle 512 Bytes in dem TCP Strom platziert werden. Wenn das vorgegebene Intervall genügend klein ist (z.B. kleiner als das kleinste Transportsegment), dann kann in fast jedem TCP Segment 50 oder in jedem TCP Segment 50 ein Marker vorhanden sein. Wenn das TCP Segment 50 kürzer als das vorgegebene Intervall ist, dann gibt es keine Garantie, dass ein Marker in dem TCP Segment vorhanden ist. Wenn ein Marker 80 noch in dem kurzen TCP Frame 50 vorhanden ist (z.B. einem TCP Segment, das kürzer ist, als das vorgegebene Intervall), dann kann der Frame Header 70 lokalisiert und das TCP Segment 50 wie oben beschrieben verarbeitet werden (z.B. kann die Nutzlast 100 direkt an der geeigneten Stelle in dem Anwendungspuffer platziert werden). Wenn andererseits kein Marker 80 vorhanden ist, kann der Empfänger 30 die Nutzlast 100 immer noch gemäß Informationen, die in dem ULP Header 110 vorhanden sein können, platzieren, wenn das TCP Segment in der richtigen Reihenfolge empfangen worden ist (z.B. alle vorhergehenden TCP Segmente mit niedrigerer TCP Sequenznummer, die legal empfangen werden können, innerhalb des TCP Windows liegen). In diesem Fall kann dieses Segment immer noch verarbeitet werden, auch wenn eine Zwischenbox vorhanden ist und sie den TCP Bytestrom resegmentiert hat. Dies beruht auf der Tatsache, dass die vorhergehenden Segmente verarbeitet wurden, und wenn kein Fehler aufgetreten ist, dann ist bekannt, dass das nächste Byte, das von dem Sender in dem TCP Bytestrom platziert worden ist, das erste Byte des Frame Headers 70 ist. Ein anderer Fall tritt ein, wenn das TCP Segment außer der Reihe ohne Marker empfangen wird. In diesem Fall platziert der Empfänger das TCP Segment, das er empfangen hat, in einem temporären Puffer (oder lässt das TCP Segment fallen und verarbeitet nur solche in der richtigen Reihenfolge), wodurch ein Bedarf an einem Puffer mit geringer Leistungsverschlechterung ausgeschlossen wird. Die Puffergröße kann klein sein und annähernd berechnet werden als beispielsweise das vorgegebene Intervall multipliziert mit der Anzahl von TCP Löchern, die der Empfänger pro TCP Verbindung unterstützen möchte. Im Gegensatz dazu benötigt das FIM-Protokoll eine Puffergröße des FIM-Intervalls plus eine maximale Übertragungseinheit (Maximum Transmission Unit (MTU)) multipliziert mit der Anzahl von TCP Löchern und den in dem Marker enthaltenen Daten für jeden Marker, multipliziert mit der Anzahl von TCP Verbindungen. Der Empfänger kann statistisch weniger Ressourcen vorsehen, da nicht alle Verbindungen gleichzeitig TCP Segmente außer der Reihe zu erwarten haben. Wenn der Empfänger keinen Puffer mehr für TCP Segmente außer der Reihe zur Verfügung hat, kann er alle nachfolgend außer der Reihe empfangenen TCP Segmente fallen lassen, bis ein Puffer beispielsweise aufgrund des Stopfens von Löchern in dem TCP Strom frei geworden ist.
  • Die TCP Frames 50 können selbstbeschreibend sein. Außerdem braucht, anders als beim FIM-Protokoll, der Empfänger 30 nicht unbedingt Zustandsinformationen von einem Frame zu einem anderen Frame zu tragen. Da fast jeder TCP Frame 50 einen Marker 80 enthalten kann, kann fast jeder TCP Frame 50 unabhängig verarbeitet werden. Das unabhängige Verarbeiten der TCP Frames 50 kann die Pufferer fordernisse wesentlich reduzieren, insbesondere in einer TCP Umgebung, in der TCP Frames 50 bei Eintreffen bei dem Empfänger 30 außer der Reihe sein können.
  • Das Platzieren des Markers 80 an einem vorgegebenen Intervall kann dem Empfänger 30 auch bekannte Stellen in dem TCP Strom zur Verfügung stellen, an denen er den Marker 80 finden kann. Somit kann die relative Stelle des Markers 80 in Bezug auf den TCP Header 60 von TCP Frame 50 zu TCP Frame 50 variieren. Der Empfänger 30 kann innerhalb des TCP Sequenznummern-Raums von den TCP Headern 60 Stelleninformationen bestimmen. Bei einem Beispiel, bei dem der Marker 80 alle 512 Bytes in dem TCP Strom platziert wird, kann der Empfänger 30 eine Modulo 512 Operation durchführen, um den Marker 80 zu lokalisieren. Da der TCP Sequenzraum bei einem Nicht-Null-Wert beginnen kann, der von TCP Verbindung zu TCP Verbindung variieren kann, kann das vorgegebene Intervall durch Subtrahieren des Anfangs-Nicht-Null-Werts von der TCP Sequenznummer, die in dem TCP Header getragen wird, berechnet werden, und durch Durchführen eines Modulo 512 für das Ergebnis. Anders als beim FIM-Protokoll beseitigt die Fähigkeit, die Verwendung des Frame Protokolls ohne Verhandlung zu beginnen, alle zusätzlichen Wartezeiten, indem die beiden Maschinen mit den Vorteilen eines Frame Protokolls miteinander in Kommunikation gebracht werden. Auch der zusätzliche Code, der geschrieben und auf der NIC gespeichert werden muss, um die Verhandlung durchzuführen, kann gespart werden.
  • Die vorliegende Erfindung sieht auch vor, dass anstelle des vorgegebenen Intervalls der Sender 10 und der Empfänger 30 ein Intervall aushandeln können. Des Weiteren können Band-externe Kommunikationen verwendet werden, um das Markerintervall einzustellen. Der Wert des Markerintervalls kann jederzeit nach Initialisierung durch das ULP eingestellt werden. Dies kann einen Ausgleich zwischen dem Wire Protocol Overhead und der empfängerseitigen Resegmentierungs-Puffergröße pro Verbindung ermöglichen.
  • 8 zeigt eine Ausführungsform eines Markerformats gemäß der vorliegenden Erfindung. Bei einer Ausführungsform ist der Marker 32 Bit lang. Die ersten 16 Bits (MSB) können den Abstand zum Beginn des Frame Headers 70 angeben. Der 16-Bit Marker kann als 16-Bit vorzeichenlose ganze Zahl interpretiert werden, die die Anzahl von Bytes in dem TCP Sequenzraum von dem ersten Byte des Frame Headers 70 zu dem Marker 80 trägt. Wenn beispielsweise der Anfangs-TCP-Se quenzraum bei Byte 12 beginnt und bei dem aktuellen TCP Segment das erste Nutzlast-Byte bei Byte 112 in dem TCP Sequenzraum angeordnet ist. Der nächste Marker kann in dem TCP Sequenzraum an dem 32-Bit Feld angeordnet werden, das in dem Byte 524 angeordnet ist, wenn ein Marker Intervall von 512 Bytes angenommen wird. Der Marker kann den Wert 412 haben (d.h. 112 von 524 subtrahiert). Bei einer Ausführungsform sind, da die Felder des zum Framen formatierten TCP Segments 4-Byte-ausgerichtet sind, die letzten 2 Bits des Markers Nullen. Die nächsten 16 Bits (LSB) können für weiteres Framen (z.B. NFS) oder eine andere Signalisierungsfunktion reserviert werden. Bei einer Ausführungsform können die nächsten 16 Bits (LSB) eine Wiederholung der ersten 16 Bits sein. Bei einer weiteren Ausführungsform können die nächsten 16 Bits (LSB) Fehlerkorrektur- oder Fehlerermittlungs-Code (z.B. CRC-16) tragen, um den Inhalt des Markers zu schützen. Bei einer weiteren Ausführungsform können die nächsten 16 Bits (LSB) ULP-spezifische Informationen tragen und einen Kommunikationskanal zwischen den ULPs bedienen oder verwendet werden, um auf ein ULP-spezifisches Feld zu zeigen (z.B. ein zweiter Marker, der beispielsweise auf einen NFS Header zeigt). Bei einer anderen Ausführungsform können die 16-Bit Felder geswappt werden. Anders als beim FIM-Protokoll kann der Overhead des Markers nur 32 Bit betragen. Das FIM-Protokoll hat 2 Kopien desselben Markers, die jeweils 32 Bits belegen, da das Intervall zwischen Markern lang sein kann und eine Mittelbox in der Mitte eines Markers resegmentieren kann. Eine Ausführungsform der vorliegenden Erfindung kann beispielsweise nur eine Kopie des Markers benötigen.
  • Im Betrieb kann der Sender 10 einen Protokollstapel verwenden, der obere Schichten (Upper Layers; ULs) sowie beispielsweise TCP/IP Schichten bei der Bildung der TCP Frames 50 umfasst. 9A–B zeigen ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Markieren von Frames gemäß der vorliegenden Erfindung. In Schritt 120 kann eine TCP Verbindung beispielsweise zwischen dem Sender 10 und dem Empfänger 30 hergestellt werden. In Schritt 130 kann der Sender 10 den Frame Header 70 in dem TCP Segment unmittelbar dem TCP Header folgend platzieren. In Schritt 140 kann ein DDP/RDMA Header in dem TCP Segment unmittelbar dem Frame Header 70 folgend platziert werden. Bei einem Beispiel kann der Sender 10 einen DDP/RDMA Header/Trailer 110 anhängen, bevor er den Frame Header 70 anhängt. In Schritt 150 kann der Sender 10 die ULPDU-Länge erhalten und sie so segmentieren, dass sie in ein TCP Segment passt. Als nächstes kann der Sender 10 die Stelle und den Inhalt des einen oder mehrerer Marker berechnen. In Schritt 160 kann der Sender 10 die Stelle des nächsten Markers berechnen, indem er beispielsweise das vorgegebene Intervall zu der Stelle des letzten Markers addiert. In Schritt 170 kann der Sender 10 prüfen, ob der nächste Marker innerhalb der Grenzen des TCP Segments liegt. Dieser Schritt kann beispielsweise die maximale Übertragungseinheit für das TCP Segment und die Menge von zu übertragenden ULPDU Daten in Betracht ziehen. Wenn der nächste Marker außerhalb der Grenzen des TCP Segments liegt, dann kann in Schritt 210 der Sender 10 die ULPDU Daten unmittelbar nach dem Frame Header 70 und dem DDP/RDMA Header 110, wenn vorhanden, beginnend platzieren (und den einen oder mehrere Marker überspringen). Wenn der nächste Marker innerhalb das TCP Segment fällt, kann der Sender 10 in Schritt 180 prüfen, ob der nächste Marker unmittelbar nach dem TCP Header fällt. Wenn der nächste Marker unmittelbar nach dem TCP Header fällt, wird er unmittelbar nach dem TCP Header und vor dem Frame Header 70 platziert. In Schritt 190 wird der Markerwert auf 0 gesetzt (d.h. der Frame Header folgt unmittelbar auf diesen Marker). Dann kann der Sender 10 in Schritt 160 sehen, ob mehr Marker zu platzieren sind. In Schritt 180, wenn der nächste Marker nicht unmittelbar nach dem TCP Header kommt, kann in Schritt 200 der Sender 10 ermitteln, ob der nächste Marker in das nächste Byte nach der Stelle des CRC Felds fällt. Wenn der nächste Marker in das nächste Byte nach der Stelle des CRC Felds fällt, dann wird in Schritt 220 der Marker nicht platziert. In Schritt 210 kann, da der letzte Marker platziert worden ist, die ULPDU platziert werden und das CRC kann berechnet und platziert werden. Wenn der Marker 80 nicht unmittelbar nach dem CRC Feld fällt, dann fällt er in das TCP Segment. In Schritt 230 wird der Marker 80 berechnet und platziert, und das Verfahren geht zurück zu Schritt 160, um die Stelle des nächsten Markers 80 in dem TCP Segment zu finden. Nachdem alle Marker 80 durch den Sender 10 platziert worden sind, kann Schritt 170 zu Schritt 210 weitergehen. In Schritt 210 kann, da der letzte Marker platziert worden ist, die ULPDU um die Marker herum platziert werden und das CRC kann berechnet und platziert werden. Das CRC kann die komplette Frame PDU von dem ersten Byte, das dem TCP Header unmittelbar folgt, bis zu dem letzten Byte des Pads, wenn vorhanden, oder der ULPDU Daten abdecken. Die CRC Berechnung kann am Ende des Frames angehängt werden, um den TCP Frame 50 zu bilden. Obwohl in einer bestimmten Reihenfolge beschrieben, können die Schritte in anderer Reihenfolge angeordnet werden, und einige Schritte können gleichzeitig stattfinden oder weggelassen werden. Der Marker 80 kann beispielsweise vor oder gleichzeitig mit dem Anhängen des TCP Headers 60 eingesetzt werden. Anders als beim FIM-Protokoll deckt das CRC die Marker ab, was beispielsweise einen sehr einfachen Empfänger ermöglicht, bei dem die komplette TCP Nutzlast außer den letzten 4 Bytes (von denen angenommen wird, dass sie das CRC sind) der CRC Berechnung unterliegt. Der FIM-Protokoll-Mechanismus erfordert das Lokalisieren der Marker und ihren Ausschluss von der CRC Berechnung, was eine mühsamere und aufwendige Operation ist.
  • Der Sender 10 kann die PMTU (Path Maximum Transmission Unit) kennen und wissen, wie sie sich verändern kann. Die TCP-Schicht-variable maximale Segmentgröße kann von der PMTU beeinflusst werden. Bei der Neuübertragung kann der Sender 10, je nach TCP Erfordernissen, den Bytestrom auf dieselbe Weise segmentieren, in der die ursprüngliche Frame PDU segmentiert worden ist (z.B. folgt das erste Byte des Frame Headers dem TCP Header, die Länge des TCP Segments kann eine komplette Frame PDU oder mehrere komplette Frame PDUs umfassen). Die PMTU kann sich zwischen der ersten Übertragung und der Neuübertragung ändern. Der Sender 10 kann nochmals das TCP Segment erzeugen, das er beim ersten Mal erzeugte. Wenn die PMTU kleiner geworden ist, kann die ursprüngliche Segmentgröße die erlaubte PMTU übersteigen. Ein Mechanismus mit niedrigeren Schichten, z.B. IP Fragmentierung, kann verwendet werden.
  • Bei einem Netzwerk, bei dem die PMTU zu klein ist, um eine geeignete Operation zu ermöglichen, kann der Sender 10 einem „Notfall-Modus" folgen, wie er in dem TUF-Protokoll dargestellt ist. Das TUF-Protokoll wird beispielsweise beschrieben in „TCP ULP Framing Protocol (TUF): draft-ietf-tsvwg-tcp-ulp-frame-01" von Bailey et al.
  • Der Sender 10 kann dann den TCP Frame 50 senden. 10A–D zeigen ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Empfangen der TCP Frames 50 gemäß der vorliegenden Erfindung. In Schritt 240 kann der TCP Frame 50 von dem Empfänger 30 empfangen werden. Das TCP Segment kann in der richtigen Reihenfolge sein (z.B. das nächste erwartete Segment in dem TCP Sequenznummernraum) oder außer der Reihe (z.B. ein TCP Segment, das sich an der rechten oder linken Kante des TCP Windows befindet). In Schritt 250 kann der Empfänger 30 den Marker 80 in dem TCP Frame 50 lokalisieren. Der Empfänger 30 kann TCP Sequenznummerninformationen von dem TCP Header für den TCP Frame 50 erhalten. Außerdem kann der Empfänger, um den Marker 80 zu lokalisieren, den Anfangs-Nicht-Null-Wert der TCP Sequenznummer für das erste TCP Nutzlastbyte in diesem bestimmten TCP Strom subtrahieren. Der Empfänger 30 kann dann eine Modulo-Operation für die TCP Sequenznummern unter Verwendung des vorgegebenen Intervalls durchführen, an dem der Marker 80 angeordnet ist. Der Empfänger 30 muss nicht alle Marker lokalisieren, wenn mehr als einer vorhanden ist, da die Verwendung des einen Markers ausreichend sein kann. In Schritt 260 kann der Empfänger ermitteln, ob ein Marker innerhalb des TCP Segments 50 vorhanden ist. Wenn vorhanden, kann der Empfänger in Schritt 270 den Frame Header 70 unter Verwendung der in dem Marker 80 gespeicherten Informationen lokalisieren. Bei einem Beispiel kann der Marker 80 ein nach hinten zeigender Zeiger sein, wobei ein Deltawert in dem Marker 80 gespeichert ist. Der Deltawert kann die Stelle des Frame Headers 70 durch Angeben der Anzahl von Bytes nach hinten von der TCP Sequenznummer des Markers 80 zu der TCP Sequenznummer des Beginns des ULP Headers 70 angeben. In Schritt 280 kann der Empfänger 30 die Frame PDU Länge von dem Längenfeld innerhalb des Frame Headers 70 erhalten. In Schritt 290 kann der Empfänger 30 das CRC über die komplette Frame PDU berechnen und mit dem in dem CRC Feld dieser Frame PDU erhaltenen Wert vergleichen. In Schritt 300 kann der Empfänger 30 ermitteln, ob das CRC gültig ist. Wenn das CRC stimmt, kann der Empfänger 30 in Schritt 310 Steuerinformationen und/oder Dateninformationen von dem Frame Header 70 und/oder dem DDP/RDMA Header 110 erhalten. In Schritt 320 kann der Empfänger 30 die gemäß den Steuerinformationen und/oder Dateninformationen geforderte Operation durchführen. Der DDP/RDMA Header 110 kann beispielsweise ULP Steuerinformationen enthalten. Bei einem anderen Beispiel kann der DDP/RDMA Header 110 Grenzinformationen über die ULP Nutzlast enthalten. Bei einem weiteren Beispiel kann der DDP/RDMA Header 110 angeben, in welchem Speicher (z.B. einem bestimmten Anwendungspuffer) und an welcher Stelle innerhalb des Speichers die ULPDU Daten direkt platziert werden sollten. Der Empfänger 30 kann das Frame Header Längenfeld verwenden, um beispielsweise zu sehen, ob ein Pad vorhanden ist (d.h., ob die Länge kein ganzzahliges Vielfaches von 4 Bytes ist). Der Empfänger 30 kann die ULPDU Daten an dieser Speicherstelle platzieren, ohne die Pad-Bytes (z.B. 0–3 Bytes) zu platzieren. In Schritt 300, wenn das CRC nach der durch den Empfänger 30 durchgeführten Prüfung nicht stimmt, kann der Empfänger 30 in Schritt 360 ermitteln, ob die TCP Schichtverarbeitung für das bestimmte Segment durchgeführt worden ist, was für Schichtimplementierung ohne Veränderung an dem TCP der Fall sein kann. Wenn die TCP Verarbeitung für dieses TCP Segment 50 durchgeführt wurde, dann kann der Empfänger 30 in Schritt 370 die TCP Verbindung abbrechen. Es gibt keinen Weg, diesen Fehler wieder gut zu ma chen, der von der stärkeren CRC erkannt worden ist, die von der Frame Schicht verwendet wird, der aber durch den weniger rigorosen Test der TCP Prüfsumme durchgeschlüpft sein kann. In Schritt 360, wenn die Frame Schicht CRC Prüfung vor der TCP Schichtverarbeitung stattfindet (z.B. eine NIC, die Ethernet und IP und TCP und Framen implementiert, wo lokale Optimierung ohne Bruch der Übereinstimmung mit IETF RFCs durchgeführt werden kann), kann dann in Schritt 380 der Empfänger 30 das TCP Segment ruhig fallen lassen und es dem TCP Schicht Wiederherstellungsmechanismus ermöglichen, es neu zu übertragen. Dies kann das Erfordernis verringern oder beseitigen, Fehlerbehebungsmechanismen in der Frame Schicht hinzuzufügen (anders als die komplexen Fehlerbehebungsmechanismen, die von iSCSI verwendet werden), während es der Frame Schicht erlaubt, die erhöhte Integrität von Nutzlast, die durch CRC geschützt ist, zu genießen.
  • Wenn die TCP Frames 50 kürzer sind, als das vorgegebene Markerintervall von beispielsweise 512 Bytes, dann ist es möglich, dass der TCP Frame 50 den Marker 80 nicht enthält. In Schritt 260 kann der Empfänger ermitteln, ob der Marker in dem TCP Segment vorhanden ist. Wenn kein Marker vorhanden ist, kann der Empfänger 30 in Schritt 330 ermitteln, ob dieses TCP Segment 50 in der richtigen Reihenfolge empfangen worden ist. Wenn die TCP Segmente in der richtigen Reihenfolge empfangen worden sind, gibt es keine Notwendigkeit zum Zwischenspeichern und sie können direkt verarbeitet werden. In Schritt 340 kann der Empfänger 30 beispielsweise annehmen, dass der Frame Header an dem ersten Byte, das dem TCP Header unmittelbar folgt, beginnt. Das Verfahren kann dann zu Schritt 280 zurückgehen. In Schritt 330, wenn die TCP Segmente außer der Reihe empfangen worden sind, kann der Empfänger in Schritt 350 begrenztes Zwischenspeichern von ca. 512 Bytes verwenden, da es beispielsweise für jedes Loch in der TCP Sequenz nicht mehr als 512 Byte TCP Segmente gibt, die keinen Marker tragen. Sobald das TCP „Loch" gestopft ist und alle vorhergehenden TCP Segmente verarbeitet und als fehlerfrei gefunden worden sind, kann der Empfänger in Schritt 340 fortfahren. Wenn die TCP Frames 50 außer der Reihe empfangen worden sind und wenn der Empfänger 30 wünscht, mehr als ein „Loch" in dem TCP Sequenznummernraum zu unterstützen, kann zusätzliches Zwischenspeichern verwendet werden (z.B. 512 Bytes für jedes „Loch").
  • Der Marker 80 kann auch verwendet werden, um Resegmentierung der TCP Frames 50 zu ermitteln. 11 zeigt ein Beispiel der Resegmentierung des TCP Frames 50 in zwei TCP Frames 50A, 50B gemäß der vorliegenden Erfindung. Bei diesem Beispiel kann sich der Frame Header 70 in dem ersten TCP Frame 50A und der Marker 80 in dem zweiten TCP Frame 50B befinden. Wenn der Empfänger 30 den Marker 80 lokalisiert, kann er die Stelle des Frame Headers 70 ermitteln. Wenn jedoch die Stelle des Frame Headers 70 nicht in dem TCP Frame 50B ist, kann der Empfänger 30 feststellen, dass eine Resegmentierung stattgefunden hat. Eine Zwischenbox 40 kann beispielsweise die TCP Frames 50 von dem Sender 10 resegmentiert haben. Wenn die Stelle des Frame Headers 70 in dem TCP Frame 50B ist, jedoch nicht am Beginn des TCP Frames 50B (d.h. der Frame Header 70 befand sich nicht unmittelbar nach dem TCP Header 60), dann kann der Empfänger 30 feststellen, dass eine Resegmentierung stattgefunden hat. Bei einer Ausführungsform kann, wenn eine Resegmentierung stattgefunden hat, der Empfänger 30 die beschleunigten Express-Dienste wie beispielsweise direkte Datenplatzierung (Direct Data Placement) nicht anbieten. Bei einer anderen Ausführungsform kann der Empfänger 30 den Marker 80 verwenden, um die ursprünglich von dem Sender 10 übertragenen TCP Segmente zu rekonstruieren (d.h. ihren Frame Header zu finden und die in ihm und in dem DDP/RDMA eingebetteten Informationen zu verwenden, um die von dem ULP platzierten Informationen zu finden) und alle Dienste wie für normalen Empfang durchzuführen. Wie in 13 gezeigt ist, ist ein anderes Verfahren, das der Empfänger 30 verwenden kann, um Resegmentierung festzustellen, dass ein Marker 80 nicht vollständig in dem empfangenen TCP Segment vorhanden ist. Wie in 13 gezeigt ist, kann das Längenfeld des Frame Headers 70 auch von dem Empfänger 30 verwendet werden, um zu ermitteln, dass das TCP Segment eine (oder mehrere) komplette Frame PDUs enthält. Der Empfänger 30 kann eine Resegmentierung identifizieren, indem er herausfindet, dass der Frame Header 70 dem TCP Header 60 nicht unmittelbar folgt, oder falls das TCP Segment mehr oder weniger Bytes enthält, als von dem Längenfeld des Frame Headers angegeben sind (siehe z.B. 7). Wenn mehr Bytes gefunden werden, kann der Empfänger 30 die Bytes, die der CRC unmittelbar folgen, als Frame Header der nächsten Frame PDU behandeln (d.h., mehr als eine Frame PDU ist in ein TCP Segment gepackt worden). Wenn das letzte Byte der letzten Frame PDU (z.B. das CRC Feld) nicht das letzte Byte der TCP Segment Nutzlast ist, hat eine Resegmentierung stattgefunden.
  • 12A–D zeigen Ausführungsformen besonderer Markerstellen gemäß der vorliegenden Erfindung. 12A zeigt ein Beispiel eines TCP Frames 50, in dem der Marker 80, wenn an dem vorgegebenen Interval platziert, sich unmittelbar nach der CRC 90 befinden würde. Bei einer Ausführungsform kann der Marker 80 Teil des aktuellen Frames sein und nach hinten zu dem Frame Header 70 des aktuellen Frames zeigen. 12B zeigt eine andere Lösung des Problems, dass der Marker 80 unmittelbar nach der CRC 90, wie in 12A gezeigt, platziert wird. In diesem Beispiel kann der Marker 80 an die Vorderseite des nächsten TCP Frames zwischen dem TCP Header 60 und dem Frame Header 70 bewegt werden. Der Marker 80 kann dann nach vorne zu dem Frame Header 70 zeigen (und einen Wert 0 haben). 12C zeigt ein Beispiel, in dem der Marker 80 in der Mitte des ULP Headers (z.B. des DDP/RDMA Headers 110) platziert ist. Dieser Fall bereitet keine besonderen Probleme, weil der Marker noch wirksam auf den Beginn des Frame Headers 70 zeigen kann. 12D zeigt ein Beispiel, bei dem der Marker 80 in der Mitte des CRC 90 platziert ist. Da sowohl der Marker 80 als auch das CRC 90 beispielsweise vier ausgerichtete Bytes umfassen können, kann dieses Beispiel nicht erlaubt sein.

Claims (5)

  1. Verfahren zum Identifizieren von Protokollnachrichten höherer Schichten in einem Bytestrom-Transportprotokoll, das die folgenden Schritte umfasst: Anfügen eines Frame Headers (70), der einen Protokoll Header (110) höherer Schichten eines Frames aufweist, an eine Protokolldateneinheit (100) höherer Schichten, wobei der Frame Header (70) unmittelbar nach dem Bytestrom-Transportprotokoll-Header platziert wird, wobei der Frame Header (70) ein Längenfeld aufweist, das die Länge der Protokolldateneinheit (100) höherer Schichten umfasst; und Einfügen eines Markers (80) in den Bytestrom, wobei der Marker (80) nach hinten zu dem Frame Header (70) zeigt und zu einem vorgegebenen Intervall eingefügt wird.
  2. Verfahren nach Anspruch 1, wobei der Frame Header (70) wenigstens eine von Steuerinformationen und Dateninformationen aufweist.
  3. Verfahren nach Anspruch 1, wobei der Marker (80) einen Deltawert aufweist, der eine Anzahl von Bytes vor einer Marker-Stelle bis zu einer bestimmten Stelle in dem Frame Header (70) angibt.
  4. Verfahren nach Anspruch 1, wobei der Marker (80) einen Deltawert aufweist, der eine Anzahl von Bytes vor einer Marker-Stelle bis zu einer Anfangsstelle des Frame Headers (70) angibt.
  5. Verfahren nach Anspruch 1, wobei der Marker (80) in dem Frame Header (70) angeordnet ist.
DE60309527T 2002-03-08 2003-03-07 System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten Expired - Lifetime DE60309527T2 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US36338102P 2002-03-08 2002-03-08
US363381P 2002-03-08
US36335602P 2002-03-11 2002-03-11
US363356P 2002-03-11
US37285202P 2002-04-16 2002-04-16
US37285102P 2002-04-16 2002-04-16
US372851P 2002-04-16
US372852P 2002-04-16
US10/230,643 US7295555B2 (en) 2002-03-08 2002-08-29 System and method for identifying upper layer protocol message boundaries
US230643 2002-08-29

Publications (2)

Publication Number Publication Date
DE60309527D1 DE60309527D1 (de) 2006-12-21
DE60309527T2 true DE60309527T2 (de) 2007-09-13

Family

ID=27767949

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60309527T Expired - Lifetime DE60309527T2 (de) 2002-03-08 2003-03-07 System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten

Country Status (3)

Country Link
US (5) US7295555B2 (de)
EP (1) EP1345382B1 (de)
DE (1) DE60309527T2 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7295555B2 (en) * 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7224692B2 (en) * 2002-09-04 2007-05-29 Broadcom Corporation System and method for fault tolerant TCP offload
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7283522B2 (en) * 2002-09-27 2007-10-16 Sun Microsystems, Inc. Method and apparatus for offloading message segmentation to a network interface card
US20040073690A1 (en) 2002-09-30 2004-04-15 Neil Hepworth Voice over IP endpoint call admission
US7359979B2 (en) 2002-09-30 2008-04-15 Avaya Technology Corp. Packet prioritization and associated bandwidth and buffer management techniques for audio over IP
US7369570B2 (en) * 2003-03-03 2008-05-06 Nec Corporation iSCSI apparatus and communication control method for the same
US7383483B2 (en) * 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
US7177941B2 (en) * 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
US7912979B2 (en) * 2003-12-11 2011-03-22 International Business Machines Corporation In-order delivery of plurality of RDMA messages
JP4755596B2 (ja) 2003-12-11 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送エラー検査
US20050175012A1 (en) * 2004-02-06 2005-08-11 Telefonaktiebolaget L.M. Ericsson (Publ) System and method for transmitting and receiving data frames in a NAK-based window protocol
GB0409331D0 (en) * 2004-04-27 2004-06-02 Ibm Recovery from MSS change
DE502004005197D1 (de) * 2004-05-11 2007-11-22 Tektronix Int Sales Gmbh Protokolltester zur Durchführung und Verfahren zur Implementierung einer Testaufgabe
US7978827B1 (en) 2004-06-30 2011-07-12 Avaya Inc. Automatic configuration of call handling based on end-user needs and characteristics
US20060168274A1 (en) * 2004-11-08 2006-07-27 Eliezer Aloni Method and system for high availability when utilizing a multi-stream tunneled marker-based protocol data unit aligned protocol
US7580406B2 (en) * 2004-12-31 2009-08-25 Intel Corporation Remote direct memory access segment generation by a network controller
CN101146742B (zh) * 2005-03-30 2013-05-01 揖斐电株式会社 含碳化硅颗粒、制造碳化硅质烧结体的方法、碳化硅质烧结体以及过滤器
US20070115833A1 (en) * 2005-11-21 2007-05-24 Gerald Pepper Varying the position of test information in data units
US7643431B2 (en) * 2006-11-10 2010-01-05 Ixia Distributed packet group identification for network testing
JP4813602B2 (ja) * 2006-12-15 2011-11-09 トムソン ライセンシング 時分割多重アクセス媒体アクセス制御層における媒体アクセス制御プロトコル・データ単位集積
KR100919216B1 (ko) * 2007-11-14 2009-09-28 (주)씨디네트웍스 데이터 송신 방법, 수신 방법 및 그 장치
US8218751B2 (en) * 2008-09-29 2012-07-10 Avaya Inc. Method and apparatus for identifying and eliminating the source of background noise in multi-party teleconferences
US8788652B2 (en) * 2009-07-27 2014-07-22 Ixia Real world network testing combining lower layer network tests, application layer tests and interdependent interactions
CN102082688B (zh) * 2010-12-17 2014-08-13 曙光信息产业(北京)有限公司 一种软硬件结合实现tcp乱序缓冲区管理的方法
US9489355B2 (en) * 2012-07-05 2016-11-08 Chegg, Inc. Characterization of layered documents in HTML5 publishing
KR101440271B1 (ko) 2012-10-22 2014-09-18 주식회사 다산네트웍스 패킷 처리 방법 및 시스템
CN103761203B (zh) * 2013-11-29 2017-09-22 北京中启智源数字信息技术有限责任公司 一种用于不同硬件设备的通用连接方法
CN104883335B (zh) * 2014-02-27 2017-12-01 王磊 一种全硬件tcp协议栈实现系统
US10509764B1 (en) 2015-06-19 2019-12-17 Amazon Technologies, Inc. Flexible remote direct memory access
RO132177A2 (ro) 2016-03-21 2017-09-29 Ixia, A California Corporation Metode, sistem şi suport informatic pentru testarea dispozitivelor cu echipament de reţea, folosind protocolul fără conexiune
US10313057B2 (en) * 2016-06-01 2019-06-04 Qualcomm Incorporated Error detection in wireless communications using sectional redundancy check information
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
US10193773B2 (en) 2016-11-09 2019-01-29 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for distributed network packet statistics collection in a test environment
US10764148B2 (en) 2017-11-29 2020-09-01 Keysight Technologies, Inc. Methods, systems, and computer readable media for network traffic statistics collection
CN109413444A (zh) * 2018-10-30 2019-03-01 苏州科达科技股份有限公司 视频的完整性校验数据生成方法、完整性校验方法及装置
US11269557B2 (en) 2019-01-09 2022-03-08 Atto Technology, Inc. System and method for ensuring command order in a storage controller
CN113872976B (zh) * 2021-09-29 2023-06-02 绿盟科技集团股份有限公司 一种基于http2攻击的防护方法、装置及电子设备
CN114461252B (zh) * 2022-03-08 2022-09-16 广东三鼎实业集团有限公司 基于大数据漏洞分析的软件服务升级方法及互联网ai系统

Family Cites Families (360)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4333020A (en) * 1979-05-23 1982-06-01 Motorola, Inc. MOS Latch circuit
FR2494465B1 (fr) * 1980-11-14 1987-02-13 Epd Engineering Projectdevelop Ordinateur de poche
US4395774A (en) * 1981-01-12 1983-07-26 National Semiconductor Corporation Low power CMOS frequency divider
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4445051A (en) * 1981-06-26 1984-04-24 Burroughs Corporation Field effect current mode logic gate
US4433378A (en) * 1981-09-28 1984-02-21 Western Digital Chip topography for MOS packet network interface circuit
US4449248A (en) * 1982-02-01 1984-05-15 General Electric Company Battery saving radio circuit and system
JPS5968072A (ja) * 1982-10-13 1984-04-17 Sharp Corp 機能変換用小形電子機器
US4599526A (en) * 1983-05-13 1986-07-08 At&T Bell Laboratories Clocked latching circuit
US4590550A (en) * 1983-06-29 1986-05-20 International Business Machines Corporation Internally distributed monitoring system
US4519068A (en) * 1983-07-11 1985-05-21 Motorola, Inc. Method and apparatus for communicating variable length messages between a primary station and remote stations of a data communications system
US4760571A (en) * 1984-07-25 1988-07-26 Siegfried Schwarz Ring network for communication between one chip processors
US4737975A (en) * 1984-09-18 1988-04-12 Metrofone, Inc. Programmable system for interfacing a standard telephone set with a radio transceiver
FR2573211B1 (fr) * 1984-11-09 1986-12-12 Labo Electronique Physique Comparateur synchronise
US4680787A (en) * 1984-11-21 1987-07-14 Motorola, Inc. Portable radiotelephone vehicular converter and remote handset
GB8521159D0 (en) * 1985-08-23 1985-10-02 Pa Consulting Services Two-way radio communications system
US4721866A (en) * 1985-11-21 1988-01-26 Digital Equipment Corporation CMOS current switching circuit
US4817054A (en) * 1985-12-04 1989-03-28 Advanced Micro Devices, Inc. High speed RAM based data serializers
US4807282A (en) * 1985-12-30 1989-02-21 International Business Machines Corp. Programmable P/C compatible communications card
JPH06105884B2 (ja) * 1986-05-06 1994-12-21 日本電気株式会社 無線電話システム
US4850009A (en) * 1986-05-12 1989-07-18 Clinicom Incorporated Portable handheld terminal including optical bar code reader and electromagnetic transceiver means for interactive wireless communication with a base communications station
US5239662A (en) * 1986-09-15 1993-08-24 Norand Corporation System including multiple device communications controller which coverts data received from two different customer transaction devices each using different communications protocols into a single communications protocol
US4717838A (en) * 1986-11-14 1988-01-05 National Semiconductor Corporation High input impedance, high gain CMOS strobed comparator
US4727309A (en) * 1987-01-22 1988-02-23 Intel Corporation Current difference current source
US4821034A (en) * 1987-02-06 1989-04-11 Ancor Communications, Inc. Digital exchange switch element and network
KR910008738B1 (ko) * 1987-02-20 1991-10-19 닛본 덴기 가부시기가이샤 밧데리 절약 채널 스캔 기능을 갖고 있는 휴대용 무선 송수신기
US4817115A (en) * 1987-02-27 1989-03-28 Telxon Corporation Encoding and decoding system for electronic data communication system
US4777657A (en) * 1987-04-01 1988-10-11 Iss Engineering, Inc. Computer controlled broadband receiver
US4791324A (en) * 1987-04-10 1988-12-13 Motorola, Inc. CMOS differential-amplifier sense amplifier
US4804954A (en) * 1987-04-30 1989-02-14 Motorola, Inc. Battery saving method for portable communications receivers
US5249302A (en) * 1987-10-09 1993-09-28 Motorola, Inc. Mixed-mode transceiver system
US4970406A (en) * 1987-12-30 1990-11-13 Gazelle Microcircuits, Inc. Resettable latch circuit
US4806796A (en) * 1988-03-28 1989-02-21 Motorola, Inc. Active load for emitter coupled logic gate
US5055660A (en) * 1988-06-16 1991-10-08 Avicom International, Inc. Portable transaction monitoring unit for transaction monitoring and security control systems
JP2583578B2 (ja) * 1988-07-01 1997-02-19 三菱電機株式会社 ポケット電話機
US5117501A (en) * 1988-08-08 1992-05-26 General Electric Company Dynamic regrouping in a trunked radio communications system
US5087099A (en) * 1988-09-02 1992-02-11 Stolar, Inc. Long range multiple point wireless control and monitoring system
US4916441A (en) * 1988-09-19 1990-04-10 Clinicom Incorporated Portable handheld terminal
JP2805767B2 (ja) * 1988-09-26 1998-09-30 日本電気株式会社 無線送受信機
US4894792A (en) * 1988-09-30 1990-01-16 Tandy Corporation Portable computer with removable and replaceable add-on modules
US5008879B1 (en) * 1988-11-14 2000-05-30 Datapoint Corp Lan with interoperative multiple operational capabilities
US4995099A (en) * 1988-12-01 1991-02-19 Motorola, Inc. Power conservation method and apparatus for a portion of a predetermined signal
US5025486A (en) * 1988-12-09 1991-06-18 Dallas Semiconductor Corporation Wireless communication system with parallel polling
GB2226475A (en) * 1988-12-23 1990-06-27 Philips Electronic Associated Power economising in multiple user radio systems
US5150361A (en) * 1989-01-23 1992-09-22 Motorola, Inc. Energy saving protocol for a TDM radio
US5128938A (en) * 1989-03-03 1992-07-07 Motorola, Inc. Energy saving protocol for a communication system
US5839051A (en) 1989-03-17 1998-11-17 Technophone Limited Host radio telephone to directly access a handset NAM through a connecter without requiring the handset controller to be employed
US5428636A (en) 1993-05-03 1995-06-27 Norand Corporation Radio frequency local area network
US5680633A (en) 1990-01-18 1997-10-21 Norand Corporation Modular, portable data processing terminal for use in a radio frequency communication network
US6014705A (en) 1991-10-01 2000-01-11 Intermec Ip Corp. Modular portable data processing terminal having a higher layer and lower layer partitioned communication protocol stack for use in a radio frequency communications network
US5247656A (en) * 1989-06-01 1993-09-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling a clock signal
US5029183A (en) * 1989-06-29 1991-07-02 Symbol Technologies, Inc. Packet data communication network
GB2234371A (en) * 1989-07-07 1991-01-30 Inmos Ltd Clock generation
US4969206A (en) * 1989-07-18 1990-11-06 Phyle Industries Limited Portable data collection device with RF transmission
US4964121A (en) * 1989-08-30 1990-10-16 Motorola, Inc. Battery saver for a TDM system
DE3929351C1 (de) * 1989-09-04 1990-10-11 Siemens Ag, 1000 Berlin Und 8000 Muenchen, De
US5121408A (en) * 1989-10-16 1992-06-09 Hughes Aircraft Company Synchronization for entry to a network in a frequency hopping communication system
WO1991007038A2 (en) 1989-11-03 1991-05-16 Microcom Systems, Inc. Method and apparatus for effecting efficient transmission of data
AU7788191A (en) 1989-11-22 1991-06-13 David C. Russell Computer control system
US5153878A (en) * 1989-12-11 1992-10-06 Motorola Inc. Radio data communications system with diverse signaling capability
US5055659A (en) * 1990-02-06 1991-10-08 Amtech Technology Corp. High speed system for reading and writing data from and into remote tags
JPH0810995Y2 (ja) * 1990-02-08 1996-03-29 沖電気工業株式会社 自動車電話機用アダプタ
AU647467B2 (en) 1990-03-03 1994-03-24 Cedardell Limited Communications system
GB2241851A (en) * 1990-03-09 1991-09-11 Philips Electronic Associated Optimising transmitter power in a communications system
US5041740A (en) * 1990-04-30 1991-08-20 Motorola, Inc. Parallel clocked latch
JPH0414314A (ja) * 1990-05-08 1992-01-20 Toshiba Corp ソース電極結合形論理回路
US5179666A (en) 1990-06-07 1993-01-12 Unisys Corporation Block oriented peripheral device interface
US5115151A (en) * 1990-06-08 1992-05-19 Western Digital Corporation Triple comparator circuit
US5079452A (en) * 1990-06-29 1992-01-07 Digital Equipment Corporation High speed ECL latch with clock enable
US5363121A (en) 1990-06-29 1994-11-08 International Business Machines Corporation Multiple protocol communication interface for distributed transaction processing
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
US5584048A (en) 1990-08-17 1996-12-10 Motorola, Inc. Beacon based packet radio standby energy saver
US5119502A (en) * 1990-08-30 1992-06-02 Telefonaktiebolaget L M Ericsson Periodic system ordered rescan in a cellular communication system
JP2646831B2 (ja) * 1990-10-25 1997-08-27 日本電気株式会社 選択呼出受信機
US5181200A (en) * 1990-10-29 1993-01-19 International Business Machines Corporation Handoff method and apparatus for mobile wireless workstation
US5265270A (en) * 1990-10-31 1993-11-23 Motorola, Inc. Method and apparatus for providing power conservation in a communication system
US5179721A (en) * 1990-11-05 1993-01-12 Motorola Inc. Method for inter operation of a cellular communication system and a trunking communication system
AU655219B2 (en) 1990-11-26 1994-12-08 Motorola, Inc. Method and apparatus for paging in a communication system
US5230084A (en) * 1990-12-06 1993-07-20 Motorola, Inc. Selective call receiver having extended battery saving capability
US5329192A (en) * 1991-01-17 1994-07-12 Industrial Technology Research Institute High speed CMOS current switching circuit
JP2530060B2 (ja) * 1991-01-17 1996-09-04 株式会社東芝 通信制御装置
US5297144A (en) * 1991-01-22 1994-03-22 Spectrix Corporation Reservation-based polling protocol for a wireless data communications network
US5265238A (en) * 1991-01-25 1993-11-23 International Business Machines Corporation Automatic device configuration for dockable portable computers
US5081402A (en) * 1991-02-22 1992-01-14 Comfortex Corporation Low power consumption wireless data transmission and control system
US5134347A (en) * 1991-02-22 1992-07-28 Comfortex Corporation Low power consumption wireless data transmission and control system
US5152006A (en) * 1991-02-25 1992-09-29 Motorola, Inc. Receiver controller method and apparatus
DE69126604T2 (de) * 1991-03-13 1998-01-08 Ibm Anpassungseinrichtung und Verfahren zur wirksamen Verbindung von Datenverarbeitungseinrichtungen und Netzwerken
CA2040234C (en) * 1991-04-11 2000-01-04 Steven Messenger Wireless coupling of devices to wired network
US5249220A (en) * 1991-04-18 1993-09-28 Rts Electronics, Inc. Handheld facsimile and alphanumeric message transceiver operating over telephone or wireless networks
JP2930257B2 (ja) * 1991-04-22 1999-08-03 株式会社東芝 携帯可能電子装置
US5355506A (en) * 1991-04-29 1994-10-11 The United States Of America As Represented By The Secretary Of The Army Communication method for controlling and monitoring robotic entities
US5149992A (en) * 1991-04-30 1992-09-22 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University MOS folded source-coupled logic
US5162674A (en) * 1991-05-10 1992-11-10 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Current-steering CMOS logic family
US5394436A (en) 1991-10-01 1995-02-28 Norand Corporation Radio frequency local area network
AU2140092A (en) * 1991-05-13 1992-12-30 Omnipoint Corporation Dual mode transmitter and receiver
US6374311B1 (en) 1991-10-01 2002-04-16 Intermec Ip Corp. Communication network having a plurality of bridging nodes which transmit a beacon to terminal nodes in power saving state that it has messages awaiting delivery
US5940771A (en) 1991-05-13 1999-08-17 Norand Corporation Network supporting roaming, sleeping terminals
US5123029A (en) * 1991-06-21 1992-06-16 International Business Machines Corporation Broadcast-initiated bipartite frame multi-access protocol
GB9114808D0 (en) * 1991-07-09 1991-08-28 Philips Electronic Associated Information transmission system
US5293639A (en) * 1991-08-09 1994-03-08 Motorola, Inc. Reduction of power consumption in a portable communication unit
US5241542A (en) * 1991-08-23 1993-08-31 International Business Machines Corporation Battery efficient operation of scheduled access protocol
US5361397A (en) 1991-08-26 1994-11-01 Motorola, Inc. Communication device and system capable of automatic programmable energizing
US5216295A (en) * 1991-08-30 1993-06-01 General Instrument Corp. Current mode logic circuits employing IGFETS
US5392023A (en) 1991-09-06 1995-02-21 Motorola, Inc. Data communication system with automatic power control
US5390206A (en) 1991-10-01 1995-02-14 American Standard Inc. Wireless communication system for air distribution system
US5274666A (en) * 1991-10-16 1993-12-28 Telephonics Corporation Wireless communication system
GB2261798B (en) * 1991-11-23 1995-09-06 Dowty Communications Ltd Packet switching networks
US5861881A (en) 1991-11-25 1999-01-19 Actv, Inc. Interactive computer system for providing an interactive presentation with personalized video, audio and graphics responses for multiple viewers
JP2571655B2 (ja) 1991-11-27 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
EP0544954B1 (de) * 1991-12-05 1996-04-24 International Business Machines Corporation Plattenlaufwerksynchronisierung
US5440560A (en) 1991-12-24 1995-08-08 Rypinski; Chandos A. Sleep mode and contention resolution within a common channel medium access method
US5196805A (en) * 1992-01-31 1993-03-23 Motorola, Inc. Distributed differential amplifier arrangement
US5301196A (en) * 1992-03-16 1994-04-05 International Business Machines Corporation Half-speed clock recovery and demultiplexer circuit
US5304869A (en) * 1992-04-17 1994-04-19 Intel Corporation BiCMOS digital amplifier
ATE207679T1 (de) 1992-04-20 2001-11-15 3Com Corp Vorrichtung zur netzmittelerweiterung auf entfernte netzwerke
US5744366A (en) 1992-05-01 1998-04-28 Trustees Of The University Of Pennsylvania Mesoscale devices and methods for analysis of motile cells
ATE173877T1 (de) * 1992-06-29 1998-12-15 Elonex Technologies Inc Modular tragbarer rechner
US5974508A (en) 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
ATE135510T1 (de) 1992-09-18 1996-03-15 Siemens Ag Integrierte pufferschaltung
US5579487A (en) 1992-10-02 1996-11-26 Teletransaction, Inc. Portable work slate computer with multiple docking positions for interchangeably receiving removable modules
EP0590818A3 (en) 1992-10-02 1994-05-11 Nat Semiconductor Corp Ecl-to-bicmos/cmos translator
JPH06162782A (ja) 1992-11-17 1994-06-10 Hitachi Ltd 半導体集積回路装置
US5289055A (en) * 1992-11-17 1994-02-22 At&T Bell Laboratories Digital ECL bipolar logic gates suitable for low-voltage operation
US5426637A (en) 1992-12-14 1995-06-20 International Business Machines Corporation Methods and apparatus for interconnecting local area networks with wide area backbone networks
US5373149A (en) 1993-02-01 1994-12-13 At&T Bell Laboratories Folding electronic card assembly
US5406643A (en) 1993-02-11 1995-04-11 Motorola, Inc. Method and apparatus for selecting between a plurality of communication paths
EP0639314B1 (de) 1993-03-04 2003-05-28 Telefonaktiebolaget Lm Ericsson Modulare funkübertragungsanordnung
WO1994022220A1 (en) 1993-03-24 1994-09-29 Apple Computer, Inc. Differential- to single-ended cmos converter
US5630061A (en) 1993-04-19 1997-05-13 International Business Machines Corporation System for enabling first computer to communicate over switched network with second computer located within LAN by using media access control driver in different modes
US5796727A (en) 1993-04-30 1998-08-18 International Business Machines Corporation Wide-area wireless lan access
US5444763A (en) 1993-06-17 1995-08-22 Research In Motion Limited Translation and connection device for radio frequency point of sale transaction systems
US5459412A (en) 1993-07-01 1995-10-17 National Semiconductor Corporation BiCMOS circuit for translation of ECL logic levels to MOS logic levels
US5418837A (en) 1993-07-30 1995-05-23 Ericsson-Ge Mobile Communications Inc. Method and apparatus for upgrading cellular mobile telephones
US5406615A (en) 1993-08-04 1995-04-11 At&T Corp. Multi-band wireless radiotelephone operative in a plurality of air interface of differing wireless communications systems
US5473607A (en) 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
FI97517C (fi) 1993-09-06 1996-12-27 Nokia Mobile Phones Ltd Pakettidatan siirto digitaalisessa solukkoverkossa
US5548238A (en) 1993-10-01 1996-08-20 Cirrus Logic Inc. Low power high speed CMOS current switching circuit
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5914955A (en) 1993-10-20 1999-06-22 Lsi Logic Corporation Switched network hub on a chip
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5668809A (en) 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
US5640399A (en) 1993-10-20 1997-06-17 Lsi Logic Corporation Single chip network router
US5544222A (en) 1993-11-12 1996-08-06 Pacific Communication Sciences, Inc. Cellular digtial packet data mobile data base station
US5510748A (en) 1994-01-18 1996-04-23 Vivid Semiconductor, Inc. Integrated circuit having different power supplies for increased output voltage range while retaining small device geometries
US5437329A (en) 1994-01-25 1995-08-01 Baker Hughes Incorporated Method and apparatus for activation of furnace slag base cement
US5519640A (en) * 1994-01-26 1996-05-21 Hughes Aircraft Company Multimedia frame relay codec
US5805927A (en) 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5420529A (en) 1994-05-19 1995-05-30 Northern Telecom Limited Current steering switch and hybrid BiCMOS multiplexer with CMOS commutation signal and CML/ECL data signals
CA2124745C (en) 1994-05-31 2001-11-20 Brian D. Gerson High-speed cmos pseudo-ecl output driver
US5714904A (en) 1994-06-06 1998-02-03 Sun Microsystems, Inc. High speed serial link for fully duplexed data communication
US5465060A (en) 1994-06-10 1995-11-07 International Business Machines Corporation Fast edge triggered self-resetting CMOS receiver with parallel L1/L2 (Master/Slave) latch
JP2713167B2 (ja) 1994-06-14 1998-02-16 日本電気株式会社 比較器
US5600267A (en) 1994-06-24 1997-02-04 Cypress Semiconductor Corporation Apparatus for a programmable CML to CMOS translator for power/speed adjustment
IT1271667B (it) 1994-07-14 1997-06-04 Italtel Spa Metodo ed apparecchiatura per la gestione in tempo reale delle risorse in una rete privata virturale in tecnica atm
FR2723282B1 (fr) 1994-07-29 1996-09-13 Alcatel Telspace Procede d'entrelacement et de desentrelacement de trames sdh et systeme correspondant
US5488319A (en) 1994-08-18 1996-01-30 International Business Machines Corporation Latch interface for self-reset logic
JP2630272B2 (ja) 1994-08-25 1997-07-16 日本電気株式会社 半導体集積回路
US5583859A (en) 1994-08-30 1996-12-10 Bell Communications Research, Inc. Data labeling technique for high performance protocol processing
US5521530A (en) 1994-08-31 1996-05-28 Oki Semiconductor America, Inc. Efficient method and resulting structure for integrated circuits with flexible I/O interface and power supply voltages
JP2600619B2 (ja) 1994-09-28 1997-04-16 日本電気株式会社 電流モード論理回路
FR2725573B1 (fr) 1994-10-11 1996-11-15 Thomson Csf Procede et dispositif pour le controle de congestion des echanges sporadiques de paquets de donnees dans un reseau de transmission numerique
US5502719A (en) 1994-10-27 1996-03-26 Hewlett-Packard Company Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US5519695A (en) 1994-10-27 1996-05-21 Hewlett-Packard Company Switch element for fiber channel networks
US5619497A (en) 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5857075A (en) 1995-01-11 1999-01-05 Sony Corporation Method and integrated circuit for high-bandwidth network server interfacing to a local area network
US5603051A (en) 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
JPH08335860A (ja) 1995-06-08 1996-12-17 Mitsubishi Electric Corp 差動ラッチ回路
US5798658A (en) 1995-06-15 1998-08-25 Werking; Paul M. Source-coupled logic with reference controlled inputs
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
KR0179842B1 (ko) 1995-09-27 1999-04-01 문정환 전류원회로
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5831985A (en) 1995-11-09 1998-11-03 Emc Corporation Method and apparatus for controlling concurrent data transmission from multiple sources in a channel communication system
JP3149759B2 (ja) 1995-11-17 2001-03-26 日本電気株式会社 ラッチ回路
US5754549A (en) 1995-12-05 1998-05-19 International Business Machines Corporation Inexpensive two-way communications switch
US5909127A (en) 1995-12-22 1999-06-01 International Business Machines Corporation Circuits with dynamically biased active loads
US5640356A (en) 1995-12-29 1997-06-17 Cypress Semiconductor Corp. Two-stage differential sense amplifier with positive feedback in the first and second stages
US5793225A (en) 1996-01-02 1998-08-11 Pmc-Sierra, Inc. CMOS SONET/ATM receiver suitable for use with pseudo ECL and TTL signaling environments
US6373846B1 (en) 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
US5724361A (en) 1996-03-12 1998-03-03 Lsi Logic Corporation High performance n:1 multiplexer with overlap control of multi-phase clocks
US5689644A (en) 1996-03-25 1997-11-18 I-Cube, Inc. Network switch with arbitration sytem
JP3047808B2 (ja) 1996-03-28 2000-06-05 日本電気株式会社 フリップフロップ回路
US5742604A (en) 1996-03-28 1998-04-21 Cisco Systems, Inc. Interswitch link mechanism for connecting high-performance network switches
GB2311880A (en) 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5828653A (en) 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US6122191A (en) 1996-05-01 2000-09-19 Cypress Semiconductor Corporation Semiconductor non-volatile device including embedded non-volatile elements
US5802258A (en) 1996-05-03 1998-09-01 International Business Machines Corporation Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5821809A (en) 1996-05-23 1998-10-13 International Business Machines Corporation CMOS high-speed differential to single-ended converter circuit
US5767699A (en) 1996-05-28 1998-06-16 Sun Microsystems, Inc. Fully complementary differential output driver for high speed digital communications
US5859881A (en) 1996-06-07 1999-01-12 International Business Machines Corporation Adaptive filtering method and apparatus to compensate for a frequency difference between two clock sources
US5778414A (en) 1996-06-13 1998-07-07 Racal-Datacom, Inc. Performance enhancing memory interleaver for data frame processing
US5680038A (en) 1996-06-20 1997-10-21 Lsi Logic Corporation High-swing cascode current mirror
US5893150A (en) 1996-07-01 1999-04-06 Sun Microsystems, Inc. Efficient allocation of cache memory space in a computer system
US5802576A (en) 1996-07-01 1998-09-01 Sun Microsystems, Inc. Speculative cache snoop during DMA line update
US5893153A (en) 1996-08-02 1999-04-06 Sun Microsystems, Inc. Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control
US5848251A (en) 1996-08-06 1998-12-08 Compaq Computer Corporation Secondary channel for command information for fibre channel system interface bus
US5991817A (en) 1996-09-06 1999-11-23 Cisco Systems, Inc. Apparatus and method for a network router
US5903176A (en) 1996-09-04 1999-05-11 Litton Systems, Inc. Clock circuit for generating a high resolution output from a low resolution clock
US6209020B1 (en) 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US5859669A (en) 1996-11-26 1999-01-12 Texas Instruments Incorporated System for encoding an image control signal onto a pixel clock signal
US5829025A (en) 1996-12-17 1998-10-27 Intel Corporation Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
US20020103988A1 (en) 1996-12-18 2002-08-01 Pascal Dornier Microprocessor with integrated interfaces to system memory and multiplexed input/output bus
US6025746A (en) 1996-12-23 2000-02-15 Stmicroelectronics, Inc. ESD protection circuits
US6266797B1 (en) 1997-01-16 2001-07-24 Advanced Micro Devices, Inc. Data transfer network on a computer chip using a re-configurable path multiple ring topology
US5908468A (en) 1997-10-24 1999-06-01 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a multiple traffic circle topology
US6111859A (en) 1997-01-16 2000-08-29 Advanced Micro Devices, Inc. Data transfer network on a computer chip utilizing combined bus and ring topologies
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
JP3508085B2 (ja) 1997-04-25 2004-03-22 日本プレシジョン・サーキッツ株式会社 D型フリップフロップ回路
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US6236654B1 (en) 1997-02-14 2001-05-22 Advanced Micro Devices, Inc. Method and apparatus for managing learning in an address table in memory
US6118776A (en) 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6026075A (en) 1997-02-25 2000-02-15 International Business Machines Corporation Flow control mechanism
US5892922A (en) 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
JP3681497B2 (ja) 1997-03-05 2005-08-10 株式会社ルネサステクノロジ フリップフロップ回路、シフトレジスタ回路、直列−並列変換回路、並列−直列変換回路およびラッチ回路
JP3715066B2 (ja) 1997-03-25 2005-11-09 三菱電機株式会社 電流モードロジック回路
JP3060987B2 (ja) 1997-03-31 2000-07-10 日本電気株式会社 クロック同期式フリップフロップ回路
US6356944B1 (en) * 1997-03-31 2002-03-12 Compaq Information Technologies Group, L.P. System and method for increasing write performance in a fibre channel environment
GB9707349D0 (en) 1997-04-11 1997-05-28 Univ Waterloo A dynamic current mode logic family
JP3063721B2 (ja) 1997-04-30 2000-07-12 日本電気株式会社 トポロジー情報交換装置及びプログラムを記録した機械読み取り可能な記録媒体
US5945847A (en) 1997-05-20 1999-08-31 Lucent Technologies Distributed amplifier logic designs
GB9711788D0 (en) 1997-06-06 1997-08-06 Northern Telecom Ltd Method and interface for connecting communication traffic between narrowband and broadband networks
JP3134810B2 (ja) 1997-06-09 2001-02-13 日本電気株式会社 帯域制御方法および帯域制御方式
US5978849A (en) 1997-06-13 1999-11-02 International Business Machines Corporation Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state
US5945863A (en) 1997-06-18 1999-08-31 Applied Micro Circuits Corporation Analog delay circuit
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US5961631A (en) 1997-07-16 1999-10-05 Arm Limited Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
US6008670A (en) 1997-08-19 1999-12-28 Hewlett-Packard Differential CMOS logic family
US6194950B1 (en) 1997-08-28 2001-02-27 Lucent Technologies Inc. High-speed CMOS multiplexer
JPH11103303A (ja) 1997-09-26 1999-04-13 Sony Corp ネットワーク資源予約制御方法および装置、受信端末、送信端末、並びに中継装置
US6014041A (en) 1997-09-26 2000-01-11 Intel Corporation Differential current switch logic gate
US6037841A (en) 1997-10-07 2000-03-14 Applied Micro Circuits Corporation Impedance matched CMOS transimpedance amplifier for high-speed fiber optic communications
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6061747A (en) 1997-10-16 2000-05-09 Lsi Logic Corporation System for sending data from-and-to a computer monitor using a high speed serial line
US6424624B1 (en) 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
US5977800A (en) 1997-10-20 1999-11-02 Vlsi Technology, Inc. Differential MOS current-mode logic circuit having high gain and fast speed
US6002279A (en) 1997-10-24 1999-12-14 G2 Networks, Inc. Clock recovery circuit
US5937169A (en) 1997-10-29 1999-08-10 3Com Corporation Offload of TCP segmentation to a smart adapter
US6185185B1 (en) 1997-11-21 2001-02-06 International Business Machines Corporation Methods, systems and computer program products for suppressing multiple destination traffic in a computer network
US6151662A (en) 1997-12-02 2000-11-21 Advanced Micro Devices, Inc. Data transaction typing for improved caching and prefetching characteristics
US6188339B1 (en) 1998-01-23 2001-02-13 Fuji Photo Film Co., Ltd. Differential multiplexer and differential logic circuit
JP3895033B2 (ja) 1998-02-26 2007-03-22 株式会社エヌ・ティ・ティ・データ パケット管理方法、通信制御装置、データ通信システム及び記録媒体
US6178159B1 (en) 1998-03-02 2001-01-23 Lucent Technologies Inc. Available bit rate flow control algorithms for ATM networks
FI107657B (fi) 1998-03-11 2001-09-14 Nokia Mobile Phones Ltd Kytkentä differentiaalisen aktiivikomponentin impedanssin säätämiseksi
US6202129B1 (en) 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6279035B1 (en) 1998-04-10 2001-08-21 Nortel Networks Limited Optimizing flow detection and reducing control plane processing in a multi-protocol over ATM (MPOA) system
US6324181B1 (en) 1998-04-16 2001-11-27 3Com Corporation Fibre channel switched arbitrated loop
US6349098B1 (en) 1998-04-17 2002-02-19 Paxonet Communications, Inc. Method and apparatus for forming a virtual circuit
US6037842A (en) 1998-04-21 2000-03-14 Applied Micro Circuits Corporation Complementary metal-oxide semiconductor voltage controlled oscillator (CMOS VCO)
US6098064A (en) 1998-05-22 2000-08-01 Xerox Corporation Prefetching and caching documents according to probability ranked need S list
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6222380B1 (en) 1998-06-15 2001-04-24 International Business Machines Corporation High speed parallel/serial link for data communication
US20020089353A1 (en) 1998-07-13 2002-07-11 Abdellatif Bellaouar Current mode logic gates for low-voltage high-speed applications
US6094074A (en) 1998-07-16 2000-07-25 Seiko Epson Corporation High speed common mode logic circuit
US6064626A (en) 1998-07-31 2000-05-16 Arm Limited Peripheral buses for integrated circuit
US6215497B1 (en) 1998-08-12 2001-04-10 Monolithic System Technology, Inc. Method and apparatus for maximizing the random access bandwidth of a multi-bank DRAM in a computer graphics system
US6223239B1 (en) 1998-08-12 2001-04-24 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port or system area network interface
US6114843A (en) 1998-08-18 2000-09-05 Xilinx, Inc. Voltage down converter for multiple voltage levels
US6396832B1 (en) 1998-09-04 2002-05-28 3Com Corporation Method and apparatus for optimizing a switched arbitrated loop for maximum access fairness
US6463092B1 (en) 1998-09-10 2002-10-08 Silicon Image, Inc. System and method for sending and receiving data signals over a clock signal line
US6111425A (en) 1998-10-15 2000-08-29 International Business Machines Corporation Very low power logic circuit family with enhanced noise immunity
US6459681B1 (en) 1998-11-13 2002-10-01 Sprint Communications Company L.P. Method and system for connection admission control
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
JP3510507B2 (ja) 1998-11-27 2004-03-29 Necマイクロシステム株式会社 ラッチ回路
US6597689B1 (en) 1998-12-30 2003-07-22 Nortel Networks Limited SVC signaling system and method
US6631134B1 (en) 1999-01-15 2003-10-07 Cisco Technology, Inc. Method for allocating bandwidth in an optical network
AU3529500A (en) 1999-03-17 2000-10-04 Broadcom Corporation Network switch
AU4325800A (en) 1999-03-17 2000-10-04 Broadcom Corporation Method for avoiding out-of-ordering of frames in a network switch
US6269427B1 (en) 1999-03-18 2001-07-31 International Business Machines Corporation Multiple load miss handling in a cache memory system
US6223270B1 (en) 1999-04-19 2001-04-24 Silicon Graphics, Inc. Method for efficient translation of memory addresses in computer systems
US6614791B1 (en) 1999-05-11 2003-09-02 Nortel Networks Limited System, device, and method for supporting virtual private networks
US6232844B1 (en) 1999-05-28 2001-05-15 Vitesse Semiconductor Corporation Controlled orthogonal current oscillator with ranging
US6081162A (en) 1999-06-17 2000-06-27 Intel Corporation Robust method and apparatus for providing a digital single-ended output from a differential input
US6911855B2 (en) 1999-06-28 2005-06-28 Broadcom Corporation Current-controlled CMOS circuit using higher voltage supply in low voltage CMOS process
US6424194B1 (en) 1999-06-28 2002-07-23 Broadcom Corporation Current-controlled CMOS logic family
US6897697B2 (en) 1999-06-28 2005-05-24 Broadcom Corporation Current-controlled CMOS circuit using higher voltage supply in low voltage CMOS process
US6477646B1 (en) 1999-07-08 2002-11-05 Broadcom Corporation Security chip architecture and implementations for cryptography acceleration
US7159030B1 (en) 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
US6449656B1 (en) 1999-07-30 2002-09-10 Intel Corporation Storing a frame header
US6427169B1 (en) 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
JP4193297B2 (ja) 1999-08-04 2008-12-10 ソニー株式会社 通信装置および方法、通信システム、並びに記録媒体
US6788704B1 (en) 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6332179B1 (en) 1999-08-19 2001-12-18 International Business Machines Corporation Allocation for back-to-back misses in a directory based cache
US6631351B1 (en) 1999-09-14 2003-10-07 Aidentity Matrix Smart toys
US6496199B1 (en) 1999-10-01 2002-12-17 Koninklijke Philips Electronics N.V. Method for storing and retrieving data that conserves memory bandwidth
US6349365B1 (en) 1999-10-08 2002-02-19 Advanced Micro Devices, Inc. User-prioritized cache replacement
US6859435B1 (en) 1999-10-13 2005-02-22 Lucent Technologies Inc. Prevention of deadlocks and livelocks in lossless, backpressured packet networks
ATE358277T1 (de) 1999-10-22 2007-04-15 Ngk Insulators Ltd Dna-chip und verfahren zur herstellung desselben
US6438651B1 (en) 1999-11-01 2002-08-20 International Business Machines Corporation Method, system, and program for managing requests to a cache using flags to queue and dequeue data in a buffer
US6564267B1 (en) 1999-11-22 2003-05-13 Intel Corporation Network adapter with large frame transfer emulation
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US6788686B1 (en) 1999-11-30 2004-09-07 Lucent Technologies Inc. Method of maintaining packet order in multipath transmission systems having non-uniform traffic splitting
JP3482996B2 (ja) 1999-12-03 2004-01-06 日本電気株式会社 Atmスイッチ
US6862296B1 (en) 1999-12-21 2005-03-01 Lsi Logic Corporation Receive deserializer circuit for framing parallel data
US6606321B1 (en) 1999-12-29 2003-08-12 3Com Corporation Method of establishing MPOA shortcut virtual channel connections
US7283512B2 (en) 2000-01-20 2007-10-16 Verizon Business Global Llc Intelligent network and method for providing voice telephony over ATM and point-to-multipoint connectivity
US6757291B1 (en) 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
US6975629B2 (en) 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US6675200B1 (en) * 2000-05-10 2004-01-06 Cisco Technology, Inc. Protocol-independent support of remote DMA
US6658599B1 (en) 2000-06-22 2003-12-02 International Business Machines Corporation Method for recovering from a machine check interrupt during runtime
US6636947B1 (en) 2000-08-24 2003-10-21 International Business Machines Corporation Coherency for DMA read cached data
US6633936B1 (en) 2000-09-26 2003-10-14 Broadcom Corporation Adaptive retry mechanism
US6816932B2 (en) 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6538486B1 (en) 2000-10-11 2003-03-25 Lucent Technologies Inc. Latch chain having improved sensitivity
AU2002216644A1 (en) 2000-10-23 2002-05-06 Radisys Corporation Method and apparatus for common channel communication using a packet switched network
US7035255B2 (en) 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US20020085562A1 (en) 2000-12-13 2002-07-04 International Business Machines Corporation IP headers for remote direct memory access and upper level protocol framing
US20020078265A1 (en) 2000-12-15 2002-06-20 Frazier Giles Roger Method and apparatus for transferring data in a network data processing system
US20020089927A1 (en) 2001-01-11 2002-07-11 Fischer Michael A. System and method for synchronizing data trasnmission across a variable delay interface
US6665759B2 (en) 2001-03-01 2003-12-16 International Business Machines Corporation Method and apparatus to implement logical partitioning of PCI I/O slots
US20020149400A1 (en) 2001-04-16 2002-10-17 Namik Kocaman Low voltage differential to single-ended converter
US6766389B2 (en) 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking
JP4573470B2 (ja) 2001-06-08 2010-11-04 富士通株式会社 伝送装置及びそのフロー制御方法
US7318146B2 (en) 2001-06-19 2008-01-08 Micron Technology, Inc. Peripheral device with hardware linked list
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
US7020716B2 (en) 2001-08-31 2006-03-28 Adaptec, Inc. Method and system for verifying the hardware implementation of TCP/IP
US7293100B2 (en) 2001-08-31 2007-11-06 Adaptec, Inc. Methods and apparatus for partially reordering data packets
US20030046330A1 (en) 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
US6976205B1 (en) 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US7124198B2 (en) * 2001-10-30 2006-10-17 Microsoft Corporation Apparatus and method for scaling TCP off load buffer requirements by segment size
US6845403B2 (en) * 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
US20030105977A1 (en) 2001-12-05 2003-06-05 International Business Machines Corporation Offload processing for secure data transfer
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
AU2002359688A1 (en) 2002-03-15 2003-09-29 Adaptec, Inc. Method and apparatus for direct data placement over tcp/ip
EP1357721A3 (de) 2002-04-16 2004-07-14 Broadcom Corporation Vorrichtung und Verfahren zur Identifizierung von Grenzen von Nachrichten eines Protokolls einer höheren Schicht
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7007103B2 (en) 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7181531B2 (en) 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
US8005966B2 (en) 2002-06-11 2011-08-23 Pandya Ashish A Data processing system using internet protocols
US7630300B2 (en) 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7660316B2 (en) 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7397788B2 (en) 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7382790B2 (en) 2002-07-02 2008-06-03 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop systems
US7403542B1 (en) 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
US6968358B2 (en) 2002-07-25 2005-11-22 International Business Machines Corporation Method and apparatus for network communication card memory management
US7480312B2 (en) 2002-08-19 2009-01-20 Tehuti Networks Ltd. Network traffic accelerator system and method
US7411959B2 (en) 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US8631162B2 (en) 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7397800B2 (en) 2002-08-30 2008-07-08 Broadcom Corporation Method and system for data placement of out-of-order (OOO) TCP segments
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US7283522B2 (en) 2002-09-27 2007-10-16 Sun Microsystems, Inc. Method and apparatus for offloading message segmentation to a network interface card
US6874054B2 (en) 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
EP1460804B1 (de) 2003-03-20 2008-10-22 Broadcom Corporation Systeme und Verfahren zur Handhabung von ungeordneten Ramen (FKA Empfang von ungeordneten TCP/IP Daten ohne Kopie Service)
EP1460806A3 (de) 2003-03-20 2006-03-22 Broadcom Corporation Systeme und Verfahren zu Schnittstellen in einer mehreren Netzwerkumgebung
US7400639B2 (en) 2003-08-07 2008-07-15 Intel Corporation Method, system, and article of manufacture for utilizing host memory from an offload adapter
US7562158B2 (en) 2004-03-24 2009-07-14 Intel Corporation Message context based TCP transmission
US7813360B2 (en) 2005-01-26 2010-10-12 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US7586850B2 (en) 2005-02-23 2009-09-08 Emulex Design & Manufacturing Corporation Prevention of head of line blocking in a multi-rate switched Fibre Channel loop attached system

Also Published As

Publication number Publication date
US20080025315A1 (en) 2008-01-31
US20100220729A1 (en) 2010-09-02
EP1345382A3 (de) 2004-06-16
US8345689B2 (en) 2013-01-01
EP1345382B1 (de) 2006-11-08
US20100223540A1 (en) 2010-09-02
DE60309527D1 (de) 2006-12-21
US20030172342A1 (en) 2003-09-11
US8958440B2 (en) 2015-02-17
US8451863B2 (en) 2013-05-28
US20130262607A1 (en) 2013-10-03
US8135016B2 (en) 2012-03-13
EP1345382A2 (de) 2003-09-17
US7295555B2 (en) 2007-11-13

Similar Documents

Publication Publication Date Title
DE60309527T2 (de) System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten
DE602005005219T2 (de) Paketzusammenführung
DE60218758T2 (de) Kommunikationsprotokolle, -systeme und -verfahren
DE60305378T2 (de) Verfahren zum Weitergeben von einem Netzwerkstapel
DE69934124T2 (de) Verfahren und vorrichtung für wiederversuch, versagen und wiederanlauf einer eingang/ausgangsverbindung in einem computernetz
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE69729040T2 (de) Netzwerkübertragung
DE60026577T2 (de) Einrichtung zum senden/empfangen eines bitstroms in einem netzwerk, sowie verfahren dazu
DE60114942T2 (de) Verfahren und System für das Verwenden eines Kernnetz-Protokolls zur Verbesserung der Netzleistung
DE60307032T2 (de) Steuerungs-Verfahren und -Vorrichtung zur Datenübertragung
US7055085B2 (en) System and method for protecting header information using dedicated CRC
JP2003510964A (ja) パケット通信での性能を改善するためのヘッダフィールドの操作
DE60318252T2 (de) Verfahren und vorrichtungen zur datenübertragung zwischen speichernetzwerken
DE102019201316A1 (de) Teilnehmerstation für ein serielles Bussystem und Verfahren zur Kommunikation in einem seriellen Bussystem
EP3900273B1 (de) Teilnehmerstation für ein serielles bussystem und verfahren zur kommunikation in einem seriellen bussystem
DE10231958B4 (de) Verfahren und System zum Übertragen von Datenpaketen über ein Netzwerk an ausgewählte mehrere Bestimmungsorte, sowie computerlesbares Medium
DE60217687T2 (de) Vorrichtung und Verfahren zur Wiederherstellung von unbestätigter "Network Layer Service Access Point Identifier (NSAPI)"- Kommunikation im "Subnetwork Dependent Convergence Protocol" SNDCP
DE60320685T2 (de) Verfahren und system zur durchführung schneller prüfsummenberechnungen in einem gprs-kommunikationssystem mittels tunneln
EP1469625B1 (de) Verfahren und Vorrichtung zum Paket-orientierten Übertragen sicherheitsrelevanter Daten
EP1236372A2 (de) Verfahren zum betreiben eines mobilfunknetzes
EP1357721A2 (de) Vorrichtung und Verfahren zur Identifizierung von Grenzen von Nachrichten eines Protokolls einer höheren Schicht
US20030115356A1 (en) Data tracing identifiers
DE60127342T2 (de) Systeme und Verfahren für gleichrangige Verbindungen über eine Netz-Schnittstellen-Karte
DE60220098T2 (de) Verteiltes Computersystem mit Bestätigungsakkumulation
WO2020088999A1 (de) Teilnehmerstation für ein serielles bussystem und verfahren zum senden einer nachricht in einem seriellen bussystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition