网络传输工作原理的通俗理解
FYL 2013.12.25
本文结合生活中的实例,说明网络传输的基本原理
我们以甲对乙表达“大家好!”为例。
甲乙两人一个只会讲中文,一个只会讲法文,两人如何交流呢?我们把不同层次的翻译当做通信协议的实现来看。
网络层次图:
甲(讲中文) 乙(讲法文)
<英语翻译协议> <英语翻译协议>
<英语单词分解协议> <英语单词分解协议>
<字母传输协议>----------真正的网络传输-------><字母传输翻译>
网络传输的过程是这样的:
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. 乙方看到法文明白了甲方的意思。
反过来乙方要对甲方说的话也是如此,只不过最后甲看到到是中文。
这就是网络通信和协议分层的基本原理。对于甲和乙来讲,他们看不到单词翻译和字母翻译,所以他们好象直接在通过翻译对话一样。如果连他们连翻译也看不到,这两个人就会感到象在直接对话一样。
协议的分层是人为划分的,这只是为了简化网络协议的设计和实现。我们完全可以把几层不同的协议合称某种协议,也可以把某种协议分层并叫做不同的名字。
协议的分层是一种抽象概念,它并不是一成不变的,我们可再举一例:
如下图:
甲(讲中文) 乙(讲法文)
<中译德翻译> <英译法翻译>
<德译日翻译>------ ---真正的网络传输-------><日译英翻译>
上面的情况甲乙的交流可以这样:中文->德语->日语->英语->法语
反之亦然,这里同层次的协议不一定相同,但只要有共同的底层协议可以相通,这两个网络就可能相互沟通。
显然,如果甲这边能有一个中译英的翻译,那么最底层的两个翻译就不需要了。
更进一步,如果双方中有任何一方会讲对方的语言,那么下面两层的四个翻译都不需要了,这时候双方实际上就是直接在交流。
所以网络协议的分层以及网络数据的传输过程,实际上就是数据转换、分解,再组合、再转换的一个过程。