Performance

Enhancing

Proxy

for

Interactive

Network

Gaming

Unlike

non-time-critical

applications

like

email

and

file

transfer

network

games

demand

timely

data

delivery

to

maintain

the

seemingly

interactive

presence

of

players

in

the

virtual

game

world

Yet

the

inherently

large

transmission

delay

mean

and

variance

of

cellular

links

make

on-time

game

data

delivery

difficult

Further

complicating

the

timely

game

data

delivery

problem

is

the

frequent

packet

drops

at

these

links

due

to

inter-symbol

interference

fading

and

shadowing

at

the

physical

layer

In

this

paper

we

propose

a

proxy

architecture

that

enhances

the

timeliness

and

reliability

of

data

delivery

of

interactive

games

over

wireless

networks

In

particular

a

performance

enhancing

proxy

is

designed

to

optimize

a

new

time-critical

data

type

variable-deadline

data

where

the

utility

of

a

datum

is

inversely

proportional

to

the

time

required

to

deliver

it

We

show

how

a

carefully

designed

and

configured

proxy

can

noticeably

improve

the

delivery

of

network

game

data

C.

-LSB-

Computer-Communication

Networks

-RSB-

Network

Architecture

and

Design

Wireless

communication

Algorithms

Performance

Design

While

network

gaming

has

long

been

projected

to

be

an

application

of

massive

economic

growth

as

seen

in

the

recent

explosive

development

on

the

wired

Internet

in

South

Korea

and

Japan

deployment

of

similar

network

games

on

Permission

to

make

digital

or

hard

copies

of

all

or

part

of

this

work

for

personal

or

classroom

use

is

granted

without

fee

provided

that

copies

are

not

made

or

distributed

for

profit

or

commercial

advantage

and

that

copies

bear

this

notice

and

the

full

citation

on

the

first

page

To

copy

otherwise

to

republish

to

post

on

servers

or

to

redistribute

to

lists

requires

prior

specific

permission

and/or

a

fee

IWCMC

July

Vancouver

British

Columbia

Canada

Copyright

ACM

Radio

Access

Network

BS

IMS

UE

WING

Game

Server

Network

IP

Wireless

Network

PSTN/ISDN

CSPDN

Core

Packet

Network

Figure

WING

in

Wireless

Network

wireless

networks

continues

to

be

slow

and

difficult

One

reason

is

that

unlike

their

wired

counterparts

wireless

links

are

notoriously

prone

to

errors

due

to

channel

fading

shadowing

and

inter-symbol

interference

While

wireless

networks

such

as

High

Speed

Downlink

Packet

Access

-LRB-

HSDPA

-RRB-

of

Generation

Partnership

Project

-LRB-

-RRB-

Release

-LRB-

-RRB-

-LSB-

-RSB-

and

CDMA

EvDO

of

-LSB-

-RSB-

combat

wireless

link

failures

at

the

MAC

and

physical

layer

with

an

elaborate

system

of

channel

coding

retransmission

modulation

and

spreading

with

resulting

packet

loss

rate

being

reduced

to

negligible

to

the

detrimental

side-effect

to

network

gaming

is

the

large

and

often

unpredictable

transmission

delay

mean

and

variance

-LSB-

-RSB-

Such

large

and

variable

delays

greatly

reduce

the

necessary

interactivity

of

network

game

players

and

deteriorate

the

overall

gaming

experience

In

a

separate

development

a

new

network

element

called

IP

Multimedia

Subsystem

-LRB-

IMS

-RRB-

-LSB-

-RSB-

has

been

intro-duced

in

specifications

and

later

as

shown

in

Figure

The

Session

Initiation

Protocol

-LRB-

SIP

-RRB-

based

IMS

provides

a

multitude

of

multimedia

services

from

establishing

connections

from

the

legacy

telephone

networks

to

the

new

IP

core

network

using

Voice

over

IP

-LRB-

VoIP

-RRB-

to

delivering

streaming

services

such

as

video

as

a

value-added

service

to

mobile

users

-LRB-

UE

-RRB-

Strategically

located

as

a

pseudo-gateway

to

the

private

and

heavily

provisioned

networks

it

is

foreseeable

that

IMS

will

continue

to

enlarge

and

enrich

its

set

of

multimedia

services

in

future

wireless

networks

In

this

paper

we

propose

a

performance

enhancing

proxy

-LRB-

PEP

-RRB-

called

-LRB-

W

-RRB-

ireless

-LRB-

I

-RRB-

nteractive

-LRB-

N

-RRB-

etwork

-LRB-

G

-RRB-

aming

Proxy

-LRB-

WING

-RRB-

to

improve

the

timely

delivery

of

network

game

data

in

wireless

networks

WING

is

located

inside

IMS

as

an

application

service

on

top

of

the

myriad

of

services

that

IMS

already

provides

In

a

nutshell

WING

improves

the

delivery

of

game

data

from

the

game

server

to

wireless

game

players

using

the

following

three

techniques

First

by

virtue

of

locating

at

the

intersection

of

the

private

wireless

network

and

the

open

Internet

connection

from

the

game

server

to

the

wireless

game

player

can

be

strategi-cally

split

for

the

server-WING

connection

only

the

statis-tically

stable

and

fast

round-trip

time

-LRB-

RTT

-RRB-

and

low

wired-network

only

packet

loss

rate

-LRB-

PLR

-RRB-

are

used

for

congestion

control

resulting

in

a

steady

yet

TCP-friendly

server-WING

connection

Second

by

configuring

parameters

in

the

radio

link

layer

-LRB-

RLC

-RRB-

specifically

for

gaming

during

session

setup

excessive

RLC

retransmissions

are

avoided

and

timeliness

of

game

data

is

improved

at

the

controlled

expense

of

in-creased

packet

losses

Finally

by

constructing

small

but

error-resilient

packets

that

contain

location

data

packets

can

be

transmitted

in

fewer

MAC-layer

protocol

data

units

-LRB-

PDU

-RRB-

and

hence

further

reduces

delay

The

paper

is

organized

as

follows

Related

work

is

presented

in

Section

We

overview

the

wireless

system

in

focus

HSDPA

of

in

Section

Note

that

because

similar

link

and

MAC

layer

transport

optimizations

that

chiefly

affect

delay

mean

and

variance

are

also

employed

in

other

networks

our

proposed

WING

can

conceivably

be

applied

to

other

wireless

networks

such

as

CDMA

EvDO

of

We

discuss

the

design

of

WING

in

details

in

Section

Finally

experimental

results

and

conclusion

are

provided

in

Section

and

respectively

We

divide

the

discussion

on

the

large

volume

of

related

work

into

two

section

Section

discusses

related

research

on

wireless

transport

optimization

Section

discusses

related

research

in

transport

of

network

game

data

Wireless

Transport

Optimization

We

note

that

proxy-based

transport

optimization

for

last-hop

wireless

networks

has

a

long

history

with

the

majority

of

the

research

-LSB-

-RSB-

focusing

on

optimization

of

TCP

over

last-hop

wireless

networks

In

particular

-LSB-

-RSB-

showed

that

while

network

packet

losses

can

indeed

be

successfully

overcome

by

using

ample

link

layer

retransmissions

the

resulting

large

RTT

mean

and

variance

may

severely

affect

the

performance

of

a

TCP-like

congestion

avoidance

rate

control

that

is

based

on

end-to-end

observable

statistics

of

RTT

and

PLR

The

limiting

rate

constraint

and

undesirable

fluctuations

can

be

alleviated

using

a

proxy

with

split-connection

a

theme

we

develop

in

Section

Recently

efforts

on

proxy

design

have

shifted

to

delay-sensitive

multimedia

transport

-LSB-

-RSB-

though

all

of

them

focused

exclusively

on

streaming

media

while

we

focus

on

network

gaming

Note

that

due

to

cited

complexity

reason

a

competing

end-to-end

approach

for

rate

control

that

does

not

rely

on

an

intermediate

proxy

is

popular

as

well

-LSB-

-RSB-

However

we

chose

the

proxy-based

approach

and

will

juxtapose

its

advantages

in

Section

While

peer-to-peer

model

for

interactive

network

games

is

also

possible

we

assume

the

more

common

server-client

model

where

the

game

server

maintains

and

disseminates

all

game

states

in

this

paper

Transport

of

Network

Game

Data

In

-LSB-

-RSB-

a

general

gaming

platform

for

IMS

that

provides

network

services

needed

for

network

gaming

such

as

session

setup

and

registration

is

proposed

to

ease

deployment

over

networks

Our

work

is

orthogonal

to

-LSB-

-RSB-

since

we

focus

only

on

the

efficient

transport

of

game

data

An

early

work

on

gaming

protocol

is

-LSB-

-RSB-

which

defined

a

Game

Transport

Protocol

-LRB-

GTP

-RRB-

for

massive

multi-player

on-line

games

-LRB-

MMPOGs

-RRB-

over

the

Internet

Our

proposed

gaming

proxy

WING

differs

in

the

following

respects

i

-RRB-

we

design

WING

specifically

for

lossy

bandwidth-limited

networks

hence

focusing

on

design

of

network-optimized

differential

coding

to

produce

small

but

loss-resilient

packets

and

ii

-RRB-

we

tailor

WING

for

HSDPA

of

wireless

networks

optimizing

performance

by

intelligently

configuring

parameters

of

the

RLC

layer

The

most

similar

related

work

is

-LSB-

-RSB-

which

proposed

an

end-to-end

adaptive

FEC

and

dynamic

packetization

algorithm

to

combat

packet

losses

due

to

wireless

link

failures

and

reduce

packet

sizes

Unlike

-LSB-

-RSB-

our

approach

is

proxy-based

and

we

tailor

our

gaming

optimization

exclusively

for

networks

HSDPA

of

UMTS

Release

also

known

as

G

improves

upon

Release

with

numerous

lower-layer

optimizations

First

a

shared

channel

is

periodically

scheduled

to

users

in

the

cell

with

good

observable

network

conditions

to

take

advantage

of

user

diversity

during

fading

without

sacrificing

fairness

Second

an

elaborate

MAC-layer

scheme

chooses

an

appropriate

combination

of

FEC

hybrid

ARQ

modulation

and

spreading

based

on

client

observable

network

state

In

this

section

we

instead

focus

on

the

RLC

layer

where

the

user

has

limited

control

over

behavior

using

configuration

of

parameters

during

session

setup

The

Radio

Link

control

-LRB-

RLC

-RRB-

layer

-LSB-

-RSB-

buffers

upper

layer

service

data

units

-LRB-

SDU

-RRB-

on

a

per-session

basis

IP

packets

in

this

case

and

segments

each

SDU

into

smaller

protocol

data

units

-LRB-

PDU

-RRB-

of

size

S

P

DU

and

await

transmission

at

lower

layers

There

are

three

transmission

modes

transparent

mode

-LRB-

TM

-RRB-

unacknowledged

mode

-LRB-

UM

-RRB-

and

acknowledged

mode

-LRB-

AM

-RRB-

Only

AM

performs

link-layer

retransmissions

if

transmission

in

the

lower

layer

fails

For

error

resiliency

we

focus

only

on

AM

In

particular

we

look

at

how

SDUs

are

discarded

in

the

RLC

layer

using

a

method

of

retransmission-based

discard

-LRB-

RBD

-RRB-

an

SDU

can

be

discarded

before

successful

transmission

In

a

nutshell

an

SDU

is

discarded

if

a

predefined

maximum

number

of

retransmissions

B

has

been

reached

before

successful

transmission

of

a

PDU

belonging

to

the

SDU

We

will

investigate

how

the

value

B

can

be

selected

to

trade

off

error

resiliency

with

delay

in

Section

Before

we

discuss

the

three

optimizations

of

our

proposed

gaming

proxy

WING

in

details

in

Section

and

we

first

define

a

new

type

of

transport

data

called

variable

deadline

data

in

Section

a

consequence

of

a

prediction

procedure

used

at

a

network

game

client

to

predict

locations

of

other

game

players

in

the

virtual

game

world

delay

in

ms

distortion

distortion

vs.

delay

for

dead-reckoning

random

walk

weighted

random

walk

delay

in

ms

utility

utility

vs.

delay

for

dead-reckoning

random

walk

weighted

random

walk

a

-RRB-

distortion

vs.

delay

b

-RRB-

utility

vs.

delay

Figure

Examples

of

Dead-Reckoning

Variable

Deadline

Data

Delivery

Unlike

media

streaming

applications

where

a

data

unit

containing

media

data

is

fully

consumed

if

it

is

correctly

delivered

by

a

playback

deadline

and

useless

otherwise

-LSB-

-RSB-

the

usefulness

-LRB-

utility

-RRB-

of

a

game

datum

is

inversely

proportional

to

the

time

it

requires

to

deliver

it

This

relationship

between

utility

and

transmission

delay

is

the

behavioral

result

of

a

commonly

used

game

view

reconstruction

procedure

at

a

game

client

called

dead-reckoning

-LSB-

-RSB-

It

works

as

follows

To

maintain

time-synchronized

virtual

world

views

among

game

players

at

time

t

a

player

P

A

predicts

the

location

t

of

another

player

P

B

and

draws

it

in

P

A

's

virtual

world

at

time

t

extrapolating

from

previously

received

location

updates

of

P

B

in

the

past

t

When

location

update

t

arrives

at

P

A

from

P

B

at

a

later

time

t

P

A

updates

its

record

of

P

B

's

locations

with

-LRB-

t

t

-RRB-

in

order

to

make

an

accurate

prediction

of

-LRB-

t

t

-RRB-

for

display

in

P

A

's

virtual

world

at

time

t

Regardless

of

what

prediction

method

is

used

at

the

client

it

is

clear

that

a

smaller

transmission

delay

will

in

general

induce

a

smaller

prediction

error

We

term

this

type

of

data

with

inversely

proportional

relationship

between

quantifiable

utility

and

delay

variable

deadline

data

We

next

show

examples

of

how

such

utility-delay

curve

u

-LRB-

d

-RRB-

can

be

derived

in

practice

given

a

player

movement

model

and

a

prediction

method

Examples

of

Dead-Reckoning

We

first

consider

two

simple

movement

models

that

model

a

game

player

in

two-dimensional

space

-LRB-

x

y

-RRB-

The

first

is

random

walk

where

for

each

time

increment

t

probability

mass

function

-LRB-

pmf

-RRB-

of

random

variable

of

x-coordinate

x

t

p

-LRB-

x

t

-RRB-

is

defined

as

follows

p

-LRB-

x

t

x

t

-RRB-

p

-LRB-

x

t

x

t

-RRB-

p

-LRB-

x

t

x

t

-RRB-

-LRB-

-RRB-

Random

variable

of

y-coordinate

y

t

is

calculated

similarly

and

is

independent

of

x

t

The

second

movement

model

is

weighted

random

walk

whose

pmf

is

defined

as

follows

p

-LRB-

x

t

x

t

-LRB-

-LRB-

x

t

x

-RRB-

mod

-RRB-

-RRB-

p

-LRB-

x

t

x

t

-LRB-

x

t

x

-RRB-

-RRB-

p

-LRB-

x

t

x

t

-LRB-

-LRB-

x

t

x

-RRB-

mod

-RRB-

-RRB-

-LRB-

-RRB-

In

words

the

player

continues

the

same

movement

as

done

in

the

previous

instant

with

probability

and

changes

to

one

of

two

other

movements

each

with

probability

Random

variable

y-coordinate

y

t

is

calculated

similarly

We

defined

a

simple

prediction

method

called

prediction

as

follows

each

unknown

x

t

is

simply

set

to

the

most

recently

updated

x

Using

each

of

the

two

movement

models

in

combination

with

the

prediction

method

we

constructed

distortion-delay

curves

experimentally

as

shown

in

Figure

As

seen

prediction

is

a

better

match

to

random

walk

than

weighted

random

walk

inducing

a

smaller

distortion

for

all

delay

values

Utility

u

-LRB-

d

-RRB-

shown

in

Figure

is

simply

the

reciprocal

of

distortion

Having

derived

u

-LRB-

d

-RRB-

gives

us

a

quantifiable

metric

on

which

we

can

objectively

evaluate

game

data

transport

systems

Proxy-based

Congestion

Control

We

argue

that

by

locating

WING

between

the

open

wired

Internet

and

the

provisioned

wireless

networks

to

conduct

split-connection

data

transfer

stable

TCP-friendly

congestion

control

can

be

maintained

on

top

of

UDP

in

the

wired

server-WING

connection

Traditional

congestion

control

algorithms

like

TCP-friendly

Rate

Control

-LRB-

TFRC

-RRB-

-LSB-

-RSB-

space

outgoing

packets

with

interval

T

cc

as

a

function

of

estimated

packet

loss

rate

-LRB-

PLR

-RRB-

cc

RTT

mean

m

cc

and

RTT

variance

cc

due

to

wired

network

congestion

T

cc

m

cc

cc

-LRB-

m

cc

cc

-RRB-

cc

cc

cc

-LRB-

-RRB-

Past

end-to-end

efforts

-LSB-

-RSB-

have

focused

on

methodologies

to

distinguish

wired

network

congestion

losses

from

wireless

link

losses

in

order

to

avoid

unnecessary

rate

reduction

due

to

erroneous

perception

of

wireless

losses

as

network

congestion

Split

connection

offers

the

same

effect

regarding

PLR

by

completely

shielding

sender

from

packet

losses

due

to

wireless

link

failures

Moreover

by

performing

TFRC

-LRB-

-RRB-

in

the

server-WING

connection

using

only

stable

wired

network

statistics

split

connection

shields

the

server-WING

connection

from

large

rate

fluctuations

due

to

large

RTT

variance

in

the

last-hop

link

as

shown

in

-LSB-

-RSB-

For

this

reason

-LSB-

-RSB-

showed

experimentally

that

indeed

proxy-based

split-connection

congestion

control

performs

better

than

end-to-end

counterparts

even

in

negligible

wireless

loss

environments

Lastly

we

note

that

split

connection

can

benefit

from

a

rate-mismatch

environment

-LSB-

-RSB-

where

the

available

bandwidth

R

in

the

server-WING

connection

is

larger

than

the

available

bandwidth

R

in

the

WING-client

connection

In

such

case

the

surplus

bandwidth

R

R

can

b

e

used

for

redundancy

packets

like

forward-error

correction

-LRB-

FEC

-RRB-

or

retransmission

to

lower

PLR

in

the

server-WING

connection

We

refer

interested

readers

to

-LSB-

-RSB-

for

further

details

Optimizing

RLC

Configuration

Given

utility-delay

function

u

-LRB-

d

-RRB-

in

Section

we

optimize

configuration

of

RLC

to

maximize

utility

More

pre-cisely

we

pick

the

value

of

maximum

retransmission

limit

B

inducing

expected

SDU

loss

rate

l

and

delay

d

so

that

the

expected

utility

-LRB-

l

-RRB-

u

-LRB-

d

-RRB-

is

maximized

We

assume

a

known

average

SDU

size

S

SDU

PDU

loss

rate

P

DU

and

probability

density

function

-LRB-

pdf

-RRB-

of

PDU

transmission

delay

-LRB-

-RRB-

with

mean

m

and

variance

First

the

expected

number

of

PDUs

fragmented

from

an

SDU

is

N

l

S

SDU

S

P

DU

m

For

a

given

B

the

expected

SDU

loss

rate

l

SDU

can

b

e

written

simply

P

P

DU

B

X

i

P

DU

-LRB-

P

DU

-RRB-

-LRB-

-RRB-

l

SDU

P

N

P

DU

-LRB-

-RRB-

where

P

P

DU

is

the

probability

that

a

PDU

is

successfully

delivered

given

B

The

delay

d

SDU

experienced

by

a

successfully

delivered

SDU

is

the

sum

of

queuing

delay

d

q

SDU

and

transmission

delay

d

t

SDU

Queuing

delay

d

q

SDU

is

the

delay

experienced

by

an

SDU

while

waiting

for

head-of-queue

SDUs

to

clear

due

to

early

termination

or

delivery

success

d

t

SDU

is

the

expected

wireless

medium

transmission

delay

given

the

SDU

is

successfully

delivered

d

t

SDU

is

easier

and

can

be

calculated

as

X

P

DU

P

P

DU

B

X

i

i

P

DU

-LRB-

P

DU

-RRB-

-LRB-

-RRB-

d

t

SDU

N

m

X

P

DU

-LRB-

-RRB-

where

X

P

DU

is

the

expected

number

of

PDU

-LRB-

re

-RRB-

transmissions

given

PDU

delivery

success

To

calculate

d

q

SDU

we

assume

a

queue

with

arrival

rate

q

mean

service

time

m

q

and

variance

of

service

time

q

Using

Pollaczek-Khinchin

mean

value

formula

-LSB-

-RSB-

d

q

SDU

can

b

e

written

as

d

q

SDU

q

m

q

q

m

q

-LRB-

q

m

q

-RRB-

m

q

-LRB-

-RRB-

In

our

application

q

is

the

rate

at

which

game

data

arrive

at

WING

from

the

server

which

we

assume

to

be

known

m

q

is

the

mean

service

rate

for

both

cases

of

SDU

delivery

success

and

failure

and

can

be

derived

as

follows

Y

SDU

l

SDU

N

X

i

-LRB-

B

-LRB-

i

-RRB-

X

P

DU

-RRB-

B

P

DU

P

P

DU

-LRB-

-RRB-

m

q

-LRB-

l

SDU

-RRB-

d

t

SDU

l

SDU

m

Y

SDU

-LRB-

-RRB-

where

Y

SDU

is

the

expected

total

number

of

PDU

-LRB-

re

-RRB-

transmissions

in

an

SDU

given

SDU

delivery

failure

Similar

analysis

will

show

that

the

variance

of

service

rate

q

for

our

application

is

q

-LRB-

l

SDU

-RRB-

N

X

P

DU

l

SDU

Y

SDU

-LRB-

-RRB-

We

can

now

evaluate

expected

queuing

delay

d

q

SDU

from

which

we

evaluate

expected

delay

d

SDU

Optimal

B

is

one

that

maximizes

-LRB-

l

SDU

-RRB-

u

-LRB-

d

SDU

-RRB-

Loss-optimized

Differential

Coding

If

the

location

data

player

position

updates

sent

to

improve

dead-reckoning

discussed

in

Section

are

in

absolute

values

then

the

size

of

the

packet

containing

the

data

can

be

large

resulting

in

large

delay

due

to

many

PDU

fragmentation

and

spreading

The

alternative

is

to

describe

the

location

in

relative

terms

the

difference

in

the

location

from

a

previous

time

slot

Differential

values

are

smaller

resulting

in

fewer

encoded

bits

and

smaller

packets

and

hence

Our

system

is

actually

more

similar

to

a

queue

since

the

arrivals

of

game

data

are

more

likely

to

be

deter-ministic

than

Markovian

Instead

we

use

queue

as

a

first-order

approximation

ACK

boundary

Figure

Example

of

Differential

Coding

mode

mode

marker

ref

size

coord

size

total

Table

Differential

Coding

Modes

smaller

transmission

delay

This

differential

coding

of

location

data

is

used

today

in

networked

games

The

obvious

disadvantage

of

differential

coding

is

that

the

created

dependency

chain

is

vulnerable

to

network

loss

a

single

loss

can

result

in

error

propagation

until

the

next

absolute

location

data

-LRB-

refresh

-RRB-

To

lessen

the

error

propagation

effect

while

maintaining

the

coding

benefit

of

differential

coding

one

can

reference

a

position

in

an

earlier

time

slot

An

example

is

shown

in

Figure

where

we

see

position

-LRB-

-RRB-

references

instead

of

This

way

loss

of

packet

containing

will

not

affect

which

depends

only

on

The

problem

is

then

for

a

new

position

t

how

to

select

reference

position

t-r

for

differential

coding

such

that

the

right

tradeoff

of

error

resilience

and

packet

size

can

be

selected

This

selection

must

be

done

in

an

on-line

manner

as

new

position

becomes

available

from

the

application

to

avoid

additional

delay

Specifying

Coding

Modes

To

implement

loss-optimized

differential

coding

we

first

define

a

coding

specification

that

dictates

how

the

receiver

should

decode

location

packets

For

simplicity

we

propose

only

four

coding

modes

where

each

mode

is

specified

by

a

designated

bit

sequence

-LRB-

mode

marker

-RRB-

in

the

packet

Assuming

the

original

absolute

position

is

specified

by

two

fixed

point

numbers

mode

encodes

the

unaltered

absolute

position

in

x-y

order

resulting

in

data

payload

size

of

bits

for

n

game

entities

Mode

uses

the

previous

position

as

reference

for

differential

encoding

with

bits

per

coordinate

resulting

in

bits

for

n

entities

Mode

uses

the

first

bits

to

specify

r

in

reference

position

t

r

for

differential

encoding

Each

coordinate

takes

bits

resulting

in

total

bits

for

n

entities

Mode

is

similar

to

mode

with

the

exception

that

each

of

the

reference

marker

and

the

two

coordinate

takes

only

bits

to

encode

resulting

in

bits

for

n

entities

For

given

position

t

-LRB-

x

t

y

t

-RRB-

and

reference

t-r

-LRB-

x

t-r

y

t-r

-RRB-

some

modes

may

be

infeasible

due

to

the

fixed

coding

bit

budgets

for

reference

and

coordinate

sizes

So

limited

to

the

set

of

feasible

modes

we

seek

a

reference

position

mode

pair

that

maximizes

an

objective

function

PLR

RTT

mean

RTT

variance

Tokyo-Singapore

-LRB-

-RRB-

ms

Tokyo-Singapore

-LRB-

-RRB-

ms

Tokyo-Singapore

-LRB-

-RRB-

ms

HSDPA

-LRB-

-RRB-

ms

HSDPA

-LRB-

-RRB-

ms

HSDPA

-LRB-

-RRB-

ms

Table

Comparison

of

Network

Statistics

Finding

Optimal

Coding

Modes

For

an

IP

packet

of

size

s

t

containing

position

t

that

is

sent

at

time

t

we

first

define

the

probability

that

it

is

correctly

delivered

b

y

time

as

t

-LRB-

-RRB-

t

-LRB-

-RRB-

depends

on

expected

PLR

l

-LRB-

s

t

-RRB-

and

delay

d

-LRB-

s

t

-RRB-

resulting

from

retransmission

limit

B

chosen

in

Section

N

-LRB-

s

t

-RRB-

s

t

S

P

DU

i

-LRB-

-RRB-

l

-LRB-

s

t

-RRB-

-LRB-

P

P

DU

-RRB-

N

-LRB-

s

t

-RRB-

-LRB-

-RRB-

d

-LRB-

s

t

-RRB-

d

q

SDU

N

-LRB-

s

t

-RRB-

m

X

P

DU

-LRB-

-RRB-

where

N

-LRB-

s

t

-RRB-

is

the

number

of

PDUs

fragmented

from

an

SDU

of

size

s

t

l

-LRB-

s

t

-RRB-

is

PLR

in

-LRB-

-RRB-

generalized

to

SDU

size

s

t

d

-LRB-

s

t

-RRB-

is

the

expected

queuing

delay

in

-LRB-

-RRB-

plus

the

transmission

delay

in

-LRB-

-RRB-

generalized

to

SDU

size

s

t

We

can

now

approximate

t

-LRB-

-RRB-

as

t

-LRB-

-RRB-

if

ACKed

b

y

-LRB-

l

-LRB-

s

t

-RRB-

-RRB-

-LRB-

t

d

-LRB-

s

t

-RRB-

-RRB-

o.w.

-LRB-

-RRB-

where

-LRB-

x

-RRB-

if

x

and

otherwise

If

no

acknowledgment

packets

-LRB-

ACK

-RRB-

are

sent

from

client

to

WING

then

t

-LRB-

-RRB-

is

simply

the

second

case

in

-LRB-

-RRB-

We

next

define

the

probability

that

position

t

is

correctly

decoded

b

y

time

as

P

t

-LRB-

-RRB-

Due

to

dependencies

resulting

from

differential

coding

P

t

-LRB-

-RRB-

is

written

as

follows

P

t

-LRB-

-RRB-

t

-LRB-

-RRB-

Y

jt

j

-LRB-

-RRB-

-LRB-

-RRB-

where

j

i

is

the

set

of

positions

j

's

that

precedes

t

in

the

dependency

graph

due

to

differential

coding

Given

utility

function

u

-LRB-

d

-RRB-

in

Section

and

decode

probability

-LRB-

-RRB-

the

optimal

reference

position

mode

pair

is

one

that

maximizes

the

following

objective

function

max

P

t

-LRB-

t

d

-LRB-

s

t

-RRB-

-RRB-

u

-LRB-

d

-LRB-

s

t

-RRB-

-RRB-

-LRB-

-RRB-

We

first

present

network

statistics

for

HSDPA

and

discuss

the

implications

We

collected

network

statistics

of

ping

packets

of

packet

size

and

bytes

spaced

apart

between

hosts

in

Tokyo

and

Singapore

inside

HP

intranet

The

results

are

shown

in

Table

We

then

conducted

the

same

experiment

over

a

network

emu-lator

called

-LSB-

-RSB-

emulating

the

HSDPA

link

with

competing

ftp

users

each

with

mobility

model

Pedestrian

A

We

make

two

observations

in

Table

One

though

results

from

both

experiments

had

similar

RTT

means

HSDPA

's

RTT

variances

were

very

large

substantiating

our

claim

that

using

split-connection

to

shield

the

server-WING

connection

from

HSDPA

's

RTT

variance

would

drastically

improve

TFRC

bandwidth

-LRB-

-RRB-

of

server-WING

connection

number

of

entities

n

frame

rate

fps

IP

UDP

header

bytes

RLC

PDU

size

bytes

RLC

PDU

loss

rate

to

average

packet

size

bytes

shifted

Gamma

parameter

g

shifted

Gamma

parameter

g

shifted

Gamma

parameter

g

Table

Simulation

Parameters

retransmission

limit

expected

delay

in

ms

expected

delay

vs.

retrans

limit

epsilon

epsilon

epsilon

retransmission

limit

expected

utility

expected

utility

vs.

retrans

limit

epsilon

epsilon

epsilon

a

-RRB-

delay

vs.

retrans

limit

B

b

-RRB-

utility

vs.

retrans

limit

B

Figure

Delay

andUtility

vs.

Retrans

Limit

Two

larger

packets

entailed

larger

RTT

means

for

HSDPA

This

means

that

the

differential

coding

discussed

in

Section

indeed

has

substantial

performance

improvement

potential

We

next

used

an

internally

developed

network

simulator

called

-LRB-

mu

-RRB-

lti-path

-LRB-

n

-RRB-

etwork

-LRB-

s

-RRB-

imulator

-LRB-

muns

-RRB-

that

was

used

in

other

simulations

-LSB-

-RSB-

to

test

RLC

configurations

and

differential

coding

For

PDU

transmission

delay

-LRB-

-RRB-

we

used

a

shifted

Gamma

distribution

-LRB-

-RRB-

g

g

-LRB-

g

-RRB-

g

e

g

-LRB-

g

-RRB-

-LRB-

g

-RRB-

g

-LRB-

-RRB-

where

-LRB-

-RRB-

is

the

Gamma

function

-LSB-

-RSB-

The

parameters

used

are

shown

in

Table

Figure

shows

the

expected

delay

and

utility

as

a

function

of

retransmission

limit

B

for

different

PDU

loss

rates

As

expected

when

B

increases

the

expected

delay

increases

The

expected

utility

on

the

other

hand

reaches

a

peak

and

decreases

For

given

PDU

loss

rate

we

simply

select

B

with

the

largest

expected

utility

Next

we

compare

the

results

of

our

loss-optimized

differential

coding

optimization

opt

in

Section

with

two

schemes

abs

which

always

encodes

in

absolute

values

and

rel

which

uses

only

previous

frame

for

differential

coding

and

refreshes

with

absolute

values

every

updates

abs

P

DU

B

abs

-LRB-

-RRB-

abs

-LRB-

B

-RRB-

rel

-LRB-

-RRB-

rel

-LRB-

B

-RRB-

opt

Table

Distortion

Comparison

represents

the

most

error

resilient

coding

method

in

differential

coding

while

rel

represents

a

reasonably

coding-efficient

method

with

periodical

resynchronization

Note

however

that

neither

abs

nor

rel

adapts

differential

coding

in

real

time

using

client

feedbacks

abs

and

rel

were

each

tested

twice

In

the

first

trial

limit

B

was

set

to

and

in

the

second

B

was

set

to

the

optimal

configured

value

as

discussed

in

Section

data

points

were

generated

and

averaged

for

each

distortion

value

in

Table

As

we

see

in

Table

for

various

PDU

loss

rate

P

DU

the

resulting

distortions

for

opt

were

always

lower

than

abs

's

and

rel

's

particularly

for

high

PDU

loss

rates

opt

performed

better

than

rel

because

of

opt

's

error

resiliency

of

loss-optimized

differential

coding

while

opt

performed

better

than

abs

because

opt

's

smaller

packets

in-duced

a

smaller

queuing

delay

and

a

smaller

transmission

delay

due

to

smaller

number

of

RLC

fragmentations

This

demonstrates

that

it

is

important

not

only

to

find

an

optimal

RLC

configuration

but

a

suitable

differential

coding

scheme

to

match

the

resulting

loss

rate

and

delay

of

the

configuration

We

propose

a

performance

enhancing

proxy

called

WING

to

improve

the

delivery

of

game

data

from

a

game

server

to

game

players

using

three

techniques

i

-RRB-

split-connection

TCP-friendly

congestion

control

ii

-RRB-

network

game

optimized

RLC

configuration

and

iii

-RRB-

packet

compression

using

differential

coding

For

future

we

will

investigate

how

similar

techniques

can

be

applied

for

the

uplink

from

game

player

to

game

server

The

authors

thank

other

members

of

the

multimedia

systems

architecture

team

Yasuhiro

Araki

and

Takeaki

Ota

for

their

valuable

comments

and

discussions

-LSB-

-RSB-

Universal

Mobile

Telecommunications

System

-LRB-

UMTS

-RRB-

Radio

Link

Control

-LRB-

RLC

-RRB-

protocol

specification

-LRB-

TS

version

Release

-RRB-

series

September

-LSB-

-RSB-

S.

Aggarwal

H.

Banavar

and

A.

Khandelwal

Accuracy

in

dead-reckoning

based

distributed

multi-player

games

In

ACM

SIGCOMM

NetGames

Portland

OR

August

-LSB-

-RSB-

A.

Akkawi

S.

Schaller

O.

Wellnitz

and

L.

Wolf

A

mobile

gaming

platform

for

the

IMS

In

ACM

SIGCOMM

NetGames

Portland

OR

August

-LSB-

-RSB-

H.

Balakrishnan

V.

Padmanabhan

S.

Seshan

and

R.

Katz

A

comparison

of

mechanisms

for

improving

TCP

performance

over

wireless

links

In

IEEE/ACM

Trans

Networking

volume

no.

December

-LSB-

-RSB-

Q.

Bi

and

S.

Vitebsky

Performance

analysis

of

EvDO

high

data

rate

system

In

IEEE

Wireless

Communications

and

Networking

Conference

Orlando

FL

March

-LSB-

-RSB-

M.

Chen

and

A.

Zakhor

AIO-TRFC

A

light-weight

rate

control

scheme

for

streaming

over

wireless

In

IEEE

WirelessCom

Maui

HI

June

-LSB-

-RSB-

G.

Cheung

P.

Sharma

and

S.

J.

Lee

Striping

delay-sensitive

packets

over

multiple

bursty

wireless

channels

In

IEEE

International

Conference

on

Multimedia

and

Expo

Amsterdam

the

Netherlands

July

-LSB-

-RSB-

G.

Cheung

and

W.

t.

Tan

Streaming

agent

for

wired

network

wireless

link

rate-mismatch

environment

In

International

Workshop

on

Multimedia

Signal

Processing

St.

Thomas

Virgin

Islands

December

-LSB-

-RSB-

G.

Cheung

W.

t.

Tan

and

T.

Yoshimura

Double

feedback

streaming

agent

for

real-time

delivery

of

media

over

wireless

networks

In

IEEE

Transactions

on

Multimedia

volume

no.

pages

April

-LSB-

-RSB-

S.

P.

et

al.

Game

transport

protocol

A

reliable

lightweight

transport

protocol

for

massively

multiplayer

on-line

games

-LRB-

MMPOGs

-RRB-

In

SPIE-ITCOM

Boston

MA

July

-LSB-

-RSB-

S.

Floyd

M.

Handley

J.

Padhye

and

J.

Widmer

Equation-based

congestion

control

for

unicast

applications

In

ACM

SIGCOMM

Stockholm

Sweden

August

-LSB-

-RSB-

P.

Ghosh

K.

Basu

and

S.

Das

A

cross-layer

design

to

improve

quality

of

service

in

online

multiplayer

wireless

gaming

networks

In

IEEE

Broadnets

Boston

MA

October

-LSB-

-RSB-

L.

Huang

U.

Horn

F.

Hartung

and

M.

Kampmann

Proxy-based

TCP-friendly

streaming

over

mobile

networks

In

IEEE

International

Symposium

on

a

World

of

Wireless

Mobile

and

Multimedia

Networks

Atlanta

GA

September

-LSB-

-RSB-

A.

Leon-Garcia

Probability

and

Random

Processes

for

Electrical

Engineering

Addison

Wesley

-LSB-

-RSB-

M.

Meyer

J.

Sachs

and

M.

Holzke

Performance

evaluation

of

a

TCP

proxy

in

WCDMA

networks

In

IEEE

Wireless

Communications

October

-LSB-

-RSB-

Nomor

Research

GmbH

-LSB-

-RSB-

F.

Yang

Q.

Zhang

W.

Zhu

and

Y.-Q

Zhang

Bit

allocation

for

scalable

video

streaming

over

mobile

wireless

internet

In

IEEE

Infocom

Hong

Kong

March

-LSB-

-RSB-

T.

Yoshimura

T.

Ohya

T.

Kawahara

and

M.

Etoh

Rate

and

robustness

control

with

RTP

monitoring

agent

for

mobile

multimedia

streaming

In

IEEE

International

Conference

on

Communication

New

York

NY

April

O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O B I I B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

proxy architecture
wireless networks
congestion control
network gaming
rlc configuration
3g wireless network