struktur TCP_OFFLOAD_STATE_CACHED (ndischimney.h)

[Fitur offload cerobong asap TCP tidak digunakan lagi dan tidak boleh digunakan.]

Struktur TCP_OFFLOAD_STATE_CACHED berisi variabel cache dari objek status koneksi TCP.

Sintaks

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;

Anggota

Header

Struktur OFFLOAD_STATE_HEADER . NDIS mengatur panjang anggotaHeader ke ukuran, dalam byte, dari struktur TCP_OFFLOAD_STATE_CACHED. Anggota Header RecognizedOptions dicadangkan.

Flags

Bitmask yang dapat diatur ke nol atau salah satu bendera berikut, dikombinasikan dengan bitwise ATAU:

TCP_FLAG_KEEP_ALIVE_ENABLED

Tumpukan host mengatur bendera ini untuk mengaktifkan opsi keepalive pada koneksi. Tumpukan host menghapus bendera ini untuk menonaktifkan opsi keepalive pada koneksi. Untuk informasi selengkapnya tentang opsi keepalive, lihat RFC 1122.

TCP_FLAG_NAGLING_ENABLED

Tumpukan host mengatur bendera ini untuk mengaktifkan algoritma Nagle pada koneksi. Tumpukan host menghapus bendera ini untuk menonaktifkan algoritma Nagle pada koneksi. Untuk informasi selengkapnya tentang algoritma Nagle, lihat RFC 896.

TCP_FLAG_KEEP_ALIVE_RESTART

Tumpukan host menetapkan bendera ini untuk menyebabkan target offload mengatur ulang timer keepalive-nya menjadi nol.

TCP_FLAG_MAX_RT_RESTART

Tumpukan host mengatur bendera ini untuk menyebabkan target offload mengatur ulang variabel TotalRT dalam status didelegasikan TCP untuk koneksi ke nol.

TCP_FLAG_UPDATE_RCV_WND

Tumpukan host mengatur bendera ini untuk menunjukkan bahwa ukuran jendela penerima default (InitialRcvWnd dalam struktur TCP_OFFLOAD_STATE_CACHED) telah berubah. Jika nilai InitialRcvWnd berbeda dari ukuran jendela penerima target saat ini offload (RcvWnd dalam struktur TCP_OFFLOAD_STATE_DELEGATED), target offload harus mengiklankan ukuran jendela penerima baru ke serekan.

InitialRcvWnd

Jendela terima default (dari opsi soket SO_RCVBUF).

RcvIndicationSize

Ketika non-NULL, jumlah byte data optimal yang harus disediakan target offload dalam satu panggilan ke Fungsi NdisTcpOffloadReceiveHandler . Angka ini, yang biasanya antara puluhan dan ratusan byte, adalah saran --bukan persyaratan. Target offload dapat menunjukkan lebih atau kurang dari byte data RcvIndicationSize . Namun, untuk performa optimal, target offload harus menunjukkan
Byte data RcvIndicationSize . Untuk mengetahui informasi selengkapnya, lihat NdisTcpOffloadReceiveHandler.

Ketika NULL, RcvIndicationSize tidak ditentukan. Dalam hal ini, target offload harus mengabaikan RcvIndicationSize dan menunjukkan data sebanyak mungkin dalam panggilan ke fungsi NdisTcpOffloadReceiveHandler .

KaProbeCount

Jumlah pemeriksaan keepalive yang harus dikirim target offload untuk menentukan apakah koneksi TCP utuh (lihat RFC 1122).

KaTimeout

Anggota ini menentukan, dalam jam tick, interval waktu habis untuk tidak aktif sebelum mengirim pemeriksaan keepalive (lihat RFC 1122).

KaInterval

Anggota ini menentukan, dalam jam berdetik, waktu habis setelah mengirim ulang bingkai keepalive jika tidak ada respons yang diterima untuk pemeriksaan keepalive (lihat RFC 1122).

MaxRT

Anggota ini menentukan, dalam jam berdetik, waktu maksimum yang harus dihabiskan target offload untuk mengirimkan ulang segmen. Jika nilai MaxRT bukan nol, MaxRT mengambil alih TcpMaximumRetransmissions di NDIS_TASK_TCP_CONNECTION_OFFLOAD struktur. Nilai default untuk adalah MaxRT adalah nol, yang berarti bahwa TcpMaximumRetransmissions menetapkan berapa kali maksimum target offload harus mengirimkan ulang segmen pada koneksi TCP. Jika nilai MaxRT adalah FFFFFFFF (atau -1), tidak ada batasan jumlah maksimum transmisi ulang. Ketika MaxRT bukan nol, target offload harus mengatur ulang variabel TotalRT dalam status yang didelegasikan TCP untuk koneksi. TotalRT menunjukkan total waktu, dalam jam tick, bahwa target offload telah menghabiskan pengiriman ulang segmen TCP saat ini.

FlowLabel

Anggota ini menandai paket berlabel host untuk penanganan khusus dengan mengintervensi router--misalnya, QoS nondefault atau layanan "real-time" (lihat RFC 2460). Variabel ini diatur melalui opsi soket dan dapat bervariasi selama masa pakai koneksi TCP. Variabel ini hanya bermakna jika koneksi TCP melalui IPv6.

TtlOrHopLimit

Jika koneksi TCP lebih dari IPv4, maka anggota ini menentukan waktu hidup (lihat RFC 791). Variabel ini diatur melalui opsi soket dan dapat bervariasi selama masa pakai koneksi TCP.

Jika koneksi TCP lebih dari IPv6, maka anggota ini menentukan jumlah router yang dapat dilewati paket (lihat RFC 2460). Variabel ini diatur melalui opsi soket dan dapat bervariasi selama masa pakai koneksi TCP.

TosOrTrafficClass

Jika koneksi TCP lebih dari IPv4, maka anggota ini menentukan jenis layanan untuk perutean paket (lihat RFC 2474). Variabel ini diatur melalui opsi soket dan dapat bervariasi selama masa pakai koneksi TCP.

Jika koneksi TCP lebih dari IPv6, maka anggota ini memprioritaskan nilai untuk paket sesuai dengan jenis lalu lintas, menunjukkan seberapa bersedia pengirim membuang paket (lihat RFC 2460). Variabel ini diatur melalui opsi soket dan dapat bervariasi selama masa pakai koneksi TCP.

UserPriority

Nilai prioritas 3-bit. Jika target offload mendukung informasi paket 802.1p, target tersebut harus memasukkan nilai prioritas ini ke header tag dari semua paket yang dikirimkan pada koneksi TCP yang dilepas. Jika target offload tidak mendukung informasi paket 802.1p, target tersebut harus mengabaikan UserPriority . Untuk informasi selengkapnya tentang mendukung informasi paket 802.1p, lihat Pemrosesan 802.1Q dan 802.1p pada Koneksi TCP yang Dibongkar.

Keterangan

Variabel yang di-cache dimiliki dan dikelola oleh tumpukan host. Target offload tidak boleh mengubah nilai variabel yang di-cache kecuali diminta untuk melakukannya oleh tumpukan host. Jika nilai variabel yang di-cache berubah, tumpukan host meminta pembaruan variabel, yang menyebabkan NDIS memanggil fungsi MiniportUpdateOffload target offload. Ketika tumpukan host mengakhiri offload satu atau beberapa objek status dengan menyebabkan NDIS memanggil target offload Fungsi MiniportTerminateOffload , target offload tidak mengembalikan nilai variabel konstanta yang dilepas ke tumpukan host.

Perhatikan bahwa jika bendera TCP_FLAG_MAX_RT_RESTART koneksi TCP yang dibongkar diatur, target offload harus:

  • Atur ulang variabel KeepaliveProbeCount yang didelegasikan koneksi tersebut saat tumpukan host memperbarui variabel KaProbeCount yang di-cache koneksi.
  • Atur ulang variabel KeepaliveTimeoutDelta yang didelegasikan koneksi tersebut saat tumpukan host memperbarui variabel KaTimeout dan/atau KaInterval yang di-cache koneksi tersebut.
Ketika diteruskan ke target offload, struktur TCP_OFFLOAD_STATE_CACHED dikaitkan dengan NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struktur, yang berisi header yang diformat sebagai struktur NDIS_OBJECT_HEADER . Anggota Revisi dari struktur NDIS_OBJECT_HEADER, dalam hal ini, menentukan nomor revisi struktur TCP_OFFLOAD_STATE_CACHED.

Persyaratan

Persyaratan Nilai
Header ndischimney.h (termasuk Ndischimney.h)

Lihat juga

MiniportTerminateOffload

MiniportUpdateOffload

NDIS_OBJECT_HEADER

OFFLOAD_STATE_HEADER

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED