|
1: 2008-12-21 (日) 03:29:18 iseki |
| + | * Second Life UDP Protocols [#l5a84492] |
| | | |
| + | ** UDP パケットの構造[#n36a2c2e] |
| + | - 参考 |
| + | -- http://www.libsecondlife.org/wiki/Protocol_%28network%29 |
| + | -- http://wiki.secondlife.com/wiki/Packet_Layout |
| + | |
| + | - Second Life のUDPパケットでは Big Endianと Little Endian が混在している.要注意. |
| + | - 以下,特に断らない場合は1Byte = 8bit = 1octet として記述 (一般的には 1Byte=8bit とは限らない) |
| + | |
| + | **** ''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 ボディ |
| + | ............................................... |
| + | |
| + | ** 主な UDPパケット [#wf666a31] |
| + | - 参考: http://www.libsecondlife.org/template/ |
| + | - カテゴリー(High, Medium, Low, Fixed) は処理の優先順位か? |
| + | |
| + | *** High [#c4fd1854] |
| + | - 008 [08] [[RequestImage>Second Life/Protocol/UDP/RequestImage]] |
| + | - 009 [09] [[ImageData>Second Life/Protocol/UDP/ImageData]] |
| + | - 010 [0A] [[ImagePacket>Second Life/Protocol/UDP/ImagePacket]] |
| + | - 023 [17] [[ParcelProperties>Second Life/Protocol/UDP/ParcelProperties]] |
| + | |
| + | *** Medium [#d9ed2b1d] |
| + | - 007 [FF 07] [[CrossedRegion>Second Life/Protocol/UDP/CrossedRegion]] |
| + | |
| + | *** Low [#hbb6770b] |
| + | - 001 [FF FF 00 01] [[TestMessage>./TestMessage]] |
| + | - 069 [FF FF 00 45] [[TeleportFinish>./TeleportFinish]] |
| + | - 148 [FF FF 00 94] [[RegionHandshake>./RegionHandshake]] |
| + | - 151 [FF FF 00 97] [[EnableSimulator>./EnableSimulator]] |
| + | - 152 [FF FF 00 98] [[DisableSimulator>./DisableSimulator]] |
| + | - 163 [FF FF 00 A3] [[KickUser>./KickUser]] |
| + | - 250 [FF FF 00 FA] [[AgentMovementComplete>./AgentMovementComplete]] |
| + | - 252 [FF FF 00 FC] [[LogoutRequest>./LogoutRequest]] |
| + | - 409 [FF FF 01 99] [[MapBlockReply>./MapBlockReply]] |
| + | |
| + | *** Fixed [#k9c9b858] |
| + | - 251 [FF FF FF FB] [[PacketAck>./PacketAck]] |
| + | |
| + | *** MSG_APPENDED_ACKS [#ub380996] |
| + | - [[MSG_APPENDED_ACKS>Second Life/Protocol/UDP/MSG_APPENDED_ACKS]] |
| + | |
| + | ** Indexes [#aa5b25ca] |
| + | #ls2 |