Bagikan melalui


Mengirim Data Jaringan dengan Offload IPsec Versi 2

[Fitur Offload Tugas IPsec tidak digunakan lagi dan tidak boleh digunakan.]

Transportasi TCP/IP menyediakan informasi IPsec Offload Versi 2 (IPsecOV2) untuk satu atau beberapa SAs dengan OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID. Sebelum driver miniport mengembalikan hasil yang berhasil untuk OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA, driver miniport menginisialisasi handel offload. Transportasi TCP/IP meminta driver miniport untuk membongkar pemrosesan struktur NET_BUFFER_LIST dengan menentukan informasi IPsecOV2 dalam struktur NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO dan NDIS_IPSEC_OFFLOAD_V2_HEADER_NET_BUFFER_LIST_INFO , yang merupakan bagian dari informasi out-of-band (OOB) NET_BUFFER_LIST .

Transportasi TCP/IP memasok handel offload di anggota OffloadHandledari NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO yang menentukan handel ke asosiasi keamanan keluar (SA) untuk bagian transportasi (koneksi end-to-end) dari paket kirim.

Transportasi TCP/IP memasok informasi header berikut dalam struktur NDIS_IPSEC_OFFLOAD_V2_HEADER_NET_BUFFER_LIST_INFO :

  • Offset header untuk header AH, header ESP, atau keduanya.

  • Nilai protokol berikutnya (identik dengan nilai yang terkandung dalam trailer ESP).

  • Panjang bantalan yang digunakan untuk gabungan offload pengiriman besar (LSO) dan offload IPsec.

Selain itu, jika paket kirim akan ditransmisikan melalui terowongan, transportasi TCP/IP memasok struktur NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO . Struktur ini menentukan handel offload ke SA keluar untuk bagian terowongan dari paket kirim. Untuk informasi selengkapnya tentang mengakses informasi OOB, lihat Mengakses informasi NET_BUFFER_LIST di IPsec Offload Versi 2.

Driver miniport menyediakan handel offload sebagai respons terhadap permintaan set OID OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA. Untuk informasi selengkapnya tentang SA, lihat Mengelola Asosiasi Keamanan di IPsec Offload Versi 2.

Ketika driver miniport menangani permintaan pengiriman dalam fungsi MiniportSendNetBufferLists , driver miniport:

  • Memverifikasi bahwa perangkat keras dikonfigurasi untuk menangani layanan offload IPsec. Jika perangkat keras tidak dikonfigurasi untuk menangani layanan offload IPsec, driver miniport harus menangani permintaan pengiriman tanpa menyediakan layanan offload.

  • Memverifikasi handel dalam struktur NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO dan NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO untuk menentukan apakah pemrosesan kriptografi IPsec diperlukan. Nilai handel offload nol menunjukkan bahwa tidak ada offload tugas IPsec yang harus dilakukan untuk NET_BUFFER_LIST. Jika driver miniport tidak dapat menemukan SA offload yang sesuai dengan handel offload yang ditentukan, paket kirim harus gagal dengan nilai NDIS_STATUS_FAILURE .

  • Memverifikasi handel dalam struktur NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO untuk menentukan apakah offload segmentasi harus dilakukan untuk NET_BUFFER_LIST.

  • Menyelesaikan pemrosesan AH dan ESP yang diperlukan untuk semua paket pengiriman di NET_BUFFER_LIST. Ketika NIC melakukan pemrosesan IPsec pada paket kirim, NIC melakukan operasi kriptografi pada data paket. Transportasi TCP/IP telah membingkai paket, mengayuhnya (jika perlu), dan menetapkannya angka urutan dan indeks parameter keamanan (SPI). Untuk offload LSO dan IPsec gabungan, NET_BUFFER mungkin memiliki padding yang akan dibuang sementara NIC mensegmentasi paket besar. Jumlah padding ditentukan dalam anggota PadLength dari struktur NDIS_IPSEC_OFFLOAD_V2_HEADER_NET_BUFFER_LIST_INFO . Paket tersegmentasi mungkin memerlukan padding untuk mendukung operasi IPsec.

Ketika driver protokol mengirimkan paket yang meminta LSO dan IPsecOV2, itu tidak akan membingkai trailer ESP. Ini karena informasi dalam trailer ESP, seperti panjang padding, tidak akan akurat untuk segmen terakhir yang dihasilkan oleh NIC.