浅谈计算机网络(一)初识计算机网络

来源:互联网 发布:台湾用淘宝嘛 编辑:程序博客网 时间:2024/05/20 15:12

  大学期间,上过不少理论专业课,也读过一些该专业领域的“名著”。但是最让我惊叹的书,莫过于计算机网络(自顶向下的方法)。计算机网络,是最贴近我们生活的一门技术,同时它的体系也是极其庞大的,好比我们要了解一个国家从古至今的历史,或是一个从基层到上层的管理制度。强烈推荐初学自学计算机网络的朋友看,附上豆瓣连接:https://book.douban.com/subject/26176870/。

  近日来,总是在思索互联网,计算机网络这样庞大宏观的概念,久而久之,发现有些许概念模糊了,遂二刷这边书,一边写下这篇博客,温故而知新,愿每一次阅读都会有新的收获。

  书中写道,网络(network)是由一组具有通信能力的设备(如:电脑、通信设备等)互想连接而形成的。Internet是一个怎样的概念呢?是一张连接了世界上数十亿终端计算机的大网?但是这又并不是一张单一的网,而是无数个小网(network)相互连接,形成的互联网(Internetwork,是多个网络的组合。这是我对互联网广义上的理解。

  然而,这样仅仅是一个宏观上的概念。真正去了解、理解计算机网络,还需要引入、学习更多的概念。

  每当谈到Internet,我们总是能听到一个概念 — —协议(Protocol。也许之前你没有系统的学习过计算机网络,但是你已从事开发行业,经常会听到一些HTTP、TCP\UDP、SMTP、FTP等协议,这是一个非常重要的概念。另一个同样重要的思想,便是分层思想,当通信简单时,我们通过一个简单的协议便可以搞定了,但是如果通信相对复杂时,身在中国的我,要给美国的笔友发送一封E-Mail,这可是一封飘洋过海的电子邮件,这种情况下,我们需要把任务划分为不同的层次,在每个层次以不同的形式传输,好比从陆运到海运再到空运,每个运输过程都有必须要遵守的规则(这个规则,就是我们上文中所谈到的协议),因为我传输的是邮件,我必须遵循一个规则(协议)—— SMTP协议(常见的协议,以后都会有详细的介绍)。

  简而言之,协议定义了发送者、接收者和所有中间设备为了高效通讯所必须遵循的规则。协议分层的优点之一,可以将服务从实现中分离出来。如何理解呢?好比我运送一封邮件去美国,我需要先走陆运(第一层)由火车或者汽车作为载体运输,再走海运(第二层)由船作为载体运输,最后再走空运(第三层)由飞机作为载体运输,这三种交通方式是不同的,所以其交通规则(协议)也是截然不同的。第二层需要能够接收第一层的一系列服务,同时向高层提供服务。而我们不需要去关心,上一层是如何实现的,如何把东西运输到我们这里。

  我们了解了协议分层与层间逻辑连接的概念。那么问题来了,究竟是如何分层的呢?

  在学习具体如何分层之前,我们得先了解一个概念 —— TCP/IP协议簇(Transmission Control Protocol/Internet Protocol),TCP/IP是目前Internet按不同层次组织的协议集合。它是由相互交互的模块组成的一个层次结构协议,每一个模块提供特定的功能。层次结构之中,较上层的协议需要得到一个或多个较下层协议提供服务支持。初始的TCP/IP协议簇在硬件上定义了四个软件层次,但是目前通常是5层模型。

1.应用层

  应用层,顾名思义,应用的层面上,即端到端的通信就是应用层的任务,本质上是两个进程之间的通信。如,超文本传输协议(HTTP),简单邮件传输协议(SMTP)都是应用层的协议。

2.传输层

  传输层的逻辑连接也是端到端的。源主机从应用层得到消息,封装成传输层的分组(称为段或数据报,不同的协议叫法不同),然后进行发送。也就是说,传输层负责向应用层提供服务:从运行于应用层的程序得到信息,并将它投递到目的主机相应的应用程序。也许你会有疑问,端到端的协议我们已经有了应用层,为什么还要有传输层。正如上文所提及的,目的在于分割任务与责任。因此有了独立于应用层的传输层。如TCP、UDP就是传输层的协议。这是两个非常重要的协议。后面我会详细介绍。

3.网络层

   网络层负责在两个通信计算机之间创建一个连接。网络层的通信的主机到主机。但是我们必须明确一个问题,从源主机到目的主机中间可能存在若干节点(路由器),因此路径上的路由器负责为每个分组选择最好的路径。简而言之,网络层负责了主机到主机的通信,并指为分组“规划路径”,通过合适的节点(路由器)。所以这里有了路由选择算法:链路状态路由选择算法,距离向量路由选择算法。先不深谈,后文会详细介绍。

4.数据链路层

  互联网是多个链路通过路由器连接而构成的。从主机传输数据报到目的地可能存在多个交叠的链路集。所以,当路由器决定好需要传输的下一条链路后,数据链路层接管这个数据报并使它穿过这条链路。

  TCP/IP没有为数据链路层定义任何的协议。它必须支持所有标准和私有的协议。所以,数据链路层接管一个数据报并将它封装在一个称为帧(frame)的分组中。

5.物理层

  物理层位于TCP/IP协议簇的最底层,但是由于在物理层之下存在另一个隐藏的传输介质,因此两个设备物理层之间的通信仍然是逻辑通信的。可以这么说,物理层负责携带一个帧中单独的比特穿过链路。


  谈及至此,相信你对计算机网络的世界有了一个相对模糊的认识,这个世界的大门才刚刚打开,这是一个奇妙的世界,要走的路还很长。

0 0