Multiplayer Game Programming

Size: px
Start display at page:

Download "Multiplayer Game Programming"

Transcription

1 Multiplayer Game Programming

2 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 components for Unity Currently developing Star. Ship. Story., a co-op space faring adventure Slightly crazy to be making a multiplayer game David dkoontz.wordpress.com

3 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

4 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

5 The Problem A B

6 The Problem A B

7 The Problem A B

8 The Problem A B?

9 The Problem A B

10 The Problem A B

11 The Problem A B

12 The Problem A B

13 The Problem A B

14 The Problem A B

15 The Problem A B

16 The Problem A B

17 The Problem A B

18 The Problem A B

19 IP Protocol The Internet functions by being able to break data (usually cats) into packets and then (semi)reliably delivering those packets to their destination using whatever networks are available. Destinations are numbered addresses that look like this:

20 What is a protocol? The protocol bit of the IP Protocol is just the expected actions of each party participating in the exchange and an agreed upon way of interpreting data sent between the systems

21 What is a protocol? The protocol bit of the IP Protocol is just the expected actions of each party participating in the exchange and an agreed upon way of interpreting data sent between the systems Shaking hands when meeting someone is a social protocol. Signalling before changing lanes is standard driving protocol. Belay, on belay, belay on is standard rock climbing protocol.

22 It s protocols all the way down TCP UDP Reliable Ordered Maintains a connection Needs handshake Unreliable Unordered Connectionless Less overhead per packet Fetching a web site Transferring a file Chat messages Turn based games Voice chat Most high action games Anything severely affected by latency IP

23 Ports Both TCP and UDP add another element to the where part of delivering a packet :3724

24 Ports Both TCP and UDP add another element to the where part of delivering a packet IP address Port :3724

25 Ports Ports allow the receiving computer to differentiate the packets coming in for one application vs another

26 Ports Think of how many applications you have receiving data at once through the same network connection

27 Ports Web browser Skype System updates AIM MSN GChat Pandora Spotify Games

28 Data Port, Handshake info, sequence number, etc. Destination IP address Source IP address Total length, protocol number, other important but boring values The anatomy of an IP packet Header

29 16 bytes TCP/UDP 16 bytes / 4 bytes Data IP Protocol Port, Handshake info, sequence number, etc. Destination IP address Source IP address Total length, protocol number, other important but boring values The anatomy of an IP packet Your application s protocol

30 Serialization (aka marshalling) The process of converting your data to this format is called serialization Data The data that is sent must be converted to a format that can be sent across the Internet.

31 Serialization The serialized form of your data is always a byte array int float serializer string bool byte[ ]

32 Deserialization Deserialization is just the opposite process, extracting specific bits of data from the byte array as an int / float / string / etc. int float byte[ ] deserializer string bool

33 Deserialization You must know the format of the data that was serialized so that you can deserialize it correctly float int byte[ ] deserializer string bool

34 Deserialization You must know the format of the data that was serialized so that you can deserialize it correctly float int byte[ ] deserializer string bool

35 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

36 State The game state is all the significant values needed in order for the game to operate. Position / Rotation Player items Enemy action Time remaining

37 Local vs Internet multiplayer All input can be processed on the same frame/update Input arrives inconsistently from clients There is only one game state There are (# of player) game states Cheating is handled by the players themselves Cheating must be handled by the game

38 Mostly synched game states Unlike local multiplayer, each client has a unique but similar game state

39 Mostly synched game states Each player s game must simulate the actions of the other players

40 Mostly synched game states Sometimes these simulations are wrong

41 Life on the Internet == Latency (Lag)

42 Time sensitivity The difficulty of keeping all the various clients synched up is directly related to the time sensitivity of your game.

43 Time sensitivity The difficulty of keeping all the various clients synched up is directly related to the time sensitivity of your game. MMORPG Async Turn Based Game Parlor games, chess, poker A worthy challenge my lad RTS Tactical FPS Diablo / Torchlight I doff my hat do thee Twitch FPS Egads, are you daft?

44 This seems pretty straightforward A tale of two game states Part 1

45 A tale of two game states

46 A tale of two game states

47 A tale of two game states

48 A tale of two game states

49 A tale of two game states

50 A tale of two game states

51 Or so I thought A tale of two game states Part 2

52 A tale of two game states

53 A tale of two game states

54 A tale of two game states

55 A tale of two game states Character moved, shot missed Character was shot, movement is ignored

56 A wild solution appears (It s super effective) A tale of two game states Part 3

57 A tale of two game states

58 A tale of two game states

59 A tale of two game states

60 A tale of two game states

61 A tale of two game states

62 Ok, maybe not super effective A tale of two game states Fin

63 A tale of two game states 60ms

64 A tale of two game states 60ms 60ms

65 A tale of two game states

66 Delayed input Waiting 120ms for your key press to be registered is a bad user experience People expect immediate response times, especially in an action oriented game

67 Extrapolation

68 Extrapolation

69 Extrapolation

70 Extrapolation This technique allows the local machine to feel responsive, while still allowing the server to be authoritative It may lead to snapping or rubber banding if the server s version of the player s position is different from what the local simulation predicted

71 Interpolation

72 Interpolation

73 Interpolation

74 Interpolation Allows the client to fix errors over a short time, largely hiding the error When combined with extrapolation, can result in very smooth looking gameplay, even under higher lag conditions

75 Extrapolating other clients

76 Extrapolating other clients

77 Extrapolating other clients

78 Extrapolating other clients

79 Extrapolating other clients

80 Extrapolating other clients

81 Extrapolating other clients

82 Example videos

83 Client vs server authority Client Immediate processing of input Server Must wait for server to acknowledge input Easy to cheat Client are told the result of their own input Can result in inconsistent states Server must be able to simulate the game

84 The authoritative server This means you can not trust ANYTHING the client sends you Clients are generally not allowed to communicate directly Clients make requests to the server to perform an action which the server carries out if that is ok Is it ok for this client to be requesting this action? Client A using item owned by Client B

85 Suggestion Keep the server game logic isolated from the server network logic. Allows you to upgrade these parts in isolation from each other

86 One approach to server logic A byte[] B C Server network logic Player Ub3r1337 wants to jump Server game logic

87 One approach to server logic A Ok B Player Ub3r1337 jumped Player Ub3r1337 jumped C Server network logic Ok Server game logic

88 It all depends Depending on your game s needs, that server might be a web server (http get/post), a socket server (real time communication) or some mixture of the two

89 It all depends Depending on your game s needs, that server might be a web server (http get/post), a socket server (real time communication) or some mixture of the two MMORPG Async Turn Based Game Parlor games, chess, poker HTTP over TCP PHP, Ruby on Rails, MVC.NET RTS Tactical FPS Diablo / Torchlight Socket server over TCP or UDP Twitch FPS UDP, socket server

90 It all depends Depending on your game s needs, that server might be a web server (http GET/POST), a socket server (real time communication) or some mixture of the two MMORPG Async Turn Based Game Parlor games, chess, poker HTTP over TCP PHP, Ruby on Rails, MVC.NET More off the shelf solutions RTS Tactical FPS Diablo / Torchlight Socket server over TCP or UDP Twitch FPS UDP, socket server Need custom solution

91 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

92 What does a library do for you? Structure!

93 What does a library do for you? Structure! Message protocol

94 What does a library do for you? Structure! Message protocol Serialization & deserialization

95 What does a library do for you? Structure! Message protocol Serialization & deserialization A structure for client lifecycle events

96 What does a library do for you? Structure! Message protocol Serialization & deserialization A structure for client lifecycle events Connection / disconnection Authentication Chat Saving / retrieving user data Payments

97 What does a library do for you? Structure! Message protocol Serialization & deserialization A structure for client lifecycle events Connection / disconnection Authentication Chat Saving / retrieving user data Payments Can provide a tie-in to hosting solutions

98 What does a library impose on you? You need to use their server and client libraries Both ends must be able to speak the same protocol

99 What does a library impose on you? You need to use their server and client libraries Both ends must be able to speak the same protocol May only be available for certain languages or platforms

100 What does a library impose on you? You need to use their server and client libraries Both ends must be able to speak the same protocol May only be available for certain languages or platforms May be closed source and / or commercial

101 What does a library impose on you? You need to use their server and client libraries Both ends must be able to speak the same protocol May only be available for certain languages or platforms May be closed source and / or commercial May impose limitations on how you deploy or structure your server

102 Rolling your own Requires more familiarity with lower level network concepts (sockets, etc.)

103 Rolling your own Requires more familiarity with lower level network concepts (sockets, etc.) Requires you to put in place a structure for your server and client

104 Rolling your own Requires more familiarity with lower level network concepts (sockets, etc.) Requires you to put in place a structure for your server and client Requires you to develop your own message protocol and serialization / deserialization procedures

105 So which is better? It depends!

106 So which is better? It depends! No really, that s my entire answer

107 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

108 Two types of solutions Server as standalone Server as special client SmartFox (Java) Photon (C#) ElectroServer (Java) Player.IO (C#) Lidgren (C#) Flash Media Server Red5 (Java) ulink (Unity) Built in Unity Badumna (Unity)

109 Standalone server Can be written in a language more appropriate for writing a server

110 Standalone server Can be written in a language more appropriate for writing a server Can be used with any language / platform there is a client library for (or that you re willing to develop a client library for)

111 Standalone server Can be written in a language more appropriate for writing a server Can be used with any language / platform there is a client library for (or that you re willing to develop a client library for) Needs to implement all the important logic of your game, and may not be able to reuse the same code from your client

112 Standalone server Can be written in a language more appropriate for writing a server Can be used with any language / platform there is a client library for (or that you re willing to develop a client library for) Needs to implement all the important logic of your game, and may not be able to reuse the same code from your client Can be as light or heavy weight as you need

113 Client as server Only one place to put the logic

114 Client as server Only one place to put the logic Both client and server are the same app and can share logic

115 Client as server Only one place to put the logic Both client and server are the same app and can share logic Allows players to host games easily as well as running dedicated hosts

116 Client as server Only one place to put the logic Both client and server are the same app and can share logic Allows players to host games easily as well as running dedicated hosts Must interface with some sort of front end to manage user sessions

117 Client as server Only one place to put the logic Both client and server are the same app and can share logic Allows players to host games easily as well as running dedicated hosts Must interface with some sort of front end to manage user sessions Might have high overhead of running your game client when not all of it is needed

118 Client as server Only one place to put the logic Both client and server are the same app and can share logic Allows players to host games easily as well as running dedicated hosts Must interface with some sort of front end to manage user sessions Might have high overhead of running your game client when not all of it is needed Keeping client and server code separate can be tricky

119 Hybrid Family Guy Online A Unity B Photon C Unity D

120 Summary The Internet is a modern marvel, but is not a panacea Internet multiplayer is a good way to make your game 10x more complex There are no general solutions, only specific answers to specific problems

121 Content Packet Header How the Internet works Special considerations for games Using a library vs writing your own Existing tools for Flash, C#, HTML Questions

122 Send complaints to: David

Networking Presented by: Marcin Chady

Networking 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 information

Networking Past, Present and Future

Networking 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 information

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Transport Layer Network Fundamentals Chapter 4 Version 4.0 1 Transport Layer Role and Services Transport layer is responsible for overall end-to-end transfer of application data 2 Transport Layer Role

More information

Player 2 has joined the game

Player 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 information

NT1210 Introduction to Networking. Unit 10

NT1210 Introduction to Networking. Unit 10 NT1210 Introduction to Networking Unit 10 Chapter 10, TCP/IP Transport Objectives Identify the major needs and stakeholders for computer networks and network applications. Compare and contrast the OSI

More information

Transport Layer TCP & UDP Week 7. Module : Computer Networks Lecturers : Lucy White Office : 324

Transport Layer TCP & UDP Week 7. Module : Computer Networks Lecturers : Lucy White Office : 324 Transport Layer TCP & UDP Week 7 Module : Computer Networks Lecturers : Lucy White lbwhite@wit.ie Office : 324 1 Purpose of the Transport Layer The Transport layer provides for the segmentation of data

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Introduction Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Computer Networking A background of important areas

More information

OSI Transport Layer. objectives

OSI Transport Layer. objectives LECTURE 5 OSI Transport Layer objectives 1. Roles of the Transport Layer 1. segmentation of data 2. error detection 3. Multiplexing of upper layer application using port numbers 2. The TCP protocol Communicating

More information

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1 CS 640: Introduction to Computer Networks Aditya Akella Lecture 2 Layering, Protocol Stacks, and Standards 1 Today s Lecture Layers and Protocols A bit about s 2 Network Communication: Lots of Functions

More information

LECTURE WK4 NETWORKING

LECTURE 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 information

CS 4390 Computer Networks. Transport Services and Protocols

CS 4390 Computer Networks. Transport Services and Protocols CS 4390 Computer Networks UT D data Session 07 Transport Layer Overview and UDP Adapted from Computer Networking a Top-Down Approach 1996-2012 by J.F Kurose and K.W. Ross, All Rights Reserved Transport

More information

Application Layer Introduction; HTTP; FTP

Application Layer Introduction; HTTP; FTP Application Layer Introduction; HTTP; FTP Tom Kelliher, CS 325 Feb. 4, 2011 1 Administrivia Announcements Assignment Read 2.4 2.6. From Last Time Packet-switched network characteristics; protocol layers

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

Computer Networked games

Computer 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 information

CMPE 80N: Introduction to Networking and the Internet

CMPE 80N: Introduction to Networking and the Internet CMPE 80N: Introduction to Networking and the Internet Katia Obraczka Computer Engineering UCSC Baskin Engineering Lecture 11 CMPE 80N Fall'10 1 Announcements Forum #2 due on 11.05. CMPE 80N Fall'10 2 Last

More information

CSC 4900 Computer Networks: Transport Layer

CSC 4900 Computer Networks: Transport Layer CSC 4900 Computer Networks: Transport Layer Professor Henry Carter Fall 2017 Last Time... Sockets programming API TCP and UDP look different. Remember, there is no connect() in UDP - just start sending

More information

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Layer. Gursharan Singh Tatla.   Upendra Sharma. 1 Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message

More information

WebRTC: Possible? Don McGregor Research Associate MOVES Institute.

WebRTC: Possible? Don McGregor Research Associate MOVES Institute. WebRTC: Possible? Don McGregor Research Associate MOVES Institute mcgredo@nps.edu The World Classic simulation applications: can we do them in the web browser? Pretty much. I think. 2 1990s Start: Classic

More information

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC / 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 information

Enabling Full-Duplex Communications in APEX

Enabling Full-Duplex Communications in APEX Enabling Full-Duplex Communications in APEX Me Curt Workman - workmancw@ldschurch.org Education University of Utah Work Micron Electronics Evans&Sutherland The Church of Jesus Christ of Latter-Day Saints

More information

Interactive Graphical Systems HT2006

Interactive 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 information

Transport Layer. Chapter 3: Transport Layer

Transport 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 information

CMSC 332 Computer Networks Transport Layer

CMSC 332 Computer Networks Transport Layer CMSC 332 Computer Networks Transport Layer Professor Szajda Announcements Project I - I ll test against various clients (still possibly an issue in spec). Project 2 will be posted soon (but first, I want

More information

Networking, 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 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 information

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer CCNA Exploration Network Fundamentals Chapter 04 OSI Transport Layer Updated: 05/05/2008 1 4.1 Roles of the Transport Layer 2 4.1 Roles of the Transport Layer The OSI Transport layer accept data from the

More information

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet 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 information

Introduction to TCP/IP networking

Introduction to TCP/IP networking Introduction to TCP/IP networking TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute TCP : Transmission Control Protocol HTTP, FTP, ssh What is an internet? A set

More information

CSE 461 Module 11. Connections

CSE 461 Module 11. Connections CSE 461 Module 11 Connections This Time More on the Transport Layer Focus How do we connect processes? Topics Naming processes Connection setup / teardown Flow control Application Presentation Session

More information

Network programming EDA095 Hockeypong - Project report

Network programming EDA095 Hockeypong - Project report Network programming EDA095 Hockeypong - Project report Anton Persson 890324 antonjpersson@gmail.com Björn Elmers 880224 bjornelmers@gmail.com Linus Hammarlund 910414 linus.hammarlund@gmail.com Gunnar Weibull

More information

4.0.1 CHAPTER INTRODUCTION

4.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 information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print, ANNEX B - Communications Protocol Overheads The OSI Model is a conceptual model that standardizes the functions of a telecommunication or computing system without regard of their underlying internal structure

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer Lec 8: Transport Layer Service Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All material copyright 1996-2012 J.F Kurose

More information

Last Lecture. methods. ! How to send data from end to end: two switching. ! Packet loss and delay in a packet switched network. !

Last Lecture. methods. ! How to send data from end to end: two switching. ! Packet loss and delay in a packet switched network. ! Last Lecture! How to send data from end to end: two switching methods! Circuit switching! Packet switching! Packet loss and delay in a packet switched network SUNY AT BUFFALO; CSE489/589 MODERN NETWORKING

More information

XNA Network Protocol Specification, Draft 2

XNA Network Protocol Specification, Draft 2 XNA Network Protocol Specification, Draft 2 Brady Dial, Charles McGarvey March 7, 2010 Contents 1 Rationale 2 2 Overview 2 3 The Lobby 3 4 In-Game 5 4.1 Updating Under Good Conditions.................................

More information

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it Lecture 2 Communication services The Trasport Layer Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it The structure edge: applications and hosts core: routers of s access s, media:

More information

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 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 information

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. Chapter 2: Application Layer Our goals: conceptual, implementation

More information

CSE 461 The Transport Layer

CSE 461 The Transport Layer CSE 461 The Transport Layer The Transport Layer Focus How do we (reliably) connect processes? This is the transport layer Topics Naming end points UDP: unreliable transport TCP: reliable transport Connection

More information

Brief History of Networking. Lecture 34: How does a computer send messages over the Internet? Modern Internet. Caveat: Internet Web 11/22/10

Brief History of Networking. Lecture 34: How does a computer send messages over the Internet? Modern Internet. Caveat: Internet Web 11/22/10 11/22/10 UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 202 Introduction to Computation Brief History of Networking Professor Andrea Arpaci-Dusseau Fall 2010 Lecture 34: How does a computer

More information

Fundamentals of IP Networking 2017 Webinar Series Part 4 Building a Segmented IP Network Focused On Performance & Security

Fundamentals of IP Networking 2017 Webinar Series Part 4 Building a Segmented IP Network Focused On Performance & Security Fundamentals of IP Networking 2017 Webinar Series Part 4 Building a Segmented IP Network Focused On Performance & Security Wayne M. Pecena, CPBE, CBNE Texas A&M University Educational Broadcast Services

More information

Advanced Java Programming. Networking

Advanced 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 information

Internet Technology 3/2/2016

Internet 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 information

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER Transport Layer The Transport layer ensures the reliable arrival of messages and provides error checking mechanisms and data

More information

Firewall & Service Tickets FAST

Firewall & Service Tickets FAST Firewall & Service Tickets FAST draft-herbert-fast-01 Tom Herbert Goal A method to allow applications to signal the network for services it wants applied to packets that is secure,

More information

CSEN 503 Introduction to Communication Networks. Mervat AbuElkheir Hana Medhat Ayman Dayf. ** Slides are attributed to J. F.

CSEN 503 Introduction to Communication Networks. Mervat AbuElkheir Hana Medhat Ayman Dayf. ** Slides are attributed to J. F. CSEN 503 Introduction to Communication Networks Mervat AbuElkheir Hana Medhat Ayman Dayf ** Slides are attributed to J. F. Kurose Chapter 3 outline Transport-layer services Multiplexing and demultiplexing

More information

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems Outline CSCI 4061 Introduction to Operating Systems ing Overview Layering and Protocols TCP/IP Protocol Family Client-Server Model Instructor: Abhishek Chandra 2 Inter-Process Communication Intra-node:

More information

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers SC/CSE 3213 Winter 2013 L8: TCP/IP Overview Sebastian Magierowski York University 1 Outline TCP/IP Reference Model A set of protocols for internetworking The basis of the modern IP Datagram Exchange Examples

More information

Configure Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) Service Settings on a Switch

Configure Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) Service Settings on a Switch Configure Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) Service Settings on a Switch Objective Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) are transportation

More information

Application Level Protocols

Application Level Protocols Application Level Protocols 2 Application Level Protocols Applications handle different kinds of content e.g.. e-mail, web pages, voice Different types of content require different kinds of protocols Application

More information

Network Intrusion Detection Systems. Beyond packet filtering

Network Intrusion Detection Systems. Beyond packet filtering Network Intrusion Detection Systems Beyond packet filtering Goal of NIDS Detect attacks as they happen: Real-time monitoring of networks Provide information about attacks that have succeeded: Forensic

More information

(Refer Slide Time: 1:09)

(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 information

CSCD 330 Network Programming

CSCD 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 information

Control Structures. Code can be purely arithmetic assignments. At some point we will need some kind of control or decision making process to occur

Control Structures. Code can be purely arithmetic assignments. At some point we will need some kind of control or decision making process to occur Control Structures Code can be purely arithmetic assignments At some point we will need some kind of control or decision making process to occur C uses the if keyword as part of it s control structure

More information

CS457 Transport Protocols. CS 457 Fall 2014

CS457 Transport Protocols. CS 457 Fall 2014 CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram

More information

Network Applications Principles of Network Applications

Network Applications Principles of Network Applications Network Applications Principles of Network Applications A Network application is an application running on one host and provides communication to another application running on a different host. At the

More information

R (2) Implementation of following spoofing assignments using C++ multi-core Programming a) IP Spoofing b) Web spoofing.

R (2) Implementation of following spoofing assignments using C++ multi-core Programming a) IP Spoofing b) Web spoofing. R (2) N (5) Oral (3) Total (10) Dated Sign Experiment No: 1 Problem Definition: Implementation of following spoofing assignments using C++ multi-core Programming a) IP Spoofing b) Web spoofing. 1.1 Prerequisite:

More information

Internet Video Delivery. Professor Hui Zhang

Internet Video Delivery. Professor Hui Zhang 18-345 Internet Video Delivery Professor Hui Zhang 1 1990 2004: 1 st Generation Commercial PC/Packet Video Technologies Simple video playback, no support for rich app Not well integrated with Web browser

More information

Review of Previous Lecture

Review of Previous Lecture Review of Previous Lecture Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models Some slides are in courtesy of J. Kurose

More information

Application. Transport. Network. Link. Physical

Application. Transport. Network. Link. Physical Transport Layer ELEC1200 Principles behind transport layer services Multiplexing and demultiplexing UDP TCP Reliable Data Transfer TCP Congestion Control TCP Fairness *The slides are adapted from ppt slides

More information

The Client Server Model and Software Design

The Client Server Model and Software Design The Client Server Model and Software Design Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN MCSE Lab, NTUT, TAIWAN 1 Introduction

More information

ONLINE GAMES: IS THE INTERNET PREPARED FOR

ONLINE GAMES: IS THE INTERNET PREPARED FOR ONLINE GAMES: IS THE INTERNET PREPARED FOR THEM? GTC Communication Technologies Group Jose Saldana University of Zaragoza Spain Index - I. The two problems - II. Online games - III. Multiplexing FPS -

More information

Web Mechanisms. Draft: 2/23/13 6:54 PM 2013 Christopher Vickery

Web Mechanisms. Draft: 2/23/13 6:54 PM 2013 Christopher Vickery Web Mechanisms Draft: 2/23/13 6:54 PM 2013 Christopher Vickery Introduction While it is perfectly possible to create web sites that work without knowing any of their underlying mechanisms, web developers

More information

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017 Channels & Keyframes CSE69: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 27 Animation Rigging and Animation Animation System Pose Φ... 2 N Rigging System Triangles Renderer Animation When

More information

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably?

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably? CSE/EE 461 Lecture 14 Connections Last Time We began on the Transport layer Focus How do we send information reliably? Topics ARQ and sliding windows Application Presentation Session Transport Network

More information

Chapter 8 roadmap. Network Security

Chapter 8 roadmap. Network Security Chapter 8 roadmap 8.1 What is network security? 8.2 Principles of cryptography 8.3 Message integrity 8.4 Securing e-mail 8.5 Securing TCP connections: SSL 8.6 Network layer security: IPsec 8.7 Securing

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Transport Layer Intro, Mutliplexing/Demultiplexing, UDP Sec 3.1 3.4 Prof. Lina Battestilli Fall 2017 Chapter 3: Transport Layer our goals: understand principles

More information

Part 17: Networking Technology for Virtual Environments

Part 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 information

Objectives: (1) To learn to capture and analyze packets using wireshark. (2) To learn how protocols and layering are represented in packets.

Objectives: (1) To learn to capture and analyze packets using wireshark. (2) To learn how protocols and layering are represented in packets. Team Project 1 Due: Beijing 00:01, Friday Nov 7 Language: English Turn-in (via email) a.pdf file. Objectives: (1) To learn to capture and analyze packets using wireshark. (2) To learn how protocols and

More information

CS164 Final Exam Winter 2013

CS164 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 information

CS4700/CS5700 Fundaments of Computer Networks

CS4700/CS5700 Fundaments of Computer Networks CS4700/CS5700 Fundaments of Computer Networks Lecture 5: Internet architecture Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu

More information

Peer entities. Protocol Layering. Protocols. Example

Peer entities. Protocol Layering. Protocols. Example Peer entities Protocol Layering An Engineering Approach to Computer Networking Customer A and B are peers Postal worker A and B are peers Protocols A protocol is a set of rules and formats that govern

More information

Why do we really want an ID/locator split anyway?

Why do we really want an ID/locator split anyway? Why do we really want an ID/locator split anyway? Dave Thaler dthaler@microsoft.com MobiArch 2008 1 Starting from basics Users deal with names, not addresses (esp. in IPv6) Humans need friendly identifiers

More information

Business Data Networks and Security 10th Edition by Panko Test Bank

Business Data Networks and Security 10th Edition by Panko Test Bank Business Data Networks and Security 10th Edition by Panko Test Bank Chapter 2 Network Standards 1) Internet standards are published as. A) RFCs B) IETFs C) TCP/IPs D) Internet Protocols Question: 1a Objective:

More information

Chapter 7 Transport Layer. 7.0 Introduction 7.1 Transport Layer Protocols 7.2 TCP and UDP 7.3 Summary

Chapter 7 Transport Layer. 7.0 Introduction 7.1 Transport Layer Protocols 7.2 TCP and UDP 7.3 Summary Chapter 7 Transport Layer 7.0 Introduction 7.1 Transport Layer Protocols 7.2 TCP and UDP 7.3 Summary Transport Layer Transportation of Data Role of the Transport Layer The transport layer is responsible

More information

Dynamic Control Hazard Avoidance

Dynamic Control Hazard Avoidance Dynamic Control Hazard Avoidance Consider Effects of Increasing the ILP Control dependencies rapidly become the limiting factor they tend to not get optimized by the compiler more instructions/sec ==>

More information

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc.

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc. Objectives CPS221 Lecture: Layered Network Architecture last revised 6/22/10 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

UDP 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 information

Web Engineering (CC 552)

Web Engineering (CC 552) Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience

More information

Data Transport over IP Networks

Data Transport over IP Networks Data Transport over IP Networks Derek Konigsberg octo@logicprobe.org AITP University of Central Florida Data Transport over IP Networks p.1/24 Introduction The TCP/IP protocol suite was created by DARPA

More information

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst EITF25 Internet Techniques and Applications L7: Internet Stefan Höst What is Internet? Internet consists of a number of networks that exchange data according to traffic agreements. All networks in Internet

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations;

More information

CS419: Computer Networks. Lecture 10, Part 2: Apr 11, 2005 Transport: TCP mechanics (RFCs: 793, 1122, 1323, 2018, 2581)

CS419: Computer Networks. Lecture 10, Part 2: Apr 11, 2005 Transport: TCP mechanics (RFCs: 793, 1122, 1323, 2018, 2581) : Computer Networks Lecture 10, Part 2: Apr 11, 2005 Transport: TCP mechanics (RFCs: 793, 1122, 1323, 2018, 2581) TCP as seen from above the socket The TCP socket interface consists of: Commands to start

More information

Chapter 3: Transport Layer Part A

Chapter 3: Transport Layer Part A Chapter 3: Transport Layer Part A Course on Computer Communication and Networks, CTH/GU The slides are adaptation of the slides made available by the authors of the course s main textbook 3: Transport

More information

Google Hangout is a great platform for collaborating with colleagues and partners. This TechsmARTs session will begin with a few examples/case

Google Hangout is a great platform for collaborating with colleagues and partners. This TechsmARTs session will begin with a few examples/case Google Hangout is a great platform for collaborating with colleagues and partners. This TechsmARTs session will begin with a few examples/case studies of how artists and arts and culture organizations

More information

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps Internet in a Day Day 2 of 1 Carnegie Mellon University 15-440, Distributed Systems Last Time Modularity, Layering, and Decomposition Example: UDP layered on top of IP to provide application demux ( ports

More information

Connectionless and Connection-Oriented Protocols OSI Layer 4 Common feature: Multiplexing Using. The Transmission Control Protocol (TCP)

Connectionless and Connection-Oriented Protocols OSI Layer 4 Common feature: Multiplexing Using. The Transmission Control Protocol (TCP) Lecture (07) OSI layer 4 protocols TCP/UDP protocols By: Dr. Ahmed ElShafee ١ Dr. Ahmed ElShafee, ACU Fall2014, Computer Networks II Introduction Most data-link protocols notice errors then discard frames

More information

CS 480/680: GAME ENGINE PROGRAMMING

CS 480/680: GAME ENGINE PROGRAMMING CS 480/680: GAME ENGINE PROGRAMMING INPUT AND NETWORKING 2/7/2013 Santiago Ontañón santi@cs.drexel.edu https://www.cs.drexel.edu/~santi/teaching/2013/cs480-680/intro.html Outline Student Presentations

More information

Transport Layer Review

Transport Layer Review Transport Layer Review Mahalingam Mississippi State University, MS October 1, 2014 Transport Layer Functions Distinguish between different application instances through port numbers Make it easy for applications

More information

Different Layers Lecture 21

Different Layers Lecture 21 Different Layers Lecture 21 10/17/2003 Jian Ren 1 The Transport Layer 10/17/2003 Jian Ren 2 Transport Services and Protocols Provide logical communication between app processes running on different hosts

More information

precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level)

precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level) Protocols precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level) all packets shipped from network to network as IP packets

More information

Different Layers Lecture 20

Different Layers Lecture 20 Different Layers Lecture 20 10/15/2003 Jian Ren 1 The Network Layer 10/15/2003 Jian Ren 2 Network Layer Functions Transport packet from sending to receiving hosts Network layer protocols in every host,

More information

Chapter 5: Networking and the Internet

Chapter 5: Networking and the Internet Chapter 5: Networking and the Internet (Completion Time: 3 weeks) Topics: Internet Basics An overview of how the internet works and how we as users interact with it. This topic can also be used as sort

More information

Flash: an efficient and portable web server

Flash: an efficient and portable web server Flash: an efficient and portable web server High Level Ideas Server performance has several dimensions Lots of different choices on how to express and effect concurrency in a program Paper argues that

More information

Intrusion Prevention System Performance Metrics

Intrusion Prevention System Performance Metrics White Paper Intrusion Prevention System Performance Metrics The Importance of Accurate Performance Metrics Network or system design success hinges on multiple factors, including the expected performance

More information

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

CCNA 1 Chapter 7 v5.0 Exam Answers 2013 CCNA 1 Chapter 7 v5.0 Exam Answers 2013 1 A PC is downloading a large file from a server. The TCP window is 1000 bytes. The server is sending the file using 100-byte segments. How many segments will the

More information

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating 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 information

Network and Security: Introduction

Network and Security: Introduction Network and Security: Introduction Seungwon Shin KAIST Some slides are from Dr. Srinivasan Seshan Some slides are from Dr. Nick Mckeown Network Overview Computer Network Definition A computer network or

More information

MIPS Assembly Language Programming PDF

MIPS Assembly Language Programming PDF MIPS Assembly Language Programming PDF Users of this book will gain an understanding of the fundamental concepts of contemporary computer architecture, starting with a Reduced Instruction Set Computer

More information

Zero Latency HTTP The comet Technique

Zero Latency HTTP The comet Technique Zero Latency HTTP The comet Technique Filip Hanik SpringSource Inc Keystone, Colorado, 2008 Slide 1 Who am I bla bla fhanik@apache.org Tomcat Committer / ASF member Co-designed the Comet implementation

More information