浅谈网络线片

来源:互联网 发布:北电网络出售手机专利 编辑:程序博客网 时间:2024/05/01 01:58
互联网时代,人类的生活越来越离不开网络,从娱乐,工作,到生活服务等相关领域,无时无刻不需要数据与信息的传输。而网卡在这其中,一直扮演着重要的角色,无线网卡,独立网卡等等。

现如今,当你在餐厅点餐时,会发现服务员手中的PDA,正是通过无线网络传输着你order的信息;你在办公室的拐角处,发现公司早已将旧有的办公设备进行了更新,多功能的网络智能打印机。而这些设备中,都含有网络芯片,负责工作过程中数据的传输,它需要将数据转化为电信号发送出去,并将网线上的电信号解析成数据接收过来。从TCP/IP的协议分层的结构上看,网卡至少完成物理层的功能。而有的网络芯片,已经将物理层,数据链路层,网络层,传输层功能都包含在内。网卡可以起到过滤作用,只接受广播帧/组播帧或专门发往本机物理地址的数据帧,对本网络上的其余帧不予理会。

对于使用网卡的开发者来说,对网卡的物理结构,硬件检测机制和冲突退避

算法不需深究,主要要了解下相应的物理传输帧结构。根据组建的网络类型不同

(如以太网,令牌环网等)和使用的底层网络协议不同,帧结构也不相同。就常

用的以太网来说,也有Ethernet_II,IEEE 802.3,IEEE 802.2等协议。我们以IEEE

802.3数据帧来分析数据链路层和网卡的工作内容。

IEEE 802.3是电气和电子工程师协会(IEEE)制定的一种描述物理层和数据

链路层的实现方法的网络协议,主题是在多种物理媒体上以多种速率采用

CSMA/CD访问方式。其规定的帧结构如下:

以太网(802.3)帧结构

PR SD DASA LENGTH/TYPEDATA PAD FCS

56位 8位 48位 48位 16位 n ≤1500(字节)可选 32位

以太网(802.3)帧结构

FR(前导码):包括了7个字节的二进制“1”、“0”间隔的代码,即1010…10

共56位。当帧在链路上传输时,接收方就能建立起同步,因为这种“1”、“0”间

隔的传输波形为一个周期性方波。同时也指明了传输的速率(10M和100M的方

波频率不一样,所以100M网卡可以兼容10M网卡)。

SD(帧数据定界符):它是长度为1个字节的10101011二进制序列,此码

表示表示下面跟着的是真正的数据。

DA(目的地址):目的以太网的物理地址,由48位二进制组成(6个字节),

说明该帧传输给哪个网卡。如果地址为FFFFFFFFFFFF(广播地址),则该网络

上的所有网卡都能接收到本帧数据。这个地址和下面的SA就是我们常说的网卡

的MAC地址。具体信息我们待会介绍。

SA(源地址):48位,说明该帧的数据是哪个网卡发的,即发送端的网卡物

理地址(MAC)。

LENGTH/TYPE(长度/数据类型):指示后面的数据属于什么类型。如0800H

表示数据为IP包,0806H 表示数据为ARP包。这样,交给网络层后就可以由相

应的协议对后面的数据解析。如果这个字段小于0600H的值,则表示数据包的

长度,在单片机的网络编程中不考虑这种用法。

DATA(数据段):由网络层负责发送和解析的数据,因为以太网帧传输的数

据包最小不能小于64字节,最大不能超过1518字节。除去14字节为DA、SA、

TYPE以及4字节的FCS,DATA不能超过1500字节。如果不够46(64-18)

字节,余下的由PAD填充。

PAD(填充位):当DATA的数据不足46字节时,缺少的字节需要补上(可

补任意值)。

FCS(帧校验序列):由32位(4字节)循环冗余校检码(CRC)组成,其

校验范围不包括前导码FR及帧数据定界符SD。此序列由发送端网卡自动生成,

自动填充到帧的最后。一般情况下,接收端网卡对收到的数据校验后也不会将

FCS放到数据中上报。

由于网卡的自动管理,并且前导码FR和帧数据定界符SD的值是固定的,

也由网卡自动生成和插入。所以,网络层向网卡发送的数据或者网络层接收到的

数据一般是由DA、SA、TYPE和DATA组成(DATA不足46字节需要用PAD

补齐)。如表二。假如网络层的一个IP包要发送出去,首先要填充接收网卡的地

址和本网卡的地址(MAC地址),同时将TYPE填充成0800H,紧跟着就是发送

的数据。网卡获取到这些数据后会组成物理传输帧发送出去。

表3-2 网络层管理的帧结构

DA SA TYPE DATA PAD

48位 48位 16位 n ≤1500(字节) 可选

由以太网的帧结构知道,在数据链路层就需要使用MAC地址(即物理地

址)进行通讯,MAC地址是数据的第一道关卡,由硬件自动识别来接收。因此,

MAC地址就像是是网络设备的“身份证”一样,需要具有全球唯一性。我们在

实验室里做测试,可以修改MAC地址,但也应该保证本地网络里MAC的唯一

性。

以太网的MAC地址由48bit (6字节)组成,如08:02:10:3A:85:23就是一个

MAC地址。前24位(08:02:10)是由生产网卡的厂商向IEEE申请的厂商地址,

后24位(3A:85:23)是由厂家自己分配。每个厂商必须确保它所制造的每个以

太网设备都具有相同的前三个字节以及不同的后三个字节,这样就可保证世界上

每个以太网设备都具有唯一的MAC地址。网卡的MAC地址通常是由生产厂家

烧入网卡的EPROM中(NE2000系列网卡常用93C46,在网卡上可以找到)。

MAC地址又可以分成3类:

(1)广播地址:只能用作目的地址。如果一个以太网帧的目的地址是广播

地址,则网络中的所有设备都能接收和处理该帧。广播地址的每一位都是1,即:

FF:FF:FF:FF:FF:FF。

(2)组播地址:也只能用作目的地址。如果一个帧的目的地址是组播地址,

那么网络中预先定义的一组设备都能接收并处理该设备。以太网网MAC的最高

有效字节的最低位为1表示以太网帧是组播帧。如01:03:52:3A:85:23就是组播

地址。101的最低位为1。

(3)单机地址:除了广播和组播的地址就是单机地址,非广播和组播数据

包就要与这个地址匹配了才能被接收和处理。

如果大家还有任何疑问,可以给我们留言,或致电联系TEL: ( 86)-010-84539974转分机166,E-mail:wiznetbj@wiznettechnology.com