您当前的位置: 首页 > 

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

如何判定是stun协议

qianbo_insist 发布时间:2022-07-28 20:48:25 ,浏览量:0

STUN 全称:(Session Traversal Utilities for NAT)NAT会话穿越应用程序,允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。协议由RFC 5389定义。

1、stun 消息的魔术cookie

//fixed value 0x2112A442 const uint8_t stun_packet::magic_cookie[] = { 0x21, 0x12, 0xA4, 0x42 };

四个字节,和RTP协议类似,不过更多,有四个,分别是0x21,0x12, 0xA4, 0x42 根据RFC 5389,协议头部如下所示:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |0 0|     STUN Message Type     |         Message Length        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Magic Cookie                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                     Transaction ID (96 bits)                  |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2、如何判断
bool is_stun_pack(const uint8_t* data, size_t len) {
    if ((len >= STUN_HEADER_SIZE) && (data[0]             
关注
打赏
1663161521
查看更多评论
0.0354s