NDIS_TASK_TCP_IP_CHECKSUM

typedef struct _NDIS_TASK_TCP_IP_CHECKSUM

{

  struct

  {

    ULONG    IpOptionsSupported:1;

    ULONG    TcpOptionsSupported:1;

    ULONG    TcpChecksum:1;

    ULONG    UdpChecksum:1;

    ULONG    IpChecksum:1;

  } V4Transmit;

 

  struct

  {

    ULONG    IpOptionsSupported:1;

    ULONG    TcpOptionsSupported:1;

    ULONG    TcpChecksum:1;

    ULONG    UdpChecksum:1;

    ULONG    IpChecksum:1;

  } V4Receive;

 

  struct

  {

    ULONG    IpOptionsSupported:1;

    ULONG    TcpOptionsSupported:1;

    ULONG    TcpChecksum:1;

    ULONG    UdpChecksum:1;

  } V6Transmit;

 

  struct

  {

    ULONG    IpOptionsSupported:1;

    ULONG    TcpOptionsSupported:1;

    ULONG    TcpChecksum:1;

    ULONG    UdpChecksum:1;

  } V6Receive;

} NDIS_TASK_TCP_IP_CHECKSUM, *PNDIS_TASK_TCP_IP_CHECKSUM;

OID_TCP_TASK_OFFLOADÀÇ Äõ¸®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ Á¦°øµÉ ¶§, NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼´Â º¸³»±â ÆÐŶµéÀ» À§ÇÑ IP, TCP, UDP üũ¼¶µéÀ» °è»êÇÏ°í ¼ö½Å ÆÐŶµéÀ» À§ÇÑ ±×·¯ÇÑ Ã¼Å©¼¶À» °Ë»çÇϱâ À§ÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ NICÀÇ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. OID_TCP_TASK_OFFLOADÀÇ ¼³Á¤À¸·Î ¹Ì´ÏÆ÷Æ®¿¡ Àü´ÞµÉ ¶§, ±× ±¸Á¶Ã¼´Â TCP/IP Àü¼Û °èÃþÀÌ NICÀ» À§ÇØ °¡´ÉÀ¸·Î Çϴ üũ¼¶ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù.

¸â¹ö

V4Transmit

IpOptionsSupported
NICÀÌ IP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv4 º¸³»±â ÆÐŶÀ» À§ÇÑ IP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpOptionsSupported
NICÀÌ TCP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv4 º¸³»±â ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpChecksum
NICÀÌ IPv4 º¸³»±â ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

UdpChecksum
NICÀÌ IPv4 º¸³»±â ÆÐŶÀ» À§ÇÑ UDP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

IpChecksum
NICÀÌ IPv4 º¸³»±â ÆÐŶÀ» À§ÇÑ IP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

V4Receive

IpOptionsSupported
NICÀÌ IP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv4 ¼ö½Å ÆÐŶÀ» À§ÇÑ IP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpOptionsSupported
NICÀÌ TCP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv4 ¼ö½Å ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpChecksum
NICÀÌ IPv4 ¼ö½Å ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

UdpChecksum
NICÀÌ IPv4 ¼ö½Å ÆÐŶÀ» À§ÇÑ UDP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

IpChecksum
NICÀÌ IPv4 ¼ö½Å ÆÐŶÀ» À§ÇÑ IP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

V6Transmit

IpOptionsSupported
NICÀÌ IP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv6 º¸³»±â ÆÐŶÀ» À§ÇÑ IP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpOptionsSupported
NICÀÌ TCP ¿É¼ÇµéÀ» Æ÷ÇÔÇÏ´Â IPv6 º¸³»±â ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpChecksum
NICÀÌ IPv6 º¸³»±â ÆÐŶÀ» À§ÇÑ TCP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

UdpChecksum
NICÀÌ IPv6 º¸³»±â ÆÐŶÀ» À§ÇÑ UDP üũ¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û°èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

V6Receive

IpOptionsSupported
NICÀÌ IP Çì´õµéÀÌ IP ¿É¼Çµé¿¡ Æ÷ÇÔÇÏ´Â IPv6 ¼ö½Å ÆÐŶÀ» À§ÇÑ IPüũ¼¶µéÀ» °Ë»çÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpOptionsSupported
NICÀÌ TCP Çì´õ°¡ TCP ¿É¼Çµé¿¡ Æ÷ÇÔÇÏ´Â IPv6 ¼ö½Å ÆÐŶÀ» À§ÇØ Ã¼Å©¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

TcpChecksum
NICÀÌ IPv6 ¼ö½Å ÆÐŶÀÇ TCPÀÇ Ã¼Å©¼¶À» °Ë»çÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

UdpChecksum
NICÀÌ IPv6 ¼ö½Å ÆÐŶÀ» À§ÇØ UDP üũ¼¶À» °Ë»çÇÒ ¼ö ÀÖ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ ´É·ÂÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

ÁÖ¼®

OID_TCP_TASK_OFFLOADÀÇ Äõ¸®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î, ¹Ì´ÏÆ÷Æ®´Â Çϳª ȤÀº ±× ÀÌ»óÀÇ Ã¼ÀÎÈ­µÈ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µéÀÌ Áï½Ã µû¸£´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ InformationBuffer¿¡ ¸®ÅÏÇÑ´Ù. °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ® NIC¿¡ ÀÇÇØ Áö¿øµÈ ŽºÅ© offload ´É·ÂÀ» ÁöÁ¤ÇÑ´Ù.

NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ Task ¸â¹ö°¡ TcpIpChecksumNdisTask¸¦ ÁöÁ¤ÇÒ ¶§, NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ TaskBufferÀº ¼Û½Å°ú ¼ö½Å ÆÐŶµé¿¡¼­ üũ¼¶ ŽºÅ©µéÀ» ÇàÇϱâ À§ÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù.

OID_TCP_TASK_OFFLOADÀÇ TCP/IP Àü¼Û °èÃþÀÇ ¼³Á¤¿¡ ÀÇÇØ ¹Ì´ÏÆ÷Æ®¿¡ Àü´ÞµÉ ¶§, NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼´Â Àü¼Û °èÃþÀÌ °¡´ÉÇÏ°Ô Çϴ üũ¼¶ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù.

NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ®¿¡°Ô UDP üũ¼¶ ´É·ÂµéÀ» °¡¸®Å°´Â °ÍÀ» Çã¶ôÇÑ´Ù. À©µµ¿ìÁî ÀÌõÀÇ Ãʱ⠹èÆ÷¹öÀüÀº UDP üũ¼¶ offloadµéÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª, ¹Ì·¡ À©µµ¿ìÁî ÀÌõ ¼­ºñ½º ÆÑµé°ú ¾÷µ¥ÀÌÆ® ¹èÆ÷ÆÇµéÀº UDP üũ¼¶ offloadµéÀ» Áö¿øÇÒ °ÍÀÌ´Ù.

NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼´Â ¶ÇÇÑ IPv6 ÆÐŶµéÀ» À§ÇÑ Ã¼Å©¼¶ ´É·ÂµéÀ» °¡¸®Å°´Â °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô Çã¶ôÇÑ´Ù. ±×·¯³ª, À©µµ¿ìÁî ÀÌõÀÇ Ãʱ⠹èÆ÷ÆÇ¿¡¼­ TCP/IP Àü¼Û °èÃþÀº ´ÜÁö IPv4 ÆÐŶµéÀ» ó¸®ÇÒ ¼ö ÀÖ°í ±×·¡¼­ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ º¸°íµÈ ¾î¶°ÇÑ IPv6ÀÇ Ã¼Å©¼¶ ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÒ ¼ö ¾ø´Ù. TCP/IP Àü¼Û °èÃþÀÇ ¹Ì·¡ ¹öÀüÀº IPv6ÀÇ Ã³¸®¸¦ Áö¿øÇÒ °ÍÀÌ´Ù.