网卡的基本模块和工作原理

1.网卡的基本结构

网卡包含7个功能模块,分别是CU(Control Unit,控制单元)、OB(Output Buffer,输出缓存)、IB(Input Buffer,输入缓存)、LC(Line Coder,线路编码器)、LD(Line Decoder,线路解码器)、TX(Transmitter,发射器)、RX(Receiver,接收器)。

2.网卡信息的发送

2.1 计算机的应用软件会产生等待发送的原始数据,这些数据经过TCP/IP模型的应用层、传输层、网络层处理后,得到一个一个的数据包(Packet)。然后,网络层会将这些数据包逐个下传给网卡的CU。

2.2 CU 从网络层哪里接收到数据包之后,会将每个数据包封装成帧(Frame)。在以太网中封装的数据帧为以太帧(Ethernet Frame)。然后CU单元会将这些帧逐个传递给OB。

2.3 OB从CU哪里接收到帧以后,会按帧的接收顺序将这些帧排成一个队列,然后将队列中的帧逐个传递给LC。先从CU哪里接收的帧会先传给LC。

2.4 LC从OB哪里接收到帧之后,会对这些帧进行线路编码。从逻辑上讲,一个帧就是一个长度有限的一串“0”和“1”。OB中的“0”和“1”所对应的物理量(指电平、电流、电荷等)只适合于待在缓存之中,而不适合于在线路上进行传输。LC的作用就是将这些“0”和“1”所对应的物理量转换成适合于在线路上进行传输的物理信号,并将物理信号传递给TX。

2.5 TX从LC哪里接收到物理信号之后,会对物理信号的功率等特性进行调整,然后将调整后的物理信号通过线路发送出去。

3.网卡信息的接收

3.1 RX从传输介质(例如双绞线)哪里接收到物理信号(指电压/电流波形等),然后对物理信号的功率特性进行调整,再将调整后的物理信号传递给LD。

3.2 LD会对来自RX的物理信号进行线路解码。线路解码:就是从物理信号中识别出逻辑上的“0”和“1”,并将这些“0”和“1”重新表达为适合于待在缓存中的物理量(指电平、电流、电荷等),然后将这些“0”和“1”以帧为单位逐渐传递给IB。

3.3 IB从LD哪里接收到帧以后,会按照帧的接收顺序将这些帧逐渐排列成一个队列,然后将队列中的帧逐个传递给CU,先从LD哪里接收的帧会先传给CU。

3.4 CU从IB哪里接收到帧以后,会对帧进行分析和处理,一个帧的处理结果有且只有两种可能:直接将这个帧丢弃,或者将这个帧的帧头和帧尾丢弃,得到数据包,然后将数据包上传给TCP/IP模型的网络层。

3.5 从CU上传到网络层的数据包会经过网络层、传输层、应用层逐层处理,处理后的数据被送达给应用软件使用。当然,数据也可能会在某一层的处理中提前丢失了,从而无法到达给应用软件。

原创文章 103 获赞 158 访问量 8万+

猜你喜欢

转载自blog.csdn.net/csdnxmj/article/details/103753383