当前位置: 首页 > news >正文

WebRtc09:网络基础P2P/STUN/TURN/ICE

网络传输基本知识

  • NAT
  • STUN(Session Traversal Utilities for NAT)
  • TURN
  • ICE

NAT

在这里插入图片描述

产生的原因

  • IPV4地址不够
  • 出于网络安全的原因

NAT种类

  • 完全锥型NAT(Full Cone NAT)
  • 地址限制型NAT(Address Restricted Cone NAT)
  • 端口限制型NAT(Port Restricted Cone NAT)
  • 对称型NAT(Symmetric NAT)

NAT打洞原理

完全锥型NAT

在这里插入图片描述

地址限制型NAT

在这里插入图片描述

端口限制型NAT

在这里插入图片描述

对称型NAT

主机X通过NAT发送数据给不同主机的时候,使用不同的IP和端口,比如发送给P,q时,使用A,b;而对于M,n主机,则使用C,d
在这里插入图片描述

NAT穿越原理

在这里插入图片描述

NAT穿越组合

在这里插入图片描述

NAT类型检测

在这里插入图片描述
对应步骤如下面这些图描述

第一步T1

在这里插入图片描述

第二步T2

在这里插入图片描述

第三步T3

在这里插入图片描述

STUN协议

STUN介绍

  • STUN存在的目的就是进行NAT穿越
  • STUN是典型的客户端/服务端模式。客户端发送请求,服务端进行相应

RFC STUN 规范

  • RFC3489/STUN (用这套规范失败率非常高)
    Simple Traversal of UDP Through NAT
  • RFC5389/STUN
    Session Traversal Utilities for NAT

具体协议

  • 包括20字节的STUN header
  • Body中可以有0个或者多个Attribute

STUN header

  • 其中2个字节(16bit)类型
  • 2个字节(16bit)消息长度,不包含消息头
  • 16字节(128bit)事务ID,请求与相应事务ID相同

5389格式
在这里插入图片描述

STUN Message Type

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
C表示分类,M表示方法
在这里插入图片描述

Transaction ID

在这里插入图片描述

STUN Message Body

在这里插入图片描述

TLV

在这里插入图片描述

RFC3489定义的属性

在这里插入图片描述

Attribute的使用

M必须,Option可选
在这里插入图片描述

TURN协议

TURN介绍

  • 其目的是解决对称NAT无法穿越的问题
  • 其建立在STUN之上,消息格式使用STUN格式消息
  • TURN Client要求服务端分配一个公共IP和Port用于接收或发送数据

TURN例子

在这里插入图片描述

TURN 使用的传输协议

在这里插入图片描述

TURN Allocate

在这里插入图片描述

TURN 发送机制

  • Send和Data
  • Channel

TURN Send And Data

在这里插入图片描述

TURN Channel

由于send和data经常要带头消息,使用channel不需要头消息
在这里插入图片描述

TURN的使用

在这里插入图片描述

ICE框架

在这里插入图片描述

ICE candidate

在这里插入图片描述

candidate类型

在这里插入图片描述

ICE具体做什么

在这里插入图片描述

candidate关系图

在这里插入图片描述

收集candidate

在这里插入图片描述

什么是SDP

在这里插入图片描述

SDP例子

在这里插入图片描述

形成Candidate Pair

在这里插入图片描述

连通性检查

在这里插入图片描述

连通性过程

在这里插入图片描述

网络协议分析

常用工具

  • linux服务端用tcpdump
  • 其他端WireShark

tcpdump

在这里插入图片描述

Wireshark

具体自行百度学习

相关文章:

  • [实战] Petalinux驱动开发以及代码框架解读
  • IBM WebSphere Application Server 7.0/8.5.5证书过期问题处理
  • firecrawl的docker安装和api调用
  • 【python】-基础语法3
  • flutter开发音乐APP(简单的音乐播放demo)
  • Android Compose 无网络状态处理全指南:从基础到高级实践
  • 家庭服务器IPV6搭建无限邮箱系统指南
  • 米壳AI:跨境电商图片翻译的“隐形革命”:当AI技术遇上全球化生意
  • 每日算法-250430
  • 高性能架构设计-分库分表
  • 2025上海车展 | 移远通信推出自研NG-eCall QuecOpen方案,助力汽车安全新标准加速落地
  • AVPro Video加载视频文件并播放,可指定视频文件的位置、路径等参数
  • 海外社交软件开发进阶:AI驱动与高可用架构的深度实践
  • 极品工具箱 1.3.7 | 多功能合一的工具箱,涵盖音乐搜索、短视频解析等特色功能
  • 电子病历高质量语料库构建方法与架构项目(临床情景理解模块篇)
  • 【综述】相位解包裹算法对比分析
  • LVGL -按键介绍 下
  • (51单片机)LCD显示红外遥控相关数据(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
  • 大连理工大学选修课——机器学习笔记(5):EMK-Means
  • 《软件设计师》复习笔记(10.1)——算法特性、时间复杂度、递归、分治、动态规划
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高
  • 5月起,这些新规将施行
  • 揭秘神舟十九号返回舱“软着陆”关键:4台发动机10毫秒内同时点火
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • “五一”假期,又有多地将向社会开放政府机关食堂
  • 商务部:一季度我国服务贸易较快增长,进出口总额同比增8.7%