Lecture 10: Protocol Design

Similar documents
Lecture 4: The Transport Layer and UDP

Lecture 3: The Transport Layer: UDP and TCP

Lecture 14: Performance Architecture

Lecture 14: Multimedia Communications

EEC-682/782 Computer Networks I

Module objectives. Integrated services. Support for real-time applications. Real-time flows and the current Internet protocols

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

Intro to LAN/WAN. Transport Layer

UDP, TCP, IP multicast

EE 610 Part 2: Encapsulation and network utilities

CS457 Transport Protocols. CS 457 Fall 2014

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing

Prof. Shervin Shirmohammadi SITE, University of Ottawa. Internet Protocol (IP) Lecture 2: Prof. Shervin Shirmohammadi CEG

Lecture 3 Protocol Stacks and Layering

CS519: Computer Networks. Lecture 1 (part 2): Jan 28, 2004 Intro to Computer Networking

TCP/IP THE TCP/IP ARCHITECTURE

OSI Transport Layer. objectives

5105: BHARATHIDASAN ENGINEERING COLLEGE NATTARMPALLI UNIT I FUNDAMENTALS AND LINK LAYER PART A

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

LECTURE WK4 NETWORKING

Internet Applications and the Application Layer Material from Kurose and Ross, Chapter 2: The Application Layer

EE 122: IP Forwarding and Transport Protocols

The Transmission Control Protocol (TCP)

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

CSC 4900 Computer Networks: End-to-End Design

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

User Datagram Protocol

Networking Past, Present and Future

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

CS 716: Introduction to communication networks th class; 7 th Oct Instructor: Sridhar Iyer IIT Bombay

Networking Presented by: Marcin Chady

CMPE 80N: Introduction to Networking and the Internet

UNIT V. Computer Networks [10MCA32] 1

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Chapter 7. Local Area Network Communications Protocols

BEng. (Hons) Telecommunications. Examinations for / Semester 2

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START

ECE 158A: Lecture 7. Fall 2015

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

Computer Science 461 Midterm Exam March 14, :00-10:50am

Lecture 4: Basic Internet Operations

Chapter 6. The Transport Layer. The Transport Service. Services Provided to the Upper Layers. Transport Service Primitives (3) 10/7/2010

Digital Asset Management 5. Streaming multimedia

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

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

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

CPSC 826 Internetworking. The Network Layer: Routing & Addressing Outline. The Network Layer

Data Communication & Computer Networks MCQ S

Goals and topics. Verkkomedian perusteet Fundamentals of Network Media T Circuit switching networks. Topics. Packet-switching networks

BLM6196 COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS

Congestion Manager. Nick Feamster Computer Networks. M.I.T. Laboratory for Computer Science. October 24, 2001

ICMP (Internet Control Message Protocol)

Network Layer (1) Networked Systems 3 Lecture 8

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ

Lecture 4: Introduction to Computer Network Design

NT1210 Introduction to Networking. Unit 10

Announcements. IP Forwarding & Transport Protocols. Goals of Today s Lecture. Are 32-bit Addresses Enough? Summary of IP Addressing.

Goal of Today s Lecture. EE 122: Designing IP. The Internet Hourglass. Our Story So Far (Context) Our Story So Far (Context), Con t

Mobile Communications Chapter 9: Mobile Transport Layer

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

Different Layers Lecture 21

Network Architecture

Last Lecture. Network Architecture: Layers. This Lecture. In the sending host (2) In the sending host

Transport protocols Introduction

Defining Networks with the OSI Model. Module 2

Hybrid of client-server and P2P. Pure P2P Architecture. App-layer Protocols. Communicating Processes. Transport Service Requirements

Communication Networks ( ) / Fall 2013 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

CSCI 466 Midterm Networks Fall 2013

Internetworking Models The OSI Reference Model

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Goal and A sample Network App

CSCD 433/533 Advanced Networks Fall Lecture 14 RTSP and Transport Protocols/ RTP

Lecture (11) OSI layer 4 protocols TCP/UDP protocols

Introduction to the Application Layer. Computer Networks Term B14

Cisco Cisco Certified Network Associate (CCNA)

Network Architecture Models

The Network Layer Forwarding Tables and Switching Fabric

The Data Link Layer. 32 PART I Networking Basics

EEC-484/584 Computer Networks

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

ONLINE GAMES: IS THE INTERNET PREPARED FOR

Introduction to TCP/IP networking

Master Course Computer Networks IN2097

Review of Previous Lecture

UNIT IV -- TRANSPORT LAYER

PRACTICE QUESTIONS ON RESOURCE ALLOCATION

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Computer Communication & Networks / Data Communication & Computer Networks Week # 03

CHAPTER-2 IP CONCEPTS

Multimedia Networking

CMSC 322 Computer Networks Applications and End-To- End

Monitoring and Analysis

4 rd class Department of Network College of IT- University of Babylon

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

Position of IP and other network-layer protocols in TCP/IP protocol suite

Transcription:

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 (FTP, Telnet, SMTP, HTTP, ) They don t fulfill the need of all applications (Real-time data transfer, groupware, CVE, ) There s a need for specific (non-generic) protocol: RTP: specific to real-time data Note: it uses UDP for its multiplexing capability Application-specific protocols usually use UDP as the transport layer (for deployment convenience) and do their processing at the application layer. This is known as application-level framing. Fall 2005 CEG 4183 10-2

Protocol Development Steps Application analysis Requirements Design Simulation Implementation Testing Fall 2005 CEG 4183 10-3

Analysis How do actions in the application relate to data generation? Semantics: What is the meaning of the data generated? What type of data does the application generate (syntax)? Text, integers, bytes, or combination. How often does it generate the data? Fall 2005 CEG 4183 10-4

Requirements What requirements does the application data have for: delay bandwidth reliability fragmentation These are application-specific. They might not be uniform for all data generated by the same application: some portions of the data might have different requirements from other portions. Fall 2005 CEG 4183 10-5

Design Based on the analysis and requirements, a protocol can be designed that addresses the discovered needs. Two main design considerations: Delivery mechanism: How to transport messages across the network as to satisfy the delivery requirements (delay, bandwidth, reliability, ) If using application-level framing, you can assume UDP will do the basic delivery from one host to another (or others, in the case of multipoint communications). You can then build your delivery mechanism on top of UDP. Message format and exchange rules: Protocol Message Types Header Syntax and Semantics Syntax: pattern of formation Semantics: meaning Exchange rules: the sequence of sending and responding to messages Fall 2005 CEG 4183 10-6

Protocol Message Types Open image Annotate Send text OPEN file URL DRAW Color X0 Y0 X1 Y1 CHAT User message In this example we only have one token for each Message. This token is essentially the only field in the header. In most applications, there is a need for more than one field in the header. Fall 2005 CEG 4183 10-7

Application-Layer PDU Protocol Data Unit control bit key update object ID Stream number sequence number application payload (update message) Application Layer Header for Protocol X UDP header X header message Transport Layer IP header UDP header X header message Networking Layer Fall 2005 CEG 4183 10-8

TCP-friendliness TCP-friendliness is an important design consideration. TCP backs off in the face of congestion, so a greedy non-tcp protocol can choke TCP by aggressively sending data. Non-TCP protocols should not violate bandwidth B given by: C B = ; C based on MTU and RTT Loss _ rate Not possible in all cases (such as real-time data with natural bit rate). Fall 2005 CEG 4183 10-9

Describes the logical operation of the protocol which events trigger which actions Protocol State Machine Fall 2005 CEG 4183 10-10

Theoretical Analysis and Simulation The protocol can be theoretically analyzed, using queuing analysis for example. Sometimes it is very difficult to mathematically model a protocol. In any case, Simulation helps identify weaknesses or design flaws before implementing the protocol in the real world. Simulation must be done for an environment where the protocol will be deployed (as realistic as possible). Other protocols present in that environment should be present in the simulation as well, in order to see performance results for both those protocols and the newly-designed protocol. How does my protocol behave in the presence of existing Internet traffic? We need to simulate Internet traffic (see queuing analysis lecture). Fall 2005 CEG 4183 10-11

Simulation Node configuration Application data generation Fall 2005 CEG 4183 10-12

Simulation ( ) Fall 2005 CEG 4183 10-13

Prototyping and Testing After modifying the design based on simulation results, a prototype should be developed to test the protocol in the real world. The prototype should initially implement only architecturally-significant parts of the design. No need to implement all features yet The prototype should be tested and inefficiencies/problems should be addressed Design level problems Implementation problems Fall 2005 CEG 4183 10-14

Implementation and Deployment After successful testing, remaining features can be added to have a complete implementation. Implementation is usually done as an application-layer protocol (even though it s designed as end-to-end) using UDP a.k.a. Application-level Framing For something to be really done in the transport layer (such as UDP and TCP) we need kernel access and wide deployment. even a widely-used protocol such as RTP is not in most kernels, yet. Fall 2005 CEG 4183 10-15

Protocol Design Example Multiplayer 3D shoot em up game. Picture courtesy of Valve Corp. Fall 2005 CEG 4183 10-16

Analysis Data is generated from players running, objects moving, weapons being fired, buildings destroyed, Most objects (humans, aliens, ) move constantly and undeterministically. They produce lots of update messages on a constant basis. (Type 1) Some objects (tanks, airplanes) move constantly but in a more deterministic fashion based on velocity (speed and direction). We can send updates only when there s a change in direction or speed. (Type 2) Some actions, such as a weapon firing or a building destroyed, send one message only (e.g., location and direction of firing). (Type 3) Fall 2005 CEG 4183 10-17

Requirements Minimize delay! Performance evaluations have shown the ideally, end-to-end delay should be less than 100-200 msec for smooth playing. Type 1 messages don t require reliability since they are corrected by the next update. Need to be careful not to send too many updates because bandwidth is limited. Type 2 messages don t require reliability if sent often enough; otherwise require reliability. Type 3 messages require reliability. All 3 types are one-to-many transmissions (point to multipoint). Fall 2005 CEG 4183 10-18

Design Use UDP multicast Other choices possible for specific circumstances Need to indicate key updates, which require reliability. Need to know what object has changed state (Object ID must be globally unique within the environment) Need to discard late packets. An example Protocol Message Type: Update_Type1 Header Key Object ID Time Stamp Data Key: 1 bit ObjectID: 16 bits (>65000 simultaneous objects supported) TimeStamp: 32 bit integer, starting from January 1 st 1970 Data: X, Y, Z (16-bit integers for position) and R1, R2 (16-bit floats for orientation) Fall 2005 CEG 4183 10-19

Differential Updates Regular update messages (12245, 156, -1233) (12243, 155, -1230) (12241, 153, -1229) Differential update messages (12245, 156, -1233) (-2, -1, 3) (-4, -3, 4) regular and differential update messages Key Update Diff. Update Diff. Update... Key Update Diff. Update... Key Update a stream of update messages Differential updates save bandwidth. Key updates require reliability. Fall 2005 CEG 4183 10-20

Design Issues Many non-trivial complications: Discard any late-arriving update? What about key updates? Only if their timestamp indicates this is older than a previously received key update for that object. Reliability based on ACK or NACK? Big topic! ACK creates more traffic than NACK, but is needed in cases where the object doesn t move for a long time. Definitely ACK for message type 3. How to implement ACK or NACK for a large group size? Should everyone send ACK (floods the network)? Use a representative-based approach Fall 2005 CEG 4183 10-21

Implementations Many implementations for such environments; both for games and for simulations. Distributed Interactive Simulation (DIS) is an IEEE standard for such environments. Practically used for army combat training and simulations. In practice, Multicast is only used for LANs. Games use other means to support home users: Server farms Upcoming: Peer-to-peer (P2P) techniques Fall 2005 CEG 4183 10-22