OSI七层模型、TCP/IP四层

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013241951/article/details/80269409
为什么要有OSI七层结构:
  • 分层分工
  • 标准化\兼容性
  • 便于问题分析

网络层:解决数据链路层不同局域网协议不能通信的问题

传输层:解决网络层因为网络中断,数据丢失,数据传输不可控的问题。

会话层:解决传输层有一个发送方多个接收方时确定发给谁的问题(两台电脑不同应用程序间的通信)

表示层:解决会话层仅仅是文字的交互,提供多种数据格式的显示功能(编码)

应用层:将表示层封装,提供用户接口



网络通讯协议图



了解网络协议(Network Protocol)之间的关系对网络分析是非常必要的,网络协议图(Network Protocols Map)对网络管理人员来讲,是必备的网络协议学习工具之一,但我们看到,网上内容比较全面的网络协议图并不是很多,这些网络协议图虽然遵循OSI七层网络协议,但是对于网络七层协议分类并不清晰,特别对于 TCP/IP协议不够直观。另一方面,现在网上能找到的协议图全都是英文版本,使用起来不是很方便,如果您是网络初学者,就更难理解。科来通过查阅大量网络协议文献,严格遵循OSI七层网络协议规范,2005年推出了全球首张中文网络协议分析图,截止2017年如今已经是第十个版本,新版协议图不仅包含TCP/IP网络协议ISO网络协议Microsoft网络协议VOIP网路协议VPN/Security网络协议IBM网络协议APPLE网络协议,还增加了不少ICS工控网络协议。


 数据包说明:

IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输



作者:车小胖
链接:https://www.zhihu.com/question/24002080/answer/150830722
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上七道工序最终产生了二进制流,除了物理层之外,每道工序都会在原始数据前添加一串属于自己的协议头,每个协议头有源主机的每层工序产生,自然有理解这些协议头的对端,举例来说:

链路层协议头,这个协议头只有源主机、端接路由器可以理解,只会存活在源主机与其端接的中继路由器,换句话说,其生命周期只限于一根链路,只要端接路由器能顺利接收,其使命就算完成了,那路由器会将其从二进制流剥离掉,剩下打头阵的就是网络层的协议头。

网络层协议头,其中包含了目的地网络地址,用于指示沿途的路由器,这一串二进制流的目的地是哪里,路由器查询自己的网络地址表,决定再发给更靠近目的地的下一跳路由器。假如找到了一个出接口与下一跳路由器直连,则又要考虑如何添加链路层的协议头了,依据不同的接口类型,添加了适合此链路的链路层协议头,然后再依据物理层介质的不同,物理层将其以光、电、电磁波的信号发送出去。

依照上面类似的步骤,一串二进制流每经过沿途一跳路由器,变换一次链路特有的协议头,但网络层协议头一直不会变,最终这一串二进制流到达了终点。

至此,网络层协议头也完成了其使命,剥离掉网络层协议头,剥离掉之前,先读出网络层协议头的传输层协议代码,把这一串二进制流发给传输层,剩下打头阵的就是传输层的协议头。

传输层协议,依据传输层协议头里会话层协议代码,先剥离掉传输层协议头,把这一串二进制流发给会话层,剩下打头阵的就是会话层协议头。

会话层协议,依据会话层议头里表示层协议代码,先剥离掉会话层协议头,把这一串二进制流发给表示层,剩下的头阵的就是表示层协议头。

表示层协议,依据表示层议头里应用层协议代码,先剥离掉表示层协议头,把这一串二进制流发给应用层,剩下的头阵的就是应用层协议头。

应用层协议,经过以上一跳一跳路由器的中继、终点主机的一层层协议头的剥离,源主机发给终点主机的数据终于到达终点了,至于数据是文字、图片、音频、视频,则由应用层协议来最终解释。



通信过程

作者:繁星亮与鲍包包
链接:https://www.zhihu.com/question/24002080/answer/31817536
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

两主机通信的过程,从发送者(以下简称A)到接收者(以下简称B),属于从7层(应用层)->1层(物理层)封装,然后传输到远端,再从1层(物理层)->7层(应用层)解封装的过程。

1、 当A打开了QQ这个软件,相当就到达应用层了;因为软件会根据你的操作调动机器底层的硬件工作了。


2、 当A往QQ这个软件的聊天窗口里面输入信息,发出后,QQ会将这个信息保存在本地聊天记录文件MSGEX.db(一般就保存在QQ目录下以你的QQ号码为文件夹里)。以某种格式编码/保存某种信息,这可以理解为表示层了。


3、 当A打开与B的聊天窗口,输入信息,按下“输入”按钮,用户的操作就完结了,剩下都是机器自己的操作了。实际传输之前QQ会先建立A与B的会话连接,才真正开始传输信息/数据(你可以理解借传输文件理解:你发送文件给对方,要等待对方按下接收,才算建立了会话,然后才开始传输。)这算会话层了。


4、 会话建立后,会将A发的信息斩件,如A发送“你吃了饭没有”?传输层将这句话斩成“你”“吃”“了”“饭”“没”“有”6个数据段,标记号使用的端口号,然后准备发出去。


5、 接上一层,信息还未发出去,这时候在网络层做路由选路,可以理解为,从A家出去,可以分别经“联通”“电信”“移动”3个网络中的一个再到B家。

网络层根据路由协议负责选路(根据链路质量、带宽、开销等方法论)。假设最后选了2条,可能就A->联通->B发送“你”“吃”“了”3个数据段,A->电信->B发送“饭”“没”“有”3个数据段。

选路后,这一层要标记IP包头,包头主要内容是源IP地址,目的IP地址,使用什么协议。其中源、目的IP相当于你寄信的时候的收发的地址与邮政编码,标记出发送者与接收者。而协议相当于这封信到底用什么语言书写。(只有保证2端使用同种语言,才能确保通信起来,否则你用英文写信给大妈,大妈怎么看得懂呢?)


6、 然后再到数据链路层,数据链路层主要是负责同一个子网内的通信的。例如A、B连接在同一台二层交换机,就属于同一个子网,那么数据帧的通信室是不需要通过网络层的(即三层交换机或者路由器),直接在这台二层交换机就过去了。这一层打的是MAC地址的帧头,对于上述通信过程来说,就是为数据帧打上A的机器的MAC与A的网关的MAC。这一层的工作就完成了。


7、 最后一层了,经过上述斩件、打完各层标签后的6个数据帧,物理层将他们翻译文6段0、1表示的比特流,然后通过光纤、铜缆进行传输。


8、 当比特流传输到了远端,接着B的机器按照上述的1~7的步骤反方向运行一次即可(即有物理层到应用层)。就是一层层读取标签,传输给标签标记着的相应对象,然后摘除标签,再读取上一层标签,直到最后B的应用程序能够读到A往应用程序输入的数据为止。


总结:在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。





猜你喜欢

转载自blog.csdn.net/u013241951/article/details/80269409