Qos管理利用深度学习的必要性

微信通话wireshark分析

在微信等实时通讯应用中,视频通话的实现一般会采用点对点(peer-to-peer, P2P)通信,但并不总是直接设备间通信。具体通信方式取决于网络环境、NAT(网络地址转换)类型、网络拓扑结构以及应用实现。

  • 点对点通信(P2P):在理想情况下,如果双方都可以直接建立连接,那么视频通话会采用P2P模式。这种模式下,音视频数据直接在两台设备之间传输,延迟较低,传输效率高。通常需要使用STUN(Session Traversal Utilities for NAT)协议来穿越NAT,发现彼此的公共IP地址和端口。
  • 中继服务器通信:在某些网络环境下,如严格的NAT或防火墙配置阻止了直接连接,P2P通信可能无法建立。这时,应用会使用中继服务器(TURN,Traversal Using Relays around NAT)来转发音视频数据。TURN服务器充当中间代理,接受来自一台设备的音视频数据,并将其转发给另一台设备。
  • 混合模式:应用通常会尝试首先使用P2P通信,如果失败则回退到使用中继服务器。这种方式结合了P2P的低延迟和中继服务器的稳定性。

虽然微信通话的具体的实现细节是微信的商业秘密,但可以根据一般的实时通讯技术推测微信通话可能采用的技术为WebRTC技术:

  • 建立连接:使用信令服务器(例如通过WebSocket或其他协议)来协调和建立通话连接,交换必要的元数据和连接信息。
  • NAT穿越:使用STUN服务器来发现和共享设备的公共IP和端口,尝试建立直接的P2P连接。
  • 使用中继服务器:如果P2P连接失败,回退到TURN服务器进行中继通信,确保通话可以正常进行。

通过wireshark抓包软件,查看微信在进行音视频通信时所使用的各层协议

应用层
信令协议:
WebSocket:用于建立和管理实时连接,传输信令数据(如通话邀请、ICE候选、SDP信息等)。
SIP(Session Initiation Protocol):用于建立、修改和终止会话,常用于VoIP。

媒体传输协议:
RTP(Real-time Transport Protocol):用于传输音视频数据,支持实时性要求高的应用。
RTCP(RTP Control Protocol):与RTP配合使用,提供传输统计和控制信息。

NAT穿越协议:
STUN(Session Traversal Utilities for NAT):用于发现设备的公共IP地址和端口,帮助建立P2P连接。
TURN(Traversal Using Relays around NAT):用于中继数据,通过中继服务器传输音视频数据,解决NAT穿越问题。

传输层
UDP(User Datagram Protocol):
RTP/UDP:RTP通常基于UDP传输,提供低延迟的实时传输。
STUN/UDP:STUN协议通常也基于UDP传输。

TCP(Transmission Control Protocol):
WebSocket/TCP:WebSocket协议基于TCP,提供全双工通信通道。
HTTP/TCP:用于初始信令和连接建立(例如通过HTTP进行WebRTC信令交换)。

网络层
IP(Internet Protocol):
IPv4:传统的IP协议版本。
IPv6:新一代IP协议,提供更大的地址空间和一些改进的功能。

数据链路层和物理层
数据链路层和物理层:这些层使用的协议和技术根据底层网络(如以太网、Wi-Fi、LTE等)而不同,负责将数据帧传输到网络介质上。

应用层:
+-------------------------------+
|       信令协议(WebSocket)     |
|       媒体传输协议(RTP/RTCP)  |
|       NAT穿越协议(STUN/TURN)  |
+-------------------------------+

传输层:
+-------------------------------+
|           UDP/TCP             |
+-------------------------------+

网络层:
+-------------------------------+
|             IP                |
+-------------------------------+

数据链路层和物理层:
+-------------------------------+
|   以太网/Wi-Fi/LTE等          |
+-------------------------------+

而微信在发送普通消息时各层使用的协议:

+-------------------------------------------------+
| 应用层                                          |
|   - 微信私有协议                               |
+-------------------------------------------------+
| 传输层                                          |
|   - TCP (Transmission Control Protocol)        |
+-------------------------------------------------+
| 网络层                                          |
|   - IP (Internet Protocol)                     |
+-------------------------------------------------+
| 数据链路层                                      |
|   - 以太网 (Ethernet) 或 Wi-Fi (IEEE 802.11)   |
+-------------------------------------------------+
| 物理层                                          |
|   - 电缆, 光纤, 无线电波                       |
+-------------------------------------------------+

从上面可以看到,微信可以同时使用TCP协议来传输普通消息以及音视频通话时的控制信令;

传统QoS分类器的分类方法

+-----------------------------+
|    数据包到达路由器          |
+-----------------------------+
              |
              v
+-----------------------------+
|   QoS分类器检查协议字段      |
|   源IP、目的IP、端口号等     |
+-----------------------------+
              |
              v
+-----------------------------+
|      分类到不同类别          |
|    (视频通话、高优先级)       |
|    (文本信息、低优先级)       |
+-----------------------------+
              |
              v
+-----------------------------+
|    应用QoS策略               |
|   (优先级排队、带宽限制)      |
+-----------------------------+
              |
              v
+-----------------------------+
|    数据包继续传输            |
+-----------------------------+

在很多情况下,传统的QoS分类方法通过五元组方法来区分不同的传输层协议(如TCP和UDP),然后将数据包放入相应的队列中。这种方法对于简单的流量分类和管理是有效的。然而,随着网络流量的复杂性增加和现代应用的多样化,传统方法在某些情况下可能不足以提供精确的流量管理和分类。

例如:

  1. 对于一个应用来说,可能会同时使用TCP协议传输多种不同类型的数据,例如微信视频通话中的控制信令和其他数据。五元组无法区分这些不同用途的TCP流量,因为它们可能共享相同的五元组特征。而对于QoS管理而言,区分音视频通话信令和其他数据具有非常重要的意义:
  • 信令数据:通常需要高优先级,因为信令数据是控制和管理通信的关键数据,确保其可靠传输和低延迟对整个通信过程至关重要。例如,视频通话的呼叫建立、挂断、会话控制等信令数据必须优先处理,以确保通信的稳定和可用性。
  • 媒体数据:通常需要中高优先级。实时音视频数据(如视频通话中的视频和音频流)要求低延迟和高吞吐量,以确保良好的用户体验。虽然这些数据对少量丢包的容忍度较高,但需要快速传输以避免延迟和卡顿。
  • 普通数据:通常可以设置为低优先级。普通数据(如电子邮件、文件下载、网页浏览等)对延迟和少量丢包的容忍度较高,这些数据传输的及时性要求不如信令数据和媒体数据高,因此可以分配较低的优先级。
  1. 现代应用程序广泛使用加密协议(如HTTPS),使得五元组无法提供有关具体应用类型或数据内容的足够信息。五元组只能识别到传输层,而无法进一步区分加密流量中的具体内容。

总结

因此我们需要更新颖的方法来实现对于业务流量的切分;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值