【问题标题】:iPhone sdk socket - bandwidth usediPhone sdk 套接字 - 使用的带宽
【发布时间】:2017-07-13 23:19:12
【问题描述】:

我正在测试一个通过异步 TCP 套接字连接到 C# 服务器的应用程序 并每 30 秒发送 1 个字节(实现心跳)。 大约一个小时后,应用程序向服务器发送了 132 个数据包(一个字节), 数据包已收到确定。 iPhone 应用程序连接到服务器一次,然后通过打开的连接发送数据包(服务器不发送任何内容)。 我这样做是为了测量使用的带宽。所以我去了我的电话>设置>常规>使用 它测量了 366KB 向上和 344KB 向下(我在测试前重置了统计数据)。 手机上没有安装其他连接到网络的应用程序,我已经尝试了大约 5 次,结果相似。

这是自然的吗?我只发送了 132 个字节,但使用的带宽约为 710 KB(比如 7.000 更多)。 TCP/IP 协议有那么多带宽开销吗? 我想我会在 Http 轮询实现中得到最差的结果,这是由于 http 标头的原因。

【问题讨论】:

    标签: iphone sdk sockets bandwidth


    【解决方案1】:

    不,其他东西正在使用带宽,例如 Safari 或 Mail 检查更新或其他东西。每个数据包上下不能占用 3K。

    【讨论】:

    • 好吧,我已经删除了手机上的 Gmail 帐户。据我所知,没有别的了。每个数据包大约 5 kb 的模式,所以如果我让应用程序工作大约 90 秒(发送 3* 1 字节数据包),设备会增加 18 kb 的使用带宽......
    • 还有一件事,在C#服务器端,有nod32在运行,它报告tcpListener(C#服务器应用程序)收到了132bytes的入站流量!所以似乎服务器端测量了正确使用的带宽,但 Iphone 没有。问题是,如果移动提供商以 Iphone 设备来衡量,那么客户端的成本可能会很高。
    • 哇,1 个字节的开销太大了。您可以通过建立基线和几种不同的数据包大小来了解有关带宽开销的更多信息。 (1) 运行您的应用程序 90 分钟,测量带宽,但禁用发送 1 字节,这将为您提供后台进程的基线使用情况,(2) 与您的 1 字节相同的测试,除了发送 1k 字节,(3) 相同再次发送 10k 字节。
    【解决方案2】:

    如果您使用 wifi 连接,则可以通过在另一台计算机上使用 Wireshark 来捕获所有进出 iPhone 的流量。通过这种方式,您可能会知道额外带宽的使用对象/位置。

    【讨论】:

    • 我正在使用手机的 3G 连接。但是由于我可以访问通信的另一端(服务器),我将尝试在那里捕获流量(不要指望在那里找到任何东西,因为在服务器级别正确测量了入站流量=我实际上的字节数发送)。谢谢
    • 如果您通过命名的 hostname.domain 方案连接到服务器,那么您看到的可能是 DNS 开销。如果是这种情况,请尝试改用 IP 地址,看看是否有任何改变。
    • 不,我正在使用 IP 进行测试。我在服务器端用作嗅探应用程序,结果是服务器接收到的每 1 字节数据的总流量为 50 字节。这是合乎逻辑的,但 iPhone 上的 1byte -> 5kb 是没有意义的。
    【解决方案3】:

    我还测试了通过 http(一个以纯文本/文本 =1 响应的 asp.net httphandler)从服务器获取 1 个字节(大约)。由于 http 标头,我希望此方法会使用更多带宽。但在测试 Iphone 设备后报告说 来自服务器的每个 1 字节请求(带有所有 http 标头)大约需要 3.5kb。 与使用直接 tcp 套接字时每个数据包的平均成本 (5kb - 7kb) 相比仍然更少。

    【讨论】:

      【解决方案4】:

      发送或接收的每个数据包都会产生开销,以及设置或拆除连接的额外开销。发送许多小数据包会产生大量的 TCP 开销,并且仅测量在 socked 的另一端接收到的字节不会包括开销。如果您想要更少,请切换到 UDP 并自己处理维护连接的复杂性。

      此外,可能还有其他操作系统进程在后台使用带宽。禁用所有邮件/日历/推送通知以获得最佳效果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-08
        • 1970-01-01
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多