网络协议五层与OSI七层协议
如果大学的计算机基础不错,这应该都是计算机网络教材里面的内容。之前在面试的时候面试官有问过类似的通信知识,瞬间石乐志。于是在自己原有的理解上重新学习一遍,记下此篇。
本文知识总结来源为:图灵丛书《图解http》一书,以及无数网络博客资源。
网络五层协议
Tcp/Ip 如果按照协议族来划分可以分为四层结构(或者五层,有的书籍没有把物理层算在其中)。
应用层:
应用层是决定了向用户提供应用程序通讯时的服务。
应用层是我们最多接触的一个,常见的http,smtp,FTP都是属于应用层的实现。所谓应用层,意思就是我们可以使用网络就像一件商品一样直接去使用而不用关注他的实现。
传输层:
传输层所能了解的就是数据的传输协议,比如我们知道http的传输是用过数据包的方式来进行的。在传输层有两个我们耳濡目染的协议就是tcp(transimition control protocal)和udp(user data protocal)。
网络层:
网络主要指的是就是IP,全称是Internet Protocal,意为网络协议。其实就是约定了在一个开发的网络环境里面,不同的两个参与方如何进行通信。我们知道无论是访问网站,还是数据传输,我们的交流都是通过IP来进行,当然这其中还会有DNS的作用。所以,通俗的理解下来就是,
链路层:
这个层叫做数据链路层或者网络接口层都可以。链路层就是一个决定以什么样的方式来传输网络上流动的数据包,比如去控制传输介质或者链路的管理。比如网卡设备,路由器。
物理层:
物理层指的主要是在网络通信中支持网络传输的设备,中继器,双绞线。当然里面也有类似的硬件通信协议。
OSI(open system interconnect)七层划分
七层较之于五层模型。共有七层,分别为应用层、表示层、会话层、传输层、网络层、链路层、物理层。对应于五层模式来说,其中应用层、表示层、会话层属于应用层的部分。其他则一致。下面只介绍多出来的两层。
表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
举个例子就是,通信双方约定一种数据格式来接受。比如A和B约定通过火星文来传输,那么加入A发送数据格式如果不是火星文,就会被转换为火星文,然后实现通信。除此之外,还可以对传输的格式作加密处理(一样的意思,换汤不换药)。
会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
每次的网络通信都可以称之为一次会话,我们知道http是无状态(stateless)的连接,每次连接不会被记录。但是http1.0出来的规范里,keep-live的出现,可以让每一次的连接不会被过早的中断。这些其实都是在会话层做的处理。
话不多说,点到即止。