查看维基百科上的以太网条目,我无法弄清楚它是如何指示以太网帧的长度的。EtherType/Length 头字段显然可以指示帧类型或显式长度,我猜测在帧类型的情况下,它必须执行一些其他逻辑来确定数据包的长度。例如,如果 EtherType 字段为 0x0800,则表示 IPv4 有效负载,因此接收 NIC 必须检查有效负载的前 32 位以找到 IP 数据包的长度,从而计算出 IP 数据包的总长度以太网帧,并知道何时查找帧尾校验和和帧间间隙。
这听起来正确吗?我还查看了以太网的IEEE 802.3 规范(无论如何是第 1 部分),这似乎证实了这一点,但它非常不透明。
我们有一个系统,其千兆位以太网上的通信中断。网络上的流量负载会对 100Mb 网络造成轻微压力,但整个网络都有千兆位交换机、网卡和电缆 - 至少构建我们要插入的网络的客户是这么告诉我的。
我们通过 100baseT 集线器插入运行 Wireshark 的笔记本电脑,发现它报告了大量“以太网 II”数据包,其中原始数据显示为 ASCII 时基本上如下所示:
PUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
Run Code Online (Sandbox Code Playgroud)
很自然地,我立即将这个问题命名为“Network PUU”,随之而来的是许多笑声。我们都四十多岁了,但我想我们中的一些人永远不会长大(有罪!)
不管怎样,更严重的是,其他完全有效的数据包被这些数据损坏了。IPv4 标头被字节替换为U字节,并且存在数据损坏,这将导致软件拒绝数据,即使 IP 校验和没有失败匹配。我们非常确定这些涌入网络的数据导致了通信中断。我们不知道它可能来自哪里。
以前有人见过这种情况吗?你解决了吗?你知道它是从哪里来的吗?
====已编辑====
在原始描述中添加了对集线器的提及,因为从下面的评论来看,它是最有可能的腐败来源!我们用来尝试查找网络问题的工具似乎增加了一个新的、更严重的网络问题。
我找不到任何权威来源可以简明地解释网桥和交换机之间的区别。据我所知,大多数通常被称为“开关”的设备符合 IEEE 802.1D 标准定义的“桥”的描述。虽然设备可能既是网桥又是交换机(也许“交换机”是“网桥”的一个子集?),我只能找到差异的“手动”解释。我遇到的最常引用的差异归结为以下两个之一:
我对这些答案不满意,因为:
事实上,当我搜索IEEE 802.1D标准时,根本没有提到“开关”这个词。所以“桥”似乎是技术上正确的术语。然而,由于单词“开关”似乎更常用(由远)我不禁怀疑是否有是一些实际的差异化因素。或者这只是用不同的词来描述同一件事的情况?
特别感谢对来源的引用。
编辑:我应该补充一点,我完全意识到网桥与中继器不同的事实。
据我了解,10Gb 以太网卡能够每秒在(例如)光纤电缆上传输 10Gb。现在天真地,为了在硬件中发生这种情况,需要一个运行网卡的 10GHz 时钟。
通过在两个边缘上计时,可以将频率减半,但晶体管支持 5GHz 仍然非常高。对于 100Gb 以太网,50GHz 似乎完全不合理。
运行(例如)10Gb 以太网卡的时钟的时钟频率是多少?是否有技巧可以将这个频率从“天真的”10GHz 频率中降低?
几天来我一直在问我这个问题,经过一番搜索,我无法想出一个易于理解的答案,甚至没有一个在我脑海中有意义的理论答案。
我正在研究 Mac 托管解决方案,我想知道是否可以将 Thunderbolt 以太网卡添加到 Mac 并将它们绑定在 VLAN 中,从而半解决机器的带宽瓶颈,以提高对数据库或外部存储的访问速度.
例如:将两个以太网卡插入 Mac Mini,将它们绑定并具有 2 Gb/s 带宽的 VLAN。
假设我有两台需要超低延迟的服务器(数据库、文件等)。是否可以用 10GbE 直接连接两台服务器,所以每台服务器有 1 个(在现实世界中它会有 2 个)连接到“主”网络,但是 1 个网卡带有以太网电缆直接连接到第二个服务器,没有交换机或路由器,只是直接连接
Internet/Datacenter
|
|
|
|
|
|
|
--------------------
| |
------------| Switch |-----------
| | | |
| -------------------- |
| |
| |
| |
| |
| |
| |
| |
Network Card 1 (eth0) Network Card 1 (eth0)
| |
-------------------- --------------------
| | | |
| Server 1 | | Server 2 |
| | | |
-------------------- --------------------
| |
Network Card 2 (eth1) …Run Code Online (Sandbox Code Playgroud) 好的,我刚刚解决了几个 Xserve、Netgear GSM7224 和 Drobo B800i 之间的巨型帧问题。事实证明,Xserves(Mac OS X 10.6.8 服务器)和 Drobo B800i 接受 MTU(以字节为单位)正常预期(1500-9000),但 Netgear 似乎希望它包括各种以太网页眉/页脚(拖车) 我最终得到了 Xserves & Drobo 的 MTU 配置为 9000 和 Netgear 端口设置为 9216 的 MTU。
我使用以下命令通过 Netgear 测试和验证两个 Xserve 之间的 MTU(注意:这些是 Mac OS X 命令,Windows 和 Linux 的命令不同):
ping -D -s <mtu> <ip_address>
traceroute -F <ip_address> <mtu>
Run Code Online (Sandbox Code Playgroud)
前者的用法在man页面中注明为“指定要发送的数据字节数。默认为56,当与8字节的ICMP头数据组合时,转换为64个ICMP数据字节”。在测试中,我发现ping -D 1472 <ip_address>由于 8 字节的 ICMP 标头数据加上 20 字节的 IP 标头(请参阅此和此),to相当于 MTU 1500 。这一切都说得通。
现在,为什么是 9000 …
我有戴尔 Poweredge 服务器,其以太网端口内带有塑料阻挡器。我的问题是我不知道如何取出它。你可以在这里看到插头的照片:

我试着把它们拉出来,或者挤压然后拉,但它们不动。我在戴尔安装手册上找不到任何内容,所以它可能不是由戴尔提供的。
您是否看到过这种插头,并且知道如何将它们取出而不会破坏某些东西?
我从几天前就注意到出现了相同的重复消息,我可以肯定地说,在那段时间没有故意更改(安装/卸载)任何内容。
这是/var/log/kern.log消息的示例:
Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down
Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link is Down
Mar 30 06:33:18 aurora kernel: [566356.543664] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 30 11:05:47 aurora kernel: [582689.779752] e1000e: eth0 NIC Link is Down
Mar 30 …Run Code Online (Sandbox Code Playgroud) 我发现了一个接线板,它将以太网分成多个主机,如下所示。
谁能解释这可能是如何工作的?
