互联网在军备竞赛中诞生
前言
现代人每天都在使用联网设备,尽管现在有了“蜂窝”网络(移动信号塔组成的网络覆盖区域类似一个蜂窝)、wifi 为移动设备或者其他的联网设备提供无线网络传输服务。但互联网的物理层面还是一条一条的网线连接成千上万的联网设备,依靠这些网线才能完成数据的千里传送。
自互联网诞生,如何利用网线传输数据就是一个相当头疼的问题。毕竟网线能做的就是传输一连串电信号。再有,互联网上的计算机成万上亿,数据从一台计算机发送到另一台计算机,如何实现如此精准的定位?又如何判断这些数据的发送方与接收方就是正确的呢?......
等等一些列问题,都和今天讨论的主题有关:互联网协议。
一、互联网历史简略
研究一样事物,要顺着它的历史演进
1. 面向终端
今天的生活中,特别是学术圈中,“结构”是一个很火的词。有些时候,结构可能听起来玄而又玄,没法具象化理解。但结构,说白了就是事物的组成部分的组建方式。例如汽车,由发动机、轮子、底盘、外壳等部分组成,不同的车有不同的组装方式,具有大同小异的结构。
互联网也是如此。
上世纪60年代。第一代互联网,是一个“中央计算机”直连终端(电脑)的简单结构。每台终端独占一条线路,是一种最基础的网络结构:即中心到终端。
2. 分组交换
面向终端的结构缺点很明显,每台终端独占一条线路,就像以前的电话,每台电话占用一条电话线,十分占用资源,且很容易出现意外。
每条电话线每天的使用量不足 1%。此外,上述结构终端之间不互联,受中央计算机的控制,中央计算机一旦出现问题,全体瘫痪。
到了 60 年代中期,许多研究机构与军事机构纷纷研发终端互联并且有效利用线路的网络结构。
1969 年 12 月,美国国防部推出第二代网络结构:ARPA 分组交换网络结构。这也是互联网 Internet 的前身。
分组交换剔除了中央计算机,将中央计算机替换成诸多的“中间处理器”,这些中间处理器相互连接,各终端再与这些中间处理器连接,由此实现数据分享、转发信息、线路复用等优势。
3. 标准化网络
第二代网络结构已经具有不错的实际应用了。但大多数还是在大学、科研机构、军事机构、计算机公司等小范围内使用。各个组织有自己的标准和规范,大家互不兼容,难以发展。为了促进网络的大范围的使用,促进资源的共享,国际标准化组织(ISO)于 1984 年正式颁布了一个称为 “开放式互联基本参考模型”(OSI),将网络数据传输的结构做了“7 层模型”的标准化。这个标准不是上述网络结构“物理层”的结构标准,而是“数字化的”数据如何在网线里传输的结构标准。
这里的 7 层模型就是本文的主题之一。
4. Internet
在前面的基础上,互联网在各个国家开花结果,美国作为互联网的主干网,各个国家建立自己的主干网,并通过各种渠道建立类似城域网、学术网、校园网等网络。世界网络由此组成了庞大的互联网。
二、层与协议
契约,是人类社会发展的催化剂
上面讲到 OSI 模型是数据传输的标准,但是由于各个厂商为了各自的利益已经形成了自己的实现标准,因此,OSI 并没有被实现。但另一种模型:TCP/IP 模型却成为了事实上的网络传输模型。但整体上与 OSI 一致。在分层上, TCP/IP 将网络数据传输分为 4 个层。
层
所谓“层”,是将网络传输数据的过程分成一些层,每个层负责不同的事务。
OSI 分层:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP 分层:
- 应用层
- 传输层
- 网络层
- 接口层
物理层,就是网线,越往上的层越靠近用户,是一个由下至上,从大到小的分层。所谓应用层就是针对不同的使用需求制定不同的实现方法。比如发邮件,需要制定针对邮件的规范,也需要制定特殊的传输规范。之所以做出区分,是因为每种文件有它独特的适用场景,这就导致了需要制定不同的规范
协议
协议,就是上面的规范。规范仅仅是做出了规定,得大家一起遵守才叫协议。比如网页的传输使用 HTTP 协议,就是你在浏览器地址栏里输入的网址开头 http 的真正含义。HTTP 属于“应用层”的协议。每个层可能有很多协议,用于处理不同的问题。
TCP: 传输控制协议
IP: Internet Protocol,互联网协议
三、五层实用模型
OSI 与 TCP/IP 都有各自的优缺点。但更通行地便于阐明网络原理,大多数人会综合 OSI 与 TCP/IP 来进行分层,将网络传输分为 5 个层。
- 应用层
- 传输层
- 网络层
- 链路层
- 物理层
1. 发送数据
为创建这种层间逻辑连接,发送端的每一层协议都要在数据报文前增加报文头。该报文头只能被其他计算机的相应层识别和使用。接收端的协议层删去报文头,每一层都删去该层负责的报文头,最后将数据传向应用层。
发送进程送给接收进程的数据,实际上是经过发送端各层从上到下传递到传输介质。整个过程从第五层(应用层)开始,然后一层一层地向下移动。
在发送端的从上到下逐层传递的过程中,每层都要加上适当的控制信息,在第二层同时还要加上一一个尾部信息T2。当格式化的数据单元经过物理层(第一层)时,成为由0和1组成的数据比特流,然后再转换为电信号在物理传输。
2. 接收数据
接收端收到数据后,收到的是一个数据流,这个数据流每经过一层,该层会将它负责的那部分外衣剥掉,再传递给上层,上层重复操作,直到最后应用层拿到数据剥除自身负责的控制信息,将数据交给应用层。
结语
为了减少阅读疲劳,本文在这里暂不做网络协议在每层实现原理的讲解。
到这里,你已经大致了解了互联网的发展历史,以及为了传输数据所用的一些模型和协议,但这还不能让你完全了解数据是如何被电脑所解析的,数据是如何被一对一地传递的。这中间还有很复杂的东西,这里先告一段落。
欲知后事如何,且听下回分解。