<!doctype linuxdoc system>
<!--  Multicast over TCP/IP HOWTO -->
<article>
<title> Multicast over TCP/IP HOWTO
<author>Juan-Mariano de Goyeneche<url url="mailto:jmseyas@dit.upm.es" 
name="jmseyas@dit.upm.es">
<date>v1.0, 20 March 1998
<trans>±èÇöÇÊ<url url="mailto:khp@kldp.org" name="khp@kldp.org">
<tdate>v0.9, 10 July 2000

<abstract>
ÀÌ ¹®¼­¿¡¼­´Â TCP/IP ³×Æ®¿÷¿¡¼­ ¸ÖÆ¼Ä³½ºÆ®¿Í °ü·ÃµÈ Àü¹ÝÀûÀÎ »çÇ×À» ¼³¸íÇÑ´Ù. µû¶ó¼­ 
»ó´çºÎºÐ ¸®´ª½º¿¡ ±¹ÇÑµÇ´Â ³»¿ëÀÌ ¾Æ´Ï´Ù. (¾ÆÁ÷..GNU/¸®´ª½º¸¦ ¾²Áö ¾ÊÀ» °æ¿ì¿¡¸¸) 
¸ÖÆ¼Ä³½ºÆ®´Â Áö±Ý±îÁöµµ È°¹ßÈ÷ ¿¬±¸ÁßÀÎ  ºÐ¾ßÀÌ´Ù. µû¶ó¼­ ÀÌ ±ÛÀÇ ÀÛ¼º ½ÃÁ¡¿¡¼­´Â 
Ç¥ÁØ¾È ´ëºÎºÐÀÌ ÃÊ¾È(draft)ÀÏ »ÓÀÌ´Ù. ÀÌÁ¡ ¿°µÎ¿¡ µÎ°í ÀÐÀ¸½Ã±â ¹Ù¶õ´Ù.
</abstract>

<!-- Table of contents -->
<toc>

<sect>¼Ò°³<p>
³ª´Â ÀÌ ¹®¼­¿¡¼­ TCP/IP ³×Æ®¿÷¿¡¼­ ¸ÖÆ¼Ä³½ºÆ®¿¡ ´ëÇØ °¡´ÉÇÑ ÇÑ ±¤¹üÀ§ÇÏ¸ç ÃÖ½ÅÀÇ 
±×¸®°í Á¤È®ÇÑ Á¤º¸¸¦ ´Ù·çµµ·Ï ³ë·ÂÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀÇ ¾î¶°ÇÑ ÀÇ°ßÀÌ¶óµµ È¯¿µÇÑ´Ù. ³»¿ë 
Áß¿¡ ¿À·ù°¡ ÀÖ°Å³ª Á¶¾ð ¹× Ãß°¡ÇÒ ³»¿ëÀÌ ÀÖ´Ù¸é ÀúÀÚ¿¡°Ô º¸³»ÁÖ±â ¹Ù¶õ´Ù.

<sect1>¸ÖÆ¼Ä³½ºÆ®(Multicast)¶õ ¹«¾ùÀÎ°¡?<p>
¸ÖÆ¼Ä³½ºÆ®´Â °ð ÇÊ¿ä¼ºÀÌ´Ù. ¸¸ÀÏ ÀÎÅÍ³Ý»óÀÇ ¿©·¯-ÀüÃ¼°¡ ¾Æ´Ñ-È£½ºÆ®¿¡°Ô·Î Àü¼ÛÇØ¾ßÇÒ 
»ó´çÇÑ·®ÀÇ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù¸é ¹Ù·Î ¸ÖÆ¼Ä³½ºÆ®°¡ ±× ÇØ´äÀÌ´Ù. ¿¹¸¦ µé¾î, ÀÎÅÍ³Ý¿¡ 
ºÐ»êµÇ¾î È£½ºÆ®µé·Î ¿ø°Ý È¸ÀÇ¸¦ ÇÏ±â À§ÇØ ½Ç½Ã°£À¸·Î ¿µ»ó°ú À½¼ºÀ» Àü¼ÛÇÏ´Â °æ¿ì, 
¸ÖÆ¼Ä³½ºÆ®¸¦ »ç¿ë ÇÒ ¼ö ÀÖ´Ù.

¸ÖÆ¼Ä³½ºÆ®´Â »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ¼ö½Å±â¸¦ Á¶Á¤(°ü½É ÀÖ´Â  Ã¤³ÎÀÇ ÁÖÆÄ¼ö ¼±ÅÃ)ÇÔÀ¸·Î¼­ 
Á¤º¸¸¦ ¹Þ´Â´Ù´Â Á¡¿¡¼­ TV³ª ¶óµð¿À¿Í À¯»çÇÏ´Ù. ´Ù¸¥ °ÍÀº Á¦ÃÄµÎ°í ÀÚ½ÅÀÌ¿øÇÏ´Â °Í¸¸ 
¼ö½ÅÇÑ´Ù.

<sect1>À¯´ÏÄ³½ºÆ®(Unicast)ÀÇ ¹®Á¦Á¡<p>
ºê·ÎµåÄ³½ºÆ®(Broadcast)µµ ¾Æ´Ï¸ç ¸ÖÆ¼Ä³½ºÆ®µµ ¾Æ´Ñ °ÍÀ» À¯´ÏÄ³½ºÆ®¶ó ÇÑ´Ù. º°·Î
ÁÁÁö ¾ÊÀº Á¤ÀÇ °°Àºµ¥...ÆÐÅ¶À» Àü¼ÛÇÒ ¶§ ¼Û½Å ÇÁ·Î¼¼½º ÇÏ³ª, ¼ö½Å ÇÁ·Î¼¼½º ÇÏ³ª°¡ 
Á¸ÀçÇÒ ¶§ ÀÌ°ÍÀ» À¯´ÏÄ³½ºÆ®¶ó ÇÑ´Ù. TCP´Â  ±× ÀÚÃ¼°¡  º»ÁúÀûÀ¸·Î À¯´ÏÄ³½ºÆ®¸¦ 
ÁöÇâÇÑ´Ù.  ÇÑÆí, UDP´Â ÈÎ¾À ´Ù¾çÇÑ
Çü½ÄÀ» °¡Áú ¼ö ÀÖÁö¸¸ ¼ö½ÅÇÏ´Â ÇÁ·Î¼¼½º°¡  ´Ü ÇÏ³ªÀÏ ¶§ ÀÌ ¿ª½Ã  À¯´ÏÄ³½ºÆ®¶ó ÇÒ ¼ö 
ÀÖ´Ù.

ÀÎÅÍ³Ý ÃÊ±â¿¡´Â À¯´ÏÄ³½ºÆ®·Î ÃæºÐÇß¾ú´Ù. 1993³â  4.4 BSD¿¡¼­ ÃÖÃÊ·Î ¸ÖÆ¼Ä³½ºÆ®¸¦ 
±¸ÇöÇØ¼­ ¼¼»ó¿¡ ³»³õ¾ÒÀ» ¶§±îÁö´Â ¾Æ¹«µµ ±×°ÍÀ» ÇÊ¿ä·Î ÇÏ´Â °Í  °°Áö ¾Ê¾Ò´Ù. ±×·±µ¥ 
¿Ö ¸ÖÆ¼Ä³½ºÆ®¶ó ºÒ¸®´Â °ÍÀÌ ³ª¿À°Ô µÈ °ÍÀÏ±î?

¸»ÇÒ ÇÊ¿äµµ ¾øÀÌ ÀÎÅÍ³ÝÀº ÃÊ±âÀÇ ¸ð½ÀÀ¸·ÎºÎÅÍ ¾öÃ»³­ º¯È­¸¦ °Þ¾ú´Ù. Æ¯È÷ À¥ÀÇ µîÀåÀº 
»óÈ²À» ¿ÏÀüÈ÷ µÚ¹Ù²Ù¾î ³õ¾Ò´Ù. »ç¶÷µéÀº mail, FTP ±× ÀÌ»óÀÇ °ÍÀ», ÀÚ½ÅµéÀÇ 
È¨ÆäÀÌÁö¿¡¼­ ±×¸²À» º¸±â ¿øÇß°í ´õ ³ª¾Æ°¡ À½¼º°ú µ¿¿µ»óÀ» ¿øÇß´Ù.

¿À´Ã³¯ÀÇ ±â¼úÀÌ¶ó¸é, ´ç½ÅÀÇ À¥À» º¸°íÀÚÇÏ´Â ¸ðµç  ÀÌ¿¡°Ô À¯´ÏÄ³½ºÆ® ¿¬°áÀ» ÇÑ´Ù°í 
ÇØµµ ÃæºÐÈ÷ ±× "ºñ¿ë(cost)"¸¦ °¨´çÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ À½ÇâÀÌ³ª  ¿µ»óÀ» º¸³»°íÀÚ ÇÑ´Ù¸é 
¾öÃ»³­ ´ë¿ªÆøÀÌ ÇÊ¿äÇÏ´Ù. ¸ÖÆ¼Ä³½ºÆ®¸¦ °í·Á¿¡ ³Ö´Â´Ù¸é µÎ °¡Áö ¼±ÅÃÀÌ ÀÖ´Ù. ¾Æ´Ï, 
¸ÖÆ¼Ä³½ºÆ®°¡ µîÀåÇÏ±â Àü±îÁö´Â µÎ °¡Áö ¼±ÅÃÀÌ Á¸ÀçÇß¾ú´Ù. À¯´ÏÄ³½ºÆ®¸¦  ÅëÇØ °¢ 
¼ö½ÅÀÚº°·Î µ¶¸³µÈ ¿¬°áÀ» ÇÒ °ÍÀÎ°¡, ¾Æ´Ï¸é ºê·ÎµåÄ³½ºÆ®¸¦ ÇÒ °ÍÀÎ°¡.

ÀüÀÚ´Â ºÎÀûÀýÇÏ´Ù. À½¼º/¿µ»óÀÇ ´ÜÀÏ ¿¬°áÁ¶Â÷µµ »ó´çÇÑ ´ë¿ªÆøÀ» Â÷ÁöÇÒ ÅÍÀÎµ¥ ÀÌ·¯ÇÑ 
¿¬°áÀÌ ¼ö¹é ¶Ç´Â ¼öÃµÀÌ¶ó°í »ó»óÇØ º¸¶ó. ¾Æ¸¶µµ ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿Í ³×Æ®¿÷Àº ºØ±«ÇÏ°í ¸» 
°ÍÀÌ´Ù.

ºê·ÎµåÄ³½ºÆ®°¡ ÇØ´äÀÎ µí ÇÏÁö¸¸ ±×°Íµµ È®½ÅÇÒ ¼ö°¡ ¾ø´Ù. ¿ì¸® LAN¿¡ ÀÖ´Â ¸ðµç 
È£½ºÆ®°¡ È¸ÀÇ¿¡ Âü¼®ÇÑ´Ù¸é ºê·ÎµåÄ³½ºÆ®°¡ È®½ÇÈ÷ ÇØ´äÀÌ µÉ ¼ö ÀÖ´Ù. ¸ðµç ÆÐÅ¶Àº 
ÇÑ¹ø¾¿¸¸ Àü¼ÛµÇ¸ç ´Ù¸¥ ¸ðµç È£½ºÆ®´Â ºê·ÎµåÄ³½ºÆ® ÁÖ¼Ò¸¦ ÅëÇØ ÆÐÅ¶À» ¼ö½ÅÇÒ °ÍÀÌ´Ù. 
ÇÏÁö¸¸, ¹®Á¦´Â ÀÏºÎ È£½ºÆ®¸¸ÀÌ ÀÌ ÆÐÅ¶¿¡ ¼ö½ÅÇÏ·ÁÇÒ  °æ¿ì´Ù. °Ô´Ù°¡, Á¤¸»·Î È¸ÀÇ¿¡ 
Âü¿©ÇÏ°íÀÚÇÏ´Â ´Ü ÇÏ³ªÀÇ È£½ºÆ®°¡ ¸î °³ÀÇ ¶ó¿ìÅÍ¸¦ °ÅÃÄ¾ß µµ´Þ ÇÒ  ¼ö ÀÖ´Â ¿ÜºÎ 
LAN¿¡ Á¸ÀçÇÑ´Ù¸é ¾î·Á¿î ¹®Á¦°¡ µÈ´Ù. ¾Ë´Ù½ÃÇÇ, ºê·ÎµåÄ³½ºÆ®´Â ´ÜÀÏ LAN ³»ºÎ¿¡¼­¸¸ 
°¡´ÉÇÑµ¥, ºê·ÎµåÄ³½ºÆ® ÆÐÅ¶À» ¶ó¿ìÆÃÇÏ¿© ¿ÜºÎ LAN¿¡ Àü´ÞÇÒ ¹æ¹ýÀÌ ¾ø´Ù.

ÃÖ¼±ÀÇ ÇØ°áÃ¥Àº ÆÐÅ¶À» -¸¶Ä¡ TV³ª ¶óµð¿À Ã¤³ÎÃ³·³-ÀÏºÎ Æ¯Á¤ÇÑ ÁÖ¼Ò·Î¸¸ º¸³»´Â 
°ÍÀÌ´Ù. ±×·¯¸é È¸ÀÇ¿¡ Âü¿©ÇÏ°íÀÚÇÏ´Â ¸ðµç È£½ºÆ®´Â ÀÌ ÆÐÅ¶ÀÌ ³×Æ®¿÷À» Åë°úÇÒ ¶§, 
¸ñÀûÁö ÁÖ¼Ò(destination address)¸¦ °¨ÁöÇÏ¿© ÀÐ¾îµéÀÎ ÈÄ ÀÚ½ÅÀÇ IP°èÃþ(layer)À¸·Î º¸³»¾î 
º¹È£È­(demultiplexing)ÇÑ´Ù. Áï, ¸ÖÆ¼Ä³½ºÆ®´Â ÆÐÅ¶ÀÌ ´Ü ÇÑ¹ø¸¸ ¼Û½ÅµÇ¾î¼­ ³×Æ®¿÷ÀÇ ¸ðµç 
È£½ºÆ®µéÀÌ ±×°ÍÀ»  ÀÐ´Â´Ù´Â Á¡¿¡¼­´Â ºê·ÎµåÄ³½ºÆ®¿Í °°Áö¸¸, ÀÌ ÆÐÅ¶µéÀÌ ¿ÀÁ÷ 
Ä¿³Î(kernel)¿¡¼­ ¿øÇÒ °æ¿ì¿¡¸¸ ÀÐ°í  Ã³¸®ÇÑ´Ù´Â Á¡¿¡¼­ ºê·ÎµåÄ³½ºÆ®¿Í ´Ù¸£´Ù.

ÀÌ Æ¯º°ÇÑ ÆÐÅ¶µéÀº IP ÆÐÅ¶ÀÌ±â ¶§¹®¿¡ Ä¿³Î ¼öÁØ(kernel level)¿¡¼­ ¶ó¿ìÆÃÇÑ´Ù. Ä¿³Î¿¡ 
¶ó¿ìÆÃ °æ·Î¸¦ ¾Ë·ÁÁÖ´Â ¶ó¿ìÆÃ ¾Ë°í¸®Áò¿¡ Â÷ÀÌÁ¡ÀÌ ÀÖÀ» °ÍÀÌ´Ù.

<sect>¸ÖÆ¼Ä³½ºÆ®<p>
<sect1>Multicast ÁÖ¼Ò<p>
IP ÁÖ¼Ò´Â 32ºñÆ® Áß¿¡¼­ »óÀ§ ºñÆ®µé¿¡ ÀÇÇØ¼­ Å¬·¡½º(class)·Î ºÐ·ùµÈ´Ù.

<verb>
     Bit -->  0                           31            Address Range:
             +-+----------------------------+
             |0|       Class A Address      |       0.0.0.0 - 127.255.255.255
             +-+----------------------------+
             +-+-+--------------------------+
             |1 0|     Class B Address      |     128.0.0.0 - 191.255.255.255
             +-+-+--------------------------+
             +-+-+-+------------------------+
             |1 1 0|   Class C Address      |     192.0.0.0 - 223.255.255.255
             +-+-+-+------------------------+
             +-+-+-+-+----------------------+
             |1 1 1 0|  MULTICAST Address   |     224.0.0.0 - 239.255.255.255
             +-+-+-+-+----------------------+
             +-+-+-+-+-+--------------------+
             |1 1 1 1 0|     Reserved       |     240.0.0.0 - 247.255.255.255
             +-+-+-+-+-+--------------------+
</verb>

¿ì¸®°¡ ÁÖÀÇ ±í°Ô ÇÒ °ÍÀº &quot;D Å¬·¡½º ÁÖ¼Ò&quot;´Ù. ¸ñÀûÁö ÁÖ¼Ò°¡ 
&quot;1110&quot;À¸·Î ½ÃÀÛÇÏ´Â IP  µ¥ÀÌÅÍ±×·¥Àº ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ÀÌ´Ù.

³ª¸ÓÁö 28ºñÆ®´Â ¼Û½ÅÇÒ µ¥ÀÌÅÍ±×·¥ÀÇ ¸ÖÆ¼Ä³½ºÆ®<em>±×·ì</em>À»  ±¸ºÐÇÏ´Âµ¥ ¾²ÀÎ´Ù.
¹æ¼ÛÀ» µè±â À§ÇØ ¶óµð¿À¸¦ ¾î¶² ÁÖÆÄ¼ö¿¡ ¸ÂÃß´Â °Í°ú À¯»çÇÏ°Ô Æ¯Á¤ÇÑ ¸ÖÆ¼Ä³½ºÆ® 
±×·ìÀ¸·Î Àü¼ÛµÇ¾î¿À´Â ÆÐÅ¶À» ¼ö½ÅÇÏ±â À§ÇØ¼­ ¿ì¸®ÀÇ Ä¿³ÎÀ» Æ¯Á¤ÇÑ ±×·ì¿¡ ¸ÂÃß¾î¾ß 
ÇÑ´Ù. ÀÌ °úÁ¤ÀÌ ÀÌ·ç¾î Á³À» ¶§, <em>È£½ºÆ®°¡, ÁöÁ¤ÇÑ ÀÎÅÍÆäÀÌ½º¸¦ ÅëÇØ ±×·ì¿¡ 
Âü¿©Çß´Ù</em>°í ÇÒ ¼ö ÀÖ´Ù. ÈÄ¿¡ ´õ ÀÚ¼¼È÷ ´Ù·ê °ÍÀÌ´Ù.

<em>¿¹¾àµÈ ¸ÖÆ¼Ä³½ºÆ® ±×·ì(well known multicast groups)</em>ÀÌ¶ó ºÒ¸®´Â Æ¯º°ÇÑ 
±×·ìµéÀÌ ÀÖ´Âµ¥ ÀÌ·¯ÇÑ ±×·ìÀº ´ÙÀ½°ú °°Àº Æ¯¼öÇÑ ¿ëµµ·Î ¾²ÀÌ±â ¶§¹®¿¡ °³ÀÎÀûÀÎ 
ÇÁ·Î±×·¥ Á¦ÀÛ ½Ã¿¡ »ç¿ëÇÒ ¼ö ¾ø´Ù.

<itemize>
<item>224.0.0.1 Àº ÀüÃ¼ È£½ºÆ® ±×·ìÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ® ÀÎÅÍÆäÀÌ½º´Â ½Ãµ¿½Ã ÀÌ ±×·ì¿¡ 
Âü¿©ÇØ¾ßÇÏ¹Ç·Î ÀÌ ÁÖ¼Ò·Î pingÀ» º¸³»¸é ¸ðµç ¸ÖÆ¼Ä³½ºÆ® È£½ºÆ®µéÀÌ ÀÀ´äÇÒ °ÍÀÌ´Ù.
<item>224.0.0.2 Àº ÀüÃ¼ ¶ó¿ìÅÍ ±×·ìÀÌ´Ù.
<item>224.0.0.4 Àº ÀüÃ¼ DVMRP ¶ó¿ìÅÍ ±×·ìÀÌ´Ù.
<item>224.0.0.5 Àº ÀüÃ¼ OSPF ¶ó¿ìÅÍ ±×·ìÀÌ´Ù.
<item>224.0.013 Àº ÀüÃ¼ PIM ¶ó¿ìÅÍ ±×·ìÀÌ´Ù.
<item>...
</itemize>

ÀÌ Æ¯¼ö ±×·ìµéÀº ¸ðµÎ RFC¹®¼­ &quot;Assigned Numbers&quot;¿¡ Á¤±âÀûÀ¸·Î µî·ÏµÈ´Ù.

¾î¶°ÇÑ °æ¿ìµçÁö, 224.0.0.0¿¡¼­ 224.0.0.225ÀÇ ¹üÀ§´Â Áö¿ªÀûÀÎ ¸ñÀû(°ü¸®³ª  À¯Áö/º¸¼ö)À» 
À§ÇØ ¿¹¾àµÇ¾î ÀÖÀ¸¸ç ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍµéµµ ÀÌ ¹üÀ§ ³»ÀÇ ÁÖ¼Ò·Î ¸ñÀûÁö·Î ÇÏ´Â 
µ¥ÀÌÅÍ±×·¥Àº Æ÷¿öµùÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ¿Í À¯»çÇÏ°Ô 239.0.0.0¿¡¼­ 239.255.255.255ÀÇ 
¹üÀ§´Â&quot;administrative scoping&quot;À» À§ÇÏ¿© ¿¹¾àµÇ¾î ÀÖ´Ù. (&quot;administrative 
scoping&quot;)¿¡ °üÇØ¼­´Â 2.3.1À» ÂüÁ¶ÇÒ °Í).

<sect1>ÀûÀÀ ´Ü°è(Levels of Conformance)<p>
È£½ºÆ®°¡ ¸¸Á·ÇØ¾ßÇÏ´Â ¸ÖÆ¼Ä³½ºÆ® ±Ô°Ý¿¡´Â ¼¼ °¡Áö ÀûÀÀ ´Ü°è°¡ ÀÖ´Ù.

<bf>Level 0 :</bf> <em>the no support for IP Multicasting</em>
IPv4¿¡¼­´Â ¸ÖÆ¼Ä³½ºÆ®°¡ ÀÇ¹«ÀûÀ¸·Î ±¸ÇöÇØ¾ßÇÏ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ÀÎÅÍ³Ý¿¡ ÀÖ´Â 
¸¹Àº È£½ºÆ®¿Í ¶ó¿ìÅÍµéÀº Level 0 »óÅÂ¿¡ ÀÖ´Ù. (ÇÏÁö¸¸ IPv6¿¡¼­´Â ÀÇ¹«ÀûÀ¸·Î 
¸ÖÆ¼Ä³½ºÆ®¸¦ Áö¿øÇÏµµ·Ï ÇÏ°í ÀÖ´Ù.) ´õ ÀÌ»ó ¼³¸íÀº ÇÊ¿ä ¾ø´Ù. ÀÌ »óÅÂ¿¡ ÀÖ´Â È£½ºÆ®´Â 
¸ÖÆ¼Ä³½ºÆ® ÆÐÅ¶À» º¸³»°Å³ª ¹ÞÀ» ¼ö ¾øÀ¸¸ç, ¸ÖÆ¼Ä³½ºÆ® ÆÐÅ¶À» ¿ÏÀüÈ÷ ¹«½ÃÇÑ´Ù.

<bf>Level 1 :</bf>  <em>the support for  sending but not receiving multicast 
IP datagrams</em>
µû¶ó¼­, µ¥ÀÌÅÍ±×·¥À» º¸³»±â À§ÇØ¼­ ¸ÖÆ¼Ä³½ºÆ® ±×·ì¿¡ °¡ÀÔÇÒ ÇÊ¿ä´Â ¾ø´Ù. Level 0 
È£½ºÆ®¸¦ Level 1 È£È¯ »óÅÂ·Î ¸¸µé±â À§ÇØ¼­´Â IP ¸ðµâÀ»  ¾à°£ º¯°æÇØ¾ß ÇÑ´Ù. ÀÚ¼¼ÇÑ 
³»¿ëÀº 2.3¿¡¼­ ´Ù·é´Ù.

<bf>Level 2 : </bf>  <em>the full support for IP multicasting</em>
Level 2 È£½ºÆ®´Â ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ ¼Û½Å°ú ¼ö½ÅÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù. ¶Ç, ¸ÖÆ¼Ä³½ºÆ® 
±×·ì¿¡ Âü°¡ÇÏ°í Å»ÅðÇÒ ¼ö ÀÖ¾î¾ß ÇÏ¸ç »õ·Î °»½ÅµÈ ¸ÖÆ¼Ä³½ºÆ® Á¤º¸¸¦ ¶ó¿ìÅÍ¿¡ ¾Ë ¸± ¼ö 
ÀÖ¾î¾ß ÇÑ´Ù. µû¶ó¼­, È£½ºÆ®ÀÇ TCP/IP ½ºÅÃ¿¡ ÀÎÅÍ³Ý ±×·ì°ü¸® ÇÁ·ÎÅäÄÝ Internet Group 
Management Protocol  (IGMP) ÀÌ ±¸ÇöµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

<sect1>¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ Àü¼Û<p>
ÀÌ»óÀ¸·Î ¹Ì·ç¾îº¸¾Æ, ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀº UDP·Î Æ®·£½ºÆ÷Æ® °èÃþ¿¡¼­ Ã³¸®ÇÏ´Â °ÍÀÌ 
ºÐ¸íÇÏ´Ù. TCP´Â Á¡´ëÁ¡(point-to-point)¿¬°áÀ» Á¦°øÇÏ´Â °ÍÀÌ¹Ç·Î ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈ¿¡ 
ÀûÇÕÇÏÁö ¾Ê´Ù. (»õ·Î¿î  ¸ÖÆ¼Ä³½ºÆ® ÁöÇâ Æ®·£½ºÆ÷Æ® ÇÁ·ÎÅäÄÝ ¼³°è¿Í ±¸Çö¿¡ ´ëÇÑ ¿¬±¸°¡ 
È°¹ßÈ÷ ÁøÇàÁßÀÌ´Ù. 9Àå &quot;¸ÖÆ¼Ä³½ºÆ® Æ®·£½ºÆ÷Æ® ÇÁ·ÎÅäÄÝ&quot;À» ÂüÁ¶ÇÒ °Í)

ÀÌ·Ð»ó, ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ´ÜÁö UDP ¼ÒÄÏÀ» ¿­°í class D ¸ÖÆ¼Ä³½ºÆ® ÁÖ¼Ò¸¦ ¸ñÀûÁö·Î 
ÇÏ´Â µ¥ÀÌÅÍ±×·¥À» ºÎ¾î³Ö±â¸¸ ÇÏ¸é µÈ´Ù. ±×·¸Áö¸¸, ¼Û½Å ÇÁ·Î¼¼½º°¡  ÅëÁ¦±ÇÀ» °¡Áö±â 
À§ÇØ¼­ ÇØÁÖ¾î¾ß ÇÒ ÀÛ¾÷ÀÌ ÀÖ´Ù.

<sect2>TTL.<p>
IP Çì´õÀÇ TTL(Time To Live) ÇÊµå´Â ¸ÖÆ¼Ä³½ºÆ®¿¡¼­ Áß¿äÇÑ ÀÇ¹Ì¸¦ °¡Áø´Ù. ÀÌ ÇÊµå´Â 
¶ó¿ìÆÃ ¿¡·¯·Î ÀÎÇÏ¿© µ¥ÀÌÅÍ±×·¥ÀÌ ³×Æ®¿÷À» ¿µ¿øÈ÷ ¶°µ¹¾Æ´Ù´Ï´Â °ÍÀ» ¹æÁöÇÑ´Ù. 
¶ó¿ìÅÍ´Â ³×Æ®¿÷°£À» ÀÌµ¿ÇÏ´Â µ¥ÀÌÅÍ±×·¥ÀÇ TTL ÇÊµå¸¦ °¨¼Ò½ÃÅ°¸ç TTL ÇÊµå°¡ 0ÀÌ 
µÇ´Â µ¥ÀÌÅÍ±×·¥Àº  ¹ö¸°´Ù(drop). IPv4 ¸ÖÆ¼Ä³½ºÆ®¿¡¼­ TTLÀº ¹®ÅÎ°ª(threshold)ÀÇ ÀÇ¹Ì¸¦ 
Áö´Ñ´Ù.  ´ÙÀ½ ¿¹¸¦ º¸¸é ±×  ¿ëµµ°¡ ºÐ¸íÇØÁø´Ù.

¿ì¸® ºÎ¼­ÀÇ ¸ðµç È£½ºÆ®°¡ ¼ÓÇÏ´Â ¾ÆÁÖ ±æ°í ´ë¿ªÆøÀ» ¸¹ÀÌ Â÷ÁöÇÏ´Â ¿µ»óÈ¸ÀÇ¸¦ ÇÑ´Ù°í 
°¡Á¤ÇÏÀÚ. ¿ì¸®ÀÇ LAN¿¡´Â ¾öÃ»³­ ¿ë·®ÀÇ Æ®·¡ÇÈÀÌ ¹ß»ýÇÒ °ÍÀÌ¸ç, ¾Æ¸¶ ¿ì¸® ºÎ¼­´Â 
´Ù¾çÇÑ LANÀÌ Á¸ÀçÇÏ´Â Å« ³×Æ®¿÷ÀÏ °ÍÀÌ´Ù. ÀÌ °æ¿ì ¿ì¸®´Â LANÀ» ÅëÇÏ¿© È¸ÀÇ¸¦ ¿­±â 
¿øÇÏÁö¸¸, ¿ì¸®ÀÇ ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈ ¶§¹®¿¡ ÀÎÅÍ³Ý ÀüÃ¼°¡ ºØ±«µÇ´Â °ÍÀ» ¿øÄ¡ ¾ÊÀ» 
°ÍÀÌ´Ù. µû¶ó¼­, ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀÌ ¶ó¿ìÅÍ°£À» ¾ó¸¶³ª <em>¸Ö¸®</em>ÀÌµ¿ÇÒ ¼ö ÀÖµµ·Ï 
ÇÒ °ÍÀÎÁö Á¦ÇÑÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ°ÍÀÌ TTLÀÇ ¿ëµµÀÌ´Ù. 

¶ó¿ìÅÍ´Â °¢°¢ÀÇ ÀÎÅÍÆäÀÌ½º¿¡ ´ëÇØ TTL ¹®ÅÎÄ¡(threshold)°¡ ÇÒ´çÇÏ°í ÀÖÀ¸¸ç ÀÌ 
¹®ÅÎÄ¡º¸´Ù Å« TTL°ªÀ» °¡Áø µ¥ÀÌÅÍ±×·¥¸¸ÀÌ Æ÷¿öµùµÈ´Ù. µ¥ÀÌÅÍ±×·¥ÀÌ, ¾î¶² ¹®ÅÎÄ¡°¡ 
ÇÒ´çµÇ¾îÀÖ´Â ¶ó¿ìÅÍ¸¦ Áö³¯ ¶§, TTL°ªÀÌ ¹®ÅÎÄ¡¸¸Å­ °¨¼ÒµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó´Â Á¡¿¡ 
ÁÖÀÇÇÏ¶ó. ¿ÀÁ÷ ºñ±³¸¸ÀÌ ÀÌ·ç¾îÁø´Ù (¾Õ¿¡¼­ ¾ð±ÞÇßµíÀÌ TTLÀº µ¥ÀÌÅÍ±×·¥ÀÌ ¶ó¿ìÅÍ¸¦ 
Áö³¯ ¶§¸¶´Ù 1¾¿¸¸ °¨¼ÒµÈ´Ù).

´ÙÀ½ ¸®½ºÆ®¿¡ TTL¹®ÅÎÄ¡¿Í ±×¿¡ ÇØ´çµÇ´Â ¹üÀ§°¡ Ç¥½ÃµÇ¾î ÀÖ´Ù.
<verb>
  ----------------------------------------------------------------------
  TTL     Scope
  ----------------------------------------------------------------------
     0    È£½ºÆ® ³»ºÎ·Î Á¦ÇÑ. ÀÎÅÍÆäÀÌ½º·Î Ãâ·ÂµÇÁö ¾ÊÀ½.
     1    µ¿ÀÏ ¼­ºê³ÝÀ¸·Î Á¦ÇÑ. ¶ó¿ìÅÍ´Â Æ÷¿öµùÇÏÁö ¾ÊÀ½.
   &lt;32    µ¿ÀÏ »çÀÌÆ®(site), ´ÜÃ¼³ª ºÎ¼­·Î Á¦ÇÑ.
   &lt;64    µ¿ÀÏ Áö¿ª(region)À¸·Î Á¦ÇÑ.
  &lt;128    µ¿ÀÏ ´ë·úÀ¸·Î Á¦ÇÑ.
  &lt;255    ¹«Á¦ÇÑ. Àü¼¼°è.
  ----------------------------------------------------------------------
</verb>

&quot;»çÀÌÆ®(site)&quot; ³ª &quot;Áö¿ª(region)&quot; ¿¡ ´ëÇÑ Á¤È®ÇÑ Á¤ÀÇ´Â ¾ø´Ù. 
±×°ÍÀº ÀÌ Á¦ÇÑÀ» °¡ÇÒ °ü¸®ÀÚ¿¡°Ô ´Þ·ÁÀÖ´Ù. 

ÀÌ TTL±â¹ýÀº ¸ðµç ¿ä±¸¿¡ ºÎÀÀÇÒ ¸¸Å­ À¯¿¬¼ºÀ» Á¦°øÇÏÁö ¸øÇÏ¸ç, Æ¯È÷ °ãÃÄÁö´Â 
Áö¿ª(overlapping regions)À» ´Ù·ç°Å³ª Áö¸®Àû(geographic)ÀÌ°Å³ª À§»óÀû(topologic)ÀûÀÎ 
±×¸®°í ´ë¿ªÆø Á¦ÇÑÀûÀÎ ¿¬°á¿¡´Â ÀûÇÕÇÏÁö ¾Ê´Ù. ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÏ±â À§ÇÏ¿© 1994³â   
administratively scoped IPv4 multicast regions ÀÌ Á¦Á¤µÇ¾ú´Ù (D. Meyer's   
&quot;Administratively Scoped IP Multicast&quot; Internet draft ÂüÁ¶). ÀÌ°ÍÀº TTLÀ» 
ÀÌ¿ëÇÏÁö ¾Ê°í IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ¿© ¹üÀ§Á¦ÇÑ(scoping)À» °¡ÇÑ´Ù. 239.0.0.0 ¿¡¼­ 
239.255.255.255±îÁöÀÇ IPÁÖ¼Ò°¡ ÀÌ °ü¸®¿ë ¹üÀ§Á¦ÇÑÀ» À§ÇØ ¿¹¾àµÇ¾î ÀÖ´Ù.

<sect2>·çÇÁ¹é(Loopback)<p>
Àü¼Û È£½ºÆ®°¡ Level 2 ÀûÀÀ ´Ü°è¿¡ ÀÖÀ¸¸ç µ¥ÀÌÅÍ±×·¥À» Àü¼ÛÇÏ´Â ±×·ìÀÇ ¸â¹ö·Î Âü¿©ÇÏ°í 
ÀÖÀ» ¶§, ÆÐÅ¶ º¹»çº»ÀÌ ·çÇÁ¹é µÈ´Ù. ÀÌ°ÍÀº ³×Æ®¿÷ ÀÎÅÍÆäÀÌ½º Ä«µå°¡ ÇØ´ç ³×Æ®¿÷ 
ÀÎÅÍÆäÀÌ½º°¡  ÀÚ½ÅÀÌ ³×Æ®¿÷À¸·Î Àü¼ÛÇÑ ÆÐÅ¶À» ³×Æ®¿÷À¸·ÎºÎÅÍ ´Ù½Ã ÀÐ¾î¿Â´Ù´Â °ÍÀÌ 
¾Æ´Ï¶ó, IP °èÃþÀÌ µ¥ÀÌÅÍ±×·¥À» ÀÎ½ÄÇÏ¿© Àü¼Û Àü¿¡ ÆÐÅ¶À» IP ÀÔ·Â Å¥¿¡ º¹»çÇØ ³Ö´Â 
°ÍÀ» ÀÇ¹ÌÇÏ¸ç ÀÌ ±â´ÉÀº ±âº» °ª(default)À¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù.

ÀÌ·¯ÇÑ ±â´ÉÀº ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ°í ±×·¸Áö ¾ÊÀ» °æ¿ìµµ ÀÖ´Ù. µû¶ó¼­ Àü¼Û ÇÁ·Î¼¼½º´Â ÀÌ 
±â´ÉÀ» ¿øÇÑ´Ù¸é ÄÑ°Å³ª ²ø ¼ö ÀÖ´Ù.

<sect2>ÀÎÅÍÆäÀÌ½º ¼±ÅÃ<p>

´Ù¼öÀÇ ³×Æ®¿÷ ÀÎÅÍÆäÀÌ½º°¡ ºÎÂøµÇ¾î ÀÖ´Â È£½ºÆ®¿¡¼­´Â ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ÇÏ¿©±Ý ¾î¶² 
ÀÎÅÍÆäÀÌ½º·Î Àü¼ÛÀ» Ãâ·ÂÇØ¾ßÇÏ´ÂÁö °áÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ¾î¾ßÇÑ´Ù. ¸¸ÀÏ ÁöÁ¤ °ªÀÌ 
¾ø´Ù¸é Ä¿³ÎÀÌ °ü¸®ÀÚÀÇ ¼³Á¤¿¡ ±âÃÊÇÏ¿© ±âº» °ªÀ» Á¤ÇÑ´Ù.

<sect1>¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ ¼ö½Å<p>

<sect2>¸ÖÆ¼Ä³½ºÆ® ±×·ì Âü¿©(Join)<p>
ºê·ÎµåÄ³½ºÆ®´Â ¸ÖÆ¼Ä³½ºÆ®º¸´Ù ºñ±³Àû ±¸ÇöÇÏ±â ½±´Ù. ºê·ÎµåÄ³½ºÆ®´Â Ä¿³Î¿¡ ÆÐÅ¶ Ã³¸® 
±ÔÄ¢À» Ãß°¡·Î ¾Ë·ÁÁÙ ÇÊ¿ä°¡ ¾ø´Ù. Ä¿³ÎÀº ºê·ÎµåÄ³½ºÆ® ÆÐÅ¶À» ÀÐ°í ÀûÀýÇÑ 
ÀÀ¿ëÇÁ·Î±×·¥À¸·Î Àü´ÞÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù.

±×·¯³ª ¸ÖÆ¼Ä³½ºÆ®¿¡¼­´Â ¿ì¸®°¡ ¾î¶² ±×·ì¿¡ °ü½ÉÀÌ ÀÖ´ÂÁö Ä¿³Î¿¡ ¾Ë·ÁÁÙ ÇÊ¿ä°¡ ÀÖ´Ù. 
Áï, Ä¿³Î¿¡ ¾î¶² ±×·ì¿¡ &quot;Âü¿©(join)@quot;ÇÏµµ·Ï ¿äÃ»ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÇÏµå¿þ¾î¿¡ 
µû¶ó, ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» ÇÏµå¿þ¾î°¡ Á÷Á¢ ÇÊÅÍ¸µÇÏ°Å³ª ¾Æ´Ï¸é IP °èÃþ¿¡¼­ ÇÏ´Â 
°æ¿ìµµ ÀÖ´Ù. ¾î¶²  °æ¿ì¿¡´Â  ¾çÂÊ  ¸ðµÎ¿¡¼­  ÀÌ·ç¾îÁö±âµµ  ÇÑ´Ù.  ¿ÀÁ÷  &quot;Âü¿© 
(join)&quot;¸¦ ÅëÇØ¼­ µî·ÏµÈ ±×·ì¸¸ÀÌ ¹Þ¾Æµé¿©Áø´Ù.

º»ÁúÀûÀ¸·Î ¿ì¸®°¡ ±×·ì¿¡ Âü¿©ÇÑ´Ù´Â °ÍÀº Ä¿³Î¿¡°Ô ´ÙÀ½°ú °°Àº ÀÌ¾ß±â¸¦ ÇÏ´Â °ÍÀ» 
ÀÇ¹ÌÇÑ´Ù. <em>&quot; ±âº» ¼³Á¤À¸·Î ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» Ã³¸®ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» 
¾Ë°í ÀÖÁö¸¸, ³»°¡ ÀÌ ¸ÖÆ¼Ä³½ºÆ® ±×·ì¿¡ Âü¿©ÇÏ°íÀÚ ÇÑ´Ù´Â Á¡À» ±â¾ïÇØÁÖ±â ¹Ù¶õ´Ù. 
±×·¯´Ï ÀÌ ³×Æ®¿÷ ÀÎÅÍÆäÀÌ½º¿¡¼­ º¸ÀÌ´Â ÆÐÅ¶°¡¿îµ¥, ÀÌ ¸ÖÆ¼Ä³½ºÆ® ±×·ì ÁÖ¼Ò¸¦ ¸ñÀûÁö 
ÇÊµå¿¡ Æ÷ÇÔÇÏ°í ÀÖ´Â ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» ÀÐ°í (³ª»Ó¸¸ ¾Æ´Ï¶ó ±×°Í¿¡ °ü½ÉÀ» °¡Áö°í 
ÀÖ´Â ¸ðµç) ÇÁ·Î¼¼½º¿¡°Ô Àü´ÞÇØ ÁÖ±â ¹Ù¶õ´Ù. &quot;</em>.

<bf>°í·ÁÇÒ °Í :</bf> ¿ì¼± ±×·ì¿¡ ´ÜÁö Âü¿©¸¸ ÇÏ´Â °ÍÀÌ ¸ðµç°Ô  ¾Æ´Ï¶ó´Â Á¡À» 
ÁÖ¸ñÇÏ¶ó. ¿ì¸®´Â Æ¯Á¤ÇÑ ³×Æ®¿÷ ÀÎÅÍÆäÀÌ½º »ó¿¡¼­ ±×·ì¿¡ Âü¿©ÇÑ´Ù. ¹°·Ð, ÇÏ³ª ÀÌ»óÀÇ 
ÀÎÅÍÆäÀÌ½º·Î °°Àº ±×·ì¿¡ Âü¿©ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ¸¸ÀÏ ÀÎÅÍÆäÀÌ½º¸¦ È®½ÇÈ÷ ÁöÁ¤ÇÏÁö 
¾Ê´Â´Ù¸é µ¥ÀÌÅÍ±×·¥ÀÌ Àü¼ÛµÉ ¶§ ¶ó¿ìÆÃ Å×ÀÌºí¿¡ ÀÇ°ÅÇÏ¿© Ä¿³ÎÀÌ ÁöÁ¤ÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ, 
ÇÏ³ª ÀÌ»óÀÇ  ÇÁ·Î¼¼½º°¡ µ¿ÀÏÇÑ ÀÎÅÍÆäÀÌ½º·Î µ¿ÀÏÇÑ ¸ÖÆ¼Ä³½ºÆ® ±×·ì¿¡ Âü¿©ÇÏ´Â °Íµµ 
°¡´ÉÇÏ´Ù. ¸ðµç ÇÁ·Î¼¼½ºµéÀº ÇØ´ç ÀÎÅÍÆäÀÌ½º·Î º¸³»Áö´Â µ¥ÀÌÅÍ±×·¥À» ¼ö½ÅÇÑ´Ù. 

Àü¿¡ ¾ð±ÞÇßµíÀÌ, ¸ðµç ¸ÖÆ¼Ä³½ºÆ® È£½ºÆ®µéÀº ½Ãµ¿½Ã¿¡ ÀüÃ¼ È£½ºÆ® ±×·ì¿¡ Âü¿©ÇÏ±â 
¶§¹®¿¡ 224.0.0.1 ·Î pingÀ» º¸³»¸é  ³×Æ®¿÷ ³»¿¡¼­ ¸ðµç È£½ºÆ®µéÀÌ ÀÀ´äÀ» º¸³¾ °ÍÀÌ´Ù.

³¡À¸·Î, ÇÁ·Î¼¼½º°¡ ¸ÖÆ¼Ä³½ºÆ®  µ¥ÀÌÅÍ±×·¥À» ¹Þ±â À§ÇØ¼­´Â  , Ä¿³Î¿¡°Ô,  ±×·ì¿¡ Âü¿©ÇÑ 
ÈÄ µ¥ÀÌÅÍ±×·¥À» ¼Û½ÅÇÏ´Â Æ÷Æ®¸¦   ¹­µµ·Ï(bind)  ¿äÃ»ÇØ¾ß   ÇÑ´Ù.   UDP  °èÃþÀº   
ÆÐÅ¶À» ÇØ¼®(demultiplex)ÇÏ±â À§ÇØ ¸ñÀûÁö ÁÖ¼Ò¿Í Æ÷Æ®¹øÈ£¸¦ °°ÀÌ »ç¿ëÇÏ¸ç ¾î¶² ¼ÒÄÏÀ¸·Î 
È¤Àº  ¾î¶² ¼ÒÄÏµé·Î ÆÐÅ¶À» º¸³¾Áö  °áÁ¤ÇÑ´Ù.

<sect2>¸ÖÆ¼Ä³½ºÆ® Group Å»Åð<p>
ÇÁ·Î¼¼½º°¡ ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀ» ¶°³¯ ¶§´Â Ä¿³Î¿¡ ±× ±×·ìÀ» ¶°³ª°íÀÚ ÇÑ´Ù°í ¾Ë¸°´Ù. 
ÀÌ°ÍÀÌ Ä¿³ÎÀÌ ±× ±×·ìÀ¸·Î ¿À´Â ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» ´õ ÀÌ»ó ¹ÞÁö ¾ÊÀ½À» ÀÇ¹ÌÇÏ´Â 
°ÍÀÌ ¾Æ´Ï¶ó´Â Á¡À» ÀÌÇØÇØ¾ß ÇÑ´Ù. ¸¸ÀÏ &quot;multicast join&quot; ½ÅÃ»À» Á¦ÃâÇÑ 
ÇÁ·Î¼¼½º°¡ ´õ ÀÖ°í ±× ±×·ì¿¡ ¿©ÀüÈ÷ °ü½ÉÀ» °¡Áö°í ÀÖ´Â »óÅÂ¶ó¸é Ä¿³ÎÀº ¿©ÀüÈ÷ ÆÐÅ¶À» 
¼ö½ÅÇÒ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ  °æ¿ì È£½ºÆ®´Â ¸ðµç ÇÁ·Î¼¼½º°¡ ±× ±×·ìÀ» ¶°³ª±â·Î °áÁ¤ÇÒ ¶§±îÁö 
¿©ÀüÈ÷ ±×·ì¿¡ ³²¾Æ ÀÖ°ÔµÈ´Ù.

<bf>Ãß°¡ :</bf> ±×·ìÀ» ¶°³­´Ù ÇÒÁö¶óµµ,  ¼ö½ÅÇÏ´ø Æ÷Æ®¿¡ ¿©ÀüÈ÷ ¿¬°á(bind)µÈ Ã¤·Î 
³²¾ÆÀÖÀ» °ÍÀÌ¸ç ¾ÆÁ÷ ¸ÖÆ¼Ä³½ºÆ® ±×·ì¿¡ Âü¿©ÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½º°¡ ´õ ÀÖÀ¸¸é  ¸ÖÆ¼Ä³½ºÆ® 
trafficÀ» °è¼Ó ¼ö½ÅÇÏ°Ô µÉ °ÍÀÌ´Ù.

¸ÖÆ¼Ä³½ºÆ® group ¿¡ Âü¿©ÇÔ¿¡ ÀÖ¾î¼­, ¿äÁ¡Àº IP ¿Í data link °èÃþ¿¡ ÇØ´ç ±×·ìÀ¸·Î 
ÇâÇÏ´Â ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À»  ¹Þµµ·Ï ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. (°æ¿ì¿¡ µû¶ó¼­´Â ¸í½ÃÀûÀ¸·Î 
ÇÏµå¿þ¾î¿¡ ÁöÁ¤ÇÏ´Â °æ¿ìµµ ÀÖ´Ù) ÀÌ°ÍÀº ÇÁ·Î¼¼½º ´ÜÀ§(per-process membership)°¡ 
¾Æ´Ï¶ó  È£½ºÆ® ´ÜÀ§(per-host membership)ÀÌ´Ù.

<sect2>IP ¸ÖÆ¼Ä³½ºÆ® ÁÖ¼Ò¿¡¼­ Ethernet/FDDI ÁÖ¼Ò·ÎÀÇ »ç»ó
(mapping)<p>
Ethernet°ú FDDI ¿¡¼­ ÇÁ·¹ÀÓ(frames)Àº 48 ºñÆ®ÀÇ ¸ñÀûÁö ÁÖ¼Ò°ø°£À» °¡Áø´Ù. ¸ÖÆ¼Ä³½ºÆ® 
IP ÁÖ¼Ò¸¦ ethernet/FDDI·Î »ç»óÇÏ±â À§ÇÑ  ¸ÖÆ¼Ä³½ºÆ® ARP °°Àº °ÍÀ» ÇÇÇÏ±â À§ÇØ¼­, 
IANA´Â ¸ÖÆ¼Ä³½ºÆ®¸¦ À§ÇØ ÁÖ¼Ò°ø°£À» ¿¹¾àÇß´Ù. ¸ñÀûÁö°¡, 01-00-5e-00-00-00 ¿¡¼­ 
01-00-5e-ff-ff-ff (16Áø¼ö)»çÀÌÀÇ ¸ðµç ethernet/FDDI ÇÁ·¹ÀÓÀº ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀ» À§ÇÑ 
µ¥ÀÌÅÍ¸¦ °¡Áø´Ù. Á¢µÎ¾î(prefix) 01-00-5e ´Â ÇØ´ç ÇÁ·¹ÀÓÀÌ ¸ÖÆ¼Ä³½ºÆ® ÀÓÀ» ³ªÅ¸³»¸ç, 
¹Ù·Î ´ÙÀ½ ºñÆ®´Â  Ç×»ó 0ÀÌ´Ù. µû¶ó¼­, ³ª¸ÓÁö 23 ºñÆ®¸¸ÀÌ ¸ÖÆ¼Ä³½ºÆ® ÁÖ¼Ò¸¦ À§ÇØ 
»ç¿ëµÈ´Ù. ±×·±µ¥, ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀÇ IP´Â 28ºñÆ® ±æÀÌÀÌ¹Ç·Î 1´ë1 »ç»óÀº ºÒ°¡´ÉÇÏ´Ù. 
¿ÀÁ÷ IP ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀÇ 23°³ ÇÏÀ§ ºñÆ®(Least Significant Bit)¸¸ÀÌ ÇÁ·¹ÀÓ¿¡ À§Ä¡ÇÑ´Ù. 
³²´Â 5°³ÀÇ »óÀ§ ºñÆ®´Â  ¹«½ÃµÇ¸ç32°³ÀÇ(2^5=32) ¼­·Î ´Ù¸¥ ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀÌ µ¿ÀÏÇÑ 
ethernet/FDDI address»ç»óµÈ´Ù. ÀÌ°ÍÀº ethernet °èÃþÀÌ ¿ÏÀüÇÑ ÇÊÅÍ·Î ÀÛ¿ëÇÏÁö  ¸øÇÔÀ» 
ÀÇ¹ÌÇÏ¸ç, IP °èÃþÀÌ data link °èÃþÀ» Åë°úÇØ¿Â µ¥ÀÌÅÍ±×·¥À» ¹ÞÀ» °ÍÀÎÁö ¹ö¸± °ÍÀÎÁö¸¦ 
°áÁ¤ÇØ¾ß  ÇÒ °ÍÀÌ´Ù. IP °èÃþÀÌ ÃÖÈÄÀÇ ¿Ïº®ÇÑ ÇÊÅÍÀÌ´Ù. 

FDDI»óÀÇ   IP   ¸ÖÆ¼Ä³½ºÆÃ¿¡   °üÇÑ    ÀÚ¼¼ÇÑ   ³»¿ëÀº   RFC   1390 
&quot;Transmission of IP and ARP over FDDI Networks&quot; ¿¡ ³ª¿ÍÀÖ´Ù. IP 
Multicast  ÁÖ¼ÒÀÇ ethernetÀ¸·ÎÀÇ   »ç»ó¿¡ °üÇÑ ´õ¿í   ÀÚ¼¼ÇÑ ³»¿ëÀº 
draft-ietf-mboned-intro-multicast-03.txt &quot;Introduction to IP Multicast 
Routing&quot;À» ÂüÁ¶ÇÏ¶ó.

Token-Ring LAN »ó¿¡¼­ÀÇ IP ¸ÖÆ¼Ä³½ºÆ®¿¡ °ü½ÉÀÌ  ÀÖ´Ù¸é RFC 1469¸¦ ÂüÁ¶ÇÏ¶ó.

<sect>Ä¿³Î ¿ä±¸ »çÇ×°ú ¼³Á¤<p>
Linux´Â ´ç¿¬È÷(¼³¸¶ ÀÇ½ÉÀ»?) ¿ÏÀüÇÑ Level 2 ¸ÖÆ¼Ä³½ºÆ®¸¦ Áö¿øÇÑ´Ù. ¸ðµç ¼Û¼ö½Å 
¿ä±¸»çÇ×À» ¸¸Á·ÇÏ¸ç ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥¿¡ °üÇØ¼­ ¶ó¿ìÅÍ(mrouter)Ã³·³ ÀÛµ¿ÇÑ´Ù.

¸ÖÆ¼Ä³½ºÆ® ¼Û¼ö½ÅÀÌ ÇÏ°í½Í´Ù¸é Ä¿³Î ¼³ Á¤½Ã &quot;IP: multicasting&quot;¿¡ yes¶ó°í 
ÇØÁÖ±â¸¸ ÇÏ¸é µÈ´Ù. Linux box¸¦ ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ  (mrouter)·Î »ç¿ëÇÏ°í ½Í´Ù¸é 
&quot;IP: forwarding/gatewaying&quot;, &quot;IP: multicast routing&quot; ±×¸®°í 
&quot;IP: tunneling&quot;À» ¼±ÅÃÇØÁÖ¸é µÈ´Ù. ÈÄÀÚ´Â »õ·Î¿î ¹öÀüÀÇ  mrouted°¡ 
¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» À¯´ÏÄ³½ºÆ® µ¥ÀÌÅÍ±×·¥¿¡ Ä¸½¶È­(encapsulation)ÇØ¼­ º¸³»±â À§ÇØ 
IP tunneling ¿¡ ÀÇÁ¸ÇÏ±â ¶§¹®ÀÌ´Ù. ÀÌ°ÍÀº À¯´ÏÄ³½ºÆ® Àü¿ë  ³×Æ®¿÷¿¡ ºÐ»êµÇ¾îÀÖ´Â 
¸ÖÆ¼Ä³½ºÆ® È£½ºÆ®µé°£ÀÇ ¿¬°á(tunneling)À» À§ÇØ¼­ ÇÊ¿äÇÏ´Ù.  (mrouted´Â ¶ó¿ìÆÃ 
¾Ë°í¸®Áò-¶ó¿ìÆÃ Á¤Ã¥-À» ±¸ÇöÇÏ°í Ä¿³Î¿¡ ¸ÖÆ¼Ä³½ºÆ®  µ¥ÀÌÅÍ±×·¥À» ¾î¶»°Ô ¶ó¿ìÆÃÇÒ 
°ÍÀÎÁö ¾Ë·ÁÁÖ´Â daemonÀÌ´Ù).

¾î¶°ÇÑ ¹öÀüÀÇ Ä¿³ÎµéÀº ¸ÖÆ¼Ä³½ºÆ®  ¶ó¿ìÆÃÀ» &quot;EXPERIMENTAL&quot;·Î ºÐ·ùÇÏ°í 
ÀÖ±â ¶§¹®¿¡, &quot;Code maturity level options&quot;¼½¼Ç¿¡¼­  &quot;Prompt for 
development  and/or incomplete code/drivers&quot;¿É¼ÇÀ» °¡´ÉÇÏ°Ô ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¸¸ÀÏ 
mrouted°¡ ½ÇÇàÁßÀÏ ¶§ ¿ì¸®ÀÇ Linux box°¡ ¼ÓÇØÀÖ´Â µ¿ÀÏ ³×Æ®¿÷¿¡¼­ »ý¼ºµÈ trafficÀº 
Á¤»óÀûÀ¸·Î ´Ù¸¥ ³×Æ®¿÷¿¡ Æ÷¿öµùÇØÁÖ´Âµ¥, ´Ù¸¥ ³×Æ®¿÷ÀÇ trafficÀ»  º¼ ¼ö ¾ø´Ù¸é ICMP 
¿¡·¯¸Þ½ÃÁö¸¦ ¹Þ°íÀÖÁö´Â ¾Ê´ÂÁö È®ÀÎÇØ º¸¶ó. °ÅÀÇ ¸ðµç °æ¿ì°¡ IP tunnelingÀ» È°¼ºÈ­ 
½ÃÄÑ³õÁö ¾ÊÀº °æ¿ì ÀÏ °ÍÀÌ´Ù. ÀÏ´Ü ¾Ë°í³ª¸é Á¤¸» °£´ÜÇÑ °ÍÀÌÁö¸¸, Á¤¸»ÀÌÁö, ¸ð¸£´Â 
°æ¿ì¿¡´Â ½Ã°£ ²Ï³ª °É¸®°í  ÀÌÀ¯µµ ½±»ç¸® ¾Ë±â ¾î·Æ´Ù. ÀÌ·± »óÈ²¿¡¼­´Â ½º´ÏÆÛ(sniffer)°¡ 
Á¤¸» À¯¿ëÇÏ´Ù!

(¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÆÃ¿¡ ´ëÇØ¼­´Â &quot;Routing Policies and Forwarding Techniques&quot; 
¼½¼Ç¿¡¼­, mrouted ¿Í tunnel ¿¡ ´ëÇØ¼­´Â &quot;The MBone&quot; °ú &quot;Multicast 
applications&quot;¿¡¼­ Ãß°¡·Î ¼³¸íÇÑ´Ù).

ÀÏ´Ü Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÑ ÈÄ¿¡´Â ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» À§ÇÑ ±âº» ¶ó¿ìÆÃ°æ·Î¸¦  ¼³Á¤ 
ÇØ¾ßÇÑ´Ù. ¿ì¸®ÀÇ ¸ñÇ¥´Â 224.0.0.0 ³×Æ®¿÷À¸·ÎÀÇ °æ·Î¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù.

´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÀÌ ´Ü°è¿¡¼­ °Þ´Â ¹«Á¦´Â ¸¶½ºÅ© °ªÀ¸·Î ÀÎÇÑ ¾î·Á¿òÀÌ´Ù. ¸¸ÀÏ Terry 
DawsonÀÇ À¯¸íÇÑ NET-3-HOWTO¸¦ ÀÐ¾ú´Ù¸é, ¿Ã¹Ù¸¥ °ªÀ» ¾Ë¾Æ ¸ÂÃß±â ¾î·ÆÁö ¾ÊÀ» 
°ÍÀÌ´Ù. ±× ¹®¼­¿¡¼­ ¼³¸íÇßµíÀÌ, ³Ý¸¶½ºÅ©(subnetmask)´Â ¿ì¸®ÀÇ IP ÁÖ¼ÒÀÇ ³×Æ®¿÷ ºÎºÐÀ»  
¸ðµÎ 1·Î Ã¤¿ì°í È£½ºÆ® ºÎºÐÀ» ¸ðµÎ 0À¸·Î Ã¤¿î 32ºñÆ® ¼ýÀÚÀÌ´Ù. ¼½¼Ç 2.1¿¡¼­ º¸¾ÒµíÀÌ 
Å¬·¡½ºD ¸ÖÆ¼Ä³½ºÆ® ÁÖ¼Ò´Â ³×Æ®¿÷/È£½ºÆ®Çü½ÄÀ¸·Î ±¸ºÐµÇ¾îÀÖÁö ¾Ê´Ù. ´ë½Å 18ºñÆ®ÀÇ ±×·ì 
±¸ºÐÀÚ¿Í  4ºñÆ®ÀÇ Å¬·¡½ºD ±¸ºÐÀÚ·Î ÀÌ·ç¾îÁ®ÀÖ´Ù. ÀÌ 4ºñÆ®°¡ ³×Æ®¿÷ ºÎºÐ¿¡ ´ëÀÀµÇ°í 
28ºñÆ®°¡ È£½ºÆ®  ºÎºÐ¿¡ ´ëÀÀµÈ´Ù. µû¶ó¼­ ¼­ºê³Ý¸¶½ºÅ©´Â 
11110000000000000000000000000000 ½±°Ô ÀÐÀÚ¸é, 240.0.0.0ÀÌ µÈ´Ù. ±×·¯¸é ¿ÏÀüÇÑ ¸í·É¾î´Â 
´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.

route add 224.0.0.0 netmask 240.0.0.0 dev eth0

route ÇÁ·Î±×·¥ÀÇ ¹öÀü¿¡ µû¶ó¼­ addµÚ¿¡ -net À» ºÙ¿©¾ß ÇÏ´Â °æ¿ìµµ ÀÖ´Ù.

¿©±â¼­ eth0ÀÌ ¸ÖÆ¼Ä³½ºÆ® °¡´ÉÇÏ´Ù°í °¡Á¤ÇßÀ¸¸ç, ´Þ¸® ÁöÁ¤µÇÁö ¾ÊÀ» °æ¿ì ¸ÖÆ¼Ä³½ºÆ® 
Æ®·¡ÇÈÀÌ eth0À¸·Î Ãâ·ÂµÉ °ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¿ì¸®¿¡°Ô ÇØ´çµÇÁö ¾Ê´Â´Ù¸é dev º¯¼ö °ªÀ» ´Ù¸¥  
°ªÀ¸·Î ¹Ù²Ù¾î ÁÖ¾î¾ßÇÑ´Ù.

¿©±â¼­ ´Ù½Ã ÇÑ¹ø /proc  ÆÄÀÏ½Ã½ºÅÛÀÇ À¯¿ë¼ºÀÌ ÀÔÁõµÈ´Ù.  ¿ì¸®´Â ¿ì¸®È£½ºÆ®°¡ Âü¿©ÇÏ°í 
ÀÖ´Â ±×·ìÀ» /proc/net/igmp¸¦ ÅëÇØ¼­ È®ÀÎÇØ º¼ ¼ö ÀÖ´Ù.

<sect>The MBone.<p>
ÀåÁ¡°ú ÇÔ²² ´ÜÁ¡µµ ÀÖ´Â ±â¼úÀÌ´Ù. ³ªÀÇ »ç°ßÀÌÁö¸¸, ÀåÁ¡Àº ºÐ¸íÇÏ´Ù´Â Á¡ÀÌ´Ù. ÁÖµÈ 
´ÜÁ¡Àº ¾ÆÁ÷ ¼ö¹éÀÇ È£½ºÆ®µé, Æ¯È÷ ¶ó¿ìÅÍµéÀÌ ¾ÆÁ÷ Áö¿øÇÏÁö ¾Ê°í ÀÖ´Ù´Â Á¡ÀÌ´Ù. 
°á°úÀûÀ¸·Î ¸ÖÆ¼Ä³½ºÆ®¸¦ »ç¿ëÇÏ´Â »ç¶÷µéÀº »õ·Î¿î Àåºñ¸¦ ±¸ÀÔÇÏ°í ¿î¿µÃ¼Á¦¸¦ ¼öÁ¤ÇÏ¸ç 
ÀÚ½ÅÀÇ Àå¼Ò¿¡ ¸ÖÆ¼Ä³½ºÆ®¶ó´Â ¼¶À» ¸¸µç´Ù. ±×¸®°í ±×µéÀº ´Ù¸¥ °÷¿¡¼­ ÀÚ½Å°ú ºñ½ÁÇÑ 
ÀÏÀ» ÇÏ°í ÀÖ´Â »ç¶÷µé°ú Åë½ÅÇÒ ¼ö¾øÀ½À» ¾Ë°ÔµÈ´Ù. ±×µé »çÀÌÀÇ ¸ÖÆ¼Ä³½ºÆ®¸¦ Áö¿øÇÏÁö 
¾Ê´Â ´Ü ÇÏ³ªÀÇ ¶ó¿ìÅÍ ¶§¹®¿¡...

ÇØ´äÀº ºÐ¸íÇÏ´Ù. ±×µéÀº °¡»ó ¸ÖÆ¼Ä³½ºÆ® ³×Æ®¿÷À» ÀÎÅÍ³Ý ÃÖ »ó´Ü¿¡ ¸¸µé±â·Î °áÁ¤ÇÑ´Ù. 
Áï ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ¸¦ °¡Áø »çÀÌÆ®µéÀº ±×µé°£¿¡ Á÷Á¢ÀûÀ¸·Î Åë½ÅÇÏ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ 
À¯´ÏÄ³½ºÆ® ¶ó¿ìÅÍ¸¦ ÅëÇØ¼­ ¿¬°áµÈ »çÀÌÆ®µéÀº ´Ù¸¥ ¸ÖÆ¼Ä³½ºÆ® ¼¶À¸·Î À¯´ÏÄ³½ºÆ® 
°¸½¶È­µÈ ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» º¸³»¾ß ÇÒ °ÍÀÌ´Ù. Áß°£¿¡ °ÉÃÄÁø ¶ó¿ìÅÍµé-À¯´ÏÄ³½ºÆ®Àü¿ë 
¶ó¿ìÅÍµé-Àº À¯´ÏÄ³½ºÆ® Æ®·¡ÇÈÀ» ´Ù·ç´Â °ÍÀÌ µÇ¹Ç·Î ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. ³¡À¸·Î ¼ö½Å 
Ãø¿¡¼­´Â Ä¸½¶È­µÈ Æ®·¡ÇÈÀ» ´Ù½Ã ¿ø·¡ÀÇ ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ¸·Î ÇØ¼®ÇÒ  °ÍÀÌ´Ù. ÀÌ·¸°Ô 
¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» À¯´ÏÄ³½ºÆ® Æ®·¡ÇÈÀ¸·Î ´Ù½Ã ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ» 
¸ÖÆ¼Ä³½ºÆ® ÅÍ³Î¸µ(tunneling)ÀÌ¶ó ÇÑ´Ù.

Áï, MBone ¶Ç´Â ¸ÖÆ¼Ä³½ºÆ® ¹éº»(Multicast Backbone)Àº ¸ÖÆ¼Ä³½ºÆ® ¼¶µéÀ» ¸ÖÆ¼Ä³½ºÆ®
ÅÍ³Î·Î ÀÌ¾îÁÖ´Â °¡»ó ¸ÖÆ¼Ä³½ºÆ® ³×Æ®¿÷(virtual multicast network)ÀÌ´Ù.

ÀÌ MBone¿¡ °üÇÑ È°µ¿µéÀÌ È°¹ßÇÏ´Ù. ±×·¯ÇÑ ¹Ý¸é Áö±Ýµµ ÀÎÅÍ³Ý¿¡¼­´Â ½Ç½Ã°£ ¿Àµð¿À ¹× 
ºñµð¿À·Î Ç³ºÎÇÑ ¿ø°ÝÈ¸ÀÇ°¡ ÀÌ·ç¾îÁö´Â ÁßÀÌ´Ù. ÃÖ±Ù Linus Torvalds°¡ Silicon Valley 
Linux Users Group¿¡¼­ ¹ßÇ¥ÇÑ °ÍÀÌ ¶óÀÌºê·Î ÀÎÅÍ³Ý Àü¼ÛµÈ ÀÏÀÌ ÀÖ´Ù.

MBone¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ ÀÚ·á´Â ´ÙÀ½À» Âü°íÇÏ¶ó. 
<url url="http://www.mediadesign.co.at/newmedia/more/mbone-faq.html">

<sect>¸ÖÆ¼Ä³½ºÆ® ÀÀ¿ëÇÁ·Î±×·¥µé<p>
¸ÖÆ¼Ä³½ºÆ®¸¦ ´Ù·ç´Â ´ëºÎºÐÀÇ »ç¶÷µéÀº Á¶¸¸ °£¿¡ MBone¿¡ ¿¬°áÇÒ °ÍÀÌ¸ç mrouted¸¦ 
ÇÊ¿ä·Î ÇÒ °ÍÀÌ´Ù. ¿ì¸® ¿ª½Ã ¸ÖÆ¼Ä³½ºÆ®¶ó¿ìÅÍ°¡ ¾ø´Â »óÅÂ¿¡¼­ ´Ù¸¥ ¼­ºê³ÝÀ¸·Î 
¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» Àü´ÞÇÏ±â ¿øÇÑ´Ù¸é mrouted°¡ ÇÊ¿äÇÏ´Ù. mrouted´Â ¸ÖÆ¼Ä³½ºÆ® 
µ¥ÀÌÅÍ±×·¥À» À¯´ÏÄ³½ºÆ® Çü½ÄÀ¸·Î Ä¸½¶È­ÇÏ¿© (IP¿¡¼­ IP·Î) À¯´ÏÄ³½ºÆ® ¶ó¿ìÅÍ¸¦ ÅëÇØ 
¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ¸ç, ÀÌ ¿Ü¿¡µµ ¸î °¡Áö ±â´ÉÀÌ ÀÖ´Ù. °¡Àå 
Áß¿äÇÑ °ÍÀº ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ÀÇ ¹ß½ÅÁö¿Í ¸ñÀûÁö¸¦ °¨ÁöÇÏ¿© ¾î¶»°Ô ¶ó¿ìÆÃÀ» ÇÒ 
°ÍÀÎÁö ¾Æ´Ï¸é ÇÏÁö ¾ÊÀ» °ÍÀÎÁö  Ä¿³Î¿¡ ¾Ë·ÁÁØ´Ù´Â Á¡ÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ¸¦ °¡Áö°í 
ÀÖ´Ù°í ÇÏ´õ¶óµµ mrouted´Â Ä¿³Î¿¡ µ¥ÀÌÅÍ±×·¥À¸·Î ¹«¾ùÀ» ÇÒÁö ¾Ë·ÁÁØ´Ù. (¾î¶»°Ô°¡ 
¾Æ´Ï¶ó ¹«¾ùÀÌ´Ù. mrouted´Â &quot;ÀÌ°ÍÀ» Àú ÀÎÅÍÆäÀÌ½º°¡ ¿¬°áµÈ ³×Æ®¿÷À¸·Î 
Æ÷¿öµùÇÏ¶ó.&quot;°í ¸»ÇÏÁö¸¸, ½ÇÁ¦·Î Æ÷¿öµùÀº Ä¿³ÎÀÌ ¼öÇàÇÑ´Ù.) ½ÇÁ¦ Æ÷¿öµù ÀÛ¾÷ 
ºÎºÐ(¾îµð¼­ ÇÒ °ÍÀÎ°¡)°ú Æ÷¿öµù ¾Ë°í¸®Áò ºÎºÐ(¾î¶»°Ô ÇÒ °ÍÀÎ°¡)À» ±¸ºÐÇÏ¸é Æ÷¿öµù 
ÄÚµå¸¦ ¿ÀÁ÷ ÇÑ¹ø¸¸ ÀÛ¼ºÇØ¼­ Ä¿³Î¿¡ ³ÖÀ¸¸é µÇ±â ¶§¹®¿¡ ¾ÆÁÖ À¯¿ëÇÏ´Ù. Æ÷¿öµù 
¾Ë°í¸®Áò°ú Á¤Ã¥Àº ÃßÈÄ¿¡ »ç¿ëÀÚ °ø°£ÀÇ µ¥¸ó(user space daemon)¿¡¼­ ±¸ÇöµÇ¸ç, µû¶ó¼­, 
Ä¿³ÎÀ» Àç ÄÄÆÄÀÏ ÇÒ ÇÊ¿ä ¾øÀÌ ¶ó¿ìÆÃ Á¤Ã¥À» ½±°Ô ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.

´ÙÀ½ »çÀÌÆ®¿¡¼­ ¸®´ª½º·Î Æ÷ÆÃµÈ mrouted¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù. 
<url url="ftp://www.video.ja.net/mice/mrouted/Linux/"> 
ÀÌ »çÀÌÆ®ÀÇ ¹Ì·¯´Â ´ÙÀ½À» ÂüÁ¶ÇÏ¶ó.
<url url="ftp://www.video.ja.net/mice/README.mirrors"> 

´ÙÀ½À¸·Î ¸®´ª½º·Î Æ÷ÆÃµÈ ¸ÖÆ¼Ä³½ºÆ® ÀÀ¿ëÇÁ·Î±×·¥µé °¡¿îµ¥ MBone¿¡ ¿¬°áÇÏµµ·Ï ÀÛ¼ºµÈ 
°Íµé¿¡ ´ëÇØ ¾Ë¾Æº»´Ù. ¿©±â¿¡ ÀÖ´Â ¸®½ºÆ®´Â Michael EslerÀÇ &quot;Linux Multicast 
Information&quot;¿¡¼­ °¡Á®¿Ô´Ù.
<url url="http://www.cs.virginia.edu/~mke2e/multicast/">. 
¸ÖÆ¼Ä³½ºÆ®¿Í ¸®´ª½º¿¡ ´ëÇÑ Á¤º¸°¡ ¾ÆÁÖ ¸¹¾Æ ÃßÃµÇÒ ¸¸ ÇÏ´Ù.

<bf>À½¼º È¸ÀÇ(Audio Conference)</bf>
<itemize>
<item>NeVoT- NetworkVoice Terminal  <url 
url="http://www.fokus.gmd.de/step/nevot">
<item>RAT -UCL Robust-Audio Tool   <url 
url="http://www-mice.cs.ucl.ac.uk/mice/rat">
<item>vat - LBL visual audio tool   <url url="http://www-nrg.ee.lbl.gov/vat/">
</itemize>

<bf>¿µ»ó È¸ÀÇ(Video Conference)</bf>
<itemize>
<item>ivs     -Inria     videoconferencing     system  <url 
url="http://www.inria.fr/rodeo/ivs.html">
<item>nv - Network video tool   <url url="ftp://ftp.parc.xerox.com/pub/net-research/">
<item>nv w/  Meteor -   Release of nv   w/ support for   the Matrox Meteor   
(UVa) 
<url url="ftp://ftp.cs.virginia.edu/pub/gwtts/Linux/nv-meteor.tar.gz">
<item>vic - LBL video conferencing tool   <url url="http://www-nrg.ee.lbl.gov/vic/">
<item>vic w/  Meteor -  Release  of vic  w/ support  for  the Matrox  Meteor (UVa)  
<url url="ftp://ftp.cs.virginia.edu/pub/gwtts/Linux/vic2.7a38-meteor.tar.gz">
</itemize>

<bf>±âÅ¸ À¯Æ¿¸®Æ¼</bf>
<itemize>
<item>mmphone     Multimediaphone     service    <url 
url="http://www.eit.com/software/mmphone/phoneform.html">
<item>wb - LBL shared white board <url url="http://www-nrg.ee.lbl.gov/wb/">
<item>webcast - Reliable multicast application  for linking Mosaic browsers<url 
url="http://www.ncsa.uiuc.edu/SDG/Software/XMosaic/CCI/webcast.html">
</itemize>

<bf>È¸ÀÇ µµ±¸(Session Tools)</bf>

¾à°£ ¼³¸íÇÒ ÇÊ¿ä°¡ ÀÖ¾î¼­ ÀÌ°ÍµéÀº µÚ¿¡ ³õ¾Ò´Ù.
È¸ÀÇ¸¦ ÇÏ°ÔµÇ¸é È¸ÀÇ¸¦ À§ÇÑ ¼­ºñ½ºµé(À½¼º, ¿µ»ó, °øÀ¯ Ä¥ÆÇ, µîµî...)¿¡ ¸ÖÆ¼Ä³½ºÆ® ±×·ì°ú
Æ÷Æ®µéÀ» ÇÒ´çÇÑ´Ù. È¸ÀÇ¸¦ ½ÃÀÛÇÏ¸é ¸ÖÆ¼Ä³½ºÆ® ±×·ì°ú Æ÷Æ®, ÇÁ·Î±×·¥(vic, vat, ...)µî¿¡
°üÇÑ Á¤º¸°¡ ÁÖ±âÀûÀ¸·Î MBoneÀ¸·Î  Àü¼ÛµÈ´Ù. È¸ÀÇ µµ±¸µéÀº  ÀÌ·¯ÇÑ Á¤º¸¸¦ &quot;µè°í
&quot
¿ì¸®°¡ °ü½É ÀÖ´Â È¸ÀÇ°¡ ¾ðÁ¦ ÀÖ´ÂÁö (È¤Àº ÀÖÀ»Áö) ¾Ë¾Æº¸±â ½±°Ô ¾Ë·ÁÁØ´Ù.
¶ÇÇÑ, È¸ÀÇ¿¡ Âü¿©ÇÏ´Â °úÁ¤À» ½±°Ô ÇØÁØ´Ù. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ¼­ Âü¿©ÇÒ ±×·ì/Æ÷Æ®¹øÈ£¸¦
¾Ë·ÁÁÖ´Â ´ë½Å Å¬¸¯ÇÏ´Â °Í¸¸À¸·Î ¼¼¼Çµµ±¸µéÀÌ ÀûÀýÇÑ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°°í ±× ÇÁ·Î±×·¥¿¡
ÀûÀýÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. È¸ÀÇµµ±¸µéÀº º¸Åë »ç¿ëÀÚ ÀÚ½ÅÀÇ È¸ÀÇ¸¦ MBone¿¡ ¾Ë¸®´Â ¿ªÇÒµµ 
ÇÑ´Ù.

<itemize>
<item>gwTTS - University of Virginia tele-tutoring system <url 
url="http://www.cs.Virginia.EDU/~gwtts">
<item>isc - Integrated session controller <url url="http://www.fokus.gmd.de/step/isc">
<item>mmcc - Multimedia onference control <url url="ftp://ftp.isi.edu/confctrl/mmcc">
<item>sd - LBL session directory tool <url url="ftp://ftp.ee.lbl.gov/conferencing/sd">
<item>sd-snoop - Tenet Group session directory snoop utility <url 
url="ftp://tenet.berkeley.edu/pub/software">
<item>sdr - UCL's next generation session directory <url 
url="ftp://cs.ucl.ac.uk/mice/sdr">
</itemize>

<sect>¸ÖÆ¼Ä³½ºÆ® ÇÁ·Î±×·¡¹Ö<p>
¸ÖÆ¼Ä³½ºÆ® ÇÁ·Î±×·¡¹Ö... È¤Àº, ¿ì¸®¸¸ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ÀÛ¼ºÇÏ±â.

¸ÖÆ¼Ä³½ºÆ®¸¦ Áö¿øÇÏ±â À§ÇØ¼­ ¸î °¡Áö È®ÀåµÈ ÀÀ¿ë ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀÌ½º(API)°¡ 
ÇÊ¿äÇÏ´Ù. ±× °¡¿îµ¥ ´ëºÎºÐÀº setsockopt() (Ä¿³Î¿¡ Á¤º¸¸¦ Àü´ÞÇÔ) ¿Í getsockopt() 
(¸ÖÆ¼Ä³½ºÆ® °ü·Ã Á¤º¸ ±¸ÇÔ) µÎ °¡Áö ½Ã½ºÅÛ È£ÃâÀ» ÅëÇØ Ã³¸®ÇÑ´Ù. »õ·Î¿î ½Ã½ºÅÛ È£Ãâ 
µÎ°³°¡ ¸ÖÆ¼Ä³½ºÆ®¸¦ Áö¿øÇÏ±â À§ÇØ Ãß°¡µÇ¾ú´Ù´Â ¶æÀÌ ¾Æ´Ï´Ù. setsockopt()/getsockopt()´Â 
4.2 BSD ½ÃÀýºÎÅÍ ÀÖ¾ú´Ù. ´ÜÁö Ä¿³Î¿¡ Àü´ÞÇØ ÁÖ¾î¾ßÇÏ´Â »õ·Î¿î ¸ÖÆ¼Ä³½ºÆ® ¿É¼ÇÀÌ 
Ãß°¡µÇ¾úÀ» »ÓÀÌ´Ù.

setsockopt()/getsockopt() ÇÔ¼öÀÇ ¼±¾ðÀÌ´Ù.
<code>
      int getsockopt(int s, int level, int optname, void* optval, int* optlen);

       int setsockopt(int s, int level, int optname, const void* optval, int optlen);
</code>

Ã¹ ¹øÂ° º¯¼ö s´Â ½Ã½ºÅÛ È£ÃâÀ» Àû¿ëÇÒ ¼ÒÄÏÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ®¿¡¼­ ÀÌ ¼ÒÄÏÀº AF_INET 
°è¿­  ÀÌ¾î¾ßÇÏ¸ç, ¼ÒÄÏ Å¸ÀÔÀº SOCK_DGRAM ¶Ç´Â SOCK_RAW¸¦ ¾µ ¼ö ÀÖ´Ù. ´ëºÎºÐÀº 
SOCK_DGRAMÀ¸·Î ¾²Áö¸¸, ¶ó¿ìÆÃ µ¥¸óÀ»  Á¦ÀÛÇÏ°Å³ª ¼öÁ¤ÇÒ °èÈ¹ÀÌ¶ó¸é SOCK_RAW 
ÀÌ ÇÊ¿äÇÒÁö ¸ð¸¥´Ù.

µÎ ¹øÂ° º¯¼ö levelÀº ¿É¼ÇÀÌ³ª, ÁúÀÇ(query), ¸Þ½ÃÁö(message)¸¦ Ã³¸®ÇÒ ·¹ÀÌ¾î¸¦ ÀÇ¹ÌÇÑ´Ù. 
¼ÒÄÏ ·¹ÀÌ¾î´Â SOL_SOCKET, IP ·¹ÀÌ¾î´Â IPPROTO_IP, µîµîÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ® 
ÇÁ·Î±×·¡¹Ö¿¡ levelÀº Ç×»ó IPPROTO_IP ÀÌ¾î¾ß ÇÑ´Ù. 

optnameÀº ¿ì¸®°¡ ¼³Á¤ °ªÀ» ÁöÁ¤ÇÏ´Â °ÍÀÎÁö ¾òÀ¸·Á ÇÏ´Â °ÍÀÎÁö¸¦ ÀÇ¹ÌÇÑ´Ù. ¼³Á¤ °ª 
ÀÚÃ¼´Â(Ä¿³Î¿¡ ¼³Á¤ÇÏ°Å³ª Ä¿³Î·ÎºÎÅÍ ÀÐ¾î¿À´Â µÎ °æ¿ì ¸ðµÎ) optvalÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ® 
ÇÁ·Î±×·¡¹Ö¿¡¼­ optnames´Â ´ÙÀ½°ú °°´Ù.

<verb>
      optname              setsockopt()          getsockopt()
  IP_MULTICAST_LOOP           yes                     yes
  IP_MULTICAST_TTL            yes                     yes
  IP_MULTICAST_IF             yes                     yes
  IP_ADD_MEMBERSHIP           yes                      no
  IP_DROP_MEMBERSHIP          yes                      no
</verb>

optlenÀº optvalÀÌ °¡¸®Å°´Â µ¥ÀÌÅÍ±¸Á¶ÀÇ Å©±â¸¦ ÀÇ¹ÌÇÑ´Ù. ´Ü, getsockopt()¿¡¼­´Â ¹ÝÈ¯ 
°ªÀÌ µÈ´Ù. Ä¿³ÎÀº optname °ªÀ» optvalÀÌ °¡¸®Å°´Â ¹öÆÛ¿¡ ½á³ÖÀº ÈÄ optlenÀ» ÅëÇØ 
ÀÚ·áÀÇ Å©±â¸¦ ¾Ë·ÁÁØ´Ù.

setsockopt()/getsockopt()¸ðµÎ ½ÇÇà °á°ú ¼º°øÇÏ¸é 0, ¿¡·¯°¡ ¹ß»ýÇÏ¸é -1À» ¹ÝÈ¯ÇÑ´Ù.

<sect1>IP_MULTICAST_LOOP.<p>
ÇÁ·Î±×·¡¸Ó¶ó¸é, µ¥ÀÌÅÍ¸¦ È£½ºÆ®·Î ·çÇÁ¹é ½ÃÅ³ °ÍÀÎÁö °áÁ¤ÇØ¾ßÇÑ´Ù. ¸¸ÀÏ, ÇÁ·Î¼¼½º°¡ 
¿©·¯ °³ÀÌ°Å³ª µ¥ÀÌÅÍ¸¦ ¸®½º´×&quot;listening&quot;ÁßÀÎ »ç¿ëÀÚ°¡ ÀÖ´Ù¸é ·çÇÁ¹éÀ» 
°¡´ÉÇÏ°Ô ÇØ¾ßÇÑ´Ù. ÇÏÁö¸¸, Ä«¸Þ¶ó ÀÌ¹ÌÁö¸¦ Àü¼ÛÇÏ´Âµ¥ ÀÚ±â È­¸é¿¡¼­ ÀÌ¹ÌÁö¸¦ º¼ ÇÊ¿ä°¡ 
¾ø´Ù¸é, ¾Æ¸¶µµ ·çÇÁ¹éÀÌ ÇÊ¿ä ¾øÀ» °ÍÀÌ´Ù. ÈÄÀÚÀÇ °æ¿ì ÇÁ·Î±×·¥Àº ÄÄÇ»ÅÍ¿¡ ºÎÂøµÈ 
Ä«¸Þ¶ó·ÎºÎÅÍ ¿µ»óÀÚ·á¸¦ ÀÌ¹Ì °¡Áö°í ÀÖÀ» °ÍÀÌ±â ¶§¹®¿¡, ´Ù½Ã ¼ÒÄÏÀ¸·ÎºÎÅÍ ÀÚ·á¸¦ ¹Þ±â 
¿øÇÏ´Â °æ¿ì´Â µå¹° °ÍÀÌ´Ù. ·çÇÁ¹éÀº ±âº» °ªÀ¸·Î È°¼ºÈ­µÇ¾î ÀÖ´Ù.

optvalÀÌ Æ÷ÀÎÅÍÀÌ±â ¶§¹®¿¡ ´ÙÀ½Ã³·³ ÇØ¼­´Â ¾È µÈ´Ù.

setsockopt(socket, IPPROTO_IP, IP_MULTICAST_LOOP, 0, 1);

·çÇÁ¹éÀ» Á¤Áö½ÃÅ°·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ°í

u_char loop;
setsockopt(socket, IPPROTO_IP, IP_MULTICAST_LOOP, &amp;loop, sizeof(loop));

·çÇÁ¹éÀ» È°¼ºÈ­½ÃÅ°·Á¸é loop¸¦ 1·Î, ÁßÁö½ÃÅ°·Á¸é 0À¸·Î ¼³Á¤ÇÑ´Ù.

¼ÒÄÏÀÇ ÇöÀç ·çÇÁ¹é»óÅÂ¸¦ È®ÀÎÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

u_char loop;
int size;

getsockopt(socket, IPPROTO_IP, IP_MULTICAST_LOOP, &amp;loop, &amp;size)

<sect1>IP_MULTICAST_TTL.<p>
Æ¯º°È÷ ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù¸é, ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥Àº Áö¿ª ³×Æ®¿÷ ¿ÜºÎ·Î Àü¼ÛµÇ´Â °ÍÀ» 
¹æÁöÇÏ±â À§ÇØ TTL 1À» ±âº» °ªÀ¸·Î Àü¼ÛµÈ´Ù. TTLÀ» ¿øÇÏ´Â °ªÀ¸·Î(0¿¡¼­ 255±îÁö) 
¹Ù²Ù±â À§ÇØ¼­ TTL°ªÀ» º¯¼ö¿¡ ³Ö°í ÇÁ·Î±×·¥¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½áÁÖ¸é µÈ´Ù.(¿©±â¼­´Â 
&quot;ttl&quot;ÀÌ¶ó°í Çß´Ù.)

u_char ttl;
setsockopt(socket, IPPROTO_IP, IP_MULTICAST_TTL, &amp;ttl, sizeof(ttl));

IP_MULTICAST_LOOP¿¡¼­¿Í Èí»çÇÏ´Ù.

<sect1>IP_MULTICAST_IF.<p>
ÀÏ¹ÝÀûÀ¸·Î ½Ã½ºÅÛ °ü¸®ÀÚ´Â ±âº» ÀÎÅÍÆäÀÌ½º¸¦ ÁöÁ¤ÇÏ¸ç, ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥Àº 
±×ÂÊÀ¸·Î º¸³»Áø´Ù. ÇÁ·Î±×·¡¸Ó´Â ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÈ ±âº» ÀÎÅÍÆäÀÌ½º¸¦ ¹«½ÃÇÏ°í 
Á¤ÇØÁø ¼ÒÄÏ¿¡¼­ »ç¿ëÇÒ ÀÎÅÍÆäÀÌ½º¸¦  ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

struct in_addr interface_addr;
setsockopt (socket, IPPROTO_IP, IP_MULTICAST_IF, &amp;interface_addr, 
sizeof(interface_addr));

ÀÌÈÄºÎÅÍ ÀÌ ¼ÒÄÏ¿¡¼­ »ý¼ºµÈ ¸ðµç ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀº À§¿¡¼­ ¼±ÅÃÇÑ ÀÎÅÍÆäÀÌ½º·Î 
Ãâ·ÂµÈ´Ù. ¿ø·¡ ¼³Á¤À» È¸º¹ÇÏ¿© °ü¸®ÀÚÀÇ ¼³Á¤À»  ¹«½ÃÇÏ°í Ä¿³ÎÀÌ ¿ÜºÎ Ãâ·Â 
ÀÎÅÍÆäÀÌ½º¸¦ ¼±ÅÃÇÏµµ·Ï ÇÏ·Á¸é ÀÎÅÍÆäÀÌ½º¿¡ INADDR_ANY¸¦ ¼³Á¤ÇÏ°í À§¿Í µ¿ÀÏÇÑ 
¿É¼ÇÀ¸·Î setsockopt()¸¦ È£ÃâÇÑ´Ù.

¿ÜºÎ Ãâ·Â ÀÎÅÍÆäÀÌ½º¸¦ ¼±ÅÃÇÔ¿¡ ÀÖ¾î¼­, ´ÙÀ½ ioctlÀÌ À¯¿ëÇÒ °ÍÀÌ´Ù.
SIOCGIFADDR (ÀÎÅÍÆäÀÌ½º ÁÖ¼Ò ¾ò±â),
SIOCGIFCONF (ÀüÃ¼ ÀÎÅÍÆäÀÌ½º ¸ñ·Ï ¾ò±â),
SIOCGIFFLAGS (ÀÎÅÍÆäÀÌ½º »óÅÂ ÇÃ·¡±×(flag)¸¦ ¾ò¾î¼­ ÀÎÅÍÆäÀÌ½º°¡ ¸ÖÆ¼Ä³½ºÆ®
°¡´ÉÇÑÁö È®ÀÎ - IFF_MULTICAST ÇÃ·¡±×-).

È£½ºÆ®°¡ ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ·Î ÀÛµ¿ÇÑ´Ù¸é, ¿©·¯ ÀÎÅÍÆäÀÌ½º¸¦ °¡Áö°í ÀÖ°Å³ª 
IP_MULTICAST_IF¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ» °æ¿ì, ´Ù¸¥ ÀÎÅÍÆäÀÌ½º¿¡¼­ ¸ÖÆ¼Ä³½ºÆ® 
Æ÷¿öµùÀÌ °¡´ÉÇÏ´õ¶óµµ ¸ÖÆ¼Ä³½ºÆ®´Â ±âº» ÀÎÅÍÆäÀÌ½º¸¦ ÅëÇØ ÀÌ·ç¾îÁø´Ù. 

<sect1>IP_ADD_MEMBERSHIP.<p>
Ä¿³Î¿¡ ¿ì¸®°¡ ¾î¶² ±×·ì¿¡ °ü½ÉÀÌ ÀÖ´ÂÁö ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù°í Çß´ø °ÍÀ» ´Ù½Ã »ý°¢ÇØ º¸ÀÚ. 
±×·ì¿¡ °ü½É ÀÖ´Â ÇÁ·Î¼¼½º°¡ ÇÏ³ªµµ ¾ø´Ù¸é, ±× ±×·ìÀ» ÇâÇØ¼­ Àü¼ÛµÇ¾î¿À´Â ÆÐÅ¶Àº ¸ðµÎ 
Æó±âµÈ´Ù. µû¶ó¼­ Ä¿³Î¿¡ ¿ì¸®ÀÇ °ü½É ±×·ìÀ» ¾Ë¸®°í, ±×·ìÀÇ È¸¿ø(member)ÀÌ µÇ±â 
À§ÇØ¼­´Â ´ÙÀ½°úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ¿ì¼± ip_mreq ±¸Á¶Ã¼ÀÇ ³»¿ëÀ»  Ã¤¿î´Ù. ±×¸®°í, optvalÀ» 
¼³Á¤ÇÏ¿©  setsockopt()¸¦ È£ÃâÇØ¼­ Ä¿³Î¿¡ ÀÌ ±¸Á¶Ã¼¸¦ ³Ñ°ÜÁÖ¸é µÈ´Ù. 

ip_mreq ±¸Á¶Ã¼´Â (/usr/include/linux/in.h¿¡ ÀÖÀ½) ´ÙÀ½°ú °°´Ù.

<code>
struct ip_mreq
{
        struct in_addr imr_multiaddr;   /* IP multicast address of group */
        struct in_addr imr_interface;   /* local IP address of interface */
};
</code>

<bf>ÁÖÀÇ :</bf> ÀÌ ±¸Á¶Ã¼ÀÇ &quot;¹°¸®Àû&quot;  Á¤ÀÇ´Â À§ÀÇ ÆÄÀÏ¿¡ ¸í½ÃµÇ¾î
ÀÖ´Ù. ÇÏÁö¸¸, ÄÚµåÀÇ ÀÌ½Ä¼ºÀ» À§ÇØ¼­ &lt;linux/in.h&gt;À»  Æ÷ÇÔ(include)½ÃÄÑ¼­´Â ¾È µÈ´Ù. 
´ë½Å &lt;linux/in.h&gt;¸¦ Æ÷ÇÔÇÏ´Â &lt;netinet/in.h&gt;À» Æ÷ÇÔ½ÃÄÑ¶ó.

Ã¹ ¹øÂ° ¸â¹ö, imr_multiaddr´Â ¿ì¸®°¡ Âü¿©ÇÒ ±×·ìÁÖ¼Ò¸¦ ¸»ÇÑ´Ù. È¸¿ø(membership)Àº 
±×·ì»Ó¸¸ ¾Æ´Ï¶ó ÀÎÅÍÆäÀÌ½º¿¡µµ °ü·ÃÀÌ  ÀÖ´Ù´Â Á¡À» ¸í½ÉÇØ¾ßÇÑ´Ù. µû¶ó¼­, µÎ ¹øÂ° ¸â¹ö, 
imr_interface°ªµµ ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. ¿ì¸®°¡ ºÐ»êµÈ È£½ºÆ®¿¡ ÀÖ´õ¶óµµ ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î
°¢±â ´Ù¸¥ ÀÎÅÍÆäÀÌ½º¸¦ ÀÌ¿ëÇÏ¿© °°Àº ±×·ì¿¡ Âü¿©ÇÒ ¼ö ÀÖ´Ù. imr_interface´Â ¿ÍÀÏµåÄ«µå 
ÁÖ¼Ò(INADDR_ANY)¸¦ ÀÌ¿ëÇÒ ¼ö  ÀÖÀ¸¸ç ÀÌ °æ¿ì ÀÎÅÍÆäÀÌ½º¸¦ ¼±ÅÃÇÏ´Â ÀÏÀº Ä¿³ÎÀÌ 
ÇÑ´Ù.

ÀÏ´Ü ÀÌ ±¸Á¶Ã¼¸¦ Ã¤¿ì¸é (struct ip_mreq  mreq;·Î  Á¤ÀÇ Çß´Ù°í ÇÏ¸é) ´ÙÀ½ ¹æ¹ýÀ¸·Î 
setsockopt()¸¦ È£ÃâÇÏ¸é µÈ´Ù.

setsockopt (socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, &amp;mreq, sizeof(mreq));

µ¿ÀÏ ¼ÒÄÏÀ¸·Î ¿©·¯ ±×·ì¿¡ Âü¿© ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖ¸ñÇÏ¶ó. ±×·ì ¼ö Á¦ÇÑÀº 
IP_MAX_MEMBERSHIPS¿¡ Á¤ÀÇµÇ¾î ÀÖÀ¸¸ç Ä¿³Î¹öÀü 2.0.33¿¡¼­ 20ÀÌ´Ù.

<sect1>IP_DROP_MEMBERSHIP.<p>
ÀÌ °úÁ¤Àº ±×·ì¿¡ Âü¿©ÇÏ´Â °Í°ú À¯»çÇÏ´Ù.

struct ip_mreq mreq;
setsockopt (socket, IPPROTO_IP, IP_DROP_MEMBERSHIP, &amp;mreq, sizeof(mreq));

¿©±â¼­ mreq´Â ±×·ì¿¡ Âü¿© ÇÒ ¶§ »ç¿ëÇß´ø °Í°ú µ¿ÀÏÇÑ ±¸Á¶Ã¼´Ù. imr_interface¿¡ 
INADDR_ANY¸¦ »ç¿ëÇÑ´Ù¸é Ä¿³ÎÀÌ ¼±ÅÃÇÑ Ã¹ ¹øÂ° ÀÎÅÍÆäÀÌ½º°¡ Á¦°ÅµÈ´Ù.

°°Àº ¼ÒÄÏÀ¸·Î ¾ÆÁÖ ¸¹Àº ±×·ì¿¡ Âü¿©ÇßÀ» °æ¿ì ¿¬°áÀ» Á¾·áÇÏ±â À§ÇØ ¸ðµç È¸¿ø °ü°è¸¦ 
»èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¼ÒÄÏÀ» ´ÝÀ¸¸é ¿¬°áµÈ ¸ðµç È¸¿ø °ü°è´Â Ä¿³ÎÀÌ ÀÇÇØ »èÁ¦µÈ´Ù. ¼ÒÄÏÀ» 
¿¬ ÇÁ·Î¼¼½º¸¦ Á¾·á(kill)½ÃÅ³ ¶§µµ µ¿ÀÏÇÏ´Ù.

³¡À¸·Î ±×·ì¿¡¼­ È¸¿øÀ» Á¦°ÅÇÏ´Â °úÁ¤ÀÌ È£½ºÆ®·Î ÇÏ¿©±Ý ±× ±×·ìÀ¸·Î ¿À´Âµ¥ÀÌÅÍ±×·¥À» 
¹ÞÁö ¸øÇÏµµ·Ï ÇÏ´Â °ÍÀ» ÀÇ¹ÌÇÏ´Â  °ÍÀº ¾Æ´Ï´Ù. µ¿ÀÏ ÀÎÅÍÆäÀÌ½º·Î ±× ±×·ì¿¡ Âü¿©ÇÑ 
¼ÒÄÏÀÌ IP_DROP_MEMBERSHIPÀÇ »óÅÂ°¡ µÇ´õ¶óµµ È£½ºÆ®´Â ±×·ì ¸â¹öÀÇ ¸ñ·ÏÀ» 
º¸°üÇÑ´Ù.

ADD_MEMBERSHIP °ú DROP_MEMBERSHIP Àº ¼º°ø, ½ÇÆÐ ¿©ºÎ¸¦ Áï½Ã ¹ÝÈ¯ÇÑ´Ù. 
(nonblocking operations)

<sect>¸ÖÆ¼Ä³½ºÆ® ³»ºÎ<p>
ÀÌ ÀýÀÇ ¸ñÀûÀº ¸ÖÆ¼Ä³½ºÆ®°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ ÀÌÇØÇÏ´Âµ¥ ÇÊ¿äÇÑ Á¤º¸¸¦ Á¦°øÇÏ´Â  °Í
µµ ¾Æ´Ï°í
¸ÖÆ¼Ä³½ºÆ® ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÏÀÚ´Â °Íµµ ¾Æ´Ï´Ù. ÇÏÁö¸¸ ¸ÖÆ¼Ä³½ºÆ®ÀÇ 
±â¹ÝÀ» ÀÌ·ç´Â ÇÁ·ÎÅäÄÝ°ú ±¸ÇöÀ» »ìÆìº½À¸·Î¼­ ½±°Ô ÀúÁö¸£´Â ½Ç¼ö¿Í  Àß¸øµÈ ÀÌÇØ¸¦ ÇÇÇÒ 
¼ö ÀÖÀ» °ÍÀÌ´Ù.

<sect1>IGMP.<p>
IP_ADD_MEMBERSHIP °ú IP_DROP_MEMBERSHIP¿¡¼­ ÀÌ ¸í·ÉÀ¸·Î Ä¿³Î¿¡ Á¦°øÇÑ 
Á¤º¸´Â ¾î¶² ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» ¹Þ°í ¾î¶² °ÍÀ» ¹ö¸± °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Âµ¥ ¾²ÀÎ´Ù°í 
Çß´Ù. ¸Â´Â ¸»ÀÌ¶ó°í ÇÒ ¼ö ÀÖÁö¸¸, ¸ðµÎ ¸Â´Â ¸»Àº ¾Æ´Ï´Ù. ÀÌ·¯ÇÑ ÀÏ¹ÝÈ­´Â Àü  ¼¼°è ¸ðµç 
¸ÖÆ¼Ä³½ºÆ®µ¥ÀÌÅÍ±×·¥ÀÌ ¿ì¸®ÀÇ È£½ºÆ®·Î Àü´ÞµÈ ÈÄ, È£½ºÆ®¿¡¼­ ÇÁ·Î¼¼½º°¡ ¹ßÇàÇÑ 
È¸¿ø°ü°è¸¦ È®ÀÎ ÈÄ µ¥ÀÌÅÍ±×·¥ÀÇ Æó±â ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù´Â ¸»ÀÌ µÈ´Ù. »ý°¢ÇÒ ÇÊ¿äµµ ¾øÀÌ, 
ÀÌ°ÍÀº ¾öÃ»³­ ´ë¿ªÆø ³¶ºñÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.

½ÇÁ¦·Î´Â È£½ºÆ®°¡ ÀÚ½ÅÀÇ ¶ó¿ìÅÍ¿¡°Ô, ±× ¶ó¿ìÅÍ´Â »óÀ§ ¶ó¿ìÅÍ¿¡°Ô, ±×¸®°í ±× »óÀ§ 
¶ó¿ìÅÍ¿¡°Ô....¾î¶² ¸ÖÆ¼Ä³½ºÆ® ±×·ì¿¡ °ü½ÉÀÌ ÀÖ´ÂÁö ¾Ë·ÁÁØ´Ù.  ¸ÖÆ¼Ä³½ºÆ® ±×·ì Æ®·¡ÇÈÀ» 
¹ÞÀ» °ÍÀÎÁö ¸» °ÍÀÎÁö °áÁ¤ÇÏ´Â ¾Ë°í¸®Áò ÀÚÃ¼¿¡´Â »ó´çÈ÷ º¯È­°¡ ½ÉÇÑµ¥, ´Ü ÇÑ°¡Áö 
º¯ÇÏÁö ¾Ê´Â °ÍÀÌ ÀÖ´Ù¸é, ÀÌ Á¤º¸¸¦ Àü´ÞÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ°ÍÀº IGMP(Internet Group 
Management ProtocolÀ»  ÀÌ¿ëÇÑ´Ù. ÇÁ·ÎÅäÄÝ¹øÈ£ 2ÀÎ IGMP´Â ICMP¿Í À¯»çÇÑ »õ·Î¿î 
ÇÁ·ÎÅäÄÝÀÎµ¥ IP µ¥ÀÌÅÍ±×·¥À» ÀÌ¿ëÇÏ¸ç ·¹º§ 2 ÀûÀÀ´Ü°èÀÇ  È£½ºÆ®´Â ÀÌ ÇÁ·ÎÅäÄÝÀ» 
ÀÇ¹«ÀûÀ¸·Î ±¸ÇöÇØ¾ß ÇÑ´Ù. Àü¼úÇÑ ¹Ù¿Í °°ÀÌ  ÀÌ°ÍÀº ¶ó¿ìÅÍ¿¡°Ô È¸¿øÁ¤º¸¸¦ Àü¼ÛÇÏ´Â 
È£½ºÆ®¿Í ¶ó¿ìÅÍ»çÀÌÀÇ Åë½Å ¾çÂÊ ¸ðµÎ »ç¿ëÇÑ´Ù. ´ÙÀ½ ±Û¿¡¼­ È£½ºÆ®-¶ó¿ìÅÍ°£ °ü°è¸¸À» 
¼³¸íÇÏ±â·Î ÇÑ´Ù. ¿Ö³ÄÇÏ¸é mrouted¼Ò½º ÄÚµå¸¦ Á¦¿ÜÇÏ°í´Â ¶ó¿ìÅÍ-¶ó¿ìÅÍ°£ Åë½ÅÀ» 
ÇØ¼³ÇÏ´Â ÀÚ·á¸¦ Ã£Áö ¸øÇÏ¿´±â  ¶§¹®ÀÌ´Ù. (RFC 1075-Distance  Vector Multicast  
Routing ProtocolÀº ÀÌÁ¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸ç, mrouted´Â ¾ÆÁ÷ ¹®¼­È­µÇÁö ¾ÊÀº º¯ÇüµÈ 
DVMRP¸¦ ±¸ÇöÇÏ°í ÀÖ´Ù.)

RFC 988-IGMP ¹öÀü 0Àº ÀÌÁ¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

IGMP ¹öÀü 1Àº RFC-1112¿¡ Á¤ÀÇµÇ¾î ÀÖ°í, RFC-2236 (IGMP version 2) ¿¡¼­ °³Á¤µÇ¾î 
ÇöÀç±îÁö ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Ù.
¸®´ª½º Ä¿³Î¿¡¼­´Â IGMP ¹öÀü 1 ÀüÃ¼¿Í ¹öÀü 2ÀÏºÎ°¡ ±¸ÇöµÇ¾î ÀÖ´Ù.

Áö±ÝºÎÅÍ ÀÌ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¾à½Ä¼³¸íÀ» º¸ÀÚ. RFC-2236À» ÆîÃÄ ³õ°í Á¤È®ÇÑ Á¤½Ä ¼³¸íÀ» 
º¸´Â °Íµµ ÁÁ´Ù.

¸ðµç IGMP ¸Þ½ÃÁö´Â ´ÙÀ½ ±¸Á¶¸¦ °¡Áø´Ù.

<verb>
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Type     | Max Resp Time |           Checksum            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Group Address                         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</verb>

IGMP ¹öÀü 1 (ÀÌÇÏ IGMPv1) ´Â Àü¼Û½Ã &quot;Max Resp Time&quot; À» 
&quot;Unused&quot;,Áï ¸ðµÎ 0 À¸·Î ÇÏ°í ¼ö½Å½Ã¿¡´Â ¹«½ÃÇÑ´Ù. &quot;Type&quot;¶õÀº 
4ºñÆ® ÆøÀ¸·Î ³ª´©¾î &quot;Version&quot;°ú &quot;Type&quot;À¸·Î »ç¿ëÇÑ´Ù. IGMPv1 
¿¡¼­´Â &quot;È¸¿øÁúÀÇ(Membership  Query)&quot;¸¦ 0x11  (version  1, type 1)À¸·Î 
È®ÀÎÇÏ°í, IGMPv2 ¿¡¼­´Â 0x11  ·Î È®ÀÎÇÏ±â ¶§¹®¿¡ 8ºñÆ®¸¦ »ç½Ç»ó µ¿ÀÏÇÏ°Ô ÇØ¼® ÇÑ´Ù.

IGMPv2 ´Â ÁÖ·Î Ãß°¡»çÇ×µé·Î ÀÌ·ç¾îÁ® ÀÖ±â ¶§¹®¿¡ IGMPv1 À» ÀÏ´Ü ¼³¸íÇÑ ÈÄ IGMPv2 
Ãß°¡»çÇ×À» ¼³¸íÇÏ´Â ÆíÀÌ ÁÁÀ» °Í °°´Ù.

´ÙÀ½ ³íÀÇ¿¡¼­ ¶ó¿ìÅÍ´Â ¸ðµç IP  ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥À» ¹Þ´Â´Ù´Â °ÍÀ»  ±â¾ïÇÏ¶ó.

<sect1>IGMP version 1.<p>
¶ó¿ìÅÍ´Â ÁÖ±âÀûÀ¸·Î(1ºÐ¿¡¼­ 2ºÐ¿¡ ÇÑ¹ø¾¿) TTL°ª 1ÀÇ  IGMP È£½ºÆ® È¸¿ø ÁúÀÇ¸¦ ÀüÃ¼ 
È£½ºÆ® ±×·ì(224.0.0.1)À¸·Î º¸³½´Ù. ¸ðµç ¸ÖÆ¼Ä³½ºÆ® È£½ºÆ®µéÀÌ ÀÌ ¸Þ½ÃÁö¸¦¹ÞÁö¸¸ IGMP 
È£½ºÆ® È¸¿ø º¸°í(Host  Membership Report)°¡ ÆøÁÖ(storm)ÇÏ´Â °ÍÀ» 
¹æÁöÇÏ±â À§ÇØ Áï½Ã ÀÀ´äÇÏÁö ¾Ê´Â´Ù. ´ë½Å ÁúÀÇ¸¦ ¼ö½ÅÇÑ ÀÎÅÍÆäÀÌ½º¿¡ ¼ÓÇÏ´Â °¢ ±×·ì¿¡ 
´ëÇØ,  ÀÓÀÇ Áö¿¬ Å¸ÀÌ¸Ó¸¦ ½ÃÀÛÇÑ´Ù.

Á¶¸¸ °£¿¡ Å¸ÀÌ¸Ó°¡ ¿Ï·áµÇ¸é È£½ºÆ®´Â ¿ª½Ã TTL 1ÀÇ IGMP È¸¿ø º¸°í¸¦ ¸ÖÆ¼Ä³½ºÆ® 
±×·ì¾îµå·¹½º·Î Àü¼ÛÇÑ´Ù. ÀÌ ¸Þ½ÃÁö´Â ÀÌ¹Ì  ±×·ì¿¡ Âü¿©ÇÏ°í ÀÖ´Â ¸ðµç È£½ºÆ®µé°ú
Å¸ÀÌ¸Ó°¡ ¿Ï·áµÇ±â¸¦ ±â´Ù¸®°í ÀÖ´Â È£½ºÆ®µé¿¡°Ô Àü´ÞµÈ´Ù. ±×·¯¸é °¢ È£½ºÆ®µéÀº 
Å¸ÀÌ¸Ó¸¦ ÁßÁöÇÏ°í ´õ ÀÌ»ó ¾Æ¹«·± º¸°íµµ ÇÏÁö  ¾Ê´Â´Ù. ÇÏÁö¸¸ ÀÌ°ÍÀ¸·Î ¶ó¿ìÅÍ´Â ÀÚ½ÅÀÇ 
¼­ºê³Ý¿¡ ±× ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀÇ ¸â¹ö°¡ Á¸ÀçÇÑ´Ù´Â °Í¸¸ ¾Ë¸é µÇ±â ¶§¹®¿¡ È¸¿øÀÌ ¸îÀÌ³ª 
ÀÖ´ÂÁö ¾Ë±â À§ÇØ ´õ ÀÌ»ó, º¸°í ¹ÞÀ» ÇÊ¿ä°¡ ¾ø´Ù.

¸î ¹ø ÁúÀÇÇÑ ÈÄ¿¡µµ ±× ±×·ì¿¡ ´ëÇØ ¾Æ¹«·± È¸¿ø º¸°í°¡ ¾øÀ¸¸é ¶ó¿ìÅÍ´Â ¸â¹ö°¡ ¾ø´Â 
°ÍÀ¸·Î °£ÁÖÇÏ°í ÇØ´ç ±×·ìÀÇ Æ®·¡ÇÈÀ» ¼­ºê³ÝÀ¸·Î Æ÷¿öµùÇÏÁö ¾Ê´Â´Ù. IGMPv1 ¿¡¼­´Â 
&quot;±×·ì Å»Åð ¸Þ½ÃÁö(Leave Group messages)&quot;°¡ ¾ø´Ù´Â Á¡¿¡ ÁÖ¸ñÇÏ¶ó.

È£½ºÆ®°¡ »õ ±×·ì¿¡ Âü¿©ÇÏ¸é Ä¿³ÎÀº ±×·ìÀ¸·Î º¸°í¸¦ º¸³»±â ¶§¹®¿¡ °¢°¢ÀÇ ÇÁ·Î¼¼½ºµéÀº 
»õ·Î¿î È¸¿ø ÁúÀÇ°¡ µµÂøÇÒ µ¿¾È(1,2ºÐ Á¤µµ) ±â´Ù¸± ÇÊ¿ä°¡ ¾ø´Ù. 
&quot;IP_ADD_MEMBERSHIP&quot; Á¤¿¡¼­ º¸¾Ò°ÚÁö¸¸, ÀÌ IGMP ÆÐÅ¶Àº 
IP_ADD_MEMBERSHI¸í·É¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î Ä¿³ÎÀÌ »ý¼ºÇÑ´Ù. "»õ ±×·ì"ÀÌ¶ó´Â  ¸»À» ÁÖÀÇ 
±íÀÌ º¸ÀÚ.  È£½ºÆ®°¡ ÀÌ¹Ì Âü¿©ÁßÀÎ ±×·ì¿¡ ´ëÇØ ÇÁ·Î¼¼½º°¡  IP_ADD_MEMBERSHIP 
¸í·ÉÀ» º¸³¾  °æ¿ì ¿ì¸®´Â  ÀÌ¹Ì ±×  ±×·ìÀÇ Æ®·¡ÇÈÀ»  ¹Þ°í ÀÖ±â  ¶§¹®¿¡ ¾Æ¹«·± IGMP 
ÆÐÅ¶µµ ¸¸µé¾îÁöÁö ¾ÊÀ» °ÍÀÌ´Ù. ´ë½Å ±×·ì»ç¿ë Ä«¿îÅÍ°¡ Áõ°¡ÇÑ´Ù. IGMPv1¿¡¼­ 
IP_DROP_MEMBERSHIP  ¸í·ÉÀº µ¥ÀÌÅÍ±×·¥À» »ý¼º½ÃÅ°Áö ¾Ê´Â´Ù.

È£½ºÆ® È¸¿ø ÁúÀÇ´Â Å¸ÀÔ 0x11, È£½ºÆ® È¸¿ø º¸°í´Â °¢°¢ Å¸ÀÔ 0x12·Î ±¸ºÐÇÑ´Ù.

ÀüÃ¼ È£½ºÆ® ±×·ì¿¡´Â º¸°íÇÏÁö ¾Ê´Â´Ù. ÀÌ ±×·ìÀ¸·ÎÀÇ È¸¿øÀº ¿µ±¸ÀûÀÌ´Ù.

<sect1>IGMP ¹öÀü 2.<p>
»ó±â ³»¿ë¿¡ ´ëÇÑ Ãß°¡ »çÇ× Áß Áß¿äÇÑ °Í ÇÑ°¡Áö´Â ±×·ì ÀÌÅ» ¸Þ½ÃÁö(Å¸ÀÔ0x17)°¡ 
Æ÷ÇÔµÇ¾ú´Ù´Â »ç½ÇÀÌ´Ù. ÀÌ ¸Þ½ÃÁö´Â ¼­ºê³Ý¿¡¼­ ¸¶Áö¸· È£½ºÆ®°¡ ±×·ìÀ» ÀÌÅ»ÇÏ´Â ½ÃÁ¡°ú 
ÁúÀÇ ½Ã°£ÀÌ ¸¸·áµÇ¾î ¶ó¿ìÅÍ°¡ ´õ ÀÌ»ó ±×·ì¿¡ ³²¾ÆÀÖ´Â È¸¿øÀÌ ¾ø´Ù°í °áÁ¤ÇÏ´Â ½ÃÁ¡ 
»çÀÌÀÇ ´ë¿ªÆø ³¶ºñ(ÀÌÅ» Áö¿¬-leave latency)¸¦ ÁÙÀÌ±â À§ÇØ Ãß°¡µÇ¾ú´Ù. ±×·ì ÀÌÅ» 
¸Þ½ÃÁö´Â ±×·ìÀÇ ´Ù¸¥ ¸â¹öµé¿¡°Ô´Â ºÒÇÊ¿äÇÑ Á¤º¸ÀÌ±â ¶§¹®¿¡ ³²¾ÆÀÖ´Â ±×·ìº¸´Ù ÀüÃ¼ 
¶ó¿ìÅÍ ±×·ì(224.0.0.2)ÂÊÀ¸·Î Àü¼ÛÇØ¾ß ÇÑ´Ù. (Ä¿³Î ¹öÀü 2.0.33 ÀÌÇÏ¿¡¼­´Â ÀÌ ¸Þ½ÃÁö¸¦  
±×·ìÀ¸·Î º¸³Â¾ú´Ù. È£½ºÆ®·Î¼­´Â ÇØ¸¦ ÀÔÀ» ÀÏÀº ¾øÁö¸¸, ¾µµ¥¾ø´Â Á¤º¸ÀÌ±â  ¶§¹®¿¡ ÀÌ 
Á¤º¸¸¦ Ã³¸®ÇÏ´Â °ÍÀº ½Ã°£³¶ºñÀÏ »ÓÀÌ´Ù.) ¾ðÁ¦ ÀÌÅ» ¸Þ½ÃÁö¸¦ º¸³¾ °ÍÀÎ°¡, ¾ðÁ¦ º¸³»Áö 
¾ÊÀ» °ÍÀÎ°¡ ÇÏ´Â ¹®Á¦¿¡ ´ëÇØ¼­´Â ¸î °¡Áö ¹Ì¹¦ÇÑ ¹®Á¦°¡ ÀÖ´Ù. °ü½ÉÀÌ ÀÖ´Ù¸é RFC¸¦ 
ÂüÁ¶ÇÒ °Í.

IGMPv2¶ó¿ìÅÍ°¡ ÀÌÅ» ¸Þ½ÃÁö¸¦ ¹ÞÀ¸¸é ¶ó¿ìÅÍ´Â ±×·ìÀ» ÁöÁ¤ÇÏ¿©(group-specific) 
³²¾ÆÀÖ´Â ±×·ì¿¡°Ô ÁúÀÇ¸¦ º¸³½´Ù. ÀÌ°Íµµ IGMPv2 ¿¡¼­ Ãß°¡µÈ »çÇ×ÀÌ´Ù. IGMPv1¿¡¼­ 
±×·ì ÁöÁ¤ ÁúÀÇ´Â ¾ø¾ú´Ù. ¸ðµç ÁúÀÇ°¡ ÀüÃ¼ È£½ºÆ® ±×·ìÀ¸·Î º¸³»´Â ÁúÀÇ¿´´Ù. IGMP 
Çì´õ¿¡ Á¤ÀÇµÈ Å¸ÀÔ °ªÀº º¯ÇÏÁö ¾Ê¾ÒÁö¸¸(Àü°ú µ¿ÀÏÇÏ°Ô 0x11), &quot;±×·ì ÁÖ¼Ò(Group 
Address)&quot;ÇÊµå´Â ³²¾ÆÀÖ´Â ¸ÖÆ¼Ä³½ºÆ® ±×·ì ÁÖ¼Ò·Î Ã¤¿öÁø´Ù.

IGMPv1¿¡¼­ Àü¼Û½Ã 0À¸·Î  Ã¤¿ì°í ¼ö½Å½Ã  ¹«½ÃÇÏ±â·Î ÇÏ¿´´ø  &quot;Max Resp 
Time&quot; ÇÊµå´Â &quot;Membership  Query&quot;¿¡¼­¸¸ ÀÇ¹Ì°¡ ÀÖ´Ù. ÀÌ ÇÊµå´Â 
º¸°íÇØ¾ßÇÒ ÇÑ°è ½Ã°£À» ¼³Á¤ÇÏ´Âµ¥  ¾²ÀÎ´Ù. ¼º´ÉÀ» Á¶ÀýÇÏ´Â ¸ÞÄ¿´ÏÁòÀ¸·Î »ç¿ëÇÑ´Ù°í º¼ 
¼ö ÀÖ´Ù.

IGMPv2¿¡¼­ »õ·Î¿î  ¸Þ½ÃÁö Å¸ÀÔ  0x16ÀÌ Ãß°¡µÇ¾ú´Ù.   ÀÌ°ÍÀº &quot;Version 2 
Membership Report&quot;·Î¼­ IGMPv2 È£½ºÆ®°¡ IGMPv2  ¶ó¿ìÅÍ¸¦ ¹ß°ßÇßÀ»  ¶§ 
Àü¼ÛÇÑ´Ù. (IGMPv2  È£½ºÆ®´Â &quot;Max Response&quot; ÇÊµå°¡ 0 À¸·Î Ã¤¿öÁø ÆÐÅ¶À» 
È®ÀÎÇÏ¿© IGMPv1 ¶ó¿ìÅÍ°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀ» ¾Ë¾Æ³½´Ù).

µ¿½Ã¿¡ ¿©·¯ ¶ó¿ìÅÍ°¡ ÁúÀÇ¸¦ ÇÒ ¶§, IGMPv2  ´Â &quot;discussions&quot;¸¦ È¸ÇÇÇÏ´Â 
¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ÀÌ °æ¿ì ³·Àº IP ÁÖ¼Ò¸¦ °¡Áø ¶ó¿ìÅÍ°¡ ÁúÀÇÀÚ(querier)°¡ µÇ°í ´Ù¸¥ 
¶ó¿ìÅÍ´Â Å¸ÀÌ¸Ó¸¦ ¼³Á¤ÇÑ´Ù. ³·Àº ¹øÈ£ÀÇ ¶ó¿ìÅÍ°¡ ¾î¶² ÀÌÀ¯·Î Á¦´ë·Î ÀÛµ¿ÇÏÁö ¸øÇÏ¸é 
Å¸ÀÌ¸Ó°¡ ¸¸·áµÈ ÈÄ ´Ù½Ã ÁúÀÇÀÚ¸¦ ¼³Á¤ÇÑ´Ù.

<sect1>Ä¿³Î °ü·Ã »çÇ×<p>
ÀÌ Àý¿¡¼­´Â ¸®´ª½º Ä¿³Î¿¡¼­ ¸ÖÆ¼Ä³½ºÆ®  ±¸ÇöÀ» ÇÐ½ÀÇÏ±â À§ÇÑ ½Ç¸¶¸®¸¦  º¸¿©ÁÙ °ÍÀÌ´Ù. 
±¸Çö ÀÚÃ¼¸¦ ¼³¸íÇÏÁö´Â ¾Ê´Â´Ù. ´ÜÁö ¾îµð¼­ Ã£À» °ÍÀÎÁö¸¸ ¾Ë·ÁÁÖ´Ù.

ÀÌ ³»¿ëÀº 2.0.32¿¡¼­ÀÇ ¼³¸íÀÌ¹Ç·Î ÀÌ  ±ÛÀ» ÀÐ´Â ½ÃÁ¡¿¡¼­ Á» ¿À·¡µÈ  ³»¿ëÀÏÁöµµ ¸ð¸¥´Ù. 
(³×Æ®¿÷ ÄÚµå´Â 2.1.x¿¡¼­ ¸¹ÀÌ º¯°æµÇ¾ú´Ù.

¸®´ª½º Ä¿³Î¿¡¼­  ¸ÖÆ¼Ä³½ºÆ® ÄÚµå´Â  Ç×»ó #ifdef    CONFIG_IP_MULTICAST / #endif 
½ÖÀ¸·Î µÑ·¯½Î¿© ÀÖ±â ¶§¹®¿¡ ÇÊ¿äÇÏ´Ù¸é ¾ðÁ¦µçÁö Ä¿³Î¿¡ 
Æ÷ÇÔ(inclusion/exclusion)½ÃÅ°°Å³ª  ¹èÁ¦½ÃÅ³ ¼ö ÀÖ´Ù. (ÀÌ Æ÷ÇÔ/¹èÁ¦´Â ÄÄÆÄÀÏ ½Ã¿¡ 
ÇàÇØÁö¸ç  #ifdef ±¸¹®Àº ¼±ÇàÃ³¸®±â°¡ ÇÏ´Â ÀÛ¾÷ÀÌ¶ó´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. Æ÷ÇÔ¿©ºÎ 
°áÁ¤Àºmake config, make menuconfig ¶Ç´Â make xconfig¸¦ ½ÇÇà½ÃÅ³ ¶§ ÇÒ ¼ö ÀÖ´Ù.)

¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ ±â´ÉÀ» »ç¿ëÇÏ°í ½Í´Ù¸é #ifdef CONFIG_IP_MROUTE / #endif½Ö ¼ÓÀÇ 
ÄÚµåµéÀ» È°¼ºÈ­ ½ÃÄÑ¾ß ÇÑ´Ù.

Ä¿³Î ¼Ò½º´Â º¸Åë /usr/src/linux¿¡ ÀÖ´Ù. ÇÏÁö¸¸ À§Ä¡´Â º¯ÇÒ ¼öµµ ÀÖ´Â °ÍÀÌ±â ¶§¹®¿¡ 
Ä¿³Î ¼Ò½ºÀÇ À§Ä¡¸¦ °£´Ü ¸í·áÇÏ°Ô LINUX¶ó°í   °¡Á¤ÇÏÀÚ.  ÀÌÁ¦   Ä¿³Î¼Ò½º¸¦   
/usr/src/linux   ¿¡  Ç®¾úÀ»   °æ¿ì, LINUX/net/ipv4/udp.c ´Â  
/usr/src/linux/net/ipv4/udp.c ¸¦ ÀÇ¹ÌÇÑ´Ù.

»ç¿ëÀÚ ÇÁ·Î±×·¥¿¡¼­ÀÇ ¸ÖÆ¼Ä³½ºÆ® ÀÎÅÍÆäÀÌ½º´Â ¸ÖÆ¼Ä³½ºÆ® ÇÁ·Î±×·¡¹ÖÀ»  ¼³¸íÇÑ Àý¿¡¼­ 
setsockopt()/ getsockopt()¸¦ ÅëÇØ  ¸ðµÎ º¸¿© ÁÖ¾ú´Ù. ÀÌ µÎ ÇÔ¼ö´Â Àü´Þ¹ÞÀº º¯¼öÀÇ 
À¯È¿¼ºÀ» °Ë»çÇÑ ´ÙÀ½, ´Ù¸¥ ¸î °¡Áö ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Ãß°¡ ÀûÀ¸·Î °Ë»çÇÏ°í, ¶Ç ´Ù¸¥ 
ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ½ÄÀ¸·Î ±¸ÇöµÇ¾ú´Ù. (ÀÌ ¸ðµç ÇÔ¼ö È£Ãâ¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é 
LINUX/net/socket.c (ÇÔ¼ö sys_socketcall() ¿Í sys_setsockopt()), LINUX/net/ipv4/af_inet.c 
(ÇÔ¼ö inet_setsockopt()) ±×¸®°í LINUX/net/ipv4/ip_sockglue.c (ÇÔ¼ö ip_setsockopt()) ¸¦ 
ÂüÁ¶ÇÏ¶ó.)

LINUX/net/ipv4/ip_sockglue.cµµ   ÁÖÀÇ   ±í°Ô   º¸¾Æ¾ß  ÇÑ´Ù.   ¿©±â¿¡´Â   ÇÔ¼ö 
ip_setsockopt() ¿Í ip_getsockopt() °¡ µé¾î ÀÖ´Âµ¥ ´ëºÎºÐÀº (¾î¶² ¿¡·¯ Ã¼Å©  ÈÄ¿¡) 
°¡´ÉÇÑ optnameÀ» °Ë»çÇÏ´Â  ½ºÀ§Ä¡°°Àº °ÍÀÌ´Ù. À¯´ÏÄ³½ºÆ® ¿É¼Ç°ú ÇÔ²²,   
IP_MULTICAST_TTL, IP_MULTICAST_LOOP,    IP_MULTICAST_IF,     
IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP°°Àº ¸ðµç ¸ÖÆ¼Ä³½ºÆ® ¿É¼ÇÀ» Ã³¸®ÇÑ´Ù. 
ÀÌ ½ºÀ§Ä¡ ÀÌÀü¿¡ ¿É¼ÇÀ» °Ë»çÇÏ¿© ±×°ÍÀÌ ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ ÁöÁ¤ ¿É¼ÇÀÌ¶ó¸é  ÇÔ¼ö 
ip_mroute_setsockopt() ¿Í  ip_mroute_getsockopt() ·Î ¶ó¿ìÆÃ µÈ´Ù. (ÆÄÀÏ 
LINUX/net/ipv4/ipmr.c ¿¡ ÀÖÀ½).

LINUX/net/ipv4/af_inet.c ¿¡¼­ ÀÌÀü Àý¿¡¼­ ³íÀÇÇß´ø  ¼ÒÄÏ »ý¼º ±âº» °ªÀ» º¼  ¼ö ÀÖ´Ù. 
(loopback enabled, TTL=1, ÇÔ¼ö inet_create() Áß¿¡¼­)

<code>
  #ifdef CONFIG_IP_MULTICAST
          sk->ip_mc_loop=1;
          sk->ip_mc_ttl=1;
          *sk->ip_mc_name=0;
          sk->ip_mc_list=NULL;
  #endif
</code>

´ÙÀ½ ÄÚµå°¡ "¼ÒÄÏÀ» ´ÝÀ¸¸é Ä¿³ÎÀº ÀÌ ¼ÒÄÏ¿¡ ÀÖ´ø ¸ðµç È¸¿øÀ»  Å»Åð½ÃÅ²´Ù"´Â ³»¿ëÀ» 
´ÜÁ¤ÀûÀ¸·Î º¸¿©ÁØ´Ù. (À§¿Í µ¿ÀÏ ÆÄÀÏÀÇ ÇÔ¼ö inet_release()¿¡¼­)

<code>
  #ifdef CONFIG_IP_MULTICAST
                  /* Applications forget to leave groups before exiting */
                  ip_mc_drop_socket(sk);
  #endif
</code>

¸µÅ©   °èÃþÀÇ(Link  Layer)ÀÇ   ÀåÄ¡  µ¶¸³ÀûÀÎ(Device   independent)   ¿¬»êµéÀº   
LINUX/net/core/dev_mcast.c ¿¡ ÀÖ´Ù.

¾ÆÁ÷ µÎ °¡Áö Áß¿äÇÑ ÇÔ¼öµéÀ» ¼³¸íÇÏÁö ¾Ê¾Ò´Ù. ÀÔ·Â  Ã³¸® ÇÔ¼ö¿Í ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ 
Ãâ·Â ÇÔ¼öÀÌ´Ù. ´Ù¸¥   µ¥ÀÌÅÍ±×·¥µé°ú  ¸¶Âù°¡Áö·Î   ÀÔ·Â  µ¥ÀÌÅÍ±×·¥Àº   ÀåÄ¡  
µå¶óÀÌ¹ö·ÎºÎÅÍ ip_rcv() ÇÕ¼ö(LINUX/net/ipv4/ip_input.c)·Î Àü´ÞµÈ´Ù. ÀÌ ÇÔ¼ö¿¡¼­ ÇÏÀ§ 
°èÃþÀ¸·ÎºÎÅÍ ÀüÇØÁø ¸ÖÆ¼Ä³½ºÆ® ÆÐÅ¶À» ¿Ïº®ÇÏ°Ô ÇÊÅÍ¸µÇÑ´Ù(ÇÏÀ§·¹ÀÌ¾î¿¡¼­ ÃÖ´ëÇÑ 
ÇÊÅÍ¸µÇÏÁö¸¸, IP °èÃþ¿¡¼­ ¿ì¸®°¡ °ü½ÉÀ» °¡Áö°í ÀÖ´Â ±×·ì¿¡ ´ëÇØ 100% ¾Ë°í ÀÖ±â 
¶§¹®¿¡  ÆÐÅ¶À» ¿ÏÀüÇÏ°Ô ÇÊÅÍ¸µÇÑ´Ù°í Çß´ø°ÍÀ» ±â¾ïÇÏÀÚ.) È£½ºÆ®°¡ ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ·Î 
ÀÛµ¿ÁßÀÌ¶ó¸é ¿ª½Ã ÀÌ  ÇÔ¼ö°¡ ÆÐÅ¶ Æ÷¿öµù ¿©ºÎ¸¦  °áÁ¤ÇÏ°í ÀûÀýÇÏ°Ô ipmr_forward()¸¦ 
È£ÃâÇÑ´Ù. (ipmr_forward() Àº LINUX/net/ipv4/ipmr.c¿¡ ±¸ÇöµÇ¾î ÀÖ´Ù.).

ÆÐÅ¶ Ãâ·Â ÀÓ¹«¸¦ ¸ÃÀº ÄÚµå´Â LINUX/net/ipv4/ip_output.c¿¡ ´ã°ÜÁ®  ÀÖ´Ù. ÀÌ°÷¿¡¼­ 
ÆÐÅ¶À» ·çÇÁ¹é   ÇÒÁö ¾È  ÇÒÁö(¾ÈÇÑ´Ù¸é  ip_queue_xmit()È£Ãâ)  °Ë»çÇÏ±â 
¶§¹®¿¡IP_MULTICAST_LOOP ¿É¼ÇÀÌ È¿·ÂÀ» ¹ßÈÖÇÏ´Â °÷ÀÌ´Ù. ¶ÇÇÑ, ¿ÜºÎ·Î ÇâÇÏ´Â 
ÆÐÅ¶ÀÌ ¸ÖÆ¼Ä³½ºÆ®ÀÎÁö À¯´ÏÄ³½ºÆ®ÀÎÁö¿¡ ÀÇ°ÅÇÏ¿© TTLÀ» Á¤ÇÏ´Â °÷ÀÌ±âµµ ÇÏ´Ù. ÀüÀÚÀÇ   
°Ü¿ì   IP_MULTICAST_TTL    ·Î   Àü´ÞµÈ   º¯¼ö¸¦   »ç¿ëÇÑ´Ù(ÇÔ¼ö ip_build_xmit()).

mrouted(Ä¿³Î¿¡ ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥ ¶ó¿ìÆÃ ¹æ¹ýÀ» ¾Ë·ÁÁÖ´Â ÇÁ·Î±×·¥)·Î  ÀÛ¾÷ÇÏ´Â 
µ¿¾È, ¿ì¸®´Â ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ·Î ÀÛµ¿ÇÏ´Â ¿ì¸®ÀÇ ¸®´ª½º ¹Ú½º¿¡¼­ ¸¸µé¾îÁø ÆÐÅ¶À»  
Á¦¿ÜÇÑ, ·ÎÄÃ ³×Æ®¿÷¿¡¼­ »ý¼ºµÈ ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥Àº ¸ðµÎ ÀûÀýÇÏ°Ô ¶ó¿ìÆÃµÇ´Â °ÍÀ»  
 ¹ß°ßÇß´Ù. ip_input.c   ´Â Á¦´ë·Î   ÀÛµ¿ÇÏ°í ÀÖ´Â°Í   °°¾ÒÁö¸¸ ip_output.c ´Â ±×·¸Áö 
¾Ê¾Ò´Ù. Ãâ·Â ÇÁ·Î±×·¥ÀÇ ¼Ò½º ÄÚµå¸¦ ÀÐ´Â µ¿¾È ¿ÜºÎ·Î ³ª°¡´Â µ¥ÀÌÅÍ±×·¥µéÀÌ ¶ó¿ìÆÃ 
¿©ºÎ¸¦ °áÁ¤ÇÏ´Â  ÇÔ¼ö ipmr_forward()¸¦ °ÅÄ¡Áö ¾Ê´Â °ÍÀ» ¹ß°ßÇß´Ù. ÆÐÅ¶µéÀº ·ÎÄÃ 
³×Æ®¿÷À¸·Î Ãâ·ÂµÇ¾úÁö¸¸ ³×Æ®¿÷ Ä«µå´Â ÀÚ½ÅÀÌ Àü¼ÛÇÏ´Â  µ¥ÀÌÅÍ±×·¥À»  ÀÐÀ» ¼ö ¾ø¾ú°í, 
ÀÌ·± µ¥ÀÌÅÍ±×·¥µéÀº ¶ó¿ìÆÃµÇÁö ¾Ê¾Ò´Ù. ¿ì¸®°¡  ip_build_xmit() ÇÔ¼ö¿¡ ÀûÀýÇÑ  ÄÚµå¸¦ 
Ãß°¡ÇÏÀÚ ¸ðµç °ÍÀÌ ¿Ã¹Ù·Î ÀÛµ¿ÇÏ¿´´Ù. (¼Ò½º ¼öÁ¤Àº »çÄ¡¸¦ ¶°´Â °Íµµ À¯½ÄÇÑÃ´ÇÏ´Â °Íµµ 
¾Æ´Ï´Ù; ÇÊ¿ä´Ù!)

ipmr_forward() ´Â ¼ö Â÷·Ê ¾ð±ÞÇß¾ú´Ù. ipmr_forward() ´Â ¿ì¸®°¡ ÈçÈ÷ Àß¸ø ÀÌÇØÇÏ°í 
ÀÖ´Â °ÍÀ» Ç®¾îÁÙ ¼ö ÀÖ±â ¶§¹®¿¡ ¾ÆÁÖ Áß¿äÇÑ ÇÔ¼öÀÌ´Ù. ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» ¶ó¿ìÆÃÇÒ ¶§, 
ÆÐÅ¶ »çº»À»  ¸¸µé°í ±×°ÍÀ» ¿Ã¹Ù¸¥ ¼ö½ÅÀÚ¿¡°Ô Àü´ÞÇÏ´Â °ÍÀº mroutedÀÚÃ¼°¡ ¾Æ´Ï´Ù. 
mrouted´Â ¸ðµç ¸ÖÆ¼Ä³½ºÆ® Æ®·¡ÇÈÀ» ¼ö½ÅÇÏ¿©, ±×  Á¤º¸¿¡ ±Ù°ÅÇÏ¿© , ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÆÃ 
Å×ÀÌºíÀ» °è»êÇØ ³»°í Ä¿³Î¿¡ ¶ó¿ìÆÃ ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù. &quot;ÀÌ ÀÎÅÍÆäÀÌ½º¿¡¼­ µé¾î¿À´Â  
Àú ±×·ìÀÇ µ¥ÀÌÅÍ±×·¥Àº Àú ÀÎÅÍÆäÀÌ½º·Î º¸³»¶ó.&quot;

ÀÌ   ¶ó¿ìÆÃ  Á¤º¸´Â   mrouted   µ¥¸ó(raw  ¼ÒÄÏ   »ý¼º½Ã   Áö¾îµÈ  ÇÁ·ÎÅäÄÝÀº    
IPPROTO_IGMPÀÌ¾î¾ß ÇÑ´Ù.)ÀÌ ¸¸µç raw   ¼ÒÄÏ¿¡¼­   setsockopt()¸¦   È£ÃâÇÏ¿©    
Ä¿³Î¿¡   ¼³Á¤ÇÑ´Ù.   ÀÌ   ¿É¼ÇÀº LINUX/net/ipv4/ipmr.c ÀÇ  
ip_mroute_setsockopt()ÇÔ¼ö¿¡¼­ Ã³¸®ÇÑ´Ù. ¼ÒÄÏ¿¡¼­ ¹ßÇàÇÑ Ã¹¹øÂ° ¿É¼Ç(would be  better 
to call them commands rather than options)Àº MRT_INITÀÌ¾î¾ß ÇÑ´Ù. Ã¹  ¹øÂ°  ¹ßÇàÇÑ  
¿É¼ÇÀÌ  MRT_INITÀÌ  ¾Æ´Ï¶ó¸é  ´Ù¸¥   ¸ðµç ¸í·ÉÀº   ¹«½ÃÇÑ´Ù. (-EACCES¸¦ ¹Ý³³) ÇÑ 
È£½ºÆ® »ó¿¡´Â mroutedÀÇ ÀÎ½ºÅÏ½º°¡ ²À ÇÏ³ª¸¸ Á¸ÀçÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» ÃßÀûÇÏ±â À§ÇØ  Ã¹ 
¹øÂ° MRT_INIT À» ¹Þ¾ÒÀ»  ¶§ ±¸Á¶Ã¼ sock* mroute_socketÀÌ MRT_INIT À» ¼ö½ÅÇÑ 
¼ÒÄÏÀ» °¡¸®Å°°Ô µÈ´Ù. ¸¸ÀÏ MRT_INIT À» ¹ßÇàÇßÀ»¶§ mroute_socketÀÌ ³Î(null)°ªÀ» 
°¡ÁöÁö ¾Ê´Â´Ù¸é ÀÌ¹Ì ´Ù¸¥ mrouted°¡ ÀÛµ¿ÁßÀÓÀ» ÀÇ¹ÌÇÏ¹Ç·Î -EADDRINUSE À» 
¹Ý³³ÇÑ´Ù.               ³ª¸ÓÁö    ´Ù¸¥     ¸í·Éµé(MRT_DONE,    MRT_ADD_VIF,    
MRT_DEL_VIF, MRT_ADD_MFC, MRT_DEL_MFC and MRT_ASSERT)Àº 
mroute_socket°ú ´Ù¸¥ ¼ÒÄÏ¿¡¼­ ¿Ã °æ¿ì -EACCES ¸¦ ¹Ý³³ÇÑ´Ù. 

¶ó¿ìÆÃµÈ ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ±×·¥Àº ¹°¸®Àû ÀÎÅÍÆäÀÌ½º È¤Àº  (°¡»óÀûÀÎ) ÅÍ³ÎÀ» ÅëÇØ 
Àü¼ÛÇÏ±â ¶§¹®¿¡, ÀÏ¹ÝÀûÀÎ Ãß»óÈ­(abstraction) ´Ü°è¸¦ VIFs,  Áï, °¡»ó ÀÎÅÍÆäÀÌ½º (Virtual 
InterFaces)°í¾ÈÇØ³Â´Ù. mrouted´Â ¹°¸® È¤Àº ÅÍ³Î ÀÎÅÍÆäÀÌ½º¸¦  °¡¸®Å°´Â vif ±¸Á¶Ã¼¸¦ 
¶ó¿ìÆÃ  Å×ÀÌºí¿¡ Ãß°¡ÇÏ±â À§ÇÏ¿© Ä¿³Î¿¡ ³Ñ°ÜÁÖ°í, µ¥ÀÌÅÍ±×·¥À» ¾îµð·Î Æ÷¿öµùÇÒÁö 
¾Ë·ÁÁÖ´Â ¸ÖÆ¼Ä³½ºÆ® Æ÷¿öµù ¸ñ·Ï(multicast forwarding entries)¿¡µµ ¾Ë·ÁÁØ´Ù.

VIFs ´Â MRT_ADD_VIF ·Î Ãß°¡ÇÏ°í MRT_DEL_VIF ·Î  »èÁ¦ÇÑ´Ù.µÎ ÇÔ¼ö ¸ðµÎ vifctl 
±¸Á¶Ã¼¸¦ Ä¿³Î·Î ³Ñ±ä´Ù.
( /usr/include/linux/mroute.h) ¿¡¼­ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ°í ÀÖ´Ù.

<code>
  struct vifctl {
          vifi_t  vifc_vifi;              /* Index of VIF */
          unsigned char vifc_flags;       /* VIFF_ flags */
          unsigned char vifc_threshold;   /* ttl limit */
          unsigned int vifc_rate_limit;   /* Rate limiter values (NI) */
          struct in_addr vifc_lcl_addr;   /* Our address */
          struct in_addr vifc_rmt_addr;   /* IPIP tunnel addr */
  };
</code>

ÀÌ Á¤º¸¸¦ ÅëÇØ vif_device ±¸Á¶Ã¼¸¦ ¸¸µç´Ù.

<code>
  struct vif_device
  {
          struct device   *dev;                   /* Device we are using */
          struct route    *rt_cache;              /* Tunnel route cache */
          unsigned long   bytes_in,bytes_out;
          unsigned long   pkt_in,pkt_out;         /* Statistics */
          unsigned long   rate_limit;             /* Traffic shaping (NI) */
          unsigned char   threshold;              /* TTL threshold */
          unsigned short  flags;                  /* Control flags */
          unsigned long   local,remote;           /* Addresses(remote for tunnels)*/
  };
</code>

ÀÌ      ±¸Á¶Ã¼¿¡¼­     dev      Ç×¸ñÀ»     ÁÖ¸ñÇÏ¶ó.      device      ±¸Á¶Ã¼´Â 
/usr/include/linux/netdevice.h ¿¡¼­ Á¤ÀÇÇÏ°í ÀÖ´Ù. ¾ÆÁÖ Å« ±¸Á¶Ã¼ÀÌÁö¸¸ ¿ì¸®´Â ´ÙÀ½ 
ÇÊµå¿¡¸¸ °ü½ÉÀ» µÎ¸é µÈ´Ù.

struct ip_mc_list*    ip_mc_list;   /* IP multicast filter chain    */

ip_mc_list ±¸Á¶Ã¼´Â /usr/include/linux/igmp.h¿¡¼­ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ°í ÀÖ´Ù. :

<code>
  struct ip_mc_list
  {
          struct device *interface;
          unsigned long multiaddr;
          struct ip_mc_list *next;
          struct timer_list timer;
          short tm_running;
          short reporter;
          int users;
  };
</code>

dev ±¸Á¶Ã¼ÀÇ  ip_mc_list ´Â ip_mc_list Çü ±¸Á¶Ã¼ÀÇ  ¿¬°á¸®½ºÆ®¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÌ´Ù. 
ip_mc_list ´Â ÇØ´ç ³×Æ®¿÷ ÀÎÅÍÆäÀÌ½º°¡ ¸â¹ö·Î Âü¿©ÇÏ°í ÀÖ´Â ¸ÖÆ¼Ä³½ºÆ® ±×·ìÀ» 
´ã°íÀÖ´Ù. ¿©±â¼­ ´Ù½Ã ÇÑ¹ø, È¸¿øÀº ÀÎÅÍÆäÀÌ½º¿Í °ü°è°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. 
LINUX/net/ipv4/ip_input.c ´Â µ¥ÀÌÅÍ±×·¥ÀÌ (µ¥ÀÌÅÍ±×·¥À» ¼ö½ÅÇÑ ÀÎÅÍÆäÀÌ½º°¡ ¼ÓÇÏ´Â 
±×·ì °¡¿îµ¥) ¾î¶² ±×·ì¿¡ ¼ÓÇÑ °ÍÀÎÁö °áÁ¤ÇÏ±â À§ÇØ ÀÌ ¿¬°á¸®½ºÆ®¸¦ ¼øÈ¸ÇÑ´Ù.

<code>
  #ifdef CONFIG_IP_MULTICAST
                  if(!(dev->flags&amp;IFF_ALLMULTI) && brd==IS_MULTICAfST
                     &amp;&amp; iph->daddr!=IGMP_ALL_HOSTS
                     &amp;&amp; !(dev->flags&amp;IFF_LOOPBACK))
                  {
                          /*
                           *      Check it is for one of our groups
                           */
                          struct ip_mc_list *ip_mc=dev->ip_mc_list;
                          do
                          {
                                  if(ip_mc==NULL)
                                  {
                                          kfree_skb(skb, FREE_WRITE);
                                          return 0;
                                  }
                                  if(ip_mc->multiaddr==iph->daddr)
                                          break;
                                  ip_mc=ip_mc->next;
                          }
                          while(1);
                  }
  #endif
</code>

ip_mc_list±¸Á¶Ã¼¿¡¼­ users ÇÊµå´Â "IGMP ¹öÀü 1"¿¡¼­ ¼³¸íÇß´ø °ÍÀ» ±¸ÇöÇÏ±â À§ÇØ 
»ç¿ëÇÑ´Ù. ÇÁ·Î¼¼½º°¡ ±×·ì¿¡ Âü¿© ÇÒ¶§, ÀÎÅÍÆäÀÌ½º°¡ ÀÌ¹Ì  ±× ±×·ìÀÇ È¸¿øÀÌ¶ó¸é (´Ù½Ã 
¸»ÇØ¼­, µ¿ÀÏ ÀÎÅÍÆäÀÌ½º·Î µ¿ÀÏ ±×·ì¿¡ Âü¿©ÇÑ ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ÀÖÀ¸¸é) ¸â¹ö ¼ö(users)¸¸ 
Áõ°¡½ÃÅ²´Ù.  IGMP ¸Þ½ÃÁö¸¦ º¸³»Áö ¾ÊÀ½À», ´ÙÀ½ ÄÚµå¿¡¼­ º¼ ¼ö ÀÖ´Ù. 
(ip_mc_inc_group()      ¿¡¼­       °¡Á®¿ÔÀ¸¸ç,      ip_mc_join_group()       ¿Í 
LINUX/net/ipv4/igmp.c¿¡¼­ È£ÃâÇÑ´Ù.)

<code>
          for(i=dev->ip_mc_list;i!=NULL;i=i->next)
          {
                  if(i->multiaddr==addr)
                  {
                          i->users++;
                          return;
                  }
          }
</code>

¸â¹ö°¡ Å»ÅðÇÒ ¶§ Ä«¿îÅÍ¸¦ °¨¼ÒÇÏ¸ç, Ä«¿îÅÍ°¡ 0¿¡  ´Ù´Ù¶úÀ» ¶§¿¡¸¸ ºÎ°¡ÀûÀÎ ÀÛ¾÷À» 
¼öÇàÇÑ´Ù. (ip_mc_dec_group()).

MRT_ADD_MFC ¿Í MRT_DEL_MFC ´Â  ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÆÃ Å×ÀÌºí¿¡¼­  Æ÷¿öµù Ç×¸ñÀ» 
¼ºÁ¤ÇÏ°Å³ª »èÁ¦ÇÑ´Ù. µÑ    ´Ù    mfcctl    ±¸Á¶Ã¼¸¦    ´ÙÀ½     Á¤º¸¿Í    ÇÔ²²    
Ä¿³Î·Î    ³Ñ±ä´Ù. (/usr/include/linux/mroute.h ¿¡¼­ Á¤ÀÇ)

<code>
  struct mfcctl
  {
          struct in_addr mfcc_origin;             /* Origin of mcast      */
          struct in_addr mfcc_mcastgrp;           /* Group in question    */
          vifi_t  mfcc_parent;                    /* Where it arrived     */
          unsigned char mfcc_ttls[MAXVIFS];       /* Where it is going    */
  };
</code>

ÀÌ»óÀÇ Á¤º¸¸¦ °¡Áö°í, ipmr_forward() ´Â  VIFs¸¦ "µ¹¾Æ´Ù´Ñ´Ù". ±×¸®°í ÀÏÄ¡ÇÏ´Â Æ÷¿öµù 
Ç×¸ñÀ» ¹ß°ßÇÏ¸é µ¥ÀÌÅÍ±×·¥À» º¹»çÇÏ¿© ipmr_queue_xmit()À» È£ÃâÇÑ´Ù. ±×·¯¸é, 
ipmr_queue_xmit() Àº ÆÐÅ¶À» ÅÍ³ÎÀ» ÅëÇØ º¸³¾ °æ¿ì ¶ó¿ìÆÃ Å×ÀÌºí¿¡ ¸í½Ã µÃ Ãâ·ÂÀåÄ¡¿Í 
¸ñÀûÁö ÁÖ¼Ò¸¦ ÀÌ¿ëÇØ  Àü¼ÛÇÑ´Ù. (Áï, ¹Ý´ëÆí ÅÍ³Î Á¾´ÜÀÇ À¯´ÏÄ³½ºÆ® ÁÖ¼Ò) ÇÔ¼ö 
ip_rt_event() ´Â(Ãâ·Â°ú Á÷Á¢ÀûÀÎ  °ü·ÃÀº ¾øÁö¸¸ ip_output.c ¿¡  µé¾î ÀÖ´Ù.) ÀåÄ¡ È°¼ºÈ­ 
¸Þ½ÃÁö °°Àº ³×Æ®¿÷ ÀåÄ¡ °ü·ÃµÈ ÀÌº¥Æ®(event)¸¦ ¹Þ´Â´Ù. ÀÌ ÇÔ¼ö´Â ÀåÄ¡°¡ ÀüÃ¼ È£½ºÆ® 
±×·ì¿¡ Âü¿©ÇÏ´Â °ÍÀ» º¸ÁõÇÑ´Ù.

IGMP ÇÔ¼öµéÀº LINUX/net/ipv4/igmp.c ¿¡¼­ ±¸ÇöÇÑ´Ù.  ÀÌ ÇÔ¼öµé¿¡ °üÇÑ Áß¿äÇÑ Á¤º¸´Â 
/usr/include/linux/igmp.h ¿Í /usr/include/linux/mroute.h  ¿¡   ÀÖ´Ù.  /proc/net   ÀÇ  
IGMP   °ü·Ã  Ç×¸ñÀº LINUX/net/ipv4/ip_output.c¿¡ ÀÖ´Â ip_init() ¿¡¼­ ¸¸µç´Ù.

<sect>¶ó¿ìÆÃ Á¤Ã¥°ú Æ÷¿öµù ±â¼ú<p>
º°·Î ÁÁÁö ¾ÊÀº ¾Ë°í¸®ÁòÀº ¸ÖÆ¼Ä³½ºÆ® µ¥ÀÌÅÍ ¼ö½Å ÀÇ»ç¿Í »ó°ü¾øÀÌ Àü ¼¼°è·Î Æ®·¡ÇÈÀ» 
³»º¸³½´Ù. ÀÌ·± ÃÖÀûÈ­ µÇÁö ¾ÊÀº ¾Ë°í¸®ÁòÀ» ´ë½ÅÇÒ ¸î °¡Áö Æ÷¿öµù ±â¼ú°ú ¶ó¿ìÆÃ 
¾Ë°í¸®ÁòÀÌ °³¹ßµÇ¾ú´Ù.

°Å¸® º¤ÅÍ   ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÆÃ  ÇÁ·ÎÅäÄÝ DVMRP   (Distance Vector  Multicast 
Routing Protocol) ´Â ¾Æ¸¶µµ ¿À´Ã³¯ ¸ÖÆ¼Ä³½ºÆ® ¶ó¿ìÅÍ ´ëºÎºÐÀÌ »ç¿ëÇÏ°í ÀÖ´Â  
¾Ë°í¸®ÁòÀÏ °ÍÀÌ´Ù. ÀÌ°ÍÀº °í¹ÐµµÇü(dense mode) ¶ó¿ìÆÃ ÇÁ·ÎÅäÄÝ, Áï, ³ôÀº ´ë¿ªÆø¿¡ 
¸â¹öµéÀÌ °í¹Ðµµ·Î ºÐ»êµÇ¾îÀÖ´Â  ÀÖ´Â È¯°æ¿¡¼­ Àß ÀÛµ¿ÇÑ´Ù. ÇÏÁö¸¸, ¸â¹öµéÀÌ ³·Àº 
¹Ðµµ·Î Èð¾îÁ®ÀÖ´Â °æ¿ì ¹®Á¦(scalability problem)°¡ ÀÖ´Ù.

DVMRP °°Àº °í¹ÐµµÇü ¶ó¿ìÆÃ ÇÁ·ÎÅäÄÝ·Î ¸ÖÆ¼Ä³½ºÆ® È®ÀåÇü ÃÖ´Ü°Å¸® ¿ì¼± ÇÁ·ÎÅäÄÝ 
MOSPF (Multicast Extensions to OSPF -Open Shortest Path First-)
, ÇÁ·ÎÅäÄÝ µ¶¸³Çü  °íÁýÀû ¸ÖÆ¼Ä³½ºÆ® PIM-DM  (Protocol-Independent Multicast Dense 
Mode) ±×¸®°í Áß½É ±â¹Ý Æ®¸® CBT (Core Based Trees) °¡ ÀÖ´Ù.

OSPF ¹öÀü 2 ´Â RFC 1583 , MOSPF ´Â RFC  1584 , PIM-SM °ú CBT ´Â °¢°¢ RFC 
2117 °ú 2201 ÀÌ ±Ô°ÝÀ» ¸í½ÃÇÏ°í ÀÖ´Ù.

ÀÌ ¸ðµç   ¶ó¿ìÆÃ ÇÁ·ÎÅäÄÝµéÀº   flooding, Reverse   Path Broadcasting   (RPB), 
Truncated Reverse Path
Broadcasting (TRPB), Reverse Path Multicasting  (RPM) or Shared Trees  °°Àº 
¸ÖÆ¼Ä³½ºÆ® Æ÷¿öµù ±â¼úÀ» »ç¿ëÇÑ´Ù.

³»¿ëÀÌ ³Ê¹« ±æ¾îÁö¹Ç·Î ÀÌ ¸ðµç °ÍµéÀ» ¿©±â¼­ ¼³¸íÇÏÁö´Â ¾Ê°Ú´Ù. ÀÌ°Íµé¿¡ ´ëÇÑ ÇØ¼³Àº 
½±°Ô Ã£¾Æº¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. draft-ietf-mboned-in.txt ¹®¼­¸¦ ÀÐ¾î  º¼ °ÍÀ» ±ÇÇÑ´Ù. À§ÀÇ 
RFC µéÀÌ ÀÖ´Â °÷¿¡ °°ÀÌ ÀÖÀ» °ÍÀÌ¸ç, »ó±âÇÑ ±â¼ú°ú Á¤Ã¥µé¿¡ ´ëÇÑ ¾à°£ ÀÚ¼¼ÇÑ ³»¿ëÀ» 
´ã°íÀÖ´Ù.

<sect>¸ÖÆ¼Ä³½ºÆ® Æ®·£½ºÆ÷Æ® ÇÁ·ÎÅäÄÝ<p>

Áö±Ý±îÁö UDP¸¦ ÀÌ¿ëÇÑ ¸ÖÆ¼Ä³½ºÆ® Àü¼Û¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. TCP¿¡¼­´Â ºÒ°¡´ÉÇÏ±â 
¶§¹®¿¡ ÀÌ»óÀÌ ÀÏ¹ÝÀûÀÎ ³»¿ëÀÌ´Ù. ±×·¸Áö¸¸, Á»´õ »õ·Î¿î ¸ÖÆ¼Ä³½ºÆ®  Æ®·£½ºÆ÷Æ® 
ÇÁ·ÎÅäÄÝ (Multicast Transport Protocols) À» ¸¸µé¾î³»±â  À§ÇØ Áö³­ ¸î ³â°£ ÁýÁßÀûÀÎ 
¿¬±¸°¡ °è¼ÓµÇ°í ÀÖ´Ù.

»õ·Î °³¹ßµÈ ÇÁ·ÎÅäÄÝ °¡¿îµ¥ ¸î °¡Áö´Â ±¸Çö ´Ü°è¸¦ °ÅÃÄ Å×½ºÆ® ´Ü°è±îÁö ÀÌ¸£°í ÀÖ´Ù. 
¸ðµç ÇüÅÂÀÇ ÀÀ¿ë¿¡ ÀûÇÕÇÑ ÀÏ¹ÝÀûÀÎ ¸ÖÆ¼Ä³½ºÆ® Æ®·£½ºÆ÷Æ® ÇÁ·ÎÅäÄÝÀº Á¸ÀçÇÏÁö ¾Ê´Â´Ù´Â 
°ÍÀÌ, ¿¬±¸¸¦ ÅëÇØ ¹àÇôÁö´Â °Í °°´Ù.

¾ÆÁÖ º¹ÀâÇÏ°í Á¶Á¤ÇÏ±â ¾î·Á¿î ÇÁ·ÎÅäÄÝ¿¡¼­ ´ÙÀ½°ú  °°Àº ¹®Á¦µéÀ» »ý°¢ÇØ º¸ÀÚ. 
Áö¿¬(¸ÖÆ¼¹Ìµð¾î È¸ÀÇ¿¡¼­), ÀÚ·á ¼Õ½Ç, ÆÐÅ¶ Á¤·Ä(ordering), ÀçÀü¼Û, Èå¸§ ¹× È¥Àâµµ Á¶Á¤, 
±×·ì °ü¸® µî.....°Ô´Ù°¡ ¼ö½ÅÀÚ°¡ ÇÏ³ª°¡ ¾Æ´Ï¶ó ¼ö¹é ¼öÃµ °³ÀÇ Àú¹Ðµµ ºÐ»ê 
È£½ºÆ®µéÀÌ¶ó¸é...ÀÌ·± °æ¿ì¿¡ Á¶Á¤¿¡ Å« °ï¶õÀ» °ÞÀ» °ÍÀÌ´Ù. µû¶ó¼­, ¼ö½ÅÇÑ ¸ðµç ÆÐÅ¶¿¡ 
´ëÇØ ¼ö½Å È®ÀÎ(ACKs)À» º¸³»´Â ´ë½Å, ¼ö½ÅÇÏÁö ¸øÇÑ ÆÐÅ¶¿¡ ´ëÇØ¼­¸¸ ¼ö½Å ºÒ·® 
½ÅÈ£(NACKs)¸¦ º¸³»´Â ½ÄÀÇ ¾Ë°í¸®ÁòÀ»  °³¹ßÇÑ´Ù. RFC 1458 ÀÌ ¸ÖÆ¼Ä³½ºÆ® ÇÁ·ÎÅäÄÝ 
¿ä±¸»çÇ×À» Á¦¾ÈÇÏ°í ÀÖ´Ù.

¸ÖÆ¼Ä³½ºÆ® ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ÇØ¼³Àº ¹®¼­ÀÇ ¹üÀ§¸¦ ³Ñ±â ¶§¹®¿¡ ´õ ÀÌ»ó ¼³¸íÇÏÁö 
¾ÊÀ» °ÍÀÌÁö¸¸, ´ë½Å, ÇÁ·ÎÅäÄÝ ÀÌ¸§°ú ÀÚ·á¸¦ Ã£¾Æ º¼ ¼ö ÀÖ´Â ¿äÁ¡¸¸ Â¤°í ³Ñ¾î°¡µµ·Ï 
ÇÏ°Ú´Ù. Real-Time Transport Protocol  (RTP) Àº ºÐ»êÇü ¸ÖÆ¼¹Ìµð¾î È¸ÀÇ(multi-partite 
multimedia conferences)¿Í °ü·Ã ÀÖÀ¸¸ç, Scalable Reliable Multicast (SRM) Àº wb (the 
distributed White-Board tool,  see section ``Multicast applications'')°¡ »ç¿ëÇÑ´Ù. Uniform 
Reliable  Group Communication Protocol (URGC) Àº Áß¾Ó ÁýÁß½Ä Á¦¾î¿¡¼­ ÀÚ·á 
Ã³¸®(transaction) °¡ ½Å·ÚÀûÀÌ¸ç Á¤¿¬È÷ ÀÌ·ç¾îÁú ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù. Muse ´Â MBone 
¿¡¼­ ´º½º¸¦ Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï Æ¯Á¤ ÇÁ·Î±×·¥¿ëÀ¸·Î °í¾ÈµÈ °ÍÀÌ¸ç, Multicast File 
Transfer Protocol (MFTP) Àº ¹®ÀÚ ±×´ë·Î ÆÄÀÏ  Àü¼Û°úÁ¤  È¸ÀÇ¿¡  Âü¿©ÇÏµíÀÌ  Âü¿©  
ÇÒ¼ö  ÀÖµµ·Ï  ÇØÁÖ´Â   ÇÁ·ÎÅäÄÝÀÌ´Ù. Log-Based Receiver-reliable Multicast (LBRM) Àº 
±â·Ï ¼­¹ö(logging server) ·Î º¸³»Áö´Â ¸ðµç ÆÐÅ¶À» ÃßÀûÇÏ¿© Àü¼ÛÃø¿¡ µ¥ÀÌÅÍ¸¦ ´Ù½Ã 
Àü¼ÛÇØ¾ßÇÏ´ÂÁö ¾Æ´Ï¸é ÀÌ»ó ¾øÀÌ ¼ö½ÅµÇ¾ú´ÂÁö ¾Ë·ÁÁÖ´Â Æ¯ÀÌÇÑ ÇÁ·ÎÅäÄÝÀÌ´Ù. ¶Ç ÇÑ°¡Áö, 
¸ÖÆ¼Ä³½ºÆ®  ÇÁ·ÎÅäÄÝÀÌ¸é¼­ STORM (STructure-Oriented Resilient Multicast)ÀÌ¶ó´Â 
Àç¹ÌÀÖ´Â ÀÌ¸§À» °¡Áø ÇÁ·ÎÅäÄÝµµ ÀÖ´Ù. À¥À» Ã£¾Æº¸¸é ÀÌ ¿Ü¿¡´Ù ¸¹Àº ¸ÖÆ¼Ä³½ºÆ® 
ÇÁ·ÎÅäÄÝÀÌ ÀÖÀ¸¸ç ¸ÖÆ¼Ä³½ºÆ®¸¦ ÀÌ¿ëÇØ »õ·Î¿î ÀÏµéÀ» ¹úÀÌ·Á´Â  Àç¹ÌÀÖ´Â ³»¿ëÀÇ ±Ûµéµµ 
¸¹´Ù.(¿¹¸¦ µé¾î, ¸ÖÆ¼Ä³½ºÆ®¸¦ ÀÌ¿ëÇÑ À¥ ÆäÀÌÁö ÀÚµ¿ Àü¼Û °°Àº °Í)

¸ÖÆ¼Ä³½ºÆ® ÇÁ·ÎÅäÄÝ°£ÀÇ ½Å·Ú¼ººñ±³´Â
<url url="http://www.tascnets.com/mist/doc/mcpCompare.html">À» Âü°íÇÏ¶ó.

¸ÖÆ¼Ä³½ºÆ®¿Í °ü·ÃÇÑ Èï¹Ì·Î¿î ¸µÅ©µé°ú ÃÖ½Å Á¤º¸(ÀÎÅÍ³Ý ÃÊ¾È, RFC, ³í¹®, ¸µÅ©)°¡ 
°¡µæÇÑ ¾ÆÁÖ ÁÁÀº »çÀÌÆ®´Ù.
<url url="http://research.ivv.nasa.gov/RMP/links.html">

¿©±âµµ ÁÁÀº Á¤º¸°¡ ¸¹´Ù. <url url="http://hill.lut.ac.uk/DS-Archive/MTP.html">

Katia ObraczkaÀÇ &quot;Multicast Transport Protocols: A Survey and Taxonomy&quot; 
¶ó´Â ±ÛÀº °¢ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» ÇÏ°í ±â´É»ó  Â÷ÀÌÁ¡À¸·Î ºÐ·ùÇÏ°í ÀÖ´Ù. ÀÌ 
±ÛÀº IEEE Communications magazine, January 1998, vol. 36, No. 1. ¿¡µµ ½Ç·ÁÀÖ´Ù.

<sect>Âü°í ÀÚ·á<p>
<sect1>RFC ¹®¼­<p>
<itemize>
<item>RFC 1112 "Host Extensions for IP Multicasting".  Steve Deering. August 
1989.
<item>RFC 2236 "Internet  Group Management Protocol,  version 2". W.Fenner.   
November 1997.
<item>RFC 1458   "Requirements for   Multicast Protocols".   Braudes, R  and   
Zabele, S.  May 1993.
<item>RFC 1469  "IP Multicast  over Token-Ring  Local Area   Networks". T. 
Pusateri.  June 1993.
<item>RFC 1390 "Transmission of IP and ARP over FDDI Networks". D. Katz.  
January 1993.
<item>RFC 1583 "OSPF Version 2". John Moy. March 1994.
<item>RFC 1584 "Multicast Extensions to OSPF". John Moy. March 1994.
<item>RFC 1585 "MOSPF: Analysis and Experience". John Moy. March 1994.
<item>RFC 1812 "Requirements for IP  version 4 Routers". Fred  Baker, Editor. 
June 1995
<item>RFC 2117 "Protocol Independent Multicast-Sparse Mode (PIM-SM):
 Protocol Specification". D. Estrin, D. Farinacci, A. Helmy, D.
 Thaler; S. Deering, M. Handley, V. Jacobson, C. Liu,  P. Sharma, and L. Wei. July 
1997.
<item>RFC 2189 "Core Based Trees  (CBT version 2) Multicast  Routing".  A. 
Ballardie. September 1997.
RFC 2201  "Core Based   Trees (CBT) Multicast   Routing Architecture". A.  Ballardie. 
September 1997.
</itemize>

<sect1>ÀÎÅÍ³Ý ÃÊ¾È(draft)<p>
<itemize>
<item>"Introduction   to   IP   Multicast   Routing".   draft-ietf-mboned-intro- 
multicast- 03.txt. T. Maufer, C. Semeria. July 1997.
<item>"Administratively    Scoped    IP    Multicast". 
draft-ietf-mboned-admin-ip-space-03.txt. D. Meyer. June 10, 1997.
</itemize>

<sect1>À¥ ÆäÀÌÁö<p>
<itemize>
<item>Linux      Multicast      Homepage.      <url 
url="http://www.cs.virginia.edu/~mke2e/multicast.html">
<item>Linux    Multicast     FAQ.    <url 
url="http://andrew.triumf.ca/pub/linux/multicast-FAQ">
<item>Multicast    and    MBONE    on    Linux.<url 
url="http://www.teksouth.com/linux/multicast/">
<item>Christian   Daudt's   MBONE-Linux    Page. <url 
url="http://www.microplex.com/~csd/linux/mbone.html">
<item>Reliable     Multicast     Links   <url 
url="http://research.ivv.nasa.gov/RMP/links.html">
<item>Multicast    Transport     Protocols  <url 
url="http://hill.lut.ac.uk/DS-Archive/MTP.html">
</itemize>

<sect1>Âü°í ¼­Àû<p>
<itemize>
<item>"TCP/IP Illustrated: Volume 1 The Protocols". Stevens, W. Richard.
     Addison Wesley Publishing Company, Reading MA, 1994
<item>"TCP/IP Illustrated: Volume 2, The Implementation". Wright, Gary
     and W. Richard Stevens. Addison Wesley Publishing Company, Reading MA, 1995
<item>"UNIX Network Programming Volume 1. Networking APIs: Sockets and
     XTI". Stevens, W. Richard. Second Edition, Prentice Hall, Inc. 1998.
<item>"Internetworking with TCP/IP Volume 1 Principles, Protocols, and
     Architecture". Comer, Douglas E. Second Edition, Prentice Hall,
     Inc.  Englewood Cliffs, New Jersey, 1991
</itemize>

<sect>ÀúÀÛ±Ç°ú Ã¥ÀÓ ÇÑ°è °íÁö<p>
Copyright 1998 Juan-Mariano de Goyeneche.

ÀÌ ÇÏ¿ìÅõ ¹®¼­´Â Free Software Foundation¿¡¼­ ¼±¾ðÇÑ
GNU General Public License ¹öÀü 2 ¶Ç´Â, ÃÖ½Å ¹öÀüÀÇ License¿¡ µû¶ó ÀÚÀ¯·Ó°Ô Àç ¹èÆ÷ÇÒ
¼ö ÀÖÀ¸¸ç ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.

ÀÌ ¹®¼­°¡ ¿©·¯¹®¿¡°Ô µµ¿òÀÌ µÇ±â¸¦ ¿øÇÏ´Â ÀÇµµ¿¡¼­ ¹èÆ÷ ÇÏ¿´Áö¸¸. ¾î¶°ÇÑ º¸Áõµµ ÇÏÁö
¾Ê´Â´Ù.ÀÚ¼¼ÇÑ »çÇ×Àº GNU General Public License¸¦ Âü°í ÇÏ¶ó.


GNU General Public License´Â ¾Æ·¡ ÁÖ¼Ò·Î ÆíÁö¸¦ º¸³»¸é ¾òÀ» ¼ö ÀÖ´Ù.

The Free Software Foundation, 
59 Temple Place -  Suite 330, Boston, MA 02111-1307, USA 

ÀÌ ¹®¼­¸¦ CD-ROMÀÌ³ª ´Ù¸¥ ¸ÅÃ¼¿¡ ¼ö·ÏÇÏ¿© ¹èÆ÷ÇÒ °æ¿ì ÀúÀÚ¿¡°Ô »çº»À» º¸³»ÁÖ¸é
°í¸¿°Ú´Ù. GNU/Linux ¹®¼­È­¸¦ À§ÇØ Linux Documentation Project ³ª Free Software
Foundation¿¡ ¿©·¯ºÐÀÇ µµ¿òÀ» ÁÖ±â¹Ù¶õ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Linux HOWTO °ü¸®ÀÚ, Tim
Bynum <url url="linux-howto@sunsite.unc.edu">¿¡°Ô ¹®ÀÇÇÏ¸é µÈ´Ù.

<sect>°¨»çÀÇ ±Û<p>
ÀÌ°÷Àº ³»°¡ °¨»çµå¸± »ç¶÷À» ¹àÈú ÁÁÀº ±âÈ¸ÀÎ°Í °°´Ù. ÀÌ ÀåÀÇ ³»¿ëÀÌ ´Ù¼Ò Ä¿Áú°Í
°°´Ù..... ¾îÂ·µç ÀÌ°÷Àº-Àû¾îµµ ³»°ÔÀÖ¾î¼­-ÀÌ ¹®¼­¿¡¼­ °¡Àå Áß¿äÇÑ ºÎºÐÀÌ´Ù.

¿ì¼±, Elena Apolinario Fernandez de Sousa (Elena°¡ ÀÌ¸§,³ª¸ÓÁö°¡ ¼ºÀÌ´Ù ;-) )¿¡°Ô
°¨»çµå¸®°í ½Í´Ù. ¿ì¸® ºÎ¼­¸¦ MBone°ú ¿¬°áÇÏ´Â °úÁ¤, ±×¸®°í ¿ì¸®°¡ ¸ÖÆ¼Ä³½ºÆ® ÅÍ³Î¿ëÀ¸·Î
Á¦ÀÛÇÑ CSCV ¼ÒÇÁÆ®¿þ¾î¸¦ µð¹ö±ëÇÏ´Â °úÁ¤¿¡¼­ ±×³à¿Í ÇÔ²² ÀÏÇÏ¸ç
¾òÀº ¸ðµç Áö½ÄÀ» ÀÌ ¹®¼­¿¡ ¹Ý¿µÇÏ·Á°í ³ë·ÂÇÏ¿´´Ù. ±×³à´Â ³×Æ®¿÷ ¹®Á¦¸¦ Ã£¾Æ³» ÇØ°áÇÏ°í
Ä¿³ÎÀÇ ¹ö±×¸¦ ¼öÁ¤ÇÏ´Âµ¥ ¸¹Àº µµ¿òÀ» ÁÖ¾úÀ¸¸ç, °è¼ÓµÇ´Â ¹ö±×¿ÍÀÇ ½Î¿ò¿¡¼­µµ 
À¯¸Ó°¨°¢À» ÀÒÁö ¾Ê¾Ò´Ù. ¶Ç, ±×³à´Â ÀÌ¹®¼­ÀÇ ÃÊ¾ÈÀ» ÀÐ°í ¼öÁ¤ÇØ ÁÖ¾úÀ¸¸ç Áß¿äÇÑ
Á¦¾ÈÀ» ÇØ ÁÖ¾ú´Ù. ÀÌ ¹®¼­°¡ »ç¶÷µé¿¡°Ô µµ¿òÀÌ µÇ¾ú´Ù¸é »ó´çºÎºÐ ±×³à ´öºÐÀÏ °ÍÀÌ´Ù.
°í¸¶¿ö, Elena!

¾ó¸¶ ±æÁö ¾ÊÀº ÀÎ»ýÀÌÁö¸¸ ³» »ý¾Ö¿¡¼­ Á¤¸» ¿î ÁÁ´Ù°í »ý°¢ÇÏ´Â °ÍÀº,
ÀÚ±â ½Ã°£À» ÂÉ°³¼­ ÀÌ·± »õ·Î¿î °ÍÀ» ¹è¿ì´Â ³²À» µ½°í ±× ÀÚÃ¼¸¦ ÁÁ¾ÆÇÏ´Â
»ç¶÷µéÀ» ¸¸³µ´Ù´Â °ÍÀÌ´Ù. ±×ºÐµéÀº ÀÚ½ÅÀÌ ÀÌ¹Ì ¾Æ´Â °ÍÀ» ¼³¸íÇØÁÖ¾úÀ¸¸ç
±× »Ó¸¸ ¾Æ´Ï¶ó Ã¥À» ºô·ÁÁÖ°í ÀÚ·á¿Í ¼³ºñ¸¦ °øÀ¯ÇØ ÁÖ¾ú´Ù. ³ª´Â ÀÌ·± ºÐµéÀ» ¸¹ÀÌ ¾Ë°í ÀÖÀ¸¸ç
±×ºÐµé¿¡°Ô °¨»çÀÇ ¶æÀ» ÀüÇÏ°íÀÚ ÇÑ´Ù.

Pablo Basterrechea´Â ³»°¡ ÀÎÅÍ³Ý ÃÊº¸ÀÚÀÏ¶§ ¸¹Àº ¹®¼­µéÀ» ºô·ÁÁÖ¾ú´Ù.
±×ÀÇ Ã¥À¸·Î ¾î¼Àºí¸®¸¦ °øºÎÇÏ°í ±¸Á¶Àû ÇÁ·Î±×·¡¹ÖÀ¸·Î ³ª¾Æ °¥ ¼ö ÀÖ¾ú´Ù.
°í¸¿³×, Pablo.

³»°¡ ´ëÇÐ ½ÅÀÔ»ý¶§ Pepe Mas¾¾°¡ ¸¹Àº µµ¿òÀ» ÁÖ¾ú´Ù. ±×´Â ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀ»
°¡¸£Ä¡´Â ¹®ÀÌ¾ú´Âµ¥, ³ª´Â °ð ±×ºÐÀÇ ¼­°¡¿¡ È¦·Á¹ö·È´Ù. ³»°¡ Ã¥À» Á¦¶§¿¡ Á¦´ë·Î
µ¹·ÁÁÙ °ÍÀÌ¶ó´Â º¸ÁõÀÌ ¾ø¾ú´Âµ¥µµ ÀÌ¸§Á¶Â÷ ¹°¾îº¸Áö ¾Ê°í Á¶°Ç¾øÀÌ Ã¥À» ºô·ÁÁÖ¾ú´Ù.
±× ºÐÀÇ Ã¥ Áï, ComerÀÇ &quot;Internetworking with TCP/IP, Volume 1&quot;À» ¿©¸§ ³»³» 
º¸¸ç Ã³À½À¸·Î TCP/IP¸¦ Á¢Çß´Ù. ÀÌ Ã¥Àº ³»°Ô ¸¹Àº ¿µÇâÀ» ¹ÌÃÆÀ¸¸ç ±× ¿©¸§ ÀÌÈÄ·Î TCP/IP´Â
ÁÖ ºÐ¾ß°¡ µÇ¾ú´Ù.

³»°¡ °¡Àå °¨»çµå·Á¾ß ÇÒ ºÐÀÌ ÀÖ´Ù¸é, ¾ËÆÄºª ¼ø¼­·Î ;-), Jos Manuel °ú Paco Moya
ÀÌ µÎ¸íÀÌ´Ù. ÀÌ µÎ ¸í¿¡°Ô ³ª´Â ±Ã±ÝÇÑ °ÍÀ» °¡Àå ¸¹ÀÌ ¹°¾ú´Ù.(C, C++, Linux, security, 
Web, OSs, signals &amp; systems, electronics, ... ±×¿ÜÀÇ °Íµé ¸ðµÎ!) ³ªÀÇ °è¼ÓµÇ´Â
Áú¹®¿¡µµ ºÒ±¸ÇÏ°í ¾ðÁ¦³ª Ä£ÀýÇÏ°Ô ¾Ë·ÁÁÖ¾ú´Ù.³»°¡ GNU/Linux¸¦ ¾²´Â °Íµµ ±×µé ´öÀÌ¸ç
 Á¤¸»·Î °¨»çµå¸®´Â ºÐµéÀÌ´Ù. 

Igo Mascaraque ¿ª½Ã ÃÊº¸ ½ÃÀý ³ª¸¦ µµ¿Í ÁÖ°í Æ÷±âÇÏÁö ¾Êµµ·Ï ¿ë±â¸¦ ºÏµ¸¾Æ ÁÖ¾ú´Ù. 

Á¦ÀÏ Áß¿äÇÑ ºÎ¸ð´Ô²² °¨»çµå¸®°í ½Í´Ù. ¾ðÁ¦³ª ³»°Ô ÁÁÀº ±âÈ¸¸¦ ÁÖ¼Ì´Ù. Á¤¸»·Î °¨»çµå¸°´Ù.

³»°¡ Ã³À½ ½Ã½ºÅÛ °ü¸®¸¦ µ¶ÇÐ ÇÒ¶§ root ÆÐ½º¿öµå¸¦ ³»°Ô ÁÙ Á¤µµ·Î ³ª¸¦ ¹Ï¾îÁØ
Joaqu Seoane¿¡°Ôµµ °¨»çµå¸°´Ù. ¶Ç, ¿ª½Ã ÀÌ°÷ DIT¿¡¼­ ³»°Ô ÁÁÀº ±âÈ¸¸¦ ¸¸µé¾îÁØ 
Santiago Pav¿¡°Ôµµ °¨»çµå¸°´Ù.

W. Richard Stevens¾¾ÀÇ Ã¥Àº ³»°Ô Á¤¸» °è½Ã¿Íµµ °°Àº Ã¥ÀÌ¾ú´Ù.(ºñ½Ñ°Ô
ÈìÀÌ±ä ÇÏÁö¸¸) ±× ºÐÀÌ È¤½Ã¶óµµ ÀÌ ±ÛÀ» º¸½Å´Ù¸é Á¤¸»·Î °¨»çµå¸®°í ½Í´Ù. ¶Ç, °è¼Ó
ÁýÇÊÇØ ÁÖ½Ã±â¸¦ ºÎÅ¹µå¸°´Ù. ¿ì¸®¿¡°Ô ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

³¡À¸·Î Richard Stallman, Linus Torvalds, Alan Cox, ±× ¿Ü¿¡, ¿ì¸®¿¡°Ô ÀÌ·± ÈÇ¸¢ÇÑ
¿î¿µÃ¼Á¦¸¦ ¾È°ÜÁØ Linux Ä¿³Î ¹× free software °³¹ßÀÚµé¿¡°Ô °¨»çµå¸°´Ù.

´©±º°¡ ÀØÀº°Í °°±ä ÇÏÁö¸¸ ..ÁË¼Û...³»°¡ ±× ºÐµé¿¡°Ô °¨»çÇØÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë°í °è½Ã¸®¶ó
È®½ÅÇÑ´Ù. 

<sect>¿ªÀÚ ÇÑ¸¶µð<p>
º¸±âº¸´Ù ¸¸¸¸Ä¡ ¾Ê±º¿ä. Æ¯È÷ ¿ë¾î ¼±ÅÃÀÌ ¾î·Á¿ü½À´Ï´Ù. Àß¸øµÈ ºÎºÐÀÌ ÀÖ°Å³ª ´Ù¸¥ ÇÏ°í ½ÍÀº
¸»¾¸ÀÌ ÀÖ´Ù¸é ¸ÞÀÏ ºÎÅ¹µå¸³´Ï´Ù. Á¶¼ÓÇÑ ½ÃÀÏ ³»¿¡ °³Á¤ÇÏµµ·Ï ³ë·ÂÇÏ°Ú½À´Ï´Ù. µµ¿òÀÌ 
µÇ¾ú±â¸¦ ¹Ù¶ó¸é¼­....

</article>
