概述
一、NAT基础知识
NAT产生的原因:
- 由于IPv4的地址不够
- 出于网络安全的原因
NAT种类:
- 完全锥形:经过NAT主机形成一个外网的ip+port之后,外网可以随意访问。安全性较低;
- 地址限制锥形:针对ip地址做限制
- 端口限制锥形:针对端口做限制
- 对称型:每次NAT主机生成对外公网的ip+port都不一样
对每台不同的主机,生成不同外网互通的ip+port
二、STUN介绍
- STUN存在的目的是为了NAT穿越(端对端公网ip交换)
- STUN是典型的客户端/服务器模式,客户端发送请求,服务端进行响应
RFC STUN规范
RFC3489/STUN
:使用UDP进行NAT穿越RFC5389/STUN
:支持TCP/UDP进行NAT穿越STUN协议结构
- 20字节的STUN header
- Body中可以有0个或多个Attribute
STUN Header
- 2个字节(16bit) 类型
- 2个字节(16bit) 消息长度,不包括消息头
- 16个字节(128bit)事务ID,请求与响应事务ID相同
STUN Message Type
- 前两位必须是00,以区分复用同一端口时STUN协议
- 2bit用于分类,即C0和C1
- 0b00:表示是一个请求
- 0b01:表示是一个知识
- 0b10:表示是请求成功的响应
- 0b11:表示是请求失败的响应
- 12bit用于定义请求/指示
大小端模式
- 大端模式:数据的高字节保存在内存的低地址中
- 小端模式:数据的高字节保存在内存的高地址中
- 网络字节顺序:采用大端排序方式
三、网络抓包工具
网络分析方法:tcpdump/wireshark
wireshark基本语法
# 判断语句
与: and 或 &&
或:or 或 ||
非:not 或 !
等于:eq 或 ==
小于:lt 或 <
大于:gt 或 >
小于等于:le 或 <=
大于等于:ge 或 >=
不等于:ne 或 !=
# 协议过滤
stun
tcp
udp
# ip过滤
ip.dst == 目的ip
ip.src == 源ip(发送端)
ip.addr == 包含ip(打印所有该ip数据)
# port过滤
tcp.port == 端口
udp.port == 端口
udp.dstport == 目的端口
udp.srcport == 源端口
# 过滤长度
dup.length < 30
tcp.length < 30
http.content_length < 30
最后
以上就是称心小猫咪为你收集整理的webrtc基础知识【NAT、STUN】的全部内容,希望文章能够帮你解决webrtc基础知识【NAT、STUN】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复