For
more information on WAP decoding and analysis
WAP Forum www.wapforum.com
WAP, Wireless Application
Protocol aims to provide Internet content and advanced
telephony services to digital mobile phones, pagers and
other wireless terminals. The protocol family works across
different wireless network environments and makes web pages
visible on low-resolution and low-bandwidth devices. WAP
phones are "smart phones" allowing their users
to respond to e-mail, access computer databases and to
empower the phone to interact with Internet-based content
and e-mail.
WAP specifies a
Wireless application Environment and Wireless Protocols.
The Wireless application environment (WAE) is based on
WSP (Wireless Session Protocol) and WTP (Wireless Transaction
Protocol).
The
OSI Model for Wireless Communication
 |
WAP
Protocol stack |
The basic construction
of WAP architecture can be explained using the following
model. The order of the independent levels which
are a hierarchy - has the advantage that the system is
very flexible and can be scaled up or down. Because of
the different levels or stacks - this is called
the "WAP Stack", which is divided into 5 different
levels.
- Application Layer:
Wireless Application Environment (WAE).
- Session Layer:
Wireless Session Protocol (WSP).
- Transaction Layer:
Wireless Transaction Protocol (WTP).
- Security Layer:
Wireless Transport Layer Security (WTLS).
- Transport Layer:
Wireless Datagram Protocol (WDP).
Each stack overlaps
with the stack below. This stack architecture makes it
possible for software manufacturers to develop applications
and services for certain stacks. They may even develop
services for stacks which are not specified yet.
The WAP stack is
an entity of protocols which cover the wireless data transfer.
The diagram above shows the order of the different stacks
and their protocols. This includes the stacks responsible
for the layout as well as the stacks resposible for the
actual data transfer. The highest level or stack is the
one which deals with the layout. A lower stack is responsible
for the transfer and the security through WTLS (Wireless
Transport Layer Security). All stacks lower than this one
are being called network stack. Due to this hierarchy of
stacks any changes made in the network stacks will have
no influence over the stacks above
Application
Layer (WAE and WTA)
The environment
for wireless applications (Wireless Application Environment
WAE) and the application for wireless phones (Wireless
Telephony Application WTA) are the highest layer in the
hierarchy of WAP architechture. These two are the main
interface to the client device, which gives and controls
the description language, the script language of any application
and the specifics of the telephony. WAE and WTA have only
a few easy functions on the client device, like the maintenance
of a history list, for example.
Session
Layer (Wireless Session Protocol WSP)
The Wireless Session
Protocol (WSP) has all the specifications for a session.
It is the interface between the application layer and the
transfer layer and delivers all functions that are needed
for wireless connections. A session mainly consists of
3 phases: start of the session, transfering information
back and forth and the end of the session. Additionally,
a session can be interrupted and started again (from the
point where it was interrupted.)
Transaction
Layer (Wireless Transaction Protocol WTP)
The specifications
for the transfer layer are in the Wireless Transaction
Protocol (WTP). Like the User Datagramm Protocol (UDP),
the WTP runs at the head of the datagramm service. Both
the UDP and the WTP are a part of the standard application
from the TCP/IP to make the simplified protocol compatible
to mobile terminals. WTP supports chaining together protocol
data and the delayed response to reduce the number of transmissions.
The protocol tries to optimize user interaction in order
that information can be received when needed.
Wireless Transport Layer Security WTLS
The Wireless Transport
Layer Security (WTLS) is a optional layer or stack which
consists of description devices. A secure transmission
is crucial for certain applications such as e-commerce
or WAP-banking and is a standard in these days. Furthermore
WTLS contains a check for data integrity, user authentification
and gateway security.
Transport
Layer (Wireless Datagram Protocol WDP)
The Wireless Datagram
Protocol (WDP) represents the transfer or transmission
layer and is also the interface of the network layer to
all the above stacks/layers. With the help of WDP the transmission
layer can be assimilated to the specifications of a network
operator. This means that WAP is completely independent
from any network operator. The transmission of SMS, USSD,
CSD, CDPD, IS-136 packet data and GPRS is supported. The
Wireless Control Message Protocol (WCMP) is an optional
addition to WAP, which will inform users about occurred
errors.
WTLS
Wapforum version
11/99
Wireless Transport
Layer Security is a protocol based on the TLS protocol.
It is used with the WAP transport protocols and has been
optimised for use over narrow-band communication channels.
The WTLs layer is above the transport protocol layer. The
required security layer of the protocol determines whether
it is used or not. It provides a secure transport service
interface that preserves the transport service interface
below; additionally it provides an interface for managing
secure connections. WTLS aims to provide privacy, data
integrity and authentication between two communication
applications. Among its features are datagram support,
optimised handshaking and dynamic key refreshing. It is
optimised for low-bandwidth bearer networks with relatively
long latency.
The WTLS Record
Protocol is a layered protocol. The Record Protocol takes
messages to be transmitted, optionally compresses the data,
applies a MAC, encrypts, and transmits the result. Received
data is decrypted, verified, and decompressed, then delivered
to higher-level clients. Four record protocol clients are
described in the WTLS standard; the change cipher spec
protocol, the handshake protocol, the alert protocol and
the application data protocol. If a WTLS implementation
receives a record type it does not understand, it ignores
it. Several records can be concatenated into one transport
SDU. For example, several handshake messages can be transmitted
in one transport SDU. This is particularly useful with
packet-oriented transports such as GSM short messages.
Handshake
protocols |
Alert
Protocol |
Application
Protocol |
Change
Cipher
Spec Protocol
|
| Record
protocol |
The handshake protocol
is made up of 3 sub-protocols. All messages are encapsulated
in a plaintext structure.
Interested in more details about
testing this protocol?
WTP
WAPforum WTP 11/6/99
The Wireless Transaction
Protocol provides the services necessary for interactive
browsing applications. During a browsing session the client
requests information from a server and the server responds
with the information. This is referred to as a transaction.
WTP runs on a datagram service and possible a security
service.
Advantages of WTP
include:
- Improved reliability
over datagram services
- Imported efficiency
over connection oriented services
- As a message
oriented protocol, it is designed for services oriented
towards transactions.
Main features:
- 3 kinds of transaction
services.
- Class 0
Unreliable invoke messages with no result messages
- Class 1:
Reliable invoke messages with no result messages
- Class 2:
Reliable invoke messages with exactly one reliable
result message.
- Reliability achieved
by using unique transaction identifiers, acknowledgements,
duplicate removal; and retransmissions.
- No explicit set
up or tear down phases.
- Optional user-to-user
reliability.
- Optionally the
last acknowledgement of the transaction may contain out-of-band
information.
- Concatenation
may be used to convey multiple PDUs in one service data
unit of the datagram transport.
- The basic unit
of interchange is an entire message, not a stream of
bytes.
- Mechanisms are
provided to minimize the number of transactions replayed
as a result of duplicate packets.
- Abort of outstanding
transactions.
- For reliable
invoke messages, both success and failure reported.
- Asynchronous
transactions allowed.
The protocol data
unit (PDU) consists of the header and data (if present).
The header contains a fixed part and a variable part; The
variable parts are carried in the Transport Information
Item (TPI). Each PDU has its own fixed header (the fixed
headers vary slightly in structure). As an example, the
structure of the invoke PDU fixed header appears below:
1 |
2-5 |
6 |
7 |
8 |
Con |
PDU Type |
GTR |
TTR |
RID |
TID
|
Version |
TIDnew |
U/P |
RES |
RES |
TCL |
CON
continue flag (1 bit):
The continue flag indicates the presence of any TPIs
in the variable part. If the flag is set, there are one or
more TPIs in the variable portion of the header. If the flag
is clear, the variable part of the header is empty. This flag
is also used as the first bit of a TPI, and indicates whether
the TPI is the last of the variable header. If the flag is
set, another TPI follows this TPI. If the flag is clear, the
octet after this TPI is the first octet of the user data.
PDU
type
The PDU type determines the length and structure of
the header and dictates what type of WTP PDU the PDU is (Invoke,
Ack, etc). This provides information to the receiving WTP provider
as to how the PDU data should be interpreted and what action
is required.
The following PDU
types are defined:
| PDU
Code |
PDU
Type |
0x01 |
Invoke
|
| 0x02 |
Result
|
| 0x03 |
Ack
|
| 0x04 |
Abort
|
| 0x05 |
Segmented
Invoke
|
| 0x06 |
Segmented
Result
|
| 0x07 |
Negative
Ack
|
Group
trailer (GTR) and Transmission trailer (TTR) flag (2
bit):
When segmentation and re-assembly is implemented, the
TTR flag is used to indicate the last packet of the segmented
message. The GTR flag is used to indicate the last packet of
a packet group.
GTR/TTR
flag combinations:
GTR
TTR Description
| 00 |
Not
last packet
|
| 01 |
Last
packet of message
|
| 10 |
Last
packet of packet group
|
| 11 |
Segmentation
and Re-assembly NOT supported.
|
The default setting
should be GTR=1 and TTR=1, that is, WTP segmentation and
re-assembly not supported.
RID
Re-transmission Indicator (1 bit):
Enables the receiver to differentiate between packets
duplicated by the network and packets re-transmitted by the
sender. In the original message the RID is clear. When the
message gets re-transmitted the RID is set.
TID
Transaction identifier (16 bit):
The TID is used to associate a packet with a particular
transaction.
Version
The current version is 0X00
TIDnew
flag
This bit is set when the Initiator has wrapped the TID
value, i.e. set it to be lower than the previous TID value.
U/P
When this flag is set it indicates that the Initiator
requires a User acknowledgement from the server WTP user. The
WTP user confirms every received message.
RES
This is a reserved bit and its value should be set to
0.
TCL
The transaction class shows the desired transaction
class in the invoke message.
Packet
sequence number (8 bit):
This is used by the PDUs belonging to the segmentation
and re
Interested in more details about
testing this protocol?
WSP
WAP WSP 5/11/99
The Session layer
protocol family in the WAP architecture is called the Wireless
Session Protocol, WSP. WSP provides the upper-level application
layer of WAP with a consistent interface for two session
services. The first is a connection-mode service that operates
above a transaction layer protocol WTP, and the second
is a connectionless service that operates above a secure
or non-secure datagram transport service.
The Wireless Session
Protocols currently offer services most suited for browsing
applications. WSP provides HTTP 1.1 functionality (it is
a binary form of HTTP) and incorporates new features such
as long-lived sessions, a common facility for data push,
capability negotiation and session suspend/resume. The
protocols in the WSP family are optimized for low-bandwidth
bearer networks with relatively long latency. Requests
and responses can include both headers and data. WSP provides
push and pull data transfer WSP functions on the transaction
and datagram services.
Messages can be
in connection mode or connectionless. Connection mode messages
are carried over WTP. In this case the protocol consists
of WTP protocol messages with WSP PDUs as their data. Connectionless
messages consist only of the WSP PDUs.
The general structure
of the WSP PDU is as follows:
| 1
bite1 bite |
|
| TID/PIDPDU
Type |
Type
Specific Contents |
TID/PID
Transaction ID or Push ID. The TID field is used to
associate requests with replies in the connectionless session
service. The presence of the TID is conditional. It is included
in the connectionless WSP PDUs, and is not included in the
connection-mode PDUs. In connectionless WSP, the TID is passed
to and from the session user as the "Transaction Id" or "Push
Id" parameters of the session primitive
PDU
type
The Type field specifies the type and function of the
PDU. The type numbers for the various PDUs are defined below.
The rest of the PDU is type-specific information, referred
to as the contents.
Number |
Name
Assigned
|
0x00 |
Reserved
|
0x01 |
Connect
|
0x02 |
ConnectReply
|
0x03 |
Redirect
|
0x04 |
Reply
|
0x05 |
Disconnect
|
0x06 |
Push
|
0x07 |
ConfirmedPush
|
0x08 |
Suspend
|
0x09 |
Resume
|
0x100x3 |
FUnassigned
|
0x40 |
Get
|
0x41 |
Options
(Get PDU)
|
0x42 |
Head
(Get PDU)
|
0x43 |
Delete
(Get PDU)
|
0x44 |
Trace
(Get PDU)
|
0x45-0x4 |
FUnassigned
(Get PDU)
|
0x50-0x5 |
FExtended
Method (Get PDU)
|
0x60 |
Post
|
0x61 |
Put
(Post PDU)
|
0x620x6 |
FUnassigned
(Post PDU)
|
0x70-0x7 |
FExtended
Method (Post PDU)
|
0x80-0x |
FFReserved
|
Interested in more details about
testing this protocol?
|