Transcript 01_intro

MV-3500
DoD Modeling & Simulation Network
Protocols
Admin
This class is intended to introduce you to the
simulation network protocols used in DoD
M&S applications
This will require a little background on
networking first, then we can look at two of
the major protocols, DIS and HLA. As time
permits we will look at some others: TENA
(range operations) and emerging web
standards
Admin
Grading
• Two midterms (50%)
• Final project (25%)
• Programming assignments (25%)
Contact:
Watkins 281 (stop by any time)
Phone (don’t) x-7605
Email:mcgredo at nps edu; put MV3500 in the subject
Web page:
https://www.movesinstitute.org/~mcgredo/MV3500
Textbook
Networked Graphics, Steed & Oliveira
Read chapters 1 & 2
Chapter 2 will probably be over your head a bit;
just roll with it.
Other Sources
“I want to know everything about networking”
Stevens: Unix Network Programming and TCP/IP
Illustrated (V 1, 2, 3)
Zyda: Networked Virtual Environments
Gaffer on Games: http://gafferongames.com/
Game Developer’s Conference
Some techniques are encumbered with Intellectual Property
restrictions
Neyland: Virtual Combat: A Guide to DIS
SISO: DIS Plain and Simple
Alexander, Massively Multiplayer Game Development
What Do We Want to Do?
Live, Virtual, Constructive
The military wants to do a variety of
simulations, including but not limited to
Live: Real people, real systems
Virtual: Real people, simulated systems
Constructive: simulated people, simulated
systems
Live
An E-5 is driving a Stryker at NTC. The Stryker is
generating Blue Force Tracker data.
This is a real person driving a real vehicle. Perhaps he
sees other live vehicles on his BFT.
To increase the training experience, we might want to
display simulated enemy forces as well.
The training exercise is now no longer completely live—
the BFT may be displaying computer-generated
forces as well
Virtual
An F-18 pilot is in a 6-axis dome simulator. This
is a simulated weapon controlled by a real
person.
We can inject the Stryker BFT data into the F18 simulator so that the pilot sees Strykers on
the ground on the simulated NTC terrain
Constructive
Suppose we don’t have all the live red force
necessary to achieve the training objectives.
We can create computer-generated, AIcontrolled tanks and inject them into the
training environment
The E-5 on the Stryker may see these on his
situational display
The F-18 pilot can see the computer-generated
forces in his dome terrain
How Do We Get There?
Notice that these all involve sending data between
computers, sometimes computers that are a long
ways apart geographically
What data do we want to send?
What semantics do we need?
What about practical issues, like latency and reliability?
What if the computers are running different operating
systems on different CPU architectures?
What if the Stryker is using BFT and the dome simulator
something else?
Data
(X,Y,Z), orientation, what entity type, terrain,
velocity, unique entity identifiers, ….
Semantics
Semantics are “meaning” associated with the values we
send.
(X,Y,Z) isn’t enough—we also need to know what
coordinate system with which those values are
associated
How do we determine a message is talking about a
M1A2 tank?
Semantics is extremely tricky to do in the general case.
It is basically all the assumptions you make about
data values
Practical Issues
The speed of light limits network traffic speed,
and the reality is often much worse. Human
reaction time is around 250ms, and long haul
network latency can often approach or
exceed this.
This can make “twitch” applications tricky; air to
air combat, first person shooter, etc
What Do We Want to Do?
“Get relevant data to other computers in a
format that can be understood, fast enough
to be useful”
This problem statement also happens to
coincide with a lot of other commercial
applications. The DoD uses the standards
adopted by industry for “basic plumbing”, and
adds its own “protocols” for its applications
Commercial Applications
FPS Games: Modern Warfare et al
Massively Multiplayer Online Games (MMOG), sort of the
commercial application of military R&D over the last 20 years.
Large scale, with thousands or tens of thousands of participants
Online worlds--live simulations and role playing in a virtual world;
less emphasis on physics, more on human interaction. Second
Life, Open Simulator
To an extent there has been a convergence between the
capabilities of military & commercial, but commercial is heavily
focused on games
What’s the difference between training and games, anyway?
Protocols
What do network protocols do?
Basically, they are an agreed-upon way for
applications to talk to each other
If you have a Boeing flight simulator and a
General Dynamics tank simulator and a
Hughes helicopter trainer, it would be helpful
if all of them could cooperate in the same
networked virtual environment
Networked Virtual Environment
(NVE)
GD Tank
Simulator
Sikorsky Helo
Simulator
“NVE?”
Huh? What’s a “Networked Virtual Environment?”
An illusion of a virtual environment that is shared
between participating users. This is typically done
across a network. In the tanks & helos example, we
have a virtual battlefield, users controlling vehicles,
and each user can view the virtual world from their
own point of view.
Protocols
So how do simulations talk to each other?
Generally this happens across the network
(“distributed”) as multiple computers cooperate on
the problem.
The substrate used by all modern simulations is TCP/IP
sockets
Started with ad-hoc protocols, made up for each task
Moved on to Distributed Interactive Simulation (DIS)
and High Level Architecture (HLA)
Web Services (XML based) are emerging
Protocols
What if Strykers are generating BFT data with
(X, Y, Z) in lat/lon/altitude, and the
dismounted infantry simulator is using a
simulation protocol coordinate system that is
local and rectilinear?
The contents of the protocols are slightly
different, in different order, floats vs.
doubles, different semantics, etc.
Protocols
Application/Simulation
Ad-Hoc
Protocols
DIS
HLA
TCP/IP Sockets
Web
Services
Background
During this class, we’ll look at each of these
elements:
• TCP/IP sockets
• Ad-hoc protocols
• DIS
• HLA
• Web Services