令人迷糊的网络技术概念

来源:互联网 发布:软件项目质量计划书 编辑:程序博客网 时间:2024/05/01 18:24

分组、数据报、数据包、包、报文、数据报文、消息,在看书时在同一页同时出现了数据报和数据包,你是不是迷糊了呢?

先从数据交换技术讲起。

电路交换(circuit switching),简单来说就是通过一条实际的物理电路连接来进行数据传送。所谓实际的物理电路连接,就是说,在数据开始传送到传送结束,发送方A和接收方C之间任一时刻都有一条实实在在的连接在一起的电路,并且这一条电路是专用的不会用作它用的。

电路交换有其缺点,于是产生了存储转发交换。假设我们要从A发送一堆数据给C,中间经过B,先把数据传到B存储起来,然后再从B转发到C,这堆数据就叫做message,五花八门的翻译有消息、报文、数据报、数据包等等。消息是直译过来的,在计算机技术里面很多地方都有message的说法,这个翻译还可以。报文呢?我们发送电报,叫“报”,它是一个完整的内容,我们写一篇文章,写一封书信,基本上都可统称“文”,因此我们可认为报文就是一个对于发送双方有意义的完整内容,例如一篇作文,一首mp3,一部电影,一个名单,一个密码等等。当然,在存储转发交换中可以把一部电影作为一个报文来传输,也可以把它分成100部分,每一部分作为一个报文来传输(报文的大小需要考虑其它的因素)。数据报、数据包在这里可认为是错误的翻译,当然,要是某一本书从头到尾都把我们这里讨论的message翻译成数据包,你也不能说它错了,怕就怕在,对同一个概念,它一会说报文,一会说数据包。

上面提到的存储转发交换把传送的数据作为一个整体来传输,是早期的做法(不妨称为报文交换),是有缺点的(这里不详细说),因此,需要把message分开来传输,这就是packet switching(翻译为分组交换,或者叫包交换)。message分开来称为packet(翻译为分组、数据包,或者干脆就叫做包)。分组交换有两种形式:virtual circuit(翻译为虚电路)和datagram(翻译为数据报)。虚电路就是在非专用的电路交换基础之上的分组交换,所谓非专用的电路交换就是说在暂时没有用到的那一段线路上可以暂时借给别人用用;而数据报方式就是化整为零各自作战(不展开说了)。

Frame,就是帧,这个就比较好理解了,就是packet分开成为若干个帧,再往下就是位。

总结:电路交换传输的是“数据”,存储转发分为早期的报文交换和分组交换,而分组交换又分为虚电路和数据报两种形式。存储转发中从应用层的角度来看的传送的一段有意义的数据,它是一个整体,称为message,一般翻译为消息或报文;把message拆开就成了packet,翻译为分组、数据包,或者干脆就叫做包;把packet拆开就成了frame帧,再拆开就是位。尤其要注意的是数据报是和虚电路一样的是一种分组交换概念,它和数据包完全不是一回事。