MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN

Slides:



Advertisements
Similar presentations
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 20 – Transport Protocols.
Advertisements

Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Laboratório de Teleprocessamento e Redes1 Unix Network Programming Prof. Nelson Fonseca
CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Socket Programming.
1 Java Networking – Part I CS , Spring 2008/9.
CS3771 Today: network programming with sockets  Previous class: network structures, protocols  Next: network programming Sockets (low-level API) TODAY!
Networking Support In Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture and Protocols Socket Programming Instructor: Dr. Mohamed Hefeeda.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
I NTRODUCTION OF S OCKET P ROGRAMMING L.Aseel AlTurki King Saud University.
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Process-to-Process Delivery:
The Transport Layer.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Transport Layer Issue in Wireless Ad Hoc and Sensor Network
TCP/IP: Basics1 User Datagram Protocol (UDP) Another protocol at transport layer is UDP. It is Connectionless protocol i.e. no need to establish & terminate.
 Socket  The combination of an IP address and a port number. (RFC 793 original TCP specification)  The name of the Berkeley-derived application programming.
Transport Layer Layer #4 (OSI-RM). Transport Layer Main function of OSI Transport layer: Accept data from the Application layer and prepare it for addressing.
Network Architecture for Virtual Network Appliances Tadashi Okoshi , Hideyuki Tokuda Laboratory Digital Media Infrastructure.
Introduction to Network Programming Asst. Prof. Chaiporn Jaikaeo, Ph.D. Computer Engineering Department.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Inter-process communication: Socket. socket Internet socket From Wikipedia, the free encyclopedia Jump to: navigation,
MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University
Chapter 2 Applications and Layered Architectures Sockets.
Remote Shell CS230 Project #4 Assigned : Due date :
L 2 - 1 3( 1/ 20) : Java Network Programming. The Socket API The previous contents describe client-server interaction that application programs use when.
Reconsidering Internet Mobility Alex C. Snoeren, Hari Balakrishnan, M. Frans Kaashoek MIT Laboratory for Computer Science.
Interfaces and Services Each layer provides a service to the layer above it. A service is a set of primitive operations. Under UNIX, primitives are implemented.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Socket programming in C. Socket programming Socket API introduced in BSD4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 3: Transport.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Agenda Socket Programming The OSI reference Model The OSI protocol stack Sockets Ports Java classes for sockets Input stream and.
Java Networking I IS Outline  Quiz #3  Network architecture  Protocols  Sockets  Server Sockets  Multi-threaded Servers.
1 Network Communications A Brief Introduction. 2 Network Communications.
1 K. Salah Application Layer Module K. Salah Network layer duties.
UDP: User Datagram Protocol. What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host – treats a computer as an.
The Transport Layer Implementation Services Functions Protocols
Reliable Sockets: A Foundation for Mobile Communications
Transport Protocols over Circuits/VCs
Computer Networks Bhushan Trivedi, Director, MCA Programme, at the GLS Institute of Computer Technology, Ahmadabad.
Introduction of Transport Protocols
* Essential Network Security Book Slides.
Process-to-Process Delivery:
TRANSMISSION CONTROL PROTOCOL
CSC Advanced Unix Programming, Fall 2015
The Transport Layer Chapter 6.
Process-to-Process Delivery: UDP, TCP
Transport Layer 9/22/2019.
Presentation transcript:

MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN Eighth International Conference on Computer Communication and Networks IEEE ICCCN’99 October 11-13, USA

Research Abstract Goal: Communication Continuity for network applications for users ’ Work Continuity MobileSocket … Is an application layer approach implemented as an user-level library. Is effective for Conventional Network Application Java Mobile Applications

With MobileSocket library … Java network applications can continue their communication with the one continuous socket connection, even after the mobile host ’ s relocation. No need to modify source code Additional APIs for adaptation

Today ’ s Outline 1. Research Background 2. Communication Continuity MobileSocket 3. Design 4. Implementation 5. Programming & Applications 6. Evaluation 7. Conclusion & Future Work

1. Background Mobile Computing Environment Mobile hosts and users move around network even during applications are communicating with the remote. Mobile Host Internet A A B

1. Background (Cont ’ d) Research Goal To realize users ’ “ Continuous Operation ” supported by the continuous behavior of applications For network applications … “ Communication Continuity ” with remote

2. Communication Continuity Communication Continuity consists of … “ Mobility ” “ Virtual Circuit Continuity ” Other Issues

“ Mobility ” identify each other Capability of the protocol functionality in the both communication endpoints to identify each other independent of the location changes of the endpoints. E.g.: Mobile IP Identify each other (Location Transparent ID)

“ Virtual Circuit Continuity ” keeping a virtual circuit connection the byte stream consistency Capability of keeping a virtual circuit connection alive, retaining reliability and the byte stream consistency independent of the location changes of the endpoints. E.g.: TCP-R Keep a virtual circuit connection

Toward Communication Continuity For applications with … Datagram communication ( e.g. UDP/IP) Mobility support Virtual circuit communication ( e.g. TCP/IP) Mobility support Virtual circuit continuity support ⇒ Both “ Mobility ” and “ VC Continuity ” supports are the requirements for communication continuity.

Other Issues for Communication Continuity Support 2) Simplified and minimized implementation 3) Avoidance of modification in existing applications 4) Adaptation interfaces for MobileSocket-aware applications

3. MobileSocket Design in application layer (1) mobility and connection continuity support in application layer Dynamic Socket Switching (DSS) Application Layer Window (ALW) (2) User-level library in Java implicit & explicit (3) Supports both implicit & explicit redirection operations (4) Adaptation APIs for applications

(1) Application Layer Approach Application IP Layer TCP Layer Socket Layer Mobile IP TCP-R MSOCK MobileSocket Layer MobileSocket Application

Dynamic Socket Switching IP CH CH IP MH1 MH1 Application (MobileHost) Application (Correspondent Host) Internal Socket Connection (1) Before IP Layer TCP Layer Socket Layer MobileSocket Layer

Dynamic Socket Switching IP Layer TCP Layer Socket Layer MobileSocket Layer IP CH CH IP MH1 MH1 IP MH2 MH2 Application (MobileHost) After Application (Correspondent Host) Relocation Internal Socket Connection (2)

Application Layer Window (ALW) User-level sliding window inside library Provides Byte Stream Consistency MobileSocket in Sender MobileSocket in Receiver DataSocket Data ACK Data Application ALW Data ACK Data ALW_COUNTER write() read() recv flush write store count read send ControlSocket

(2) User-Level Library TCP/UDP IP Socket interface TCP/UDP IP Socket interface Application MobileSocket lib (Mobile-IP) (TCP-R) (MSOCKS)

(3) Connection Redirection Schemes Implicit Redirection Mechanism by which a connection is automatically redirected such that application is unaware of the relocation. No need to modify and insert any additional lines to applications No adaptability in applications behavior Explicit Redirection

(4) Explicit Redirection & Adaptation Interfaces Implicit Redirection Explicit Redirection Mechanism by which the application programmers can explicitly specify where the connection redirection takes place suspend(); resume(); Realized by specific APIs ( suspend(); resume(); ) Adaptive behavior of application Need to modify application ’ s source code

4. MobileSocket Implementation State Transition Diagram Time Sequence Connection Establishment Implicit Redirection Explicit Redirection

Established Implicitly Suspended Explicitly Suspended Closed Connected to Server (DSS-EstablishmentPhase(Client) ) Connected from Client (DSS-EstablishmentPhase(Server) ) Lost IP address Get IP address (Reconnect to CH, DSS- ImplicitResume Phase) Reconnected from MH (DSS-ImplicitResume Phase) suspend() Called suspend() (send SUSPEND_SIGNAL, DSS-ExplicitSuspend Phase) resume() Called resume() (Reconnect to CH, DSS- ExplicitResume Phase) reconnected from MH (DSS-ExplicitResume Phase) received SUSPEND_SIGNAL (DSS-ExplicitSuspend Phase) DataSocket broken-pipe Reconnected from MH (DSS-ImplicitResume Phase) close() Called close() (close connection) close() Called close() or timedout (close connection) close() Called close() (close connection) close() Called close() or timedout (close connection) Normal Transitions for CH Normal Transitions for MH Normal Transitions for Client Normal Transitions for Server Transition trigger (action) START POINT State

DSS(1) Establishment Phase

ClientServer Data Socket Control Socket connect accept() ControlSocket port, AuthenticationSEED1 accept() connect() ACK AuthenticationSEED1 DSS-Establishment Phase Redirection ServSocket RedirectionServer port, Next_SEED Data ALW ACK Data Socket Control Socket Redirection ServSocket Create Socket

DSS(2) Explicit Suspend Phase

Mobile Host Correspondent Host Data Socket Control Socket lock ACK SUSPEND_SIGNAL DSS-ExplicitSuspend Phase Redirection ServSocket WRITE_COUNTER Data Socket Control Socket Redirection ServSocket lock Compute DIFF Invoke Suspend SubPhase (if DIFF>0) ACK (DIFF_IS_ZERO) Close Suspend SubPhase

DSS(3) Explicit Resume Phase

Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ExplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data ALW ACK Data Socket Control Socket Redirection ServSocket Mobile Host Correspondent Host New Redirection ServSocket Next_SEED unlock Create Socket

DSS(4) Implicit Redirection

Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ImplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data Socket Control Socket Redirection ServSocket New Redirection ServSocket Next_SEED unlock READ_COUNTER unACKed Data retransmit ~ disconnected ~ lose IP get IP Create Socket Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ImplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data Socket Control Socket Redirection ServSocket Mobile Host Correspondent Host New Redirection ServSocket Next_SEED unlock READ_COUNTER unACKed Data retransmit ~ disconnected ~ lose IP get IP Create Socket

Disconnection Recognition in MH java.net.InetAddress#getLocalHost returns IP address based on DNS. “ Checker ” Thread as a adhoc solution Disconnection (1)get local IP from java.net.Socket#getLocalAddress (2)make Socket to local IP address periodically. Reconnection (1) make Socket to Correspondent Host IP address periodically.

5. Programming & Applications Socket sock = new Socket(host, port); MobileSocket sock = new MobileSocket(host, port); Class Socket sock = new Socket(host, port); MobileSocket sock = new MobileSocket(host, port); sock.suspend(); sock.resume(); Explicit Redirection (Option) sock.suspend(); sock.resume(); MobilityEvent MobilityListener Adaptation Event (Option) MobilityEvent Event, MobilityListener Interface

Applications with MobileSocket “ Serializable ” MobileSocket class for Mobile Applications and Agents AppB Host-B Host-A AppA AppA ’ Object Serialization MSockA (Socket X ) MSockA (Socket Y ) Host-C

Applications with MobileSocket MobileSocket Exchanging Host-A Host-B Host-C AppA AppC AppB MSockA MSockB MSockA ’ Send “ MobileSocket ” Object via ObjectSerialization

6. Evaluation Performance Measurement Explicit Redirection Comparison with Related Works

Measurement Environment Implementation JavaCoreAPI 1.1 jp.ac.keio.sfc.ht.MobileSocket jp.ac.keio.sfc.ht.MobileSocket package Evaluation Environment Dynabook SS-R590 (Pentium 90MHz, 40MB) for MH Sony PCG-737 (PentiumMMX 233MHz, 64MB) for CH Closed 10Base-T Network FreeBSD2.2.1R + JDK V for FreeBSD

Performance Results at MH

Explicit Redirection Performance Explicit Suspending

82.14% Explicit Redirection Performance Explicit Resuming

Comparison with Related Works NameLayer ConnectionImplementation ContinuityMHCHOthers IP LimitedKHA,FA Mobile-IPIP LimitedKHA,FA TCP YesKK - TCP-RTCP YesKK - Socket Limited UProxy MSOCKSSocket Limited UProxy Socket Yes U U - MobileSocketSocket Yes U U - upper upper

7. Conclusion Conclusion Application Layer Mobility and Connection Continuity User-Level library in Java Implicit & Explicit Redirection for Conventional Apps. & Mobile Apps. Future Work More Optimization Security Issues

Fin

Eval.1 MobileSocket Overhead Conventional Java.net.Socket 100 MobileSocket (contains Mobility Support) 80? 90?

Eval.2 Socket Creation Overhead Why is Socket Creation so heavy in Java? Where is bottle neck? C & Java Java80.4ms (71ms object constructor) C

Eval.3 ALW In the case of large size ALW? Buffer overflow? Lock? Defined buffer size? ALW size and Transfer bandwidth could not evaluate because of bug in JDK FreeBSD Or Solaris ?

read & write mechanism

Adaptation in Application Java Event

DSS Time Sequence Client Server connect Mobility Preparation DSS- Establishment Phase user data Established State Closed State Explicit Redirection Implicit Redirection Connection Establishment

MH ALW Adjustment DSS- Explicit Suspend Phase disconnect Explicity Suspended State CH Suspend() resume() connect Mobility Preparation user data Established State DSS- Explicit Resume Phase Established State Explicit Redirection

MH Implicitly Suspended State CH connect ALW Adjustment user data Established State DSS- Implicit Resume Phase Established State lose IP (Disconnect) Broken pipe Implicit Redirection Mobility Preparation

Mobile Computing Environment “ Work Continuity ” for users Mobile Host Internet A A B ?

MobileSocket Applications (1) Java network applications Mobile Host Internet A A B

MobileSocket Applications (2) Java Mobile Applications AppB Host-B Host-A AppA AppA ’ Object Serialization MSockA (Socket X ) MSockA (Socket Y ) Host-C

MobileSocket Applications (3) Even Exchanging Socket... Host-A Host-B Host-C AppA AppC AppB MSockA MSockB MSockA ’ Send “ MobileSocket ” Object via ObjectSerialization