15.1 FFP ¿¬»ê Ư¡
ÀÌ ¼½¼ÇÀº FFP¸¦ Áö¿øÇÏ´Â NIC°ú NDIS µå¶óÀ̹ö¸¦ À§Çؼ ¿¬»ê Ư¡À» ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ »ç¿ëµÉ ¼ö ÀÖ´Â OID¸¦ ¼¼úÇÑ´Ù. ´ÙÀ½ÀÇ Â÷Æ®´Â ÀÌ·± OID¸¦ ¿ä¾àÇÑ´Ù.
| Length |
Q |
S |
Name |
| 8 or 12 |
M |
M |
OID_FFP_SUPPORT
FFPÀÇ ¹öÀüÀ» ¾ò°Å³ª FFP µ¿ÀÛÀ» ¼³Á¤ÇÑ´Ù.. |
| 4 |
|
M |
OID_FFP_FLUSH
FFP »óÅ Á¤º¸¸¦ Ç÷¯½¬ÇÑ´Ù. |
| 8 |
M |
M |
OID_FFP_CONTROL
ÅëÁ¦ »óŸ¦ ¾ò°Å³ª ¼³Á¤ÇÑ´Ù. |
| 8 |
M |
M |
OID_FFP_PARAMS
ij½¬ »çÀÌÁ ¾ò°Å³ª ¼³Á¤ÇÑ´Ù. |
| Var. or 36 |
M |
M |
OID_FFP_DATA
ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¾ò°Å³ª ¼³Á¤ÇÑ´Ù. |
´ÙÀ½Àº À§ÀÇ Â÷Æ®º¸´Ù ´õ ¸¹Àº °¢°¢ÀÇ OID_XXX¸¦ ¼¼úÇÑ´Ù.
OID_FFP_SUPPORT
Äõ¸® ¸®Äù½ºÆ®·Î½á ÀÌ OID´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NIC¿¡ ÀÇÇØ¼ Áö¿øµÇ´Â ƯÁ¤ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ FFP ¹öÀüÀ» ¸®Äù½ºÆ®ÇÑ´Ù. ¼Â ¸®Äù½ºÆ®·Î½á ÀÌ OID´Â FFP µ¿ÀÛ¿¡ ¿µÇâÀ» ³¢Ä¡´Â ¸î¸î ÅëÁ¦ ¸Å°³º¯¼öµéÀ» ¹Ù²Ùµµ·Ï ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ Áö½ÃÇÑ´Ù.
ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â Äõ¸® ¸®Äù½ºÆ®´Â FFP ¹öÀü Á¤º¸¸¦ À§ÇÑ Äõ¸®¸¦ À§Çؼ FFPVersionParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù. FFPVersionParams ±¸Á¶Ã¼ÀÇ Á¤ÀÇ´Â ´ÙÀ½°ú °°´Ù:
typedef struct _FFPVersionParams {
IN ULONG NdisProtocolType;
OUT ULONG FFPVersion;
} FFPVersionParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.
- NdisProtocolType
- ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÌ Áö¿øÇÏ´Â FFP ¹öÀüÀ» ¾ò±â À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇöÀç Áö¿øµÇÁö ¾Ê´Â °ªÀÌ´Ù.
- FFPVersion
- ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿¡ ÀÇÇØ¼ Áö¿øµÇ´Â FFPÀÇ ¸ÞÀÌÀú ¹öÀü°ú ¸¶ÀÌ³Ê ¹öÀüÀ» ¼¼úÇÑ´Ù. ¿¹¸¦µé¾î version 1.0. ÀÌ ¸â¹ö´Â 32 ºñÆ® °ªÀ» °®´Â´Ù.
low-order 16 ºñÆ®´Â ¸¶ÀÌ³Ê ¹öÀüÀ» Æ÷ÇÔÇϰí high-order 16 ºñÆ®´Â ¸ÞÀÌÀú ¹öÀüÀ» Æ÷ÇÔÇÑ´Ù.
ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¼Â ¸®Äù½ºÆ®´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÇ FFP µ¿ÀÛÀ» ¼³Á¤Çϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ FFPSupportParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù:
typedef struct _FFPSupportParams {
IN ULONG NdisProtocolType;
IN ULONG FastForwardingCacheSize;
IN ULONG FFPControlFlags;
} FFPSupportParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
- NdisProtocolType
- FFP µ¿ÀÛÀ» ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇöÀç Áö¿øµÇÁö ¾Ê´Â´Ù.
- FastForwardingCacheSize
- ºü¸¥ Æ÷¿öµù ij½¬ÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼¼úÇÑ´Ù.
ÀÌ Ä³½¬¸¦ À§ÇÑ ±×µé ÀÚ½ÅÀÇ ¸Þ¸ð¸®¸¦ °¡Áö´Â NICÀº ÀÌ OID¸¦ °¡Áö´Â ¼Â ¸®Äù½ºÆ®¸¦ ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ Ä³½¬¸¦ À§Çؼ ½Ã½ºÅÛ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ´ëÀÀµÇ´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ °®´Â NICÀº ±×µéÀÇ ¸Þ¸ð¸® »ç¿ë·®À» FastForwardingCacheSize ¸â¹öÀÇ °ªÀ¸·Î Á¦ÇÑÇØ¾ßÇÑ´Ù. ij½¬ »çÀÌÁî¿¡¼ÀÇ ÀÌ·¯ÇÑ Á¦ÇÑÀº Æ÷Æ®´ç ±âÃʺ¸´Ù´Â NIC Àü¹Ý¿¡¼ Àû¿ëµÈ´Ù.
- FFPControlFlags
- ´ÙÀ½ÀÇ »ç¿ë°¡´ÉÇÑ Ç÷¡±×¸¦ Æ÷ÇÔÇÏ´Â 32 ºñÆ® °ªÀ» ¼¼úÇÑ´Ù:
| Flag |
Value |
Meaning |
| low-order 16 ºñÆ®¿¡¼ Àû¾îµµ Áß¿äÇÑ ºñÆ®(LSB) |
1·Î ¼³Á¤
0À¸·Î ¼³Á¤ |
¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NIC¿¡¼ FFP¸¦ Àο¡À̺íÇÑ´Ù.
¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö·Î ÇÏ¿©±Ý NICÀÌ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄݷκÎÅÍ ¹ÞÀº ¸ðµç ÆÐŶµéÀ» ÀεðÄÉÀÌÆ®Çϵµ·ÏÇÑ´Ù. |
| high-order 16 ºñÆ®¿¡¼ Àû¾îµµ Áß¿äÇÑ ºñÆ®(LSB) |
1·Î ¼³Á¤
0À¸·Î ¼³Á¤ |
ÆÐŶ °æ·Î¸¦ °áÁ¤ÇßÀ» ¶§ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NICÀ¸·Î ÇÏ¿©±Ý »óÀ§Ãþ ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ »ç¿ëÇϵµ·ÏÇÑ´Ù.
ÆÐŶ °æ·Î¸¦ °áÁ¤ÇßÀ» ¶§¸¸ IP¿¡ ´ëÇØ¼ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NICÀ¸·Î ÇÏ¿©±Ý ÆÐŶ ½Äº°ÀÚµéÀ» »ç¿ëÇϵµ·ÏÇÑ´Ù. |
´Ù¸¥ ¸ðµç ºñÆ®µéÀº ¹Ì·¡ÀÇ »ç¿ëÀ» À§Çؼ ¿¹¾àµÇ¾ú´Ù. ±×·¡¼ 0À¸·Î ¼³Á¤µÇ¾î¾ßÇÑ´Ù.
IP¿¡ ´ëÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ¸ Á¤º¸¸¸À» Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL
¿¹¸¦µé¾î »óÀ§Ãþ ÇÁ·ÎÅäÄÝÀº Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Internet Control Message Protocol (ICMP)À» Æ÷ÇÔÇÑ´Ù.
TCP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL,
[TCP SRC address + TCP DEST address]
UDP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL,
[UDP SRC address + UDP DEST address]
ICMP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL,
[ICMP type + UDP code]
Remarks
ÀüÇüÀûÀ¸·Î ÇÁ·ÎÅäÄÝÀº ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ Áö¿øÇÏ´Â FFP ¹öÀüÀ» °áÁ¤Çϱâ À§Çؼ Äõ¸® ¸®Äù½ºÆ®¸¦ ¿ì¼±ÀûÀ¸·Î ¼öÇàÇÑ´Ù. ±×¸®°í³ª¼ ÇÁ·ÎÅäÄÝÀº FFP µ¿ÀÛÀ» ¹Ù²Ù±â À§Çؼ ¼Â ¸®Äù½ºÆ®¸¦ ¼öÇàÇÑ´Ù.
¿¹¸¦µé¾î Control ¸Å°³º¯¼ö´Â FFP ij½¬ »çÀÌÁî¿Í FFP ÅëÁ¦ Ç÷¡±×¸¦ ¼³Á¤ÇÑ´Ù.
¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NICÀº ¾î¶² ÇÁ·ÎÅäÄÝ ÆÐ¹Ð¸®¿¡ ´ëÇØ¼¸¸ FFP µ¿ÀÛÀ» Áö¿øÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇØ¶ó. ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â Äõ¸® ¸®Äù½ºÆ®´Â °¢°¢ÀÇ ÇÁ·ÎÅäÄÝ ÆÐ¹Ð¸®·¹ ´ëÇØ¼ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NIC¿¡¼ FFP Áö¿øÀ» Äõ¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¸¦ Àο¡À̺íÇÑ´Ù.
OID_FFP_FLUSH
ÀÌ OID´Â FFP ij½¬·ÎºÎÅÍ ¸ðµç Á¤º¸¸¦ Ç÷¯½¬Çϱâ À§Çؼ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀ» ¸®Äù½ºÆ®ÇÑ´Ù. ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¸®Äù½ºÆ®´Â ij½¬¸¦ Ç÷¯½¬Çϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ FFPFlushParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù:
typedef struct _FFPFlushParams {
IN ULONG NdisProtocolType;
} FFPFlushParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
- NdisProtocolType
- ƯÁ¤ ÇÁ·ÎÅäÄÝÀÇ FFP ij½¬¸¦ Ç÷¯½¬Çϱâ À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇÚÀç Áö¿øµÇÁö ¾Ê´Â´Ù.
Remarks
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ´ÙÀ½ÀÇ ¿¹Á¦ »óȲ¿¡¼ ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¸®Äù½ºÆ®¸¦ º¸³½´Ù:
- ¶ó¿ìÆÃ Äڵ带 Æ÷ÇÔÇÏ´Â Æ÷¿öµù Á¾º¸°¡ ¹Ù²ð ¶§. ¿¹¸¦µé¾î IP ¶ó¿ìÆ® Å×À̺íÀÇ º¯È.
- Æ÷¿öµå °æ·ÎÀÇ ÇÊÅÍ ¸ðÀ½ÀÌ ¹Ù²ð ¶§. ¿¹¸¦µé¾î »õ·Î¿î ÇÊÅÍÀÇ Ãß°¡³ª Á¸ÀçÇÏ´Â ÇÊÅÍÀÇ Á¦°Å.
- layer 3¿¡¼ layer 2±îÁöÀÇ ÁÖ¼ÒÁ¤º¸ÀÇ ¸ÅÇÎÀÌ ¹Ù²ð ¶§.
OID_FFP_CONTROL
ÀÌ OID´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NIC¿¡ ÅëÁ¦ »óŸ¦ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ¸®Äù½ºÆ®ÇÑ´Ù.
ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¸®Äù½ºÆ®´Â ÅëÁ¦ »óŸ¦ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ FFPControlParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù:
typedef struct _FFPControlParams {
IN ULONG NdisProtocolType;
IN/OUT ULONG FFPControlFlags;
}FFPControlParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
- NdisProtocolType
- ƯÁ¤ ÇÁ·ÎÅäÄÝÀÇ FFP ÅëÁ¦ »óŸ¦ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇöÀç Áö¿øµÇÁö ¾Ê´Â´Ù.
- FFPControlFlags
- ´ÙÀ½ÀÇ °¡´ÉÇÑ Ç÷¡±×µéÀ» Æ÷ÇÔÇÏ´Â 32 ºñÆ® °ªÀÌ´Ù:
| Flag |
Value |
Meaning |
| low-order 16 ºñÆ®¿¡¼ Àû¾îµµ Áß¿äÇÑ ºñÆ®(LSB) |
1·Î ¼³Á¤
0À¸·Î ¼³Á¤ |
¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NIC¿¡¼ FFP¸¦ Àο¡À̺íÇÑ´Ù.
¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö·Î ÇÏ¿©±Ý NICÀÌ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄݷκÎÅÍ ¹ÞÀº ¸ðµç ÆÐŶµéÀ» ÀεðÄÉÀÌÆ®Çϵµ·ÏÇÑ´Ù. |
| high-order 16 ºñÆ®¿¡¼ Àû¾îµµ Áß¿äÇÑ ºñÆ®(LSB) |
1·Î ¼³Á¤
0À¸·Î ¼³Á¤ |
ÆÐŶ °æ·Î¸¦ °áÁ¤ÇßÀ» ¶§ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NICÀ¸·Î ÇÏ¿©±Ý »óÀ§Ãþ ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ »ç¿ëÇϵµ·ÏÇÑ´Ù.
ÆÐŶ °æ·Î¸¦ °áÁ¤ÇßÀ» ¶§¸¸ IP¿¡ ´ëÇØ¼ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× NICÀ¸·Î ÇÏ¿©±Ý ÆÐŶ ½Äº°ÀÚµéÀ» »ç¿ëÇϵµ·ÏÇÑ´Ù. |
´Ù¸¥ ¸ðµç ºñÆ®´Â ¹Ì·¡ÀÇ »ç¿ëÀ» À§Çؼ ¿¹¾àµÇ¾ú´Ù; ÇÁ·ÎÅäÄÝ È¤Àº ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ´Ù¸¥ ºñÆ®°¡ 0À̶ó°í °¡Á¤Çؼ´Â ¾ÈµÈ´Ù.
IP¸¸À» À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL
¿¹¸¦µé¾î »óÀ§Ãþ ÇÁ·ÎÅäÄÝÀº Transmission Control Protocol (TCP), User Datagram Protocol (UDP), ±×¸®°í Internet Control Message Protocol (ICMP)À» Æ÷ÇÔÇÑ´Ù.
TCP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
>IP SRC address, IP DEST address, IP PROTOCOL,
[TCP SRC address + TCP DEST address]
UDP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL,
[UDP SRC address + UDP DEST address]
ICMP/IP¸¦ À§ÇÑ ÆÐŶ ½Äº°ÀÚµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
IP SRC address, IP DEST address, IP PROTOCOL,
[ICMP type + UDP code]
Remarks
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NIC¿¡ ÅëÁ¦ »óŸ¦ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ÅëÁ¦ »óŸ¦ ¾òÀ» ¶§ FFPControlParams ±¸Á¶Ã¼ÀÇ FFPControlFlags ¸â¹ö´Â OUT ¸Å°³º¯¼öÀÌ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ »õ·Î¿î µ¿ÀÛÀ» ¼³Á¤ÇÒ ¶§ FFPControlParams ±¸Á¶Ã¼ÀÇ FFPControlFlags ¸â¹ö´Â IN ¸Å°³º¯¼öÀÌ´Ù.
TCP/IP °°Àº ÇÁ·ÎÅäÄÝÀº »õ·Î¿î ÇÊÅÍÀÇ Á¸À縦 ¾Ë¸®±â À§Çؼ ÀÌ OID¸¦ »ç¿ëÇÑ´Ù. ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÌ »ç¿ëÇÏ´Â FFP ±¸Á¶´Â Àü¿¡ ÇàÇØÁöÁö ¾Ê¾Ò´Ù¸é ºü¸¥ °æ·Î¿¡¼ ÇÊÅÍ Á¤º¸¸¦ ÂüÁ¶Çϱ⠽ÃÀÛÇÑ´Ù.
¼¼úµÈ °ÍÀ» Á¦¿ÜÇϰí FFPControlParams ±¸Á¶Ã¼ÀÇ FFPControlFlags ¸â¹ö¿¡ ¸ðµç ºñÆ®´Â ¹Ì·¡¸¦ À§Çؼ ¿¹¾àµÇ¾ú°í 0À¸·Î ¼³Á¤µÇ¾î¾ßÇÑ´Ù.
OID_FFP_PARAMS
ÀÌ OID´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹ö¿¡ ´ëÇÑ NICÀÇ FFP ij½¬¿¡ ´ëÇØ¼ ¸Þ¸ð¸® »çÀÌÁ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ¸®Äù½ºÆ®ÇÑ´Ù.
ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¸®Äù½ºÆ®´Â FFP ij½¬ »çÀÌÁ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ FFPCacheParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù:
typedef struct _FFPCacheParams {
IN ULONG NdisProtocolType;
IN/OUT ULONG FastForwardingCacheSize;
} FFPCacheParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
- NdisProtocolType
- ƯÁ¤ ÇÁ·ÎÅäÄÝÀÇ FFP ij½¬ »çÀÌÁ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇöÀç Áö¿øµÇÁö ¾Ê´Â´Ù.
- FastForwardingCacheSize
- ºü¸¥ Æ÷¿öµù ij½¬ÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼¼úÇÑ´Ù.
ÀÌ Ä³½¬¿¡ ´ëÇØ¼ ±×µé ÀÚ½ÅÀÇ ¸Þ¸ð¸®¸¦ °®´Â NICÀº ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¼Â ¸®Äù½ºÆ®¸¦ ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ Ä³½¬¸¦ À§Çؼ ½Ã½ºÅÛ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ´ëÀÀµÇ´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ °®´Â NICÀº±×µé ¸Þ¸ð¸®ÀÇ »ç¿ë·®À» FastForwardingCacheSize ¸â¹öÀÇ °ªÀ¸·Î Á¦ÇÑÇØ¾ßÇÑ´Ù. ij½¬ »çÀÌÁî¿¡ ´ëÇÑ ÀÌ·¯ÇÑ Á¦ÇÑÀº Æ÷Æ®´ç ±âÃʺ¸´Ù´Â ¿ÀÈ÷·Á NIC Àüü¿¡ Àû¿ëµÈ´Ù.
Remarks
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NIC¿¡ FFP ij½¬ »çÀÌÁ ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ij½¬ »çÀÌÁ ¾òÀ» ¶§, FFPCacheParams ±¸Á¶Ã¼ÀÇ FastForwardingCacheSize ¸â¹ö´Â OUT ¸Å°³º¯¼öÀÌ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ij½¬ »çÀÌÁ ¼³Á¤ÇÒ ¶§, FFPCacheParams ±¸Á¶Ã¼ÀÇ FastForwardingCacheSize ¸â¹ö´Â IN ¸Å°³º¯¼öÀÌ´Ù.
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ½Ã½ºÅÛ ÀÚ¿øÀ» »ç¿ëÇÏ´Â NICÀÇ FFP ij½¬ »çÀÌÁ µ¿ÀûÀ¸·Î ¹Ù²Ù±â À§Çؼ ÀÌ OID¸¦ »ç¿ëÇÑ´Ù. NDIS°¡ FFP ij½¬ »çÀÌÁ ±¸¼ºÇÏ´Â µ¿¾È¿¡ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NICÀÌ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·ÎºÎÅÍ ¹ÞÀº ¸ðµç ÆÐŶÀ» µÚ·Î µÇµ¹·Áº¸³½´Ù. FFP ij½¬ »çÀÌÁî°¡ ±¸¼ºµÆÀ» ¶§ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀº ƯÁ¤ ŸÀÔÀÇ ºü¸¥ Æ÷¿öµù ÆÐŶÀ» µÚ·Î µÇµ¹·Áº¸³½´Ù.
OID_FFP_DATA
ÀÌ OID´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÌ FFP ij½¬¿¡ ÀÇÇØ¼ ¼ö½ÅµÈ ƯÁ¤ Çì´õ ÆÐÅÏÀ» °¡Áö°í ÆÐŶÀ» ¼öÇàÇØ¾ßÇÏ´Â µ¿ÀÛÀÇ Å¸ÀÔÀ» ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ¸®Äù½ºÆ®ÇÑ´Ù.
ÀÌ OID¸¦ Æ÷ÇÔÇÏ´Â ¸®Äù½ºÆ®´Â µ¿ÀÛÀÇ Å¸ÀÔÀ» ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ FFPDataParams ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù:
typedef struct _FFPDataParams {
IN ULONG NdisProtocolType;
IN/OUT LONG CacheEntryType;
IN ULONG HeaderSize;
union {
IN UCHAR Header[1];
struct {
IN IPHeader Header;
IN ULONG DwordAfterHeader;
} IpHeader;
};
} FFPDataParams;
|
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ¸¹ÇÀÌ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù:
- NdisProtocolType
- ƯÁ¤ ÆÐŶ¿¡¼ ¼öÇàµÇ´Â µ¿ÀÛÀÇ Å¸ÀÔÀ» ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ º¸³»´Â ÇÁ·ÎÅäÄÝ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀ» ¼¼úÇÏ´Â NDIS_PROTOCOL_ID_TCP_IP °ªÀº ÇöÀç Áö¿øµÇÁö ¾Ê´Â´Ù.
- CacheEntryType
- ¹ö¸®±â, È£½ºÆ® ÇÁ·Î¼¼¼¸¦ ÅëÇØ¼ ¶ó¿ìÆÃ ¾øÀÌ ºü¸¥ Æ÷¿öµùÇϱâ, ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·Î ÀεðÄÉÀÌÆ®Çϱâ¿Í °°Àº, FFP ij½¬¿¡ ÀÇÇØ¼ ¼ö½ÅµÈ ƯÁ¤ ÆÐŶ»ó¿¡¼ ¼öÇàµÇ´Â µ¿ÀÛÀÇ Å¸ÀÔÀ» ¼¼úÇÑ´Ù. µ¿ÀÛÀÇ Å¸ÀÔÀº ´ÙÀ½Áß ÇϳªÀÏ ¼ö ÀÖ´Ù:
| Value |
Meaning |
FFP_DISCARD_PACKET
(-1) |
FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ union ¾È¿¡ Á¤º¸¿Í ÀÏÄ¡ÇÏ´Â Çì´õ ÆÐÅÏÀ» Æ÷ÇÔÇÏ´Â ÆÐŶÀ» ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NICÀÌ ¹ö¸± °ÍÀ̶ó´Â °ÍÀ» ¼¼úÇÑ´Ù. |
FFP_INDICATE_PACKET
(0) |
FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ union ¾È¿¡ Á¤º¸¿Í ÀÏÄ¡ÇÏ´Â Çì´õ ÆÐÅÏÀ» Æ÷ÇÔÇÏ´Â ÆÐŶÀ» ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NICÀÌ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝ·Î ÀεðÄÉÀÌÆ®ÇÒ °ÍÀ̶ó´Â °ÍÀ» ¼¼úÇÑ´Ù. |
FFP_FORWARD_PACKET
(1) |
FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ union ¾È¿¡ Á¤º¸¿Í ÀÏÄ¡ÇÏ´Â Çì´õ ÆÐÅÏÀ» Æ÷ÇÔÇÏ´Â ÆÐŶÀ» ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ NICÀÌ ºü¸¥ Æ÷¿öµùÇÒ °ÍÀ̶ó´Â °ÍÀ» ¼¼úÇÑ´Ù. |
ij½¬ ¿£Æ®¸® ŸÀÔÀ» °®Áö ¾Ê´Â °ÍÀº FFP_INDICATE_PACKET ¿£Æ®¸®¸¦ °®´Â °Í°ú °ü·ÃÀÌ ÀÖÀ½À» ÁÖÀÇÇØ¶ó; ¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÌ Æ¯Á¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶ¿¡ ´ëÇØ¼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» °®Áö ¾Ê´Â´Ù¸é ±×µéÀÇ ±âº» µ¿ÀÛÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·Î ÆÐŶÀ» ÀεðÄÉÀÌÆ®ÇÏ´Â °ÍÀÌ´Ù.
- HeaderSize
- FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇԵǴ union ¾È¿¡ ÀÏÄ¡ÇÏ´Â Çì´õ ¹öÆÛÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼¼úÇÑ´Ù.
- Header
- ¹è¿¾È¿¡ ÀÏÄ¡ÇÏ´Â Çì´õ ¹öÆÛ¸¦ À¯ÁöÇÒ ¼ö ÀÖ´Â FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇԵǴ union ¾È¿¡ ¸â¹ö¸¦ ¼¼úÇÑ´Ù. HeaderSize ¸â¹ö´Â ÀÌ ¹è¿ÀÇ »çÀÌÁ ¼¼úÇÑ´Ù. ƯÁ¤ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ÀÌ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶ¿¡ ´ëÇØ¼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¾ò°Å³ª ¼³Á¤ÇÑ´Ù.
- IpHeader
- ´ÙÀ½ÀÇ ¸â¹ö¸¦ °®´Â ±¸Á¶Ã¼ ¾È¿¡ ÀÏÄ¡ÇÏ´Â Çì´õ ¹öÆÛ¸¦ À¯ÁöÇÒ ¼ö ÀÖ´Â FFPDataParams ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ union ¾È¿¡ ¸â¹ö¸¦ ¼¼úÇÑ´Ù.
- Header
- ÀÏÄ¡ÇÏ´Â Çì´õ ÆÐÅÏÀ» Æ÷ÇÔÇÏ´Â IPHeader ±¸Á¶Ã¼¸¦ ¼¼úÇÑ´Ù. ƯÁ¤ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´ÂÀÌ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶ¿¡ ´ëÇØ¼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¾ò°Å³ª ¼³Á¤ÇÑ´Ù. IPHeader ±¸Á¶Ã¼´Â Remarks¿¡ Á¤ÀǵǾî ÀÖ´Ù.
- DwordAfterHeader
- IPHeader ±¸Á¶Ã¼¾È¿¡ ÀÏÄ¡ÇÏ´Â Çì´õ¿¡ µû¸£´Â ÀûÀýÇÑ »óÀ§Ãþ ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ ¼¼úÇÑ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ HeaderSize ¸â¹ö¾È¿¡ ÀÏÄ¡ÇÏ´Â Çì´õ ¹öÆÛÀÇ »çÀÌÁ ÀεðÄÉÀÌÆ®ÇÒ ¶§ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ÀÌ DwordAfterHeader ¸â¹öÀÇ »çÀÌÁ Æ÷ÇÔÇØ¾ßÇÑ´Ù.
¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±× µå¶óÀ̹öÀÇ NICÀÌ ÇöÀç ±×µéÀÇ ºü¸¥ Æ÷¿öµù °áÁ¤¿¡¼ »óÀ§Ãþ ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ »ç¿ëÇÑ´Ù¸é OID_FFP_DATA¸¦ Æ÷ÇÔÇÏ´Â ¾ò±â³ª ¼³Á¤Çϱ⠸®Äù½ºÆ®´Â ±×·¯ÇÑ »óÀ§Ãþ Á¤º¸¸¦ Æ÷ÇÔÇØ¾ßÇÑ´Ù. ¿¹¸¦µé¾î »óÀ§Ãþ Á¤º¸´Â TCP ±Ù¿øÁö¿Í ¸ñÀûÁö Æ÷Æ®, UDP ±Ù¿øÁö¿Í ¸ñÀûÁö Æ÷Æ®, ȤÀº ICMP ŸÀÔ°ú ÄÚµå.
Remarks
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ƯÁ¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶ¿¡ ´ëÇØ¼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¾ò°Å³ª ¼³Á¤Çϱâ À§Çؼ ÀÌ OID¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¾òÀ» ¶§ FFPDataParams ±¸Á¶Ã¼ÀÇ CacheEntryType ¸â¹ö´Â OUT ¸Å°³º¯¼öÀÌ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ij½¬ ¿£Æ®¸® ŸÀÔÀ» ¼³Á¤ÇÒ ¶§ FFPDataParams ±¸Á¶Ã¼ÀÇ CacheEntryType ¸â¹ö´Â IN ¸Å°³º¯¼öÀÌ´Ù.
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ƯÁ¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶÀ» À§Çؼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» FFP_DISCARD_PACKET À̳ª FFP_INDICATE_PACKET ·Î¸¸ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ƯÁ¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶÀ» À§Çؼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» FFP_DISCARD_PACKETÀ¸·Î ¼³Á¤ÇßÀ» ¶§ ±× ÆÐŶµéÀº Æ÷¿öµå °æ·Î »ó¿¡¼ ÇÊÅÍ¿¡ ÀÇÇØ¼ µå¶øµÈ´Ù. ¹Ý¸é¿¡ ÇÁ·ÎÅäÄÝÀÌ Æ¯Á¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶÀ» À§Çؼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» FFP_INDICATE_PACKETÀ¸·Î ¼³Á¤Çß´Ù¸é ±× ÆÐŶµéÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·Î ÀεðÄÉÀÌÆ®µÇµµ·Ï °¿äµÈ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ƯÁ¤ Çì´õ ÆÐÅÏÀ» °®´Â ÆÐŶÀ» À§Çؼ ij½¬ ¿£Æ®¸® ŸÀÔÀ» FFP_FORWARD_PACKETÀ¸·Î ¼³Á¤ÇÏ´Â °ÍÀº À¯È¿ÇÏÁö ¾Ê´Ù; ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿Í ±×µéÀÇ NICÀº ÆÐŶµéÀÌ Ã³À½¿¡ ´À¸° °æ·Î¸¦ ÅÃÇßÀ» ¶§ ±× ÆÐŶÀ» ÀÌ Ä³½¬ ¿£Æ®¸® ŸÀÔÀ» ¼³Á¤ÇؾßÇÑ´Ù. Áï, ƯÁ¤ ŸÀÔÀÇ Ã³À½ ÆÐŶÀº NICÀÇ ÀÔ·Â Æ÷Æ®¿¡ ÀÇÇØ¼ óÀ½¿¡ ¼ö½ÅµÈ´Ù; ±×¸®°í³ª¼ ÀÌ ÆÐŶÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·Î ÀεðÄÉÀÌÆ®µÈ´Ù; ¸¶Áö¸·À¸·Î ÀÌ ÆÐŶÀº NICÀÇ Ãâ·Â Æ÷Æ®·Î ¶ó¿ìÆ®µÈ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ Fast Forwarding Path¸¦ ºÁ¶ó.
// Definition of the IP header
typedef struct IPHeader {
UCHAR iph_verlen; // Version and length
UCHAR iph_tos; // Type of service
USHORT iph_length; // Total datagram length
USHORT iph_id; // Identification
USHORT iph_offset; // Flags, fragment offset
UCHAR iph_ttl; // Time to live
UCHAR iph_protocol; // Protocol
USHORT iph_xsum; // Header checksum
ULONG iph_src; // Source address
ULONG iph_dest; // Destination address
} IPHeader;
|