首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

STUN详解

STUN是一个简单的客户端 – 服务器协议。客户端发送一个请求到一台服务器,而服务器返回一个响应。...STUN客户和STUN服务器之间可能有一个或多个NAT 。其结果是,由服务器接收该请求的源地址将通过在NAT最接近服务器创建的映射地址。...STUN服务器复制该源IP地址和端口到一个STUN绑定响应,并将其发送回源IP地址和端口 的STUN请求。对于所有类型的NAT,这种响应都将能够到达STUN客户。...一个STUN服务器必须准备接收绑定请求在四个 地址/端口组合:(A1, P1 ),(A2 ,P1) , (A1, P2)和(A2 , P2)。...以下是stun过程解析:​ test1: 客户端发送一个STUN绑定请求到服务器,在属性CHANGE-REQUEST中在不设置任何标志,并且没有 RESPONSE-ADDRESS属性。

2.1K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    STUN协议详解

    术语定义 STUN代理:STUN代理是实现STUN协议的实体,该实体可以是客户端也可以是服务端 STUN客户端:产生stun请求和接收stun回应的实体,也可以发送是指示信息,术语STUN客户端和客户端是同义词...并要求服务端用一个不同的IP和端口发送Binding Response,换句话说,如果客户但使用IP为X端口为Y向IP为A端口为B的主机发送请求,stun服务器使用IP为C端口为D向客户端发送回应,如果客户端能收到回应则表明其处于完全型锥...C0和C1表示两位class的编码,class=0x00表示请求,class=0x01表示指示,class=0x10表示成功回应,class=0x11表示错误回应。...其中M代表此属性必选项,O代表可选项,C代表条件选项,是基于消息的其他方便选择,N/A表示此属性不能出想在这个消息中。...realm 为“realm ”,password为“pass”,那么16字节的HMAC密钥将是对字符串“user:realm pass”执行MD5哈希的结果,结果散希为0x8493fbc53ba582fb4c044c456bdc40eb

    3.1K30

    stun信令「建议收藏」

    STUN协议在RFC上目前经过三种演变,其中RFC3489上定义的STUN和之后的RFC5389和8489上定义的stun在概念上存在明显区分: RFC3489定义:Simple Traversal...stun indiction(RFC5389加入):这个stun信令在设计上就是为了简化传统stun流程中冗余的request-response的逻辑,在初始的stun请求获取server-reflex...3.2 stun信令的组成部分 stun信令由stun头+stun属性两部分组成。其中stun头描述了基本的stun信息。stun属性则是对于这个stun信令的功能拓展。...对于一个stun client来说,这里最简单的处理就是发送stun request,通过stun request就可以不断刷新这个绑定关系(很多文章中称为NAT上的洞)的持续时间。...,所以交替使用stun request和stun indiction可能是一个更优的选择,不过在webRTC的实现中,一直都使用stun request去刷新绑定关系。

    1.1K20

    coturn 搭建 stun turn 服务器

    coturn 搭建 stun / turn 服务器 简介 STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through...STUN是一种Client/Server的协议,也是一种Request/Response的协议,默认端口号是 3478。...STUN可以用于多种NAT类型,并不需要它们提供特殊的行为。 STUN本身不再是一种完整的NAT穿透解决方案,它相当于是一种NAT穿透解决方案中的工具。...这是与RFC3489/STUN版本相比最重要的改变。 ICE跟STUN和TURN不一样,ICE不是一种协议,而是一个框架(Framework),它整合了STUN和TURN。.../usr/local/bin turnserver -c …/etc/turnserver.conf 检测 ice 穿透的在线工具 链接:https://webrtc.github.io/samples

    2.6K50

    webrtc之STUN、TURN、打开摄像头实战

    关于播放器实战学习第二篇,我会在下周分享自己的学习笔记和感悟;今天呢,主要是分享一些webrtc的通话原理:STUN 和TURN ,其中会涉及到NAT穿透原理,以及我会用实战来举例在google浏览器上打开自带的电脑摄像头...,必须能够访问到外网;关于STUN协议的具体解析,大家可以看官网手册: https://datatracker.ietf.org/doc/html/rfc5389 但是有时候呢,STUN不可能每次都可以成功的为需要...在STUN分配公网IP失败后,可以通过TURN服务器请求公网IP地址作为中继地址。...实战举例: 1、安装Live Server插件 利用vscode安装Live Server插件,他可以在本地开发环境中,实时重新加载(reload)页面: 这里可能会涉及到一些前端和js的知识,有c和...c++的基础,很快就可以上手,大家也不用专门花时间去学习,可以看菜鸟教程就行。

    2.1K20

    WebRTC中的信令和内网穿透技术 STUN TURN

    group:BUNDLE audio video a=msid-semantic: WMS m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 c=...params:rtp-hdrext:ssrc-audio-level a=mid:audio a=rtcp-mux a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:9c1AHz27dZ9xPI91YNfSlI67...这种双向通信违背了HTTP C/S 请求/响应模型,但是为了将数据从Web服务器推送到浏览器应用上,多年来已经开发了诸如长轮询之类的技术。 最近, EventSource API已经得到广泛应用。...部署STUN和TURN服务器 为了进行测试,Google运行appr.tc使用的是公共STUN服务器stun.l.google.com:19302。...Jingle是由Google开发的XMPP扩展,目的是为语音和视频提供消息传递服务:当前的WebRTC实现是基于C++ libjingle库的,这是最初为Google Talk开发的Jingle实现版本

    5.2K80

    论文学习笔记:增强学习应用于OS调度

    3.3 Linux中的调度策略与内核调度参数 在Linux内核中,当前定义了五个调度策略:NORMAL(CFS)、FIFO、RR、BATCH、IDLE ,可以使用Linux提供的schedtool工具更改这些策略...因此,STUN采用了Q学习算法,这是在Linux内核中实现STUN的一种更好选择。 体系结构 下显示了STUN的结构。STUN由环境模块和代理模块组成。...该论文提出了STUN,这是一种使用强化学习优化Linux内核调度程序参数的优化框架。使用STUN可以在不需要人为干预的情况下增强各种调度环境。 STUN具有有效和快速优化的特点。...此外,可以将STUN的逻辑与Linux内核集成,以创建自适应调度程序。 【参考资料与关联阅读】 异想天开!...内核裁剪框架初探 IoT中的Linux选择 嵌入式Linux的网络连接管理 老曹眼中的Linux基础 计算机体系结构的一知半解 计算机网络的元认知、实践与未来

    44110

    关于webrtc peer to server 为什么还需要使用stun服务

    本文作者:IMWeb jaychen 原文出处:IMWeb社区 未经同意,禁止转载 关于webrtc peer to server 为什么还需要使用stun服务 理论上是可以抛弃stun server...3) 各个peer收到对应的ice candidate后,排序后向各个candidate发起stun请求,用stun协议进行连通性测试,通过后择优。...此时若没指明ice的stun server时,则默认选择stun.l.google.com作为stun server。此时国内由于Google被墙,收集到的candidate只是内网的ip。...2,在1不部署自己stun server,无法获取到client的public ip传给server。...因此去除stun的成本可能比单纯部署stun服务还高,且还有可能会有兼容性问题,对建立连接的成功率没帮助。

    2.2K111

    自建 DERP 中继服务器,从此 Tailscale 畅通无阻

    它的工作流程如下图所示: 笔记本向 STUN 服务器发送一个请求:“从你的角度看,我的地址什么?” STUN 服务器返回一个响应:“我看到你的 UDP 包是从这个地址来的:ip:port”。...中继是什么 对于 Hard NAT 来说,STUN 就不好使了,即使 STUN 拿到了客户端的公网 ip:port 告诉通信对端也于事无补,因为防火墙是和 STUN 通信才打开的缺口,这个缺口只允许 STUN...from 10.1.0.8: icmp_seq=5 ttl=64 time=156 ms 64 bytes from 10.1.0.8: icmp_seq=6 ttl=64 time=169 ms ^C...2a67:2a1e:4475]:37237; offline, tx 125216 rx 20052 openwrt default linux...active; direct [240e:390:caf:1870:c02c:e8ff:feb9:b0b]:41641; offline, tx 181992 rx 3910120 $ /Applications

    24.9K60
    领券