Video Streaming with the Stream Control Transmission Protocol (SCTP)

Similar documents
Master Course Computer Networks IN2097

TCP/IP Protocol Suite 1

Stream Control Transmission Protocol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Chapter 24. Transport-Layer Protocols

Outline. History Introduction Packets Association/ Termination Data Transmission concepts Multihoming Streams

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

An SCTP-Protocol Data Unit with several chunks

User Datagram Protocol

UNIT IV TRANSPORT LAYER

Stream Control Transmission Protocol (SCTP)

Reliability and Availability in Stream Control Transport Protocol (SCTP)

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

OSI Transport Layer. objectives

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Topics in Computer Networking Switch SS7 PSTN/ISDN. Gatekeeper/ Proxy Server. Topics in Computer Networking Н.

UDP, TCP, IP multicast

Different Layers Lecture 20

UNIT IV -- TRANSPORT LAYER

Just enough TCP/IP. Protocol Overview. Connection Types in TCP/IP. Control Mechanisms. Borrowed from my ITS475/575 class the ITL

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

ITS323: Introduction to Data Communications

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

Protocol Layers & Wireshark TDTS11:COMPUTER NETWORKS AND INTERNET PROTOCOLS

ARP, IP, TCP, UDP. CS 166: Introduction to Computer Systems Security 4/7/18 ARP, IP, TCP, UDP 1

Summary of last time " " "

Computer Network Programming

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

TSIN02 - Internetworking

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

ECE 435 Network Engineering Lecture 15

Layer 4: UDP, TCP, and others. based on Chapter 9 of CompTIA Network+ Exam Guide, 4th ed., Mike Meyers

Networking Technologies and Applications

TSIN02 - Internetworking

NT1210 Introduction to Networking. Unit 10

Process-to-Process Delivery:

The Transmission Control Protocol (TCP)

4. The transport layer

Networking interview questions

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols

CS164 Final Exam Winter 2013

Review problems (for no credit): Transport and Network Layer

TSIN02 - Internetworking

TSIN02 - Internetworking

Transport of (Legacy) Signaling over IP. Summary of course scope

ENEE 457: Computer Systems Security 11/07/16. Lecture 18 Computer Networking Basics

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

9th Slide Set Computer Networks

Discussion: Messaging

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

TCP/IP Transport Layer Protocols, TCP and UDP

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

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

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

Introduction to TCP/IP networking

TSIN02 - Internetworking

TSIN02 - Internetworking

Da t e: August 2 0 th a t 9: :00 SOLUTIONS

Transport Layer Review

TSIN02 - Internetworking

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 5 - Part 2

Reliable Transport I: Concepts and TCP Protocol

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

Transport Layer Marcos Vieira

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

Simulation of TCP Layer

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

CC-SCTP: Chunk Checksum of SCTP for Enhancement of Throughput in Wireless Network Environments

Vorlesung Kommunikationsnetze

Chapter 5 End-to-End Protocols

Networks. Other Matters: draft Assignment 2 up (Labs 7 & 8 v. important!!) Ref: [Coulouris&al Ch 3, 4] network performance and principles

Outline. What is TCP protocol? How the TCP Protocol Works SYN Flooding Attack TCP Reset Attack TCP Session Hijacking Attack

CPSC156a: The Internet Co-Evolution of Technology and Society. Lecture 4: September 16, 2003 Internet Layers and the Web

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

CSE 461 Module 10. Introduction to the Transport Layer

The aim of this unit is to review the main concepts related to TCP and UDP transport protocols, as well as application protocols. These concepts are

Introduction to Networks and the Internet

Network Model: Each layer has a specific function.

Sequence Number. Acknowledgment Number. Data

Lecture 3: The Transport Layer: UDP and TCP

Application. Transport. Network. Link. Physical

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

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

CSE/EE 461 Lecture 13 Connections and Fragmentation. TCP Connection Management

THE TRANSPORT LAYER UNIT IV

Unit 2.

Mobile Transport Layer Lesson 10 Timeout Freezing, Selective Retransmission, Transaction Oriented TCP and Explicit Notification Methods

ECE697AA Lecture 3. Today s lecture

The Transport Layer: TCP & Reliable Data Transfer

4.0.1 CHAPTER INTRODUCTION

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

TCP /IP Fundamentals Mr. Cantu

TCP/IP-2. Transmission control protocol:

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

CCNA 1 v3.11 Module 11 TCP/IP Transport and Application Layers

Transport Layer (TCP/UDP)

Transcription:

Chair for Network Architectures and Services Department of Informatics Technische Universität München Video Streaming with the Stream Control Transmission Protocol (SCTP) Lothar Braun, Andreas Müller

Internet Protocol Stack The Internet Protocol Stack Session, Presentation, Application Layer Application Transport Layer UDP UDP TCP TCP SCTP Network Layer IP Physical + Data Link Layer Network Interface (Ethernet, PPP, ) Why another transport layer protocol? 2

Contents Recap: UDP and TCP Problems with UDP/TCP Stream Control Transmission Protocol (SCTP) Association setup / stream setup Message types Partial Reliability Multi-Homing support Congestion control The Lab 3

Contents Recap: UDP and TCP 4

User Datagram Protocol (1) Message oriented Sending application writes a N byte message Receiving application reads a N byte message Unreliable Lost packets will not be retransmitted Unordered delivery Packets may be re-ordered in the network Hello World Hello World Application UDP IP Network Interface World Hello Application UDP IP Network Interface 5

User Datagram Protocol (2) Application address on a host 0 16 31 Source Port Destination Port Length Checksum Data... Packet header Message Length: Header and Data Message Barely more features than IP 6

Transmission Control Protocol (1) Connection/Stream oriented. Not message oriented World Hello Hello World Message boundaries are not preserved Reliable transmission Lost packets are retransmitted Retransmission will be repeated until acknowledgment is received In-order delivery Segments n + 1, n + 2, n + 3, will be delivered after segment n Congestion control TCP tries to share bandwidth equally between all end-points 7

Transmission Control Protocol (2) Much information encoded into a single header Ports Application addressing Sequence Numbers Used to identify/acknowledge segments Flags/Window Signaling 0 16 31 4 bit TCP header length Source Port 6 bit unused Sequence Number Acknowledgement U A P R S F R C SH ST YN IN G K Destination Port Window Packet header Checksum Options Daten... Urgent Pointer 8

Problems Certain applications observe problems due to UDP and TCP properties TCP: Head-of-line blocking with video streaming Frames 2,3,4 arrived but cannot be shown because frame 1 is missing Video will stop until frame 1 is delivered UDP: Unordered delivery: Second image is delivered after first image Packet loss: Certain frames get lost low video/audio quality No congestion control Example: Internet-Telephony Two types of traffic: Signalling traffic: should be delivered reliable and in-order (TCP) Voice traffic: should not suffer from head-of-line blocking (UDP) Need to manage two sockets SCTP can deal with these problems 9

Contents SCTP Features 10

SCTP Features at a glance Connection and message oriented SCTP builds an association between two peers TCP connections Association can contain multiple streams Messages are sent over one of the streams Partial reliability Lifetime defined for each message Retransmission of a message is performed during its lifetime Messages can be delivered unreliable, full reliable or partial reliable Multi-Homing SCTP can use multiple IP addresses 11

Contents SCTP Message Format 12

SCTP Message Format Common header format 12 byte header In front of every SCTP message Ports address the application 0 16 31 Source Port Destination Port Verification tag Checksum Data ( Chunks )... Packet header Random number which Identifies a given association: Used to distinguish new from old connections Checksum on the complete SCTP message: Common header and chunks 13

SCTP Chunk Format Data and signaling information is transported in chunks One or more chunks in a SCTP message Each chunk type has a special meaning: INIT, INIT-ACK, COOKIE, COOKIE-ACK Connection setup DATA Transports user data SACK Acknowledge Data You will learn more about the different chunk types in the pre lab Common chunk format 0 16 31 Chunk Type Chunk Flags Chunk Length Chunk header Chunk Data... Additional formats are defined for the different chunk types 14

Contents SCTP Associations and Data Transmission 15

Connection Setup TCP connection setup Client Server SYN SYN/ ACK Create State for TCP connection: Store client information ACK Known Problem: TCP SYN-Flooding 16

SYN Flodding Client 1 SYN SYN/ACK Client 2 Client 3 SYN SYN/ACK SYN SYN/ACK State: Client 1 Client 2 Client 3 Clients send SYN-Packets but do not respond to SYN-ACK Usually done by a single client that performs IP address spoofing Works because only a single forged packet is necessary Server has to store state until a TCP timeout occurs Leads to resource exhaustion Server cannot accept any more connections 17

SCTP Association Setup Solution to SYN-Flood problem: Cookies Client Server INIT INIT-ACK Generate client specific cookie Send Cookie Forget client Cookie-Echo Cookie-ACK Association is established - No SYN-floods with spoofed addresses possible Check if cookie is valid Create state only on valid cookie You will learn more about this in the Pre-Lab 18

Data Transmission Application data is transmitted in Data Chunks A data chunk is associated to a stream (Stream Identifier S) TSN (Transport Sequence Number) Global Sequence Number Similar to Sequence number in TCP Necessary for retransmissions Stream sequence number Necessary for per-stream transmission reliability 19

Transmission reliability (1) TCP Packets are transmitted fully reliable retransmitted until received Packets are delivered in-order to the application Slow start and congestion avoidance for congestion control UDP Packets are transmitted fully unreliable never retransmitted No re-ordering packet order may be changed at the receiver No congestion control SCTP can do both and more because of its streams 20

Transmission reliability (2) Why multiple streams? Solves head of line blocking No firewall issues (only one port for several streams) Partial Reliability Extension (PR-SCTP) for different reliability levels PR-SCTP Allows to set a lifetime parameter for each message Lifetime specifies how long the sender should try to retransmit a packet Allows to create reliable and unreliable streams within an association Fully reliable streams (TCP like) Partial reliable stream unreliable stream (UDP like) 21

Contents Multihoming 22

Multi-Homing: Association setup SCTP chooses one IP address at association setup IP can be specified by user UMTS-IP Server IP DSL-IP SCTP Association DSL IP is used to setup the connection UMTS-IP is announced as backup IP at association setup 23

Multi-Homing Heartbeat messages are periodically sent to check link availability UMTS-IP Heartbeat DSL-IP Heartbeat SCTP Association Server IP 24

Multi-Homing Changes only occur when the default link is found to be broken Is identified because of packet loss (data or heartbeat) Consequence: SCTP will resume on the backup link No new association setup necessary UMTS-IP Server IP DSL-IP SCTP Association 25

Real World Deployment SCTP is cool -> but why don t we use it? Why do we use HTTP over TCP for Video Streaming? Why don t we use Multicast? Because it just works good enough Firewall and NAT issues Most home routers simply can t translate SCTP Implementations No native Windows support (only userspace lib) BUT: mandatory for some newly developed protocols such as IPFIX 26

Contents The Lab 27

The Lab Pre-Lab Get to known SCTP in detail Learn how things work How to setup SCTP connections How streams are used What kind of SCTP chunks you have and what their purpose is Lab Part 1 Observe SCTP traffic on the wire Use Wireshark to observe the traffic from an unknown SCTP application Lab Part 2 Build a SCTP video streaming application Program an controller that allows to start, stop, pause, forward, rewind videos Stream videos over a lossy network link See and hear the quality differences when streaming over SCTP compared to streaming over UDP and TCP 28

Contributions to the lab The SCTP Lab was set up in summer term 2010 (SS 2010). Students Carl Denis Alexandra Simon Supervisors Lothar Braun Andreas Müller You are invited to contribute as well by giving us comments and suggestions for improvement! 29

Questions? 30