通通透透看网卡 张磊 王寒晖 2001年 1期 网络接口卡(Network Interface Card)简称网卡(NIC)。它是计算机网络中必不可少的基本设备,它为计算机之间的数据通讯提供物理连接。每一台计算机一旦接入网络必定需要安装网卡。绝大多数情况下,网卡都是安装在计算机主板的扩展插槽上,有极少部分通过计算机的其他接口例如PCMCIA来安装。内置的网卡可以用于PC,MAC以及图形工作站等不同类型计算机系统。外置的网卡通常用于笔记本电脑,还有一些就直接集成安装在计算机的主板上,不需要另外安装。   #1 网卡的分类    网卡经过这几年的发展,产品已走向成熟。鉴于市面上的网卡种类较多,当然性能差异也较大,所以我们现在先将它们分分类。    按照网卡所支持的总线接口不同,可分为ISA网卡、PCI网卡和USB网卡,我们经常见到的是ISA网卡和PCI网卡,但PCI网卡趋于主流地位。ISA网卡的带宽一般为10Mbps,PCI总线网卡的带宽从10Mbps到1000Mbps都有。    按照网络结构又可以分为ATM网卡,Token Ring令牌环网卡,Ethernet以太网卡(也就是我们通常说的也是最常见的局域网卡)。    按照网卡所支持的带宽不同,可分为:10Mbps网卡、100Mbps网卡和1000Mbps网卡。目前市面上最常见的网卡有10Mbps ISA网卡、10Mbps PCI网卡、10Mbps/100Mbps PCI自适应网卡。对于通常的文件共享等应用来说,10Mbps网卡就已经足够了,但对于将来网络上的语音和视频等应用来说,100Mbps网卡将更利于实时应用的传输。1000Mbps网卡主要适用于大数据量的网络,这种网卡多用于服务器与交换机之间的连接,以提高整体系统的响应速率。10Mbps/100Mbps自适应网卡是网络由10Mbps向100Mbps过渡过程中首选的网络设备,因为10Mbps/100Mbps自适应网卡可以自动识别与远端网络设备(集线器或交换机),不需要人为进行设定就可以自动工作于10Mbps或者100Mbps带宽下。   #1 网卡是如何工作的    网卡所完成的工作就是从计算机获得数据,然后把数据编码成为特定格式通过网络连接线(网线)发送到网络中其他的网卡上,当另一端的网卡接受到这些数据,它又把特定格式的数据转换为计算机理解的数据格式交给计算机处理。    网卡完整的工作过程一般包括八个子过程:1.与宿主(计算机)通讯;2.数据缓存;3.数据帧格式化;4.并行数据-串行数据转换;5.数据调制编码和解码;6.网线通讯;7.信号握手;8.数据传送和接收。下面我们就一次介绍各个过程。   #2 1.与宿主(计算机)通讯    网卡首先需要能与计算机进行数据交流,把计算机存储器内的数据移动到网卡上,网卡可使用的方式包括:I/O(计算机输入/输出系统),DMA(直接内存访问),共享内存。    I/O方式是最简单的方法,它包括两种重要的模式:内存映射、编程I/O。在内存映射模式下,计算机CPU指定一部分内存空间通过BIOS管理并提供给I/O设备使用,这里这个I/O设备就是网卡,当CPU需要数据的时候,直接访问该部分内存就可以。编程I/O,是CPU提供一组特别指令来控制管理I/O系统,这组指令可以是芯片内置,也可以通过程序来提供,当网卡向CPU发送数据请求时,CPU通过指令向内存获取所需数据,这种方式速度有些慢。    DMA是另外一种方式,所有Intel结构的计算机都集成有DMA控制芯片来直接管理内存和I/O设备之间的数据传送,CPU并不参与运算管理,当网卡向CPU发送数据请求时,CPU记录内存地址的变化后直接将这个请求转发给DMA控制系统。这种方式比I/O方式速度快。    共享内存方式是由网卡芯片直接控制一部分内存,这是最快的一种方式,因为计算机和网卡的数据都存放在内存中,数据不需要通过CPU或者DMA控制器来管理和移动,只需根据需要读写即可。由于这种方式速度非常快,通常把数据缓存子过程也省略了。   #2 2.数据缓存    由于计算机内部各个设备速度不相等,有可能造成需要传送的数据还不完整就传送,所以这个过程就是把需要发送(接收)的数据临时统一存储管理起来,当数据完整以后一并传送,以提高数据完整性和工作效率。   #2 3.数据帧格式化    这是网卡工作中最重要的一个过程。帧是网卡数据传送的基本单位,一个文件在传送过程中要分为许多帧,接收时又把这些帧拼合成为一个文件。一个帧分为三段:头段,数据段,尾段。头段包括传送过程中的接收提示信号,目的地址等,数据段包含数据,尾段包括数据错误校验(CRC),接收方收到数据后使用CRC校验算法检查数据正确性,发现错误则返回发送方要求重新发送。网卡在这个过程中把需要传送的数据参考网络速度把数据格式化分帧。   #2 4.并行数据──串行数据转换    数据从计算机传到网卡时依据总线宽度是一种并行数据格式,同一时间包括8、16、32或者64位的数据,但是在网线中需要以串行方式(同一时间只能有8、16、32或64位的数据)传送,这个过程就是完成它们之间的转换。   #2 5.数据调制编码和解码    由于网线电气特性,数字信号需要通过调制编码为模拟信号后才能传送,这个过程就是把处理好的数据帧包调制编码后在网线中传送,并把接收到的模拟信号解调解码成为数字型号发给计算机。通常使用CSMA/CD调制解调方式和Manchester编码。   #2 6.网线通讯    这个过程将检测网线连接状态和是否发生数据并发冲突,检测机制通常固化在网卡主控制芯片上。   #2 7.信号握手    当两片网卡通讯时,发送方将把信号的帧包大小、数量等参数通知接收方,接收方收到参数后调整好工作方式通知发送方开始发送数据,这个过程就是握手。   #2 8.数据传送和接收。    以上过程完成以后,实际需要传送的数据就开始传送和接收。   #1 网卡的内部构造    现在带领大家看看最常见的PCI以太网卡的构造(如^01050401a^)    主控制编码芯片:它控制着进出网卡的数据流。PCI网卡的主控芯片,数据可以直接从网卡传给计算机,不必经过I/O口,也不必经过CPU,能有效减低系统的负担。有些智能网卡上还自带处理器或带有专门设计的AISC芯片,可承担CPU承担的一部分任务,因而即使在网络信息流量很大时,也极少占用计算机的内存和CPU时间。    调控元件:它的作用是用来发送和接收中断请求(IRQ)信号的。它是一个黑色的小方块,毫不起眼,不过大家可别小看它的作用。当信号要发送出去的时候,它会先给数据泵一个指令,然后才传出去。当外边有信号进来的时候,它会发一个指令给主控芯片。当遇到信号繁忙的时候,它会调节数据流,起到指挥数据正常流动的作用。    BootROM插槽:把BootROM芯片插上以后,就可以实现无盘启动功能,BootROM芯片就像BIOS芯片一样是一块只读存储器,里面存放了网络启动的程序,根据网络操作系统不同分为Novell和Windows NT的BootROM。    指示灯:用来指示网卡的工作状态,便于了解其工作状态和诊断故障。通常配置有电源指示、发送指示(Tx)、接收指示(Rx),有些较好的网卡中还配有链路状态指示(Link)、超长指示(Jabber)和碰撞(Collision)指示等指示灯。   #1 网卡的接口类型    由于以太网的传输介质并不统一,使得网卡的网络接口有点复杂,其接口主要有RJ-45接口(双绞线接口)、BNC接口(细缆接口)和AUI接口(粗缆接口)。不同的接口决定了网卡与什么样的电缆相连接,所以它与网络布线形式密切相关。大家在选购网卡的时修,一定要注意网卡所支持的接口类型是否与网络相对应。RJ-45接口(如^01050401b^)是一个8针的收发器,这个接口看上去有点像家里插接电话线的接口,网卡是通过双绞线将电脑串联到集线器进行网络连接的。BNC(Bayonet Nut Connector同轴电缆接插件)(如^01050401c^)的接口一种用于同轴电缆的连接器,网卡是通过同轴电缆直接与其它电脑相并联的。AUI(Attachment Unit Interface连接单元接口)是以太网上通过15针的收发器(如^01050401d^)连接同轴电缆与网卡的标准接口。市面上常见网卡主要有单RJ-45接口、单BNC接口、TPC接口(RJ45+BNC),TPO接口(RJ45+AUI),Combo接口(RJ45+AUI+BNC)和TP接口(BNC+AUI)。带有AUI粗缆接口的网卡较少,现在使用BNC接口的人也很少了,RJ-45是目前的主流接口。