CS 480/680: GAME ENGINE PROGRAMMING
|
|
- Berniece Meghan Flowers
- 6 years ago
- Views:
Transcription
1 CS 480/680: GAME ENGINE PROGRAMMING INPUT AND NETWORKING 2/7/2013 Santiago Ontañón
2 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
3 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
4 Student Presentations Sean Bluestein: An Extensible Trigger System for AI Agents, Objects and Quests Kevin Burdick: The 2009 Mario AI Competition Mateusz Stankiewicz: Convincing-Looking Glass for Games Binggang Wo Octree Construction
5 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
6 Game Engine Architecture Game Specific Game Engine Functionalities Game Engine Resource Management Utility Layer Platform Independence Layer SDKs OS DRIVERS HARDWARE Dependencies
7 Game Engine Architecture Scripting Artificial Intelligence Online Multiplayer Rendering Engine Animation Engine Gameplay Foundations (Game Loop) Physics Audio Subsystem Collisions Profiling & Debugging
8 Handling User Input User Input: Keyboard presses Mouse movements Joystick Touch surfaces Cameras Microphones Remote input (from another computer over the network) Etc. Game Engine should process user input, and react accordingly: Trigger character movements, etc.
9 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet();
10 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet(); Problem 1: Hard-coding input mapping. If we want to change the fire key to m, we have to look in the code for all instances of this.
11 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet(); Problem 2: Hard-coding input devices. What if we want to have a player in a remote computer over the network? What if we want to make our game work on a tablet? Problem 1: Hard-coding input mapping. If we want to change the fire key to m, we have to look in the code for all instances of this.
12 Handling User Input: The Input Map User Input: Game Actions: Move Right? Fire Switch weapon
13 Handling User Input: The Input Map The input map is a table, or module that: Encodes the translation from user input to game actions/events Can be provided by the game engine Typically only used for in-game input (i.e. controlling player character). But it could also be used to handle input for the game menus, GUI, etc. (with a proper design)
14 Handling User Input: The Input Map Input Map example API: Class InputMap { public: void addkeyboardmap(int key, GameAction ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction ga); void addjoystickmap(int koystickevent, GameAction ga); etc. } GameInput getinput();
15 Handling User Input: The Input Map Input Map example API: Class InputMap { Class GameAction { Class GameActions { public: int actioncode; List<CharacterActions> controllers; int characterid; void } addkeyboardmap(int key, GameAction } ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction The CharacterActions ga); class is void Class addjoystickmap(int CharacterActions { koystickevent, GameAction an abstraction ga); that stores all the bool left, right, jump, crouch; possible actions supported by etc. } your game engine (this example is oversimplistic, you might need a more complex structure), and GameInput getinput(); whether the player triggered that } action or not.
16 Handling User Input: The Input Map Input Map example API: For example, for an analogous Class InputMap { Class GameAction { Class GameActions { control engine (e.g. Nintendo Wii), public: int actioncode; List<CharacterActions> controllers; you might want to include desired int characterid; void } addkeyboardmap(int key, GameAction weapon rotation, } ga); etc. void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction The CharacterActions ga); class is void Class addjoystickmap(int CharacterActions { koystickevent, GameAction an abstraction ga); that stores all the bool left, right, jump, crouch; possible actions supported by etc. } your game engine (this example is oversimplistic, you might need a more complex structure), and GameInput getinput(); whether the player triggered that } action or not.
17 Handling User Input: The Input Map Input Map example API: Class InputMap { Class GameAction { Class GameActions { public: int actioncode; List<CharacterActions> controllers; int characterid; void } addkeyboardmap(int key, GameAction } ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction ga); void Class addjoystickmap(int CharacterActions { koystickevent, GameAction ga); The GameActions class is just a bool left, right, jump, crouch; list with all the input given to all etc. } the characters in the game (either by local players, AIs, or remote GameInput getinput(); players). }
18 Handling User Input while(!quit) { } I = InputMap.getinput(&quit); G.updateAI(&I); G.updatePhysics(I); G.render(); FPScontrol(); The game loop calls the input handler to translate user input to game actions The AI controls characters also by generating game actions (identical data structure than user input) Physics/animation, etc. do not know if a player is controller by a player, or by an AI.
19 Handling User Input Input Map AI Online Multiplayer Network Game Actions Rest of the game engine
20 Handling User Input Although depending on the multiplayer implementation, your game engine might not need to know the actions executed remotely. Input Map AI Online Multiplayer Network Game Actions Rest of the game engine
21 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
22 Example Networked Multiplayer Games Multi-User Dungeons Early predecessors of today s MMOs (used a client-server architecture) Unbounded number of players
23 Example Networked Multiplayer Games MUDs have survived, and there are many modern ones:
24 Example Networked Multiplayer Games Bolo (1987) (relatively unknown) Mac-only game, one of the earliest network games ever
25 Example Networked Multiplayer Games DOOM (1993) 4 players over local network (IPX protocol) Peer-to-peer: deterministic game, sharing actions over network (numbered, to detect lost packets) Peers used broadcasts (saturated the network)
26 Example Networked Multiplayer Games Quake (1996)
27 Example Networked Multiplayer Games Quake (1996) Featured permanent servers, where players could meet and play (before Quake, you had to coordinate in the real world on a time to play, and share your IP via phone with friends to play! Client-Server over the internet (not just LAN!) A new problem appeared (unknown till then): latency! QuakeWorld: update to Quake just to address latency. Introduced a key idea called client-side prediction
28 Example Networked Multiplayer Games MMOs, e.g.: RuneScape network of servers
29 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
30 Networking 101 (for Games) Node: a computer/device in the network IP: Address of a node (e.g ) Packet: a piece of information transferred from one node to another Typically a packet is sent to: (IP, port) IP: address of destination Port: ( ) identifies the service that should respond to this packet Server: a node that offers some services Client: a node that requests a service from a server
31 Networking 101 (for Games) UDP: Most adequate for game Simplest protocol networking. Most games Simply offers a service to deliver a packet from implement one node their own to packetloss protocol on top of UDP. another No control of packet-loss, no persistent connections, etc. Summary: fast but unreliable TCP: Not as common in games, since Most complex protocol it s slower. And its reliability protocol is not designed with Packet-loss control, persistent connections real-time games in mind. Summary: slow but reliable
32 Networking 101 (for Games) UDP: Most adequate for game Simplest protocol networking. Most games Simply offers a service to deliver a packet from implement one node their own to packetloss protocol on top of UDP. another No control of packet-loss, no persistent connections, etc. Summary: fast but unreliable TCP: Not as common in games, since Most complex protocol it s slower. And its reliability It s more complex than this. But the rule of protocol is not designed with Packet-loss thumb control, is: persistent connections real-time games in mind. - Summary: Use UDP slow for real-time but reliable updates - Use TCP for chat windows (Google TCP vs UDP games for more)
33 Sockets Sockets: You can see a socket as a pipe that allows you to send data between two nodes in the network. Once you have a socket open, you can send and receive packts through it. Then can be configured to send using TCP or UDP All network libraries allow you to open/close/send and receive through sockets If you are working on networking for your project, I m assuming you know how sockets work. No time for detailed explanations here.
34 Sockets Different libraries/languages will give you different forms to: Create a socket (TCP or UDP) Server: bind a socket to an address/port for listening to incoming connections Client: establish a connection (to a particular IP/port) Server: accept incoming connections Send data through an open connection Receive data from an open connection Timeline: Server: Client: 1. Create Socket 1. Create Socket 2. Bind 2. Establish 3. Accept 4. Send/receive 3. Send/receive
35 Communication Architectures Peer-to-Peer Client-Server Hybrid Client-Network of Servers
36 Communication Architectures Peer-to-Peer Hybrid Client-Server All instances are clients, who send updates to each other, trying to keep the world simulation in Client-Network sync. of Servers
37 Communication Architectures Peer-to-Peer One instance is special, the server. All clients send Hybrid requests to the server, server maintains the game state, and informs clients of the changes. Client-Server Client-Network of Servers
38 Communication Architectures Peer-to-Peer Hybrid Different game functionalities implemented with different Client-Server architectures, for example: game state using client-server, in-game chat using peer-to-peer. Client-Network of Servers
39 Communication Architectures Each client associated with a server. Network of servers can communicate using a peer-to-peer (or using a client-server, with a Peer-to-Peer master server). Very scalable, but the most complex in terms of communication protocol. Client-Server Hybrid Client-Network of Servers
40 Communication Architectures: Network of Servers Example (MMO) WoW had almost 2000 servers (derived from traffic data) Client Zone 1 server Zone 2 server Zone n server Chat Server Patch Server Master Server Account Server
41 Communication Architectures Peer-to-Peer Client-Server Hybrid Client-Network of Servers
42 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
43 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *getdataptr(); } // depending on your game engine
44 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *encode(); void decode(char *data, int size); } // depending on your game engine This class stores one of the messages that your game will send. It should have at least 2 methods: one to encode the packet into an array of bytes, and the other to decode it from an array of bytes.
45 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *encode(); void decode(char *data, int size); } // depending on your game engine Your GameSocket class will be an abstract class (that you will exted with a ServerSocket and a ClientSocket class). But this one is handy, to organize the code.
46 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); Just creates an instance, but does nothing else. We don t want to open the port right away after creating the socket, since we might just be setting up the data structures. Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); }
47 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); This function does all the work of creating the socket: 1) Create the socket 2) Set the options (protocol, etc.) 3) Set the port 4) Start listening Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); }
48 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); } When hasdata is true, it means that a client is trying to connect. This function accepts the connection, and returns the ServerSocket that will be used for that connection.
49 Client Socket Classes We will then extend it for the client Class ClientSocket extends GameSocket { ClientSocket (int port); } connect(int IP, int port) The only extra functionality here is to connect to the server socket
50 Overview Client side: Server side: ClientSocket MasterServerSocket Step one is to create the MasterServerSocket, and have it listen for incoming connections.
51 Overview Client side: Server side: ClientSocket Connection Request MasterServerSocket When a client wants to connect, it requests a connection to the MasterServerSocket
52 Overview Client side: Server side: ClientSocket MasterServerSocket ServerSocket When the server accepts the connection, a ServerSocket is created and this is the one that keeps the connection open to the ClientSocket.
53 Overview Client side: Server side: ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket GamePackets can be sent back and forth through this connection.
54 Overview Client side: Server side: ClientSocket MasterServerSocket ClientSocket ServerSocket ServerSocket ServerSocket ClientSocket For each new client, a new ServerSocket is created, but there is only a single MasterServerSocket, that is always open waiting for incoming new clients.
55 Connecting to the Game Loop Client side: Server side: Network Module ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket while(!quit) { I = InputMap.getinput(&quit); G.networkUpdate(&I) G.updateAI(&I); G.updatePhysics(I); G.render(); FPScontrol(); } In the game loop, at each cycle, you call the network module, which would process all the GamePackets received through the socket (you should have an incoming queue, since packets arrive asynchronously). Then update the game state/input/etc. with the info from those packets. It should also send packets to the server with the user input (I).
56 Connecting to the Game Loop Client side: Network Module Server side: Network Module ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket while(!quit) In the server { game loop, at each cycle, you I = call InputMap.getinput(&quit); the network module, which would G.networkUpdate(&I) process all the GamePackets received G.updateAI(&I); through the socket to get the actions the G.updatePhysics(I); players want to execute, it will also send back G.render(); to the clients the most updated game FPScontrol(); state. } while(!quit) { G.networkUpdate(&I) G.updateAI(&I); G.updatePhysics(I); FPScontrol(); }
57 Considerations Depending on the nature of the game, what is sent through in the GamePackets will be different: In a deterministic game: Client/server only need to send actions In general: Clients send actions Server sends game state updates You can send global game state updates, or smaller chunks with individual GameObject updates You can also optimize and only send to each client, updates of the objects that are near the player (the rest, doesn t matter).
58 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
59 Peer to Peer Architecture All computers are clients and servers Peer 1 side: Peer 2 side: MasterServerSocket MasterServerSocket ServerSocket ServerSocket ClientSocket ClientSocket
60 Considerations All peers send actions and game state updates Need a policy to keep game state consistency Each game object should have an owner (one of the peers). The game state sent by that peer is the one that will stay When new peers connect, or peers disconnect, game object owners should be updated.
61 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
62 Client-side Prediction Consider a very simple client that simply takes user input, sends it to the server, receives state updates and renders them. User input Perceived delay Process input Render
63 Client-side Prediction Consider a very simple client that simply takes user input, sends it to the server, receives state updates and renders them. User input Perceived delay This can be multiple frames of delay! Process input Render
64 Client-side Prediction Idea: Predict the update that will be received from the server Render the prediction When the update from the server is received, merge any discrepancies Two main problems: Player prediction Non-player prediction
65 Client-side Prediction Player prediction simply simulates the effects of the player actions directly (non-player characters are not predicted) Perceived delay User input Render Process input Merge States Render
66 Client-Side Prediction The client also simulates the game state (physics, collision, etc.) Player Prediction: Effects of the player actions are simulated locally Non-player Prediction: Predict the actions that non-players will execute, and simulate them too (for example, predict that they will keep moving in the same direction as they were in the previous frame).
67 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion
68 Links to Interesting Game Videos Sugar Cube Bittersweet Factory:
69 Remember that next week: Second Project Deliverable: Updated document from Deliverable 1: Address feedback that you got from Deliverable 1 Any potential topic change Small description of how the game loop integrates with your demo/game engine Source code: Do NOT send code as an attachment. Send a URL to your code, or to a code repository (SVN, GIT, etc.) Submission procedure: to (copy both): Santiago Ontañón santi@cs.drexel.edu Stephen Lombardi sal64@drexel.edu Subject: CS Project Deliverable 2 Group #
Networked Virtual Environments and Distributed Rendering IGS HT Background and history. Background and history. Background and history
Networked Virtual Environments and Distributed Rendering IGS HT 2003-09-24 Multiplayer games 1961 Spacewar, MIT 1979 MUD, Essex University 1993 Doom, Id Software Lars Pettersson 1994 Warcraft, Blizzard
More informationInteractive Graphical Systems HT2006
HT2006 Networked Virtual Environments Informationsteknologi 2006-09-26 #1 This Lecture Background and history on Networked VEs Fundamentals (TCP/IP, etc) Background and history on Learning NVEs Demo of
More informationPlayer 2 has joined the game
Video Game Dev 2017/2018 Università dell Insubria Networking for Games Marco Tarini Player 2 has joined the game Multiplayer game types, according to gameplay collaborative competitive versus teams How
More informationPart 17: Networking Technology for Virtual Environments
Part 17: Networking Technology for Virtual Environments Virtuelle Realität Wintersemester 2006/07 Prof. Bernhard Jung Overview Introduction Data transfer Communication architectures Managing dynamic shared
More informationSocket programming. Complement for the programming assignment INFO-0010
Socket programming Complement for the programming assignment INFO-0010 Outline Socket definition Briefing on the Socket API A simple example in Java Multi-threading and Synchronization Example : HTTP protocol
More informationNetworked Applications: Sockets. End System: Computer on the Net
Networked Applications: Sockets Topics Programmer s view of the Internet Sockets interface End System: Computer on the Net Internet Also known as a host 2 Page 1 Clients and Servers Client program Running
More informationAdvanced Java Programming. Networking
Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol
More informationCSC 401 Data and Computer Communications Networks
CSC 401 Data and Computer Communications Networks Application Layer Video Streaming, CDN and Sockets Sec 2.6 2.7 Prof. Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network
More informationNetworked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers
Networked Applications: Sockets CS 375: Computer Networks Spring 2009 Thomas Bressoud 1 Goals of Todayʼs Lecture Client-server paradigm End systems Clients and servers Sockets and Network Programming Socket
More informationJava Support for developing TCP Network Based Programs
Java Support for developing TCP Network Based Programs 1 How to Write a Network Based Program (In Java) As mentioned, we will use the TCP Transport Protocol. To communicate over TCP, a client program and
More informationJAVA SOCKET PROGRAMMING
JAVA SOCKET PROGRAMMING WHAT IS A SOCKET? Socket The combination of an IP address and a port number. (RFC 793 original TCP specification) The name of the Berkeley-derived application programming interfaces
More informationCSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1
CSMC 412 Computer Networks Prof. Ashok K Agrawala 2015 Ashok Agrawala Set 2 September 15 CMSC417 Set 2 1 Contents Client-server paradigm End systems Clients and servers Sockets Socket abstraction Socket
More informationHomework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is:
Homework 1 Hadachi&Lind October 25, 2017 Must Read: 1. Deadline for doing homework is 3 weeks starting from now 2017.10.25 due date is: 2017.11.15 5:59:59 EET 2. For any delay in submitting the homework
More informationCSE1720 Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level
Shooter Games CSE1720 Click to edit Master Week text 04, styles Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level Winter 2014! Thursday, Jan 29, 2015/Tuesday, Feb 03, 2015
More informationNetworking Presented by: Marcin Chady
Networking Presented by: Marcin Chady Networking Present and Future Originally the domain of PC games PC networked games are very popular Everquest, Diablo, Starcraft, WoW, EVE Online Counterstrike, Unreal
More informationNetworks and distributed computing
Networks and distributed computing Abstractions provided for networks network card has fixed MAC address -> deliver message to computer on LAN -> machine-to-machine communication -> unordered messages
More informationNetworking Past, Present and Future
Networking 1 Networking Past, Present and Future Networking is a crucial feature of many modern games Used (12+ years ago) to be mainly PC Halo 2 brought online to the consoles Core feature of all consoles
More informationBrickNet (cont d) Other Academic Projects
BrickNet (cont d) Object-request brokers on the servers Aimed for collaborative design environments each node is responsible for its part of design and for sharing that information Also, networked games,
More informationCS 326: Operating Systems. Networking. Lecture 17
CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking
More informationSituational Awareness: Terrain Reasoning for Tactical Shooter A.I
Situational Awareness: Terrain Reasoning for Tactical Shooter A.I Situational Awareness The capability of an A.I. agent to reason is limited by the data its sensor's can acquire about the world The representation
More informationComputer Networks Prof. Ashok K. Agrawala
CMSC417 Computer Networks Prof. Ashok K. Agrawala 2018Ashok Agrawala September 6, 2018 Fall 2018 Sept 6, 2018 1 Overview Client-server paradigm End systems Clients and servers Sockets Socket abstraction
More information(Refer Slide Time: 1:09)
Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion
More informationMassive Documentation
Massive Documentation Release 0.2 Inhumane Software June 15, 2016 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................
More information6 Controlling the Technomad Encoder
T 6 Controlling the Technomad Encoder 6.1 User control interface The Techomad Encoder has a local web server built in. You can control the Technomad Encdoder from anywhere on your network using a standard
More informationEEC-682/782 Computer Networks I
EEC-682/782 Computer Networks I Lecture 16 Wenbing Zhao w.zhao1@csuohio.edu http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at
More informationClient/Server Computing & Socket Programming
COMP 431 Internet Services & Protocols Client/Server Computing & Socket Programming Jasleen Kaur January 29, 2019 Application-Layer Protocols Overview Application-layer protocols define:» The types of
More informationPorts under 1024 are often considered special, and usually require special OS privileges to use.
1 2 Turns out that besides an IP address (used by the IP layer), there is another address that is used by TCP (stream sockets) and, coincidentally, by UDP (datagram sockets). It is the port number. It's
More informationLecture 10: Protocol Design
Lecture 10: Protocol Design Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 10-1 Introduction TCP and UDP are generic protocols: They fulfill the needs of a wide range of applications
More informationStudent ID: CS457: Computer Networking Date: 5/8/2007 Name:
CS457: Computer Networking Date: 5/8/2007 Name: Instructions: 1. Be sure that you have 10 questions 2. Write your Student ID (email) at the top of every page 3. Be sure to complete the honor statement
More informationOperating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski
Operating Systems 16. Networking Paul Krzyzanowski Rutgers University Spring 2015 1 Local Area Network (LAN) LAN = communications network Small area (building, set of buildings) Same, sometimes shared,
More informationCS 351 Week 15. Course Review
CS 351 Week 15 Course Review Objectives: 1. To review the contents from different weeks. 2. To have a complete understanding of important concepts from different weeks. Concepts: 1. Important Concepts
More informationNetworking, Traffic Jams, and Schrödinger's Cat. Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft
Networking, Traffic Jams, and Schrödinger's Cat Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft XNA Framework Networking I spoke about networking at Gamefest 2007 What
More informationChapter 5.6 Network and Multiplayer
Chapter 5.6 Network and Multiplayer Multiplayer Modes: Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement Latency sensitive 2 Multiplayer Modes: Shared I/O Input
More informationInternet Connectivity with
Internet Connectivity with Introduction The purpose of this workshop is to help you g et acquainted with the basics of internet connectivity by leveraging ARM mbed tools. If you are not already familiar
More informationLECTURE WK4 NETWORKING
LECTURE WK4 NETWORKING Workbook and Quiz Workbook o Due in WK5 o Must hand in a hard copy to the tutor as well as an online submission Quiz o In the practical class o 30mins to complete the quiz o Short,
More informationthe gamedesigninitiative at cornell university Lecture 12 Architecture Design
Lecture 12 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams
More informationManaging and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals:
Managing and Securing Computer Networks Guy Leduc Chapter 2: Software-Defined Networks (SDN) Mainly based on: Computer Networks and Internets, 6 th Edition Douglas E. Comer Pearson Education, 2015 (Chapter
More informationthe gamedesigninitiative at cornell university Lecture 13 Architecture Design
Lecture 13 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams
More informationAssignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland
Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland t Your task Write a simple file server Client has to be implemented in Java Server has to be implemented
More informationCS 268: Computer Networking. Taking Advantage of Broadcast
CS 268: Computer Networking L-12 Wireless Broadcast Taking Advantage of Broadcast Opportunistic forwarding Network coding Assigned reading XORs In The Air: Practical Wireless Network Coding ExOR: Opportunistic
More informationOutline of Topics. UDP Socket Java Programming. Multicast in Java. Real-time protocol (RTP) XMPP and Jingle protocols. Java I/O and New IO (NIO)
Outline Outline of Topics UDP Socket Java Programming Multicast in Java Real-time protocol (RTP) XMPP and Jingle protocols Java I/O and New IO (NIO) UDP Socket Java Programming User Datagram Protocol (UDP)
More informationInternet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016
Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at
More information06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322
1 Local & Metropolitan Area Networks ACOE322 Lecture 5 TCP/IP Protocol suite and IP addressing 1 0. INTRODUCTION We shall cover in this topic: 1. The relation of TCP/IP with internet and OSI model 2. Internet
More informationMultiplayer Game Programming
Multiplayer Game Programming Phoenix area game developer since 2001 Teacher at Art Institute since 2006 Worked on a variety of educational and commercial games Author of itween Visual Editor and CameraFor2D
More informationInternet Technology 3/2/2016
Question 1 Defend or contradict this statement: for maximum efficiency, at the expense of reliability, an application should bypass TCP or UDP and use IP directly for communication. Internet Technology
More informationpeer) Poorly-connected hosts subscribe to a forwarding server packet compression and aggregation altering visual and temporal perceptions
Peer-Server Systems Peer-to to-peer: minimizes latency, consumes bandwidth Client-server: effective aggregation and filtering, increases latency Hybrid peer-server: over short-haul, haul, high- bandwidth
More informationPrinciples of Computer Game Design and Implementation. Lecture 11
Principles of Computer Game Design and Implementation Lecture 11 We already learned Vector operations Sum Subtraction Dot product Cross product A few others about jmonkey, eg. User input, camera, etc 2
More informationUNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.
UNIX Sockets Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. Socket and Process Communication application layer User Process Socket transport layer (TCP/UDP) network layer (IP)
More informationSockets 15H2. Inshik Song
Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.
More informationCS 457 Lecture 11 More IP Networking. Fall 2011
CS 457 Lecture 11 More IP Networking Fall 2011 IP datagram format IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol
More informationDISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES
DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline System Architectural Design Issues Centralized Architectures Application
More information3.2 COMMUNICATION AND INTERNET TECHNOLOGIES
3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2.1 PROTOCOLS PROTOCOL Protocol a set of rules governing the way that devices communicate with each other. With networks and the Internet, we need to allow
More informationChapter II: Application Layer
Chapter II: Application Layer UG3 Computer Communications & Networks (COMN) Myungjin Lee myungjin.lee@ed.ac.uk Slides copyright of Kurose and Ross Internet hourglass Here 2 Some network apps e-mail web
More informationIERG 4080 Building Scalable Internet-based Services
Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au
More informationComputer Communication Networks Socket Programming
Computer Communication Networks Socket Programming ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Application Programming Interface Interface exported by the network Since most network protocols are implemented
More informationELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition
ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick
More informationWow Admin Panel. Version Probably the best WoW Private Servers trainer out there
Wow Admin Panel Version 2.0.0 Probably the best WoW Private Servers trainer out there Wow Admin Panel will notify you on possible detectable cheats on your specific realm, and how to avoid detection. When
More informationComputer Networked games
Computer Networked games Another form of multimedia traffic audio, video and interactive Slides courtesy Mark Claypool @ WPI page 1 Game Types First Person Shooters Doom, Quake, Counter-strike, Massive
More informationMulti-User MIDP Game Design
Multi-User MIDP Game Design David Price, Principal Software Engineer Jyri Salomaa, Program Manager, Games Nokia Research Center, Helsinki 1 NOKIA Multi-User MIDP Game Design Price/Salomaa Contents Examples
More informationCS 43: Computer Networks. 08:Network Services and Distributed Systems 19 September
CS 43: Computer Networks 08:Network Services and Distributed Systems 19 September Reading Quiz Lecture 8 -Slide 2 Last class Inter-process communication using message passing How send and recv buffers
More information4.0.1 CHAPTER INTRODUCTION
4.0.1 CHAPTER INTRODUCTION Data networks and the Internet support the human network by supplying seamless, reliable communication between people - both locally and around the globe. On a single device,
More informationCS 10: Problem solving via Object Oriented Programming. Client/Server
CS 10: Problem solving via Object Oriented Programming Client/Server Agenda 1. Sockets 2. Server 3. MulAthreaded server 4. Chat server 2 Sockets are a way for computers to communicate IP: 1.2.3.4 HTTP
More informationCSC 4900 Computer Networks: End-to-End Design
CSC 4900 Computer Networks: End-to-End Design Professor Henry Carter Fall 2017 Villanova University Department of Computing Sciences Review In the last two lectures, we discussed the fundamentals of networking
More informationCSci Introduction to Distributed Systems. Communication: RPC
CSci 5105 Introduction to Distributed Systems Communication: RPC Today Remote Procedure Call Chapter 4 TVS Last Time Architectural styles RPC generally mandates client-server but not always Interprocess
More informationCSC 4900 Computer Networks: P2P and Sockets
CSC 4900 Computer Networks: P2P and Sockets Professor Henry Carter Fall 2017 Recap SMTP is the language that mail servers use to exchange messages. SMTP is push-based... why? You can run SMTP from a telnet
More informationQUICK START GUIDE. How Do I Get Started? Step #1 - Your Account Setup Wizard. Step #2 - Meet Your Back Office Homepage
QUICK START GUIDE Here is a tool that will help you generate prospects and follow up with them using your web browser. Your Lead Capture system has Personal Sites, Contact Management, Sales Tools and a
More informationSocket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory
Socket Programming Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2019 Networking Laboratory Contents Goals Client-Server mechanism Introduction to socket Programming with socket on
More informationCS164 Final Exam Winter 2013
CS164 Final Exam Winter 2013 Name: Last 4 digits of Student ID: Problem 1. State whether each of the following statements is true or false. (Two points for each correct answer, 1 point for each incorrect
More informationRecap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness
Recap TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness 81 Feedback Signals Several possible signals, with different
More informationLECTURE 5. Announcements
LECTURE 5 Announcements Falling Behind? Talk to us You still pass the class if you hand in all projects at the end of the semester Hand in even if you think you won t satisfy the playtesting requirements
More informationChapter 3. The Basics of Networking
Chapter 3 The Basics of Networking Learning Objectives Tell whether a communication technology (Internet, radio, LAN, etc.) is synchronous or asynchronous; broadcast or point-to-point Explain the roles
More informationRunning head: CONCEPTS OF DISTRIBUTED MULTIPLAYER GAME SYSTEMS. Concepts of Distributed Multiplayer Game Systems. Vanna Bushong. Evangel University
Concepts of Distributed 1 Running head: CONCEPTS OF DISTRIBUTED MULTIPLAYER GAME SYSTEMS Concepts of Distributed Multiplayer Game Systems Vanna Bushong Evangel University Concepts of Distributed 2 Abstract
More informationCS 126 Lecture S5: Networking
CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances
More informationCS 126 Lecture S5: Networking
CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances
More informationMassive Documentation
Massive Documentation Release 0.1 Inhumane Software August 07, 2014 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................
More informationChapter 2: outline. 2.1 principles of network applications. 2.6 P2P applications 2.7 socket programming with UDP and TCP
Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming
More informationIntroduction to the Application Layer. Computer Networks Term B14
Introduction to the Application Layer Computer Networks Term B14 Intro to Application Layer Outline Current Application Layer Protocols Creating an Application Application Architectures Client-Server P2P
More informationLecture 11. Transport Layer (cont d) Transport Layer 1
Lecture 11 Transport Layer (cont d) Transport Layer 1 Agenda The Transport Layer (continue) Connection-oriented Transport (TCP) Flow Control Connection Management Congestion Control Introduction to the
More informationWord Found Meaning Innovation
AP CSP Quarter 1 Study Guide Vocabulary from Unit 1 & 3 Word Found Meaning Innovation A novel or improved idea, device, product, etc, or the development 1.1 thereof Binary 1.2 A way of representing information
More informationCPS 214: Computer Networks. Slides by Adolfo Rodriguez
CPS 214: Computer Networks Slides by Adolfo Rodriguez Paper Evaluations 1 page maximum evaluation of reading for each class Evaluations submitted in advance of class from course Web page Describe: Biggest
More informationComputer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University
Computer Networks More on Standards & Protocols Quality of Service Week 10 College of Information Science and Engineering Ritsumeikan University Introduction to Protocols l A protocol is a set of rules
More informationReliable File Transfer
Due date Wednesday, Mar 14, 11:59pm Reliable File Transfer CS 5565 Spring 2012, Project 2 This project is worth 100 points. You may form teams of up to two students for this project. You are not required
More informationReplicating Chaos Vehicle Replication in Watch Dogs 2. Matt Delbosc Team Lead Programmer Ubisoft Toronto
Replicating Chaos Vehicle Replication in Watch Dogs 2 Matt Delbosc Team Lead Programmer Ubisoft Toronto Network architecture 4-player peer-to-peer No single server Lots of entities to replicate Distributed
More informationInternet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!! Garcia UCB!
cs10.berkeley.edu CS10 : Beauty and Joy of Computing Internet II!!Senior Lecturer SOE Dan Garcia!!!www.cs.berkeley.edu/~ddgarcia CS10 L17 Internet II (1)! Why Networks?! Originally sharing I/O devices
More informationTransport Layer. Chapter 3: Transport Layer
Transport Layer EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-1 Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing,
More informationChapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication
Mobile network Chapter 2 The Yanmin Zhu Department of Computer Science and Engineering Global ISP Home network Regional ISP Institutional network CSE Department 1 CSE Department 2 Application layer - Overview
More informationELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition
ELEC / COMP 177 Fall 2012 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Homework #1 Assigned today Due in one week Application layer: DNS, HTTP, protocols Recommend you start early
More informationDistributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016
Distributed Systems 2015 Exam 1 Review Paul Krzyzanowski Rutgers University Fall 2016 1 Question 1 Why did the use of reference counting for remote objects prove to be impractical? Explain. It s not fault
More informationCongestion Control. Lecture 12: TCP Friendliness, DCCP, NATs, and STUN. Chiu Jain Phase Plots. Fair A=B. Responding to Loss. Flow B rate (bps) t 1 t 3
Congestion Control Lecture 12: TCP Friendliness, DCCP, s, and STUN TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do losses (e.g., bit errors)
More informationLecture 12: TCP Friendliness, DCCP, NATs, and STUN
Lecture 12: TCP Friendliness, DCCP, NATs, and STUN Congestion Control TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do losses (e.g., bit
More informationLecture 10: TCP Friendliness, DCCP, NATs, and STUN
Lecture 10: TCP Friendliness, DCCP, NATs, and STUN TCP Friendliness Congestion Control TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do
More informationFoundations of Telematics
Foundations of Telematics Chapter 2 Application Layer Principles of network applications Important application protocols Using sockets Acknowledgement: These slides have been prepared by J.F. Kurose and
More informationCMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4
CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4 1 Lab schedule confirmation Mondays, 12:00-2:00pm Tuesdays, 11:00am-1:00pm Wednesdays, 4:00-6:00pm
More informationIEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services
IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 7 - Network Programming Albert Au Yeung 18th October, 2018 1 / 48 Computer Networking 2 / 48 Data Communication Exchange
More informationMobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake
Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Change in version 1.1 of this document: only 2 changes to this document (the unity asset store item has not changed)
More informationDISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT ABSTRACT
DISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT NSF Summer Undergraduate Fellowship in Sensor Technologies Jiong Shen (EECS) - University of California, Berkeley Advisor: Professor Dan Lee ABSTRACT
More informationAdding a Trigger to a Unity Animation Method #2
Adding a Trigger to a Unity Animation Method #2 Unity Version: 5.0 Adding the GameObjects In this example we will create two animation states for a single object in Unity with the Animation panel. Our
More informationUDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data
ELEX 4550 : Wide Area Networks 2015 Winter Session UDP and TCP is lecture describes the two most common transport-layer protocols used by IP networks: the User Datagram Protocol (UDP) and the Transmission
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 9 Transport Layer Winter 2019 Reading: Begin Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Outline Overview
More informationMIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E
MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Intersession 2008 Last Name: First Name: Student ID: PLEASE
More information