Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
NDIS, çalışma zamanında TCP/IP sağlama toplamı hesaplama görevlerini devretmeyi destekler.
Uyarı
Sağlama toplamı bant dışı (OOB) verileri NET_BUFFER_LIST bilgi dizisinde depolanır. OOB verileri hakkında daha fazla bilgi için bkz TCP/IP Offload NET_BUFFER_LIST Bilgilerine Erişim.
Miniport sürücüsüne, miniport sürücüsünün sağlama toplamı görevlerini gerçekleştireceği paket için bir NET_BUFFER_LIST yapısı geçirmeden önce, TCP/IP aktarımı NET_BUFFER_LIST yapısıyla ilişkili sağlama toplamı bilgilerini belirtir. Bu bilgiler, NET_BUFFER_LIST yapısıyla ilişkili NET_BUFFER_LIST bilgilerinin (bant dışı veriler) parçası olan bir NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO yapısı tarafından belirtilir.
TCP paketi için sağlama toplamı hesaplamasını boşaltmadan önce, TCP/IP aktarımı TCP sahte uç için tamamlayıcı toplamını hesaplar. TCP/IP aktarımı, Kaynak IP Adresi, Hedef IP Adresi, Protokol ve TCP paketleri için TCP uzunluğu dahil olmak üzere sahte başlıktaki tüm alanlardaki tamamlayıcı toplamını hesaplar. TCP/IP aktarımı, TCP üst bilgisinin Sağlama Toplamı alanına sahte başlık için tamamlayıcı toplamını girer.
TCP/IP aktarımı tarafından sağlanan sahte başlık için birin tümleyeni toplamı, NIC'ye gönderilecek paketin gerçek TCP sağlama toplamını hesaplamada erken bir başlangıç sağlar. Gerçek TCP sağlama toplamını hesaplamak için NIC, TCP sağlama toplamının değişken bölümünü hesaplar (TCP üst bilgisi ve yükü için), bu sağlama toplamını TCP/IP aktarımı tarafından hesaplanan sahte uç için tamamlayıcı toplamına ekler ve sağlama toplamı için 16 bitlik toplamı hesaplar. Bu tür sağlama toplamlarını hesaplama konusunda daha fazla bilgi için RFC 793 ve RFC 1122 belgelerine bakınız.
Uyarı
TCP/IP aktarımı, TCP paketinde olduğu gibi aynı adımları kullanarak bir UDP paketinin sahte başlayıcısı için tamamlayıcı toplamını hesaplar ve değeri UDP üst bilgisinin Sağlama Toplamı alanında depolar.
TCP/IP aktarımının, bir paketi altta yatan bir miniport sürücüsüne iletmeden önce paketin IP başlığındaki sağlama toplamı alanını her zaman sıfır olarak ayarladığını unutmayın. Miniport sürücüsü bir IP üst bilgisindeki doğrulama toplamı alanını yoksaymalıdır. Miniport sürücüsünün sağlama toplamı alanının sıfır olarak ayarlandığını doğrulaması gerekmez ve bu alanı sıfır olarak ayarlaması gerekmemektedir.
MiniportSendNetBufferLists veya MiniportCoSendNetBufferLists işlevinde NET_BUFFER_LIST yapısını aldıktan sonra, bir miniport sürücüsü genellikle aşağıdaki sağlama toplamı işlemlerini gerçekleştirir:
Miniport sürücüsü, bir NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO yapısı elde etmek için NET_BUFFER_LIST_INFO makrosunu, bir `_Id` olan `TcpIpChecksumNetBufferListInfo` ile çağırır.
Miniport sürücüsü , NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO yapısında IsIPv4 ve IsIPv6 bayraklarını test eder. Hem IsIPv4 hem de IsIPv6 bayrakları ayarlanmadıysa, NIC paket üzerinde hiçbir sağlama toplamı işlemi gerçekleştirmemelidir.
IsIPv4 veya IsIPv6 bayrağı ayarlanırsa, miniport sürücüsü NIC'nin paket için hangi sağlama toplamlarını hesaplaması gerektiğini belirlemek için TcpChecksum, UdpChecksum ve IpHeaderChecksum bayraklarını test eder.
Miniport sürücüsü paketi NIC'ye geçirir; NIC ise paket için uygun sağlama toplamlarını hesaplar. Pakette hem tünel IP üst bilgisi hem de aktarım IP üst bilgisi varsa, IP sağlama toplamı boşaltmalarını destekleyen bir NIC yalnızca tünel üst bilgisinde IP sağlama toplamı görevlerini gerçekleştirir. TCP/IP aktarımı, aktarım IP üst bilgisinde IP sağlama toplamı görevlerini gerçekleştirir.
Sağlama toplamı görevlerini gerçekleştirdiği bir alma paketi için NET_BUFFER_LIST yapısını göstermeden önce, miniport sürücüsü uygun sağlama toplamlarını doğrular ve NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO yapısında uygun XxxChecksumFailed veya XxxChecksumSucceeded bayraklarını ayarlar.
Büyük Gönderme Boşaltması (LSO) etkinleştirildiğinde Adres Sağlama Toplamı Boşaltmaları'nın kapatılması, miniport sürücüsünün LSO özelliği tarafından oluşturulan paketlere bilgi işlem yapmasını ve sağlama toplamları eklemesini engellemez. Bu durumda Adres Sağlama Toplamı Boşaltmalarını devre dışı bırakmak için kullanıcının LSO'yi da devre dışı bırakması gerekir.