开放系统互联模型(OSI)(一)
由国际化标准化组织ISO
于1984年提出的。
是目前公认的计算机通信和Internet
网络通信的基本结构模型。
如今使用的最广泛的TCP/IP
协议就是基于OSI
模型设计的
OSI:Open System Interconnection
我们既然将其叫作模型,那么它应该是只给我们提供给一个标准,告诉我们这个东西怎么样去设计,怎么样去做,而不是具体的实现,只是 一个参考模型。像TCP/IP
协议就是他的实现。
OSI的七层参考模型。
七层模型的功能:
1)物理层
最基本的底层数据传输,底层的接口,底层的传输方式,等都是由物理层定义的。
比如我们现在上网,使用的无线网卡,或者以太网线,那么无线网卡需要遵循一个什么样的标准,我用的是一个什么样的频段,我的双绞线是应该使用一个多大的电压,使用什么样的频率,这些都是由物理层去定义的。
也就说物理层是定义这些介质的标准,接口的标准,线缆的标准。
2)数据链路层
定义数据的基本格式,数据如何在线缆上传输,怎么样进行标识。
错误检测。
如何去访问底层介质。
比如:MAC地址的标准。
3)网络层
数据的编址,三层的数据编址,路由功能。
定义了三层的IP编址:
IP地址就是第三层所定义的。
定义了路由功能:
提供了在不同网络功能进行转发。
4)传输层
定义了端到端通信的一些,端到端连接。
其中:最主要的协议TCP/UDP
定义了如何在一个源和目标,端到端数据传输,以及如何保证数据传输的速度,效率和数据的可靠性。
5)会话层
是控制的一个应用程序,一个IP地址对之间的不同的会话。
比如一个ip(10.1.1.1
)与另外一个ip(10.1.1.2
)之间,有几个程序在通讯,比如: QQ,腾讯微博,等。
里面有很多会话,一个是传输图片,一个是传输音频,一个是做其他。
6)表示层
用来定义数据的封装格式,比如说我是传输一个视频,可以是.avi,.rmb, 如果传输一个照片,是.png还是.jpeg,传输一个文本,是.txt还是其他格式。这些都是由表示层定义的。
还有压缩和加密的功能。
7)应用层
应用层,实际上就是我们的应用软件。我们计算机上面所有装的软件,都是应用层的东西。应用层的东西也可以包含5,6层的。有些比较简单的程序就只实现了第七层的标准。有些复杂的大型程序可以实现5,6,7层。一般下面的4层是由操作系统所实现的,上面三层是由应用程序实现的。
5,6,7可以统一称为应用层。因为上三层都是由应用程序控制的。
数据在传输的过程中有一个封装的过程
数据是由应用程序产生的,比如:
有两个QQ在聊天,一个在西安,一个在成都,QQ1发送“Hello”给QQ2。
发送的时候,“Hello”会依次经过这七层(应用层->物理层),并且加上每一层的标识数据(每一层的报头)。
FCS:帧检验序列
目标在收到数据信息(Bits)的时候,会依次解封装(从物理层解封到应用层)。
在L2(第二层,数据链路层):需要查看MAC地址。
在L3(第三层,网络层):需要查看IP地址。
在L4:查看是什么方式:UDP还是TCP
再向上层走,我们需要查看是哪个程序的,是QQ?IE?MSN?
向上解封的过程中,每过一层,就删除那层报文头信息。
图片.png所以说,数据的传输,是有一个封装和解封装的过程。
数据在每一层通讯的时候,都有自己的名词:
图片.png在L1(物理层)叫作比特流(Bits),L2(数据链路层)叫作帧(Frames),在L3(网络层)叫作包(Packets),在L4(传输层)叫作段(Segments)。
OSI只是一个模型,而我们现在的应用都是基于TCP/IP
协议的(注意:TCP/IP
协议不是TCP
协议)。
TCP/IP
协议就是OSI七层模型的实现,并且对7层模型做了简化,准确说定义了四层。
因为很多时候,并不需要这么细化层次。
TCP/IP
协议与OSI
七层模型的对照
对于网络工程师来说,一般讨论的TCP/IP
协议都是下四层(物理层,数据链路层,internet层(也就是网络层),传输层),而开发工程师讨论的是上线的应用层。