from "the RFB Protocol" (http://www.uk.research.att.com/vnc/rfbproto.pdf)
RFB´Â thin Client ÇÁ·ÎÅäÄÝÀÌ´Ù. Ŭ¶óÀ̾ðÆ®´Â µð½ºÇ÷¹ÀÌ/Å°º¸µå/Æ÷ÀÎÅÍ(¸¶¿ì½º°°Àº)ÀÇ »ç¿ëÀÚ Á¤º¸¸¦ ¼¹ö·Î º¸³»¸ç, ¼¹ö´Â FramebufferÀÇ Á¤º¸(GUI ½Ã½ºÅÛ, ¾ÖÇø®ÄÉÀ̼Ç)¸¦ Ŭ¶óÀ̾ðÆ®·Î Àü¼ÛÇÑ´Ù.
RFBÀÇ ÇÁ·ÎÅäÄÝÀº ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÈ´Ù ;
Display Protocol
RFBÀÇ µð½ºÇ÷¹ÀÌ ºÎºÐÀº °£´ÜÇÑ ¾ÆÀ̵ð¾î¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù : "Çȼ¿ÀÇ »ç°¢Çü µ¥ÀÌŸ¸¦ ÁÖ¾îÁø x,y ÁÂÇ¥¿¡ ³õ´Â´Ù" ÀÌ ¾ÆÀ̵ð¾î´Â ÀÏ°ß ¸¹Àº UI ÄÄÆÛ³ÍÆ®µéÀ» ±×¸®´Â µ¥¿¡ ºñ´É·üÀûÀ¸·Î º¸ÀδÙ. ±×·¯³ª, ³×Æ®¿÷ ´ë¿ªÆøÀ̳ª Ŭ¶óÀ̾ðÆ®ÀÇ µð½ºÇ÷¹ÀÌ ´É·Â, ¼¹öÀÇ ÇÁ·Î¼¼½Ì ¼ÓµµµîÀÇ ¿©·¯°¡Áö ¿ä¼Ò¸¦ ³õ°í ÈïÁ¤ÇÔ¿¡ ÀÖ¾î¼, ¿©·¯°¡Áö ¹æ¹ýÀÇ Çȼ¿ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ÀÎÄÚµùÀº ¿ì¸®¿¡°Ô ³ôÀº ¼öÁØÀÇ À¶Å뼺À» Á¦°øÇß´Ù.
ÀÌ »ç°¢ÇüÀÇ ½ÃÄý½º´Â framebuffer update¸¦ ¸¸µç´Ù.
Input Protocol
Å°º¸µå³ª ´Ù¹öÆ° Æ÷ÀÎÆà µð¹ÙÀ̽ºÀÇ Ç¥ÁØ ¿÷½ºÅ×ÀÌ¼Ç ¸ðµ¨¿¡ ±â¹ÝÇÑ´Ù. ÀÔ·Â À̺¥Æ®µéÀº ´Ù¸¥ ºñÇ¥ÁØ ÀԷ±â±â·ÎºÎÅÍ ¸¸µé¾îÁú ¼ö ÀÖ´Ù. (¿¹¸¦ µé¸é, pdaÀÇ handwriting °°Àº)
Çȼ¿ µ¥ÀÌÅÍÀÇ Ç¥Çö ; RFB Ŭ¶óÀ̾ðÆ®/¼¹ö°£ÀÇ »óÈ£ÀÛ¿ëÀº º¸³»Áú Çȼ¿ µ¥ÀÌÅÍ¿¡ ´ëÇÑ Æ÷¸Ë°ú ÀÎÄÚµù¿¡ ´ëÇÑ Çù»óÀ» Æ÷ÇÔÇÑ´Ù.
Raw/Copy rectangle/RRE/CoRRE/Hextile Encoding (»ý·«)
ÇÁ·ÎÅäÄÝ ¸Þ½ÃÁö
º¸Åë ÇÁ·ÎÅäÄÝ »óÈ£ÀÛ¿ë¿¡ ÀÇÇÑ Ãʱâ Á¢¼Ó ´Ü°è¸¦ °ÅÄ£ ÈÄ ¸Þ½ÃÁö¸¦ ÁÖ°í ¹Þ°Ô µÈ´Ù.
Ãʱâ Á¢¼Ó ¸Þ½ÃÁö(Initial Handshaking Messages)
ProtocolVersion? ;
Ãʱâ Á¢¼ÓÀº ¼¹ö°¡ Ŭ¶óÀ̾ðÆ®°¡ ProtocolVersion? ¸Þ½ÃÁö¸¦ Àü¼ÛÇÔÀ¸·Î¼ ½ÃÀ۵ȴÙ. Ŭ¶óÀ̾ðÆ®·Î ÇÏ¿©±Ý ¼¹ö¿¡ ÀÇÇØ Áö¿øµÇ´Â °¡Àå ÃÖ½ÅÀÇ RFB ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ¾Ë ¼ö ÀÖ°Ô ÇØÁØ´Ù. Ŭ¶óÀ̾ðÆ®/¼¹ö°¡ ÇÏÀ§ ȣȯ¼ºÀÇ ¾î¶² ¹öÀüÀ» Á¦°øÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Æ´Âµ¥ ±× ¸ñÀûÀÌ ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®´Â ½ÇÁ¦·Î »ç¿ëµÉ ¼ö ÀÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀü ¹øÈ£¸¦ ´ãÀº, ºñ½ÁÇÑ ¸Þ½ÃÁö·Î ÀÀ´äÇÑ´Ù.
12¹ÙÀÌÆ®·Î ±¸¼ºµÇ¸ç, °ªÀº ´ÙÀ½°ú °°´Ù : "RFB 003.003\n" (Major ver. Minor ver.)
Authentication ;
ÇÁ·ÎÅäÄÝ ¹öÀüÀÌ Á¤ÇØÁö¸é, ¼¹ö´Â ¿¬°á¿¡¼ »ç¿ëµÉ ÀÎÁõ ½ºÅ°¸¶¸¦ ³ªÅ¸³»´Â ¿öµå¸¦ Àü¼ÛÇÑ´Ù. 4¹ÙÀÌÆ®·Î ±¸¼ºµÈ´Ù. (CARD32)
0 - Connection Failed ; ½ÇÆÐÀÇ ÀÌÀ¯¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿ÀÇ ±æÀÌ/¹®ÀÚ¿ ¹è¿ÀÌ µû¶ó¿Â´Ù.
1 - no Authentication ; ÀÎÁõ ¾øÀÌ ClientInitialisation? ¸Þ½ÃÁö·Î °è¼ÓµÈ´Ù. 2 - VNC Authentication ; VNC ÀÎÁõÀ» »ç¿ëÇÑ´Ù. 16¹ÙÀÌÆ®ÀÇ challenge°¡ Ŭ¶óÀ̾ðÆ®·Î Àü¼ÛµÇ°í, Ŭ¶óÀ̾ðÆ®´Â challenge¸¦ ÀÌ¿ëÀÚ¿¡°Ô Á¦°øµÈ Å°·Î Æнº¿öµå¸¦ »ç¿ëÇؼ DES·Î ¾ÏÈ£ÈÇÏ¿© (16¹ÙÀÌÆ®·Î) ÀÀ´äÇÑ´Ù. ±×·¯¸é ¼¹ö´Â ÀÎÁõÀÌ ¼º°øÇß´ÂÁöÀÇ ¿©ºÎ¸¦ ³ªÅ¸³»´Â 4¹ÙÀÌÆ® ¿öµå¸¦ Àü¼ÛÇÑ´Ù. (0 OK;1 Failed;2 too-many)
ClientInitialisation? ;
¼¹ö/Ŭ¶óÀ̾ðÆ®°¡ ¼·Î¿¡°Ô À̾߱âÇÒ »óÅ°¡ µÇ¸é, Ŭ¶óÀ̾ðÆ®´Â ClientInitialisation? ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù.
1¹ÙÀÌÆ®ÀÇ Shared-flag·Î, ¼¹ö°¡ ´Ù¸¥ Ŭ¶óÀ̾ðÆ®µéÀÌ ÀÛ¾÷ÇÑ µ¥½ºÅ©Å¾À» °øÀ¯ÇÏ·Á ½ÃµµÇϸé True, ´Ù¸¥ Ŭ¶óÀ̾ðÆ®ÀÇ ¸ðµç Á¢¼ÓÀ» ²÷°í ¹èŸÀûÀÎ ¾×¼¼½º ±ÇÇÑÀ» ÁÖ·Á°í Çϸé FalseÀÌ´Ù.
ServerInitialisation? ;
¼¹ö´Â ClientInitialisation? ¸Þ½ÃÁö¸¦ ¹ÞÀ¸¸é, ServerInitialisation? ¸Þ½ÃÁö·Î ÀÀ´äÇÑ´Ù. ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®¿¡°Ô ÇÁ·¹ÀÓ¹öÆÛÀÇ Å©±â, Çȼ¿ Æ÷¸Ë, µ¥½ºÅ©Å¾°ú °ü·ÃµÈ À̸§À» ¾Ë·ÁÁØ´Ù.