前言
去年写的算法和操作系统的笔记都因为各种原因坑了,也找不到时间再补充了,感到很惭愧。网络是我比较有兴趣但是学得并不好的一块,从网络层及以下因为平时基本就接触不到没有实感,当时学的时候理解的不好,所以这次好好做笔记,把之前学得不到位的地方记录一下,也会补充一些网络编程的东西,坚持不太监。
这一篇先记一些概述性的东西。
起源和历史
现在用的 Internet 前身叫 ARPANET
重要事件
- 1961年,Leonard Kleinrock 提出了分组交换理论
- 1962年,J.C.R. Licklider 提出了 Galactic Network 的概念,与今天的 Internet 很相似.
- 1965年,Lawrence G. Roberts 用电话线连接了 MIT 的 TX-2 计算机和加州的 Q-32 计算机,这是第一个广域网.
- 1967年,Roberts 在 DARPA 发表了 ARPANET 的计划
- 1969年,Bolt Beranek and Newman,ARPANET 最开始的两台电脑,第一台 IMP UCLA, 第二台 SRI
- 1972年,Bob Kahn, Open Architecture networking 设计思路:每个网络独立,不改动;尽力而为;网关实现互联;无全局控制
- 1974年,Cerf & Kahn TCP/IP 论文
- 198x年,TCP/IP 在 Unix BSD 操作系统中实现
- ……
粗略地读了一下Brief History of Internet,我这里总结出来的并不是很详细,很多细节也没有弄清楚,总之行业先驱们非常伟大,领会一下精神.
在我国
- 1987年, 钱天白教授发出我国第一封电子邮件,揭开了中国人使用 Internet 的序幕。内容 “Across the Great Wall we can reach every corner in the world.”
暗示了今后中国人使用 Internet 需要 Across the Great Wall 的命运 - ……
网络体系结构
计算机网络体系结构是计算机网络的功能分层、各层协议和层间接口的集合。因特网是一个复杂的系统,设计复杂系统一个通用重要设计原则就是模块化,这从而导致了网络协议的层次化。
现在 TCP/IP
OSI模型只是个概念,并没有被实现就不提了, 而 TCP/IP 模型是目前的因特网实际在使用的,一般认为有四层.有些书里也说是五层.
自上而下看的话:
- 应用层。实现特定的应用。这一层的信息分组通常被称为 Message(某书翻译为 报文)
- 传输层。在应用程序的端点之间传送应用层报文。这一层的信息分组被称为 Segment(报文段)
- 网络层。负责将分组从一台主机移动到另一台主机,也就是路由。这一层的信息分组被称为 Datagram(数据报)
- 链路层。网络层依靠链路层将分组从路径中的一个节点移动到下一个节点。这一层的信息分组被称为 Frame(帧)
- 物理层。具体到移动 Bit (比特)
Computer Networking: A Top-Down Approach 这本我觉得还挺好的,也有很多人推荐来着
关于体系结构设计的哲学和每一层的具体技术还需要慢慢学习和体会…
未来 ???
现有互联网在安全性、可扩展性、移动性、实时性方面存在弊端,发展过程中现在主要有两个路线:
改良 dirty-slate
比如以前没考虑到安全,那就新添加安全协议,于是搞出了 Ipsec, SSL 什么的,给体系结构打补丁。
类似的例子还有地址扩展性(IPv6),服务质量(DiffServ)
这种方式会加入大量的中间件,使得体系结构变得臃肿
革命 clean-slate
重新设计新一代网络体系结构
- 信息中心网络 ICN: CCN、NDN
- 面向移动的网络: MobilityFirst
- ID/Locator分离: AIP,HIP
- 开放性思路: Nebula、XIA、OPAE
是否还要坚持当前系统结构设计的原则?
以后会大概更详细的补充未来网络体系结构和网络技术的内容