- °³¿ä
- ±¸Çö
- µ¥ÀÌÅͱ׷¥À» º¸³¾ ¶§ ÇØ¾ßÇÒ ÀÏ
- µ¥ÀÌÅͱ׷¥À» ¹Þ¾ÒÀ» ¶§ ÇØ¾ßÇÒ ÀÏ
- ÁÖ±âÀûÀ¸·Î ó¸®ÇؾßÇÒ ÀÏ
- ºüÁø µ¥ÀÌÅͱ׷¥ÀÎÁö È®ÀÎÇÏ´Â ¹æ¹ý
- ¿¹¿Ü ó¸®
- PEER Áß ¾î´À ÇÑÂÊÀÌ ºñÁ¤»óÀûÀ¸·Î Á¾·áµÈ °æ¿ì
- Á×Àº PEER°¡ »ó´ç½Ã°£ °è¼Ó Á×¾îÀÖ´Â °æ¿ì
- Á×Àº PEER°¡ ´Ù½Ã »ì¾Æ³ °æ¿ì
1 °³¿ä
UDP´Â ¸í½ÃÀûÀÎ ¿¬°áÀÌ ¾ø°í, µ¥ÀÌÅͱ׷¥ ´ÜÀ§·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. È帧 Á¦¾î ¿ª½Ã ¾ø±â ¶§¹®¿¡ Àü¼ÛµÈ µ¥ÀÌÅͰ¡ ¼ø¼´ë·Î, ¹Ýµå½Ã µµÂøÇϸ®¶ó´Â º¸Àåµµ ¾ø´Ù.
´ë½Å ¸í½ÃÀûÀÎ ¿¬°áÀÌ ¾ø±â ¶§¹®¿¡, ´ëµîÇÑ °ü°è, Áï µÎ ÇǾ µ¿½Ã¿¡ ½ÃÀÛÀÌ µÇ´Â °æ¿ì¿¡´Â À¯¿ëÇÒ ¼ö ÀÖ´Ù. TCP °°Àº °æ¿ì¿¡´Â ¾î´À ÇÑÂÊÀÌ ¹Ýµå½Ã ÆÐ½Ãºê ¸ðµå·Î ¸®½º´×À» Çϰí ÀÖ¾î¾ß Çϱ⠶§¹®¿¡, ¾Õ¿¡ ¸»ÇÑ °Í°ú °°Àº °æ¿ì¿¡´Â ¾²±â°¡ ¾Ö¸ÅÇÏ´Ù.
ÇÏÁö¸¸ ±×´ë·Î ¾²±â¿¡´Â È帧 Á¦¾î°¡ ¾ø±â ¶§¹®¿¡ °ï¶õÇÏ´Ù. ±×·¸´Ù°í À̰ÍÀú°Í ´Ù Áý¾î³Ö´Ùº¸¸é UDP¸¦ °¡ÀåÇÑ TCP°¡ µÇ¾î¹ö¸°´Ù. ±×·¡¼ »ý°¢ÇÑ °ÍÀÌ ¼ø¼ÀÇ º¸ÀåÀº Á¦¿ÜÇÏ°í ¹Ýµå½Ã µµÂøÇÑ´Ù´Â °Í¸¸ º¸ÀåÇÏÀÚ´Â °ÍÀ̾ú´Ù.
¹Ýµå½Ã µµÂøÇÏ´Â °ÍÀ» º¸ÀåÇϱâ À§Çؼ´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
- ¼ö½ÅÃø¿¡¼ Áß°£¿¡ ºüÁø ÆÐŶÀ» ¼Û½ÅÃø¿¡°Ô ¿äûÇÑ´Ù.
- ¼ö½ÅÃø¿¡¼ ¹ÞÀº ÆÐŶ¿¡ ´ëÇÑ Á¤º¸¸¦ ¼Û½ÅÃø¿¡°Ô ¾Ë·ÁÁØ´Ù.
¸»Àº µÑÀÌ ºñ½ÁÇØº¸ÀÌÁö¸¸, ±¸Çö ¹æ¹ýÀº »ó´çÈ÷ ´Þ¶óÁø´Ù. ù¹øÂ°´Â ¿¡·¯°¡ ÀÖÀ» °æ¿ì ¹º°¡¸¦ ¿ä±¸ÇÏ´Â °ÍÀ̰í, µÎ¹øÂ° ¹æ¹ýÀº ¿¡·¯°¡ ¾øÀ» °æ¿ì À̰ÍÀ» ¾Ë·ÁÁÖ´Â ¹æ¹ýÀÌ´Ù.
ù¹øÂ° ¹æ¹ý °°Àº °æ¿ì, ¼ö½ÅÃø¿¡¼ ¿ä±¸¸¦ ÇØ¿ÃÁö ¾È ÇØ¿ÃÁö ¾Ë ¼ö°¡ ¾ø±â ¶§¹®¿¡ ÆÐŶÀ» °è¼Ó °¡Áö°í ÀÖ¾î¾ßÇÑ´Ù. Áï ¼Û½ÅÃø¿¡¼ 1,2,3¹ø ÆÐŶÀ» Â÷·Ê´ë·Î º¸³Â´Ù°í ÇÏÀÚ. ¹«»çÈ÷ ¹Þ¾Ò´Ù°í ³¯¾Æ¿À´Â °ÍÀÌ ¾ø±â ¶§¹®¿¡ º¸³½ ÆÐŶÀ» °¡Áö°í ÀÖ¾î¾ßÇÑ´Ù. ¾ðÁ¦ ÀÌ ÆÐŶÀ» »èÁ¦ÇؾßÇϴ°¡¸¦ °áÁ¤ÇÒ ¹æ¹ýÀÌ ¾Ö¸ÅÇÏ´Ù.
µÎ¹øÂ° ¹æ¹ýÀÇ °æ¿ì¿¡´Â ¾ÆÁ÷ ÀÎÁõÀ» ¹ÞÁö¸øÇÑ ÆÐŶ¸¸ °¡Áö°í ÀÖÀ¸¸é µÇ±â ¶§¹®¿¡ ¸Þ¸ð¸®ÀûÀ¸·Î´Â ºÎ´ãÀÌ ´ú µÈ´Ù. ¹æ½Ä ÀÚüµµ ÀÌ°Ô ¿Ç´Ù°í »ý°¢Ç߱⠶§¹®¿¡ ÇöÀç ¶óÀ̺귯¸®¿¡¼ ¼±ÅÃÇÑ ¹æ¹ýÀº µÎ¹øÂ°¿´´Ù.
µ¥ÀÌÅͱ׷¥ÀÇ ±æÀÌ Á¦ÇÑ ¿ª½Ã »ý°¢ÇØ º¼ ¹®Á¦´Ù. ¿¹Àü¿¡ µéÀº °ÍÀε¥, ¶ó¿ìÅ͸¦ °ÅÄ¡´Â µ¥ÀÌÅͱ׷¥ Áß 1500 ¹ÙÀÌÆ®°¡ ³Ñ¾î°¡´Â °ÍÀº Àü¼ÛÀÌ ±ÝÁöµÈ´Ù°í µéÀº ÀûÀÌ ÀÖ´Ù. ÀÚ¼¼È÷ Á¶»çÇØº¸°í´Â ½ÍÁö¸¸ ±ÍÂú´Ù. -_- µ¥ÀÌÅͱ׷¥ÀÇ ±æÀ̰¡ Á¦ÇÑÀÌ µÇ¾î¹ö¸®¸é Á¦ÀÏ ¹®Á¦°¡ µÇ´Â °ÍÀÌ, Á¦ÇÑ ±æÀ̸¦ ³Ñ¾î°¡´Â µ¥ÀÌÅͱ׷¥ÀÇ Á¸Àç´Ù. ÀÌ·± µ¥ÀÌÅͱ׷¥Àº ¼ø¼ º¸ÀåÀ» ÅëÇØ¼ Â÷·Ê´ë·Î ½ÇÇàÇØ¾ß¸¸ Çϱ⠶§¹®ÀÌ´Ù. ±Ùµ¥ ÇöÀç·Î¼´Â ¼ø¼ º¸Àå °èȹÀÌ ¾ø´Ù. °á±¹ ÇϳªÀÇ µ¥ÀÌÅͱ׷¥¿¡ ÇϳªÀÇ ÆÐŶ¸¸ ³Ö°í, ÃÖ´ë ±æÀ̸¦ ³ÑÀ¸¸é ¾î¼Æ®½ÃŰ´Â ¹æ½ÄÀ¸·Î ÇØ°áÇØ³ù´Âµ¥, ÃÖ´ë ±æÀ̸¦ ³Ñ´Â °ÍÀÌ ³ª¿Ã ¶§¿¡´Â...´ëÃ¥¾ø´Ù.
2 ±¸Çö
ÀÏ´Ü ¾ÕÂÊ¿¡¼µµ ¾ð±ÞÇßµíÀÌ ¼ö½ÅÃø¿¡¼ ÆÐŶÀ» ¹Þ¾Ò´Ù°í ¼Û½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ´Â ¹æ½ÄÀ» äÅÃÇϱâ·Î ÇÑ´Ù. ÀÌ ¹æ½ÄÀ» äÅÃÇßÀ» ¶§ ±¸ÇöÇØ¾ß ÇÒ °ÍÀº...
- ´Ù¸¥ ÇǾ°Ô º¸³½ µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ® °ü¸® ±â´É - ÀÎÁõÀ» ¹Þ±â Àü¿¡´Â ¼Û½ÅÇÑ µ¥ÀÌÅͱ׷¥À» »èÁ¦ÇÏÁö ¸»°í, °¡Áö°í ÀÖ¾î¾ßÇÑ´Ù.
- ¼ö½ÅÃøÀÌ ¼Û½ÅÃø¿¡°Ô µ¥ÀÌÅͱ׷¥À» ¹«»çÈ÷ ¹Þ¾Ò´Ù°í ¾Ë·ÁÁÖ´Â ±â´É
- ¹«»çÈ÷ ¹Þ¾Ò´Ù°í ¼ö½Å ÃøÀÌ ¾Ë·Á¿ÔÀ» ¶§, ¼Û½ÅÃø¿¡¼ ÇØ´çÇÏ´Â µ¥ÀÌÅͱ׷¥À» »èÁ¦ÇÒ ¼ö ÀÖ´Â ±â´É
- µ¥ÀÌÅͱ׷¥ÀÌ µµÂøÇßÀ» ¶§, µ¥ÀÌÅͱ׷¥ÀÌ ÀÌ¹Ì ½ÇÇàÇÑ °ÍÀÎÁöÀÇ ¿©ºÎ¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Â ±â´É
- ¼ø¼¸¦ °Ç³Ê¶Ú µ¥ÀÌÅͱ׷¥ÀÌ µµÂøÇßÀ» ¶§, ºüÁø µ¥ÀÌÅͱ׷¥À» ±â¾ïÇØµÎ´Â ±â´É
ÀÌ ¸ðµç °ÍÀÌ °¢°¢ÀÇ ÇǾ´Ù Á¸ÀçÇØ¾ßÇÑ´Ù. TCPÀÇ 1:1 Åë½Å°ú´Â ´Þ¸® UDP´Â ÇϳªÀÇ ¼ÒÄÏÀ» ÅëÇØ¼ ¿©·¯ ÇǾî¿Í Åë½ÅÀ» Çϱ⠶§¹®ÀÌ´Ù. °á±¹ ¾Æ·¡¿Í °°Àº ¸ð¾çÀÇ Å¬·¡½º°¡ Çϳª ³ª¿Â´Ù.
class UDPPeerState
{
// IP + PORTÀÇ ¹®ÀÚ¿ °ªÀ¸·Î¼ ÇǾ ±¸ºÐÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
string m_PeerKey;
// ¹Þ¾Æ¼ ½ÇÇàÇÑ µ¥ÀÌÅͱ׷¥ Áß Á¦ÀÏ °ªÀÌ Å« °Í
DatagramID_t LastID;
// µ¥ÀÌÅͱ׷¥ÀÌ ¼ø¼´ë·Î ¿ÀÁö ¾Ê°í, °Ç³Ê¶Ú °æ¿ì...
// Áï 11¹ø µ¥ÀÌÅͱ׷¥ ´ÙÀ½¿¡ 13¹ø µ¥ÀÌÅͱ׷¥ÀÌ ¿Ô´Ù °°Àº °æ¿ì,
// "12¹øÀÌ ºüÁ³´Ù"¶ó´Â Á¤º¸¸¦ ±â¾ïÇϱâ À§ÇÑ ¸®½ºÆ®
list<Datagram> OmittedList;
// ¹«»çÈ÷ ½ÇÇàÇÑ µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®
// ³ªÁß¿¡ ¼Û½ÅÃø¿¡°Ô ¹«»çÈ÷ ½ÇÇàÇß´Ù´Â »ç½ÇÀ» ±â·ÏÇÑ µ¥ÀÌÅͱ׷¥À» ³¯·ÁÁÙ ¶§ ¾²ÀδÙ.
list<Datagram> AckList;
}
2.1 µ¥ÀÌÅͱ׷¥À» º¸³¾ ¶§ ÇØ¾ßÇÒ ÀÏ
- µ¥ÀÌÅͱ׷¥ÀÇ ID¸¦ ºÎ¿©ÇÑ´Ù. ÀÌ´Â º¸³¾ ¶§¸¶´Ù +1¾¿ Áõ°¡½ÃŰ´Â ¹æ¹ýÀ¸·Î ó¸®ÇÏ¸é µÈ´Ù.
- µ¥ÀÌÅͱ׷¥À» º¸³½´Ù.
- µ¥ÀÌÅͱ׷¥¿¡ ´ëÇÑ ÀÎÁõÀ» ¹ÞÁö ¸øÇßÀ» °æ¿ì, ´ÙÀ½¿¡ Àü¼ÛÇØ¾ßÇÏ´Â ½Ã°£À» ±â·ÏÇØµÐ´Ù.
- µ¥ÀÌÅͱ׷¥¿¡ ´ëÇÑ ÀÎÁõÀ» ¹ÞÁö ¸øÇßÀ» °æ¿ì, Àü¼ÛÀ» ½ÃµµÇÒ ÃÖ´ë Ƚ¼ö¸¦ ±â·ÏÇØµÐ´Ù.
- µ¥ÀÌÅͱ׷¥À» º¸³ÂÁö¸¸, ¾ÆÁ÷ ÀÎÁõ¹ÞÁö ¸øÇÑ µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¿¡´Ù°¡ Áý¾î³Ö¾îµÐ´Ù.
2.2 µ¥ÀÌÅͱ׷¥À» ¹Þ¾ÒÀ» ¶§ ÇØ¾ßÇÒ ÀÏ
- µ¥ÀÌÅͱ׷¥ÀÌ ÀÌ¹Ì Çѹø ½ÇÇàÇß´ø µ¥ÀÌÅͱ׷¥ÀÌ ¾Æ´ÑÁö °Ë»çÇÑ´Ù. ÀÌ´Â Áß°£¿¡ ºüÁø µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¿Í ÇöÀç±îÁö µµÂøÇÑ µ¥ÀÌÅͱ׷¥IDÀÇ ÃÖ´ë°ªÀ» ÀÌ¿ëÇØ¼ ÀÌ·ç¾îÁø´Ù.
- ÀÌ¹Ì Çѹø ½ÇÇàÇß´ø °ÍÀ̶ó¸é ±×³É ¹«½ÃÇϰí, ¾Æ´Ï¶ó¸é Á¤»óÀûÀ¸·Î ½ÇÇàÇÑ´Ù.
- ÇöÀç±îÁö µµÂøÇÑ µ¥ÀÌÅͱ׷¥IDÀÇ ÃÖ´ë°ª°ú Áß°£¿¡ ºüÁø µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¸¦ °»½ÅÇÑ´Ù.
- µ¥ÀÌÅͱ׷¥À» "Á¤»óÀûÀ¸·Î ½ÇÇàÇßÁö¸¸, ¼Û½ÅÃø¿¡ ¾Ë·ÁÁÖÁö ¾ÊÀº ¸®½ºÆ®"¿¡´Ù°¡ µî·ÏÇÑ´Ù.
- ¸¸ÀÏ µ¥ÀÌÅͱ׷¥ÀÌ ¼ö½ÅÃøÀÌ º¸³»¿Â ÀÎÁõ µ¥ÀÌÅͱ׷¥À̶ó¸é º¸³ÂÁö¸¸, ¾ÆÁ÷ ÀÎÁõ¹ÞÁö ¸øÇÑ µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¿¡ ÀÖ´Â ÇØ´çÇÏ´Â µ¥ÀÌÅͱ׷¥µéÀ» »èÁ¦ÇØÁØ´Ù.
2.3 ÁÖ±âÀûÀ¸·Î ó¸®ÇؾßÇÒ ÀÏ
- Á¤»óÀûÀ¸·Î ½ÇÇàÇßÁö¸¸, ¼Û½ÅÃø¿¡ ¾Ë·ÁÁÖÁö ¾ÊÀº ¸®½ºÆ®¿¡ µ¥ÀÌÅͱ׷¥ID°¡ µé¾îÀÖ´Ù¸é À̸¦ ¼Û½ÅÃø¿¡°Ô ¼Û½ÅÇÑ´Ù. (ÀÌ µ¥ÀÌÅͱ׷¥ ¿ª½Ã µ¥ÀÌÅͱ׷¥À» º¸³»´Â °ÍÀ̹ǷÎ, µ¥ÀÌÅͱ׷¥À» º¸³¾ ¶§ ÇØ¾ßÇÒ ÀϵéÀ» Â÷·Ê·Î ¼öÇàÇÑ´Ù.)
- º¸³ÂÁö¸¸, ¾ÆÁ÷ ÀÎÁõ¹ÞÁö ¸øÇÑ µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¸¦ °Ë»öÇÏ¸é¼ ÀçÀü¼ÛÇØ¾ßÇÏ´Â µ¥ÀÌÅͱ׷¥ÀÌ ÀÖ´Ù¸é ÀçÀü¼ÛÇÑ´Ù. (ÀçÀü¼ÛÇÒ ¶§¸¶´Ù ´ÙÀ½¿¡ Àü¼ÛÇØ¾ßÇÏ´Â ½Ã°£°ú Àü¼Û ½Ãµµ Ƚ¼ö¸¦ °»½ÅÇØ¾ßÇÑ´Ù.)
- ÃÖ´ë ÀçÀü¼Û Ƚ¼ö¸¦ ÃʰúÇÑ µ¥ÀÌÅͱ׷¥Àº »èÁ¦Çعö¸°´Ù. (³¡±îÁö Àü¼ÛµÇÁö ¾Ê´Â µ¥ÀÌÅͱ׷¥ÀÌ °á±¹ »ý±æ ¼ö ÀÖ´Ù.)
2.4 ºüÁø µ¥ÀÌÅͱ׷¥ÀÎÁö È®ÀÎÇÏ´Â ¹æ¹ý
ÀÏ´Ü ÀüÁ¦ Á¶°ÇÀ¸·Î ¼Û½ÅÃø¿¡¼ ¼Û½ÅÇÏ´Â µ¥ÀÌÅͱ׷¥µéÀº ¼øÂ÷ÀûÀÎ ID¸¦ °¡Á®¾ßÇÑ´Ù. Áï Á¦ÀÏ Ã³À½¿¡ º¸³½ µ¥ÀÌÅͱ׷¥ÀÌ 1¹øÀ̾ú´Ù¸é ´ÙÀ½À¸·Î º¸³»´Â µ¥ÀÌÅͱ׷¥Àº 2¹ø, 3¹ø, 4¹ø ÀÌ·± ½ÄÀ¸·Î 󸮵Ǿî¾ßÇÑ´Ù´Â °ÍÀÌ´Ù. ÀüÁ¦ Á¶°ÇÀÌ ¸¸Á·µÇ¾úÀ» ¶§ µ¥ÀÌÅͱ׷¥ÀÇ µµÂø ¼ø¼¿¡ ´ëÇÑ ½Ã³ª¸®¿À´Â ´ÙÀ½°ú °°´Ù. ÇöÀç ¸¶Áö¸·À¸·Î µµÂøÇÑ µ¥ÀÌÅͱ׷¥ÀÌ ID°¡ 9¶ó°í ÇÏÀÚ. ÀÌ´Â 10¹ø µ¥ÀÌÅͱ׷¥ÀÌ µµÂøÇØ¾ß ÇÑ´Ù´Â ¸»ÀÌ´Ù.
- 10 11 12 : ¸ðµç °ÍÀÌ ¼ø¼´ë·Î ¿Ô´Ù. LastID´Â ¸Å¹ø Áõ°¡ÇÑ´Ù.
- 11 10 12 : ¸ÕÀú LastID°¡ 11·Î Áõ°¡ÇÑ´Ù. 9->11·Î º¯ÇßÀ¸¹Ç·Î, 10ÀÇ °ªÀÌ Áß°£¿¡ ºüÁø µ¥ÀÌÅͱ׷¥ÀÇ ¸®½ºÆ®¿¡ Ãß°¡µÈ´Ù. ´ÙÀ½À¸·Î 10ÀÌ ¿À¸é ¸®½ºÆ®¿¡ Á¸ÀçÇϹǷÎ, ½ÇÇàÇÑ´Ù. ±×¸®°í ¸®½ºÆ®¿¡¼ µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù. 12´Â... Á¤»óÀûÀ̹ǷΠ½ÇÇàÇÑ´Ù.
- 10 10 11 : Á¦ÀÏ Ã³À½ ¿À´Â 10Àº ´ç¿¬È÷ Á¤»óÀûÀ¸·Î ½ÇÇàµÈ´Ù. µÎ¹øÂ°·Î ¿À´Â 10Àº LastID°ª¿¡ ÀÇÇØ¼ ¹«½ÃµÈ´Ù. 11Àº ´Ù½Ã Á¤»óÀûÀ¸·Î ½ÇÇàµÈ´Ù.
ÀÌ°É ´Ù½Ã ÄÚµå·Î ¸¸µé¾îº¸¸é ´ÙÀ½°ú °°Àº ¸ð¾çÀÌ µÈ´Ù.
bool UDPPeerState::validateDatagramID(DatagramID_t ID)
{
// ¸¸ÀÏ µ¥ÀÌÅͱ׷¥ÀÇ ID°¡ ¸¶Áö¸·À¸·Î ½ÇÇàÇÑ µ¥ÀÌÅͱ׷¥ÀÇ IDº¸´Ù ÀÛ´Ù¸é,
// Ȥ½Ã ÀÌÀü¿¡ ºüÁø µ¥ÀÌÅͱ׷¥ÀÎÁö °Ë»çÇØº»´Ù.
if (ID < m_pImpl->LastID)
{
list<OMIT_INFO>::iterator itr = m_pImpl->OmitList.begin();
for (; itr != m_pImpl->OmitList.end(); itr++)
{
if (ID == (*itr).ID)
{
// ÀÌÀü¿¡ ºüÁø µ¥ÀÌÅͱ׷¥À̶ó¸é ½ÇÇàÇØ¾ß ÇÑ´Ù.
return true;
}
}
}
// »õ·Î¿î µ¥ÀÌÅͱ׷¥ÀÌ´Ù.
else if (ID > m_pImpl->LastID)
{
// ¾î·µç true´Ù.
return true;
}
// À̱îÁö ¿Ô´Ù´Â ¸»Àº µ¥ÀÌÅͱ׷¥ÀÇ ID°¡ ¸¶Áö¸·À¸·Î ¹ÞÀº µ¥ÀÌÅͱ׷¥ÀÇ
// ID¿Í °°´Ù´Â ¸»À̹ǷÎ, ¹«½ÃÇØ¾ß ÇÑ´Ù.
return false;
}
3 ¿¹¿Ü ó¸®
3.1 PEER Áß ¾î´À ÇÑÂÊÀÌ ºñÁ¤»óÀûÀ¸·Î Á¾·áµÈ °æ¿ì
Åë½ÅÀ» Çϰí ÀÖ´ø ¾çÂÊ Áß¿¡¼ ¾î´À ÇÑÂÊÀÌ Á×¾ú´Ù°í ÇÏÀÚ. ÀÌ·± °æ¿ì »ý±â´Â ¹®Á¦´Â µÎ °¡Áö·Î ³ª´ ¼ö ÀÖ´Ù.
3.1.1 Á×Àº PEER°¡ »ó´ç½Ã°£ °è¼Ó Á×¾îÀÖ´Â °æ¿ì
ÀÌ °æ¿ìÀÇ ¹®Á¦´Â Á×Àº ÂÊ¿¡¼ ÀÎÁõ ÆÐŶÀ» º¸³»ÁÖÁö ¾ÊÀ½À¸·Î ÀÎÇØ, ¼Û½Å Ãø¿¡¼ ÆÐŶÀ» °è¼Ó ÀçÀü¼ÛÇÏ´Â µ¥ ÀÖ´Ù. ÀÌ ¹®Á¦´Â ÀçÀü¼ÛÀÇ È½¼ö¿¡ Á¦ÇÑÀ» ÁÜÀ¸·Î¼ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ¹°·Ð µÑ ´Ù »ì¾ÆÀִµ¥µµ ºÒ±¸Çϰí, ÀçÀü¼Û ÃÖ´ë Ƚ¼ö¸¸ÅÀÇ ¼Û½ÅÀÌ ½ÇÆÐÇÒ ¿ì·Á(¿¹¸¦ µé¾î 15¹øÀ» ÃÖ´ë ÀçÀü¼ÛȽ¼ö·Î Àâ¾Ò´Âµ¥, 15¹ø ¸ðµÎ ½ÇÆÐ!)µµ ÀÖ°ÚÁö¸¸, È®·üÀº »ó´çÈ÷ ³·´Ù°í º»´Ù.
3.1.2 Á×Àº PEER°¡ ´Ù½Ã »ì¾Æ³ °æ¿ì
ÀÌ °æ¿ì Á×Àº PEER´Â º¸³»´Â µ¥ÀÌÅͱ׷¥ÀÇ ID¸¦ ÃʱⰪºÎÅÍ º¸³»¿Â´Ù. Áï ¼ö½Å Ãø¿¡¼ À¯ÁöÇϰí ÀÖ´ø ÀÎÁõ Á¤º¸°¡ ¿ÏÀüÈ÷ ¾µ¸ð¾ø¾îÁ® ¹ö¸®´Â °ÍÀÌ´Ù. ÀÌ·± °æ¿ì ¼ö½Å ÃøÀº ¼Û½Å Ãø¿¡ ¸ÂÃç¼ ÀÎÁõ °ü·Ã Á¤º¸¸¦ ÃʱâÈÇØÁà¾ßÇÑ´Ù. À̰ÍÀ» À§Çؼ ¼Û½ÅÃø¿¡¼´Â ÀÓÀÇÀÇ PEER¿¡°Ô ÆÐŶÀ» º¸³¾ °æ¿ì, ÇØ´çÇÏ´Â PEER¿¡°Ô ÆÐŶÀ» º¸³½ ÀûÀÌ ÀÖ´ÂÁö Á¶»çÇÏ°í º¸³½ ÀûÀÌ ¾ø´Ù¸é, ¼ö½Å Ãø¿¡°Ô ÀÎÁõ °ü·Ã Á¤º¸¸¦ ÃʱâÈÇ϶ó´Â ÆÐŶÀ» º¸³» ÁØ ÈÄ¿¡ ½ÇÁ¦ ÆÐŶÀ» ³¯·Á¾ßÇÑ´Ù.
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)