【问题标题】:Data loss in simple TCP socket connection using DNS?使用 DNS 的简单 TCP 套接字连接中的数据丢失?
【发布时间】:2015-10-25 13:03:46
【问题描述】:

我有一个移动通信单元,它使用移动互联网 3G 与我的服务器通信。

场景一:当我使用 IP 地址创建 TCP 套接字并通过它发送数据时,发送的数据 100% 在服务器上接收。

场景 2:当我将 IP 地址替换为域名时,有时移动单元甚至无法建立连接,即使连接,有时从移动单元发送的数据也不会在服务器上接收到。

我想使用域名,因为它们会使设置更易于管理,我也尝试通过使用确认来实现可靠性,但它的开销太大。

问题是我如何使用域名并保持我的数据完整,进一步我会寻求一些解释,说明如何简单地从 IP 地址更改为域名会产生此类问题。

【问题讨论】:

    标签: sockets tcp dns routing network-programming


    【解决方案1】:

    使用 IP 地址和主机名作为目标的区别在于,在第二种情况下,需要首先使用 DNS 将名称解析为 IP 地址。在某些地方,DNS 查询不会返回真实的 IP 地址。这通常是 WLAN 热点中的捕获门户的情况,但也可能是其他类型的流量拦截。因为您的应用程序会连接到错误的 IP 地址,所以数据不会到达您的服务器,而是到达其他主机。

    ..我怎样才能使用域名并保持我的数据完整..

    您可能需要向您的应用程序添加某种身份验证,以便在发送任何敏感数据之前确保您正在与正确的主机通信。这样你至少会注意到你连接到了错误的主机。

    【讨论】:

    • 假设我实现了某种身份验证机制,大多数时候我发现我的移动设备无法连接到正确的服务器,那么我该如何解决寻找下次服务器正确吗?
    • @anand:下次重新连接主机名,希望这次连接不被拦截,DNS返回真实IP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多