当我们浏览互联网或者工业控制系统的时候,我们想当然地认为网络可以发送并且同时从大量的数据源接收数据,这一切似乎都是理所当然的。但是事实并不一直是这样,直到我们有了数据包技术。
在数字计算的早期,设备通讯采用点对点的串行通讯方式。基本上www.cechina.cn,就是数据从设备A流到设备B控制工程网版权所有,像水流一样通过一条管道,管道的两端采用合适的阀门开启。这是一种非常原始的方式控制工程网版权所有,有很多局限。在那个时候这种方式是可以容忍的CONTROL ENGINEERING China版权所有,因为需要通讯的计算机数量很少。
到了20世纪60年代早期,计算机的数量开始越来越多,用于通讯的数据类型变得非常重要。当时为兰德公司工作的Paul Baran总结出,如果数据被分解成块,而不是采用连续流的形式,它就可以支持更加稳定的系统,通过通用网络连接更远更多的设备。这样做还有可能抵挡核攻击,在冷战时代这种担心并不是多余的。Baran提出的是一个具有远见并且充满想象力的系统,与现在的互联网有些类似。
数据包是什么?
让我们回到流水的比喻CONTROL ENGINEERING China版权所有,如果不是采用水管,而是把水装到瓶子里,你就可以把它送到任何地方。我们还可以把数据包比作信件,信写在纸上装在信封里然后送到邮局。
数据包就是一个具有特殊尺寸和结构的框架。它在开始和结尾的地方有抬头和尾注,用来识别是谁发送的数据、发送到哪里等等。中间是消息本身,或者载荷。对于给定类型的网络,载荷会有一个长度限制,因此太长的消息必须要分割成几个数据包。如果消息很短,那么数据包的其他部分也并不会因此缩短。不同的网络协议在细节处理方面会有所不同,但是基本的概念都是一致的。从发送到接收的传递过程中数据被压缩在数据包当中,到达之后再解压缩。
联网协议可以按照效率进行排名,或者也可以按照信息载荷量与总体数据包大小的比例。如果包含抬头、尾注和其他管理字符的数据包尺寸太大,这种协议就会被认为是无效的。有些人对以太网现场仪表通讯持有异议,就是因为管理字符太多,而设备生成的数据量又很少。
将较大数据分割成较小单元的一个好处,就是可以使用错误检查协议(例如循环冗余校验)来验证消息的准确性。基本上www.cechina.cn,给定数据包中消息内的所有信息都拥有附带的数值。协议将所有这些值相加,再除以另外一个数值的和,将计算的余数赋给这个消息。接收者会进行同样的计算,确认得到相同的余数值。如果没有,就可以知道数据包中包含消息的一部分数据遭到了破坏,然后将该数据包标注出来。
以太网应用
以太网通讯依赖于数据包,或者更典型的可以叫做帧。现在人们开发了很多变体,但是在一个完整的帧中主要还是包含七个部分:
• 序言(用于位同步);
• 帧起始定界符(SFD);
• MAC目标地址;
• MAC源地址;
• 长度或特定类型;
• 消息或数据的有效载荷;
• 帧校验序列(FCS)。
上述每一个元素的尺寸都是固定的,只有载荷除外。后者可以根据发送信息的情况变化,但是最大为1.5 kB。比如这篇文章,如果只采用文本格式的话,大约需要三个数据包传输。
随着技术的进步,很难想象过去使用的技术可以发展得如此多种多样,而我们还可以将它应用在如此多的领域。