## 3 Background
### Communication Principle of Snowflake Protocol
#### 3.2.1 Snowflake Communication Process  
Figure 2 illustrates the communication process of Snowflake. Snowflake consists of three main components. The snowflake client is a Tor client configured with the snowflake PT plugin, which is responsible for initializing service requests and establishing peer-to-peer connections with snowflake proxies. The snowflake proxy is a small in-browser WebRTC proxy that establishes a connection with the snowflake client by WebRTC and relays Tor traffic to the Tor network. The broker is responsible for rendezvous and is used to complete the online matching between the client and the snowflake proxies, which usually requires domain-fronting techniques for establishing communication. Snowflake uses these components to negotiate communications and build WebRTC connections to hide and forward traffic to the Tor network. Snowflake's communication process can be divided into three main phases: the preparation phase, the rendezvous phase, and the WebRTC connection establishment phase. Rendezvous phase  
The second stage in the Snowflake communication process is the rendezvous phase. In this phase, the snowflake client and proxy exchange information necessary for a WebRTC connection via the broker. The snowflake client establishes an HTTPS connection with the broker through domain-fronting technology. Domain-fronting technology [31] is an application layer technology that hides the real destination address of HTTP messages wrapped inside HTTPS by using different domain names at different communication protocol levels. In the rendezvous phase, the snowflake proxy and snowflake client establish connection with the broker, respectively. By sending a POST request to the broker, both parties  
Figure 2: Snowflake communication process. exchange SDP (Session Description Protocol) information, which can support the establishment of WebRTC peer connection. The SDP data in the rendezvous phase is transmitted encrypted via TLS, so they cannot be extracted by message analysis. The detailed process is referred to in Figure 2.  
WebbRTC connection establishment phase  
The last phase of Snowflake communication is WebRTC (Web Real Time Communication) connection establishment. WebRTC is a set of protocols and technology combination for negotiating bidirectional secure real-time communication between two WebRTC peers. It is mostly used for P2P real-time communication in audio and video application scenarios. WebRTC connection establishment consists of four processes: signaling exchange, connection establishment, secure encryption, and point-to-point communication. The signaling exchange process is the rendezvous phase mentioned above. It presents the following process in the network traffic. After sending a DNS response to the domain-fronting servers [31], the snowflake client establishes a TLS connection and transfers SDP information through it immediately. The connection establishment process is essentially NAT traversal using ICE (Interactive Connectivity Establishment) negotiation, which is a combination of the STUN (Session Traversal Utilities for NAT) [32] and TURN (Traversal Using Relays around NAT) protocols to build peer-to-peer connections. Snowflake uses the STUN protocol to achieve NAT traversal. In a secure encryption process, Snowflake builds a data-channel based on the WebRTC DTLS protocol to achieve secure data transmission. DTLS is similar to the TLS protocol, except that DTLS is based on UDP as the transport layer. For a detailed analysis of the DTLS protocol communication process, see Section 3.2.2. In the peer-to-peer communication process, SCTP (Stream Control Transmission Protocol) is used to send and receive DTLS-encrypted data-channel messages between two WebRTC peers with secure bidirectional communication. Snowflake establishes a secure and reliable peer-to-peer communication tunnel between user browsers in the censorship region and volunteer browsers outside the censorship region through the above processes.