- 一、分层模型
- 1.1 分层的思想
- 1.2 OSI参考模型与TCP/IP协议簇
- 二、数据传输过程
- 2.1 数据封装与解封装过程
分层模型是一种用于开发网络协议的设计方法。而分享思想本质上讲就是把节点间通信这个复杂问题分成若干相对简单的问题逐一解决每个问题对应一层。每一层实现一定的功能,相互协作即可实现数据通信这个复杂任务。1.2 OSI参考模型与TCP/IP协议簇
IOS七层参考模型
- 国际标准化组织(ISO)
- 1984年颁布了开放系统互联(OSI)参考模型
- 一个开放式体系结构,将网络分为七层
| 分层 | 功能 |
|---|---|
| 应用层 | 网络服务与总重用户的一个接口 |
| 表示层 | 数据的表示、安全、压缩 |
| 会话层 | 建立、管理、中止会话 |
| 传输层 | 定义传输数据的协议端口号,以及流量控制和差错校检 |
| 网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择 |
| 数据链路层 | 建立逻辑链接、进行硬件地址寻址、差错校验等功能 |
| 物理层 | 建立、维护、断开物理链接 |
口诀:物、数、网、传、会、表、应 (注:第一层是物理层、第二层是数据链路层……第七层是应用层) 应用层: 网络服务与最终用户的一个接口 人机交互窗口,吧人的语言输入到计算机当中。例如,在微信对话框输入你想发的内容 在应用层,TCP/IP定义了许多协议,如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。 表示层: 数据的表示、安全、压缩 将接收到的数据翻译成二进制数组成的计算机语言,并对数据进行压缩和解压、数据加密和解密等工作 会话层: 建立、管理、中止会话 管理是否允许不同机器上的用户之间建立会话链接关系 传输层: 定义传输数据的协议端口号,以及流控和差错校验 将上层数据分片并加上端口号封装成数据段,或通过对报文头中端口识别,实现网络中不同主机上的用户进程之间的数据通信 传统上,TCP/IP有两个传输层协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议传输更加稳定可靠,UDP协议传输效率更高。 网络层: 进行逻辑地址寻址,实现不同网络之间的路径选择 将上层数据加是哪个源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输,建立数据链路,当发现数据错误是,可以重传数据帧。 IP是主要的协议,其余四个ARP(地址解析协议)/RARP(逆地址解析协议)/ICMP(国际控制报文协议)/IGMP(国际组管理协议)都是围绕这个展开的。 数据链路层:建立逻辑链接、进行硬件地址寻址、差错校验等功能 将上层数据加上源和目的方的物理(MAC)地址封装成数据帧,MAC地址是用来表示网卡的物理地址 物理层: 建立、维护、断开物理链接 报文头不合上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输
TCP/IP参考模型
TCP/IP五层模型对应的一些常见协议
二、数据传输过程 2.1 数据封装与解封装过程2.1.1 数据封装过程
当上层数据到达传输层的时候,传输层会对上层数据进行分片、封装。封装成一个TCP的头部(封装成叫数据段),TCP头部包含源端口和目标端口。 数据包会继续存到网络层,到网络层会在原有的基础上面再去封装一个IP头部(封装成叫数据包),IP头部包含源地址和目标地址。 数据段会继续存到数据链路层,到数据链路层会在原有的基础上再去封装一个MAC头部(封装成叫数据帧),MAC头部包含源MAC地址和目标MAC地址。 数据帧会继续存到物理层,到物理层后会变成“比特(Bits)流”。 具体如下图:
2.1.2数据解封装过程
在物理层先将比特流转换成二进制数据,并将数据送到数据链路层; 在数据链路层查看MAC地址,如果数据报文的目标MAC地址是自己的MAC,数据的MAC头部就会被拆掉,并将剩余的数据送至上一层(如果目标MAC不是自己的,终端设备就会丢弃数据); 网络层与数据链层路层类似,网络层将核实目标IP地址是否与自己的IP地址相同,从而确定是否送到上一层(是就拆掉IP头部,否就丢弃数据); 传输层首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层; 在应用层这些二进制数据将会还原成发送者所传输的最原始信息; 具体如下图:
| 层名称 | 应用层 | 传输层 | 网络层 | 数据链路层 | 物理层 |
|---|---|---|---|---|---|
| 典型设备 | 计算机 | 防火墙 | 路由器(解封装) | 交换机(转发) | 网卡 |



