WebRTC进阶四 / ICE和NAT

本文深入探讨了WebRTC中ICE(Interactive Connectivity Establishment)和NAT(网络地址转换)的工作原理,包括Candidate的类型和解析、STUN和TURN协议的作用,以及不同类型的NAT对连接的影响。通过理解这些概念,可以更好地掌握如何在复杂网络环境中建立可靠的P2P连接。
摘要由CSDN通过智能技术生成

1、前言

上一篇中我们讲解了一下媒体协商的过程,以及为什么要进行媒体协商,如果协商完成,接下来就是要进行媒体数据的传输,但是在我们的互联网中,网络情况是非常复杂的,要怎么解决私网地址的连接,以及如何保证连通率,如果内网能连通是不是就不用走公网。情况还是非常的复杂的,那么我们如何解决这些问题。

在开始之前我们先思考两个场景

场景一:双方处于同一个内网中

A和B要进行通信,假如他们在同一个内网中,这种情况下一般来说有几种连接方式

  • 直接通过内网进行连接

  • 通过公网后进行连接

  • 通过中继服务器进行连接

在大家看来,第一种直接通过内网进行连接的是最好的,但是这个问题其实没这么简单,你怎么能确定在A和B在用内用的同一个网段能进行连接呢。

场景二:双方处于不同的两个地方

A和B要进行通信,他们在不同的两个地方,A和B之间一定会经过公网,那么一般来说连接情况就有以下几种

  • 直接通过P2P进行连接

  • 通过中继服务器进行连接

这个场景来看直接通过P2P连接是最好的,通过中继服务器连接会增加延时和成本,但是直接通过P2P也还是有很多困难的,如果P2P的方式不通,就要使用中继的方式进行连接了。 这个时候我们怎么判断该用哪种方式呢?

2、什么是 Candidate

Candidate的英文翻译是候选,顾名思义就是ICE候选的意思,表示WebRTC和远端进行通信的时候使用的协议、ip地址和端口等。

2.1 candidate的字段解析

  • foundation:用于标志和区分来自同一个stun的不同的候选者,ID标识

  • icegroupid:ICE的组ID

  • type:协议类型

  • priority:优先级

  • ip:ip地址

  • port:端口

  • typ:标识后面字段的属性类型是候选类型

    • host:本地接口获取到的candidate(本机候选)

    • srflx:NAT网关在公网侧的IP地址,通过STUN或者TURN收集(server reflexive candidate)(内网主机映射的外网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值