首页 > 其他分享 >stun 学习记录

stun 学习记录

时间:2023-09-11 20:35:28浏览次数:39  
标签:IP2 记录 内网 学习 外网 圆锥 NAT 发送数据 stun

NAT网络拓扑

NAT是将内网地址映射转换为外网地址的一种地址转换方式,这节省了有限的IP地址资源。一般来讲,分为对称型NAT和圆锥形NAT,其中圆锥形NAT又分为完全圆锥型NAT、IP限制圆锥型NAT、Port限制圆锥型NAT。

1.完全圆锥型NAT

完全圆锥型NAT是指同一个内网IP1+Port1向任何外网发送数据,在NAT会被映射到同一个外网的IP2+Port2;且当外网向IP2+Port2发送数据,也会被转换到内网IP1+Port1。一些反向代理服务器的代理节点就是此类型的NAT。

2.IP限制圆锥型NAT

IP限制圆锥型NAT是指同一个内网IP1+Port1向任何外网发送数据,在NAT会被映射到同一个外网的IP2+Port2;但是这种地址映射是与外网目的主机IP关联的,也就是说当内网IP1+Port1没有主动向IP3的外网主机发送数据,那么IP3的主机向IP2+Port2发送数据,将会被NAT丢弃。

3.Port限制圆锥型NAT

Port限制圆锥型NAT是指同一个内网IP1+Port1向任何外网发送数据,在NAT会被映射到同一个外网的IP2+Port2;但是这种地址映射是与外网目的主机IP和端口关联的,也就是说当内网IP1+Port1没有主动向IP3的外网主机的Port3发送数据,那么IP3+Port3向IP2+Port2发送数据,将会被NAT丢弃。

4.对称型NAT

对称型NAT是内网IP1+Port1向外网IP2+Port2发送数据时,在NAT会被映射到一个外网的IP3+Port3;当向外网IP4+Port4发送数据时,在NAT会被映射到一个外网的IP5+Port5。这种机制不能保证同一个内网IP和端口向不同外网IP和端口发送数据时,其映射的外网IP和端口的一致性。

对于三种圆锥型NAT可以建立P2P打洞技术,但是对于对称性网络却无法做到P2P效果。 圆锥型NAT和对称型NAT,适用于不同的场合,相互之间无法替代。

客户端代码下载

STUN Client and Server download | SourceForge.net

参考

Stun协议实现 - CNHK19 - 博客园 (cnblogs.com)

标签:IP2,记录,内网,学习,外网,圆锥,NAT,发送数据,stun
From: https://blog.51cto.com/fengyuzaitu/7438078

相关文章

  • 【设计模式】备忘录模式Memento - 在聊天会话中记录历史消息
    (目录)相较于其他设计模式,备忘录模式不算太常用,但好在这个模式理解、掌握起来并不难,代码实现也比较简单,应用场景更是比较明确和有限。一般应用于编辑器或会话上下文中防丢失、撤销、恢复等场景中。模式原理分析备忘录模式的原始定义是:捕获并外部化对象的内部状态,以便以后可......
  • 《Java编程思想第四版》学习笔记27
    //:DirList2.java//UsesJava1.1anonymousinnerclassesimportjava.io.*;publicclassDirList2{publicstaticFilenameFilterfilter(finalStringafn){//Creationofanonymousinnerclass:returnnewFilenameFilter(){St......
  • vp 训练记录
    三人一机在Dilute的博客上主要记一下我和zcw的两人两机场9.9今天和zcwvp了22年的沈阳站开场一看D发现是个nt题,一发过了。然后张发现C也是个nt题,也一发过了然后我去开L题,题意比较难理解,花了好长时间看题(事实证明还是看错了一个小地方),看到n,m<=7就猜到是......
  • Ansible学习笔记03:主机组
    主机组在Ansible中,主机组(HostGroup)是一个概念,用于将具有相似特性或需求的多个主机归为一组,以便进行集中管理和操作。例如,你可能希望将所有的Web服务器归为一个主机组,以便可以统一应用配置和管理。在Ansible中,可以通过在Inventory文件中指定主机组,来方便地管理和组织主机。Inventor......
  • openGauss学习笔记-66 openGauss 数据库管理-创建和管理schema
    openGauss学习笔记-66openGauss数据库管理-创建和管理schema66.1背景信息schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema......
  • python pandas学习
    importpandasaspdm_list=[('join',25,'male'),('1isa',30,'female'),('david','18','male')]df=pd.DataFrame(m_list,columns=['Name','age','gend......
  • Vue3入门学习---指令篇
    前言Vue3是一款非常流行的JavaScript框架,它提供了很多的指令来方便我们进行开发。在本篇博客中,我们将详细介绍Vue3的指令,让大家更好地了解这款框架的强大之处。正文开始1.v-bind指令v-bind指令用于绑定数据到DOM元素上,可以绑定任何JavaScript表达式。在Vue3中,我们可以使用简写......
  • FELK学习(elastalertRule常用规则)
    FELK学习(elastalertRule常用规则) 发表于 2020-05-29 |  分类于 FELK这次着重看一看elastalert的配置及支持的Rule规则.对于一般的业务需求基本是可以满足的了.全局配置123456789101112131415161718es_host:127.0.0.1es_port:9200rules_folder:rulesrun_ev......
  • java复习记录点
    类型转换int类型转二进制:Integer.toBinaryString(int);进制解析(其他进制转十进制):Integer.parseInt(String,int);//将string看成是以int进制的string,并以10进制输出结果进制解析(十进制转其他进制):Integer.toHexString(int);返回绝对值:Math.abs();*正则:[a-zA-Z]英文......
  • Matlab 遗传算法优化极限学习机(GA-ELM)回归预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......