Presentation on theme: "MV-3500 DoD Modeling & Simulation Network Protocols."— Presentation transcript:
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/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 F- 18 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, AI- controlled 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
“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 TCP/IP Sockets Ad-Hoc Protocols DISHLA Web Services Application/Simulation
Background During this class, we’ll look at each of these elements: TCP/IP sockets Ad-hoc protocols DIS HLA Web Services