我想了解 Skype for Business Online 在网络层面上的工作方式。
在 SBO 中,所有服务器都位于 MS 云中的某个位置。作为客户端,我有一些互联网连接,因此我可以与服务器通信、发送我的状态信号、发起呼叫等等。
但是,当有人联系我时,服务器如何到达我的客户端,并且我的客户端通常位于某些不允许传入连接的 NAT 路由器和/或防火墙后面?
在这种情况下它是否根本不起作用,或者客户端是否使用轮询服务器(长轮询或类似技术)的技术,因此所有网络连接始终由客户端发起?
答案1
对于连接性的基本鸟瞰概述,我可以推荐本文并深度链接到相关部分。
至于客户端使用的端口,你可以找到这里有好桌子。
至于它是如何工作的,我没有找到微软的官方文档,但通常这种连接的工作方式如下:
IM 推送的实现方式是客户端 (Skype for Business) 打开与消息服务器的 TCP 连接。只要手机开机,此连接就会一直保持打开状态。幸运的是,TCP 连接在不传输任何内容时绝对不会占用带宽,因此不会浪费大量数据,无线电发射器可以关闭,等等。
连接可以无限期保持打开状态,但是在 NAT 后面,NAT 基础结构会保留一个正在处理的打开连接表,并丢弃空闲了一段时间(通常为 10-15 分钟)的连接。两端都不会收到此通知。因此,这是通过发送 TCP 保持活动数据包来处理的,该数据包会刷新运营商的 NAT 连接表中的条目。这仅花费大约 50 字节左右,并且只需每隔几分钟执行一次。
对于 VoIP 来说,据我所知,人们使用的是 ICE,你可以看看这篇非常好的文章杰夫·谢尔茨