Linux网络编程:计算机网络体系结构概述详解

  

目录

一、计算机网络体系结构的形成

1.引入

2.体系结构形成的历史

3.OSI失败原因

二、协议与划分层次

1.协议的概念

2.划分层次与好处

 

三、具有四层协议的TCP/IP体系结构

1.TCP/IP体系结构

2.模拟传递过程


一、计算机网络体系结构的形成

1.引入

我们知道连接在网络上的两台计算机要相互传送文件,必须要有一条传送数据的通路。但这远远不够,还需要以下的工作:

(1)发起通信的计算机必须将数据通信的通路激活。

(2)告诉网络如何识别接收数据的计算机。

(3)发起通信的计算机需要查明对方是否开机,网络是否正常。

(4)发起通信的计算机程序需要知道对方是否做好接收和存储文件的准备。

(5)文件格式不兼容,其中一个计算机应该完成格式转换。

(6)处理可能发生的意外,如数据传送错误、重复或丢失等,确保对方收到正确的文件。

除了这些,还有需要做的其它工作。

2.体系结构形成的历史

为了设计这样复杂的计算机网络,最初的ARPANET(美国高级研究计划署)设计时提出分层的方法。

1974年,美国的IBM公司宣布了系统网络体系结构SNA,这个网络标准就是按照分层的方法制定。

接着其它公司相继推出不同的体系结构。不同的体系结构就导致自己公司的设备不能与其它公司的产品相互连通。

1977年国际标准化组织ISO为了解决这种问题,成立了专门的机构研究此问题。

于是他们提出了一个试图使各种计算机在世界范围内互联成网的标准框架,即开放系统互连基本参考模型OSI/RM,简称OSI

1983年形成了开放系统互连基本参考模型的正式文件,即ISO7498国际标准,也就是所谓的七层协议的体系结构

OSI试图达到一种理想境界,使全世界都遵循这一统一的标准,计算机就可以很方便的互连。得到了大公司和政府的纷纷支持。

20世纪90年代初期,整套的OSI国际标准已经制定出来,但是此时因特网早已抢先覆盖了全世界相当大的范围,而与此同时人们却很难找到厂家生产OSI标准的商品。

现今规模最大的、覆盖全世界的因特网并未使用OSI标准。

3.OSI失败原因

人们归纳出OSI失败的原因:

(1)OSI专家缺乏实际经验,在完成OSI标准时缺乏商业驱动力;

(2)OSI协议复杂且运行效率低;

(3)OSI标准拟定周期过长,OSI标准生产的设备无法及时进入市场;

(4)OSI的层次划分不太合理,有些功能在多个层次重复出现。

个人认为,中国传统的思想文化使中国人的学习模仿能力很强,创新能力却比较差。

得到最广泛应用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。如此这般,TCP/IP就被当作事实上的国际标准

所以从某种意义上讲,什么是标准,能够占领市场的就是标准。

一个新标准的出现,有时不一定反映其技术水平是最先进的,而是有着浓厚的市场背景的。

二、协议与划分层次

1.协议的概念

为进行网络中的数据交换而建立的规则、标准或约定称为网络协议,简称协议。由以下三要素组成:

(1)语法,即数据与控制信息的结构或格式;

(2)语义,即需要发送什么控制信息,完成什么动作和做出什么响应;

(3)同步,即事件实现顺序的详细说明。

我们想让连接在网络上的另一台计算机做点什么事情(如从网络上的某个主机下载文件),就需要利用协议。但是当我们经常在自己的PC机上进行文件存盘操作时,就不需要任何网络协议,除非这个用来存储文件的磁盘是网络上的某个文件服务器的磁盘。

2.划分层次与好处

下图为主机1和主机2之间网络传送文件:

Linux网络编程:计算机网络体系结构概述详解_第1张图片

将工作分为三类:

第一类与传送文件直接有关。(是否做好发送和接收的准备,以及文件格式的转换)

第二类通信服务模块。(为上层服务,保证文件和文件传送命令可靠地在两个系统间交换)

第三类网络接入模块。(为上层通信模块提供服务,做与网络接口细节有关的工作)

 

这样就可看出分层带来的很多好处。

(1)各层之间相互独立。不需要知道其它 层的实现,仅知道接口服务就可,复杂度低。

(2)灵活性好。一层发生变化,只要接口不变,其它层不会受到影响。

(3)结构可分割。各层都可以采用最合适的技术实现。

(4)易于实现和维护。这种结构使得实现和调试一个复杂系统易于处理,因为整个系统已经被分解成若干子系统。

(5)能促进标准化工作。因为每一层的功能及所提供的服务都已有了精确的说明。

分层时注意每一层的功能要非常明确。各层要完成的功能如下:

(1)差错控制  使得和网络对等端的相应层次的通信更加可靠。

(2)流量控制  使得发送端的发送速率不要太快,接收端要来的即接收。

(3)分段和重装  发送的数据块划分更小的单位,接收端还原。

(4)复用和分用  发送端几个高层会话复用一条低层的连接,在接收端再进行分用。

(5)连接建立和释放  交换数据前先建立一条逻辑连接。接收传送结束后释放连接。

我们把计算机网络的各层及协议的集合,称为网络的体系结构。

三、具有四层协议的TCP/IP体系结构

1.TCP/IP体系结构

OSI的七层协议体系结构概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP体系结构则不同,但它却得到了广泛的应用。

Linux网络编程:计算机网络体系结构概述详解_第2张图片

各层的作用:

(1)应用层  直接为用户的应用进程提供服务。在因特网中的应用协议有很多,包括支持万维网的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议。

(2)运输层  运输层的任务就是负责向两个主机中的进程之间的通信提供服务。一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付给上面应用层中的相应的进程。

运输层有TCPUDP两种协议:

TCP运输控制协议——是面向连接的,安全可靠的,字节流服务。

UDP用户数据报协议——是无连接的,不可靠的,数据报服务。

3)网络层  使用IP协议,为分组交换网上的不同主机提供通信服务。把运输层产生的报文段或数据报封装成分组或包进行传送。

(4)网络接口层  分为数据链路层和物理层。数据链路层在两个相邻点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成,传送帧中的数据(看不见)。每一帧包括数据和必要的控制信息,典型的帧长是几百到一千多字节。物理层就是透明地传送比特流,单位是比特,发送“0”、“1”数据。

2.模拟传递过程

模拟数据在各层间的传递:

Linux网络编程:计算机网络体系结构概述详解_第3张图片

主机1的应用进程AP1向主机AP2传送数据。

AP1先将其数据交给本主机的第5层,第五层加上必要的控制信息H5就变成了下一层的数据单元,第4层收到数据单元后,加上本层的控制信息H4,交给第3层,成为第3层的数据单元。依此类推,第二层还要加上尾部信息T2,第一层比特流传送不需要再加控制信息。

主机1的比特流传送到主机2时,从第1层依此向上到第5层。每一层根据控制信息进行必要的操作,去掉控制信息,将剩下的数据单元上交,最终交给目站的应用进程AP2。

TCP/IP的体系结构比较简单,只有四层,如下图使用路由器转发分组时最高只用到网络层而没有用到运输层和应用层。

 

Linux网络编程:计算机网络体系结构概述详解_第4张图片

下图中,主机C的应用层中同时有两个服务器进程在通信:

服务器1与主机A中的客户1通信,服务器2和主机B中的客户2通信。

Linux网络编程:计算机网络体系结构概述详解_第5张图片

因此有的服务器又何止仅仅能够为上万个客户提供服务,想想你玩的王者荣耀又面对了多少客户。

 

TCP/IP协议可以为各式各样的应用提供服务,所谓的 everything over IP,同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行。正因为如此,因特网才会发展到今天的这种全球规模。

你可能感兴趣的:(Linux网络编程:计算机网络体系结构概述详解)