网卡的一些知识

Tags: 系统设计 

摘要

在做网络相关的工作时, 经常遇到关于网卡的内容。但是一直没有找到很系统的介绍资料。

网卡, 英文名: network interface controller, 所以经常用简称NIC表示。

产品资料

Intel

在Intel中国站上, “菜单->因特尔产品->以太网产品->英特尔以太网控制器”中可以看到Intel网络产品信息。

Intel-network-adapters-10G

Intel-network-adapters-1G

Intel-ethernet-controllers

吐槽一下,Intel的网站实在是乱七八糟!不同地区的主页安排不一致, 想要的信息找不到,或者同样的信息分布各个地方….

可以从Intel的Network Support页面进入到对每个产品的支持页面。

以XL710为例:

可以从XL710的产品页面进入到 产品支持页面, 然后点击进入 XL710的支持页面, 然后到从Document&Guides栏目进入到 XL710的文档页

XL710的文档页的General Installation&Configuration中可以下载到 Intel Ethernet User Guides, 其中的Adapter User Guide中对各种高级特性做了介绍..总算找到了…

产品类型

网卡也在不断的演进、发展。个人感觉其演进趋势是越来越复杂, 一些功能或新的想法用软件上的实现进了验证之后, 会被逐渐的迁移到网卡中。

在计算机系统中网卡扮演的角色会越来越多, 承担的任务越来越重。

1/10/40G

根据网卡的性能可以分为1G、10G和40G的网卡,以及自适应的网卡等。

Intel XL710 10/40GbE

Converged Network Adapter(CNA)

Converged Network Adapter的定义:

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系列的官方文档获取方式参考”产品资料->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:

Intel网卡驱动配置项

Advanced driver setting for Intel Ethernet 10 Gigabit Server Adapters

网卡特性

接收队列/发送队列

网卡有多个接收队列/发送队列.

每个接收/发送队列绑定一个中断号, 由指定CPU处理, 将中断均分到CPU上.

Linux Kernel 2.6.21开始支持多队列特性.

Rsceive Side Scaling (RSS)

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进行处理。

Data Center Bridging (DCB)

http://en.wikipedia.org/wiki/Data_center_bridging

DCB是对以太网协议的扩充, 用于在数据中等环境下, 降低丢帧率、对带宽进行细粒度控制

IP校验

网卡完成对IP报文的校验

VLAN处理

由网卡完成对VLAN头的处理

VMDq

http://www.intel.cn/content/www/cn/zh/network-adapters/gigabit-network-adapters/io-acceleration-technology-vmdq.html

虚拟设备队列, 接管VM数据流量


系统设计

  1. Netflix 的异地多活设计: Active-Active for Multi-Regional Resiliency
  2. Facebook 的缓存系统实践经验《Scaling Memcache at Facebook》
  3. 多机数据系统的正确性与一致性
  4. 《大型网站技术架构: 核心原理与案例分析》阅读摘录
  5. 《分布式金融架构课》阅读笔记2: 线性一致的分布式数据系统的实现过程
  6. 《分布式金融架构课》阅读笔记1: 单机&多机并发/多副本读写正确性和一致性
  7. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  8. 《消息队列高手课》阅读笔记: Rabbit/Rocket/Kafka/模型/消息事务/保序等
  9. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  10. 《Redis核心技术与实践》阅读笔记: 数据类型/存储开销/Rehash/案例等
  11. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  12. 《高并发系统设计40问》阅读笔记: 数据库/缓存/消息队列/分布式服务
  13. 《MySQL实战45讲》阅读笔记: 索引类型/数据可靠性/事务/间隙锁/临时表等
  14. 系统性能分析方法论: 统计图谱工具
  15. 张磊《深入剖析Kubernetes》专栏的阅读笔记
  16. 代理服务软件haproxy、nginx、envoy对比,以及开源的API网关项目对比
  17. 蓝绿部署、金丝雀发布(灰度发布)、A/B测试的准确定义
  18. 阿里巴巴的应用限流和服务降级是怎样实现的?|如何打造平台稳定能力
  19. 陈皓《左耳听风》专栏的阅读笔记(持续更新)
  20. 好雨云帮,一款不错的国产开源PaaS
  21. 怎样为软件的不同版本命名?
  22. 怎样选择开源项目的license?
  23. Glusterfs的架构
  24. 怎样设计一个企业级的PaaS平台?
  25. 几种常见的LDAP系统
  26. DNS SRV介绍(一种用DNS做服务发现的方法)
  27. DNS,DNS-Domain Name System
  28. 思科的网络设备
  29. 虚拟化技术汇总
  30. 认证与授权系统的汇总
  31. 高可用实现方法汇总
  32. 编译器汇总
  33. Linux系统的优化方法
  34. CentOS7的一些变化
  35. 分布式系统的一些知识
  36. 计算机编程语言的特性汇总
  37. 网络通信的一些基础知识
  38. PCIE总线的一些知识
  39. 操作系统的API
  40. 网卡的一些知识
  41. Linux系统的构建过程
  42. 数据结构与算法
  43. CPU的相关知识

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球