最新要闻
- 世界观焦点:“外星科技”加持!Redmi 12C支持双SIM卡+TF卡拓展:699元起
- 搜狐张朝阳谈工作意义:年轻人赚钱享乐的想法不对
- 同步小米13 Ultra!小米平板6/6 Pro来了:处理器、屏幕大升级
- 今晚20点整:京东年货红包重磅加码 最高9999元
- 360Hz超高刷也白菜价了 泰坦军团1ms电竞显示器到手1629元
- 环球短讯!俄罗斯开发者1年拿不到钱!好好的微星AfterBurner被一场战争害死
- 盘点CES上让人耳目一新的小玩意:极具创意
- 参与美国“阿尔忒弥斯计划” 日本人将首次登陆月球:日期未定
- 2499元起 Redmi K60成了:京东好评率比iPhone 14更高
- 新动态:你能接受不?奔驰Smart精灵#1开启硬件订阅:座椅加热1299元
- 时讯:股价暴跌后!特斯拉最大华裔散户天天“炮轰”马斯克
- 环球今热点:手慢真无了 码已不全!森马羽绒/棉服大促:一百多到手
- 世界热讯:美菱推出“杀新冠冰箱”:灭杀率高达99.9% 已过权威认证
- 全球时讯:PS5主机应该横放还是竖放引热议 索尼:都可以
- 热点评!配第四代i-MMD 东风本田新款英仕派e:HEV官图发布:真大号思域
- 外观复刻iPhone 14 Pro!乐视手机S1 Pro标配8+128GB存储:自称5G小霸王
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
NAT类型检测方案
一、NAT分类
NAT大致有4种类型:
1. Full Cone NAT
(资料图)
完全锥形NAT,所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号,并且任何一个外网主机都可以通过这个映射的外网IP和端口号向这台内网主机发送包。
2. Restricted Cone NAT
限制锥形NAT,它也是所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号。与完全锥形不同的是,外网主机只能够向先前已经向它发送过数据包的内网主机发送包。
3. Port Restricted Cone NAT
端口限制锥形NAT,与限制锥形NAT很相似,只不过它包括端口号。也就是说,一台IP地址X和端口P的外网主机想给内网主机发送包,必须是这台内网主机先前已经给这个IP地址X和端口P发送过数据包。
4. Symmetric NAT
对称NAT,所有从同一个内网IP和端口号发送到一个特定的目的IP和端口号的请求,都会被映射到同一个IP和端口号。如果同一台主机使用相同的源地址和端口号发送包,但是发往不同的目的地,NAT将会使用不同的映射。此外,只有收到数据的外网主机才可以反过来向内网主机发送包。
我们知道,使用五元组可以定位一条流,分别是源端口(SPORT),源IP(SIP),协议(Protocol,如TCP/UDP等),目的端口(DPORT),目的地址(DIP)。
不同类型的NAT,其实就是在做NAT哈希以及匹配时使用和检查的五元组数据不同。
上述4种NAT分类的区别如下(假设协议为UDP):
NAT类型 | NAT哈希使用的信息 | NAT匹配检查的信息(针对回应报文) | 备注 |
完全锥形NAT | SIP,SPORT | 映射后的IP和端口号 | 由于在NAT哈希时只使用了SIP和SPORT,若SIP和SPORT一样,都会映射成同一个IP和端口(无论DIP和DPORT是否一样)。 这3类NAT的区别就在于对回应报文的检测方式不同。 假设有3台外网主机A,B,C。内网主机使用相同的源IP和源端口向主机A和B发送报文,映射后的IP和端口都是一样的。 针对完全锥形NAT,外网主机A,B,C可以使用任何源端口向映射的IP和端口发送报文,报文都会被送达内网主机; 针对限制锥形NAT,外网主机A,B可以使用任何源端口向映射的IP和端口发送报文,主机C发送的报文会被丢弃 (由于内网主机没有向主机C发送过报文,无法通过源IP检查); 针对端口限制锥形NAT,外网主机A,B只能使用指定源端口(内网主机报文的目的端口)向映射的IP和端口发送报文, 若使用其它端口作为源端口,则报文会被丢弃(无法通过源端口检查)。主机C发送的报文会被丢弃 (由于内网主机没有向主机C发送过报文,无法通过源IP和源端口检查); |
限制锥形NAT | 映射后的IP和端口号 回应报文的源IP | ||
端口限制锥形NAT | 映射后的IP和端口号 回应报文的源IP和源端口 | ||
对称NAT | SIP,SPORT,Protocol,DPORT,DIP | 映射后的IP和端口号 回应报文的源IP和源端口 | 对称NAT对回应报文的检查和端口限制锥形NAT一样,区别在于做NAT哈希时使用的信息。五元组内任意一个元组发生变化,则映射后的IP或端口都会发生变化。 |
二、NAT类型检查
了解了NAT的分类后,可以设计一个NAT类型检查的方式。
此方式要求至少有2台外网服务器,分别为主机A和B。
流程如下:
步骤1:内网主机发送一个UDP报文给A,其中源端口为13357,目的端口为6000,源IP为内网主机的私网地址,目的IP为外网主机A的地址。
此报文(在负载中指定)要求服务器使用映射后的IP和端口作为目的IP和目的端口进行回应,源IP和源端口与报文的目的IP和端口相同,并在回应中包含映射后的IP和端口信息。
这个回应报文肯定能被收到,除非网络不通。
收到此报文后,通过报文中包含的映射后的IP和端口信息,内网主机可以做如下判断:
1,映射后的IP和端口与内网主机地址和源端口一样。可以判断主机位于公网,没有NAT。流程结束。
2,映射后的IP和端口与内网主机地址和源端口不一样。则可以判断主机位于内网,到公网之间有NAT设备。(当然,这里不一样有3种情况,即1,仅地址不一样;2,仅端口不一样;3,地址和端口都不一样;一般是第3种情况。第1种情况也有可能,因为NAT的哈希算法计算后的映射端口可能与源端口恰好一样。第2种情况属于异常场景,暂不考虑。)
步骤2:内网主机发送一个UDP报文给A,其中源端口为13357,目的端口为6000,源IP为内网主机的私网地址,目的IP为外网主机A的地址。(与步骤1发送的报文的信息一样)
此报文(在负载中指定)要求服务器使用映射后的IP和端口作为目的IP和目的端口进行回应,源IP于报文的目的IP相同,但修改源端口为其它端口(与上行报文的目的端口不一样),并在回应中包含映射后的IP和端口信息。
根据NAT类型的不同,内网主机不一定能够收到此回应报文。
1,收到此回应报文。
可以判断NAT类型为完全锥形NAT(类型1)或限制锥形NAT(类型2)。因为根据另外两种NAT的定义,不可能收到这种回应报文。
当然,也可以对负载再次进行检查,期望负载中包含的映射后的IP和端口与第一个回应一样,若不一样,则属于异常情况,暂不考虑。
2,未收到回应报文。
可以判断NAT类型为端口限制锥形NAT(类型3)或对称NAT(类型4)。因为根据另外两种NAT的定义,肯定会收到这种回应报文。(暂时不考虑丢包的情况。实际实现时,可以通过重传此报文来解决可能的丢包场景。)
步骤3:此步骤要根据步骤2的情况来进行。分两种情况。
1,步骤2中收到了回应报文。
此时再次发送一个与步骤1和2中类似的报文,IP头部信息不变,但在负载中携带信息要求服务器A通知服务器B,让服务器B来给内网主机发送回应。(服务器A和服务器B之间的交互不在本文的范围内)。
若收到此回应,则表明NAT类型是完全锥形NAT(类型1),否则就是限制锥形NAT(类型2)。因为限制锥形NAT会检查源IP,服务器B发送的回应由于使用了不同的源IP,不能通过此检查。
到此流程结束。
2,步骤2中未收到回应报文。
此时需要在端口限制锥形NAT(类型3)或对称NAT(类型4)中做判断。
与步骤1类似,内网主机给服务器B发送一个报文,并检查回应中携带的映射后的IP和端口信息。
若与步骤1中回应的一样,则表明是端口限制锥形NAT(类型3),否则就是对称NAT(类型4)。
至此,一个简易的NAT类型检测流程就完成了。
上述流程中,没有考虑丢包,异常处理等。需要在实现时完善。
另外,UDP报文中携带的信息,可以参考RFC3489/5389/5766这3篇文档,利用里面定义的消息类型和选项,包括使用事务ID来匹配请求和回应等。
重传机制,如超时时间,重传次数等,都需要在实现时考虑。
本文是在研究了比特彗星(Bitcomet)的NAT类型发现功能后写出的。只是一个猜想,跟比特彗星或其它商业软件的实现大概率不一致。
另外,上述步骤中,步骤2的回应报文修改了源端口,当然也可以直接修改源IP,甚至源IP和源端口都修改,后续步骤根据情况调整,但原理大致是一样的,这里不再赘述。
欢迎留言指导讨论!
关键词: 目的端口
-
世界热议:学习笔记——Mybatis核心配置文件概述及根标签
2023-01-09一、Mybatis核心配置文件概述及根标签1、核心配置文件的概述(即“mybatis-config xml”)My...
来源: NAT类型检测方案
世界热议:学习笔记——Mybatis核心配置文件概述及根标签
VisualStudio 使用 FastTunnel 辅助搭建远程调试环境
世界观焦点:“外星科技”加持!Redmi 12C支持双SIM卡+TF卡拓展:699元起
搜狐张朝阳谈工作意义:年轻人赚钱享乐的想法不对
同步小米13 Ultra!小米平板6/6 Pro来了:处理器、屏幕大升级
今晚20点整:京东年货红包重磅加码 最高9999元
360Hz超高刷也白菜价了 泰坦军团1ms电竞显示器到手1629元
火山引擎 DataTester:5 个优化思路,构建高性能 A/B 实验平台
环球新资讯:对话阿里云叔同:如何看待 2022 年云原生的发展,2023 年有哪些值得关注的技术?
全球新动态:字符串匹配算法综述
新资讯:网易云音乐用户画像资产治理及业务赋能
每日热议![概率论与数理统计]笔记:3.1 随机向量的分布
环球短讯!俄罗斯开发者1年拿不到钱!好好的微星AfterBurner被一场战争害死
盘点CES上让人耳目一新的小玩意:极具创意
参与美国“阿尔忒弥斯计划” 日本人将首次登陆月球:日期未定
2499元起 Redmi K60成了:京东好评率比iPhone 14更高
新动态:你能接受不?奔驰Smart精灵#1开启硬件订阅:座椅加热1299元
环球播报:软件开发入门教程网之C++ 引用
[笔记]斜率优化
HTML超文本标记语言2
时讯:股价暴跌后!特斯拉最大华裔散户天天“炮轰”马斯克
环球今热点:手慢真无了 码已不全!森马羽绒/棉服大促:一百多到手
世界热讯:美菱推出“杀新冠冰箱”:灭杀率高达99.9% 已过权威认证
全球时讯:PS5主机应该横放还是竖放引热议 索尼:都可以
热点评!配第四代i-MMD 东风本田新款英仕派e:HEV官图发布:真大号思域
世界视点!【操作系统实验/Golang】实验4:虚拟内存页面置换算法
世界时讯:Python工具箱系列(二十二)
初识Vue
环球消息!ACWING 4261. 孤独的照片
外观复刻iPhone 14 Pro!乐视手机S1 Pro标配8+128GB存储:自称5G小霸王
当前讯息:一加8钉子户上车一加11:真正上手那一刻被惊艳到了
每日消息!一加11成为最火爆的第二代骁龙8旗舰!李杰:友商都可以去查
NVIDIA推出第5代MAX-Q技术:游戏本性能进一步提升
女子买200万豪车 亲友400箱礼花庆贺 整条街道都摆满了
当前热议!无监控,不运维!深入浅出介绍ChengYing监控设计和使用
学习笔记——在IDEA中创建Maven版的web工程;框架;Mybatis简介;搭建Mybatis框架步骤
每日热议!成功率100%!中国民营火箭谷神星一号五连胜:一箭五星
今日热闻!33岁男子酗酒20年骨头坏死:13岁开始喝、每天至少半斤
动画版口碑崩盘 《三体》国产剧版过审获许可证 最快本月上线腾讯视频
世界速递!特斯拉最大散户投资者成马斯克头号反对者:连续多日公开炮轰
关注:一步一步实现若依框架--2.2实现后台限流rate_limiter
最资讯丨ACWING 4645. 选数异或
天天要闻:全球第四大汽车制造商CEO:欧洲中产阶级将选购中国汽车
清华应届硕士炮轰字节恶意低薪:月薪2万 硕士白读还倒贴
世界快看:面试官:数据库日期类型字段,需要兼容不同数据库,应该如何选择?
今日最新!ThreadLocal源码解析及实战应用
交换机二层组播配置
管理工具造成的阻塞
前沿热点:国产战机大片!电影《长空之王》定档:今年五一上映
杭州外来人口占3成 河南人数比肩本地土著 原来有历史原因
小米13系列大卖、汽车售价可达35万以上 小米高端成了:股价大涨
采埃孚新安全带:不用开空调 可提升电动车15%续航
焦点速读:3999元起 一加11首销51分钟打破所有二代骁龙8销量、销售额双记录
家用光纤宽带多少兆合适?家用光纤怎么接路由器?
招财猫的原型是什么猫?招财猫左手右手分别代表什么?
修正液的成分是什么?修正液的性质有哪些?
丁克家族是什么意思?丁克家庭的好处和坏处有哪些?
纪宝贝是什么电视剧的角色?纪宝贝是什么品种的狗?
印度首家旗舰店来了?传苹果(AAPL.US)开始招聘零售店员工
年终盘点丨最受开发者欢迎的文章 TOP20
天天快报!华硕ROG首款DP2.1接口显示器发布:无压缩4K 160Hz画质
世界热讯:车主激烈维权上演0元购!特斯拉成都门店否认:都是理性维权
重达2.4吨!美国40年前发射卫星今日坠落地球:或为朝鲜半岛
行业最低!一加Buds Pro 2首销899元:全链路延时仅54ms
【全球独家】腾讯发布未成年人春节寒假限玩通知:春节7天全开 工作日继续禁玩
京音平台-一起玩转SCRM之电销系统
全球滚动:特斯拉降价 国外车主怎么就不闹:原因发人深思
环球观速讯丨电视“套娃式充会员”吃相难看 有人呼吁建立互相兼容的会员体系
天天要闻:电子后视镜正式获批!吉利路特斯首批上车:选装费1万6
北斗三号卫星系统总设计师:北斗核心指标已超GPS
精选!极端暖冬席卷欧洲 多国冬天“入夏”:天然气价格也遭暴跌
环球热门:深拷贝、浅拷贝
6.Servlet
环球短讯!春节档电影票房乐观预测可达85亿 吴京主演《流浪地球2》领跑
每日焦点!支付宝2023年“集五福”来了 网友:两块钱的大项目
时讯:网站关停!广汽讴歌成为历史 正式退出中国市场
2023中国航天开门红!我国再次成功发射一箭三星
卢伟冰:Redmi K60卖的非常好 是2.5K-4K价位首选!
天天即时看!未来要取代iPhone!苹果AR/VR头戴设备将春季发布:原型机已发放
A16研发失败后!iOS 17首曝光:苹果挤牙膏 没重大更新让人失望
天天讯息:电源买双倍功率就中计啦!大可不必
全球观热点:用4年依旧流畅!一加11今日首销:最低12G内存 3999元起
焦点速讯:暴雪网易复合几乎不可能:不会降低标准 正和新代理谈的火热
4week-3字符串和字符
世界时讯:DVWA靶场实战(五)——File Upload
ACWING 4366. 上课睡觉
【世界速看料】NVIDIA正在开发AI优化驱动:性能飙升30%
大几千元的空气消毒机是智商税吗?这操作多少有点愣
世界信息:神奇的雌雄同体:一不小心 “老婆”变成“老公”
[1] LeetCode 刷题笔记: 两数之和 [S]
expres实现登录与修改密码
《鹿鼎记》主演时隔24年重聚:小宝的四个老婆 她几乎没变
Codeforces 1671 F Permutation Counting 题解
关注:如何优雅地校验后端接口数据,不做前端背锅侠
《中国奇谭》封神:上线仅三集 追番量破200万
红旗正式发布新能源品牌:全新LOGO 新车3秒破百
【环球新视野】学习笔记——Maven的核心概念之仓库、坐标;maven的依赖管理;Maven中统一管理版本号;Maven的继承;Maven的聚合
jmap——Java内存分析工具
全球消息!AMD锐龙7040砍掉没用的PCIe 5.0!内存翻番256GB