Out-of-Band µ¥ÀÌÅÍ Åë½Å
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Out-Of-Band

Out Of Band´Â TCPÅë½Å¿¡¼­ ¾²ÀδÙ. Out Of Band´Â °«±æÀ» ÀǹÌÇϴµ¥, TCP¿¡¼­´Â ±ä±ÞÇÑ µ¥ÀÌÅÍÀÇ Åë½ÅÀ» À§Çؼ­ »ç¿ëÇÑ´Ù. OOB¶ó°í ÁÙ¿©¼­ ºÎ¸¥´Ù.

TCP¿¡¼­´Â URGÇÊµå ¸¦ 1·Î ¼³Á¤ÇÏ´Â °ÍÀ¸·Î OOBµ¥ÀÌÅÍÀÓÀ» ¸í½ÃÇÑ´Ù. URG´Â URGENT¸¦ ÀǹÌÇÑ´Ù. TCP Çì´õ Á¤º¸´Â TCP Çì´õ ÀÚ¼¼È÷ º¸±â ¹®¼­¸¦ Âü°íÇϱ⠹ٶõ´Ù.

OOB µ¥ÀÌÅͶó°í ÇØ¼­, ´Ù¸¥ ÆÐŶ¿¡ ¿ì¼±Çؼ­ µµÂøÇϰųª ³ôÀº ¿ì¼±¼øÀ§·Î ÀçÁ¶Á¤µÈ´Ù°Å³ª ÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é º°µµÀÇ ÆÐŶÀ¸·Î Àü´ÞµÇÁö ¾Ê°í, ÀÏ¹Ý µ¥ÀÌÅÍ¿¡ Æ÷ÇԵǾ Àü´ÞÀÌ µÇ±â ¶§¹®ÀÌ´Ù. TCP Çì´õÀÇ Urgent Pointer·Î ±ä±Þ µ¥ÀÌÅͰ¡ ½ÃÀ۵Ǵ À§Ä¡¸¦ ¾Ë ¼ö ÀÖ´Ù.


OOB µ¥ÀÌÅ͸¦ Àü´Þ ¹ÞÀº ¿î¿µÃ¼Á¦´Â SIGURG ½Ã±×³ÎÀ» ¹ß»ýÇÑ´Ù. ÀÀ¿ë ¾ÖÇø®ÄÉÀ̼ÇÀº SIGURG¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡Çؼ­, OOB µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.

OOB µ¥ÀÌÅ͸¦ »ç¿ëÇϱâ À§Çؼ­´Â readÇÔ¼ö¿Í writeÇÔ¼ö°¡ ¾Æ´Ñ recv¿Í send°°Àº ¼ÒÄÏ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
int send(int s, const void *msg, size_t len, int flags); 
 
flags¸¦ MSG_OOB·Î ¼³Á¤ÇÏ¸é µÈ´Ù.

Çʿ伺

  1. ¿¹¿Ü ó¸®
  2. ¼­¹ö¿¡°Ô º¸³»Áø ¿äûÀ» Ãë¼ÒÇϱâ À§Çؼ­

SIGNAL ó¸®

OOB µ¥ÀÌÅͰ¡ µµÂøÇϸé SIGURG ½Ã±×³ÎÀÌ ¹ß»ýÇÑ´Ù. ÀÌ ½Ã±×³Î¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡ÇÔÀ¸·Î½á, OOB µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ¹æ½ÄÀÌ´Ù.

int main() 
{ 
    signal(SIGURG, urg_handler); 
    fcntl(sockfd, F_SETOWN, getpid()); 
} 
 
void urg_handler(int signo) 
{ 
    int readn; 
    char buf[MAX_LINE]; 
    printf("SIGURG Receive\n"); 
    memset(buf, 0x00, MAX_LINE); 
    readn = recv(sockfd, buf, MAX_LINE-1, MSG_OOB); 
    printf("URG DATA %s\n", buf); 
} 
 

OOB¸¦ º¸³»´Â Ãø

º¸³»´Â ÃøÀº MSG_OOB¸¦ ¼³Á¤Çؼ­ Àü¼ÛÇÏ¸é µÈ´Ù.
send(sockfd, "AA", 2, MSG_OOB); 
 

OOB¸¦ ¹Þ´Â Ãø

OOB¸¦ ¹Þ´Â ÃøÀº fcntlÇÔ¼ö·Î ÀÐÀ» ¼ÒÄÏ¿¡¼­ ¹ß»ýÇÏ´Â ½Ã±×³ÎÀ» ¹Þµµ·Ï ó¸®ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±× ÈÄ SIGURG¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡ÇÏ¸é µÈ´Ù. ½Ã±×³Î Çڵ鷯¿¡¼­ recvÇÔ¼ö·Î ±ä±Þ µ¥ÀÌÅ͸¦ ÀÐÀ¸¸é µÈ´Ù.
void sig_handler(signo) 
{ 
    int oob_data[10] = {0x00,}; 
    recv(sockfd, oob_data, 16, MSG_OOB); 
    // Àû´çÇÑ Ã³¸® 
} 
 


EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.