【问题标题】:How many connections on a Single Port单个端口上有多少个连接
【发布时间】:2014-03-07 15:59:20
【问题描述】:

我开发了一个通过 GPS 跟踪车辆的应用程序。因此,所有装有 GPS 模块的车辆都会将数据发送到我的服务器。

我的 Windows Server 2008 R2 为传入数据分配了端口 9900。

如果我说未来有 1000 辆汽车,它们都发送数据(通过 TCP)可能同时到服务器(都连接在同一个端口上)。

那么单端口可以工作吗?

另外,如果有人可以向我推荐一个免费的测试工具,我可以通过它来模拟 GPS 流量。

【问题讨论】:

  • 是的,它会起作用......但是如果负载增加,那么我认为您需要更多阅读有关如何平衡负载、如何处理端口的巨大流量以及许多其他方面的内容来……

标签: c# sockets gps


【解决方案1】:

请看this话题,我觉得会有所帮助。

另一方面,实际的连接管理取决于您的客户端\服务器应用程序是如何完成的:

  1. “通知” - 客户端只向服务器发送数据(小于 1Kb)
  2. “短会话” - 客户端连接到服务器并进行一些数据交换
  3. “长会话” - 客户端连接到服务器并进行永久数据交换

所以在第一种情况下,您可以只打开端口监听连接,并在收到数据时关闭连接。

在第三种情况下,连接过程应该很复杂:

  1. 服务器的监听端口很少 - 一个用于连接管理,另一个用于数据交换
  2. 客户端连接到默认端口(连接管理)
  3. 服务器选择连接数较少的数据交换端口,并告诉客户端连接到该端口进行数据交换
  4. 客户端断开连接管理端口并连接到分配的数据交换端口

在第二种情况下,您应该决定应该使用哪种方案(取决于客户端的数量和数据会话的长度)。

【讨论】:

  • 我们有第二种情况。 1-5 秒的短会话,数据小于 1KB。实际上设备建立连接,发送数据并等待服务器断开连接。现在,如果服务器想要向设备发送任何控制命令。它可以发送然后断开连接,如果是now命令,服务器在收到数据后立即断开客户端连接。是否经过优化,是否可以处理至少 500 台设备,每台设备每隔 30 秒发送一次数据。
  • 动态数据端口可以通过 NAT 配置进行攻击。 FTP 很好地证明了这一点。避免是可能的。重要的是,侦听器可以接受连接并重定向到新的套接字不需要新的握手
  • @Ashish Charan 在您的情况下,我认为您可以在单个端口上管理它。但是当然最好做一些测试,例如。编写简单的客户端,模拟设备,然后你可以运行大量的客户端进行服务器压力测试。
猜你喜欢
  • 2011-04-26
  • 2011-12-08
  • 2017-09-12
  • 2012-02-14
  • 1970-01-01
  • 2023-03-21
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多