网络七层协议


OSI是一个开放的通信系统互连参考模型,定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架,之所以推出这个模型,是因为美国人有两台机器它们之间需要互相联系。OSI模型把网络通信工作分为七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,前三个是主要面向通过网络的端到端的数据流,后四层是定义了应用程序的功能。接下来讲一下,为什么会出现这七层以及这七层指的是什么?
(一)物理层
上面说美国人想把两台机器联系起来,那么要解决的第一个问题是两台机器是怎么通信的,于是就让一台机器发比特电流,另外一台能收到,于是就出现了物理层。
物理层是是整个模型中最基础、最重要的一层, 它起到了建立、维护和取消物理连接的作用,实现设备之间的物理接口,传输单位是比特,典型的传输设备有光纤、网卡、中继器、集线器等,在传输的时候它是有限制的,必须依赖介质,就像声音传播一下必须依靠气体、液体、固体来传播。主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
(二)数据链路层
现在通过电线能发数据流了,但是还希望通过无线电波,通过其它介质来传输。同时还要保证传输过去的比特流是正确的,要有纠错功能。于是就有了数据链路层。
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
在这一层,数据的单位称为帧(frame)。
数据链路层的典型设备:二层交换机网桥网卡
(三)传输层
现在能发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次,事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的。于是,先发明了传输层。
传输层建立在网络层和会话层之间,实质上它是网络体系结构中高低层之间衔接的一个接口层,传输层不仅是一个单独的结构层,它还是整个分层体系协议的核心。它是很重要的一层,因为它是源端到目的端对数据传送进行控制从低到高的最后一层。

(四)网络层
传输层只是解决了打包的问题。但是如果我有多台计算机,怎么找到要发的那台?或者,A要给F发信息,中间要经过B,C,D,E,但是中间还有好多节点如K.J.Z.Y。我怎么选择最佳路径?这就是路由要做的事。于是,发明了网络层。
网络层也称通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。
网络层还可以实现拥塞控制、网际互连、信息包顺序控制及网络记账等功能。
在网络层交换的数据单元的单位是分割和重新组合数据包(packet)。
网络层主要功能是基于网络层地址(IP地址)进行不同网络系统间的路径选择。
网络层为建立网络连接和为上层提供服务
(五)会话层
现在我们已经保证给正确的计算机,发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我每次都要去把数据打包,然后调用IP协议去找路由,自己去发,这个是不行的,所以我们要建立一个自动收发包,自动寻址的功能。于是,发明了会话层。
也叫对话层。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
(六)表示层
现在可以应用程序自动收发包和寻址了。但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是需要表示层,帮我们解决不同系统之间的通信语法问题。
表示层向上对应用层提供服务,向下接收来自会话层的服务
表示层为应用层提供服务包括语法选择、语法转换等
(七)应用层
现在所有必要条件都准备好了,我们就可以写一个程序实现需求
应用层是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。

网络七层协议

分层的优点
(1)人们可以很容易的讨论和学习协议的规范细节。
(2)层间的标准接口方便了工程模块化。
(3)创建了一个更好的互连环境。
(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。
(5)每层利用紧邻的下层服务,更容易记住个层的功能。