Questions tagged «network-protocols»

1
在什么情况下TCP-over-TCP的性能要比单独使用TCP的性能差很多(2014年)?
许多管理员(在ServerFault和其他地方)一直保持不变,例如,在VPN中,TCP-over-TCP是多么糟糕的想法。即使不是TCP崩溃,即使是最轻微的数据包丢失也将使至少遭受严重的吞吐量下降,因此必须严格避免TCP-over-TCP。这可能曾经是真的,例如2001 年撰写本文时仍在引用。 但是从那以后,我们看到了技术和协议的重大进步。如今,几乎在所有地方都实现了“选择性ACK”,摩尔定律为我们提供了更多的存储空间,随之而来的是为千兆位上行链路优化的大型TCP缓冲区。如今,在非无线电链路上,数据包丢失也不再是问题。所有这些都可以大大缓解TCP-over-TCP问题,不是吗? 请注意,在现实世界中,例如,基于TCP的VPN比基于UDP / ESP的VPN更易于实现和操作(请参阅下文)。因此我的问题是: 在什么情况下(链路数据包丢失和等待时间),TCP-over-TCP的性能要比单独的TCP差很多,假设SACK支持并且两端的TCP缓冲区大小合适。 太棒了,因此请查看一些测量结果,以显示(外部连接)数据包丢失/延迟与(内部连接)吞吐量/抖动之间的相关性-对于TCP-over-TCP和TCP / TCP。我找到了这篇有趣的文章,但它似乎只关心延迟,而不是解决(外部)数据包丢失。 另外:是否有建议的设置(例如TCP选项,缓冲区设置,减少MTU / MSS等)以缩小TCP和TCP-over-TCP之间的性能差距? 更新:我们的理由。 在某些实际情况下,这个问题仍然非常重要。例如,我们在大型建筑物中部署嵌入式设备,这些设备收集传感器数据并将其通过VPN馈入我们的平台。我们面临的问题是防火墙和配置不当的上行链路(不受我们控制),加上IT部门的不情愿。请参阅此处讨论的详细示例。 在很多情况下,从非TCP切换到基于TCP的VPN(如果像我们这样使用OpenVPN则非常容易)是一种快速解决方案,可让我们规避艰难的指责之战。例如,通常通常允许使用TCP端口443(至少通过代理),或者我们可以通过简单地减少TCP的MSS选项来克服Path-MTU问题。 最好知道在什么情况下基于TCP的VPN可以被认为是可行的选择,因此我们可以做出明智的决定,胜过任何一种选择的利弊。例如,我们知道非无线链路上可以使用TCP-VPN,但是在3G上行链路上确实有相当一部分远程客户端,但丢包率很高且延迟很高-TCP-VPN在那里将如何执行? 我试图相应地改善标题和核心问题。我希望这是有道理的。


2
带有问号图标的IIS 7.5 Globe
我在IIS 7.5中将“物理路径”更改为我的网站,并将图标更改为此: 在我改变那完全是香草。我找不到有关该图标含义的任何文档,并且工具提示仅显示“默认网站(多种协议)”,这是不正确的,因为http是我在高级设置中唯一启用的协议。 这是我的绑定: 任何人都知道该爆炸图标的含义以及如何解决此问题?或者,这甚至是我需要关注的事情吗?谢谢。:)


5
了解IP地址和位置
我冒着在这里提出一个格式错误的问题的风险,但我会旋转一下。 它通常站在原因,较近的IP地址,一个是IP地址B 数值,然后较近的IP地址,一个是IP地址B 地理位置? 无论您有什么感觉,如果您可以向我提出一些与此有关的良好阅读材料,那将是最有帮助的。

2
为什么将ICMP归类为第3层协议?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 ICMP在OSI模型中被归类为第3层协议,但据我所知,它不符合网络层协议的定义。 它不提供寻址或数据包路由(为此它使用IP),因此它所做的只是将信息从一个节点发送到另一个节点,例如传输协议。那么,既然如此,为什么将ICMP归类为第3层协议?

6
UDP中的MTU如何为65535,但以太网不允许帧大小超过1500字节
我正在使用100 Mbps的快速以太网,其帧大小小于1500字节(根据我的教科书,有效负载为1472字节)。这样,我能够发送和接收消息大小为65507字节的UDP数据包,这意味着数据包大小为65507 + 20(IP报头)+ 8(UDP报头)= 65535。 如果帧的有效负载大小本身最大为1472字节(根据我的教科书),那么IP的数据包大小如何大于此处的65535? 我使用发件人代码作为 char buffer[100000]; for (int i = 1; i < 100000; i++) { int len = send (socket_id, buffer, i); printf("%d\n", len); } 接收方代码为 while (len = recv (socket_id, buffer, 100000)) { printf("%d\n". len); } 我观察到send returns -1上i > 65507和recv打印或接收的分组maximum of length 65507。

3
如何找到我网络中所有启用了snmp的设备?
我想找到我网络中所有启用了snmp的设备,我得到了类似在代理和管理器体系结构中的工作方式的信息。 我有net-snmp库来创建一个简单的应用程序,以从远程设备获取snmp数据。我必须编写一个程序来执行此操作,我需要设备的mac地址和更多信息。 我有从远程节点获取数据的程序,但是我有一个疑问,如何获取系统的mac地址,以及获取设备的mac的oid是什么, 是否有任何通用oid并非特定于供应商的。我必须获取所有设备的数据。 一些更新: 现在使用snmp工具snmpwalk我可以获得可能的信息,但是我想获得其中一些系统信息,mac,os名称(如果可用),但是我如何使用net-snmp进行编程以获取这些信息,因为我不知道哪个系统使用通用的oid名称会来。我想编写一个程序,我必须获取一些必需的信息,因此我需要oid,我必须将此oid赋予net-Snmp函数,以便它给出我的核心响应结果。 我必须使用像sysName这样的字符串名称来获取系统名称,如果是这样,则在mac地址的情况下,写入“ ifPhysAddress.2”,然后提到mac(在snmpwalk的结果中)。因此,oid是什么获取Mac,因为所有设备都不同。 当我使用snmpwalk时,我得到如下一行 SNMPv2-SMI :: mib-2.25.3.2.1.3.1 = STRING:“ HP LaserJet Professional P1606dn” 这是打印机的名称。表示此oid用于获取打印机的名称(mib-2.25.3.2.1.3.1)。是否对所有设备都是如此,这意味着如果我查询该oid,我将获得对应IP的设备名称,无论该设备可能是什么。是否正确。 请给点想法。 谢谢
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.