Freigeben über


TCP_OFFLOAD_STATE_CACHED Struktur (ndischimney.h)

[Das TCP-Schornstein-Offload-Feature ist veraltet und sollte nicht verwendet werden.]

Die TCP_OFFLOAD_STATE_CACHED-Struktur enthält die zwischengespeicherten Variablen eines TCP-Verbindungsstatusobjekts.

Syntax

typedef struct _TCP_OFFLOAD_STATE_CACHED {
  OFFLOAD_STATE_HEADER Header;
  USHORT               Flags;
  ULONG                InitialRcvWnd;
  ULONG                RcvIndicationSize;
  UCHAR                KaProbeCount;
  ULONG                KaTimeout;
  ULONG                KaInterval;
  ULONG                MaxRT;
  ULONG                FlowLabel : 20;
  UCHAR                TtlOrHopLimit;
  UCHAR                TosOrTrafficClass;
  UCHAR                UserPriority : 3;
} TCP_OFFLOAD_STATE_CACHED, *PTCP_OFFLOAD_STATE_CACHED;

Angehörige

Header

Eine OFFLOAD_STATE_HEADER Struktur. NDIS legt den Length Member von Header- auf die Größe der TCP_OFFLOAD_STATE_CACHED-Struktur in Byte fest. Das RecognizedOptions- Mitglied des Header- ist reserviert.

Flags

Eine Bitmaske, die auf Null oder eine der folgenden Flags festgelegt werden kann, kombiniert mit bitweiseM ODER:

TCP_FLAG_KEEP_ALIVE_ENABLED

Der Hoststapel legt dieses Kennzeichen fest, um die Keepalive-Option für die Verbindung zu aktivieren. Der Hoststapel löscht dieses Flag, um die Keepalive-Option für die Verbindung zu deaktivieren. Weitere Informationen zur Keepalive-Option finden Sie unter RFC 1122.

TCP_FLAG_NAGLING_ENABLED

Der Hoststapel legt dieses Kennzeichen fest, um den Nagle-Algorithmus für die Verbindung zu aktivieren. Der Hoststapel löscht dieses Flag, um den Nagle-Algorithmus für die Verbindung zu deaktivieren. Weitere Informationen zum Nagle-Algorithmus finden Sie unter RFC 896.

TCP_FLAG_KEEP_ALIVE_RESTART

Der Hoststapel legt dieses Flag so fest, dass das Offloadziel den Keepalive-Timer auf Null zurücksetzt.

TCP_FLAG_MAX_RT_RESTART

Der Hoststapel legt dieses Flag so fest, dass das Offloadziel die TotalRT-Variable im delegierten TCP-Zustand für die Verbindung auf Null zurücksetzt.

TCP_FLAG_UPDATE_RCV_WND

Der Hoststapel legt dieses Flag fest, um anzugeben, dass sich die Standardgröße des Empfangsfensters (InitialRcvWnd in der TCP_OFFLOAD_STATE_CACHED-Struktur) geändert hat. Wenn sich der Wert von InitialRcvWnd von der aktuellen Empfangsfenstergröße des Offloadziels unterscheidet (RcvWnd in der TCP_OFFLOAD_STATE_DELEGATED-Struktur), muss das Offloadziel eine neue Empfangsfenstergröße für den Peer ankündigen.

InitialRcvWnd

Das Standardmäßige Empfangsfenster (von socketoption SO_RCVBUF).

RcvIndicationSize

Wenn nicht-NULL-, sollte die optimale Anzahl von Datenbytes, die das Offloadziel in einem einzigen Aufruf des NdisTcpOffloadReceiveHandler Funktion. Diese Zahl, die in der Regel zwischen Zehn und Hunderten von Bytes liegt, ist eine Vorschlags-, keine Anforderung. Das Offloadziel kann mehr oder weniger als RcvIndicationSize Datenbytes angeben. Um jedoch eine optimale Leistung zu erzielen, sollte das Offloadziel angeben.
RcvIndicationSize Datenbytes. Weitere Informationen finden Sie unter NdisTcpOffloadReceiveHandler.

Wenn NULL-, ist RcvIndicationSize nicht angegeben. In diesem Fall sollte das Offloadziel RcvIndicationSize ignorieren und so viele Daten wie möglich in Aufrufen der NdisTcpOffloadReceiveHandler Funktion angeben.

KaProbeCount

Die Anzahl der Keepalive-Prüfpunkte, die das Offloadziel senden soll, um zu bestimmen, ob eine TCP-Verbindung intakt ist (siehe RFC 1122).

KaTimeout

Dieses Element gibt in Taktstrichen das Timeoutintervall für Inaktivität vor dem Senden eines Keepalive-Sondes an (siehe RFC 1122).

KaInterval

Dieses Element gibt in Taktstrichen das Timeout an, nach dem ein Keepalive-Frame erneut übertragen werden soll, wenn keine Antwort auf einen Keepalive-Sonde empfangen wird (siehe RFC 1122).

MaxRT

Dieses Element gibt in Taktstrichen die maximale Zeit an, die das Offloadziel für die Neuübertragung eines Segments aufwenden soll. Wenn der Wert von MaxRT- ungleich Null ist, überschreibt MaxRTTcpMaximumRetransmissions- in der NDIS_TASK_TCP_CONNECTION_OFFLOAD Struktur. Der Standardwert ist MaxRT null, was bedeutet, dass TcpMaximumRetransmissions- die maximale Anzahl von Malen festlegt, mit denen das Offloadziel ein Segment in einer TCP-Verbindung erneut überweisen soll. Wenn der Wert von MaxRT FFFFFFFF (oder -1) ist, gibt es keine Beschränkung für die maximale Anzahl von Erneutübertragungen. Wenn MaxRT- ungleich Null ist, sollte das Offloadziel die TotalRT Variable im delegierten TCP-Zustand für die Verbindung zurücksetzen. TotalRT- gibt die Gesamtzeit in Taktstrichen an, dass das Offloadziel die Übertragung des aktuellen TCP-Segments aufgewendet hat.

FlowLabel

Dieses Mitglied kennzeichnet hostbeschriftete Pakete für die spezielle Behandlung durch die Intervention von Routern , z. B. nicht standardmäßiger QoS- oder "Echtzeitdienst" (siehe RFC 2460). Diese Variable wird über eine Socketoption festgelegt und kann während der Lebensdauer der TCP-Verbindung variieren. Diese Variable ist nur dann sinnvoll, wenn die TCP-Verbindung über IPv6 erfolgt.

TtlOrHopLimit

Wenn die TCP-Verbindung über IPv4 erfolgt, gibt dieses Mitglied die Zeit für den Livestatus an (siehe RFC 791). Diese Variable wird über eine Socketoption festgelegt und kann während der Lebensdauer der TCP-Verbindung variieren.

Wenn die TCP-Verbindung über IPv6 erfolgt, gibt dieses Mitglied die Anzahl der Router an, die das Paket durchlaufen kann (siehe RFC 2460). Diese Variable wird über eine Socketoption festgelegt und kann während der Lebensdauer der TCP-Verbindung variieren.

TosOrTrafficClass

Wenn die TCP-Verbindung über IPv4 erfolgt, gibt dieses Mitglied den Diensttyp für das Routing eines Pakets an (siehe RFC 2474). Diese Variable wird über eine Socketoption festgelegt und kann während der Lebensdauer der TCP-Verbindung variieren.

Wenn die TCP-Verbindung über IPv6 erfolgt, priorisiert dieses Mitglied Werte für Pakete entsprechend den Datenverkehrstypen und gibt an, wie bereit ist, die Pakete verworfen zu haben (siehe RFC 2460). Diese Variable wird über eine Socketoption festgelegt und kann während der Lebensdauer der TCP-Verbindung variieren.

UserPriority

Ein 3-Bit-Prioritätswert. Wenn das Offloadziel 802.1p-Paketinformationen unterstützt, muss dieser Prioritätswert in den Tagheader aller Pakete eingefügt werden, die er an die entladene TCP-Verbindung überträgt. Wenn das Offload-Ziel 802.1p-Paketinformationen nicht unterstützt, sollte UserPriority- ignoriert werden. Weitere Informationen zur Unterstützung von Paketinformationen für 802.1p finden Sie unter 802.1Q- und 802.1p-Verarbeitung für eine ausgeladene TCP-Verbindung.

Bemerkungen

Zwischengespeicherte Variablen werden vom Hoststapel verwaltet und verwaltet. Ein Offloadziel darf den Wert einer zwischengespeicherten Variablen nur ändern, wenn dies vom Hoststapel angefordert wird. Wenn sich der Wert einer zwischengespeicherten Variablen ändert, fordert der Hoststapel eine Aktualisierung der Variablen an, wodurch NDIS die MiniportUpdateOffload--Funktion des Offloadziels aufruft. Wenn der Hoststapel das Entladen eines oder mehrerer Zustandsobjekte beendet, indem NDIS das Ausladen des Ziels aufruft MiniportTerminateOffload--Funktion gibt das Offload-Ziel nicht den Wert von entladenen Konstantenvariablen an den Hoststapel zurück.

Beachten Sie, dass das Offload-Ziel, wenn das TCP_FLAG_MAX_RT_RESTART Flag einer ausgeladenen TCP-Verbindung festgelegt ist, Folgendes erforderlich ist:

  • Setzen Sie die delegierte KeepaliveProbeCount-Variable dieser Verbindung zurück, wenn der Hoststapel die zwischengespeicherte KaProbeCount-Variable dieser Verbindung aktualisiert.
  • Setzen Sie die delegierte KeepaliveTimeoutDelta-Variable der Verbindung zurück, wenn der Hoststapel die zwischengespeicherten KaTimeout- und/oder KaInterval-Variablen der Verbindung aktualisiert.
Wenn sie an ein Offloadziel übergeben wird, wird eine TCP_OFFLOAD_STATE_CACHED Struktur einem NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur, die eine Kopfzeile enthält, die als NDIS_OBJECT_HEADER Struktur formatiert ist. Das Revision Mitglied der NDIS_OBJECT_HEADER-Struktur gibt in diesem Fall die Revisionsnummer der TCP_OFFLOAD_STATE_CACHED Struktur an.

Anforderungen

Anforderung Wert
Header- ndischimney.h (include Ndischimney.h)

Siehe auch

MiniportTerminateOffload-

MiniportUpdateOffload-

NDIS_OBJECT_HEADER

OFFLOAD_STATE_HEADER

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED