1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

数据在电脑内传输时,都经历了什么?

Discussion in '知乎日报' started by 漂亮的石头, 2016-10-06.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

    Joined:
    2012-02-10
    Messages:
    487,766
    Likes Received:
    47
    [​IMG] Patrick Zhang,电气工程师

    我们来看下图:

    [​IMG]

    先看图 1。

    图 1 中我们看到了左右两只晶体管。这两只晶体管均接成开关态,也即它们的工作点要么是截止,要么是饱和。当截止时,晶体管的输出是高电平;当饱和时,晶体管的输出是低电平。

    注意,这里的高电平电压很接近电源电压,而低电平则略高于低电压。为了方便,一般用电平来说明晶体管的输出,而不用电压值。

    我们看到两只晶体管中间的连线很长。这条线又被称为通信介质。

    我们看到,左边的晶体管输入为高电平时,右边的晶体管输出亦为高电平;左边的晶体管输入为低电平时,右边的晶体管输出亦为低电平。这就是通信的传递过程。

    再看图 2。

    图 2 中,我们看到了处于开关状态的晶体管符号——反相器。

    普通的反相器,若用于通信,则它每秒钟需要发生 9600 次的饱和截止(0/1)变化,叫做 9600bps。

    如果通信介质和接口中有九个针孔,我们把它叫做 DB9 接口,则它被称为串行通信总线;如果通信介质和接口中有 25 个针孔,我们把它叫做 DB25 接口,也即并行通信总线。

    过去,串行总线的通信速率低于并行总线。但现在改进了很多,并行总线反而到很少见到了。

    ISO 国际标准化组织对计算机通信建立了一个模型,这个模型被称为 ISO 的 OSI 模型(字母顺序正好反过来,有点通信的味道在里面)。OSI 模型的第一层叫做物理层,第二层叫做数据链路层,第三层叫做网络层。第一层、第二层和第三层合并被称为现场总线。

    我们来看下图:

    [​IMG]

    图中每一层所遵循的规范叫做通信协议。

    看下图:

    [​IMG]

    这张图中,我们看到了物理层的通信接口,并且看到了高电平和低电平。注意哦,这里的接口是用差分电路来驱动的,不再是简单的反相器。

    物理层的通信规约是字节。

    一个字节是 8 位二进制数,再加上奇偶校验位和停止位,则一个字节是 10 位二进制数。

    8 位二进制数换成十进制数是 256。所以一个字节可以传送 256 种不同的数值状态。

    物理层的上一层是数据链路层。在数据链路层里,把字节编码组合成为语句,叫做帧。见下图:

    [​IMG]

    这里的帧结构是:START 是起始字节,ADDRE 是地址字节,FUNCTION 是功能码字节,DATA 是数据字节,CRC 是校验码字节,END 是停止字节,最少也有 8 个字节。

    由于一个字节有 10 位,所以一个帧至少有 8X10=80 个位。

    如果某串行通信总线 1 秒钟可以传送 9600 个位,则它 1 秒钟可以传送 9600/80=120 个帧。

    在网络层,它把帧组织为分组报文:

    [​IMG]

    网络层再往上,就是高层协议了,这些协议中传递的都是报文。

    在游戏中,软件使用的是高层协议,与现场总线协议完全不同。

    阅读原文
     
Loading...