- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在研究嵌入式 TCP/IP4 堆栈和 HTTP/SNMP/SMTP 相关内容。它在功能上有效,但我想让它在 LAN 上更快地工作。由于 Nagle 算法和延迟的 TCP-ACK,即使在 LAN 上,HTTP 应用程序似乎也运行缓慢。
在http://en.wikipedia.org/wiki/IPv4#Private_networks上可以看出,有 3 个不同的专用网络,具有不同的位 block 值。
我要做的是:
这些是否足以证明我和对方属于同一个局域网?
当然,我会使用一个简单的 hack,比如将同一个数据包发送两次加快沟通。我已经测试过这个并且它有效但是它是现在可选。我想把它变成一个内置功能。</p>
提前致谢...
最佳答案
您需要检查您的子网掩码以了解目标 IPv4 地址是否与您在同一网络上。只有具有相同前缀的地址才能确定共享同一网络。
例如,如果您的 IP 地址是 10.2.3.87,您的子网掩码是/26,这意味着 10.2.3.64 和 10.2.3.127 之间的地址与您在同一子网中,因为它们都使用相同的前缀 10.2。 3.64./26 子网掩码是 255.255.255.192。
当然,您将以二进制方式执行所有这些操作,因此您不会检查以确保地址在最小值和最大值之间,而是使用子网掩码来获取地址前缀和目的地地址,然后检查它们是否相等。
二进制:
10.2.3.87 00001010 00000010 00000011 01010111
10.2.3.64 00001010 00000010 00000011 01000000
255.255.255.192 11111111 11111111 11111111 11000000
如您所见,AND 掩码有 26 个一位 (/26),因此在应用子网掩码时两个 IP 地址共享相同的前缀。
其他子网可能位于同一个 LAN 广播域中,但这种情况并不常见,因此在奇怪的情况下,您的性能技巧将不起作用。如果您使用子网掩码来识别目标 IP 地址的接近性,那么您可能无需担心 RFC 1918 私有(private)寻址。
关于network-programming - 专用网络(如 IPv4)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686101/
目前部署在 Kubernetes 中的服务,通过 Calico BGP 将 Service 与集群外网络打通,并在外部的 nginx 中配置 Service 地址对外进行服务暴露。经过一段时间的观察
如发现here , 有一种新的 kube 服务是 IPVS 并且有很多负载均衡算法。 唯一的问题是我没有找到指定这些算法的位置。 我的理解: rr:循环法->循环调用后端pod lc:最少连接-> 将
我想尝试这种新的代理模式以及它为我们的一些应用程序提供的各种调度程序。到目前为止,我一直无法找到更改默认模式的方法 iptables至 ipvs在 GKE 节点上。 每个人都说通过--proxy-mo
我想在现有集群中为 IPVS 启用 Kube-proxy 模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS? 我已经安装了所有必需的模块来启用它。另外,
我正在开发的应用程序作为 Kubernetes 集群中的部署运行。为此部署创建的 Pod 分布在集群中的各个节点上。我们的应用程序一次只能处理一个 TCP 连接,并且会拒绝进一步的连接。目前,我们使用
我是一名优秀的程序员,十分优秀!