/****************************************************************************/
/* protocol.txt                                                             */
/* makuosan protocol document Ver3                                          */
/*                                                                          */
/*                                             Copyright (C) 2008 KLab Inc. */
/****************************************************************************/

ããã­ãã³ã«ãã©ã¼ãããã

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
| ProtocolVer   |   Operation   |   new status  |  old status   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           data size           |             flags             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|                         Request ID                            | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ makuo header
|                       Sequence Number                         | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                          checksum                             | 
|                          (16byte)                             | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|                                                               | 
|                                                               | 
|                             data                              | makuo data
|                        (MAX 1024Bytes)                        | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------

åé ­ã«32ãã¤ãã®ããããããã¾ãã
ãã®ãã¨ã«å¯å¤é·ãã¼ã¿ãç¶ãã¾ãã
ãã¼ã¿ã®æ大ãµã¤ãºã¯1024ãã¤ãã§ãã
ãã¼ã¿ãã©ã¼ããã㯠OperationCodeæ¯ã«å®ç¾©ãã¾ãã
ã¾ãããããã®åãã£ã¼ã«ãã®æå³ã¯ä»¥ä¸ã®éãã§ãã

- ProtocolVer
 ã¾ãããã­ãã³ã«ã®ãã¼ã¸ã§ã³çªå·ã
 ãã¼ã¸ã§ã³çªå·ã®ç°ãªããã­ãã³ã«ã¯å¦çãã¾ããã

- Operation
 ãªãã¬ã¼ã·ã§ã³ã³ã¼ã
  MAKUO_OP_PING: 
  MAKUO_OP_EXIT:
  MAKUO_OP_SEND:
  MAKUO_OP_MD5 :

- RequestID
 ã³ãã³ããçºè¡ãã度ã«ã¤ã³ã¯ãªã¡ã³ããã

- status
 ç¾å¨ã®ç¶æ

- old status
 以åã®ç¶æ

- data size
 ãã¼ã¿ãã£ã¼ã«ãã®ãã¤ãæ°

- flags
 bit
  0: ACKãªã1
  1: ãã¼ã¿é¨ãæå·åããã¦ããå ´åã¯1
  2:

- Sequence Number


ããã¼ã¿ãã©ã¼ãããã

[ping]
ãã­ã°ã©ã èµ·åæã«éåºãããã±ããã
ãã®ãã±ãããåãåã£ããã¼ãã¯ãéä¿¡ãã¼ããã¡ã³ããªã¹ãã«è¿½å ããã¦ãã­ã£ã¹ã
ã§PONGãè¿ãã

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|       HostName Length         |     Version String Length     | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                          HostName                             | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                       Version String                          | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------

HostName:

Version String:

[exit]
ãã­ã°ã©ã çµäºæã«çºè¡ãããã±ããã
åãåã£ããã¼ãã¯éä¿¡èãã¡ã³ããªã¹ãããåé¤ããã

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|       HostName Length         |     Version String Length     | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                          HostName                             | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                       Version String                          | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------

[send]

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|                              mode                             | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           uid                 |             gid               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         file size(low)                        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         file size(high)                       | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             mtime                             | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             ctime                             | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        filename length        |        linkname length        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                          filename                             | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 
|                          linkname                             | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------

[send  Format]
Operation Code  = 4 (MAKUO_OP_FILE)
Sequence Number > 0 

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------

[md5]
Operation Code  = 5 (MAKUO_OP_MD5)

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
|                                                               | 
|                             md5                               | 
|                          (16bytes)                            | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        filename length        |                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                                                               | 
|                          filename                             | 
|                   (filename length bytes)                     | 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------

result:
  Operation Code  = 3 (MAKUO_OP_ACK)
  Status = 10 or 11 (MAKUO_RECVSTATE_MD5OK or MAKUO_RECVSTATE_MD5NG)