MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University

Slides:



Advertisements
Similar presentations
COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.
Advertisements

Mid-Term.
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
Chapter 6 The Transport Layer.
CCNA – Network Fundamentals
Transmission Control Protocol (TCP)
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
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.
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 L53 Networking (2). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
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.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
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.
1 ELEN 602 Lecture 15 More on IP TCP. 2 byte stream Send buffer segments Receive buffer byte stream Application ACKs Transmitter Receiver TCP Streams.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
The Transport Layer.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN
Transport Layer Issue in Wireless Ad Hoc and Sensor Network
Professor OKAMURA Laboratory. Othman Othman M.M. 1.
Transport Layer3-1 TCP sender (simplified) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from.
 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.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
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.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
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.
The Transport Layer Chapter 6 12/14/2015www.ishuchita.com1.
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
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
1 K. Salah Application Layer Module K. Salah Network layer duties.
The Transport Layer Dr. ir. S.S. Msanjila RIS 251.
The Transport Layer Implementation Services Functions Protocols
09-Transport Layer: TCP Transport Layer.
DMET 602: Networks and Media Lab
Introduction to Networks
Process-to-Process Delivery, TCP and UDP protocols
Reliable Sockets: A Foundation for Mobile Communications
Transport Protocols over Circuits/VCs
TCP Transport layer Er. Vikram Dhiman LPU.
Computer Networks Bhushan Trivedi, Director, MCA Programme, at the GLS Institute of Computer Technology, Ahmadabad.
* 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
Computer Networks Protocols
Transport Layer 9/22/2019.
Presentation transcript:

MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University SPA (Systems for Programming and Applications) JAPAN

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

MobileSocket is... TCP/UDP IP Socket interface TCP/UDP IP Socket interface Application MobileSocket lib (Mobile-IP) (TCP-R) (MSOCKS)

MobileSocket Applications (1) zJava Network Applications Mobile Host Internet A A B

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

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

Today’s Outline z1. Research Background - Continuous Operation - z2. MobileSocket Design z3. MobileSocket Mechanism z4. MobileSocket Programming z5. Evaluation z6. Conclusion & Future Work

1. Background zGoal: Continuous Operation for users’ “Work Continuity” zContinuous Operation Framework for Applications yMobility… Transparent Host Identifier yConnection Continuity… Stream Consistency

Issues for Continuos Operation z(1) Avoidance of modification in existing applications z(2) Simplified and minimized implementation z(3) Byte Stream Consistency support for virtual circuit connection z(4) Adaptation in applications

2. MobileSocket Design zDesign Features y(1) Mobility and connection continuity support in application layer y(2) User-level library implementation in Java y(3) Both implicit & explicit redirection operations y(4) Adaptation in applications (JavaEvent model)

Dynamic Socket Switching (DSS) 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 (DSS) 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) MobileSocket in Sender MobileSocket in Receiver DataSocket ControlSocket Data ACK Data Application ALW Data ACK Data ALW_COUNTER write() read() recv flush write store count read send zUser-level sliding window inside library zprovides Byte Stream Consistency

3. MobileSocket Mechanism zState Transition Diagram zTime Sequence yEstablishment yImplicit Redirection yExplicit 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  java.net.InetAddress#getLocalHost...IP address based on DNS. z“ Checker” Thread as a adhoc solution java.net.Socket#getLocalAddress  Disconnection (1)get local IP from java.net.Socket#getLocalAddress (2)make Socket to local IP address periodically yReconnection (1) make Socket to Correspondent Host IP address periodically.

4. MobileSocket Programming 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

5. Evaluation zPerformance Measurement yExplicit Redirection yMobileSocket Overhead zComparison with Related Works

Measurement Environment zImplementation yJavaCoreAPI 1.1  jp.ac.keio.sfc.ht.MobileSocket  jp.ac.keio.sfc.ht.MobileSocket package zEvaluation Environment yDynabook SS-R590 (Pentium 90MHz, 40MB) for MH Sony PCG-737 (PentiumMMX 233MHz, 64MB) for CH yClosed 10Base-T Network yFreeBSD2.2.1R + JDK V for FreeBSD

Performance Results at MH

Explicit Redirection Performance zExplicit Suspending

Explicit Redirection Performance zExplicit Resuming 82.14%

Inside Socket Creation

Comparison with Related Works NameLayer ConnectionImplementation ContinuityMHCHOthers Mobile-IPIP LimitedKHA,FA PMI (+M-IP)IP LimitedKKHA,FA MSOCKSTCP Limited UProxy TCP-RTCP YesKK - VNCScreen Yes U Server MobileSocketSocket Yes U U -

6. Conclusion zConclusion yApplication Layer Mobility and Connection Continuity yUser-Level library in Java yImplicit & Explicit Redirection yfor Conventional Apps. & Mobile Apps. zFuture Work yUDP & Multicast Socket yMore Optimization

Fin. Thank you for your attention...

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

Eval.2 Socket Creation Overhead zWhy is Socket Creation so heavy in Java? z Where is bottle neck? zC & Java yJava80.4ms (71ms object constructor) yC

Eval.3 ALW zIn the case of large size ALW? zBuffer overflow? Lock? zDefined buffer size? zALW size and Transfer bandwidth ycould not evaluate because of bug in JDK FreeBSD yOr Solaris ?

read & write mechanism

Adaptation in Application zJava 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