¿ù°£ Àα⠰Խù°

°Ô½Ã¹° 96°Ç
   
TOE (TCP/IP offload engine)
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-01-04 (¿ù) 14:10 Á¶È¸ : 10112
±ÛÁÖ¼Ò :
                          

TOE (TCP/IP offload engine)

TOE´Â ½º·çDzÀ» ÃÖÀûÈ­Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î °í¼Ó ÀÌ´õ³Ý ½Ã½ºÅÛ ³»¿¡ ÀÎÁöµµ¸¦ ´Ã·ÁÁÖ´Â ±â¼úÀÌ´Ù. TOE ±¸¼º ¿ä¼ÒµéÀº ³×Æ®¿÷ Ä«µå³ª HBA µî°ú °°Àº ´Ù¾çÇÑ PCB Áß ¾î´À Çϳª¿¡ º´ÇյȴÙ.

ÃÖ±Ù ¸î ³â »çÀÌ¿¡ ÀÌ´õ³Ý ½Ã½ºÅÛ ³»ÀÇ Åë½Å¼Óµµ´Â ÄÄÇ»ÅÍ ÇÁ·Î¼¼¼­ÀÇ Ã³¸®¼Óµµº¸´Ù ´õ »¡¶óÁ³´Ù. ¹Ù·Î ÀÌÁ¡ÀÌ ÀÔÃâ·Â º´¸ñ Çö»óÀ» ÃÊ·¡ÇÑ´Ù. ÇÁ·Î¼¼¼­´Â ÀÔÃâ·Âº¸´Ù °è»êÀ» ¿ì¼±Çϵµ·Ï ¼³°èµÇ¾ú±â ¶§¹®¿¡, ³×Æ®¿÷À» ÅëÇØ È帣´Â µ¥ÀÌÅÍÀÇ ¼Óµµ¸¦ µû¶óÀâÀ» ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î TCP/IPÀÇ µ¥ÀÌÅÍ È帧Àº ³×Æ®¿÷ ¼Óµµº¸´Ù ´õ ´À¸° ¼Óµµ·Î 󸮵ȴÙ. TOE´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¿Í ÀÔÃâ·Â ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ºÎ´ãÀ» Á¦°ÅÇÔÀ¸·Î½á ÀÌ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù.

TOE°¡ ±¸ÇöµÇ´Â ¹æ½ÄÀº °í°´ÀÇ ¿ä°Ç¿¡ ´Þ·ÁÀִµ¥, À̶§ °í·ÁÇØ¾ß ÇÒ »çÇ×À¸·Î´Â À¯¿¬¼º, ¹üÀ§¼º ±×¸®°í ¼º´É µîÀÌ Æ÷ÇԵȴÙ. ³×Æ®¿÷ ¼º´É°ú ¹üÀ§¼ºÀº ASIC ±¸ÇöÀÇ ÃÖÀûÈ­·Î, ±×¸®°í ³×Æ®¿÷ À¯¿¬¼ºÀº ÇÁ·Î¼¼¼­ ±â¹Ý ±¸ÇöÀÇ ÃÖÀûÈ­·Î ´Þ¼ºµÈ´Ù.


³×Æ®¿öÅ© ¼Óµµ°¡ ±â°¡ºñÆ® ÀÌ´õ³Ý(Gigabit Ethernet)°ú 10 ±â°¡ºñÆ® ÀÌ´õ³ÝÀ¸·Î ¹ßÀüÇÔ¿¡ µû¶ó È£½ºÆ® ÇÁ·Î¼¼½º´Â ½ÇÁ¦ ¾÷¹«¸¦ ¼öÇàÇÏ´Â °Íº¸´Ù TCP/IP ÇÁ·ÎÅäÄÝ ½ºÅÃÀ» ó¸®Çϴµ¥ ´õ ¸¹Àº CPU »çÀÌŬÀ» »ç¿ëÇÏ°Ô µÇ¾ú´Ù. ƯÈ÷ IP¸¦ ÅëÇÑ ½ºÅä·ÎÁö µ¥ÀÌÅÍ Àü¼ÛÀ» ¼öÇàÇÏ´Â iSCSI ÇÁ·ÎÅäÄÝ¿¡¼­ TCP/IP ¿À¹öÇì´õ·Î ÀÎÇÑ ¼º´É ÀúÇÏ°¡ Çö°ÝÇÏ°Ô ¹ß»ýÇÏ°í ÀÖ´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ ´ë¿ë·®ÀÇ IP ³×Æ®¿öÅ© 󸮿¡ ÀÖ¾î CPUÀÇ ºÎ´ãÀ» ´ú¾îÁÖ±â À§ÇÑ ¹æ¹ýÀ¸·Î TCP/IP ±â´ÉÀ» Çϵå¿þ¾î·Î ±¸ÇöÇÏ´Â TCP Offload Engine(TOE) ±â¼úÀÌ ºÎ°¢µÇ°í ÀÖ´Ù. º» °í¸¦ ÅëÇÏ¿© ±âÁ¸ÀÇ TCP/IP ó¸® ¹æ¹ý°ú ¹®Á¦Á¡À» »ìÆ캸°í ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϱâ À§ÇÑ Offload ±â¼úÀ» »ìÆ캻´Ù. ¶ÇÇÑ ÇöÀç ½ÃÀå¿¡ Ãâ½ÃµÇ´Â ±â°¡ºñÆ®, 10±â°¡ºñÆ® TOE Á¦Ç°µéÀÇ Æ¯Â¡µéÀ» »ìÆ캻´Ù. ¢Ê


I. ¼­ ·Ð

TCP/IP´Â °¡Àå ³Î¸® »ç¿ëµÇ´Â ÄÄÇ»ÅÍ °£ÀÇ Åë½Å ÇÁ·ÎÅäÄÝÀÌ´Ù. ±×·¯³ª ºÒÇàÈ÷TCP/IP´Â ÇöÀç ¼­¹ö È£½ºÆ® CPUÀÇ °¡Àå Å« ºÎÇÏ·Î ÀÛ¿ëÇÏ°í ÀÖ´Ù. ÀϹÝÀûÀ¸·Î 1bit/secÀÇ TCP/IP µ¥ÀÌÅ͸¦ ó¸®Çϴµ¥ 1HzÀÇ CPU »çÀÌŬÀÌ ÇÊ¿äÇÏ´Ù. Áï 10/100Mbps ³×Æ®¿öÅ© ¼Óµµ¿¡¼­ CPU´Â TCP/IP¸¦ ó¸®Çϴµ¥ Å« ¾î·Á¿òÀÌ ¾ø¾ú´Ù. ±×·¯³ª ±â°¡ºñÆ® ÀÌ´õ³ÝÀÇ ÃâÇöÀ¸·Î ¼­¹öCPU´Â TCP/IP 󸮿¡ ´ëºÎºÐÀÇ »çÀÌŬÀ» ¼Ò¸ðÇÏ°Ô µÇ¾ú´Ù. (±×¸² 1 (a))¿¡ ÀÇÇϸé CPU ¼Óµµ´Â 18°³¿ù¸¶´Ù 2¹è¾¿ Áõ°¡ÇÏÁö¸¸ NIC ´ë¿ªÆøÀº ±×º¸´Ù ÈξÀ ´õ ºü¸£°Ô12°³¿ù¿¡ 3¹è¾¿ Áõ°¡ÇÏ°í ÀÖ´Ù. ³×Æ®¿öÅ© ´ë¿ªÆøÀº ¹«¾îÀÇ ¹ýÄ¢À» ÈξÀ ¾Õ¼­°¡°í ÀÖ´Â °ÍÀÌ´Ù[4]. ¿¹¸¦ µé¸é10 ±â°¡ºñÆ® ÀÌ´õ³Ý¸¸À» ó¸®Çϱâ À§Çؼ­ ÀüÀÌÁß Åë½ÅÀ» °í·ÁÇÒ ¶§ 20GHzÀÇ ÇÁ·Î¼¼½º°¡ ÇÊ¿äÇÏ´Ù. ÀÌ´Â 2007³â¿¡³ª °¡´ÉÇÑ ÀÏÀÌ´Ù. ´õ¿íÀÌ ÃÖ±Ùµé¾î TCP/IP ÇÁ·ÎÅäÄÝ À§¿¡ SCSI ÇÁ·ÎÅäÄÝÀ» ¿Ã¸° iSCSI ¶õ ³×Æ®¿öÅ© ½ºÅä·ÎÁö ÇÁ·ÎÅäÄÝÀÇ ÃâÇö°ú ³×Æ®¿öÅ©·Î ¿¬°áµÈ ÇÑ ÄÄÇ»ÅÍ¿¡¼­ ´Ù¸¥ ÄÄÇ»ÅÍ·Î Á÷Á¢ ¸Þ¸ð¸® µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇÏ´Â RDMA(Remote Direct Memory Access) ±â¼ú ¸ðµÎ TCP/IP °¡¼Ó ±â¼úÀÌ ¸ÕÀú ¼±ÇàµÇ¾î¾ß °¡´ÉÇÑ ±â¼úÀÌ´Ù.

TCP/IP Offload Engine(TOE)Àº CPUÀÇ TCP/IP ÆÐŶ ó¸®ÀÇ ºÎÇϸ¦ NIC Çϵå¿þ¾î°¡ ó¸®ÇÏ´Â TCP/IP °¡¼Ó ÀåÄ¡ÀÌ´Ù. (±×¸² 1 (b))¿Í °°ÀÌ TOE´Â ¼ÒÇÁÆ®¿þ¾î°¡ ´ã´çÇÏ´ø Transport, Network °èÃþÀ» Çϵå¿þ¾î°¡ ´ã´çÇϵµ·Ï ÇÑ´Ù. ±×·¯³ª ¼ÒÇÁÆ®¿þ¾î°¡ ´ã´çÇÏ´ø ´Ù¾çÇÏ°í º¹ÀâÇÑ TCP/IP 󸮸¦ Çϵå¿þ¾î·Î ¸ðµÎ ±¸ÇöÇϱâ´Â Èûµé´Ù. µû¶ó¼­ TOE¸¦ »ý»êÇÏ´Â ¾÷üµéÀº °¢±â Offloading ¼öÁØÀ» ´Þ¸®ÇÏ°í ÀÖ´Ù. º» °í¸¦ ÅëÇÏ¿© ±âÁ¸ÀÇ TCP/IP ÇÁ·ÎÅäÄÝ ±¸Á¶¿Í ¹®Á¦Á¡À» »ìÆ캸°í À̸¦ °³¼±ÇÑ TOE ±¸Á¶¿Í Ư¡¿¡ ´ëÇØ »ìÆ캻´Ù. ¶ÇÇÑ TOE Á¦Ç°À» »ý»êÇÏ´Â ¾÷üµéÀÇ µ¿ÇâÀ» »ìÆ캸±â·Î ÇÑ´Ù.






II. TCP/IP ÇÁ·ÎÅäÄÝ ¹®Á¦Á¡

1. TCP/IP ÇÁ·ÎÅäÄÝ ±â´É

TCP/IP ÇÁ·ÎÅäÄÝÀº µ¥ÀÌÅÍ Àü¼Û¿¡ »ç¿ëµÇ´Â Ç¥ÁØÀ¸·Î LANÀ̳ª WAN ¿¡ ±¤¹üÀ§ÇÏ°Ô »ç¿ëµÇ°í ÀÖ´Ù. IP ·¹À̾î´Â ¼Û¼ö½Å IP ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç ºñ¿¬°á¼º Ư¡À» °¡Áö°í ÀÖ´Ù. TCP ·¹À̾¼­´Â µ¥ÀÌÅÍ ½ºÆ®¸² ¼­ºñ½º¸¦ À§ÇØ ½Å·Ú¼º ÀÖ°í ¿¬°á ÁöÇâÀûÀÎ ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. ÀϹÝÀûÀ¸·Î ÀÎÅÍ³Ý ÇÁ·ÎÅäÄÝ·Î »ç¿ëµÇ´Â FTP, HTTP µîÀº ¸ðµÎ TCP¸¦ ÀÌ¿ëÇÏ°í ÀÖ´Ù. TCP °èÃþ¿¡¼­´Â üũ¼¶(checksum)À» ÅëÇÏ¿©¼­ ÆÐŶÀÇ Çì´õ»Ó ¾Æ´Ï¶ó ÆÐŶ µ¥ÀÌÅͱîÁö Àü¼Û ½Ã ¹ß»ýÇÏ´Â ¿À·ù¸¦ °Ë»çÇÏ°í ÀÖ´Ù. Ãʱ⠿¬°á ½Ã ¼³Á¤µÇ´Â MSS(Maximum segment size)¸¦ ±âÁØÀ¸·Î ÆÐŶÀÇ ºÐÇÒ, Á¶¸³ ±â´ÉÀ» ¼öÇàÇÑ´Ù. ¶ÇÇÑ ½ÃÄö½º ¹øÈ£(Sequence number)¸¦ ÅëÇÏ¿© ¼ø¼­´ë·Î µµÂøÇÏÁö ¾ÊÀº µ¥ÀÌÅ͵鿡 ´ëÇÑ Á¤·Ä ±â´ÉÀ» Á¦°øÇÏ°í ÀÖ´Ù. ½½¶óÀ̵ù À©µµ(sliding window) ±â¹ýÀ» ÅëÇÏ¿© ¼ö½ÅºÎÀÇ ¹öÆÛ »óŸ¦ ÆľÇÇÏ¿© ¼Û½ÅºÎ¿¡¼­ È帧 Á¦¾î(Flow control)¸¦ ¼öÇàÇÏ¸ç ¹Ý´ë·Î ¼Û½ÅºÎ¿¡¼­ ³ªÅ¸³»´Â ½½¶óÀ̵ù À©µµ¸¦ ÅëÇÏ¿© È¥Àâ Á¦¾î(Congestion control)À» ¼öÇàÇÑ´Ù. ¶ÇÇÑ TCP´Â Æ÷Æ® Á¦¾î¸¦ ÅëÇÏ¿©¼­ ¿©·¯ °¡Áö ¾ÖÇø®ÄÉÀ̼ÇÀÇ µ¥ÀÌÅ͸¦ ´ÙÁßÈ­ÇÏ¿© ¼Û¼ö½ÅÀ» ´ã´çÇÑ´Ù.

2. Traditional TCP/IP ±¸Á¶¿Í ¹®Á¦Á¡

TCP/IP ÇÁ·ÎÅäÄÝÀº (±×¸² 2)¿Í °°Àº ·¹À̾î ÇÁ·ÎÅäÄݵé·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ÀÌ´Â ¼ÒÇÁÆ®¿þ¾î·Î ±¸ÇöµÇ¾î ÀÖÀ¸¸ç OS¿¡ Æ÷ÇԵǾî ÀÖ´Ù. TCP ÇÁ·ÎÅäÄÝ°ú ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÎÅÍÆäÀ̽º´Â ¼ÒÄÏ(socket) ÀÎÅÍÆäÀ̽º°¡ ÀÌ¿ëµÈ´Ù.






(±×¸² 2)¿Í °°Àº ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ³×Æ®¿öÅ©¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ º¸³¾ °æ¿ì ´ÙÀ½°ú °°Àº µ¥ÀÌÅÍ À̵¿°ú ÇÁ·ÎÅäÄÝ ÀÛ¾÷À» °ÅÄ¡°Ô µÈ´Ù.

¾ÖÇø®ÄÉÀ̼ÇÀÌ Àü¼ÛÇÒ µ¥ÀÌÅ͸¦4~64KB Å©±â·Î TCP/IP ¼ÒÄÏ ÀÎÅÍÆäÀ̽º¿¡ ±â·ÏÇϸé OS´Â µ¥ÀÌÅ͸¦ MTU(maximum transmission unit) »çÀÌÁî¿¡ ¸Â°Ô ºÐÇÒÇÑ ÈÄ TCP/IP Çì´õ¸¦ Ãß°¡ÇÑ´Ù. ÀÌÈÄ OS´Â µ¥ÀÌÅ͸¦ NIC Ä«µåÀÇ ¼Û½Å Å¥·Î º¹»ç¸¦ ÇÑ´Ù. NICÀº TCP ¹öÆÛ ¿µ¿ª¿¡¼­ NIC·Î DMA Àü¼ÛÀ» ¼öÇàÇϸç, Àü¼Û Á¾·á¸¦ ¾Ë¸®´Â ÀÎÅÍ·´ÅÍ(Interrupts)°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ÀüÅëÀûÀÎ TCP/IP 󸮿¡´Â ´ÙÀ½°ú °°Àº ¹®Á¦Á¡ÀÌ ÀÖ´Ù.

- ÀÎÅÍ·´Æ®: ÇÁ·Î¼¼½º´Â ¸Å ÆÐŶÀÌ ´õ ÇÒ ¶§¸¶´Ù ÆÐŶ Çì´õ 󸮸¦ À§ÇÑ ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ´Â ´ë¿ë·® µ¥ÀÌÅÍ Àü¼Û ½Ã Å« ºÎÇÏ·Î ÀÛ¿ëÇÑ´Ù.

- Context Switch ¹®Á¦: ÀԷµǴ ÆÐŶÀº Ä¿³Î ·¹º§ ÇÁ·Î¼¼½º¸¦ À§Çؼ­ ÄÁÅؽºÆ® ½ºÀ§Ä¡°¡ ÇÊ¿äÇÏ´Ù. »ç¿ëÀÚ ¿µ¿ª(user space)¿¡¼­ Ä¿³Î ¿µ¿ª(kernel space)À¸·Î Àüȯ ½Ã µ¥ÀÌÅÍ Àü¼ÛÀÇ ÃʱâÈ­ ȤÀº Á¾·á°¡ ÇÊ¿äÇÏ´Ù.

- ¸Þ¸ð¸® º¹»ç: (±×¸² 3)Àº ¼Û¼ö½Å½Ã ÀϹÝÀûÀÎ NIC Ä«µåÀÇ µ¥ÀÌÅÍ º¹»ç °úÁ¤À» ³ªÅ¸³½´Ù. ¼Û½Å ½Ã NICÀº ¸ÕÀú ¾ÖÇø®ÄÉÀÌ¼Ç »ç¿ëÀÚ ¿µ¿ª¿¡¼­ºÎÅÍ OS Ä¿³Î ¿µ¿ªÀ¸·Î µ¥ÀÌÅÍ º¹»ç°¡ ÇÊ¿äÇÏ´Ù. ÀÌÈÄ NIC µå¶óÀ̹ö´Â Ä¿³Î¿¡¼­ NIC ÆÐŶ ¹öÆÛ·Î º¹»ç¸¦ ¼öÇàÇÑ´Ù. Áï µÎ ¹øÀÇ º¹»ç°¡ ÀÌ·ç¾îÁø´Ù. ¹Ý¸é ÆÐŶÀ» ¼ö½ÅÇÒ °æ¿ì, ¸ÕÀú NICÀº ¼ö½ÅÇÑ ÆÐŶÀ» ¸ÞÀÎ ¸Þ¸ð¸®¿¡ À§Ä¡ÇÑ NIC ¹öÆÛ¿¡ ÀúÀåÇÑ ÈÄ À̸¦ TCP ¹öÆÛ¿¡ º¹»çÇÏ°í ÀÌÈÄ ÃÖÁ¾ÀûÀ¸·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¿µ¿ª¿¡ º¹»çÇÑ´Ù. ÃÑ ¼¼ ¹øÀÇ º¹»ç°¡ ÀÌ·ç¾îÁö´Â °ÍÀÌ´Ù. ¸¸¾à TOE¸¦ »ç¿ëÇÑ´Ù¸é NIC ¹öÆÛ°¡ ÇÊ¿ä¾øÀÌ µÎ ¹øÀÇ º¹»ç¸¸À¸·Î 󸮰¡ °¡´ÉÇØÁø´Ù. ¶ÇÇÑ TOE ¸¦ »ç¿ëÇÑ RDMA´Â Á¦·ÎÄ«ÇÇ(Zero Copy) ¾Ë°í¸®Áò¿¡ ÀÇÇØ ÇÑ ¹ø¿¡ ¾ÖÇø®ÄÉÀÌ¼Ç ¹öÆÛ¿¡ º¹»ç°¡ °¡´ÉÇØÁø´Ù.






- ÇÁ·ÎÅäÄÝ Ã³¸®: °¢°¢ÀÇ ÀÔÃâ·Â ÆÐŶÀº TCP/IP ¸ðµç ½ºÅÃÀ» °ÅÄ¡¸é¼­ ¾Õ¼­ TCP/IP ÇÁ·ÎÅäÄÝ ±â´É¿¡¼­ ¾ð±ÞÇÑ TCP/IP ÆÐŶ 󸮰¡ ÀÌ·ç¾îÁø´Ù. ÀÌ´Â ¾ÖÇø®ÄÉÀÌ¼Ç Ã³¸®¿¡ »ç¿ëµÉ CPU È°¿ëµµ¸¦ Å©°Ô ÀúÇϽÃŲ´Ù.

III. TOE ±¸Á¶¿Í Ư¡

±â°¡ºñÆ® ÀÌ´õ³ÝÀ¸·Î ³×Æ®¿öÅ© ¼Óµµ°¡ »¡¶óÁü¿¡ µû¶ó ÀÌ·¯ÇÑ ÀüÅëÀûÀÎ ÀÌ´õ³Ý NIC Ä«µå¿¡¼­ CPUÀÇ TCP/IP ó¸®ÀÇ ºÎ´ãÀ» ´ú¾î ÁÖ´Â ¹æ¹ýÀÌ Á¡Â÷ ´Ã¾î³ª°í ÀÖ´Ù. ´Ù¼öÀÇ ±â°¡ºñÆ® ÀÌ´õ³Ý ÄÁÆ®·Ñ·¯¿¡´Â È£½ºÆ® ¿ÀÇÁ·Îµå Ư¡À¸·ÎTCP/IP/UDP üũ¼¶À̳ª TCP ºÐÇÒ(segmentation)À» Çϵå¿þ¾î·Î ±¸ÇöÇÏ°í ÀÖ´Ù[5].

üũ¼¶Àº µ¥ÀÌÅÍ ¹«°á¼ºÀ» üũÇϱâ À§ÇØ »ç¿ëµÇ¸ç ¼Û¼ö½ÅÃø¿¡¼­ 16ºñÆ® 1ÀÇ º¸¼ö ÇÕÀ¸·Î °è»êµÇ¾îÁø´Ù. TCP/IP/UDP üũ¼¶ ¿ÀÇÁ·Îµå ±â¼úÀº TCP¿Í IP ·¹À̾¼­ ¼öÇàµÇ´Â üũ¼¶ °è»êÀ» È£½ºÆ® CPU°¡ ´ã´çÇÏÁö ¾Ê°í NIC¿¡¼­ ó¸®ÇÏ´Â ¹æ¹ýÀÌ´Ù. IP üũ¼¶Àº Çì´õ¸¸ ÀÌ·ç¾îÁö¸ç TCP/UDP üũ¼¶ÀÇ °æ¿ì¿¡´Â µ¥ÀÌÅͱîÁö ¸ðµÎ °è»êÇÏ°Ô µÈ´Ù.

TCP ºÐÇÒ ¿ÀÇÁ·Îµå´Â ±âÁ¸ÀÇ OS°¡ Àü¼Û µ¥ÀÌÅ͸¦ MTU »çÀÌÁî·Î ºÐÇÒÇÏ´Â ÀÛ¾÷À» ´ã´çÇÑ´Ù. TCP ºÐÇÒÀÌ ¿ÀÇÁ·ÎµåµÊÀ¸·Î ´ë¿ë·®ÀÇ µ¥ÀÌÅ͸¦ ¼Û½ÅÇÒ ¶§¿¡ OS°¡ TCP ºÐÇÒÀÇ ºÎ´ãÀ» ´ú ¼ö ÀÖ´Ù. ÀÌ´Â ±â°¡ºñÆ® ÀÌ´õ³Ý°ú °°Àº ´ë¿ë·®ÀÇ ¸Þ½ÃÁö¸¦ ¼Û½ÅÇÒ °æ¿ì ¸Å¿ì À¯¿ëÇÏ´Ù. ±×·¯³ª ÀÛÀº ÆÐŶµéÀÌ ¸¹À» °æ¿ì, ¿¬°áÀÌ ÀÚÁÖ ²÷±â´Â »óȲ µî¿¡¼­´Â È¿°ú°¡ ¾ø´Ù. »Ó¸¸ ¾Æ´Ï¶ó ¼ö½ÅÃø¿¡´Â ÀüÇô µµ¿òÀÌ µÇÁö ¾Ê´Â´Ù.

±×·¯³ª ÀÌ µÎ °¡Áö ¿ÀÇÁ·Îµå¸¸À¸·Î ³ôÀº ¼º´ÉÀ» ±â´ëÇϱâ´Â Èûµé´Ù. µû¶ó¼­ ±âÁ¸ÀÇ OS°¡ ¼öÇàÇÏ´Â TCP/IP ÇÁ·ÎÅäÄÝ Ã³¸®ÀÇ ¸¹Àº ºÎºÐÀ» ¿ÀÇÁ·ÎµåÇÑ TOE Á¦Ç°µéÀÌ °³¹ßµÇ°í ÀÖ´Ù. TOE¸¦ ±¸ÇöÇϱâ À§Çؼ­´Â TCP/IP¸¦ ó¸®ÇÏ´Â NIC Ä«µå¿Í ÀÌ Ä«µå¿¡ ƯȭµÈ TCP/IP ¼ÒÇÁÆ®¿þ¾î ±¸ÇöÀÌ ÇÊ¿äÇÏ´Ù. (±×¸² 4)´Â ¿ÏÀüÇÑ TOE ±â¹ÝÀÇ TCP/IP Åë½Å ½ºÅÃÀ» ³ªÅ¸³»°í ÀÖ´Ù. (±×¸² 2)ÀÇ ½ºÅðú ´Þ¸® Ä¿³Î ¿µ¿ª¿¡¼­ ´ã´çÇÏ´ø TCP/IP 󸮰¡ ¾øÀ¸¸ç »ç¿ëÀÚ ¿µ¿ª¿¡¼­ Ä¿³Î ¿µ¿ªÀ» °ÅÄ¡Áö ¾Ê°í TOE·Î Á÷Á¢ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.






TOE ±¸ÇöÀº ¿ÀÇÁ·Îµå Á¤µµ¿¡ µû¶ó Å©°Ô µÎ °¡Áö ÇüÅ·Π³ª´¶´Ù. TCP/IPÀÇ ÀϺΠ±â´ÉÀ» Çϵå¿þ¾î·Î ±¸ÇöÇÏ´Â ºÎºÐÀû ¿ÀÇÁ·Îµù(Partial offloading)°ú ¸ðµç ±â´ÉÀ» ±¸ÇöÇÏ´Â Àüü ¿ÀÇÁ·Îµù(Full offloading) ¹æ¹ýÀÌ ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ºÎºÐÀû ¿ÀÇÁ·ÎµùÀ» µ¥ÀÌÅÍ Æнº ¿ÀÇÁ·Îµù(Data path offloading)À̶ó ºÎ¸£¸ç ÀÌ´Â TCP/IP µ¥ÀÌÅÍ ¼Û¼ö½Å¿¡ °ü·ÃµÈ ±â´É¸¸À» Çϵå¿þ¾î·Î ±¸ÇöÇÑ´Ù. ¹Ý¸é Àüü ¿ÀÇÁ·ÎµùÀº µ¥ÀÌÅÍ ¼Û¼ö½Å ±â´É»Ó ¾Æ´Ï¶ó TCP/IP ÆÐŶÀ» ó¸®Çϱâ À§ÇÑ TCP ¿¬°á ¼³Á¤, ŸÀӾƿô, ¿À·ù ó¸®, È¥Àâ Á¦¾î, ½½¶óÀ̵ù À©µµ Á¦¾î, ACK ó¸® µî°ú °°Àº ´Ù¾çÇÑ Á¦¾î ±â´Éµé±îÁö ¸ðµç TCP/IP ±â´ÉÀ» Çϵå¿þ¾î·Î ±¸ÇöÇÑ´Ù.

TOE NIC±¸Çö ¹æ¹ý¿¡´Â Å©°Ô ÇÁ·Î¼¼½º ±â¹Ý ±¸Çö ¹æ¹ý°ú Ĩ(ASIC) ±â¹Ý ±¸Çö ¹æ¹ýÀÌ ÀÖ´Ù. ÇÁ·Î¼¼½º ±â¹Ý ±¸Çö ¹æ¹ýÀº ½ÃÁß¿¡ Ãâ½ÃµÈ ³×Æ®¿öÅ© ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ¿© ºü¸£°í À¯¿¬¼º(flexibility) ÀÖ´Â ¼³°è°¡ °¡´ÉÇϳª Ĩ ±â¹Ý ±¸Çö¿¡ ºñÇØ ³ôÀº °¡°Ý°ú ³·Àº ¼º´ÉÀÇ ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. µû¶ó¼­ ´ëºÎºÐÀÇ TOE ¾÷ü¿¡¼­´Â TCP/IP ¿ÀÇÁ·ÎµùÀ» À§ÇÑ Àü¿ë ĨÀ» °³¹ßÇÏ¿© Ĩ ±â¹ÝÀÇ TOE¸¦ ±¸ÇöÇÏ°í ÀÖ´Ù.

IV. TOE Á¦Ç° µ¿Çâ

ÇöÀç ½ÃÀå¿¡ Ãâ½ÃµÈ TOE Á¦Ç°µéÀº ´ëºÎºÐ iSCSI ³ª RDMA ÇÁ·ÎÅäÄÝ°ú °áÇÕµÈ ÇüÅÂÀÌ¸ç °¢ ¾÷ü¸¶´Ù TCP/IP ¿ÀÇÁ·Îµù ¼öÁØ ¹× ±â´É»ó¿¡ Â÷À̸¦ º¸ÀÌ°í ÀÖ´Ù. Ãâ½ÃµÈ Á¦Ç°Àº ´ëºÎºÐ ±â°¡ºñÆ® ÀÌ´õ³Ý Á¦Ç°À̸ç 2004³âºÎÅÍ 10±â°¡ºñÆ® TOE Á¦Ç°µµ Ãâ½ÃµÇ°í ÀÖ´Ù. ¸ÕÀú ´ëÇ¥ÀûÀÎ TOE ¾÷üÀÇ Á¦Ç° ±¸Á¶¿Í Ư¡À» »ìÆ캻 ÈÄ, ÃÖ±Ù Ãâ½ÃµÈ 10 ±â°¡ºñÆ® TOE Á¦Ç°¿¡ ´ëÇؼ­ »ìÆ캸ÀÚ.

1. ±â°¡ºñÆ® TOE Á¦Ç°

°¡. Alacritech

AlacritechÀº SLIC(session-layer interface control)À̶õ µ¥ÀÌÅÍ Æнº ¿ÀÇÁ·Îµù ±â¼úÀ» ±â¹ÝÀ¸·Î ÇÑ TOE Á¦Ç°À» Ãâ½ÃÇÏ°í ÀÖ´Ù. IPP(Internet Protocol Processor)¶õ TOE ³»Àå ÇÁ·Î¼¼½º¸¦ ÅëÇÏ¿©¼­ TCP/IP ¼Û¼ö½Å µ¥ÀÌÅ͸¦ ó¸®Çϸç, ¿¡·¯³ª Á¦¾î µîÀº ±âÁ¸ ¼ÒÇÁÆ®¿þ¾î°¡ ´ã´çÇϵµ·Ï ±¸¼ºÇÏ¿´´Ù. (±×¸² 5)´Â Alacritech ÀÇ TOE Á¦Ç°ÀÎ IPP 1000x1ÀÇ ºí·°µµ¸¦ ³ªÅ¸³½´Ù. 10/100/1,000Mbit/s MACÀÌ ³»ÀåµÇ¾î ÀÖÀ¸¸ç È£½ºÆ® ¹ö½º¿Í PCI ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ¸Þ¸ð¸® ÀÎÅÍÆäÀ̽º·Î ¼Û¼ö½Å ÇÁ·¹ÀÓ ¹öÆÛ, ÄÁÅؽºÆ®(Context) ÀúÀåÀ» À§ÇØ ¿ÜºÎ 32MB SDRAMÀ» »ç¿ëÇϸç, ÄÁÇDZԷ¹À̼ÇÀ» À§ÇÑ ROM°ú FLASH°¡ »ç¿ëµÈ´Ù.

º» Á¦Ç°Àº Linux´Â ¹°·Ð Window OS¸¦ Áö¿øÇϸç, 802.3ad Link Aggregation°ú iSCSI¸¦ Áö¿øÇÏ°í ÀÖ´Ù. IPP 1000x1´Â µ¥ÀÌÅÍ Æнº ¿ÀÇÁ·Îµù°ú ÇÔ²² Ãß°¡ÀûÀ¸·Î ACK, Slow-start ±â´ÉÀ» Çϵå¿þ¾î·Î ±¸ÇöÇÏ¿´´Ù.





³ª. Adaptec

AdaptecÀº Àüü ¿ÀÇÁ·ÎµùÀ» ¿ÂĨȭÇÏ¿© NAC-7711À̶õ TOE Á¦Ç°À» Ãâ½ÃÇÏ°í ÀÖ´Ù. (±×¸² 6)Àº Adaptec »ç¿¡¼­ ¹ßÃéÇÑ TCP/IP ¿ÀÇÁ·Îµù ÁØÀ§¸¦ ³ªÅ¸³»°í ÀÖ´Ù. No Offload ÁØÀ§´ÂTCP checksum°ú TCP reassembly ±â´É¸¸À» °¡Áø ±âÁ¸ÀÇ ±â°¡ºñÆ® NIC Ä«µå°¡ ÇØ´çµÈ´Ù. Incomplete Offload ÁØÀ§´Â µ¥ÀÌÅÍ Æнº¸¸ ¿ÀÇÁ·ÎµùÇÑ Alacritech Á¦Ç°ÀÌ ÇØ´çµÈ´Ù. Complete Offload ÁØÀ§´Â AdaptecÀÌ ±¸ÇöÇÑ ¸ðµç TCP/IPÀÇ ±â´ÉÀÌ ÇØ´çµÈ´Ù.






NAC-7711Àº ±â°¡ºñÆ® MAC ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϸç, µ¥ÀÌÅÍ Ã³¸®¸¦ À§ÇÑ 64MB SDRAM ¿Â º¸µå ¸Þ¸ð¸®¸¦ »ç¿ëÇÑ´Ù. ¶ÇÇÑ ¿ÀÇÁ·Îµù °¡´ÉÇÑ 1,024°³ÀÇ TCP ¿¬°áÀ» Áö¿øÇÏ°í ÀÖ´Ù. ÇöÀç ¸®´ª½º OS¸¸ Áö¿øÇÏ°í ÀÖ´Ù[8].

´Ù. Broadcom

2004³â 5¿ù¿¡ ¹ßÇ¥µÈBroadcom »çÀÇ BCM5706 Á¦Ç°Àº TCP ¿ÀÇÁ·Îµå ±â´É°ú iSCSI, RDMA ÄÁÆ®·Ñ·¯ ±â´ÉÀ» ÇϳªÀÇ Ä¨À¸·Î ±¸ÇöÇÑ Á¦Ç°ÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ±â°¡ºñÆ® ÀÌ´õ³Ý PHY±îÁö ³»ÀåµÇ¾î ÀÖ´Ù. È£½ºÆ® ÀÎÅÍÆäÀ̽º·Î PCI, PCI-X¸¦ Áö¿øÇÑ´Ù. (±×¸² 7)Àº BCM5706ÀÇ ±¸Á¶¸¦ ³ªÅ¸³»°í ÀÖ´Ù.

¡°Fast Path¡± TCP ¿ÀÇÁ·ÎµùÀ¸·Î ºÒ¸®´Â TOE´Â Microsoft »çÀÇ TOE Chimney ±¸Á¶¸¦ Àû¿ëÇÒ ¼ö ÀÖÀ¸¸ç RDMA ±â´ÉÀ» È°¿ëÇÏ¿© ±âÁ¸ TOE¿¡¼­ »ç¿ëÇÏ´ø SDRAM ÀÎÅÍÆäÀ̽º ¾øÀÌ È£½ºÆ® ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù. Ãß°¡ÀûÀ¸·Î Adaptive ÀÎÅÍ·´Æ®°ú 9KB Jumbo FramesÀ» Á¦°øÇÏ°í ÀÖ´Ù.






¶ó. Qlogic

QlogicÀº iSCSI TOE PCI-X È£½ºÆ® ¹ö½º ¾î´ðÅÍ·Î QLA4010 Á¦Ç°ÀÌ ÀÖ´Ù. º» Á¦Ç°¿¡ »ç¿ëµÈ iSCSI ÄÁÆ®·Ñ·¯ ISP4010 Á¦Ç°Àº µÎ°³ÀÇ RISC ÇÁ·Î¼¼¼­¸¦ žÀçÇÏ¿© iSCSI ¿Í TCP/IP ÇÁ·ÎÅäÄÝÀÇ Àüü ¿ÀÇÁ·ÎµùÀ» ±¸ÇöÇÏ¿´´Ù. 1Gpbs ÀüÀÌÁß ¹æ½ÄÀ» Áö¿øÇϸç PCI-X È£½ºÆ® ÀÎÅÍÆäÀ̽º¸¦ °¡Áø´Ù. ISP4010 Á¦Ç°Àº (±×¸² 8)°ú °°ÀÌ Remote backup, ½ºÅä·ÎÁö ÅëÇÕ µî¿¡ »ç¿ëµÈ´Ù.






¸¶. ±âŸ

ÀÌ ¹Û¿¡ TOE Á¦Ç°À» »ý»êÇÏ´Â ¸¹Àº ¾÷üµéÀÌ ÀÖÀ¸¸ç, ÃÖ±Ù NVIDA¿¡ ÇÕº´µÈ iReady »çÀÇ ethernetMAX ĨÀº ±â°¡ºñÆ® PHY, TCP/IP Àüü ¿ÀÇÁ·Îµù, iSCSI »Ó ¾Æ´Ï¶ó IPSec ±â´É±îÁö ÇϳªÀÇ Ä¨À¸·Î ±¸ÇöÇÏ°íÀÚ Çß´Ù. Siverback »çÀÇ TOE´Â TCP/IP Àüü ¿ÀÇÁ·ÎµùÀº ¹°·ÐÀÌ°í 64K TCP ¿¬°áÀ» Áö¿øÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÇ¾ú´Ù. <Ç¥ 1>Àº ±â°¡ºñÆ® TOE Á¦Ç°ÀÇ ºñ±³Ç¥ÀÌ´Ù.






2. 10 ±â°¡ºñÆ® TOE Á¦Ç°

°¡. Chelsio

Chelsio »çÀÇ T110 TOE Á¦Ç°Àº 10±â°¡ºñÆ® ÀÌ´õ³ÝÀ» Áö¿øÇÏ¸ç ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î iSCSI, RDMA¸¦ Áö¿øÇϸç, È£½ºÆ® ÀÎÅÍÆäÀ̽º·Î PCI-X¸¦ Áö¿øÇÏ°í ÀÖ´Ù. T110ÀÇ °¡Àå Å« Ư¡Àº TCP/IP Àüü ¿ÀÇÁ·ÎµùÀ» Áö¿øÇÒ »Ó ¾Æ´Ï¶ó iSCSI¿Í RDMA Çϵå¿þ¾î °¡¼Ó ±â´É±îÁö °¡´ÉÇÏ´Ù. TCP 󸮷®Àº PCI-X ´ë¿ªÆøÀÎ 7.9Gbps ¸¦ Áö¿øÇϸç iSCSI 󸮷®Àº 860MBps ÀÌ´Ù. ƯÈ÷ ÇÁ·ÎÅäÄÝ Ã³¸®¸¦ À§ÇØ VLIW(Very-Long Instruction Word) ±¸Á¶¸¦ äÅÃÇÏ¿© ¼öõ °³ÀÇ Ä¿³Ø¼ÇÀ» scalable ÇÏ°Ô Áö¿øÇÒ ¼ö ÀÖÀ¸¸ç 64K TCP Ä¿³Ø¼ÇÀ» Áö¿øÇÏ°í ÀÖ´Ù. 10 ±â°¡ºñÆ® ÀÌ´õ³ÝÀÇ »ç¿ëÀÚ ¾ÖÇø®ÄÉÀÌ¼Ç °£ÀÇ ÃÖÀú Áö¿¬Àº 9.7us·Î T110 Á¦Ç°Àº LAN°ú SAN ±×¸®°í HPC ¿¬°áÀÇ Áß¿ä ¼ö´ÜÀÌ µÉ °ÍÀÌ´Ù. (±×¸² 9)Àº T110 Á¦Ç°ÀÇ PCB »çÁøÀ» <Ç¥ 2>´Â Á¦Ç° ±Ô°ÝÀ» °¢°¢ ³ªÅ¸³»°í ÀÖ´Ù.









³ª. Intel
ÀÎÅÚ¿¡¼­´Â Áö³­ 2003³â °¡À» IDF¿¡¼­ ³×Æ®¿öÅ© ¿ÀÇÁ·Îµù ŸÀÓ¶óÀÎÀ» (±×¸² 10)¿Í °°ÀÌ ¹ßÇ¥ÇÏ¿´´Ù. Checksum, Interrupt Coalescing, µ¥ÀÌÅÍ ¿ÀÇÁ·ÎµùÀ» °ÅÃÄ 2004³â¿¡´Â ´ëºÎºÐ Àüü ¿ÀÇÁ·ÎµùÀ¸·Î TOE Á¦Ç°ÀÌ ¹ßÀüÇÏ°í ÀÖ´Ù. ¶ÇÇÑ 2005³â¿¡´Â TOE À§¿¡ RDMA ÇÁ·ÎÅäÄÝÀÌ ±¸ÇöµÉ °ÍÀ¸·Î ¿¹ÃøÇÏ°í ÀÖ´Ù.






¾÷°è óÀ½À¸·Î Ãâ½ÃµÈ 10±â°¡ºñÆ® ÀÌ´õ³Ý Intel PRO/10GbE LR Server Adapter Á¦Ç°Àº ¾ö¹ÐÈ÷TOE ·Î ºÐ·ùÇϱâ´Â Èûµé¸ç 10 ±â°¡ºñÆ® ÀÌ´õ³Ý ¼­¹ö ¾î´ðÅÍ·Î ºÐ·ù ÇÒ ¼ö ÀÖ´Ù. º» Á¦Ç°ÀÇ ¿ÀÇÁ·Îµù ±â¼úÀº ±â°¡ºñÆ® ÀÌ´õ³Ý ÄÁÆ®·Ñ·¯¿¡ ³»ÀåµÈTCP/IPºÐÇÒ°ú ¼Û¼ö½Å´ÜÀÇ TCP Checksum °ú µ¿ÀÏÇÏ´Ù. 16KBÀÇ Jumbo FramesÀ» Áö¿øÇÏ°í ÀÖ´Ù.

º» Á¦Ç°Àº (±×¸² 11)°ú °°ÀÌ ±¤ ¸ðµâ°ú Intel 82597EX ÄÚ¾îĨÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ±¤ ¸ðµâÀº IEEE 802.3ae 10GBASE LR ¿¡ ȣȯµÇ¸ç Intel 82597EX ÄÚ¾îĨ¿¡´Â 4ä³Î XAUI ÀÎÅÍÆäÀ̽º¿Í 10GMAC, PCI-X È£½ºÆ® ÀÎÅÍÆäÀ̽º°¡ ³»ÀåµÇ¾î ÀÖ´Ù.






V. °á ·Ð

³×Æ®¿öÅ© ¼Óµµ°¡ »¡¶óÁü¿¡ µû¶ó CPU°¡ ó¸®ÇØ¾ß ÇÒ TCP/IPÀÇ ¾çÀÌ ±âÇϱ޼öÀûÀ¸·Î Áõ°¡ÇÏ°í ÀÖ´Ù. ÀÌ¿Í ÇÔ²² iSCSI¿Í RDMA ÇÁ·ÎÅäÄÝÀÇ ÃâÇöÀº TOEÀÇ Çʿ伺À» ´õ¿í´õ Å©°Ô ¸¸µé°í ÀÖ´Ù. ÇöÀç ½ÃÀå¿¡ Ãâ½ÃµÈ TOE Á¦Ç°µéÀº ´ëºÎºÐ ±â°¡ºñÆ® ÀÌ´õ³Ý Á¦Ç°À̳ª Á¡Â÷ 10 ±â°¡ºñÆ® ÀÌ´õ³Ý TOE Á¦Ç°µµ Ãâ½ÃµÇ°í ÀÖ´Ù. TOE Á¦Ç°µéÀº ±âº»ÀûÀΠüũ¼¶, TCP ºÐÇÒ¿¡¼­ µ¥ÀÌÅÍ Æнº ¿ÀÇÁ·Îµù, Àüü ¿ÀÇÁ·Îµù µî °¢°¢ ¿ÀÇÁ·Îµù ÁØÀ§¸¦ ´Þ¸®ÇÏ°í ÀÖ´Ù. ¾ÕÀ¸·Î 10±â°¡ºñÆ® ÀÌ´õ³ÝÀ¸·Î ³×Æ®¿öÅ©°¡ ÁøÈ­ÇÔ¿¡ µû¶ó TOE´Â ±â¼úÀûÀ¸·Î TCP/IP ¿ÀÇÁ·ÎµùÀ» À§ÇÑ Àü¿ë ÇÁ·Î¼¼¼­°¡ žÀçµÇ¸ç, ±× Àû¿ë ºÐ¾ß´Â ÇöÀçÀÇ ½ºÅä·ÎÁö¿¡¼­ ´õ¿í´õ ±× ±â´ÉÀ» ³ÐÇô °¡¸ç ³×Æ®¿öÅ© º¸¾È°ú À¯ºñÄõÅͽº ȯ°æ¿¡ ÀûÇÕÇÑ TOE Á¦Ç°À¸·Î ¹ßÀüÇÒ °ÍÀ¸·Î ¿¹»óµÈ´Ù.

À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.