STUN协议类型

STUN是一种客户端-服务器协议。IT支持两种类型的事务:

第一个是客户端-服务器请求,客户端向服务器发送请求,服务器进行响应。

第二个被称为指示事务,它可以通过客户端或服务器发送,但不会生成响应。

这两个事务都包括一个transactionID,一个随机选择的96位数字。

对于客户端-服务器事务,transactionID充当验证工具,对于指示事务,它可以充当调试工具。

STUN协议格式

所有STUN消息都有一个固定的标头,该标头包含以下内容:

  1. a method
  2. a class
  3. a transactionID

唯一的强制方法是指示各种请求的绑定方法。绑定方法用于确定NAT响应已分配给客户端的特定绑定。绑定方法也可以用于保持绑定的有效性。

该类指示包括:

  1. request
  2. success response
  3. an error response
  4. an indication

在绑定请求/响应事务中,绑定请求从客户端发送到服务器。为了到达服务器,绑定请求通过客户端和服务器之间的单个NAT或多个NAT。当绑定请求通过NAT时,NAT修改数据包的源传输地址(即源IP地址和源端口)。

结果,当服务器从NAt接收分组时,它将包含最靠近服务器的NAt的公共IP地址和端口。这被称为反射传输地址。

然后,stun服务器将此地址复制到COR映射的地址中,并在stun绑定响应中将其发送回客户端。当该数据包通过NAT时,NAT将修改IP报头中的目的地传输报头,但XOR MAPPED ADDRESS将保持不变。

在这个过程中,客户端学习其XOR-MAPPED-HEADER。

STUN协议术语

STUN Agent:实现STUN协议的实体。实体可以是客户端或服务器

STUN Client:发送STUN请求并获得STUN响应的实体是STUN客户端

STUN Server:接收STUN请求并发送STUN响应的实体是STUN服务器

Transport Address:Ip地址和端口号的组合称为传输地址。

Reflexive Transport Address:STUN服务器看到的地址。反射传输地址是分配给NAT另一侧客户端的映射地址。

Mapped Address:与反射地址含义相同。

Long-Term Credentials:一个用户名和密码,它是服务器和类之间的共享凭据。长期凭据通常由服务提供商(提供服务的服务提供商)授予客户端

Long-Term Password:是一种长期凭证

Short-Term Credentials:在STUN交换之前用于在客户端和服务器之间建立连接的临时用户名和密码。它们是用某种机制交换的。

Short-Term Password:短期密码

STUN indication:没有收到响应的STUN消息。

Attribute:可以添加到STUN消息中的Type length Value对象。有两种类型

  1. comprehension required:如果不理解消息,则无法成功处理消息
  2. comprehension-optional:STUN代理可以安全地忽略

RTO Retransmission Timeout:从请求的初始传输到该请求的另一次重新传输之间的时间

0

本文为原创文章,转载请注明出处,欢迎访问作者网站(和而不同)

发表评论

error: Content is protected !!