NDIS_TCP_IP_CHECKSUM_PACKET_INFO

typedef struct _NDIS_TCP_IP_CHECKSUM_PACKET_INFO

{

  union

  {

    struct

    {   

      ULONG    NdisPacketChecksumV4:1;

      ULONG    NdisPacketChecksumV6:1;

      ULONG    NdisPacketTcpChecksum;

      ULONG    NdisPacketUdpChecksum;

      ULONG    NdisPacketIpChecksum;

      } Transmit;

 

    struct

    {

      ULONG   NdisPacketTcpChecksumFailed:1;

      ULONG   NdisPacketUdpChecksumFailed:1;

      ULONG   NdisPacketIpChecksumFailed:1;

      ULONG   NdisPacketTcpChecksumSucceeded:1;

      ULONG   NdisPacketUdpChecksumSucceeded:1;

      ULONG   NdisPacketIpChecksumSucceeded:1;

      ULONG   NdisPacketLoopback:1;

      } Receive;

 

  ULONG    Value;

  };

} NDIS_TCP_IP_CHECKSUM_PACKET_INFO, *PNDIS_TCP_IP_CHECKSUM_PACKET_INFO;

NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼´Â TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ NIC¿¡ üũ¼¶ ŽºÅ©µéÀ» offloadÇϴµ¥ »ç¿ëµÇ´Â Á¤º¸¸¦ ÁöÁ¤ÇÑ´Ù. NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ÆÐŶ ´ç Á¤º¸ÀÇ (È®Àå ´ë¿ª¿Ü Á¤º¸) ºÎºÐÀÌ´Ù.

¸â¹ö

Transmit

NdisPacketChecksumV4
º¸³»±â ÆÐŶÀº IPv4 ÁÖ¼ÒµéÀ» Æ÷ÇÔÇÏ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ¸¸¾à Àü¼Û °èÃþÀÌ NdisPacketChecksumV4¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸é, ¹Ì´ÏÆ÷Æ®´Â ÆÐŶ¿¡ ´ëÇÑ Ã¼Å©¼¶ ŽºÅ©µéÀ» ÇàÇÒ Çʿ䰡 ¾ø´Ù.

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

NdisPacketTcpChecksum
NICÀÌ ÆÐŶÀÇ TCP üũ¼¶À» °è»êÇØ¾ß ÇÏ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NdisPacektUdpChecksum
NICÀÌ ÆÐŶÀÇ UDP üũ¼¶À» °è»êÇØ¾ß ÇÏ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NdisPacketIpChecksum
NICÀÌ ÆÐŶ¿¡ ù IP Çì´õ¸¦ À§ÇÑ IP üũ¼¶À» °è»êÇØ¾ß ÇÏ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ¸¸¾à ÆÐŶÀÌ ÅͳΠIP Çì´õ¿Í Àü¼Û °èÃþ IP Çì´õ¸¦ Æ÷ÇÔÇÑ´Ù¸é, NICÀº ÅͳΠIP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °è»êÇÒ ¼ö ÀÖ´Ù. TCP/IP Àü¼Û °èÃþÀº ±×·¯ÇÑ ÆÐŶÀÇ Àü¼Û °èÃþ IP Çì´õÀÇ Ã¼Å©¼¶À» °è»êÇÑ´Ù.

Receive

NdisPacketTcpChecksumFailed
NIC¿¡ ÀÇÇØ °è»êµÈ TCP üũ¼¶Àº ¼ö½Å ÆÐŶÀÇ TCP Çì´õ¿¡¼­ üũ¼¶°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NdisPacketUdpChecksumFailed
NIC¿¡ ÀÇÇØ °è»êµÈ UDP üũ¼¶ÀÌ ¼ö½Å ÆÐŶÀÇ UDP Çì´õ¿¡¼­ üũ¼¶°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. À©µµ¿ìÁî ÀÌõÀÇ Ãʱ⠹èÆ÷ÆÇÀº UDP üũ¼¶ offloadµéÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª, ¹Ì·¡ ¼­ºñ½º ÆÑµé°ú À©µµ¿ìÁî ÀÌõÀÇ ¾÷µ¥ÀÌÆ® ÆÇµéÀº UDP üũ¼¶ offloadµéÀ» Áö¿øÇÒ °ÍÀÌ´Ù.

NdisPacketIpChecksumFailed
NIC¿¡ ÀÇÇØ °è»êµÈ IP üũ¼¶Àº ¼ö½Å ÆÐŶÀÇ Ã¹ IP Çì´õ¿¡¼­ üũ¼¶°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ¸¸¾à ¼ö½Å ÆÐŶÀº ÅͳΠIP Çì´õ¿Í Àü¼Û °èÃþ IP Çì´õ¸¦ Æ÷ÇÔÇÑ´Ù¸é, NICÀº ÅͳΠIP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °Ë»çÇÑ´Ù. TCP/IP Àü¼Û °èÃþÀº ±×·¯ÇÑ ÆÐŶÀÇ Àü¼Û °èÃþ IP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °Ë»çÇÑ´Ù.

NdisPacketTcpChecksumSucceeded
NIC¿¡ ÀÇÇØ °è»êµÈ TCP üũ¼¶Àº ¼ö½Å ÆÐŶÀÇ TCP Çì´õ¿¡¼­ üũ¼¶°ú ÀÏÄ¡ÇÏ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NdisPacketUdpChecksumSucceeded
NIC¿¡ ÀÇÇØ °è»êµÈ UDP üũ¼¶Àº ¼ö½Å ÆÐŶÀÇ UDP Çì´õ¿¡¼­ üũ¼¶°ú ÀÏÄ¡ÇÏ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NdisPacketIpChecksumSucceeded
NIC¿¡ ÀÇÇØ °è»êµÈ IP üũ¼¶Àº ¼ö½Å ÆÐŶÀÇ Ã¹ IP Çì´õ¿¡¼­ üũ¼¶ÀÌ ÀÏÄ¡ÇÏ´Ù´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ¸¸¾à ¼ö½Å ÆÐŶÀº ÅͳΠIP Çì´õ¿Í Àü¼Û °èÃþ IP Çì´õ¸¦ Æ÷ÇÔÇÑ´Ù¸é, NICÀº ÅͳΠIP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °Ë»çÇÑ´Ù¸é, NICÀº ´ÜÁö ÅͳΠIP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °Ë»çÇÑ´Ù. TCP/IP Àü¼Û °èÃþÀº ±×·¯ÇÑ ÆÐŶÀÇ Àü¼Û °èÃþ IP Çì´õ¸¦ À§ÇÑ Ã¼Å©¼¶À» °Ë»çÇÑ´Ù.

NdisPacketLoopback
¼ö½Å ÆÐŶÀÌ NDIS°¡ ´Ù·ç´Â loopback ÆÐŶÀ̶ó´Â °ÍÀ» °¡¸®Å°±â À§ÇØ ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡, ¹Ì´ÏÆ÷Æ®´Â ¸ðµç NdisPacketXxxChecksumSucceeded Ç÷¡±×µéÀ» ¼³Á¤ÇÑ´Ù.

Value
üũ¼¶ °ª

ÁÖ¼®

NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼´Â TCP/IP Àü¼Û °èÃþ¿¡¼­ NICÀ¸·Î üũ¼¶ ŽºÅ©µéÀ» offloadingÇϴµ¥ »ç¿ëµÇ´Â Á¤º¸¸¦ ÁöÁ¤ÇÑ´Ù. NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ÆÐŶ´ç Á¤º¸(È®Àå ´ë¿ª¿Ü Á¤º¸)ÀÇ ºÎºÐÀÌ´Ù.

TCP/IP Àü¼Û °èÃþÀÌ ¹Ì´ÏÆ÷Æ®°¡ üũ¼¶ ŽºÅ©µéÀ» ÇàÇÒ ÆÐŶÀ» ¹Ì´ÏÆ÷Æ®¿¡ Àü´ÞÇϱâ Àü¿¡, TCP/IP Àü¼Û °èÃþÀº ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼¸¦ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ƯÈ÷, TCP/IP Àü¼Û °èÃþÀº º¸³»±â ÆÐŶÀÌ IPv4 ÁÖ¼ÒµéÀ» Æ÷ÇÔÇÏ´Â °ÍÀ» °¡¸®Å°±â À§ÇØ NdisPacketChecksumV4¸¦ ¼³Á¤ÇÑ´Ù. ¸¸¾à TCP/IP Àü¼Û °èÃþÀÌ ÀÌ Ç÷¡±×¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸é, ¹Ì´ÏÆ÷Æ®´Â ÆÐŶ¿¡¼­ üũ¼¶ ŽºÅ©µéÀ» ÇàÇÏÁö ¾Ê´Â´Ù. ¸¸¾à TCP/IP Àü¼Û °èÃþÀÌ NdisPacketChecksumV4¸¦ ¼³Á¤ÇÑ´Ù¸é, ¹Ì´ÏÆ÷Æ®°¡ ÆÐŶÀ» À§ÇØ °è»êÇØ¾ß Çϴ üũ¼¶ÀÌ ¾î´À °ÍÀÎÁö °¡¸®Å°±â À§ÇØ NdisPacketTcpChecksum ȤÀº NdisPacketIpChecksum¸¦ ¼³Á¤ÇÑ´Ù.

üũ¼¶ ŽºÅ©µéÀ» ÇàÇÏ´Â ¼ö½Å ÆÐŶÀ» °¡¸®Å°±â Àü¿¡, ¹Ì´ÏÆ÷Æ®´Â NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼¿¡¼­ Àû´çÇÑ NdisPacketXxxChecksumFailed¿Í NdisPacketXxxChecksumSucceeded Ç÷¡±×µéÀ» ¼³Á¤ÇÑ´Ù.¸¸¾à ÆÐŶÀÌ ·çÇÁ¹é ÆÐŶÀ̸é, ¹Ì´ÏÆ÷Æ®´Â NdisPacketLooback Ç÷¡±×¿Í ¸ðµç NdisPacketXxxChecksumSucceeded Ç÷¡±×µéÀ» ¼³Á¤ÇÑ´Ù.

NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò±â À§ÇØ, µå¶óÀ̹ö´Â TcpIpChecksumPacketInfoÀÇ InfoTypeÀ¸·Î NDIS_PER_PACKET_INFO_FROM_PACKET ¸ÅÅ©·Î¸¦ È£ÃâÇÑ´Ù. ´ë¾ÈÀ¸·Î, µå¶óÀ̹ö´Â ÁÖ¾îÁø ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ NDIS_PACKET_EXTENSION ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò±â ¿ìÇØ NDIS_PACKET_EXTENSION_FROM_PACKET ¸ÅÅ©·Î¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¹Ì´ÏÆ÷Æ®´Â ±×¸®°í³ª¼­ NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò±â À§ÇØ TcpIpCheckSumPacketInfo ¹è¿­ À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.