Internet Technology 4/29/2013

Similar documents
Distributed Systems 26. Mobile Ad Hoc Mesh Networks

Internet Networking recitation #

The Session Initiation Protocol

Multimedia networking: outline

Department of Computer Science. Burapha University 6 SIP (I)

Network Address Translation (NAT) Contents. Firewalls. NATs and Firewalls. NATs. What is NAT. Port Ranges. NAT Example

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

Real-Time Control Protocol (RTCP)

P2PSIP, ICE, and RTCWeb

Mohammad Hossein Manshaei 1393

Network Address Translation (NAT) Background Material for Overlay Networks Course. Jan, 2013

Overview of the Session Initiation Protocol

Journal of Information, Control and Management Systems, Vol. X, (200X), No.X SIP OVER NAT. Pavel Segeč

Installation & Configuration Guide Version 4.0

Realtime Multimedia in Presence of Firewalls and Network Address Translation

Multimedia Communication

Realtime Multimedia in Presence of Firewalls and Network Address Translation. Knut Omang Ifi/Oracle 9 Nov, 2015

CSE/EE 461: Introduction to Computer Communications Networks Autumn Module 9

Advanced Computer Networks

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

TCP/IP Networking. Training Details. About Training. About Training. What You'll Learn. Training Time : 9 Hours. Capacity : 12

Compliance with RFC 3261

Firewalls and NAT. Firewalls. firewall isolates organization s internal net from larger Internet, allowing some packets to pass, blocking others.

SIP Session Initiation Protocol

DHCP and DDNS Services for Threat Defense

Network Address Translation (NAT)

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

Network layer: Overview. Network Layer Functions

Network Address Translators (NATs) and NAT Traversal

Internet Technology 3/2/2016

Installation & Configuration Guide Version 1.6

Information About SIP Compliance with RFC 3261

UDP NAT Traversal. CSCI-4220 Network Programming Spring 2015

NAT Traversal for VoIP

Advanced Computer Networks. IP Mobility

TT11 VoIP Router 1FXS/1FXO TA User Guide

Networking Potpourri: Plug-n-Play, Next Gen

TSIN02 - Internetworking

Foreword xxiii Preface xxvii IPv6 Rationale and Features

IPv6 Transition Mechanisms

Lecture (08) Internetwork Layer II

IPv6 Transition Mechanisms

MySip.ch. SIP Network Address Translation (NAT) SIP Architecture with NAT Version 1.0 SIEMENS SCHWEIZ AKTIENGESELLSCHAFT

Customer Edge Switching & Realm Gateway Tutorial Session Day 2

Transporting Voice by Using IP

Step 3 - How to Configure Basic System Settings

NAT (NAPT/PAT), STUN, and ICE

Multimedia networking: outline

Setting Up a Mitel SX-2000 Digital PIMG Integration with Cisco Unity Connection

SIP Compliance APPENDIX

Higher layer protocols

Configuring the Service Discovery Gateway

Technical White Paper for NAT Traversal

Voice over IP (VoIP)

Setting up Alcatel 4400 Digital PIMG Integration

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

Setting Up an Alcatel 4400 Digital PIMG Integration with Cisco Unity Connection

CSCD58 WINTER 2018 WEEK 6 - NETWORK LAYER PART 1. Brian Harrington. February 13, University of Toronto Scarborough

TODAY AGENDA. VOIP Mobile IP

Mobile IP. rek. Petr Grygárek Petr Grygarek, Advanced Computer Networks Technologies 1

Overview of SIP. Information About SIP. SIP Capabilities. This chapter provides an overview of the Session Initiation Protocol (SIP).

Version: epbxum_

SIP Server Deployment Guide. SRV address support in Contact and Record-Route headers

An Efficient NAT Traversal for SIP and Its Associated Media sessions

Chapter 3: IP Multimedia Subsystems and Application-Level Signaling

Internet Protocol Version 6 (IPv6)

1 SIP Carriers. 1.1 LightBound Warnings Vendor Contact Vendor Web Site:

From POTS to VoP2P: Step 1. P2P Voice Applications. Renato Lo Cigno

CyberData SIP Page Server V3 Integration with 8x8 Serial Numbers 1461x

Draft Version. Setup Reference guide for KX-HTS Series (Tested with HTS32 Version 1.5) Peoplefone SIP Trunk service with External Router

EEC-684/584 Computer Networks

KTA1010 INSTALL GUIDE

Personal Firewall Default Rules and Components

Mobile IP Overview. Based on IP so any media that can support IP can also support Mobile IP

OneXS will provide users with a reference server (IP, FQDN, or other means to connect to the service). This must be obtained before setup can begin.

Desktop sharing with the Session Initiation Protocol

Avaya Port Matrix: Avaya Proprietary Use pursuant to the terms of your signed agreement or Avaya policy.

Introduction to Internetworking

Lecture 10: TCP Friendliness, DCCP, NATs, and STUN

Lecture 12: TCP Friendliness, DCCP, NATs, and STUN

Congestion 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

interface Question 1. a) Applications nslookup/dig Web Application DNS SMTP HTTP layer SIP Transport layer OSPF ICMP IP Network layer

Network Layer II. Getting IP addresses. DHCP client-server scenario. DHCP client-server scenario. C compiler. You writing assignment 2

Internet Technology 3/23/2016

ECE 435 Network Engineering Lecture 14

DHCP Basics (Dynamic Host Configuration Protocol) BUPT/QMUL

IPv6 Neighbor Discovery


On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August

The trace file is here:

DHCPv6 Overview 1. DHCPv6 Server Configuration 1

CS 356: Computer Network Architectures. Lecture 15: DHCP, NAT, and IPv6. [PD] chapter 3.2.7, 3.2.9, 4.1.3, 4.3.3

SDP-R25 User Manual 05/06/2015

SIP security and the great fun with Firewall / NAT Bernie Höneisen SURA / ViDe, , Atlanta, GA (USA)

Network Access Transla0on - NAT

Computer Networking Introduction

IPv6 Neighbor Discovery

Setting Up an Avaya Definity ProLogix Digital PIMG Integration with Cisco Unity Connection

Information About NAT

SJTU 2018 Fall Computer Networking. Wireless Communication

Transcription:

Session Initiation Protocol (SIP) Internet Technology 14. VoIP and Traversal Paul Krzyzanowski Rutgers University Spring 2013 Dominant protocol for Voice over IP (VoIP) RFC 3261 llows a call to be established between multiple parties Notify a callee of a call request gree on media encodings llow a participant to end the call Determine IP address of callee No assumption on the callee having a fixed IP address dd new media streams, change encoding, add/drop participants Messages are HTTP style (line-oriented text) using UDP or TCP 1 2 Proxies SIP proxy server Helps route requests Forwards requests to one or more destinations and sends responses to the requester Contacts remote registrar to look up addresses Often run on the same server as a registrar Usually a proxy at each SIP domain Registration user s SIP address is an IP address & port number In most cases, this changes over time Registration When a phone is switched on (or phone software is run) registration process takes place Registrations expire, so re-register periodically Location Server: name server Stores a mapping between the user s address and the address of their phone user s address = ddress of Record (OR): sip:alice@sip.rutgers.edu SIP Registrar: ccepts REGISTER requests and interacts with the Location Server SIP proxy, registrar, & location server normally run on the same system 3 4 INVITE wants to call bob@sip.mit.edu s SIP proxy server needs to look up bob@sip.mit.edu She sends an INVITE message to her proxy server HTTP-style Identifies (bob@sip.mit.edu) Uses DNS to look up contact s SIP server (NPTR or SVR records) Forwards the s INVITE to s SIP proxy Tells that it s TRYING to contact the party Specifies s current IP address Specifies media type (e.g., PCM-encoded audio via RTP) Port on which she d like to receive the message 5 6 Paul Krzyzanowski 1

registrar.mit.edu TRYING Routing SIP INVITE requests are sent from proxy to proxy until it reaches one that knows the location of the callee Proxy may respond with a REDIRECT message s proxy server Forwards the INVITE to s phone Tells s proxy server that it s trying to reach 7 8 RINGING 200 OK s phone gets the INVITE message Starts ringing Sends RINGING response can accept or decline the call If he accepts it, the INVITE is acknowledged with a 200 OK INVITE feedback is propagated back to 9 10 YE CK OK media Now & talk point-to-point sends an CK to confirm setup oth sides exchange media streams (usually RTP) To disconnect, one party sends a YE message The other side confirms with a 200 OK SIP is an out-of-band protocol SIP messages are sent on different sockets than media data ll messages are acknowledged, so either TCP or UDP can be used 11 Paul Krzyzanowski 2

traversal & why do we need it? Traversal Remember? Private IP addresses gateway (usually on a gateway router) Translates between internal addresses/ports & external ones It s awesome! Cut down on lots of wasted addresses usually, you need just one ut it breaks end-to-end connectivity! What if you want to contact a service behind? Consider two VoIP clients that want to communicate No foolproof solution 13 14 : This is easy : This is tricky from :1211 from 68.36.210.57:21199 to where? 10.1.1.22 68.36.210.57 10.1.1.33 15 16 Relay all messages Hosts & want to communicate Have an Internet-accessible proxy, P Core methods connects to P and waits for messages on the connection talks to the P; P relays messages to Most reliable but not very efficient Extra message relaying dditional protocols needed (e.g., needs to state what it wants) Proxy can become a point of congestion (network links & CPU) 17 18 Paul Krzyzanowski 3

Relay all messages Connection reversal Relay Public IP accessible wants to connect to ut is behind a Somehow get to send a message to, asking for it to open a connection to Two approaches Relay the request via a server (but must be connected to the server) s with passive FTP ssume an existing connection between & and ask for a new one 19 20 Connection reversal wants to talk to Existing connection between & (set up by ) Connection request UDP hole punching Hosts & want to communicate Have an Internet-accessible rendezvous server, S Host sends a message to S That sets up a translation on s gateway S now knows the external host & port Host sends a message to S That sets up a translation on s gateway S also knows the external host & port on S tells : talk on s IP address & port S tells : talk to s IP address & port 21 22 UDP hole punching UDP hole punching Server Server Send a message to establish a mapping (hole) Send a message to establish a mapping (hole) Communicate directly via the holes 23 24 Paul Krzyzanowski 4

TCP hole punching Same principle UT Need to use the same port # to listen for connections as we used to initiate outgoing connections Most operating systems support a socket option SO_REUSEDDR that does this Traversal Protocols 25 26 STUN Session Traversal Utilities for ; RFC 5389 llows clients to discover whether they are in a environment Send a message to a STUN server on the Internet STUN server returns the source IP address and port number client can share this external address/port If both peers are behind, they will need to find a way to share this information TURN Traversal Using Relays around ; RFC 5766 Protocol that uses a relay server Hole punching Relay 27 28 TURN TURN server: Relay-based protocol.155 connects to a TURN server Informs the server which locations it should accept packets from Gets an IP address & port allocated by the TURN server to use as a relay TURN TURN server: STUN server with relay capabilities.33 contacts the TURN server, which relays its external host:port to.155 10.1.1.22 10.1.1.22 10.1.1.33 10.1.1.33 TURN relay TURN relay 29 30 Paul Krzyzanowski 5

ICE Interactive Connectivity Establishment; RFC 5245 Protocol to negotiate traversal Discover presence of on either side Exchange information Discover how to get a useful connection Choose STUN or TURN Extension to SIP (but can be used by other protocols) Zero Configuration Networking 31 32 Network Configuration Normally DHCP server to get an IP address (and subnet mask, gateway) DNS for looking up names What if we don t have these available? Use IP Link-Local ddresses Goal: each device gets an IP address that is unique in the LN These are non-routable IPv6 Stateless ddress utoconfiguration (SLC) utoconfigure routable IP addresses on a LN Combination of address prefix & interface ID Routers advertise prefixes that identify the link s subnet Hosts generate a unique interface ID from the MC address Run Duplicate ddress Detection to ensure address is unique Send a Neighbor Solicitation request (IPv6 s version of RP) If someone else has it, fail: admin intervention required. SLC is like a simplified DHCP Good if just getting a unique, routable address is sufficient 33 34 Link-Local ddresses IPv4 169.254.0.0/16 block Pick a random address in the 169.254.0.0/16 range Use RP to see if someone else also has it If so, try again IPv6: SLC local connectivity utoconfigure Use fe80::/64 block as an address prefix MC address used for lower bits Multicast DNS & Service discovery Part of pple onjour Translate between names and IP addresses without a DNS server Multicast DNS: Use IP multicast for DNS queries Each computer stores its own list of resource records Runs its own mini DNS server: mdnsresponder 35 Paul Krzyzanowski 6

Multicast DNS & Service discovery Locate or advertise services without using a directory server Example, pple DNS-based Service Discovery DNS-SD (RFC 6763) Use DNS services (DNS or multicast DNS) Structured Instance Names SRV record: <Instance>.<Service>.<Domain> gives target IP, port TXT record with same name: extra info as key/value pairs PTR record: service type to see all instances of the service lso Simple Service Discovery Protocol (SSDP; part of UPnP) Service Location Protocol (SLP) SRV record example Example DNS SRV record myprinter._printer._tcp.local. DNS TXT record May contain additional information. 120 IN SRV 0 0 5432 myserver.local. Example: Different print queues for printer services on the same IP address Information is application-specific PTR record TTL port host _printer._tcp.local. 28800 PTR myprinter._printer._tcp.local. llows one to query DNS for all services of type _printer. onjour steps New device starts up Is there a DHCP server? If yes, get IP address and routing info If no, pick an address in the link-local (zeroconf) range: 169.254.0.0/16 Test the address and claim it if nobody responds Start up Multicast DNS responder Requests a chosen hostname Multicasts query to see if it s taken Claims it if not taken Start up service (get port) Publish service (friendly name, service name, address, port) Create SRV record friendly_name.service_name._tcp.local that points to the hostname and port for the service Create PTR record service_name._tcp.local The end 40 Paul Krzyzanowski 7