Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ndischimney.h (include Ndischimney.h) |