首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >专用网(如在IPv4中)问题

专用网(如在IPv4中)问题
EN

Stack Overflow用户
提问于 2009-11-06 08:03:12
回答 5查看 250关注 0票数 0

我正在开发一个嵌入式TCP/IP4栈和HTTP/SNMP/SMTP。它在功能上可以工作,但我想让它在局域网上工作得更快。由于Nagle的算法和延迟的TCP,HTTP应用程序在局域网上的工作速度似乎很慢。

http://en.wikipedia.org/wiki/IPv4#Private_networks上可以看出,有3种不同的私有网络具有不同的比特块值.

我要做的是:

  1. 我将首先通过查看我自己的IP
  2. 来确定我是局域网成员我将查看dst_ip并检查它是否属于me

相同的局域网

这些是否足以证明我和对方属于同一个局域网?

然后,当然,我将使用一个简单的黑客,如发送相同的数据包两次,以加快沟通。我已经测试过它了,但它现在是可选的。我想把它变成内置功能。

提前谢谢..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-11-06 09:56:23

您需要检查您的子网掩码,以确定目标IPv4地址是否与您所在的网络相同。只有具有相同前缀的地址才能肯定地共享同一个网络。

例如,如果IP地址为10.2.3.87,子网掩码为/26,这意味着10.2.3.64和10.2.3.127之间的地址与您所在的子网相同,因为它们都将使用相同的前缀10.2.3.64。/26子网掩码为255.255.255.192。

当然,您将以二进制方式完成所有这些操作,这样您就不会检查地址是否介于min和最大值之间,而是使用子网掩码来获取地址和目标地址的前缀,然后检查它们是否相等。

二进制数:

代码语言:javascript
复制
10.2.3.87       00001010 00000010 00000011 01010111
10.2.3.64       00001010 00000010 00000011 01000000
255.255.255.192 11111111 11111111 11111111 11000000

如您所见,和掩码有26位(/26),因此当应用子网掩码时,两个IP地址共享相同的前缀。

其他子网驻留在同一个LAN广播域是可能的,但并不常见,因此在奇怪的情况下,您的性能技巧将无法工作。如果您使用子网掩码来识别目标IP地址的接近性,那么您可能不需要担心RFC 1918私有地址。

票数 2
EN

Stack Overflow用户

发布于 2009-11-06 08:17:14

只要您确信没有人使用VPN连接,您可能是相当安全的。然而,通过VPN连接连接的计算机将(至少通常)具有一个本地的IP地址,即使它们的连接可能具有相当(甚至极)高的延迟。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 10:04:23

检测“低延迟”连接可能比检测"LAN连接“更健壮。

也许您的应用程序/堆栈可以以某种方式度量延迟,然后切换到替代算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1686101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档