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

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

具体自行百度学习

http://www.xdnf.cn/news/3253.html

相关文章:

  • 「动态规划::背包」01背包 / AcWing 2(C++)
  • OpenCV 图形API(75)图像与通道拼接函数-----将 4 个单通道图像矩阵 (GMat) 合并为一个 4 通道的多通道图像矩阵函数merge4()
  • 章越科技赋能消防训练体征监测与安全保障,从传统模式到智能跃迁的实践探索
  • Hbuilder 开发鸿蒙应用,打包成 hap 格式(并没有上架应用商店,只安装调试用)
  • 【Vue2】4-开发者工具安装
  • HOW - 经典详情页表单内容数据填充(基于 Antd 组件库)
  • 数据库服务器备份,数据库服备份到另一台服务器的方法有哪些?
  • 普通IT的股票交易成长史--20250430晚
  • python爬虫基础:requests库详解与案例
  • ESP32开发-作为TCP客户端发送数据到网络调试助手
  • 记录idea可以运行但是maven install打包却找不到问题
  • 【网络原理】从零开始深入理解HTTP的报文格式(二)
  • 第四节:权限管理
  • Vue3 Echarts 3D圆柱体柱状图实现教程以及封装一个可复用的组件
  • 仿腾信会议——密码MD5
  • 软件设计师-软考知识复习(1)
  • Deepseek应用技巧-批量生成读书金句
  • SAP 归档 自定义字段目录及归档信息结构
  • 〇 开篇序言
  • 写一个 Java 程序,用于将字符串中的指定子串替换为另一个子串
  • 倒排索引(Inverted Index)详解
  • Git常用指令速查
  • MySQL数据库全面详解:从基础到高级应用
  • 如何设计一个会员码表!唯一索引的使用,字段区分度不高如何处理
  • 第十五章:预训练大语言模型
  • 血管造影正常≠心脏没事!无创技术破解心肌缺血漏诊困局
  • FlexNoC-Latency
  • 【爬虫】案例-获取cbh电影
  • centos7 安装python3
  • Vue2+Vue3学习笔记