SlideShare una empresa de Scribd logo
1 de 37
P2P SIP Tutorial Part 3: Advanced P2P SIP and NAT Traversal Henry Sinnreich Alan Johnston March 17, 2008
Advanced CS SIP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
P2P services easily implemented in an endpoint ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
P2P services with help of peers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overlay Example Peer A Peer B 3. Admitting Peer acts as Rendezvous to establish Connection between Joining Peer and B 4. B acts as Rendezvous to establish connection between Joining Peer and A. Peer A 4. B acts as Rendezvous to establish connection between Joining Peer and A. Bootstrap Server Joining Peer 1. Joining Peer connects to Bootstrap Server to join the overlay Admitting Peer 2. Bootstrap Server acts as Rendezvous to establish connection between Joining Peer and Admitting Peer Peer B 3. Admitting Peer acts as Rendezvous to establish Connection between Joining Peer and B Peer A 4. B acts as Rendezvous to establish connection between Joining Peer and A.
Call  forwarding  in an overlay example Peer A is not present and has calls forwarded to a TN Caller Outside Overlay Peer C 2.  Peer C routes the INVITE towards Peer A  Peer B 3. INVITE request lands at Peer B which is the “closest” to the missing Peer A. 4. Peer B provides call forwarding information back to Peer C. Forwarded TN Outside Overlay 5. Peer C proxies the INVITE to Forwarded TN or redirects Caller to Forwarded TN. SIP RTP 1. Outside Caller calls Peer A and sends INVITE which is routed into the Overlay. SIP
Voicemail in an overlay  example Peer A is not present and has voicemail provided by another peer. Caller Outside Overlay 2.  Peer C routes the INVITE towards Peer A  Peer B 3. INVITE request lands at Peer B which is the “closest” to the missing Peer A. 4. Peer B answers call, plays prompt and records voicemail message. INVITE/200 OK/ACK RTP or SRTP Peer C 1. Outside Caller calls Peer A and sends INVITE which is routed into the Overlay. SIP
Voicemail retrieval in an overlay example Peer B  has left overlay 3. Peer A establishes media session with Peer D and retrieves voicemail message. SIP RTP or SRTP 2.  Peer A contacts Peer D and receives MWI indication  Peer D 1. Peer A rejoins Overlay
[object Object]
Generic Requirements ,[object Object],[object Object],[object Object],[object Object],[object Object]
Overview of NAT Traversal Solutions ,[object Object],[object Object],Works for all apps Yes 2 Some Yes HIP Open Source No 100% Yes openVPN Commercial, deployed Forbidden 100% Yes Tunnels Different for each app Yes 1 Some No ICE/TURN Commercial, deployed No No No SIP RTP Relay Valuable tools Yes 1 No No STUN Comments IETF Bandwidth Works 100% Solution
Refresher: Using SIP signaling and RTP media ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1  REGISTER 2  INVITE SIP Srv SIP Srv SIP UA SIP UA sip:alice@atlanta.com sip:bob@biloxi.com DNS biloxi.com?  IP Bob? Loc DB IP of Bob 3  INVITE 4  INVITE 5  RTP voice, video, text
The ugly, later parts in SIP ,[object Object],[object Object],[object Object],[object Object],The broken SIP architecture* *I-D:draft -ietf-sipping-sbc-funcs  Legend: NAT: Network address translation SBC: Session border controller SIP Srv SIP Srv SIP UA SIP UA sip:alice@atlanta.com sip:bob@biloxi.com DNS biloxi.com?  IP Bob? Loc DB IP of Bob RTP media NAT NAT SBC SBC Internet SBC SBC SIP
NAT traversal drives VoIP design (no SBC assumed) ISP network Residential  NAT SIP UAs must connect to each other through all NATs ISP network Residential  NAT NAT NAT Internet Public IP Address Realm Enterprise  network NAT Residential  NAT Home network Home network ISP NAT Residential  NAT Home network Home network hairpin interdomain NAT Multi homed
Failure scenarios with NAT  Ref: <draft-ietf-sipping-nat-scenarios> Client Proxy NAPT 5650 (open) (5060) SIP Request SIP Response The SIP/UDP request contains in Via or ‘received’ (added by a proxy) the IP or port of the client inside the NAT. 5060 Client Proxy NAT (5060) REGISTER/response INVITE The SIP/TCP REGISTER will work correctly, but an incoming INVITE later will attempt to use a new TCP connection to the registered entity and fail. The failure can be avoided by re-using the initial TCP connection. 8023 Client Client NAT SDP offer/exchange (RFC 3264) is attempted, but since SIP is providing the internal addresses of the client, the RTP flow fails. NAT SIP signaling RTP RTP
NAT has to “BEHAVE” (UDP) Here are the requirements: RFC 4787: NAT Behavioral Requirements Here is what has been found: http://ietf.org/internet-drafts/draft-jennings-behave-test-results-04.txt NAT behaviors 1. Endpoint Independent (good) X1’:x1’ = X2’:x2’ for all Y:y 2. Address Dependent (bad) X1’:x1’ = X2’:x2’ only if Y2=Y1 3. Address & Port Depending (worst) X1’:x1’ = X2’:x2’ only if Y2:y2=Y1:y2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Device NAT Host Host X:x X:x X1’:x1’ X2’:x2’ Y1:y1 Y2:y2 X NAT Y1 Y2 Internal External Legend X;x = IP:port
Tunneling for NAT and Firewall Traversal 1. http://www.iana.org/assignments/port-numbers 2. http://www.microsoft.com/technet/prodtechnol/exchange/2003/security.mspx 3. draft-lear-iana-no-more-well-known-ports-01.txt  Examples of well known  1  (reserved) ports: 0 to1,024, or use DNS SRV  3 . Tunneling various protocols “under false name” (such as port 80)  Tunneling violations are a security risk that may invite deep packet inspection But deep packet inspection by service providers may be a privacy violation Right approach: Cooperation with the IT department and ISPs to use HTTP tunneling Port numbers range from 0 to 65536  Port  80  is most often used for tunneling and should be blocked for IPSec w. Firewall  2.  along with other unused ports SIP/TLS 5061 HTTP   80 DNS 53 SMTP 25 Telnet 23 File Transfer 19-21 Protocol Port Number
The hole punching approach B. Ford et al: “Peer-to-Peer Communication Across Network Address Translators” http://www.brynosaurus.com/pub/net/p2pnat/
NAT check test method Test method for UDP Ping to servers 1 and 2 OK if both report the same public IP address Srv2 reports IP to Srv3 which pings the client. OK if ping is seen by client. 2 nd  UDP port to check the hairpin translation of the NAT Test method for TCP Similar, but using SYN and TCP timeouts B. Ford et al: “Peer-to-Peer Communication Across Network Address Translators” http://www.brynosaurus.com/pub/net/p2pnat/ Srv1 Srv2 Srv3 1st UDP port 2nd UDP port Client Internet NAT Private Network X
NAT support for UDP and TCP hole punching http://www.brynosaurus.com/pub/net/p2pnat/ 380 data points w. NAT from 68 vendors (13%) 37/286 (64%) 184/286 (24%) 80/335 (82%) 310/380 All Vendors (100%) 1/1 (67%) 2/3 (50%) 3/6 (78%) 7/9 FreeBSD   (8%) 2/24 (67%) 16/24 (12%) 3/25 (81%) 26/32 Linux   (90%) 28/31 (52%) 16/31 (34%) 11/32 (94%) 31/33 Windows                   OS-based NAT (0%) 0/6 (83%) 5/6 (14%) 1/7 (100%) 7/7 3Com   (0%) 0/7 (0%) 0/7 (13%) 1/8 (78%) 7/9 ZyXEL   (22%) 2/9 (89%) 8/9 (30%) 3/10 (100%) 12/12 SMC   (29%) 2/7 (86%) 6/7 (33%) 3/9 (100%) 12/12 Cisco   (0%) 0/11 (100%) 11/11 (7%) 1/14 (100%) 14/14 Belkin   (0%) 0/7 (29%) 2/7 (25%) 3/12 (12%) 2/17 Draytek   (11%) 2/19 (47%) 9/19 (52%) 11/21 (76%) 16/21 D-Link   (0%) 0/30 (63%) 19/30 (9%) 3/35 (84%) 31/37 Netgear   (8%) 3/38 (87%) 33/38 (12%) 5/42 (98%) 45/46 Linksys                   NAT Hardware Hairpin Punching Hairpin Punching       Hole   Hole     TCP UDP  
Testing for NAT traversal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UDP testing: http://www.brynosaurus.com/pub/net/p2pnat TCP testing: http://www.guha.cc/saikat/pub/imc05-tcpnat.pdf / New from the IETF and important: Using STUN: http://ietf.org/internet-drafts/draft-ietf-behave-nat-behavior-discovery-01.txt
Managing client initiated SIP connections (SIP outbound) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],http://www.ietf.org/internet-drafts/draft-ietf-sip-outbound-12.txt UA Proxy 2 Proxy 1 Registrar instance-id (sip.instance) reg-id Incoming request to any proxy NAT/FW STUN bindings for keepalives
Symmetric response routing Ref: RFC 3581: “Symmetric Response Routing” 10.1.1.1:4540 192.0.2.1:9988 INVITE INVITE 200 OK 200 OK INVITE sip:user@example.com SIP/2.0  Via: SIP/2.0/UDP  10.1.1.1:4540;rport;branch=z9hG4bKkjshdyff  INVITE sip:user@example.com SIP/2.0  Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bKkjsh77  Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff SIP/2.0 200 OK  Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bKkjsh77  Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff  SIP/2.0 200 OK  Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff  UA NAT Proxy UA NAT Proxy UA NAT Proxy
STUN: Session Traversal Utilities for NAT (is still work in progress*) * http://www.ietf.org/internet-drafts/draft-ietf-behave-rfc3489 bis-11 .txt  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Mechanisms:  For DNS aided STUN server discovery, redirection to alternate server, fingerprints, 2 credential modes (short/long term) STUN Client NAT1 NAT2 STUN Server Internal IP address/port Reflexive IP address/port XOR-mapped address/port Server address is provisioned or discovered  w. DNS SRV STUN can be collocated w. other servers
STUN usages I-D.nat-control-stun-usage   Discovering, Querying, and Controlling Firewalls and NATs   4 I-D.ietf-behave-nat-behavior-discovery  NAT Behavior Discovery  3 I-D.ietf-sip-outbound  Client-initiated  connections for SIP  2 I-D.ietf-mmusic-ice  Interactive Connectivity Establishment (ICE) 1
NAT behavior discovery using STUN http://ietf.org/internet-drafts/draft-ietf-behave-nat-behavior-discovery-01.txt See if the MAPPED-ADDRESS and XOR-MAPPED-ADDRESS do not match  Detecting generic ALGs … that hunt and rewrite IP addresses PADDING only applies to UDP datagrams and  can not be used with XOR-RESPONSE-ADDRESS   (problem) Fragment handling No hairpin for fragments or discard The client then sends a STUN Binding Request to this mapped address from a different port. If the client receives its own request, the NAT hairpins OK NAT hairpinning Whether it is behind a NAT that supports hairpinning of connections   Timed tests using a 2 nd  STUN address to check if an existing binding that hasn't had traffic sent on it is still open after time T  Binding lifetime Keepalive messages must be sent across the connection to preserve it   Tests request responses from the  alternate address and port of the STUN server; a precondition to these tests is that no binding be established to the alternate address and port NAT filtering Independent filtering, address  dependent filtering, or address and port dependent filtering   Binding requests to alternate STUN transport addresses. UDP, TCP, TCP/TLS NAT mapping type   Independent, address dependent, or port dependent mapping
Discovery, query and control of NAT and FW http://ietf.org/internet-drafts/draft-wing-behave-nat-control-stun-usage-05.txt Multilevel NAT discovery,  if NAT has embedded STUN server STUN client NAT A NAT B STUN server 1 st  binding request-response Learn NAT B 2nd binding request-response Learn NAT A and it is the last 3rd binding request-response Hairpining reduces the keepalive traffic outside (does not work for UDP fragments). Improves ICE.
RTP Media Relay and SIP Media Proxy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SIP signaling SIP UA SIP Server NAT NAT Internet RTP  Relay RTP Media Control Link SIP UA
Interactive Connectivity Establishment (ICE) scenario Send candidates to remote agent draft-ietf-mmusic-ice-17 SIP signaling Agent L SIP Srvr NAT Agent R NAT Relayed Candidate Sever Reflexive Candidate Host Candidate STUN Srvr Internet
Traversal Using Relays around NAT (TURN) draft-ietf-behave-turn-04.txt Only for address/port dependent “bad” NATs – relays are expensive (BW) and add delay to voice (over) simplified call flow has  24 messages STUN Client STUN/TURN Relay External Client Client requesting allocations Internal remote transport address Internal local transport address External local transport address Internal remote transport address Internal 5-tuple External 5-tuple binding binding binding NAT
Host Identity Protocol (HIP) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ref: http://tools.ietf.org/html/rfc4423, http://infrahip.hiit.fi/index.php?index=how  Separation of the identifier and locator  roles of IP addresses, thereby enabling continuity of communications across IP address changes  App Transport IP layer Link layer IP address IP, port App Transport Host Identity IP layer Link layer IP address Host ID Host ID, port
HIP base exchange with a rendezvous server “ HIP Rendezvous Extension” I-D: draft-ietf-hip-rvs by J.Laganier and L. Eggert   RVS I R I1 I1 R1 I2 R2
B: HIP for P2P SIP (in random order) ,[object Object],[object Object],[object Object],[object Object],[object Object],Avaya Boeing Ericsson HIIT NEC
Summary of IETF NAT traversal for SIP and RTP C. Boulton: “NAT Scenarios” I-D STUN keep alive messages Timers in NAT close the bindings Timers in NAT ICE Symmetric RTP doesn’t work TURN relay STUN doesn’t work with IP address/port  depending mapping RFC 3489bis: STUN UA doesn’t know address outside of NAT RFC 3605: Extension to SDP for explicit RTCP port negotiation  using new attribute “a=rtcp” RTCP port=RTP port+1 breaks down when NAT ports are occupied “ Symmetric RTP is Helpful” Inbound and outbound IP addresses are different RTP/RTCP Media Transport Connection Reuse “sip-outbound” SIP/TCP fails in reverse direction through NAT. Keepalives. RFC 3581: Change to Via with “rport” Symmetric Response SIP/UDP: Via shows internal address behind NAT SIP Signaling Solutions Problem Category Consumer UA profile Primary UA profile
Skype NAT Traversal http://www1.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf http://saikat.guha.cc/pub/iptps06-skype.pdf  ,[object Object],[object Object],[object Object],[object Object],[object Object]
NAT Traversal research has the latest insight NUTSS: A SIP-based Approach to UDP and TCP Network Connectivity by. S Guha et al. http://www.sigcomm.org/sigcomm2004/workshop_papers/fdna02-guha1.pdf NUTSS Tutorial http://www.csie.ntu.edu.tw/~acpang/course/voip_2005/report/419_2.pdf The state of the art NAT issues
Questions and discussion

Más contenido relacionado

La actualidad más candente

Introduction to VoIP using SIP
Introduction to VoIP using SIPIntroduction to VoIP using SIP
Introduction to VoIP using SIP
Kundan Singh
 
Sip call flows all cases ccmigration
Sip call flows all cases ccmigrationSip call flows all cases ccmigration
Sip call flows all cases ccmigration
coolrahul28
 
VoIP and multimedia networking
VoIP and multimedia networkingVoIP and multimedia networking
VoIP and multimedia networking
sangusajjan
 
VoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New DelhiVoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New Delhi
Nishikant Taksande
 
WIRELESS NETWORK
WIRELESS NETWORKWIRELESS NETWORK
WIRELESS NETWORK
prakash m
 

La actualidad más candente (20)

Introduction To SIP
Introduction  To  SIPIntroduction  To  SIP
Introduction To SIP
 
Sip crash course
Sip crash courseSip crash course
Sip crash course
 
Skype
SkypeSkype
Skype
 
SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)
 
Introduction to VoIP using SIP
Introduction to VoIP using SIPIntroduction to VoIP using SIP
Introduction to VoIP using SIP
 
Session Initiation Protocol (SIP)– Via Header Detailed Coverage
Session Initiation Protocol (SIP)– Via Header Detailed Coverage Session Initiation Protocol (SIP)– Via Header Detailed Coverage
Session Initiation Protocol (SIP)– Via Header Detailed Coverage
 
SIP security in IP telephony
SIP security in IP telephonySIP security in IP telephony
SIP security in IP telephony
 
network security
network securitynetwork security
network security
 
Sip call flows all cases ccmigration
Sip call flows all cases ccmigrationSip call flows all cases ccmigration
Sip call flows all cases ccmigration
 
VOIP QOS
VOIP QOSVOIP QOS
VOIP QOS
 
IRJET- Overview of Hole Punching: ICMP Hole Punching, TCP Hole Punching, UDP ...
IRJET- Overview of Hole Punching: ICMP Hole Punching, TCP Hole Punching, UDP ...IRJET- Overview of Hole Punching: ICMP Hole Punching, TCP Hole Punching, UDP ...
IRJET- Overview of Hole Punching: ICMP Hole Punching, TCP Hole Punching, UDP ...
 
MAF ICIMS™ Monitoring, Analytics & Reporting for Microsoft Teams and UC - glo...
MAF ICIMS™ Monitoring, Analytics & Reporting for Microsoft Teams and UC - glo...MAF ICIMS™ Monitoring, Analytics & Reporting for Microsoft Teams and UC - glo...
MAF ICIMS™ Monitoring, Analytics & Reporting for Microsoft Teams and UC - glo...
 
Current trends and innovations in voice over IP
Current trends and innovations in voice over IPCurrent trends and innovations in voice over IP
Current trends and innovations in voice over IP
 
VoIP and multimedia networking
VoIP and multimedia networkingVoIP and multimedia networking
VoIP and multimedia networking
 
LinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source WellLinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source Well
 
internet applications
 internet applications internet applications
internet applications
 
Indroduction to SIP
Indroduction to SIPIndroduction to SIP
Indroduction to SIP
 
#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLS#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLS
 
VoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New DelhiVoIP - seminar at IASRI, New Delhi
VoIP - seminar at IASRI, New Delhi
 
WIRELESS NETWORK
WIRELESS NETWORKWIRELESS NETWORK
WIRELESS NETWORK
 

Destacado

1 Basic Punching Theory Tt 2010
1  Basic Punching Theory Tt  20101  Basic Punching Theory Tt  2010
1 Basic Punching Theory Tt 2010
Christer Lindholm
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
Kumar Gaurav
 

Destacado (12)

Locator ID Separation Using Device Unique ID
Locator ID Separation Using Device Unique IDLocator ID Separation Using Device Unique ID
Locator ID Separation Using Device Unique ID
 
Host Identification and Location Decoupling a Comparison of Approaches - IWT ...
Host Identification and Location Decoupling a Comparison of Approaches - IWT ...Host Identification and Location Decoupling a Comparison of Approaches - IWT ...
Host Identification and Location Decoupling a Comparison of Approaches - IWT ...
 
Tech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура SkypeTech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура Skype
 
P2P Multiplayer Gaming
P2P Multiplayer GamingP2P Multiplayer Gaming
P2P Multiplayer Gaming
 
p2p通信之nat
p2p通信之natp2p通信之nat
p2p通信之nat
 
NAT Traversal
NAT TraversalNAT Traversal
NAT Traversal
 
P2p Peer To Peer Introduction
P2p Peer To Peer IntroductionP2p Peer To Peer Introduction
P2p Peer To Peer Introduction
 
1 Basic Punching Theory Tt 2010
1  Basic Punching Theory Tt  20101  Basic Punching Theory Tt  2010
1 Basic Punching Theory Tt 2010
 
Peer-to-Peer Systems
Peer-to-Peer SystemsPeer-to-Peer Systems
Peer-to-Peer Systems
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
 
What's Hot in Peer to Peer Fundraising: Industry Trends from TeamRaiser & Fri...
What's Hot in Peer to Peer Fundraising: Industry Trends from TeamRaiser & Fri...What's Hot in Peer to Peer Fundraising: Industry Trends from TeamRaiser & Fri...
What's Hot in Peer to Peer Fundraising: Industry Trends from TeamRaiser & Fri...
 
Peer To Peer Networking
Peer To Peer NetworkingPeer To Peer Networking
Peer To Peer Networking
 

Similar a Sinnreich Henry Johnston Alan Pt 3

Voice over IP: Issues and Protocols
Voice over IP: Issues and ProtocolsVoice over IP: Issues and Protocols
Voice over IP: Issues and Protocols
Videoguy
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Alexandre Gouaillard
 
1 VoIP Overview[1]
1 VoIP Overview[1]1 VoIP Overview[1]
1 VoIP Overview[1]
William Giba
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
Carl Ford
 
1 Vo Ip Overview
1 Vo Ip Overview1 Vo Ip Overview
1 Vo Ip Overview
Mayank Vora
 
1 Vo I P Overview
1  Vo I P  Overview1  Vo I P  Overview
1 Vo I P Overview
Mayank Vora
 
VoIP Techniques and Challenges PRESENTATION
VoIP Techniques and Challenges PRESENTATIONVoIP Techniques and Challenges PRESENTATION
VoIP Techniques and Challenges PRESENTATION
Karama Said(BEng,MSc)
 

Similar a Sinnreich Henry Johnston Alan Pt 3 (20)

Lync 2010 deep dive edge
Lync 2010 deep dive edgeLync 2010 deep dive edge
Lync 2010 deep dive edge
 
Voice over IP: Issues and Protocols
Voice over IP: Issues and ProtocolsVoice over IP: Issues and Protocols
Voice over IP: Issues and Protocols
 
Voice Over IP Overview w/Secuirty
Voice Over IP Overview w/SecuirtyVoice Over IP Overview w/Secuirty
Voice Over IP Overview w/Secuirty
 
Apple Facetime Protocol
Apple Facetime ProtocolApple Facetime Protocol
Apple Facetime Protocol
 
Positive Hack Days. Gritsai. VOIP insecurities workshop
Positive Hack Days. Gritsai. VOIP insecurities workshopPositive Hack Days. Gritsai. VOIP insecurities workshop
Positive Hack Days. Gritsai. VOIP insecurities workshop
 
Nat traversal in WebRTC context
Nat traversal in WebRTC contextNat traversal in WebRTC context
Nat traversal in WebRTC context
 
IP and VoIP Fundamentals
IP and VoIP FundamentalsIP and VoIP Fundamentals
IP and VoIP Fundamentals
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
 
1 VoIP Overview[1]
1 VoIP Overview[1]1 VoIP Overview[1]
1 VoIP Overview[1]
 
1 Vo Ip Overview
1 Vo Ip Overview1 Vo Ip Overview
1 Vo Ip Overview
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
 
1 Vo Ip Overview
1 Vo Ip Overview1 Vo Ip Overview
1 Vo Ip Overview
 
1 Vo I P Overview
1  Vo I P  Overview1  Vo I P  Overview
1 Vo I P Overview
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
Fact sheet sip v1
Fact sheet   sip v1Fact sheet   sip v1
Fact sheet sip v1
 
SIP in action Itexpo West
SIP in action Itexpo WestSIP in action Itexpo West
SIP in action Itexpo West
 
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPAN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
 
SWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call ServiceSWIFT: Tango's Infrastructure For Real-Time Video Call Service
SWIFT: Tango's Infrastructure For Real-Time Video Call Service
 
VoIP Techniques and Challenges PRESENTATION
VoIP Techniques and Challenges PRESENTATIONVoIP Techniques and Challenges PRESENTATION
VoIP Techniques and Challenges PRESENTATION
 
Aarti sip
Aarti sipAarti sip
Aarti sip
 

Más de Carl Ford

Html5 miami2012
Html5 miami2012Html5 miami2012
Html5 miami2012
Carl Ford
 
4 gwemiami2012
4 gwemiami20124 gwemiami2012
4 gwemiami2012
Carl Ford
 
Dev con5layout2
Dev con5layout2Dev con5layout2
Dev con5layout2
Carl Ford
 
Bridge wave 4gwe-miami_02feb(3)
Bridge wave   4gwe-miami_02feb(3)Bridge wave   4gwe-miami_02feb(3)
Bridge wave 4gwe-miami_02feb(3)
Carl Ford
 
Mindspeed jim.johnston 4_gwe-spring 1.0
Mindspeed jim.johnston 4_gwe-spring 1.0Mindspeed jim.johnston 4_gwe-spring 1.0
Mindspeed jim.johnston 4_gwe-spring 1.0
Carl Ford
 
Towerstream 4 gwe presentation final (1)
Towerstream 4 gwe presentation final (1)Towerstream 4 gwe presentation final (1)
Towerstream 4 gwe presentation final (1)
Carl Ford
 
Adrian scrase 4_gwe_final
Adrian scrase 4_gwe_finalAdrian scrase 4_gwe_final
Adrian scrase 4_gwe_final
Carl Ford
 
Shakouri 4 gwe keynote jan 2011
Shakouri 4 gwe keynote jan 2011Shakouri 4 gwe keynote jan 2011
Shakouri 4 gwe keynote jan 2011
Carl Ford
 

Más de Carl Ford (20)

Does the Wireless Internet Need to be Interoperable
Does the Wireless Internet Need to be InteroperableDoes the Wireless Internet Need to be Interoperable
Does the Wireless Internet Need to be Interoperable
 
4 gwes2012
4 gwes20124 gwes2012
4 gwes2012
 
HTML5 Happening in Miami Beach
HTML5 Happening in Miami BeachHTML5 Happening in Miami Beach
HTML5 Happening in Miami Beach
 
Superwifiwhitespacemiami
SuperwifiwhitespacemiamiSuperwifiwhitespacemiami
Superwifiwhitespacemiami
 
M2M Evolution
M2M EvolutionM2M Evolution
M2M Evolution
 
Miami2012 cag
Miami2012 cagMiami2012 cag
Miami2012 cag
 
M2memiami2012
M2memiami2012M2memiami2012
M2memiami2012
 
Html5 miami2012
Html5 miami2012Html5 miami2012
Html5 miami2012
 
Swifimiami2012
Swifimiami2012Swifimiami2012
Swifimiami2012
 
Swifimiami2012
Swifimiami2012Swifimiami2012
Swifimiami2012
 
4 gwemiami2012
4 gwemiami20124 gwemiami2012
4 gwemiami2012
 
4 gwemiami2012
4 gwemiami20124 gwemiami2012
4 gwemiami2012
 
Dev con5layout2
Dev con5layout2Dev con5layout2
Dev con5layout2
 
Bill volk gamification
Bill volk  gamificationBill volk  gamification
Bill volk gamification
 
Css3 paul trani
Css3 paul traniCss3 paul trani
Css3 paul trani
 
Bridge wave 4gwe-miami_02feb(3)
Bridge wave   4gwe-miami_02feb(3)Bridge wave   4gwe-miami_02feb(3)
Bridge wave 4gwe-miami_02feb(3)
 
Mindspeed jim.johnston 4_gwe-spring 1.0
Mindspeed jim.johnston 4_gwe-spring 1.0Mindspeed jim.johnston 4_gwe-spring 1.0
Mindspeed jim.johnston 4_gwe-spring 1.0
 
Towerstream 4 gwe presentation final (1)
Towerstream 4 gwe presentation final (1)Towerstream 4 gwe presentation final (1)
Towerstream 4 gwe presentation final (1)
 
Adrian scrase 4_gwe_final
Adrian scrase 4_gwe_finalAdrian scrase 4_gwe_final
Adrian scrase 4_gwe_final
 
Shakouri 4 gwe keynote jan 2011
Shakouri 4 gwe keynote jan 2011Shakouri 4 gwe keynote jan 2011
Shakouri 4 gwe keynote jan 2011
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Sinnreich Henry Johnston Alan Pt 3

  • 1. P2P SIP Tutorial Part 3: Advanced P2P SIP and NAT Traversal Henry Sinnreich Alan Johnston March 17, 2008
  • 2.
  • 3.
  • 4.
  • 5. Overlay Example Peer A Peer B 3. Admitting Peer acts as Rendezvous to establish Connection between Joining Peer and B 4. B acts as Rendezvous to establish connection between Joining Peer and A. Peer A 4. B acts as Rendezvous to establish connection between Joining Peer and A. Bootstrap Server Joining Peer 1. Joining Peer connects to Bootstrap Server to join the overlay Admitting Peer 2. Bootstrap Server acts as Rendezvous to establish connection between Joining Peer and Admitting Peer Peer B 3. Admitting Peer acts as Rendezvous to establish Connection between Joining Peer and B Peer A 4. B acts as Rendezvous to establish connection between Joining Peer and A.
  • 6. Call forwarding in an overlay example Peer A is not present and has calls forwarded to a TN Caller Outside Overlay Peer C 2. Peer C routes the INVITE towards Peer A Peer B 3. INVITE request lands at Peer B which is the “closest” to the missing Peer A. 4. Peer B provides call forwarding information back to Peer C. Forwarded TN Outside Overlay 5. Peer C proxies the INVITE to Forwarded TN or redirects Caller to Forwarded TN. SIP RTP 1. Outside Caller calls Peer A and sends INVITE which is routed into the Overlay. SIP
  • 7. Voicemail in an overlay example Peer A is not present and has voicemail provided by another peer. Caller Outside Overlay 2. Peer C routes the INVITE towards Peer A Peer B 3. INVITE request lands at Peer B which is the “closest” to the missing Peer A. 4. Peer B answers call, plays prompt and records voicemail message. INVITE/200 OK/ACK RTP or SRTP Peer C 1. Outside Caller calls Peer A and sends INVITE which is routed into the Overlay. SIP
  • 8. Voicemail retrieval in an overlay example Peer B has left overlay 3. Peer A establishes media session with Peer D and retrieves voicemail message. SIP RTP or SRTP 2. Peer A contacts Peer D and receives MWI indication Peer D 1. Peer A rejoins Overlay
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. NAT traversal drives VoIP design (no SBC assumed) ISP network Residential NAT SIP UAs must connect to each other through all NATs ISP network Residential NAT NAT NAT Internet Public IP Address Realm Enterprise network NAT Residential NAT Home network Home network ISP NAT Residential NAT Home network Home network hairpin interdomain NAT Multi homed
  • 15. Failure scenarios with NAT Ref: <draft-ietf-sipping-nat-scenarios> Client Proxy NAPT 5650 (open) (5060) SIP Request SIP Response The SIP/UDP request contains in Via or ‘received’ (added by a proxy) the IP or port of the client inside the NAT. 5060 Client Proxy NAT (5060) REGISTER/response INVITE The SIP/TCP REGISTER will work correctly, but an incoming INVITE later will attempt to use a new TCP connection to the registered entity and fail. The failure can be avoided by re-using the initial TCP connection. 8023 Client Client NAT SDP offer/exchange (RFC 3264) is attempted, but since SIP is providing the internal addresses of the client, the RTP flow fails. NAT SIP signaling RTP RTP
  • 16.
  • 17. Tunneling for NAT and Firewall Traversal 1. http://www.iana.org/assignments/port-numbers 2. http://www.microsoft.com/technet/prodtechnol/exchange/2003/security.mspx 3. draft-lear-iana-no-more-well-known-ports-01.txt Examples of well known 1 (reserved) ports: 0 to1,024, or use DNS SRV 3 . Tunneling various protocols “under false name” (such as port 80) Tunneling violations are a security risk that may invite deep packet inspection But deep packet inspection by service providers may be a privacy violation Right approach: Cooperation with the IT department and ISPs to use HTTP tunneling Port numbers range from 0 to 65536 Port 80 is most often used for tunneling and should be blocked for IPSec w. Firewall 2. along with other unused ports SIP/TLS 5061 HTTP 80 DNS 53 SMTP 25 Telnet 23 File Transfer 19-21 Protocol Port Number
  • 18. The hole punching approach B. Ford et al: “Peer-to-Peer Communication Across Network Address Translators” http://www.brynosaurus.com/pub/net/p2pnat/
  • 19. NAT check test method Test method for UDP Ping to servers 1 and 2 OK if both report the same public IP address Srv2 reports IP to Srv3 which pings the client. OK if ping is seen by client. 2 nd UDP port to check the hairpin translation of the NAT Test method for TCP Similar, but using SYN and TCP timeouts B. Ford et al: “Peer-to-Peer Communication Across Network Address Translators” http://www.brynosaurus.com/pub/net/p2pnat/ Srv1 Srv2 Srv3 1st UDP port 2nd UDP port Client Internet NAT Private Network X
  • 20. NAT support for UDP and TCP hole punching http://www.brynosaurus.com/pub/net/p2pnat/ 380 data points w. NAT from 68 vendors (13%) 37/286 (64%) 184/286 (24%) 80/335 (82%) 310/380 All Vendors (100%) 1/1 (67%) 2/3 (50%) 3/6 (78%) 7/9 FreeBSD   (8%) 2/24 (67%) 16/24 (12%) 3/25 (81%) 26/32 Linux   (90%) 28/31 (52%) 16/31 (34%) 11/32 (94%) 31/33 Windows                   OS-based NAT (0%) 0/6 (83%) 5/6 (14%) 1/7 (100%) 7/7 3Com   (0%) 0/7 (0%) 0/7 (13%) 1/8 (78%) 7/9 ZyXEL   (22%) 2/9 (89%) 8/9 (30%) 3/10 (100%) 12/12 SMC   (29%) 2/7 (86%) 6/7 (33%) 3/9 (100%) 12/12 Cisco   (0%) 0/11 (100%) 11/11 (7%) 1/14 (100%) 14/14 Belkin   (0%) 0/7 (29%) 2/7 (25%) 3/12 (12%) 2/17 Draytek   (11%) 2/19 (47%) 9/19 (52%) 11/21 (76%) 16/21 D-Link   (0%) 0/30 (63%) 19/30 (9%) 3/35 (84%) 31/37 Netgear   (8%) 3/38 (87%) 33/38 (12%) 5/42 (98%) 45/46 Linksys                   NAT Hardware Hairpin Punching Hairpin Punching       Hole   Hole     TCP UDP  
  • 21.
  • 22.
  • 23. Symmetric response routing Ref: RFC 3581: “Symmetric Response Routing” 10.1.1.1:4540 192.0.2.1:9988 INVITE INVITE 200 OK 200 OK INVITE sip:user@example.com SIP/2.0 Via: SIP/2.0/UDP 10.1.1.1:4540;rport;branch=z9hG4bKkjshdyff INVITE sip:user@example.com SIP/2.0 Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bKkjsh77 Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff SIP/2.0 200 OK Via: SIP/2.0/UDP proxy.example.com;branch=z9hG4bKkjsh77 Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff SIP/2.0 200 OK Via: SIP/2.0/UDP 10.1.1.1:4540;received=192.0.2.1;rport=9988 ;branch=z9hG4bKkjshdyff UA NAT Proxy UA NAT Proxy UA NAT Proxy
  • 24.
  • 25. STUN usages I-D.nat-control-stun-usage Discovering, Querying, and Controlling Firewalls and NATs 4 I-D.ietf-behave-nat-behavior-discovery NAT Behavior Discovery 3 I-D.ietf-sip-outbound Client-initiated connections for SIP 2 I-D.ietf-mmusic-ice Interactive Connectivity Establishment (ICE) 1
  • 26. NAT behavior discovery using STUN http://ietf.org/internet-drafts/draft-ietf-behave-nat-behavior-discovery-01.txt See if the MAPPED-ADDRESS and XOR-MAPPED-ADDRESS do not match Detecting generic ALGs … that hunt and rewrite IP addresses PADDING only applies to UDP datagrams and can not be used with XOR-RESPONSE-ADDRESS (problem) Fragment handling No hairpin for fragments or discard The client then sends a STUN Binding Request to this mapped address from a different port. If the client receives its own request, the NAT hairpins OK NAT hairpinning Whether it is behind a NAT that supports hairpinning of connections Timed tests using a 2 nd STUN address to check if an existing binding that hasn't had traffic sent on it is still open after time T Binding lifetime Keepalive messages must be sent across the connection to preserve it Tests request responses from the alternate address and port of the STUN server; a precondition to these tests is that no binding be established to the alternate address and port NAT filtering Independent filtering, address dependent filtering, or address and port dependent filtering Binding requests to alternate STUN transport addresses. UDP, TCP, TCP/TLS NAT mapping type Independent, address dependent, or port dependent mapping
  • 27. Discovery, query and control of NAT and FW http://ietf.org/internet-drafts/draft-wing-behave-nat-control-stun-usage-05.txt Multilevel NAT discovery, if NAT has embedded STUN server STUN client NAT A NAT B STUN server 1 st binding request-response Learn NAT B 2nd binding request-response Learn NAT A and it is the last 3rd binding request-response Hairpining reduces the keepalive traffic outside (does not work for UDP fragments). Improves ICE.
  • 28.
  • 29. Interactive Connectivity Establishment (ICE) scenario Send candidates to remote agent draft-ietf-mmusic-ice-17 SIP signaling Agent L SIP Srvr NAT Agent R NAT Relayed Candidate Sever Reflexive Candidate Host Candidate STUN Srvr Internet
  • 30. Traversal Using Relays around NAT (TURN) draft-ietf-behave-turn-04.txt Only for address/port dependent “bad” NATs – relays are expensive (BW) and add delay to voice (over) simplified call flow has 24 messages STUN Client STUN/TURN Relay External Client Client requesting allocations Internal remote transport address Internal local transport address External local transport address Internal remote transport address Internal 5-tuple External 5-tuple binding binding binding NAT
  • 31.
  • 32. HIP base exchange with a rendezvous server “ HIP Rendezvous Extension” I-D: draft-ietf-hip-rvs by J.Laganier and L. Eggert RVS I R I1 I1 R1 I2 R2
  • 33.
  • 34. Summary of IETF NAT traversal for SIP and RTP C. Boulton: “NAT Scenarios” I-D STUN keep alive messages Timers in NAT close the bindings Timers in NAT ICE Symmetric RTP doesn’t work TURN relay STUN doesn’t work with IP address/port depending mapping RFC 3489bis: STUN UA doesn’t know address outside of NAT RFC 3605: Extension to SDP for explicit RTCP port negotiation using new attribute “a=rtcp” RTCP port=RTP port+1 breaks down when NAT ports are occupied “ Symmetric RTP is Helpful” Inbound and outbound IP addresses are different RTP/RTCP Media Transport Connection Reuse “sip-outbound” SIP/TCP fails in reverse direction through NAT. Keepalives. RFC 3581: Change to Via with “rport” Symmetric Response SIP/UDP: Via shows internal address behind NAT SIP Signaling Solutions Problem Category Consumer UA profile Primary UA profile
  • 35.
  • 36. NAT Traversal research has the latest insight NUTSS: A SIP-based Approach to UDP and TCP Network Connectivity by. S Guha et al. http://www.sigcomm.org/sigcomm2004/workshop_papers/fdna02-guha1.pdf NUTSS Tutorial http://www.csie.ntu.edu.tw/~acpang/course/voip_2005/report/419_2.pdf The state of the art NAT issues