在做网络相关的工作时, 经常遇到关于网卡的内容。但是一直没有找到很系统的介绍资料。
网卡, 英文名: network interface controller, 所以经常用简称NIC表示。
在Intel中国站上, “菜单->因特尔产品->以太网产品->英特尔以太网控制器”中可以看到Intel网络产品信息。
吐槽一下,Intel的网站实在是乱七八糟!不同地区的主页安排不一致, 想要的信息找不到,或者同样的信息分布各个地方….
可以从Intel的Network Support页面进入到对每个产品的支持页面。
以XL710为例:
可以从XL710的产品页面进入到 产品支持页面, 然后点击进入 XL710的支持页面, 然后到从Document&Guides栏目进入到 XL710的文档页
在XL710的文档页的General Installation&Configuration中可以下载到 Intel Ethernet User Guides, 其中的Adapter User Guide中对各种高级特性做了介绍..总算找到了…
网卡也在不断的演进、发展。个人感觉其演进趋势是越来越复杂, 一些功能或新的想法用软件上的实现进了验证之后, 会被逐渐的迁移到网卡中。
在计算机系统中网卡扮演的角色会越来越多, 承担的任务越来越重。
根据网卡的性能可以分为1G、10G和40G的网卡,以及自适应的网卡等。
A converged network adapter (CNA) is a single network interface card (NIC) that
contains both a Fibre Channel (FC) host bus adapter (HBA) and a TCP/IP Ethernet NIC.
当一台服务器同时需要通过Fibre Channel连接到存储和普通的Ethernet连接时, 使用CNA和Converged Switch, 可以节省线缆、端口、PCI插槽, 以及方便管理。
在Windows中在网络连接的右键菜单中选择属性->配置->高级, 可以看到大量的配置属性。我们的目的就是要了解这些属性的含义和背后的技术。
在Linux中可以通过命令ethtool查看、修改网卡参数。man ethtool
Intel系列的官方文档获取方式参考”产品资料->Intel”中XL710资料查找的例子, 下面的特性都是从Adapter_User_Guide中获得的。
Jumbo Frames:
巨帧, 设置巨帧时需要考虑巨帧在网络环境的传递路线是通的。例如交换机支持巨帧,才能将巨帧转发出去, 接收支持巨帧,才能使巨帧被接收。
Advanced Network Services Teaming(ANS):
将多个网卡组合起来使用, 进行容错或者负载均衡
Virtual LANs:
Power Mangement:
可以在适当时候关闭网卡电源
Quality of Service:
Microsoft Hyper-V Overview:
Network Virtualization using Generic Routing Encapsulation(NVGRE)
Intel Active Management Technology:
通过网卡远程管理机器。
Locally Administered Address(LAA):
修改MAC地址
Low Latency Interrupts(LLI):
提高对报文的中断响应速度
Direct Cache Access(DCA):
Network Controller推动CPU将报文预取到cache中, 减少了内存访问、CPU负载
Direct Memory Access(DMA) Coalescing:
网卡通过DMA的方式直接将报文写入到内存中, 通过设置聚合值, 可以使网卡在聚集了一定数量的报文在进行DMA传送
通过设置合适的值平衡电源消耗和网络延迟
Receive Side Scaling:
所有的CPU核共同参与对接收到的数据的处理。
Thermal Monitoring:
当网卡控制器过热时,自动降低链路速度
Simple Network Management Protocol:
IP Security Offloading:
IPMI Manageability:
Advanced driver setting for Intel Ethernet 10 Gigabit Server Adapters
网卡有多个接收队列/发送队列.
每个接收/发送队列绑定一个中断号, 由指定CPU处理, 将中断均分到CPU上.
Linux Kernel 2.6.21开始支持多队列特性.
http://www.intel.com/support/network/adapter/pro100/sb/cs-027574.htm
http://msdn.microsoft.com/zh-cn/library/ff556942.aspx
RSS技术将网络报文分布到多个CPU上处理,均衡CPU的负担。使用Hash算法计算出报文应当由哪个CPU进行处理。
http://en.wikipedia.org/wiki/Data_center_bridging
DCB是对以太网协议的扩充, 用于在数据中等环境下, 降低丢帧率、对带宽进行细粒度控制
网卡完成对IP报文的校验
由网卡完成对VLAN头的处理
虚拟设备队列, 接管VM数据流量