fakewap-packets.txt
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:8k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. Packages sent and received by the fakewap program
  2. This file documents the packages sent and received by the fakewap
  3. program. Fakewap tests a WAP gateway by sending UDP packages
  4. to make simple requests for WML pages. It is meant for stress
  5. testing the gateway.
  6. The basic session looks like this (WTP is the transaction and
  7. WSP is the session protocol layer):
  8. A) Fakewap -> Gateway
  9. WTP: Invoke PDU
  10. WSP: Connect PDU
  11. B) Gateway -> Fakewap
  12. WTP: Result PDU
  13. WSP: ConnectReply PDU
  14. C) Fakewap -> Gateway
  15. WTP: Ack PDU
  16. D) Fakewap -> Gateway
  17. WTP: Invoke PDU
  18. WSP: Get PDU
  19. E) Gateway -> Fakewap
  20. WTP: Result PDU
  21. WSP: Reply PDU
  22. F) Fakewap -> Gateway
  23. WTP: Ack PDU
  24. G) Fakewap -> Gateway
  25. WTP: Invoke PDU
  26. WSP: Disconnect PDU
  27. Packets A-C open a WAP session. Packets D-F fetch a WML page.
  28. Packet G closes the session.
  29. The fakewap program does not need to understand the WAP protocols
  30. as such, it just needs to generate packets in the right order
  31. with a little variation, and keep track of which packets have
  32. received and which have not received responses.
  33. The detailed formats of the packets are listed below. Note
  34. that bits are numbered in the WAP specification with the
  35. most significant bit being 0, not 7. Unspecified bits are
  36. filled in fakewap or the gateway.
  37. Packet A)
  38. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  39. ------------+---+---+---+---+---+---+---+---|
  40.     octet 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
  41. ------------+---+---+---+---+---+---+---+---|
  42.     octet 2 | 0 |   |   |   |   |   |   |   |      TID, fakewap
  43. ------------+---+---+---+---+---+---+---+---|   |-- generates
  44.     octet 3 |   |   |   |   |   |   |   |   |  /    linearly
  45. ------------+---+---+---+---+---+---+---+---|
  46.     octet 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
  47. ------------+---+---+---+---+---+---+---+---|
  48.     octet 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
  49. ------------+---+---+---+---+---+---+---+---|
  50.     octet 6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
  51. ------------+---+---+---+---+---+---+---+---|
  52.     octet 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
  53. ------------+---+---+---+---+---+---+---+---|
  54.     octet 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
  55. ------------+---+---+---+---+---+---+---+---|
  56. Fakewap generates a new TID (transaction ID) for each A) packet
  57. is generates. TIDs are generated linearly. If a 15 bit counter
  58. overflows, fakewap can, for now, stop sending anything.
  59. Packet B)
  60. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  61. ------------+---+---+---+---+---+---+---+---|
  62.     octet 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
  63. ------------+---+---+---+---+---+---+---+---|
  64.     octet 2 | 1 |   |   |   |   |   |   |   |    TID, gateway
  65. ------------+---+---+---+---+---+---+---+---|   | copies from
  66.     octet 3 |   |   |   |   |   |   |   |   |  /  A) packet
  67. ------------+---+---+---+---+---+---+---+---|
  68.     octet 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
  69. ------------+---+---+---+---+---+---+---+---|
  70.     octet 5 |   |   |   |   |   |   |   |   |  
  71. ------------+---+---+---+---+---+---+---+---|  | Session ID,
  72.       ...   |   |   |   |   |   |   |   |   |  | generated by
  73. ------------+---+---+---+---+---+---+---+---|  | gateway
  74.     octet n |   |   |   |   |   |   |   |   |  /
  75. ------------+---+---+---+---+---+---+---+---|
  76.   octet n+1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
  77. ------------+---+---+---+---+---+---+---+---|
  78.   octet n+2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
  79. ------------+---+---+---+---+---+---+---+---|
  80. Fakewap needs to extract the TID and match it to the list of
  81. A) packets it has sent that have not yet received a B) packet
  82. in response. It also needs to extract and store the Session
  83. ID because that is needed by G).
  84. The Session ID is encoded in the uintvar format specified by
  85. the WSP specification, section 8.1.2 in the WAP 1.1 version.
  86. Code for decoding it is in gw/wsp.c (should be moved elsewhere).
  87. Packet C) and F)
  88. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  89. ------------+---+---+---+---+---+---+---+---|
  90.     octet 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
  91. ------------+---+---+---+---+---+---+---+---|
  92.     octet 2 | 0 |   |   |   |   |   |   |   |    TID, must be
  93. ------------+---+---+---+---+---+---+---+---|   | same as in
  94.     octet 3 |   |   |   |   |   |   |   |   |  /  A) or D) packet.
  95. ------------+---+---+---+---+---+---+---+---|
  96. Packets C) and F) are identical, except C) gets its TID from
  97. an A) packet, and F) from a D) packet.
  98. Packet D)
  99. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  100. ------------+---+---+---+---+---+---+---+---|
  101.     octet 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
  102. ------------+---+---+---+---+---+---+---+---|
  103.     octet 2 | 0 |   |   |   |   |   |   |   |    TID, fakewap
  104. ------------+---+---+---+---+---+---+---+---|   | generates a
  105.     octet 3 |   |   |   |   |   |   |   |   |  /  new one
  106. ------------+---+---+---+---+---+---+---+---|
  107.     octet 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
  108. ------------+---+---+---+---+---+---+---+---|
  109.     octet 5 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
  110. ------------+---+---+---+---+---+---+---+---|
  111.     octet 6 |   |   |   |   |   |   |   |   |  
  112. ------------+---+---+---+---+---+---+---+---|   |
  113.       ...   |   |   |   |   |   |   |   |   |   | URI length
  114. ------------+---+---+---+---+---+---+---+---|   |
  115.     octet n |   |   |   |   |   |   |   |   |  /
  116. ------------+---+---+---+---+---+---+---+---|
  117.   octet n+1 |   |   |   |   |   |   |   |   |  
  118. ------------+---+---+---+---+---+---+---+---|   |
  119.       ...   |   |   |   |   |   |   |   |   |   | URI
  120. ------------+---+---+---+---+---+---+---+---|   |
  121.   octet n+m |   |   |   |   |   |   |   |   |  /
  122. ------------+---+---+---+---+---+---+---+---|
  123. The URI (or URL) length is specified with uintvar (code to
  124. generate them also in gw/wsp.c). The URL itself is just the
  125. octets of the string copied as is.
  126. Packet E)
  127. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  128. ------------+---+---+---+---+---+---+---+---|
  129.     octet 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
  130. ------------+---+---+---+---+---+---+---+---|
  131.     octet 2 | 1 |   | |   | |   | |   |    TID, gateway
  132. ------------+---+---+---+---+---+---+---+---|   | copies from
  133.     octet 3 |   |   | |   | |   | |   |  /  D) packet
  134. ------------+---+---+---+---+---+---+---+---|
  135.     octet 4 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
  136. ------------+---+---+---+---+---+---+---+---|
  137.     octet 5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
  138. ------------+---+---+---+---+---+---+---+---|
  139.     octet 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
  140. ------------+---+---+---+---+---+---+---+---|
  141.     octet 7 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
  142. ------------+---+---+---+---+---+---+---+---|
  143.     octet 8 |   |   | |   | |   | |   |  
  144. ------------+---+---+---+---+---+---+---+---|   | Compiled WML
  145.       ...   |   |   | |   | |   | |   |   | page.
  146. ------------+---+---+---+---+---+---+---+---|   |
  147.     octet n |   |   | |   | |   | |   |  /
  148. ------------+---+---+---+---+---+---+---+---|
  149. Fakewap needs to extract the TID so it can match it to the
  150. D) packet it sent. It can ignore the WML page for now.
  151. Packet G)
  152. bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
  153. ------------+---+---+---+---+---+---+---+---|
  154.     octet 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
  155. ------------+---+---+---+---+---+---+---+---|
  156.     octet 2 | 0 |   | |   | |   | |   |    TID, fakewap
  157. ------------+---+---+---+---+---+---+---+---|   | generates a
  158.     octet 3 |   |   | |   | |   | |   |  /  new one
  159. ------------+---+---+---+---+---+---+---+---|
  160.     octet 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
  161. ------------+---+---+---+---+---+---+---+---|
  162.     octet 5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
  163. ------------+---+---+---+---+---+---+---+---|
  164.     octet 6 |   |   | |   | |   | |   |  
  165. ------------+---+---+---+---+---+---+---+---|   | Session ID,
  166.       ...   |   |   | |   | |   | |   |   | copied from
  167. ------------+---+---+---+---+---+---+---+---|   | B) packet.
  168.     octet n |   |   | |   | |   | |   |  /
  169. ------------+---+---+---+---+---+---+---+---|