浅谈计算机网络体系结构

本博客旨在提升自身学习。适合对编程有兴趣的新人同学,如有帮助,不胜荣幸。

计算机网络体系结构

1.OSI的体系结构

  在说http协议之前先大致说下计算机网络体系结构。在计算机网络的基本概念中,分层次的体系结构是最基本的。国际化组织ISO于1977年成立了专门机构来研究解决不同网络体系结构的用户相互交换信息的问题。他们提出一个试图使各种计算机在在世界范围内互连成网的标准的框架,即著名的开放系统互连基本参考模型OSI/RM (Open Systems Interconnection ReferenceModel),简称OSI

  OSI将网络体系结构分为应用层,表示层,对话层,传输层,网络层,数据链路层,物理层七层结构,但是现今规模最大的、覆盖全世界的因特网并未使用OSI标准。

2.TCP/IP的体系结构

  OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用。

  ICP/IP体系结构则不同,它现在已经得到了非常广泛的应用,TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。

  不过从实质来讲,TCP/IP只有最上面的三层,因为最下面的网络接口层基本上和一般的通信链路的功能上没有多大差别,对于计算机网络来说,这一层并没有什么特别新的具体的内容,因此在学习计算机网络原理是往往采用折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。

3.五层的体系结构

  在计算机网络原理的学习过程中采用下图的五层协议的体系结构:
                浅谈计算机网络体系结构_第1张图片
  这里简单介绍下各层的主要功能:

(1)应用层(application layer)

  应用层是体系结构中的最高层。它的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程通信交互的规则(进程指的是主机中正在运行的程序)在因特网的应用层协议有很多,如支持万维网应用的HTTPx协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。我们将应用层交互的数据单元称为报文

(2)运输层(transport layer)

  运输层的任务就是负责向两个主机中进程的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓通用,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可以同时使用下面运输层的服务,分用与复用相反,是运用层把收到的信息分别交付上面应用层中的相应进程。
  运输层主要使用以下两种协议:
  传输控制协议TCP(Transmission Control Protocol)—提供面向连接的、可靠的数据传输服务,其数据的传输单位是报文段(segment)
  用户数据报协议UDP(User Datagram Protocol)—提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
  这里对运输层的主要使用的两种协议不做具体说明,以后有机会在其它章节再说两种协议。

(3)网络层(network layer)

  网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在tcp\ip体系中,由于网络使用IP协议,因此分组也叫做IP数据报 ,或简称为数据报。这里把分组和数据报作为同义词使用。无论在哪一层传送的数据单元,都可笼统地用“分组”来表示。
  网络层的另外一个任务就是要选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。
  这里需要特别说明的是,网络层中的网络二字,已不是我们通常谈到的具体的网络,而是在计算机网络体系结构模型中的专用名词。
  因特网是一个很大的互联网,它由大量的异构网络通过路由器相互连接起来。因特网主要的网络层协议是无连接的网际协议IP和很多种路由选择协议,因此因特网中的网络层也叫网际层或IP层。这里。网络层、网际层、和IP层都是同义词。

  数据链路层通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上传送帧。每一帧包括数控和必要的控制信息(同步信息、地址信息、差错控制等)
  在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。
  控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单的丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错,那么就要采用可靠传输协议来纠正出现的差错。这会使得数据链路层的协议复杂些。

(5)物理层(physical layer)

  在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。.因此物理层要考虑用多大的电压表示“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。请注意传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信通等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。
  在因特网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP\IP并不一定是单指TCP和IP这两个具体的协议,而往往是指因特网所使用的整个TCP\IP协议族。
  计算机网络体系结构的分层就以概念的方式介绍到这里,在我大学时计算机网络原理老师曾讲过,可以把数据在网络中的传输想象成A要给B发一封信。A需要用信封把写好的信装起来,要在信封上写上自己的地址以及B的地址,然后送到邮局,邮局在进行中转,发送给B。B再拆分,读信息。其实这一整套流程和数据在网络的传送是差不多的概念。在信被邮寄的过程中需要一些规定也就是协议,比如信是用特定的语言,中文还是英文,以及信的传送过程都需要明文的规定,类比于计算机网络中的协议就好理解了。而之后的章节会说关于应用层的HTTP协议。
  本文大都借鉴谢希仁 主编的 计算机网络,如有想更深一步了解计算机网络知识的,可以去看看这本书或者相同书籍,这里只是简单阐述下计算机网络体系结构,让初学者能有个大致概念。  

你可能感兴趣的:(浅谈计算机网络体系结构)