[2013.05.22]站在小白的角度上想想数据通信

最近在学《Data communication》,IP协议栈,东西比较碎也比较多,感觉像是在被牵着鼻子走。出来一段话,看看,哦,是干这的,再出来一段话,哦,是干那的。看完后,想想刚才看了什么?——不知道。只感觉一直都在看,也都看懂了,却不知看的都是些什么。

这种情况在学习中很常见,解决起来也很简单,一个字——联想!感觉很杂的原因就是自己没有头绪,被动的在被灌输着些什么。但其实,自己站在新手的角度上想想,稍微推理一下,就肯定是书上讲的东西了,或者书上比你想的更多,或是你想到的书上都没有写。为什么要联想呢,我在第一篇日志里写道过,就是因为,人都是差不多聪明的。

那就来试试吧,我随手打一下关于数据通信的我能想到的一些,纯属娱乐。

数据通信,又称计算机网络。讲信息怎么从一台终端到另一台终端的内容,主要是计算机。那就开始想呗。。首先想到的是一些单词:目的地址,信息内容,发送方式,接受方式,干扰。。这么一想,额,,好宽泛啊,没法下手抓。再想想,就比如说QQ聊天,怎么实现的呢?对用户来说,就是一个对话框,我们在里面输入内容,一个回车就发出去了。但有时候网速慢,可能提示说发不出去,网速再慢点,直接掉线了。这是我们平时几乎人人都能见到的3种情况,直觉就是发送信息和网速有关。现在来细想想吧。

用户一个回车,信息就发过去了,这显然在回车的背后肯定有一系列系统的操作,对用户是透明的,是用户不需要知道的。这其实是很好的用户体验,那学这门课的任务就是,了解这个黑箱是怎么运行的。这时看一眼目录,好多层,物理层-数据链路层(MAC)-网络层-……单看看名字,就有个差不多的感觉了。

从小就在想,怎么把世界上所有的人连在一起呢,小时候能想到的方法只有一个:用一根绳子把所有人都串起来。。其实吧,现在看看计算机网络,不管你在天涯海角,其实还是用一个线连起来的。看看,现在的人们也不比我小时候更聪明些,因为所采用的办法,一个小孩儿都能想的到——巨大无比牛逼哄哄的一坨线,这应该就是物理层。

线是电线,里面走的是电流,就想到了电信号,所以在物理层上面的数据链路层应该就是负责传输数据的。所以这一层担负的任务可见一斑。那么继续想,传输数据需要什么?传的啥?往哪儿传?怎么传?速度如何?能传到吗?会不会错?错了怎么办?带着这些问题再看看书,这尼玛什么帧格式啊, 校验啊,流量控制啊,退避算法啊,不都出来了吗?看吧,我说的,定标准的人不比我们聪明多少,正常的思维都想得到。

然后,感觉其他几层就很鸡肋了。因为我们有了传输的路:物理层,也有了传送过程的种种控制:数据链路层。还要上面的网络层啊,运输层啊,应用层啊什么的干什么?应用层还是比较好理解的,比如QQ界面,就算是应用层的东西吧。那剩下的,网络层,或者IP层是干嘛的?我有漏掉一些东西吗?为什么会多出来了这两个层?

然后看看书也许就明白了,是因为我们刚才把数据链路层想的太NB了,无所不能,啥活都让他干了。所以多个网络层,主要是用来选择传输线路的,从哪个路走最近,哪个路不堵?做这个工作。等于是在替数据链路在分担。同样,IP层,是在做虚拟地址与实际物理地址的映射工作,起到让数据知道自己从哪儿来,到哪儿去的工作,也是在替数据链路分担。

好了,说到这里,明白点了吗?反正我是明白多了。至于每层具体干什么,那就可以再往下细看了,毕竟大的框架已经搭好,功能已明了,那剩下的,就是补充啦。再说一句,指定标准的人是很牛逼,因为人家想的很细,也很周到。

其实学习就应该是这样,一切解答的根源都很简单,就是一个很贱又很巧的想法,实现出来。只有自己多想想,才能和作者进行交流和对话,那才算是学会了,书也就读薄了。


然后,今天就到这里啦。另外庆祝一下,板子貌似有希望了!

拜拜了您馁~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章