UNIT 4 (1) Mobile Computing
UNIT 4 (1) Mobile Computing
mobile host
access point
(foreign agent) „wired“ Internet
access point1
socket migration
and state transfer Internet
access point2
mobile host
Indirect TCP II
Advantages
❑ no changes in the fixed network necessary, no changes for the hosts
(TCP protocol) necessary, all current optimizations to TCP still
work
❑ transmission errors on the wireless link do not propagate into the
fixed network
❑ simple to control, mobile TCP is used only for one hop between, e.g.,
a foreign agent and mobile host
❑ therefore, a very fast retransmission of packets is possible, the
short delay on the mobile hop is known
Disadvantages
❑ loss of end-to-end semantics, an acknowledgement to a sender does
now not any longer mean that a receiver really got a packet, foreign
agents might crash
❑ higher latency possible due to buffering of data within the foreign
agent and forwarding to a new foreign agent
Snooping TCP I
TCP phases
❑ connection setup, data transmission, connection release
❑ using 3-way-handshake needs 3 packets for setup and release,
respectively
❑ thus, even short messages need a minimum of 7 packets!
Transaction oriented TCP
❑ RFC1644, T-TCP, describes a TCP version to avoid this overhead
❑ connection setup, data transfer and connection release can be
combined
❑ thus, only 2 or 3 packets are needed
Advantage
❑ efficiency
Disadvantage
❑ requires changed TCP
❑ mobility not longer transparent
Comparison of different approaches for a “mobile”
TCP
Approach Mechanism Advantages Disadvantages
Indirect TCP splits TCP connection isolation of wireless loss of TCP semantics,
into two connections link, simple higher latency at
handover
Snooping TCP “snoops” data and transparent for end-to- problematic with
acknowledgements, local end connection, MAC encryption, bad isolation
retransmission integration possible of wireless link
M-TCP splits TCP connection, Maintains end-to-end Bad isolation of wireless
chokes sender via semantics, handles link, processing
window size long term and frequent overhead due to
disconnections bandwidth management
Fast retransmit/ avoids slow-start after simple and efficient mixed layers, not
fast recovery roaming transparent
Transmission/ freezes TCP state at independent of content changes in TCP
time-out freezing disconnect, resumes or encryption, works for required, MAC
after reconnection longer interrupts dependant
Selective retransmit only lost data very efficient slightly more complex
retransmission receiver software, more
buffer needed
Transaction combine connection Efficient for certain changes in TCP
oriented TCP setup/release and data applications required, not transparent
transmission
WAP - Wireless Application Protocol
Goals
❑ deliver Internet content and enhanced services to mobile devices
and users (mobile phones, PDAs)
❑ independence from wireless network standards
❑ open for everyone to participate, protocol specifications will be
proposed to standardization bodies
❑ applications should scale well beyond current transport media
and device types and should also be applicable to future
developments
Platforms
❑ e.g., GSM (900, 1800, 1900), CDMA IS-95, TDMA IS-136, 3rd
generation systems (IMT-2000, UMTS, W-CDMA)
Forum
❑ WAP Forum, co-founded by Ericsson, Motorola, Nokia, Unwired
Planet
❑ further information http://www.wapforum.org
WAP - scope of standardization
Browser
❑ “micro browser”, similar to existing, well-known browsers in the
Internet
Script language
❑ similar to Java script, adapted to the mobile environment
WTA/WTAI
❑ Wireless Telephony Application (Interface): access to all
telephone functions
Content formats
❑ e.g., business cards (vCard), calendar events (vCalender)
Protocol layers
❑ transport layer, security layer, session layer etc.
Working Groups
❑ WAP Architecture Working Group, WAP Wireless Protocol
Working Group, WAP Wireless Security Working Group, WAP
Wireless Application Working Group
WAP - reference model and protocols
Internet A-SAP WAP
WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc.
WAP - network elements
HTML WML
HTML filter/
Binary WML
WAP
web HTML proxy
server
Goals of WDP
❑ create a worldwide interoperable transport system with the help
of WDP adapted to the different underlying technologies
❑ transmission services such as SMS in GSM might change, new
services can replace the old ones
WDP - Service Primitives
T-SAP T-SAP
T-DUnitdata.req
(DA, DP, SA, SP, UD) T-DUnitdata.ind
(SA, SP, UD)
T-DUnitdata.req
(DA, DP, SA, SP, UD)
T-DError.ind
(EC)
WTLS - Wireless Transport Layer Security
Goals
❑ data integrity
⚫ prevention of changes in data
❑ privacy
⚫ prevention of tapping
❑ authentication
⚫ creation of authenticated relations between a mobile device and a
server
❑ protection against denial-of-service attacks
⚫ protection against repetition of data and unverified data
WTLS
❑ is based on the TLS (Transport Layer Security) protocol (former
SSL, Secure Sockets Layer)
❑ optimized for low-bandwidth communication channels
Secure session, full handshake
originator peer
SEC-SAP SEC-SAP
SEC-Create.req
(SA, SP, DA, DP, KES, CS, CM) SEC-Create.ind
(SA, SP, DA, DP, KES, CS, CM)
SEC-Create.res
(SNM, KR, SID, KES‘, CS‘, CM‘)
SEC-Create.cnf SEC-Exchange.req
(SNM, KR, SID, KES‘, CS‘, CM‘)
SEC-Exchange.ind
SEC-Exchange.res
(CC)
SEC-Commit.req SEC-Exchange.cnf
(CC)
SEC-Commit.ind
SEC-Commit.cnf
SEC-Unitdata - transferring datagrams
sender receiver
SEC-SAP SEC-SAP
SEC-Unitdata.req
(SA, SP, DA, DP, UD) SEC-Unitdata.ind
(SA, SP, DA, DP, UD)
WTP - Wireless Transaction Protocol
Goals
❑ different transaction services, offloads applications
⚫ application can select reliability, efficiency
❑ support of different communication scenarios
⚫ class 0: unreliable message transfer
⚫ class 1: reliable message transfer without result message
⚫ class 2: reliable message transfer with exactly one reliable result message
❑ supports peer-to-peer, client/server and multicast applications
❑ low memory requirements, suited to simple devices (< 10kbyte )
❑ efficient for wireless transmission
⚫ segmentation/reassembly
⚫ selective retransmission
⚫ header compression
⚫ optimized connection setup (setup with data transfer)
WTP Class 0 transaction
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=0, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=0, H‘)
WTP Class 1 transaction, no user ack & user ack
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=1, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=1, H‘)
TR-Invoke.cnf
(H)
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=1, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=1, H‘)
TR-Invoke.res
TR-Invoke.cnf (H‘)
(H)
WTP Class 2 transaction, no user ack, no hold on
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=2, H‘)
TR-Result.req
TR-Invoke.cnf (UD*, H‘)
(H)
TR-Result.ind
(UD*, H)
TR-Result.res
(H) TR-Result.cnf
(H‘)
WTP Class 2 transaction, user ack
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=2, H‘)
TR-Invoke.res
TR-Invoke.cnf (H‘)
(H) TR-Result.req
TR-Result.ind (UD*, H‘)
(UD*, H)
TR-Result.res
(H) TR-Result.cnf
(H‘)
WTP Class 2 transaction, hold on, no user ack
initiator responder
TR-SAP TR-SAP
TR-Invoke.req
(SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.ind
(SA, SP, DA, DP, A, UD, C=2, H‘)
TR-Invoke.cnf
TR-Result.req
(H)
(UD*, H‘)
TR-Result.ind
(UD*, H)
TR-Result.res
(H) TR-Result.cnf
(H‘)
WSP - Wireless Session Protocol
Goals
❑ HTTP 1.1 functionality
⚫ Request/reply, content type negotiation, ...
❑ support of client/server, transactions, push technology
❑ key management, authentication, Internet security services
❑ session management (interruption, resume,...)
Services
❑ session management (establish, release, suspend, resume)
❑ capability negotiation
❑ content encoding
WSP/B (Browsing)
❑ HTTP/1.1 functionality - but binary encoded
❑ exchange of session headers
❑ push and pull data transfer
❑ asynchronous requests
WSP/B session establishment
client server
S-SAP S-SAP
S-Connect.req
(SA, CA, CH, RC) S-Connect.ind
(SA, CA, CH, RC)
S-Connect.res
S-Connect.cnf (SH, NC)
(SH, NC)
WTP Class 2
transaction
WSP/B session suspend/resume
client server
S-SAP S-SAP
S-Suspend.req S-Suspend.ind
S-Suspend.ind (R)
(R) WTP Class 0
transaction
S-Resume.req ~ ~
(SA, CA) S-Resume.ind
(SA, CA)
S-Resume.res
S-Resume.cnf
WTP Class 2
transaction
WSP/B session termination
client server
S-SAP S-SAP
S-Disconnect.req
(R) S-Disconnect.ind
S-Disconnect.ind (R)
(R) WTP Class 0
transaction
WSP/B method invoke
client server
S-SAP S-SAP
S-MethodInvoke.req
(CTID, M, RU) S-MethodInvoke.ind
(STID, M, RU)
S-MethodInvoke.res
S-MethodInvoke.cnf (STID)
(CTID) S-MethodResult.req
S-MethodResult.ind (STID, S, RH, RB)
(CTID, S, RH, RB)
S-MethodResult.res
(CTID) S-MethodResult.cnf
(STID)
WTP Class 2
transaction
WSP/B over WTP - method invocation
S-MethodInvoke.req TR-Invoke.req
TR-Invoke.indS-MethodInvoke.ind
TR-Invoke.res S-MethodInvoke.res
S-MethodInvoke.cnf TR-Invoke.cnf
TR-Result.req S-MethodResult.req
S-MethodResult.ind TR-Result.ind
S-MethodResult.res TR-Result.res
TR-Result.cnf S-MethodResult.cnf
WSP/B over WTP - asynchronous, unordered requests
client server
S-SAP S-SAP
S-MethodInvoke_1.req
S-MethodInvoke_2.req
S-MethodInvoke_2.ind
S-MethodInvoke_1.ind
S-MethodInvoke_3.req S-MethodResult_1.req
S-MethodInvoke_3.ind
S-MethodResult_1.ind
S-MethodResult_3.req
S-MethodResult_3.ind
S-MethodResult_2.req
S-MethodInvoke_4.req
S-MethodInvoke_4.ind
S-MethodResult_4.ind S-MethodResult_4.req
S-MethodResult_2.ind
WSP/B - confirmend/non-confirmed push
client server
S-SAP S-SAP
S-Push.req
S-Push.ind (PH, PB)
(PH, PB)
WTP Class 0
transaction
client server
S-SAP S-SAP
S-ConfirmedPush.req
S-ConfirmedPush.ind (SPID, PH, PB)
(CPID, PH, PB)
S-ConfirmedPush.res
(CPID) S-ConfirmedPush.cnf
(SPID)
WTP Class 1
transaction
WSP/B over WDP
client server
S-Unit-MethodInvoke.req S-SAP S-SAP
(SA, CA, TID, M, RU) S-Unit-MethodInvoke.ind
(SA, CA, TID, M, RU)
S-Unit-MethodResult.req
S-Unit-MethodResult.ind (CA, SA, TID, S, RH, RB)
(CA, SA, TID, S, RH, RB)
S-Unit-Push.req
S-Unit-Push.ind (CA, SA, PID, PH, PB)
(CA, SA, PID, PH, PB)
WDP Unitdata
service
WAE - Wireless Application Environment
Goals
❑ network independent application environment for low-bandwidth,
wireless devices
❑ integrated Internet/WWW programming model with high
interoperability
Requirements
❑ device and network independent, international support
❑ manufacturers can determine look-and-feel, user interface
❑ considerations of slow links, limited memory, low computing power,
small display, simple user interface (compared to desktop computers)
Components
❑ architecture: application model, browser, gateway, server
❑ WML: XML-Syntax, based on card stacks, variables, ...
❑ WMLScript: procedural, loops, conditions, ... (similar to JavaScript)
❑ WTA: telephone services, such as call control, text messages, phone
book, ... (accessible from WML/WMLScript)
❑ content formats: vCard, vCalendar, Wireless Bitmap, WML, ...
WAE logical model
WTA
web response encoded
user agent
server with response
content encoders with
& content
decoders WML
other content
server user agent
push encoded
content push
content other
WAE
request encoded user agents
request
Wireless Markup Language (WML)
Complement to WML
Provides general scripting capabilities
Features
❑ validity check of user input
⚫ check input before sent to server
❑ access to device facilities
⚫ hardware and software (phone call, address book etc.)
❑ local user interaction
⚫ interaction without round-trip delay
❑ extensions to the device software
⚫ configure device, download new functionality after deployment
WMLScript - example
function pizza_test(pizza_type) {
var taste = "unknown";
if (pizza_type = "Margherita") {
taste = "well... ";
}
else {
if (pizza_type = "Vulcano") {
taste = "quite hot";
};
};
return taste;
};
Wireless Telephony Application (WTA)
third party
firewall
origin servers
Voice box example
WTA client WTA server mobile network voice box server
incoming voice
indicate new voice message message
generate
push deck new deck
display deck;
user selects request
accept call
accept call accept call
voice connection
WTAI - example with WML only
<WML>
<CARD>
<DO TYPE="ACCEPT" TASK="GO" URL="#voteChamp"/>
Please vote for your champion!
</CARD>
<CARD NAME="voteChamp">
<DO TYPE="ACCEPT" TASK="GO" URL="wtai://cc/sc;$voteNo;1"/>
Please choose:
<SELECT KEY="voteNo">
<OPTION VALUE="6086415">Mickey</OPTION>
<OPTION VALUE="6086416">Donald</OPTION>
<OPTION VALUE="6086417">Pluto</OPTION>
</SELECT>
</CARD>
</WML>
WTAI - example with WML and WMLScript I
function voteCall(Nr) {
var j = WTACallControl.setup(Nr,1);
if (j>=0) {
WMLBrowser.setVar("Message", "Called");
WMLBrowser.setVar("No", Nr);
}
else {
WMLBrowser.setVar("Message", "Error!");
WMLBrowser.setVar("No", j);
}
WMLBrowser.go("showResult");
}
WTAI - example with WML and WMLScript II
<WML>
<CARD>
<DO TYPE="ACCEPT" TASK="GO" URL="#voteChamp"/>
Please vote for your champion!
</CARD>
<CARD NAME="voteChamp">
<DO TYPE="ACCEPT" TASK="GO" URL="/script#voteCall($voteNo)"/>
Please choose:
<SELECT KEY="voteNo">
<OPTION VALUE="6086415">Mickey</OPTION>
<OPTION VALUE="6086416">Donald</OPTION>
<OPTION VALUE="6086417">Pluto</OPTION>
</SELECT>
</CARD>
<CARD NAME="showResult">
Status of your call: $Message $No
</CARD>
</WML>
Examples for WAP protocol stacks
WAP standardization
WAE user agent
outside WAP
WAE
transaction based
WSP application
datagram based
WTP WTP application