Compartir a través de


estructura TCP_OFFLOAD_STATE_CACHED (ndischimney.h)

[La característica de descarga de chimenea TCP está en desuso y no se debe usar.]

La estructura TCP_OFFLOAD_STATE_CACHED contiene las variables almacenadas en caché de un objeto de estado de conexión TCP.

Sintaxis

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;

Miembros

Header

Estructura OFFLOAD_STATE_HEADER . NDIS establece el miembro Length de Header en el tamaño, en bytes, de la estructura TCP_OFFLOAD_STATE_CACHED. El miembro RecognizeOptions de Header está reservado.

Flags

Máscara de bits que se puede establecer en cero o en cualquiera de las marcas siguientes, combinadas con OR bit a bit:

TCP_FLAG_KEEP_ALIVE_ENABLED

La pila de hosts establece esta marca para habilitar la opción keepalive en la conexión. La pila de hosts borra esta marca para deshabilitar la opción keepalive en la conexión. Para obtener más información sobre la opción keepalive, consulte RFC 1122.

TCP_FLAG_NAGLING_ENABLED

La pila de hosts establece esta marca para habilitar el algoritmo nagle en la conexión. La pila de hosts borra esta marca para deshabilitar el algoritmo nagle en la conexión. Para obtener más información sobre el algoritmo nagle, consulte RFC 896.

TCP_FLAG_KEEP_ALIVE_RESTART

La pila de hosts establece esta marca para que el destino de descarga restablezca su temporizador keepalive a cero.

TCP_FLAG_MAX_RT_RESTART

La pila de hosts establece esta marca para que el destino de descarga restablezca la variable TotalRT en el estado delegado TCP de la conexión a cero.

TCP_FLAG_UPDATE_RCV_WND

La pila de hosts establece esta marca para indicar que ha cambiado el tamaño predeterminado de la ventana de recepción (InitialRcvWnd en la estructura TCP_OFFLOAD_STATE_CACHED). Si el valor de InitialRcvWnd difiere del tamaño actual de la ventana de recepción del destino de descarga (RcvWnd en la estructura TCP_OFFLOAD_STATE_DELEGATED), el destino de descarga debe anunciar un nuevo tamaño de ventana de recepción al mismo nivel.

InitialRcvWnd

Ventana de recepción predeterminada (desde la opción socket SO_RCVBUF).

RcvIndicationSize

Cuando no es NULL, el número óptimo de bytes de datos que el destino de descarga debe proporcionar en una sola llamada a . Función NdisTcpOffloadReceiveHandler . Este número, que suele estar entre decenas y cientos de bytes, es un requisito que no es una sugerencia. El destino de descarga puede indicar más o menos que RcvIndicationSize bytes de datos. Sin embargo, para obtener un rendimiento óptimo, el destino de descarga debe indicar
RcvIndicationSize bytes de datos. Para obtener más información, vea NdisTcpOffloadReceiveHandler.

Cuando es NULL, RcvIndicationSize no se especifica. En este caso, el destino de descarga debe omitir RcvIndicationSize e indicar tantos datos como sea posible en las llamadas a la función NdisTcpOffloadReceiveHandler .

KaProbeCount

Número de sondeos keepalive que el destino de descarga debe enviar para determinar si una conexión TCP está intacta (consulte RFC 1122).

KaTimeout

Este miembro especifica, en tics de reloj, el intervalo de tiempo de espera de inactividad antes de enviar un sondeo keepalive (consulte RFC 1122).

KaInterval

Este miembro especifica, en tics de reloj, el tiempo de espera después del cual retransmitir un fotograma keepalive si no se recibe ninguna respuesta a un sondeo keepalive (consulte RFC 1122).

MaxRT

Este miembro especifica, en tics de reloj, el tiempo máximo que el destino de descarga debe dedicar a retransmitir un segmento. Si el valor de MaxRT no es cero, MaxRT invalida TcpMaximumRetransmissions en . NDIS_TASK_TCP_CONNECTION_OFFLOAD estructura. El valor predeterminado de es MaxRT es cero, lo que significa que TcpMaximumRetransmissions establece el número máximo de veces que el destino de descarga debe retransmitir un segmento en una conexión TCP. Si el valor de MaxRT es FFFFFFFF (o -1), no hay ningún límite en el número máximo de retransmisiones. Cuando MaxRT es distinto de cero, el destino de descarga debe restablecer la variable TotalRT en el estado delegado TCP para la conexión. TotalRT indica el tiempo total, en tics de reloj, que el destino de descarga ha dedicado a retransmitir el segmento TCP actual.

FlowLabel

Este miembro marca los paquetes etiquetados por host para un control especial mediante enrutadores intermedios, por ejemplo, el servicio QoS no predeterminado o "en tiempo real" (consulte RFC 2460). Esta variable se establece a través de una opción de socket y puede variar durante la duración de la conexión TCP. Esta variable solo es significativa si la conexión TCP se realiza a través de IPv6.

TtlOrHopLimit

Si la conexión TCP se realiza a través de IPv4, este miembro especifica el período de vida (consulte RFC 791). Esta variable se establece a través de una opción de socket y puede variar durante la duración de la conexión TCP.

Si la conexión TCP se realiza a través de IPv6, este miembro especifica el número de enrutadores a los que el paquete puede pasar (consulte RFC 2460). Esta variable se establece a través de una opción de socket y puede variar durante la duración de la conexión TCP.

TosOrTrafficClass

Si la conexión TCP se realiza a través de IPv4, este miembro especifica el tipo de servicio para enrutar un paquete (consulte RFC 2474). Esta variable se establece a través de una opción de socket y puede variar durante la duración de la conexión TCP.

Si la conexión TCP se realiza a través de IPv6, este miembro da prioridad a los valores de los paquetes según los tipos de tráfico, lo que indica cómo desea que el remitente tenga los paquetes descartados (consulte RFC 2460). Esta variable se establece a través de una opción de socket y puede variar durante la duración de la conexión TCP.

UserPriority

Valor de prioridad de 3 bits. Si el destino de descarga admite información de paquetes 802.1p, debe insertar este valor de prioridad en el encabezado de etiqueta de todos los paquetes que transmite en la conexión TCP descargada. Si el destino de descarga no admite la información de paquetes 802.1p, debe omitir UserPriority . Para obtener más información sobre la compatibilidad con la información de paquetes 802.1p, vea 802.1Q y 802.1p Procesamiento en una conexión TCP descargada.

Comentarios

Las variables almacenadas en caché son propiedad de la pila de hosts y las mantienen. Un destino de descarga no debe cambiar el valor de una variable almacenada en caché a menos que la pila del host lo solicite. Si cambia el valor de una variable almacenada en caché, la pila de hosts solicita una actualización de la variable, lo que hace que NDIS llame a la función MiniportUpdateOffload del destino de descarga. Cuando la pila de hosts finaliza la descarga de uno o varios objetos de estado haciendo que NDIS llame al destino de descarga. La función MiniportTerminateOffload , el destino de descarga no devuelve el valor de variables constantes descargadas a la pila de hosts.

Tenga en cuenta que si se establece una marca de TCP_FLAG_MAX_RT_RESTART de conexión TCP descargada, el destino de descarga debe:

  • Restablezca la variable KeepaliveProbeCount delegada de esa conexión cuando la pila de hosts actualiza la variable KaProbeCount almacenada en caché de la conexión.
  • Restablezca la variable KeepaliveTimeoutDelta delegada de esa conexión cuando la pila de hosts actualiza las variables KaTimeout o KaInterval almacenadas en caché de la conexión.
Cuando se pasa a un destino de descarga, se asocia una estructura de TCP_OFFLOAD_STATE_CACHED a un NDIS_MINIPORT_OFFLOAD_BLOCK_LIST estructura, que contiene un encabezado con formato de estructura NDIS_OBJECT_HEADER . El miembro Revision de la estructura NDIS_OBJECT_HEADER, en este caso, especifica el número de revisión de la estructura TCP_OFFLOAD_STATE_CACHED.

Requisitos

Requisito Valor
Header ndischimney.h (incluya Ndischimney.h)

Consulte también

MiniportTerminateOffload

MiniportUpdateOffload

NDIS_OBJECT_HEADER

OFFLOAD_STATE_HEADER

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED