SlideShare a Scribd company logo
2
Most read
6
Most read
9
Most read
XMPP Protocol
 
The Extensible Messaging and Presence Protocol
Tehran Linux User Group
Hamidreza Soleimani
September 01, 2014
What is it
It is
- eXtensible
- Messaging & Presence
- Protocol
It is not
- Binary Protocol
- General Purpose
- Server or Daemon
And also
- Open Protocol
- Application Layer
- XML Based
- Asynchronous
- Long Lived Connection
History
1998 Jabber Protocol Was Invented
By Jeremie Miller to scratch his itch
1999 First Release of JabberD
2000 Open-Source Community and Jabber
Many open-source clients were developed
Its Java and Perl library were developed
Details of its wire protocol was documented
JabberD version 1.0 was released
2004 IETF and Jabber
XMPP Protocol published [RFC 3290-1]
2005 Google and XMPP
GTalk launched over XMPP
2008 Cisco and XMPP
Jabber Inc. was acquired by Cisco Co.
2010 Facebook and XMPP
Facebook opened up XMPP interface for its chat
2011 Modified XMPP by IETF
[RFC 6120-1]
Primitives
XMPP
Server
XMPP
Client
XML
XMPP
Client
XML
me@tehlug.im/pidgin
XML
XML
you@tehlug.im/psitehlug.im
<presence
from=”me@tehlug.im/pidgin”
to=”tehlug.im”/>
<iq type=”get”>
<query xmlns=”jabber:iq:roster”/>
</iq>
<message
from=”me@tehlug.im/pidgin”
to=”you@tehlug.im”>
<body>Hello dude!</body>
</message>
[ ... ]
<presence
from=”me@tuhlug.im/pidgin”
to=”tehlug.im”
type=”unavailable”/>
XMLStream
Stanza
Usage
Group Chat
VOIP
Whats app
Gtalk
Nimbuzz
Instant
Messaging
GamingChesspark Collaboration
VM
Management
ArchipelGeo-location
Cisco WebEx
Vehicle
Tracking
vs. HTTP
XMPP
Server
XMPP
Server
XMPP
Client
XMPP
Client
HTTP
Server
HTTP
Server
HTTP
Client
HTTP
Client
XMPP
Asynchronous
Federated
Limited Purpose
HTTP
Synchronous
Unfederated
General Purpose
vs.
Transports
TCP
Transmission Control
Protocol
BOSH
Bidirectional stream Over
Synchronous HTTP
WebSocket
Long Lived Connection
Over HTTP
Client(Pidgin/WhatsApp)
Server(Ejabberd,Tigase)
Open TCP Connection
Open XML Stream
Preferably Negotiate TLS
Authenticate by SASL
Exchange XML Packets
Close XML Stream
Close TCP Connection
Client(Firefox/Chrome)
Server(Ejabberd,Tigase)
Open by HTTP Request
Send XML Stanza
... Keep Alive ...
Get XML Stanza
Client(Firefox/Chrome)
Server(Ejabberd,Tigase)
Open by HTTP Request
Upgrade to WebSocket
WebSocket Handshake
Open XML Stream
Exchange XML Frames
Close XML Stream
Close WS Connection
... Keep Alive ...
Send XML Stanza
... Keep Alive ...
DIRECT
P2P
Offer session & parameters
Initiator ResponderXMPP Server
- Application Type: RTP / Stub / ibb
- Media Codec: Speex / G.711 / H.264
- Transport Method:
- Streaming: ibb / S4b
- datagram: raw-UDP / ICE-UDP Accept session & parameters
TURN
Server
STUN
Server
TURN
Server
STUN
Server
NAT
Get/Send public IP:Port
Get/Send relay IP:Port
Get/Send relay IP:Port
Get/Send public IP:Port
STUN
P2P
TURN
RELAY
Sym.NAT
NATSym.NAT
ICE Signaling Channel
Media Exchange Channel
XMPP Signaling Channel
STUN: Session Traversal Utilities for NAT
TURN: Traversal Using Relay around NAT
ICE: Interactive Communication Establishment
Jingle
Terminate session Terminate session
Question?
Hamidreza-s.github.com

More Related Content

PPT
Xmpp presentation
ODP
PPTX
web communication protocols in IoT
PPTX
XMPP and IoT - an overview
PPT
The constrained application protocol (CoAP)
PPTX
Hypertext transfer protocol (http)
PPT
WSN IN IOT
Xmpp presentation
web communication protocols in IoT
XMPP and IoT - an overview
The constrained application protocol (CoAP)
Hypertext transfer protocol (http)
WSN IN IOT

What's hot (20)

PPT
Networking basics PPT
PPTX
IP security
PPT
Group Communication (Distributed computing)
PPT
TCP/IP Protocols With All Layer Description
PPT
Secure Socket Layer
PDF
An introduction to MQTT
PDF
Mobile computing (Wireless) Medium Access Control (MAC)
PPTX
Ppt of routing protocols
PPTX
MEDIUM ACCESS CONTROL
PPT
protocol architecture
PDF
DDS for Internet of Things (IoT)
PDF
Open stack
PPTX
IOT Protocols
PPSX
Congestion control in TCP
PPTX
Transport layer protocol
PDF
Mobile Network Layer
PPTX
Routing algorithm
PPT
SSL & TLS Architecture short
PPTX
Agent discovery& registration
Networking basics PPT
IP security
Group Communication (Distributed computing)
TCP/IP Protocols With All Layer Description
Secure Socket Layer
An introduction to MQTT
Mobile computing (Wireless) Medium Access Control (MAC)
Ppt of routing protocols
MEDIUM ACCESS CONTROL
protocol architecture
DDS for Internet of Things (IoT)
Open stack
IOT Protocols
Congestion control in TCP
Transport layer protocol
Mobile Network Layer
Routing algorithm
SSL & TLS Architecture short
Agent discovery& registration
Ad

Viewers also liked (20)

ZIP
XMPP In Real Time
ZIP
XMPP 101
KEY
The Real Time Web with XMPP
PDF
XMPP Intro 1101 - 2008
PDF
WTF is XMPP?
PDF
Real life XMPP Instant Messaging
PDF
Nanomsg - Scalable Networking Library
PDF
Understanding the Internet of Things Protocols
PDF
Communication Service Evolution
PDF
How to configure Instant Messaging (IM) at ringEmail?
PPSX
Applying event driven architecture to mobile computing
PPTX
Communicatio Skills
PDF
Scaling the Web to Billions of Nodes: Towards the IPv6 “Internet of Things” b...
PPT
Open Source XMPP for Cloud Services
PDF
Switch to Python 3…now…immediately
PDF
XMPP Technical Overview + Jingle Protocol Study
PDF
Beyond REST? Building data services with XMPP
PPTX
Nat traversal in WebRTC context
PDF
Protocols for IoT
ODP
IoT transport protocols
XMPP In Real Time
XMPP 101
The Real Time Web with XMPP
XMPP Intro 1101 - 2008
WTF is XMPP?
Real life XMPP Instant Messaging
Nanomsg - Scalable Networking Library
Understanding the Internet of Things Protocols
Communication Service Evolution
How to configure Instant Messaging (IM) at ringEmail?
Applying event driven architecture to mobile computing
Communicatio Skills
Scaling the Web to Billions of Nodes: Towards the IPv6 “Internet of Things” b...
Open Source XMPP for Cloud Services
Switch to Python 3…now…immediately
XMPP Technical Overview + Jingle Protocol Study
Beyond REST? Building data services with XMPP
Nat traversal in WebRTC context
Protocols for IoT
IoT transport protocols
Ad

Similar to What is XMPP Protocol (20)

PDF
SPADE: Agents based on XMPP
PPTX
PDF
Jingle
PPT
Nktalk Case Study
PDF
XMPP, HTTP and UPnP
PDF
A vision for ejabberd - ejabberd SF Meetup
PPTX
PPTX
PDF
InternetWorking With TCP\IP
PDF
InternetWorking With TCP\IP
PPT
The April Agent Platform
PPTX
Tcp ip tutorial
PDF
Ryu SDN Framework
PPSX
Xmpp and java
PPT
Eemerging Wireless Internet Standar-2011.ppt
PDF
Application layer and protocols of application layer
PPT
Internet Technology
PDF
Mdx ietf foss_2018 (cyberstorm.mu)
PDF
PLNOG 6: Julian Curtis - IPv6 Overview
PPTX
Presentation12
SPADE: Agents based on XMPP
Jingle
Nktalk Case Study
XMPP, HTTP and UPnP
A vision for ejabberd - ejabberd SF Meetup
InternetWorking With TCP\IP
InternetWorking With TCP\IP
The April Agent Platform
Tcp ip tutorial
Ryu SDN Framework
Xmpp and java
Eemerging Wireless Internet Standar-2011.ppt
Application layer and protocols of application layer
Internet Technology
Mdx ietf foss_2018 (cyberstorm.mu)
PLNOG 6: Julian Curtis - IPv6 Overview
Presentation12

More from Hamidreza Soleimani (12)

PDF
Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
PDF
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
PDF
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
PDF
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
PDF
Technology Companies Development Story
PDF
Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf
PDF
BEAM (Erlang VM) as a Soft Real-time Platform
PDF
Event Driven Architecture Concepts in Web Technologies - Part 2
PDF
Event Driven Architecture Concepts in Web Technologies - Part 1
PDF
Nodejs Applications in Production
PDF
Practical Look at Erlang
PDF
Create Your Own Language
Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
Technology Companies Development Story
Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf
BEAM (Erlang VM) as a Soft Real-time Platform
Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 1
Nodejs Applications in Production
Practical Look at Erlang
Create Your Own Language

Recently uploaded (20)

PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
composite construction of structures.pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PDF
Well-logging-methods_new................
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Welding lecture in detail for understanding
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
composite construction of structures.pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Lesson 3_Tessellation.pptx finite Mathematics
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Arduino robotics embedded978-1-4302-3184-4.pdf
Well-logging-methods_new................
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Strings in CPP - Strings in C++ are sequences of characters used to store and...
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Welding lecture in detail for understanding
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Internet of Things (IOT) - A guide to understanding
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf

What is XMPP Protocol