网络传输工作原理的通俗理解

来源:互联网 发布:政府网络舆情监控 编辑:程序博客网 时间:2024/05/29 23:22

本文结合生活中的实例,说明网络传输的基本原理

 

我们以甲对乙表达“大家好!”为例。

甲乙两人一个只会讲中文,一个只会讲法文,两人如何交流呢?我们把不同层次的翻译当做通信协议的实现来看。

网络层次图:

 

甲(讲中文)               乙(讲法文)

<英语翻译协议>             <英语翻译协议>

<英语单词分解协议>                   <英语单词传输协议>

<字母传输协议>----------真正的网络传输-------><字母传输翻译>

 

网络传输的过程是这样的:

1.         甲对自己的甲的英语翻译说:“大家好!”

2.         甲的英语翻译把中文译成英语:“Hello every one!”并转给甲的单词分解层。

3.         甲的单词分解层将句子分解成一串单词:“Hello”“空格”“every”“空格”“one”“!”并发给甲的字母分解层

4.         甲的字母分解层把单词分解成单个字母:“H”,“e”“l”“l”“o”“空格”“e”“v”“e”“r”“y”“空格”“o”“n”“e”“!

5.         然后甲方字母分解层才真正通过网络把字母发送到乙方字母分解层那里。

6.         乙方字母分解层读到一串字符:“H”,“e”“l”“l”“o”“空格”“e”“v”“e”“r”“y”“空格”“o”“n”“e”“!”并组成单词转给乙方的单词分解层。

7.         乙方单词分解层将单词串:“Hello”“空格”“every”“空格”“one”“!”组合成一句英文发给乙方的英文翻译。

8.         乙方的英语翻译得到一句英文:“Hello every one!”并翻译成法文转给乙。

9.         乙方看到法文明白了甲方的意思。

 

反过来乙方要对甲方说的话也是如此,只不过最后甲看到到是中文。

这就是网络通信和协议分层的基本原理。对于甲和乙来讲,他们看不到单词翻译和字母翻译,所以他们好象直接在通过翻译对话一样。如果连他们连翻译也看不到,这两个人就会感到象在直接对话一样。

 

协议的分层是人为划分的,这只是为了简化网络协议的设计和实现。我们完全可以把几层不同的协议合称某种协议,也可以把某种协议分层并叫做不同的名字。

协议的分层是一种抽象概念,它并不是一成不变的,我们可再举一例:

如下图:

甲(讲中文)              乙(讲法文)

<中译德翻译>             <英译法翻译>

<德译日翻译>------ ---真正的网络传输-------><日译英翻译>

 

上面的情况甲乙的交流可以这样:中文->德语->日语->英语->法语

反之亦然,这里同层次的协议不一定相同,但只要有共同的底层协议可以相通,这两个网络就可能相互沟通。

显然,如果甲这边能有一个中译英的翻译,那么最底层的两个翻译就不需要了。

更进一步,如果双方中有任何一方会讲对方的语言,那么下面两层的四个翻译都不需要了,这时候双方实际上就是直接在交流。

所以网络协议的分层以及网络数据的传输过程,实际上就是数据转换、分解,再组合、再转换的一个过程。


再对比计算机网络:有以IP协议为基础的TCP协议,以TCP协议为基础的HTTP协议,以TCP协议为基础的FTP协议等。这里HTTPFTP是同一层次的两种不同协议。

如下图:

高层3HTTP协议、FTP协议                (应用层)

中层2TCP协议、UDP协议                 (网络层

底层1IP协议                             (传输层)

 

我们通常把上图中的底层1和中层2合在一起称为TCP/IP协议。所以,协议并不一定非要分层,有时候一种协议是几层协议的一个结合,事实上,协议分层并不是必须的。

 

那么有没有比“英语”更底层的协议呢?当然有。但一般我们没必要把“英语”协议再分层。现在为了讲解的需要,我把“英语”这种协议人为再分一下,英语由“单词”构成,单词不考虑语法问题。“单词”就是比“英语”低一级的协议。“单词”又由“字母”构成,字母不考虑组合成词的问题,所以26个英文“字母”就成为比“单词”更低一级的协议。

现实意义:中国人和法国人一般都认识英文字母,法文字母跟英文字母有很多都相同,但我们从小认字母当拼音,人家认来组单词。所以可以说,在字母这一层协议上,中国人和法国人是可以交流的,换个说法:中国人写的字母法国人也认识。但是,这没有太多实际意义。所以才需要更高一级的“英语”协议来支持。

同样道理,上图中“底层1IP协议”以下还有更底层的协议。“高层3HTTP”协议以上还可以有更高层的应用协议。我们可以任意一层协议为基础制订自己的更高一层的协议。

比如:我们可以以字母这一层为基础,重新创立一种新的语言。也可以以IP协议为基础,制定自己的传输协议。

 

不同的设备可以安装不同的协议,识别不同层次的协议。

比如:

1、可以安排一个人,只要能识别字母“abc……”就成。这是最低层协议的实现。

2、再安排一个人,能够识别字母组成的单词,并删除错误单词。这就是第二层协议的实现。

3、再安排一个人,能够识别单词组成的句子,并理解句子。这就是第三层协议

4、再安排一个人,这个人能够翻译英语“黑话”,这个就最第四层协议了

5、还可以安排更高层的人,能够把黑话中隐藏的更专业的意思解读出来

根据需要,你可以随时发明自己的协议,如果这种协议高效易用,被大众所认同,那就成为了一种流行标准。

  

说到底:协议是人规定的一套通信规范,所以任何人都可以规定自己的协议,只要通信的双方能够共同遵守,你就实现了你的协议。

 

事实上协议本身是可以无所谓分层的概念,分层只是为了方便人们处理复杂的协议而人为做出的划分。

 

所以,初学者请不要网络协议深遂的面孔吓倒,更不要被网络分层的假相所迷惑。你只要认清了网络协议的本质,大胆得去实践,你完全可以创造出属于你自己的网络协议。

 

旧的协议日益成熟,新的协议层出不穷,正是那些勇于创新的开拓者们创新了日新月异的网络世界。向发明网络协议的创新者们致敬!

 



0 0