STUN

✍ dations ◷ 2025-08-03 06:39:06 #STUN

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

一旦客户端得知了Internet端的UDP端口,通信就可以开始了。如果NAT是完全圆锥型的,那么双方中的任何一方都可以发起通信。如果NAT是受限圆锥型或端口受限圆锥型,双方必须一起开始传输。

需要注意的是,要使用STUN RFC中描述的技术并不一定需要使用STUN协议——还可以另外设计一个协议并把相同的功能集成到运行该协议的服务器上。

SIP之类的协议是使用UDP分组在Internet上传输音频和/或视频数据的。不幸的是,由于通信的两个末端往往位于NAT之后,因此用传统的方法是无法创建连接的。这也就是STUN发挥作用的地方。

STUN是一个客户机-服务器协议。一个VoIP电话或软件包可能会包括一个STUN客户端。这个客户端会向STUN服务器发送请求,之后,服务器就会向STUN客户端报告NAT路由器的公网IP地址以及NAT为允许传入流量传回内网而开通的端口。

以上的响应同时还使得STUN客户端能够确定正在使用的NAT类型——因为不同的NAT类型处理传入的UDP分组的方式是不同的。四种主要类型中有三种是可以使用的:完全圆锥型NAT、受限圆锥型NAT和端口受限圆锥型NAT——但大型公司网络中经常采用的对称型NAT(又称为双向NAT)则不能使用。

STUN使用下列的算法(取自RFC 3489)来发现NAT gateways以及防火墙(firewalls):

STUN Algorithm3.svg

一旦路经通过红色箱子的终点时,UDP的沟通是没有可能性的。一旦通过黄色或是绿色的箱子,就有连线的可能。

注:此算法在 RFC 3489 被提出,但在 RFC 5389 中被删除。详细的原因可以到 RFC 5389 的Page 45中‘19.Changes since RFC 3489 (页面存档备份,存于互联网档案馆)’查看。

相关

  • 文明古国四大文明古国,或称四大古文明,一般指古埃及、美索不达米亚(古巴比伦位于今伊拉克)、古印度及中国此四处人类文明最早诞生的地区。四大文明古国是四大古文明的旧称,而四大古文明也
  • 关山月美术馆关山月美术馆,位于中国广东省深圳市福田区红荔路,莲花山脚下。1997年6月正式对外开放,主要收藏与陈列关山月先生及其同时代的美术作品,兼顾各种国内外现当代艺术。。
  • 蒂娜·安巴尼蒂娜·安巴尼(英语:Tina Ambani,婚前名为蒂娜·穆尼姆,1957年2月11日-)是印度女商人、活动家、慈善家及前任宝莱坞电影女演员和模特儿。她的丈夫是印度富豪安尼尔·安巴尼。蒂娜·
  • 罗西·马利克-约南罗西·马利克-约南(Rosie Malek-Yonan,1965年-),出生伊朗德黑兰人,亚述人,美国女演员,作家,导演,社会活动家。罗西·马利克-约南积极关心亚述人相关议题。她批评美国政府在伊拉克战争
  • 埃里克·D·格林·埃里克·D·格林(英语:Eric D. Green,1959年12月10日 -)是一位美国遗传学家,全程参与过人类基因组计划(HGP), 2009年至今担任美国国立卫生研究院(NIH)下属的国家人类基因组研究所(NH
  • 李栋旭想做脱口秀《李栋旭想做脱口秀》(韩语:이동욱은 토크가 하고싶어서,英语:Wooktalk),为韩国SBS电视台于2019年推出的综艺节目,由李栋旭主持,而由张度练、曹政植等人共同协力主持。节目主轴为以
  • 孔托伊岛坐标:21°30′23″N 86°47′54″W / 21.50639°N 86.79833°W / 21.50639; -86.79833孔托伊岛是墨西哥的岛屿,位于穆赫雷斯岛以北约30公里,由金塔纳罗奥州负责管辖,长8.5公里,面
  • 邵勋邵勋(1965年2月-),男,汉族,安徽舒城人,毕业于财政部财政科学研究所财政学专业毕业,博士研究生学历。1991年7月参加工作,1999年1月加入中国共产党。中南财经大学工业经济系工业经济专业毕业后,到安徽省财政厅任职。2010年4月,转至中国进出口银行安徽省分行任职。2017年2月,任贵州省人民政府金融工作办公室银行处处长。2017年12月,任贵州省财政厅副厅长、党组成员。2020年,任贵州省交通运输厅党委书记、厅长。
  • 塞缪尔·贝尔茨塞缪尔·贝尔茨(英语:Samuel Beltz,1980年8月31日-),澳大利亚男子赛艇运动员。他曾代表澳大利亚参加世界赛艇锦标赛,获得一枚金牌、二枚银牌和一枚铜牌。他也曾参加2008年和2012年夏季奥运会。
  • 阿尔弗雷德·东佩特阿尔弗雷德·东佩特(德语:Alfred Dompert,1914年12月23日-1991年8月11日),德国男子田径运动员。他曾代表德国参加1936年夏季奥林匹克运动会田径比赛,获得男子3000米障碍赛铜牌。