1

我知道,如何编写一个通过本地网络工作的 C# 应用程序。

我的意思是我知道,如何让我的客户端应用程序在单个本地网络中访问我的服务器端应用程序。

但我想知道:Skype、TeamViewer 和许多其他应用程序如何通过全球网络连接?

我很抱歉,如果这个问题很简单或很明显,但我找不到关于这些东西的任何信息。

请帮助我,我将不胜感激。任何信息都被接受——文章、普通信息、书籍
等等……

4

1 回答 1

1

问题非常广泛,我尝试做简短的概述。

LAN(局域网)和WAN(广域网)之间的主要区别如下:

网络质量

LAN或多或少稳定,WAN可能存在网络问题,例如:

  1. 丢包(您需要使用具有重传或丢包隐藏功能的 TCP 或 UDP 等容损传输)
  2. 包抖动(包间间隔可能与发送部分有很大不同)。最常见的是数据包突发。
  3. 数据包重新排序
  4. 数据包复制

网络连接

WAN 不如 LAN 稳定。因此,您需要正确处理所有事情,例如:

  1. 连接陈旧
  2. 连接丢失
  3. 连接中间的错误(例如,如果您使用 UDP)

地址

在 WAN 中,您处理客户端和服务器(或点对点通信中的点)之间的不同网络设备。您需要考虑:

  1. NATs - 大多数客户端都在 NAT 之后,您需要通过它们。根据技术被称为“NAT穿越”
  2. 防火墙 - 可能 ISP 有自己的规则,客户端可以做什么或不能做什么。因此,如果您执行特定的操作,例如自定义传输协议,您可能会遇到 ISP 防火墙。
  3. 路由——尤其是多播和广播通信。在一般情况下,多播是不可能路由的。广播永远不会被路由。因此,如果您想使用 WAN,您需要利用这种类型的通信。

可能是我忘记了什么。但这些点很重要。您可以阅读许多关于其中任何一个的文章。

于 2016-06-17T16:24:43.640 回答