OSI模型与TCP/IP分层模型

一、OSI分层模型

1、分层模型及作用

 

2、具体介绍

2.1 物理层

比特流电子信号之间的切换

物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层。

物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。

2.2 数据链路层

数据帧比特流之间的转换

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层

2.3 网络层

路径选择、路由及逻辑寻址

它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务

2.4 传输层

管理两个节点之间的数据传输

关键层次之一,TCP/UDP运行在传输层

​传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有有复用分用功能。

传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。

传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。

传输层的一些协议是面向连接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段

2.5 会话层

为会话实体间建立连接👉数据传输阶段👉连接释放

​ 会话层(Session)是建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。

2.6 表示层

数据的压缩、解压、加密、解密

语法转换、语法协商、连接管理

​表示层向上对应用层服务,向下接受来自会话层的服务。表示层为在应用过程之间传送的信息提供表示方法的服务,它只关心信息发出的语法和语义。

2.7 应用层

直接为应用进程提供应用服务

每个应用有不同的应用协议

​应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求。
​应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务.其服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE.

3 OSI 7层模型应用通信实例

至上而下至下而上

附加首部信息

封装和解封装

 

  1. 发送方从模型的第七层到第一层至上而下传输数据,接收方则至下而上从第一层到第七层传输数据
  2. 发送端发送信息的过程中,每个分层上,在处理上一层传过来的数据时,都会在数据中附上当前协议需要包含的“首部信息
  3. 接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原装。

二、TCP/IP协议

1 介绍

协议“簇”

​ TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

 

2 分层模型

TCP/IP分层模型将OSI参考模型的应用程、表示层、会话层统一归为应用层

TCP/IP更强调“在计算机上实现协议应该开发哪种程序

​由于TCP/IP尽早地制定了可行性较强的协议,提出了应对技术快速革新的协议,并及时进行后期改良的方案,因此打败了OSI模型,成为了事实上的标准

 

3 TCP/IP分层模型应用通信实例

4 通信过程数据变化

帧和数据包都是数据的传输形式。

 

 

  • Frame(帧),工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;

  • Packet(数据包),工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。

Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。

下图为数据包变化情况

 

 

 

 

 

5 报头解析

5.1 传输层报头解析

加入端口信息

TCP\UDP协议

​ 每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包,所以需要在数据包中加入端口信息

TCP数据报头👇:

 

 UDP数据报头👇:

 

 常见端口信息👇:

应用进程FTPTELNETSMTPDNSTFTPHTTPSNMP
端口号 21 23 25 53 69 80 161

5.2 网络层数据报头解析

IP数据报

IP协议

源IP地址、目标IP地址

下图为IP数据报

5.3 数据链路层报头解析

MAC帧

LLC帧

 注:LLC与MAC的区别与联系

数据链路层分为上层LLC(逻辑链路控制),和下层的MAC(媒体访问控制),MAC主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。 

5.4 数据封装过程总结

​ 上层数据→→在传输层添加TCP头(包含端口信息等)→→在网络层添加IP头(包含IP协议等信息)→→在数据链路层添加LLC头和MAC头(包含MAC地址等信息)→→翻译成比特流(1101101...)

 

posted @ 2020-09-19 10:06  Achilles_Heel  阅读(559)  评论(0编辑  收藏  举报