Chapter 4: Wireless Internet Introduction What is Wireless Internet? Mobile IP TCP in Wireless Domain WAP Optimizing Web over Wireless 1 What is Wireless Internet? Wireless Internet refers to the extension of the services offered by the Internet to mobile users. Many issues need to be solved for wireless Internet: • Address mobility: Traditional IP addressing does not support address mobility. Mobile IP is a solution to these network layer issue. • Inefficiency of transport layer protocols: Traditional TCP might falsely identify that the data loss is because of congestion but in fact because of transmission errors and then reduce the transmitting rate. This would make the situation even worse. Indirect-TCP (ITCP), snoop TCP, and mobile TCP are some solutions to these transport layer issues. • Inefficiency of application layer protocols: The capabilities of and the bandwidth for the handheld devices are limited. Traditional application protocols are not efficient for wireless networks. Wireless application protocol (WAP) is some solution to these application layer issues. This chapter is focused on the issues in network, transport, and application layers and the solutions to these problems. 2 Motivation for Mobile IP Problem: Routing • based on IP destination address, network prefix (e.g. 156.26.10) determines physical subnet • change of physical subnet implies change of IP address to have a topological correct address (standard IP) or needs special entries in the routing tables Solution : Changing the IP-address? • adjust the host IP address depending on the current location • almost impossible to find a mobile system, DNS updates take to long time • TCP connections break, security problems Solution: Specific routes to end-systems? • change of all routing table entries to forward packets to the right destination • does not scale with the number of mobile hosts and frequent changes in the location, .security problems 3 Requirements to Mobile IP (RFC 3344, was: 3220, 2002) Compatibility • Mobile IP remains compatible with all lower layers protocols • no changes to current end-systems and routers required • mobile end-systems can communicate with fixed systems Efficiency and scalability • only little additional messages to the mobile system required (connection typically via a low bandwidth radio link in Mobile IP) • world-wide support of a large number of mobile systems in the whole Internet Transparency • mobile end-systems keep their IP address • continuation of communication after interruption of link possible • point of connection to the fixed network can be changed Security • authentication of all messages related to Mobile IP management 4 Terminology Mobile Node (MN): system (node) that can change the point of connection to the network without changing its IP address Home Agent (HA) • system in the home network of the MN, typically a router • registers the location of the MN, tunnels IP datagrams to the COA Foreign Agent (FA) • system in the current foreign network of the MN, typically a router • forwards the tunneled datagrams to the MN, typically also the default router for the MN Correspondent Node (CN): communication partner Care-of Address (COA) • • • • address of the current tunnel end-point for the MN (at FA or MN) actual location of the MN from an IP point of view can be chosen, e.g., via DHCP Two types of addresses: • Foreign agent-based COA: The COA could be located at the FA. • Co-located COA: The COA is co-located if the MN acquired additional IP address which acts as COA. 5 Motivation for Mobile IP Data Path for Foreign Agent Care-of Address Data Path for Co-located Care-of Address 6 Motivation for Mobile IP Problem: Routing • based on IP destination address, network prefix (e.g. 156.26.10) determines physical subnet • change of physical subnet implies change of IP address to have a topological correct address (standard IP) or needs special entries in the routing tables Solution : Changing the IP-address? • adjust the host IP address depending on the current location • almost impossible to find a mobile system, DNS updates take to long time • TCP connections break, security problems Solution: Specific routes to end-systems? • change of all routing table entries to forward packets to the right destination • does not scale with the number of mobile hosts and frequent changes in the location, .security problems 7 Example network HA MN router home network mobile end-system Internet (physical home network for the MN) FA foreign network router (current physical network for the MN) CN end-system router 8 Data transfer to the mobile system HA 2 MN home network Internet receiver 3 FA 1 CN sender foreign network 1. Sender sends to the IP address of MN, HA intercepts packet (proxy ARP) 2. HA tunnels packet to COA, here FA, by encapsulation 3. FA forwards the packet to the MN 9 Data transfer from the mobile system HA 1 home network MN sender Internet FA foreign network 1. Sender sends to the IP address of the receiver as usual, FA works as default router CN receiver 10 Overview COA home network router FA router HA MN foreign network Internet CN router 3. home network router HA router FA 2. MN 4. Internet foreign network 1. CN router 11 Mobile IP with Reverse Tunneling Normally, the Mobile Node sends packets directly back to the Correspondent Node. But this might not work all the time. • Ingress filtering: Some routers filter those packets that don’t have the same network subnet as the network where those packets are sent. For example, Without a reverse tunnel a multicast packet sent from the MN will be filtered by the routers. • Firewalls: Most firewalls filter and drop packets that originate from outside the local network but appear has a source address that belongs to the local network. The packets sent to the home network might be dropped. • Time to live (TTL): TTL in the home network is correct, but might be too low because MN is to far away from the receiver. Router accept often only “topological correct“ addresses (firewall!) • A packet from the MN encapsulated by the FA is not topological correct in a foreign network or home network. • Reverse tunnels are needed for the MN to participate in multicast . • TTL problems should be solved. 12 Mobile IP with reverse tunneling With reverse tunneling, the Mobile Node sends packets back to the Correspondent Node through a tunnel between its Care-of Address and the Home Agent. The Home Agent then forwards the packet to the Correspondent Node. Reverse tunneling does not solve • problems with firewalls, the reverse tunnel can be abused to circumvent security mechanisms (tunnel hijacking) • optimization of data paths, i.e. packets will be forwarded through the tunnel via the HA to a sender (double triangular routing) The reverse tunneling standard • • • • Define reverse tunneling as an extension to mobile IP. Designed backwards-compatible to mobile IP An option to mobile IP (RFC 3344) The extensions can be implemented easily and cooperate with those implementations without these extensions. 13 Reverse tunneling (RFC 3024, was: 2344) HA 2 MN home network Internet sender 1 FA 3 CN receiver foreign network 1. MN sends to FA 2. FA tunnels packets to HA by encapsulation 3. HA forwards the packet to the receiver (standard case) 14 Mobile IP with Reverse Tunneling Return Data Path for Reverse Tunnelling with Direct Delivery Style Return Data Path for Reverse Tunneling with Encapsulating Delivery Style 15 Network integration Agent Advertisement • HA and FA periodically send advertisement messages into their physical subnets • MN listens to these messages and detects, if it is in the home or a foreign network (standard case for home network) • MN reads a COA from the FA advertisement messages Agent solicitation • MN can search for an FA by sending out solicitation messages. Registration (always limited lifetime!) • MN signals COA to the HA via the FA, HA acknowledges via FA to MN • these actions have to be secured by authentication Integration • HA advertises the IP address of the MN (as for fixed systems), i.e. standard routing information • routers adjust their entries, these are stable for a longer time (HA responsible for a MN over a longer period of time) • packets to the MN are sent to the HA, 16 • independent of changes in COA/FA Agent advertisement Agent Advertisement • Use ICMP with mobility extension Lifetime: length of time this advertisement is valid. Preference helps a node choose the router 0 7 8 type #addresses 15 16 23 24 checksum lifetime 31 code addr. size router address 1 preference level 1 router address 2 preference level 2 type = 16 ... length = 6 + 4 * #COAs R: registration required type = 16 length sequence number B: busy, no more registrations R B H F M G r T reserved registration lifetime H: home agent COA ... 1 F: foreign agent COA 2 M: minimal encapsulation G: GRE (Generic Routing Encapsulation) r: =0, ignored (former Van Jacobson compression) T: FA supports reverse tunneling 17 reserved: =0, ignored Registration MN FA HA MN HA t t The COA is at the FA The COA is co-located in MN 18 Mobile IP registration request 0 7 8 type = 1 15 16 S B DMG r T x home address home agent COA 23 24 lifetime 31 identification extensions . . . S: simultaneous bindings B: broadcast datagrams D: decapsulation by MN M mininal encapsulation G: GRE encapsulation r: =0, ignored T: reverse tunneling requested x: =0, ignored 19 Mobile IP registration reply 0 7 8 type = 3 15 16 code home address home agent 31 lifetime identification Example codes: extensions . . . registration successful 0 registration accepted 1 registration accepted, but simultaneous mobility bindings unsupported registration denied by FA 65 administratively prohibited 66 insufficient resources 67 mobile node failed authentication 68 home agent failed authentication 69 requested Lifetime too long registration denied by HA 129 administratively prohibited 131 mobile node failed authentication 133 registration Identification mismatch 135 too many simultaneous mobility bindings 20 Encapsulation A tunnel establishes a virtual pipe between a tunnel entry and a tunnel endpoint. Encapsulation is the mechanism of taking a packet consisting of packet header and data and putting it into the data part of a new packet. Decapsulation is an operation that takes a packet out of the data part of another packet. original IP header new IP header outer header original data new data inner header original data 21 Encapsulation (1) (IP-in-IP encapsulation) Encapsulation of one packet into another as payload • e.g. IPv6 in IPv4 (6Bone), Multicast in Unicast (Mbone) • here: e.g. IP-in-IP-encapsulation, minimal encapsulation or GRE (Generic Record Encapsulation) IP-in-IP-encapsulation (mandatory, RFC 2003) • tunnel between HA and COA ver. IHL DS (TOS) length IP identification flags fragment offset TTL IP-in-IP IP checksum IP address of HA Care-of address COA ver. IHL DS (TOS) length IP identification flags fragment offset TTL lay. 4 prot. IP checksum IP address of CN IP address of MN TCP/UDP/ ... payload 22 Encapsulation (2) (Minimal encapsulation) Minimal encapsulation (optional) • Avoid duplication of identical fields • e.g. TTL, IHL, version, DS (RFC 2474, old: TOS) • only applicable for unfragmented packets, no space left for fragment identification ver. IHL DS (TOS) length IP identification flags fragment offset TTL min. encap. IP checksum IP address of HA care-of address COA lay. 4 protoc. S reserved IP checksum IP address of MN original sender IP address (if S=1) TCP/UDP/ ... payload 23 Generic Routing Encapsulation Generic routing encapsulation (GRE) supports other network layer protocols in addition to IP. GRE allows the encapsulation of packets of one protocol suite into the payload portion of a packet of another protocol suite. RFC 1701 ver. IHL DS (TOS) length IP identification flags fragment offset TTL GRE IP checksum IP address of HA Care-of address COA C R K S s rec. rsv. ver. protocol checksum (optional) offset (optional) key (optional) sequence number (optional) routing (optional) ver. IHL DS (TOS) length IP identification flags fragment offset TTL lay. 4 prot. IP checksum IP address of CN IP address of MN TCP/UDP/ ... payload outer header GRE header new header original header original data original header original data new data RFC 2784 C reserved0 ver. checksum (optional) protocol reserved1 (=0) 24 Optimization of packet forwarding Triangular Routing • sender sends all packets via HA to MN • higher latency and network load Solutions: the optimized mobile IP protocol • • • • Sender (CN) learns the current location of MN direct tunneling to this location HA informs a sender about the location of MN big security problems! Tunnel hijacking, location exposed Route optimization • Binding cache: The CN can keep the mapping of MN’s IP address and COA in a cache. • Binding request and binding update: The CN can find the binding using a binding request message, to which the HA responds with a binding update message. • Binding acknowledgement: Conformation of binding. • Binding warning: In some cases, a handoff may occur, but CN may continue 25 to use the old mapping. Optimization of packet forwarding Any optimization scheme should try to ensure guaranteed delivery, low latency, and low overhead. Simultaneous bindings is a feature of Mobile IP that allows an MN to register more than one COA at the same time, that is the HA allows MN to register more than one COA. The mobile IP variations include four options for packets directed from the MN to the CN and four more options for packets from the CN to the MN. See Table 4.1 and 4.2. 26 Change of foreign agent CN HA Data Update FAold FAnew Data MN Data ACK Data Data MN changes location Update ACK Data Data Warning Registration Data Request Update ACK Data Data t 27 Handoffs A handoff is required when the MN changes its FA because the signal of the current FA becomes weak. The typical phases involved in handoff are: • Measure the signal strength • Decide where and when to hand off • Establish a new connection Classification of Handoffs: • Mobile initiated handoff: The MN measures the signal strength and decides the handoff. • Mobile evaluated handoff: The MN measures the signal strength but BS decides the handoff. • Network initiated handoff: the network (BS) measures the signal strength and decides where the MN should be handed over. • Mobile assisted handoff: The MN assists the network in the network initiated scenario by measuring the downlink signal strength. 28 Handoffs Classification of Handoffs: • Hard handoff: only one active connection at a time. • Soft handoff: two active connections during the handoff. Signaling procedure-based handoffs: • Forward handoff: MN decides the target BS and requests the target BS for the handoff. • Backward handoff: MN decides the target BS and requests the current BS for the handoff. Fast handoffs are required to reduce the delay. • Pre-registration handoffs: the registration with the HA takes place before the handoff while the MN is still attached to the old FA. • Post-registration handoffs: registration takes place after the MN is connected to the new FA. 29 Mobility Support The mobility management can be categorized into two types: • Macro-mobility protocols such as the Mobile IP deal with the inter-domain movement. • Micro-mobility protocols aim to handle local movement (intra-domain) of mobile hosts without interaction with the Mobile IP enabled Internet. Micro-mobility is required to support: • Efficient local handover inside a foreign domain without involving a home agent • Reduces control traffic on backbone • Especially needed in case of route optimization Micro-mobility approaches: • • • • • Handoff Aware Wireless Access Internet Architecture (HAWAII) Cellular IP Terminal Independent Mobility for IP (TIMIP) Hierarchical Mobile IP (HMIP) Hierarchical Mobile IPv6 (HMIPv6) Important criteria: Security Efficiency, Scalability, Transparency, Manageability 30 Macro and Micro mobility Home Agent Macro mobility by Mobile IP Home Network INTERNET FA Macro-mobility handover Micro-mobility handover Gateway as FA Micro mobility domain Handovers in Micro Mobility transparent outside the domain 31 Hierarchical Architecture Elements in different levels • Access router (AR) • A number of access routers organize access network • Each router incorporates mobility management functions • Access point (AP) • An AR that directly communicates with the mobile terminals at the radio interface • Access Network Gateway (ANG) • The root AR, interfacing with the core IP network • Perform mobility management functions to support MobileIP-based macromobility • Mobile terminal (MT) • Runs the user applications • Roaming between different APs 32 Mobile IP and IPv6 Mobile IP was developed for IPv4, but IPv6 simplifies the protocols • security is integrated and not an add-on, authentication of registration is included • COA can be assigned via auto-configuration (DHCPv6 is one candidate), every node has address auto-configuration • no need for a separate FA, all routers perform router advertisement which can be used instead of the special agent advertisement; addresses are always co-located • MN can signal a sender directly the COA, sending via HA not needed in this case (automatic path optimization) • “soft“ hand-over, i.e. without packet loss, between two subnets is supported • MN sends the new COA to its old router • the old router encapsulates all incoming packets for the MN and forwards them to the new COA • authentication is always granted 33 HAWAII Operation: • MN obtains co-located COA and registers with HA • Handover: MN keeps COA, new BS answers Reg. Request and updates routers • MN views BS as foreign agent 1 Internet HA 2 3 4 Backbone Router Crossover Router Security provisions: • MN-FA authentication mandatory • Challenge/Response Extensions mandatory 4 BS BS Mobile IP 3 MN 2 Mobile IP BS MN DHCP Server 1 DHCP 34 HAWAII: Security Advantages: • Mutual authentication and Challenge/Response extensions mandatory • Only infrastructure components can influence routing entries Potential problems: • Co-located COA raises DHCP security issues (DHCP has no strong authentication) • Decentralized security-critical functionality (Mobile IP registration processing during handover) in base stations • Authentication of HAWAII protocol messages unspecified (potential attackers: stationary nodes in foreign network) • MN authentication requires PKI (Public Key Infrastructure) or AAA (Authentication, Authorization, and Accounting) infrastructure 35 HAWAII: Other issues Advantages: • Transparency: Mostly transparent to MNs (MN sends/receives standard Mobile IP messages) • Explicit support for dynamically assigned home addresses Disadvantages: • Mixture of co-located COA and FA concepts may not be supported by some MN implementations • No private address support possible because of co-located COA 36 Cellular IP Operation: • CIP node (gateway) maintains routing entries (soft state) for MNs • Multiple entries possible • Routing entries updated based on packets sent by MN CIP (Cellular IP) Gateway: • Mobile IP tunnel endpoint • Initial registration processing Security provisions: • all CIP Nodes share “network key“ • MN key: MD5(net key, IP addr) • MN gets key upon registration Internet Mobile IP CIP Gateway data/control packets from MN 1 BS MN1 BS BS packets from MN2 to MN 1 MN2 37 Cellular IP: Security Advantages: • Initial registration involves authentication of MNs and is processed centrally by CIP Gateway • All control messages by MNs are authenticated • Replay-protection (using timestamps) Potential problems: • • • • • MNs can directly influence routing entries Network key known to many entities (increases risk of compromise) No re-keying mechanisms for network key No choice of algorithm (always MD5, prefix+suffix mode) Proprietary mechanisms (not, e.g., IPSec AH) 38 Cellular IP: Other issues Advantages: Manageability • Simple and elegant architecture • Mostly self-configuring (little management needed) • Integration with firewalls / private address support possible Disadvantages: • Efficiency: Multiple-path forwarding may cause inefficient use of available bandwidth • Transparency: Not transparent to MNs (additional control messages) • Security: Public-key encryption of MN keys may be a problem for resource-constrained MNs 39 TIMIP Terminal Independent Mobility for IP (TIMIP) • An Architecture for IP mobility in wireless access networks • Based on principles similar to those in the HAWAII and Cellular IP architectures • Suited for micro-mobility scenarios • using Mobile IP for macro-mobility TIMIP can be implemented in the network nodes and work transparently to the IP layer of the terminals Micro-mobility: Whenever the MN moves within the same TIMIP domain, the route updates and the corresponding acknowledgements will propagate up the hierarchy until the crossover AR is reached. Macro-mobility: Similar to Cellular IP and HAWAII, TIMIP relies solely on Mobile IP to support macro-mobility. 40 TIMIP architecture Access point (level 1) Access router (level 2) Core Tunneling network Access router (level n-x) Access router (level 2) Access network gateway (level n) Access point (level 1) 41 Hierarchical Mobile IPv6 (HMIPv6) Operation: • Network contains mobility anchor point (MAP) • mapping of regional COA (RCOA) to link COA (LCOA) • Upon handover, MN informs MAP only • gets new LCOA, keeps RCOA • HA is only contacted if MAP changes Security provisions: • no HMIP-specific security provisions • binding updates should be authenticated binding update Internet HA RCOA MAP AR AR LCOAnew LCOAold MN MN 42 Hierarchical Mobile IP: Security Advantages: • Local COAs can be hidden, which provides some location privacy • Direct routing between CNs sharing the same link is possible (but might be dangerous) Potential problems: • Decentralized security-critical functionality (handover processing) in mobility anchor points • MNs can (must!) directly influence routing entries via binding updates (authentication necessary) 43 Hierarchical Mobile IP: Other issues Advantages: • Handover requires minimum number of overall changes to routing tables • Integration with firewalls / private address support possible Potential problems: • Not transparent to MNs • Handover efficiency in wireless mobile scenarios: • Complex MN operations • All routing reconfiguration messages sent over wireless link 44 Problems with mobile IP Security Problems • Registration request by a malicious node • Replay attacks • Tunnel hijacking • A FA can itself be a malicious node. • Authentication with FA problematic, for the FA typically belongs to another organization • Patent and export restrictions • IETF is working on the protocol for key management and key distribution has been standardized in the Internet. Firewalls • typically mobile IP cannot be used together with firewalls, special set-ups are needed (such as reverse tunneling) QoS • many new reservations in case of RSVP (Resource reSerVation Protocol) • tunneling makes it hard to give a flow of packets a special treatment needed for the QoS Security, firewalls, QoS etc. are topics of current research and discussions! 45 Security in Mobile IP Security requirements (Security Architecture for the Internet Protocol, RFC 1825) • Integrity any changes to data between sender and receiver can be detected by the receiver • Authentication sender address is really the address of the sender and all data received is really data sent by this sender • Confidentiality only sender and receiver can read the data • Non-Repudiation (Non-Denial of the message previously sent) • sender cannot deny sending of data (The sender can prove that the message was in fact received by the alleged receiver.) • The receiver can prove that the message was in fact sent by the alleged sender. • Traffic Analysis creation of traffic and user profiles should not be possible • Replay Protection 46 receivers can detect replay of messages IP security architecture (1) Two or more partners have to negotiate security mechanisms to setup a security association • typically, all partners choose the same parameters and mechanisms Two headers have been defined for securing IP packets: • Authentication-Header • guarantees integrity and authenticity of IP packets • if asymmetric encryption schemes are used, non-repudiation can also be guaranteed IP-Header IP header Authentification-Header authentication header UDP/TCP-Paket UDP/TCP data • Encapsulation Security Payload • protects confidentiality between communication partners not encrypted IP header encrypted ESP header encrypted data 47 IP security architecture (2) Mobile Security Association for registrations • parameters for the mobile host (MH), home agent (HA), and foreign agent (FA) Extensions of the IP security architecture • extended authentication of registration MH-FA authentication FA-HA authentication MH-HA authentication registration request MH registration reply registration request FA registration reply HA • prevention of replays of registrations • time stamps: 32 bit time stamps + 32 bit random number • nonces: 32 bit random number (MH) + 32 bit random number (HA) 48 Key distribution Home agent distributes session keys FA HA MH response: EHA-FA {session key} EHA-MH {session key} foreign agent has a security association with the home agent mobile host registers a new binding at the home agent home agent answers with a new session key for foreign agent and 49 mobile node MRSVP – Resource Reservation The current Resource reSerVation Protocol (RSVP) is not adequate for mobile and wireless networks. Mobility-aware RSVP protocols: • Require that an MN must be able to make advance reservations along data flow paths. • Have information on the set of locations from which the MN requires reservations, mobility specification (MSPEC). • Two types of reservations: • Active: an active reservation is a normal RSVP-like reservation that is on the data flow path from the current location of the MN. • Passive: A passive reservation is made along all paths to and from other locations in MSPEC of the MN. Components in MRSVP: • Proxy agents (PAs) make reservations on behalf of mobile senders and receivers. • A local proxy agent (LPA) is that to which the MN is currently attached. • Every other agent in the MSPEC will be a remote proxy agent (RPA). 50 MRSVP – Resource Reservation MRSVP Schemes: • The sender periodically generates ACTIVE PATH messages, and for a mobile sender the Pas will send PASSIVE PATH messages. • The PAs for a mobile receiver send the PASSIVE RESV messages while the receiver itself sends the ACTIVE RESV message. The key issues: • The identification of proxy agents perform the reservations on behalf of an MN. • The identification of flow anchors, a senderAnchor act as fixed points in the flow path. • The establishment of both active and passive reservations for the MN according to the MSPEC. • The actual message sequences that lead to the reservation depend on the type of the follow and the strategy adopted. 51 DHCP: Dynamic Host Configuration Protocol Application • simplification of installation and maintenance of networked computers • supplies systems with all necessary information, such as IP address, DNS server address, domain name, subnet mask, default router etc. • enables automatic integration of systems into an Intranet or the Internet, can be used to acquire a COA for Mobile IP Client/Server-Model • the client sends via a MAC broadcast a request to the DHCP server (might be via a DHCP relay) DHCPDISCOVER DHCPDISCOVER server client client relay 52 DHCP - Protocol Mechanisms client initialization server (not selected) determine the configuration DHCPDISCOVER DHCPDISCOVER DHCPOFFER DHCPOFFER server (selected) determine the configuration collection of replies selection of configuration DHCPREQUEST (reject) DHCPREQUEST (options) confirmation of configuration DHCPACK initialization completed release DHCPRELEASE delete context 53 DHCP Characteristics Server • several servers can be configured for DHCP, coordination not yet standardized (i.e., manual configuration) Renewal of configurations • IP addresses have to be requested periodically, simplified protocol Options • available for routers, subnet mask, NTP (network time protocol) timeserver, SLP (service location protocol) directory, DNS (domain name system) Big security problems! • no authentication of DHCP information specified 54 Mobile ad hoc networks Standard Mobile IP needs an infrastructure • Home Agent/Foreign Agent in the fixed network • DNS, routing etc. are not designed for mobility Sometimes there is no infrastructure! • remote areas, ad-hoc meetings, disaster areas • cost can also be an argument against an infrastructure! Main topic: routing • no default router available • every node should be able to forward A B C 55 Manet: Mobile Ad-hoc Networking Mobile Router Manet Mobile Devices Mobile IP, DHCP Fixed Network Router End system 56 Transport layer Functions of Transport layer: • Provide point-to-point communication (process to process) • Multiplex/de-multiplex data from/to applications. • determine the service to the session layer • TCP (Transmission Control Protocol) – connection-oriented, in-order reliable data transmission • UDP (User Datagram Protocol) – connectionless, unreliable data transmission. TCP Examples: • • • • • • SMTP (Simple Mail Transfer Protocol) – electronic mail Telnet (remote login) FTP (File Transfer Protocol) HTTP (HyperText Transfer Protocol) NNTP (Network News Transfer Protocol) BGP (Border Gateway Protocol) – routing 57 Transport Layer Examples E.g. HTTP (used by web services) typically uses TCP • Reliable transport between client and server required Client TCP SYN TCP SYN/ACK TCP • Steam oriented, not transaction oriented • Network friendly: time-out congestion slow down transmission Well known – TCP guesses quite often wrong in wireless and mobile networks Server Connection setup TCP ACK HTTP request HTTP response Data transmission >15 s no data GPRS: 500ms! Connection release • Packet loss due to transmission errors • Packet loss due to change of network Result • Severe performance degradation 58 Traditional TCP (1) Transport protocols typically designed for • Fixed end-systems • Fixed, wired networks Research activities • Performance • Congestion control • Efficient retransmissions TCP congestion control • packet loss in fixed networks is typically due to (temporary) overload situations • router have to discard packets as soon as the buffers are full • TCP recognizes congestion only indirect via missing acknowledgements, retransmissions unwise, they would only contribute to the congestion and make it even worse • slow-start algorithm as reaction 59 Traditional TCP (2) TCP slow-start algorithm • sender calculates a congestion window for a receiver • start with a congestion window size equal to one segment • exponential increase of the congestion window up to the congestion threshold, then linear increase • missing acknowledgement causes the reduction of the congestion threshold to one half of the current congestion window • congestion window starts again with one segment TCP fast retransmit/fast recovery • TCP sends an acknowledgement only after receiving a packet • if a sender receives several acknowledgements for the same packet, this is due to a gap in received packets at the receiver (So the receiver keeps acknowledging the same packet.) • however, the receiver got all packets up to the gap and is actually receiving packets • therefore, packet loss is not due to congestion, continue with current congestion window (do not use slow-start) 60 • The sender then performs fast retransmission and a fast recovery. TCP Over Wireless TCP assumes congestion if packets are dropped • typically wrong in wireless networks, here we often have packet loss due to transmission errors • furthermore, mobility itself can cause packet loss, if e.g. a mobile node roams from one access point (e.g. foreign agent in Mobile IP) to another while there are still packets in transit to the wrong access point and forwarding is not possible The performance of an unchanged TCP degrades severely • however, TCP cannot be changed fundamentally due to the large base of installation in the fixed network, TCP for mobility has to remain compatible • the basic TCP mechanisms keep the whole Internet together 61 TCP Over Wireless TCP over Wireless Link layer solutions Snoop TCP TCP-unaware link layer Split approach based solutions I-TCP M-TCP End-to-end solutions ELN WTCP TCP SACK TTCP 62 Early approach: Snooping TCP (1) “Transparent“ extension of TCP within the foreign agent • buffering of packets sent to the mobile node • lost packets on the wireless link (both directions!) will be retransmitted immediately by the mobile node or base station (foreign agent), respectively (so called “local” retransmission) • the foreign agent therefore “snoops” the packet flow and recognizes acknowledgements in both directions, it also filters ACKs • changes of TCP only within the foreign agent local retransmission correspondent node (host) Foreign agent (base station) “wired“ Internet snooping of ACKs mobile node (host) buffering of data end-to-end TCP connection 63 Snooping TCP (2) Data transfer to the mobile host • FA buffers data until it receives ACK of the MH, FA detects packet loss via duplicated ACKs (DUPACKs) or time-out • fast retransmission possible, transparent for the fixed network Data transfer from the mobile host • FA detects packet loss on the wireless link via sequence numbers, FA answers directly with a NACK to the MH • MH can now retransmit data with only a very short delay Integration of the MAC layer • MAC layer often has similar mechanisms to those of TCP • thus, the MAC layer can already detect duplicated packets due to retransmissions and discard them Problems • snooping TCP does not isolate the wireless link as good as I-TCP • snooping might be useless depending on encryption schemes 64 TCP-Unaware Link Layer This strategy aims at simulating the behavior of the snoop-TCP protocol without requiring the link layer at the BS to be TCPaware. The usage of delayed duplicate acknowledgements (DUPACKs) imitates snoop-TCP without requiring the link layer at BS to be TCP-aware. In snoop-TCP retransmissions are triggered by TCP duplicate acknowledgements, but in TCP-unaware link layer retransmissions are triggered by link level ACKs. Advantage: The link layer needs not be TCP-aware. Disadvantage: The optimum value of duplicate acknowledgements delay depends on the wireless link, and this value is crucial in determining the performance. 65 Indirect TCP (1) Indirect TCP or I-TCP segments the connection • no changes to the TCP protocol for hosts connected to the wired Internet, millions of computers use (variants of) this protocol • optimized TCP protocol for mobile hosts • splitting of the TCP connection at, e.g., the foreign agent into 2 TCP connections, no real end-to-end connection any longer • hosts in the fixed part of the network do not notice the characteristics of the wireless part mobile node (host) access point (foreign agent) „wireless“ TCP „wired“ Internet standard TCP 66 I-TCP Socket and State Migration access point1 socket migration and state transfer Internet access point2 mobile host The old access point acts as a foreign agent buffering and forwarding the packets to the new access point (foreign agent) 67 Indirect TCP (2) 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, now an acknowledgement to a sender does 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 68 Mobile TCP Special handling of lengthy and/or frequent disconnections M-TCP splits as I-TCP does • unmodified TCP fixed network to supervisory host (SH) • optimized TCP SH to MN Supervisory host (the node in the wired network that controls a number of APs) • no caching, no retransmission • monitors all packets, if disconnection detected • set sender window size to 0 • sender automatically goes into persistent mode (the state of the sender will not change no matter how long the receiver is disconnected.) • old or new SH reopen the window Advantages • maintains semantics, supports disconnection, no buffer forwarding Disadvantages • loss on wireless link propagated into fixed network • adapted TCP on wireless link 69 Explicit Loss Notification - ELN The problem with TCP lies in the fact that it does not know the exact cause for packet loss, and hence has to invariably assume congestion loss. In this situation an idea TCP simply retransmit the lost packet without congestion control mechanism. The strategy is to detect loss at MN and send an explicit loss notification (ELN) to the sender. The sender does not reduce the window size on receiving ELN. This avoids slow start and can handle encrypted data. Disadvantage: This protocol requires the MAC layer of MN to be changed. The information conveyed by the MAC layer might not always be reliable. 70 WTCP WTCP (Reliable Transport Protocol for Wireless Wide-Area Networks) aims at revamping the transport protocol for the wireless domain using: • • • • Rate-based transmission at the source Inter-packet separation at the receiver as the congestion metric Mechanisms for detecting the reason for packet loss Bandwidth estimation A unique characteristic of WTCP is the attempt to separate the congestion control and reliability mechanisms. WTCP uses separate sequence numbers for congestion control and reliability mechanisms in order to distinguish the two. The reliability mechanism involves a combination of selective and cumulative acknowledgements, and takes into account the reservepath characteristics for determining the ACK frequency. 71 TCP SACK – Selective Retransmission TCP acknowledgements are often cumulative • ACK n acknowledges correct and in-sequence receipt of packets up to n • if single packets are missing quite often a whole packet sequence beginning at the gap has to be retransmitted (go-back-n), thus wasting bandwidth Selective retransmission as one solution – TCP with selective ACK (TCP SACK) • RFC2018 allows for acknowledgements of single packets, not only acknowledgements of in-sequence packet streams without gaps • sender can now retransmit only the missing packets Advantage • much higher efficiency Disadvantage • more complex software in a receiver, more buffer needed at the receiver 72 Transaction-Oriented TCP 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 73 Impact of Mobility – Fast Retransmit/Fast Recovery Change of foreign agent often results in packet loss • TCP reacts with slow-start although there is no congestion Forced fast retransmit • as soon as the mobile host has registered with a new foreign agent, the MH sends duplicated acknowledgements on purpose • this forces the fast retransmit mode at the communication partners • additionally, the TCP on the MH is forced to continue sending with the actual window size and not to go into slow-start after registration Advantage • simple changes result in significant higher performance Disadvantage • further mix of IP and TCP, no transparent approach 74 Transmission/Time-out Freezing Mobile hosts can be disconnected for a longer time • no packet exchange possible, e.g., in a tunnel, disconnection due to overloaded cells or multiplexed with higher priority traffic • TCP disconnects after time-out completely TCP freezing • • • • MAC layer is often able to detect interruption in advance MAC can inform TCP layer of upcoming loss of connection TCP stops sending, but does now not assume a congested link MAC layer signals again if reconnected Advantage • scheme is independent of data Disadvantage • TCP on mobile host has to be changed, mechanism depends on MAC layer 75 Comparison of different approaches for a “mobile” TCP Approach Mechanism Advantages Disadvantages loss of TCP semantics, higher latency at handover transparent for end-to- problematic with “snoops” data and Snooping TCP encryption, bad isolation acknowledgements, local end connection, MAC of wireless link integration possible retransmission Bad isolation of wireless Maintains end-to-end splits TCP connection, M-TCP link, processing semantics, handles chokes sender via long term and frequent overhead due to window size bandwidth management disconnections mixed layers, not simple and efficient Fast retransmit/ avoids slow-start after transparent roaming fast recovery independent of content changes in TCP freezes TCP state at Transmission/ or encryption, works for required, MAC time-out freezing disconnect, resumes dependant longer interrupts after reconnection slightly more complex retransmit only lost data very efficient Selective receiver software, more retransmission buffer needed changes in TCP Efficient for certain combine connection Transaction required, not transparent applications setup/release and data oriented TCP transmission Indirect TCP splits TCP connection into two connections isolation of wireless link, simple 76 TCP Improvements (1) Initial research work • Indirect TCP, Snoop TCP, M-TCP, T/TCP, SACK, Transmission/time-out freezing, … TCP over 2.5/3G wireless networks BW 0.93 * MSS RTT * p • max. TCP BandWidth • Max. Segment Size • Round Trip Time • loss probability • Fine tuning today’s TCP • Learn to live with • Data rates: 64 kbit/s up, 115-384 kbit/s down; asymmetry: 3-6, but also up to 1000 (broadcast systems), periodic allocation/release of channels • High latency, high jitter, packet loss • Suggestions • Large (initial) sending windows, large maximum transfer unit, selective acknowledgement, explicit congestion notification, time stamp, no header compression • Already in use • i-mode running over FOMA 77 • WAP 2.0 (“TCP with wireless profile”) TCP Improvements (2) Performance enhancing proxies (PEP, RFC 3135) • Transport layer • Local retransmissions and acknowledgements • Additionally on the application layer • Content filtering, compression, picture downscaling • E.g., Internet/WAP gateways • Web service gateways? • Big problem: breaks end-to-end semantics • Disables use of IP security • Choose between PEP and security! More open issues • RFC 3150 (slow links) • Recommends header compression, no timestamp • RFC 3155 (links with errors) • States that explicit congestion notification cannot be used • In contrast to 2.5G/3G recommendations! Mobile system wireless PEP Internet Comm. partner 78 WAP - Wireless Application Protocol WAP (Wireless Application Protocol) • a specification for a set of communication protocols to standardize the way that wireless devices, such as cellular telephones and radio transceivers, can be used for Internet access, including e-mail, the World Wide Web, newsgroups, and Internet Relay Chat (IRC). 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, cdma2000 1x EV-DO, …) 79 WAP - scope of standardization Forum • was: WAP Forum, co-founded by Ericsson, Motorola, Nokia, Unwired Planet, further information www.wapforum.org • now: Open Mobile Alliance www.openmobilealliance.org (Open Mobile Architecture + WAP Forum + SyncML + …) 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. 80 WAE logical model Origin Servers web server other content server Gateway response with content push content request encoders & decoders Client encoded response with content encoded push content encoded request WTA user agent WML user agent other WAE user agents WAP adopts a client-server approach. It specifies a proxy server that acts as an interface between the wireless domain and core wired network. 81 WAP 1.x - reference model and protocols Internet HTML, Java A-SAP WAP Application Layer (WAE) S-SAP additional services and applications Session Layer (WSP) HTTP TR-SAP Transaction Layer (WTP) SEC-SAP SSL/TLS Security Layer (WTLS) T-SAP TCP/IP, UDP/IP, media Transport Layer (WDP) WCMP Bearers (GSM, CDPD, ...) WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc. 82 WAP The Wireless Application Environment (WAE) - Application layer • a general-purpose application environment based on a combination of World Wide Web (WWW) and mobile telephony technologies. WAE includes a micro-browser environment containing the following functionalities: • Wireless Markup Language (WML) A lightweight markup language, similar to HTML, but optimized for use in hand-held mobile terminals; • WMLScript A lightweight scripting language, similar to JavaScript • Wireless Telephony Application (WTA) Telephony services and programming interfaces. Wireless Session Protocol (WSP) - Session layer • gives the functionality of HTTP but in a more optimized way. Wireless Transaction Protocol (WTP) – Session layer • runs on top of a datagram service and provides as a light-weight transaction-oriented protocol. Wireless Transport Layer Security (WTLS) – Transport layer • a security protocol analogous to the industry-standard Transport Layer Security (TLS) protocol, formerly known as Secure Sockets Layer (SSL) in WWW model. Wireless Datagram Protocol (WDP) – Transport layer • The Transport layer protocol in the WAP architecture is referred to as the Wireless 83 Datagram Protocol (WDP). WAP - network elements fixed network Internet HTML wireless network WML HTML filter WAP proxy Binary WML WML HTML web server HTML filter/ WAP proxy WTA server Binary WML Binary WML PSTN Binary WML: binary file format for clients 84 WDP - Wireless Datagram Protocol Protocol of the transport layer within the WAP architecture • uses directly transports mechanisms of different network technologies • offers a common interface for higher layer protocols • allows for transparent communication using different transport technologies (GSM [SMS, CSD, USSD, GPRS, ...], IS-136, TETRA, DECT, PHS, IS-95, ...) 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, GPRS in GSM might change, new services can replace the old ones Additionally, WCMP (wireless Control Message Protocol) is used for control/error report (similar to ICMP in the TCP/IP protocol suite) 85 Usage of WDP Wireless Data Gateway WTLS WDP & Adaptation SMS GSM-SMS Tunnel WTLS WDP & Adaptation Tunnel Subnetwork Subnetwork SMS WAP Proxy GSM-CSD WTLS Internet Service Provider Remote Access Service UDP IP PPP CSD-RF Interworking Function CSD-RF PSTN Circuit IP PPP PSTN Circuit GSM-CSD (GSM Circuit Switched Data) Subnetwork WTLS UDP IP Subnetwork 86 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 87 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) 88 Details of WTP (1) Support of different communication scenarios • Class 0: unreliable message transfer • Example: push service • Class 1: reliable request • An invoke message is not followed by a result message • Example: reliable push service • Class 2: reliable request/response • An invoke message is followed by exactly one result message • With and without ACK • Example: typical web browsing No explicit connection setup or release is available Services for higher layers are called events 89 Details of WTP (2) Used Mechanisms • Reliability • • • • • • • • • Unique transaction identifiers (TID) Acknowledgements Selective retransmission Duplicate removal Optional: concatenation & separation of messages Optional: segmentation & reassembly of messages Asynchronous transactions Transaction abort, error handling Optimized connection setup (includes data transmission) 90 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,...) Open topics • • • • QoS support) Group communication Isochronous media objects management 91 WSP protocols WSP Connection mode (uses WTP) Connectionless mode (uses WDP or WTLS) • Session Management (class 0, 2) • Method Invocation • Method Invocation (Kl. 2) • Push • Error Report (in general unreliable) • Push (class 0) • Confirmed Push (class 1) • Session suspend/resume (class 0, 2) 92 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) 93 • content formats: vCard, vCalendar, Wireless Bitmap, WML, ... Wireless Markup Language (WML) WML (Wireless Markup Language) is a language that allows the text portions of Web pages to be presented on cellular telephones and personal digital assistants (PDAs) via wireless access. WML follows deck and card metaphor • • • • WML document consists of many cards, cards are grouped to decks a deck is similar to an HTML page, unit of content transmission WML describes only intent of interaction in an abstract manner presentation depends on device capabilities Features • • • • text and images user interaction navigation context management 94 WML – example (1) <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="simple example"> <do type="accept"> <go href="#card_two"/> </do> <p> This is a simple first card! <br/> On the next one you can choose ... </p> </card> 95 WML – example (2) <card id="card_two" title="Pizza selection"> <do type="accept" label="cont"> <go href="#card_three"/> </do> <p> ... your favorite pizza! <select value="Mar" name="PIZZA"> <option value="Mar">Margherita</option> <option value="Fun">Funghi</option> <option value="Vul">Vulcano</option> </select> </p> </card> <card id="card_three" title="Your Pizza!"> <p> Your personal pizza parameter is <b>$(PIZZA)</b>! </p> </card> 96 </wml> WMLScript WMLScript is the scripting language used in WML pages . 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 97 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; }; 98 Wireless Telephony Application (WTA) The Wireless Telephony API is an API and framework for accessing telephony and network services. Collection of telephony specific extensions Extension of basic WAE application model • content push • server can push content to the client • client may now be able to handle unknown events • handling of network events • table indicating how to react on certain events from the network • access to telephony functions • any application on the client may access telephony functions Example • calling a number (WML) wtai://wp/mc;07216086415 • calling a number (WMLScript) WTAPublic.makeCall("07216086415"); 99 WTA logical architecture other telephone networks WTA server client WML scripts WTA & WML server mobile network WTA user agent WAP gateway repository WML decks WTA services network operator trusted domain third party servers encoders & decoders other servers device specific functions firewall 100 Voice box example WTA-User-Agent WTA-Gateway WTA-Server Mobile network Indicate new voice message Voice box server Generate new deck Service Indication Display deck; user selects WSP Get Binary WML Display deck; user selects WSP Get Binary WML Push URL HTTP Get WML Respond with content HTTP Get WML Respond with card for call Play requested voice message Wait for call Call setup Setup call Setup call Accept call Accept call Accept call Voice connection 101 WTAI - example with WML only <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="Tele voting"> <do type="accept"> <go href="#card_two"/> </do> <p> Please choose your candidate! </p> </card> <card id="card_two" title="Your selection"> <do type="accept"> <go href="wtai://wp/mc;$dialno"/> </do> <p> Your selection: <select name="dialno"> <option value="01376685">Mickey</option> <option value="01376686">Donald</option> <option value="01376687">Pluto</option> </select> </p> </card> </wml> 102 WTAI - example with WML and WMLScript (1) 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"); } 103 WTAI - example with WML and WMLScript (2) <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="Tele voting"> <do type="accept"> <go href="#card_two"/> </do> <p> Please choose your candidate! </p> </card> <card id="card_two" title="Your selection"> <do type="accept"> <go href="/myscripts#voteCall($dialno)"/> </do> <p> Your selection: <select name="dialno"> <option value="01376685">Mickey</option> <option value="01376686">Donald</option> <option value="01376687">Pluto</option> </select> </p> </card> <card id="showResult" title="Result"> <p> Status: $Message $No </p> </card> </wml> 104 WAP push architecture with proxy gateway Push Access Protocol • Content transmission between server and PPG (Push Proxy Gateway) • First version uses HTTP Push OTA (Over The Air) Protocol • Simple, optimized • Mapped onto WSP Client User Agents Push OTA Protocol Push Proxy Gateway Coding, checking Push Access Protocol Push Initiator Server application 105 Push/Pull services in WAP (1) Service Indication • Service announcement using a pushed short message • Service usage via a pull • Service identification via a URI <?xml version="1.0"?> <!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" "http://www.wapforum.org/DTD/si.dtd"> <si> <indication href="http://www.piiiizza4u.de/offer/salad.wml" created="2002-10-30T17:45:32Z" si-expires="2000-10-30T17:50:31Z"> Salad special: The 5 minute offer </indication> 106 </si> Push/Pull services in WAP (2) Service Loading • short message pushed to a client containing a URI • User agent decides whether to use the URI via a pull • Transparent for users, always looks like a push <?xml version="1.0"?> <!DOCTYPE sl PUBLIC "-//WAPFORUM//DTD SL 1.0//EN" "http://www.wapforum.org/DTD/sl.dtd"> <sl href="http://www.piiiizza4u.de/offer/salad.wml"> </sl> 107 Examples for WAP protocol stacks (WAP 1.x) WAP standardization WAE user agent outside WAP WAE WSP transaction based application WTP WTP WTLS datagram based application WTLS WTLS UDP WDP UDP WDP UDP WDP IP non IP IP non IP IP non IP (GPRS, ...) (SMS, ...) (GPRS, ...) (SMS, ...) (GPRS, ...) (SMS, ...) 1. 2. 3. typical WAP application with complete protocol stack pure data application with/without additional security 108 i-mode – first of all a business model! i-mode is a proprietary packet-based information service for mobile phones by NTT DoCoMo. Access to Internet services in Japan provided by NTT DoCoMo • Services • Email, short messages, web, picture exchange, horoscope, ... • Big success – more than 44.3 million users (April 2005) (http://www.nttdocomo.com/companyinfo/subscriber.html) • Many use i-mode as PC replacement • For many this is the first Internet contact • Very simple to use, convenient • Technology • 9.6 kbit/s (enhancements with 28.8 kbit/s), packet oriented (PDC-P) • Compact HTML (cHTML) plus proprietary tags, special transport layer (Stop/go, ARQ, push, connection oriented) mobile terminal mobile network cHTML + tags HTTP(S) TL TL PDC-P PDC-P TCP IP L2 L1 gateway TCP IP L2 L1 TCP IP L2 L1 content provider cHTML + tags HTTP(S) TCP IP L2 L1 109 Email example: i-mode push with SMS application WSP WTP Popular misconception: WAP was a failure, i-mode is different and a success – wrong from a technology point of view, right from a business point of view… WDP SMS Operator sends an SMS containing a push message if a new email has arrived. If the user wants to read the email, an HTTP get follows with the email as response. i-mode as a business model: - content providers get >80% of the revenue. - independent of technology (GSM/GPRS in Europe, PDC-P in Japan – but also UMTS!) 110 i-mode protocol stack based on WAP 2.0 user equipment gateway server cHTML cHTML HTTP HTTP SSL SSL WTCP WTCP TCP TCP IP IP IP IP L2 L2 L2 L2 L1 L1 L1 L1 i-mode can use WAP 2.0/Internet protocols (example: i-mode in Germany over GSM/GPRS) 111 i-mode – technical requirements Functions Descriptions Statu s Requirement WEB Access Portal Site / Internet Access M i-mode HTML (cHTML+tags) E-mail Internet e-mail and inter-terminal email M HTTP 1.1 Security End-End security O SSL (Version 2, 3), TLS 1 Java Java application made available O Compatible i-mode JAVA Ringing tone download Ringing melody download M SMF based Image download Stand-by screen download M GIF (O: JPEG) Voice call notification during i-mode session Voice termination notified and responded during i-mode communications M 3GPP standard system Content charge billing Per content charge billed to user M Specifications depend on each operator’s billing system Third party payment collection Content charge collection on behalf of Content Provider M Specifications depend on each operator’s billing system Reverse billing Packet usage charges can be billed to third party O Specifications depend on each operator’s billing system Subscriber ID transmission Hashed subscriber ID from the operator’s portal to the CP transmission on each content access M The ID generation algorithm should be determined by each operator and has to be secret Number of characters per email Number of characters (byte) per e-mail M To be defined by operators (e.g. 500 byte, 1K byte, 10K byte) Character code set supported Character code set supported by browser and used to develop content M To be defined by operators 112 i-mode examples (1) 113 i-mode examples (2) 114 i-mode examples (3) 115 WAP 2.0 (July 2001) WAP 2.0 supports: • XHTML with a mobile profile (XHTMLMP) • TCP with „Wireless Profile“ • HTTP WAP 2.0 framework consists of: • • • • Bearer networks: GPRS Transport services: TCP, WDP or UDP Transfer services: HTTP, Multi-media messaging Service (MMS) Session services: push OTA (Over The Air) New applications • • • • • • Color graphics Animation Large file download Location based services Synchronization with PIMs Pop-up/context sensitive menus Goal: integration of WWW, Internet, WAP, i-mode 116 External services EFI Crypto libraries WAE/WTA User Agent (WML, XHTMLMP) Push Provisioning Authentication Identification Service Lookup PKI Secure transport Secure bearer Push OTA Cookies Synchronisation Hypermedia transfer (WTP+WSP, HTTP) CSD IPv6 MMS Connections (TCP with wireless profile) Datagrams (WDP, UDP) IPv4 Streaming Transport Navigation Discovery Capability Negotiation USSD SMS GPRS FLEX MPAK ... ... Protocol framework Content formats Session Multimedia Messaging (Email) Transfer Security services Bearer Service discovery Application framework WAP 2.0 architecture 117 WAP 2.0 example protocol stacks WAP device WAE WSP WTP WTLS WDP bearer WAP gateway WSP WTP WTLS WDP bearer Web server WAE HTTP HTTP TLS TCP IP TLS TCP IP WAP 1.x Server/Gateway/Client WAP device WAE HTTP TLS TCP‘ IP WAP proxy TCP‘ IP TCP IP Web server WAE HTTP TLS TCP IP WAP Proxy with TLS tunneling WAP device WAE HTTP‘ TCP‘ IP WAP proxy HTTP‘ TCP‘ IP HTTP TCP IP Web server WAE HTTP TCP IP WAP HTTP Proxy with profiled TCP and HTTP WAP device WAE HTTP TCP IP IP router IP IP Web server WAE HTTP TCP IP WAP direct access 118 Java 2 Platform Micro Edition „Java-Boom expected“ (?) • Desktop: over 90% standard PC architecture, Intel x86 compatible, typically MS Windows systems • Do really many people care about platform independent applications? BUT: Heterogeneous, “small“ devices • Internet appliances, cellular phones, embedded control, car radios, ... • Technical necessities (temperature range, form factor, power consumption, …) and economic reasons result in different hardware J2ME • Provides a uniform platform • Restricted functionality compared to standard java platform (JVM) 119 Applications of J2ME Example cellular phones • NTT DoCoMo introduced ippli • Applications on PDA, mobile phone, ... • Game download, multimedia applications, encryption, system updates • Load additional functionality with a push on a button (and pay for it)! Embedded control • Household devices, vehicles, surveillance systems, device control • System update is an important factor 120 Characteristics and architecture Java Virtual Machine • Virtual Hardware (Processor) • KVM (K Virtual Machine) • Min. 128 kByte, typ. 256 kByte • Optimized for low performance devices • Might be a co-processor Configurations • Subset of standard Java libraries depending technical hardware parameters (memory, CPU) • CLDC (Connected Limited Device Configuration) • Basic libraries, input/output, security – describes Java support for mobile devices Profiles • Interoperability of heterogeneous devices belonging to the same category • MIDP (Mobile Information Device Profile) • Defines interfaces for GUIs, HTTP, application support, … Applications Profile (MIDP) Configurations (CDC, CLDC) Java Virtual Machine (JVM, KVM) Operating system (EPOC, Palm, WinCE) Hardware (SH4, ARM, 68k, ...) 121 Hardware independent development 122 Summary J2ME Idea is more than WAP 1.x or i-mode • Full applications on mobile phones, not only a browser • Includes system updates, end-to-end encryption Platform independent via virtualization • As long as certain common interfaces are used • Not valid for hardware specific functions Limited functionality compared to JVM • Thus, maybe an intermediate solution only – until embedded systems, mobile phones are as powerful as today’s desktop systems 123 Optimizing Web over Wireless Protocol (HTTP, Hypertext Transfer Protocol) and language (HTML, Hypertext Markup Language) of the Web have not been designed for mobile applications and mobile devices, thus creating many problems! Typical transfer sizes • HTTP request: 100-350 byte • responses avg. <10 kbyte, header 160 byte, GIF 4.1kByte, JPEG 12.8 kbyte, HTML 5.6 kbyte • but also many large files that cannot be ignored The Web is no file system • Web pages are not simple files to download • static and dynamic content, interaction with servers via forms, content transformation, push technologies etc. • many hyperlinks, automatic loading and reloading, redirecting • a single click might have big consequences! 124 WWW example Request to port 80: GET / HTTP/1.0 or: GET / HTTP/1.1 Host: www.inf.fu-berlin.de Response from server HTTP/1.1 200 OK Date: Wed, 30 Oct 2002 19:44:26 GMT Server: Apache/1.3.12 (Unix) mod_perl/1.24 Last-Modified: Wed, 30 Oct 2002 13:16:31 GMT ETag: "2d8190-2322-3dbfdbaf" Accept-Ranges: bytes Content-Length: 8994 Connection: close Content-Type: text/html non persistent <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>FU-Berlin: Institut f&uuml;r Informatik</TITLE> <base href="http://www.inf.fu-berlin.de"> <link rel="stylesheet" type="text/css" href="http://www.inf.fuberlin.de/styles/homepage.css"> <!--script language="JavaScript" src="fuinf.js"--> <!--/script--> </head> <body onResize="self.location.reload();"> ... 125 Optimizing Web over Wireless HTTP Drawbacks • High connection overhead • Redundant capabilities transmission • Verbosity (HTTP is ASCII-encoded and inherently verbose) Four main categories of optimization that could improve the performance of Web over wireless channels are: • Caching: cache data persist across browser sessions • Differencing: A base object carries basic features. Whenever a new transaction takes place, the server computes the difference stream and only the difference stream is transmitted. • Protocol reduction: A persistent TCP/IP connection can be set up between client side interface (CSI) and server side interface (SSI). • Header reduction: The CSI sends the header information in the first request and SSI records this information. Then consecutive transmission needs not to send headers each time. 126 HTTP 1.0 and mobility (1) Characteristics • stateless, client/server, request/response • needs a connection oriented protocol (TCP), one connection per request (some enhancements in HTTP 1.1) • primitive caching and security Problems • designed for large bandwidth (compared to wireless access) and low delay • big and redundant protocol headers (readable for humans, stateless, therefore big headers in ASCII) • uncompressed content transfer • using TCP • huge overhead per request (3-way-handshake) compared with the content, e.g., of a GET request • slow-start problematic • DNS lookup by client causes additional traffic 127 HTTP 1.0 and mobility (2) Caching • quite often disabled by information providers to be able to create user profiles, usage statistics etc. • dynamic objects cannot be cached • numerous counters, time, date, personalization, ... • mobility quite often inhibits caches • security problems • how to use SSL/TLS together with proxies? • today: many user customized pages, dynamically generated on request via CGI, ASP, ... POSTing (i.e., sending to a server) • can typically not be buffered, very problematic if currently disconnected Many unsolved problems! 128 HTML and mobile devices HTML • designed for computers with “high” performance, color high-resolution display, mouse, hard disk • typically, web pages optimized for design, not for communication Mobile devices • often only small, low-resolution displays, very limited input interfaces (small touch-pads, soft-keyboards) Additional “features” • animated GIF, Java AWT, Frames, ActiveX Controls, Shockwave, movie clips, audio, ... • many web pages assume true color, multimedia support, high-resolution and many plug-ins Web pages ignore the heterogeneity of end-systems! • e.g., without additional mechanisms, large high-resolution pictures would be transferred to a mobile phone with a low-resolution display causing 129 high costs Approaches toward WWW for mobile devices Application gateways, enhanced servers • simple clients, pre-calculations in the fixed network • compression, filtering, content extraction • automatic adaptation to network characteristics Examples • picture scaling, color reduction, transformation of the document format (e.g., PS to TXT) • detail studies, clipping, zoom • headline extraction, automatic abstract generation • HDML (handheld device markup language): simple language similar to HTML requiring a special browser • HDTP (handheld device transport protocol): transport protocol for HDML, developed by Unwired Planet Problems • proprietary approaches, require special enhancements for browsers • heterogeneous devices make approaches more complicated 130 Some new Issues that might help mobility? Push technology • real pushing, not a client pull needed, channels etc. HTTP/1.1 • client/server use the same connection for several request/response transactions • multiple requests at beginning of session, several responses in same order • enhanced caching of responses (useful if equivalent responses!) • semantic transparency not always achievable: disconnected, performance, availability most up-to-date version... • several more tags and options for controlling caching (public/private, maxage, no-cache etc.) • relaxing of transparency on app. request or with warning to user • encoding/compression mechanism, integrity check, security of proxies, authentication, authorization... Cookies: well..., stateful sessions, not really integrated... 131 System support for WWW in a mobile World (1) Enhanced browsers • Pre-fetching, caching, off-line use • e.g. Internet Explorer, Netscape mobile client integrated enhancement browser web server Additional, accompanying application • Pre-fetching, caching, off-line use • e.g. original WebWhacker • Problem – not transparent, two different ways of accessing content: • Directly to the web server • Via the additional application mobile client browser additional application web server 132 System support for WWW in a mobile World (2) Client Proxy acts as server for the browser and as client for the web server. mobile client browser client proxy • Pre-fetching, caching, off-line use • e.g., Caubweb, TeleWeb, Weblicator, WebWhacker, WebEx, WebMirror Network Proxy supports a mobile client on the network side. • adaptive content transformation for bad connections, pre-fetching, caching • e.g., TranSend, Digestor web server mobile client browser network proxy web server 133 System support for WWW in a mobile World (3) Client and network proxy • combination of benefits plus simplified protocols • e.g., MobiScape, WebExpress Special network subsystem • adaptive content transformation for bad connections, pre-fetching, caching • e.g., Mowgli Additional many proprietary server extensions possible • “channels”, content negotiation, ... mobile client browser client proxy web server network proxy mobile client browser client proxy web server network proxy 134