The relationship between Libjingle and each protocol. 1. Introduction to relevant protocols XMPP protocol (core protocol): TheExtensibleMessagingandPresenceProtocol, which can be used to expand communication and representation protocols. To put it bluntly, the rule is based on 1. Introduction to relevant protocols
· XMPP protocol (core protocol ):
The Extensible Messaging and Presence Protocol can be used to expand communication and representation protocols. To put it bluntly, it defines the protocol for transmitting data of a specified node based on XML streams. The advantage of doing so is unification (peakflys note: According to this definition, everyone can communicate and communicate with each other. This should be very promising !). It is an open and scalable protocol, including the Jingle protocol, which is an extension of the XMPP protocol. (Peakflys Note: Earlier versions may not be able to find this protocol when Wireshark is used to capture packets. in this case, you can select Jabber, the predecessor of XMPP ). At present, many IM programs are developed based on the XMPP protocol, including gtalk.
· Jingle protocol (important protocol ):
Jingle protocol is an extension protocol on XMPP protocol. it solves the point-to-point connection problem under the XMPP protocol framework, that is, P2P connection. In the Jingle framework, users can establish connections even under firewall or NAT network protection to provide file transfer, video, and audio services. Programmatic document is XEP-0166
· TURN protocol:
Full name: Traversal Using Relays around NAT, as its name implies, is a protocol for data transmission through a relay server.
· STUN protocol:
Simple Traversal of UDP over NATs, that is, nat udp Simple Traversal, which allows clients located after NAT (or multiple NAT) to find their own public network addresses, find out which type of NAT you are located and the Internet port that NAT is bound to a local port. P2P is much more convenient if you know the NAT type and have a public IP address and port.
· ICE protocol:
Full name: Interactive Connectivity Establishment, that is, Interactive connection Establishment. to put it bluntly, it is the most suitable connection using protocols such as STUN and TURN.
II. relationship between Libjingle and various protocols
The initiator of the Jingle protocol is Google, and the libjingle Library is also implemented by Google. The ICE protocol is basically included in the Jingle protocol, so you only need to know the difference between libjingle and Jingle. Www.2cto.com
History: Libjingle and jingle XMPP extensions are established at the same time. The Libjingle team established their own protocol to handle session negotiation and then worked with standardized jingle (based on XMPP Standards. Although jingle and libjingle are very similar, they are different and cannot be used together. The source code version of libjingle still uses the original network protocol, which is slightly different from the previous one and cannot be compatible with the jingle specifications. However, it is close enough to jingle, so it is worth learning jingle's manual. Similar to "close but not the same", libjingle's video content description (early jingle's video content description format XEP-0167), ICE's transfer description (early jingle's ICE transfer XEP-0176 ), and the UDP description of the stream (early jingle stream UDP transmission description XEP-0177)
III. related documents:
RFC3921 (Download: RFC3921) core documents of the XMPP protocol
RFC3489 (STUN) (Download: RFC3489) draft of the STUN protocol
Rfc5245 (ICE) (Download: RFC5245) draft of the ICE protocol
Xep-0166 (Jingle) (Download: XEP-0166) official subject document for the Jingle protocol
Xep-0176 (Jingle ICE-UDP) (Download: XEP-0176) official document defining the combination of Jingle and ICE (primarily to redescribe the ICE protocol using XMPP as the ICE Channel)
Protocol XMPP Protocol: The Extensible Messaging and Presence Protocol. To put it bluntly, the rule is based on...