OSI网络七层模型详解
一、网络的目的
网络的目的是为了实现主机到主机的通信。
最简单的通信方式是拿一根网线,两头分别插在两台主机上,然后将主机A IP地址配为192.168.1.20,将主机B IP地址配为192.168.1.23,然后这两台主机就可以互相通信了,他们在一个局域网内。这是最简单的实现两台主机互通的方式。
二、OSI网络模型
OSI网络模型是ISO组织定义的国际通用标准模型,其目的是为了制定全球统一的网络模型标准,让全球内的国家、组织可以实现网络互通。
OSI模型一共分为七层,如下图所示:
那么为什么网络模型要分层呢?就像一个公司要分很多部门一样,每个部门各司其职,网络模型分层的目的也是为了这样,另外分层还能达到降低复杂性、统一标准、工程模块化、快速发展、易于学习掌握等目的。
但是我们也知道,公司的每个部门之间不可能是完全独立的,部门和部门之间肯定是有一定联系的。所以在OSI七层模型中,相邻层之间也都是有联系的,比如,物理层和数据链路层,数据链路层和网络层,网络层和传输层等等,他们之间都是有一定联系的。这个联系就叫做服务接入点,简称SA(service access)。所以正是因为相邻两层之间有SA,这两层之间才会有联系。相邻两层之间必须有服务接入点。
三、OSI 七层网络模型作用
1、物理层
物理层虽然是整个模型的最底层,但是他的作用是非常大的。物理层的作用就是保证双向传输,双向通讯。就好像修路一样,把两个地方之间的路修通,至于上边是跑货车、跑车、自行车等等,就不管了。由于OSI模型是为了制定统一标准的,所以在物理层也有很多统一标准,包括电气特性统一、机械特性统一、功能特性统一、规程特性统一这四个方面。一定要在这四个层面上建立起高度的统一,才能够实现网络在全球范围内互通的目标。
(1)电气特性统一
什么是电气特性统一呢? 所谓电气特性就是定义电气的标准。比如我们的二头插座、三头插座,我们都知道三头插座中其实是连着三根线,分别是地线、火线和零线。地线是接地的,它的作用就是把产生的静电导到地面上,从而保证安全。其他两根线也有各自的作用。所以电气特性统一就是把火线、地线、零线这三种线的标准和功能统一起来。
(2)机械特性统一
世界上插头形状都是二孔或三孔的,即使是欧标、美标形状也都是几乎一样的。我们没有见过五角形、月亮形、菱形的插头。所以世界上各个国家生产的网络电气大小、规格、尺寸等机械特性都是要完全一样的,这就是机械特性统一。
(3)功能特性
例如网线里边其实是有八根线的,每根线颜色不同所代表的功能也不一样,这就是功能特性。
(4)规程特性
例如各个厂商生产的水晶头规格必须完全一样。
所以物理层的作用就是提供了网络的双向通讯,为双向传输提供了有保障的通路。其中定义了四个统一的特性:电气特性、机械特性、功能特性、规程特性。
2、数据链路层
交换机就是工作在二层数据链路层。链路层主要有三个功能。
(1) 它提供了通讯过程中要用到的MAC地址。计算机在通信过程中,一共要用到两个地址,一个是逻辑IP地址,一个是物理MAC地址,MAC地址就是由数据链路层提供的。MAC: media access control 。MAC地址就是物理地址,而物理地址其实就是我们的网卡地址。
(2)负责数据帧的转发。数据链路层传输的数据被称为数据帧。
(3)提供错误检测机制。例如通过交换机,两个PC在相互通信,PC1作为发送方,PC2作为接收方,交换机会对发送的数据进行数据检测,如果它发现传输的数据有丢失的情况,它会通知接收方丢失的数据并通知发送方重传数据。
交换机仅有连接内网的功能。比如我们教室里有40个同学,我们有一个48端口的交换机,如果每个同学拿一根网线插在交换机上,那么这40个同学是可以互相通信的,但是没法访问外网。如果要访问外网,就需要用到路由器。
3、网络层
路由器工作在第三层网络层。网络层一共有四个功能
(1)提供逻辑IP地址。
(2)连接不同的媒介类型(内网和外网),使不同的媒介之间可以相互通信。比如我们的路由器一端连接着企业内网,一端连接着外网,此时路由器的功能就是连接内网和外网,使之能够相互通信。所以网络层的第二个作用就是连接不同的媒介类型,内网和外网就是不同的媒介。
(3)根据路由器运行的不同的路由协议选择最佳路径。比如说早上起来从家到公司上班,可以有好多条路可以走,如果是开车的人,可能会选择不堵车的路,如果是坐公交的 人,会选择尽量换乘少的路,所以可以得到一个结论,从同一个源到同一个目的地,根据出行方式不同,可以有不同的所谓的最佳路径。在我们的网络层也是同一个道理,在整个网络层中,一共有6种动态路由协议,每一种路由协议都有自己不同的选路的方式,比如说RIP路由协议,这个协议选路的方式就是哪近走哪,还有的协议是根据最大带宽来选择最佳路径。所以工作在网络层的路由器,就会根据自己身上运行的不同路由协议来选择自己认为的最佳路径。
(4)在选好的最佳路径上负责路由数据包。
4、传输层
传输层的功能是它提供了端口号码的概念(port)。什么是端口号码呢? 比如我用微信给小A发信息,小A用微信接收并查看,但是谁规定的我同微信给他发的信息,他必须用微信接收呢?他为什么不打开QQ,word接收呢?这个就是传输层规定的。换句话说,在通信的过程中,我们需要MAC地址和IP地址来通信,我们还需要知道对方的MAC和IP,因为我需要MAC和IP才能找到你,所以可以理解为这两个地址是定位你存在的。但是找到你只代表能ping通你,但是我要怎么和你发生通信和服务请求呢?IANA规定,网络中的每一种应用或者每服务都有自己的一个或者多个固定的端口号码,比如网页一般是80端口,SMTP是25端口,DNS是53端口,FTP是20,21端口等等。我们可以根据端口号来识别对应的服务。比如微信是3346端口,我在给小A发信息时,数据中会带着3346的端口号,所以小A的电脑会根据端口号也用微信接收信息。
网络工程师一般重点关注上述四层,也就是最下4层。
5、会话层
会话层的作用是负责在应用程序之间建立维护并拆除会话连接。
6、表示层
表示层的作用是负责数据加密。其提供了四种常见的加密方式。
(1)对称加密: 加密方与解密方使用相同的密钥
(2)非对称加密:一把私钥、N种公钥
(3)HASH 256加密
(4)光密
7、应用层
给用户和抽象的网络之间提供一个接口,使用户可以通过使用应用程序、app来使用整个的6层网络模型。