开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

用进化的观点学习网络协议

简介:
+关注继续查看
一般而言,我们比较习惯于用分层的观点来学习网络协议,这也是大学的教学方法。然而这种方式在前期如果有个地方理解不了只有死记硬背了。如果我们带着问题,并且试图去解决这些问题,最终恍然大悟,得到“原来XX协议就是解决这个问题的啊”这种感叹,那么学习效果一定事半功倍。
    所谓带着问题学习,其实就是抛开一切知识,从无到有,自下而上或者自上而下去思考一个问题的解决方法,这样一来,最终你会发现,其实很多的网络协议你自己也能设计出来,只是不那么完美罢了。对于网络设备,我们只需要知道它们是支撑网络协议的就行了。不要过度考虑那些多层的设备,只要一层一层的考虑即可。
    如果你能从一根线缆自行设计出hub,进而发现了hub的诸多问题,然后又设计出switch隔离了冲突域,可是后来又发现了安全性以及管理方面的问题,终于设计出了VLAN,隔离了广播域...由于扩展性的问题,你自己设计出了网络层(事实上,IP的设计并不是想象的那么困难),...这样的话,你就是高手了。带着问题去自己思考,这是一种很好的学习方法,最终拿到真正的协议后,和自己想的比较一下,看看自己哪些地方考虑的不够全面,同时也要看看自己哪些地方猜对了,给自己一点鼓励...
    以上是一个大致的轮廓,曰:有问题才有解决。然而问题何在?问题一开始是什么样子的?这就需要用进化的观点了,即使是上帝也不能一下子设计出人,三叶虫简单,于是三叶虫被设计出来了,经历了风风雨雨之后,很多设计被时间证明是失败的设计,于是某些物种灭绝了,直到最后,人类的出现...在网络协议上,也是一个类似的轨迹,一开始就是一根线缆,接着出现了hub,PBX,Switch之类,...如今,七层交换,应用代理,统统都应有尽有,其间也有很多被淘汰了,而这些被淘汰的或者将被淘汰的协议曾经也被很多人看好过。如果把网络协议的历史都了解了,那么学习一个新的协议将会变得简单,因为发展曲线已经很清晰了,一个特定的协议一项特定的技术肯定是为了解决某一个或者某一类问题而被提出的,而问题基本都是历史遗留的,这个规律在计算机网络以及通信网络领域尤为普遍。

......



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1268989

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
第12章 网络编程
Java网络编程的基本认识。
19 0
网络协议——IP
IPv4地址 网络中的任何一台设备都要通过网络接口卡(NIC)接入网络,如果该台设备想要被其他设备访问到,那么其网卡必须有一个唯一的地址。一台设备还可以有多个网卡并同时接入多个网络,相应地该设备就有多个地址,如果这个设备是主机的话,一般被称为multihomed主机。路由器一般有多个网卡并接入多个网络,所以路由器也有多个地址,但是一般不把路由器称为multihomed主机。
1163 0
与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态
原文:与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态 [索引页][源码下载] 与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态 作者:webabcd介绍与众不同 windows phone 7.
768 0
网络编程学习小结 .
from:http://blog.csdn.net/byxdaz/article/details/4496575 几种网络编程方式: ISAPI、CGI、WinInet、Winsock 它们之间的区别: 1) ISAPI主要是开发基于浏览器客户端与服务器端程序。
1294 0
网络协议及应用之二:校验和
TCP/IP协议族校验和的计算方法相同, 差别在于进行校验的数据.   一 校验和计算方法    1. 将数据流按16bit求和, 存放在32Bit及更大的空间(eg.
677 0
23703
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载