标签:传输层 buffer 以太帧 数据 个数 mamicode 双绞线 line receiver
网卡包含7个功能模块,分别是CU(Control Unit,控制单元)、OB(Output Buffer,输出缓存)、IB(Input Buffer,输入缓存)、LC(Line Coder,线路编码器)、LD(Line Decoder,线路解码器)、TX(Transmitter,发射器)、RX(Receiver,接收器)。
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.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上传到网络层的数据包会经过网络层、传输层、应用层逐层处理,处理后的数据被送达给应用软件使用。当然,数据也可能会在某一层的处理中提前丢失了,从而无法到达给应用软件。
标签:传输层 buffer 以太帧 数据 个数 mamicode 双绞线 line receiver
原文地址:https://www.cnblogs.com/winter-blogs/p/12003210.html