|
現: 2011-08-06 (土) 23:28:26 iseki  |
| + | ** UDP パケットのヘッダ構造 [#h9f23ab8] |
| + | - 参考 |
| + | -- http://lib.openmetaverse.org/wiki/Protocol_%28network%29 |
| + | -- http://wiki.secondlife.com/wiki/Packet_Layout |
| | | |
| + | - Second Life のUDPパケットでは Big Endianと Little Endian が混在している.要注意. |
| + | - 以下,特に断らない場合は1Byte = 8bit = 1octet として記述 |
| + | #br |
| + | |
| + | **** ''KK ZZ ZZ ZZ ZZ HH [MM MM ...] LL [LL LL LL] ボディ部''[#s1d7c544] |
| + | |
| + | - ''KK'' パケット種別.以下のオクテットの論理和 (1octet) |
| + | #define MSG_APPENDED_ACKS 0x10 |
| + | #define MSG_RESENT 0x20 |
| + | #define MSG_RELIABLE 0x40 |
| + | #define MSG_ZEROCODED 0x80 |
| + | -- [[MSG_APPENDED_ACKS>Second Life/Protocol/UDP/MSG_APPENDED_ACKS]]: ボディの最後にACKデータが追加されている. |
| + | -- MSG_RESENT: 再送パケット |
| + | -- MSG_RELIABLE: ACKの返答を要求するパケット |
| + | -- MSG_ZEROCODED: ボディ部は 0x00 の連長圧縮で圧縮されている |
| + | |
| + | - ''ZZ ZZ ZZ ZZ'' 1から始まるパケットのシーケンス番号(パケット番号) (4octet) ''Big Endien'' |
| + | - ''HH'' エクストラ(拡張)ヘッダの長さ(オクテット単位) (1octet) |
| + | - ''[MM MM ....]'' エクストラ(拡張)ヘッダ (長さは ''HH'' に依存) |
| + | - ''LL [LL LL LL]'' プロトコル番号(ボディの種別) |
| + | Fixed: 0xFF 0xFF 0xFF XX XX は任意のオクテット |
| + | Low: 0xFF 0xFF XX XX |
| + | Medium: 0xFF XX |
| + | High: XX |
| + | |
| + | *** サンプル [#afe88bef] |
| + | S->P [6983]: 0xc0 seq = 795 UDP message is Low 1 TestMessage |
| + | c0 00 00 03 1b 00 ff ff 00 01 9e 7a de a0 42 de . . . . . . . . . . . z . . B . |
| + | 67 48 65 8a 5a b1 a4 fe 20 47 95 00 01 ff 00 01 g H e . Z . . . G . . . . . . |
| + | c2 28 d1 cf 4b 5d 4b a8 84 f4 89 9a 07 96 aa 97 . ( . . K ] K . . . . . . . . . |
| + | 90 00 01 81 4a eb ad d3 34 c1 25 76 f7 dc 97 42 . . . . J . . . 4 . % v . . . B |
| + | 04 32 0d 88 00 01 63 ce e0 35 45 ca ff 4d bf 16 . 2 . . . . c . . 5 E . . M . . |
| + | 3d de d8 b5 80 e6 84 00 01 e1 53 35 6f ca 1e 63 = . . . . . . . . . S 5 o . . c |
| + | ............................................... |
| + | |
| + | c0 パケット種別 (MSG_RELIABLE | MSG_ZEROCODED) |
| + | 00 00 03 1b シーケンス番号 (795) Big Endian |
| + | 00 拡張ヘッダの長さ (0) |
| + | ff ff 00 01 プロトコル番号 (Low 1: TestMessage) |
| + | 9e 7a de a0 42 de 67 48 65 8a 5a b1 a4 fe 20 47 ボディ |
| + | ............................................... |