2.3 网络安全协议
数据参考:CISP官方
目录
- OSI七层模型
- TCP/IP体系架构
- TCP/IP安全架构
一、OSI七层模型
简介
开放系统互连模型(Open System Interconnection Reference Model,OSI)是国际标准化组织(ISO)于1977年发布的一个标准参考模型,用于描述计算机系统和网络之间进行通信的基本过程和方法。于1983年成为ISO 7498国际标准。
OSI模型将网络通信分为七个不同的层级,每个层级都负责特定的功能。这些层级从底层到高层分别是:
-
物理层(Physical Layer):负责定义物理介质和电信号传输规范,处理物理连接及数据传输的基本操作。
-
数据链路层(Data Link Layer):负责将物理层传输的数据分割成数据帧,进行错误检测和纠正,并对数据帧进行访问控制。
-
网络层(Network Layer):负责实现数据在网络中的寻址和路由,通过选择合适的路径来传输数据。
-
传输层(Transport Layer):提供端到端的数据传输,可靠地传输数据,并在必要时进行数据分割和重组。
-
会话层(Session Layer):提供通信双方之间建立、管理和终止会话的能力。它还负责建立检查点以恢复中断的会话。
-
表示层(Presentation Layer):负责数据的格式化和表示,以确保不同计算机系统之间的数据能够正确解释和理解。
-
应用层(Application Layer):最接近用户的层级,提供各种应用程序的接口和服务,例如电子邮件、文件传输协议等。
通过将通信过程分解为不同层级,OSI模型使不同计算机系统能够进行互操作性,并促进了网络通信的标准化和发展。
值得注意的是,虽然OSI模型是一个重要的参考模型,但实际上,许多计算机网络通信协议并未严格遵循OSI模型的七层结构,而是将某些层级进行合并或重叠。
模型定义了网络中不同计算机系统进行通信的基本过程和方法
底层协议
- 偏重于处理实际的信息传输,负责创建网络通信连接的链路,包括物理层、数据链路层、网络层和传输层
高层协议
- 处理用户服务和各种应用请求,包括会话层、表示层和应用层


| 层级 | 名称 | 功能 | 常用协议 |
|---|---|---|---|
| 1 | 物理层 | 在物理媒介上传输比特流,如电缆、光纤等。 | Ethernet, Wi-Fi, USB |
| 2 | 数据链路层 | 管理数据在节点之间的传输,检错纠错。 | Ethernet, PPP, HDLC |
| 3 | 网络层 | 控制数据包在网络中的寻址和路由。 | IP, ICMP, OSPF |
| 4 | 传输层 | 提供端到端的可靠数据传输和错误恢复。 | TCP, UDP, SCTP |
| 5 | 会话层 | 管理通信会话的建立、维护和终止。 | SIP, NFS, NetBIOS |
| 6 | 表示层 | 数据格式化、加密和压缩,确保不同系统间的数据交换的正确性。 | JPEG, ASCII, SSL |
| 7 | 应用层 | 提供各种网络服务(接口),如电子邮件、文件传输、远程登录等。 | HTTP, FTP, DNS |
分层结构的优点
- 各层间相互独立
- 促进标准化工作
- 协议开发模块化
- 降低复杂性
数据封装与分用 (解封装)

二、TCP/IP体系架构
简介
TCP/IP是目前互联网中最基本的协议,也是互联网构成的基础协议。TCP/IP最早源于美国国防部的ARPA网项目 (一个军用通信网络),经过多年的发展,其中的非涉密部分发展成今天的互联网。通常谈到TCP/IP指的是以TCP (传输控制协议) 和IP (网际协议) 为核心构成的协议族,是一组在不同层次上工作的多个协议的组合,通过TCP/IP,不同的信息处理设备可以相互传递数据。
TCP/IP体系架构包括链路层、网络层、传输层、应用层四层,每一层负责不同的功能
-
链路层(网络接口层):负责将数据转换为比特流进行物理传输。它定义了如何访问物理网络,并处理与物理介质相关的传输细节。常见的协议包括Ethernet、Wi-Fi等。
-
网络层:负责在网络中寻址和路由数据包。最重要的协议是IP(网际协议),它定义了互联网上的唯一地址系统,用于标识和定位设备。
-
传输层:提供端到端的可靠数据传输和错误恢复。最常用的传输协议是TCP(传输控制协议),它提供可靠的数据传输和流量控制。另外还有UDP(用户数据报协议),它提供无连接的数据传输,适用于实时应用或不需要可靠性的应用。
-
应用层:提供各种网络服务和协议,使应用程序能够访问网络。它包括诸如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等协议,用于实现电子邮件、文件传输、网页浏览等功能。
TCP/IP协议族分层结构

链路层安全风险
- 链路层也称网络接口层或数据链路层,是TCP/IP的最底层,它负责接收来自网络层的IP数据报,并把数据报发送到指定的网络上,或从网络上接收物理帧,抽出网络层数据报,交给网络层。其主要协议有ARP和RARP协议。
安全问题
- 损坏:自然灾害、动物破坏、老化灰尘、温湿度、误操作
- 干扰:大功率电器/电源线路/电磁辐射
- 电磁泄漏:传输线路电磁泄漏
- 欺骗:ARP欺骗 - :ARP(地址解析协议)欺骗是一种网络攻击方式,攻击者通过伪造ARP响应欺骗目标设备,导致数据流被劫持或信息泄露。
- 嗅探:常见二层协议是明文通信的
- 拒绝服务: mac flooding, arp flooding等
网络层安全风险
- 网络层也称作互联网络层,用于实现数据包在网络中正确的传递。IP (网际协议) 是网络层的核心协议,是上层协议和应用的基础。
- IP提供主机到主机的数据传送服务,目前广泛使用第四版IP ( IPv4)提供无连接不可靠的服务,不能为通信数据包提供完整性和机密性保护能力,也缺乏对IP地址的身份认证机制
安全问题
电子欺骗攻击
- IP地址欺骗攻击:攻击者可能伪造或冒用他人的IP地址,以获取未授权的访问或进行追踪、伪装等恶意行为。
- 源路由欺骗等:攻击者通过伪造源IP地址和路由信息,使数据包绕过网络中的安全措施,进一步隐藏其真实身份和位置。
拒绝服务攻击
- 碎片攻击:攻击者可能利用IP报文的碎片化机制,发送具有欺骗性负载或特殊片段的数据包,绕过防火墙或IDS/IPS等网络安全设备的检测和过滤。
- 死亡之ping:又称Ping of Death,是一种网络攻击方法。它利用很大的ICMP Echo Request数据包发送给目标设备,并超出了设备能够处理的正常范围。这可能导致设备无法正常处理这样大的数据包,造成设备崩溃或无法提供正常的网络服务,称为拒绝服务攻击。简单来说,死亡之Ping就像是发送一个特别大的数据包给一个设备,这个设备无法处理这么大的包,结果可能导致设备无法正常工作或无法继续提供正常的网络服务。
传输层安全风险
- 传输层主要为两台主机上的应用程序提供端到端的通信服务。传输层有TCP (传输控制协议)和UDP (用户数据报协议) 两个协议
- TCP通过三次握手提供一种可靠的、面向连接的数据通信服务
- UDP协议结构简单,占用资源少,处理效率高,能够提供无连接的不可靠的安全服务。
安全问题
TCP
- SYN Flood拒绝服务攻击
- 会话劫持攻击
UDP
- 流量型拒绝服务攻击 (例如 UDP Flood)
提供面向连接的、可靠的字节流服务
提供可靠性服务
- 数据包分块、发送接收确认、超时重发、数据校验、数据包排序控制流量
- ......
TCP三次握手
- 第一次握手(SYN-SENT):客户端向服务器发送一个SYN包,其中SYN标志位被设置为1,同时客户端选择一个初始的序列号(ISN)。
- 第二次握手(SYN-RECEIVED):服务器接收到客户端发送的SYN包后,应答一个ACK包和自己的SYN包。ACK包确认收到客户端的SYN包,并确认客户端的序列号,同时服务器选择自己的初始序列号。
- 第三次握手(ESTABLISHED):客户端收到服务器的ACK包和SYN包后,确认收到服务器的SYN包并发送一个ACK包,确认服务器的序列号。这个ACK包到达服务器后,服务器和客户端的连接就正式建立起来。

TCP四次挥手
- 第一次挥手(FIN-WAIT-1):连接的一方发送一个FIN包,表示自己已经完成数据的发送。
- 第二次挥手(CLOSE-WAIT):对方接收到FIN包后,发送一个ACK包,确认收到FIN包,但自己还有数据要发送。
- 第三次挥手(FIN-WAIT-2):对方完成数据的发送后,发送一个FIN包,表示自己也完成了数据的发送。
- 第四次挥手(TIME-WAIT):连接的一方接收到FIN包后,发送一个ACK包,确认收到FIN包,并进入一个TIME-WAIT状态,等待一段时间后关闭连接。

为什么建立连接是三次握手,关闭连接确是四次挥手呢?
建立连接的时候,服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。
而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。
UDP协议提供面向事务的简单不可靠信息传送服务
特点
- 无连接、不可靠
- 协议简单、占用资源少,效率高
- ····
TCP和UDP协议对比:
- TCP设计用于传输对数据传输可靠性有严格要求的数据,例如SSL、TLS,由于tcp采用三次握手方式,攻击者可利用两次握手实施 SYN Flood攻击。
- UDP设计用于传输对实时性要求较高,但对数据传输可靠性没有严格要求的数据。例如网络视频、语音等。由于UDP协议的高效,攻击者可利用UDP协议产生大量的数据用于实施拒绝服务攻击(UDP FIood)。
应用层安全风险
- 应用层是TCP/IP体系的最高层,对应OSI模型的上三层 (应用层、表示层和会话层),为运行在不同端系统上的应用程序进程提供报文传递服务。
- 典型的应用层协议包括网页浏览使用的HTTP (超文本传输协议)、收发电子邮件使用的SMTP (简单邮件传送协议) 和POP3 (邮局协议)、文件传输的 FTP (文件传输协议)等。不同的应用层协议实现差异较大,根据各自特性都有自身的安全性问题。
安全问题
- 身份认证简单,面临口令破解、身份伪造等攻击威胁;
- 使用明文传输数据,面临数据泄露、数据伪造等一系列问题,攻击者可通过嗅探等方式获取传输中的敏感信息;
- 缺乏数据完整性保护,面临数据破坏、篡改等问题,攻击者可通过更改用户提交的数据,从而实施欺诈。
TCP/IP协议族安全性问题随着互联网的发展日益突出,相关组织和专家也对协议进行不断的改善和发展,为不同层次设计了相应的安全通信协议,用于对不同层次的通信进行安全保护,从而形成了由各层次安全通信协议构成的TCP/IP协议族安全架构。
网络接口层
- 主要是对连接提供安全保障,通过建立专用通信链路,在主机或主机与路由器之间提供安全保护。该层安全通信协议主要有PPTP、L2TP等。
互联网络层
- 解决IP的安全问题,其主要安全通信协议是IPSeC协议。
传输层
- 传输层安主要在端到端实现,提供基于进程到进程的安全通信,其主要安全通信协议有SSL和TLS等协议。
应用层
- 根据特定应用的安全需要及其特点而设计的安全协议,如电子邮件安全协议S/MIME,安全超文本传输协议S-HTTP等。
三、TCP/IP安全架构
IPSec
IPSec(互联网协议安全)是由IETF(互联网工程任务组)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。
IPSec用于解决IP层上的安全性问题,并同时支持IPv4和IPv6网络。IPSec协议工作在IP层,提供多项安全服务,包括:
- 访问控制
- 无连接的完整性
- 数据源认证
- 机密性保护
- 有限的数据流机密性保护
- 抵御重放攻击
IPSec协议通过认证头协议(Authentication Header,AH)为IP数据报提供无连接的完整性和数据源认证,并提供防止重放攻击的保护。一旦建立安全连接,AH会尽可能地为IP头和上层协议数据提供足够的认证。
IPSec协议还通过封装安全载荷协议(Encapsulating Security Payload,ESP)对需要保护的数据进行加密,为这些数据提供保密性和完整性保护能力。ESP协议和AH协议可以单独使用,也可以同时使用,相互结合起来提供更强的安全性能。
SSL
- SSL(安全套接层)是由网景公司于1990年开发的协议,用于保障Web通信的安全性。它的主要任务是提供私密性、信息完整性和身份认证。
- SSL使用对称密码算法中的密钥作为会话密钥,用于对会话的数据进行加密。而会话密钥的交换则使用非对称密码算法的公钥体系,确保了通信双方之间的数据传输的保密性和可靠性。这样,SSL为客户端应用和服务器应用之间的通信提供了安全保障。
- SSL之所以被广泛应用,主要是因为它能对数据进行加密,提供身份验证和消息完整性保护机制,并且支持为任何基于TCP的应用层协议提供安全保护。此外,SSL的部署也比较简单。
TLS
TLS (传输层安全性协议) 是在SSL v3.0的基础上进行增强和修改后形成的安全通信协议,可以认为是SSL的后续版本,与SSL协议的差异非常微小,仅仅是在一些细节上有区别。TLS通过协商和认证,创建安全会话通道,任何应用层协议的数据在通过TLS协议进行传送时都受到保护。TLS协议的优势是与高层的应用层协议如HTTP、FTP、 Telnet等) 完全兼容,应用层协议能透明地运行在TLS协议之上,目前web访问使用的https协议,大多使用的HTTP协议和TLS1.2协议。
相关文章:
2.3 网络安全协议
数据参考:CISP官方 目录 OSI七层模型TCP/IP体系架构TCP/IP安全架构 一、OSI七层模型 简介 开放系统互连模型(Open System Interconnection Reference Model,OSI)是国际标准化组织(ISO)于1977年发布的…...
Apache Flink概述
Flink 是构建在数据流之上的一款有状态的流计算框架,通常被人们称为第三代大数据分析方案 第一代大数据处理方案:基于Hadoop的MapReduce 静态批处理 | Storm 实时流计算 ,两套独立的计算引擎,难度大(2014年9月&#x…...
django使用mysql数据库
Django开 发操作数据库比使用pymysql操作更简单,内部提供了ORM框架。 下面是pymysql 和orm操作数据库的示意图,pymysql就是mysql的驱动,代码直接操作pymysql ,需要自己写增删改查的语句 django 就是也可以使用pymysql、mysqlclient作为驱动&a…...
MongoDB文档--基本概念
阿丹: 不断拓展自己的技术栈,不断学习新技术。 基本概念 MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual mongdb是文档数据库 MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包…...
【TypeScript】TS入门及基础学习(一)
【TypeScript】TS入门及基础学习(一) 【TypeScript】TS入门及基础学习(一)一、前言二、基本概念1.强类型语言和弱类型语言2.动态语言和静态语言 三、TypeScript与JavaScript的区别四、环境搭建及演练准备4.1 安装到本地4.2 在线运…...
Dockerfile构建LNMP镜像(yum方式)
目录 Dockerfile构建LNMP镜像 1、建立工作目录 2、编写Dockerfile文件 3、构建镜像 4、测试容器 5、浏览器访问测试: Dockerfile构建LNMP镜像 1、建立工作目录 [roothuyang1 ~]# mkdir lnmp/ [roothuyang1 ~]# cd lnmp/ 2、编写Dockerfile文件 [roothuyang1 …...
Flink Windows(窗口)详解
Windows(窗口) Windows是流计算的核心。Windows将流分成有限大小的“buckets”,我们可以在其上应用聚合计算(ProcessWindowFunction,ReduceFunction,AggregateFunction或FoldFunction)等。在Fl…...
AssetBundle学习
官方文档:AssetBundle 工作流程 - Unity 手册 (unity3d.com) 之前写的博客:AssetBundle学习_zaizai1007的博客-CSDN博客 使用流程图: 1,指定资源的AssetBundle属性 (xxxa/xxx)这里xxxa会生成目录&…...
CompletableFuture原理与实践
文章目录 1 为何需要并行加载2 并行加载的实现方式2.1 同步模型2.2 NIO异步模型2.3 为什么会选择CompletableFuture? 3 CompletableFuture使用与原理3.1 CompletableFuture的背景和定义3.1.1 CompletableFuture解决的问题3.1.2 CompletableFuture的定义 3.2 Complet…...
8.3 作业
整理思维导图 2. 递归实现,输入一个数,输出这个数的每一位 #include <myhead.h> void fun(int t) {if(t 0) return;fun(t/10);printf("%d\n",t%10); } int main(int argc,const char *argv[]) {int t1623809; fun(t);return 0; } 3.递…...
c# COM组件原理
COM(Component Object Model)是一种微软的软件组件技术,用于实现软件组件之间的互操作性。它是一种二进制接口标准,允许不同的软件组件在不同的进程中进行通信。COM组件可以用多种编程语言编写,并且可以在多个应用程序…...
Java POI 百万规模数据的导入和导出
目录 1、百万数据导入1.1 需求分析1.2 思路分析1.3 代码实现1.3.1 步骤分析1.3.2 自定义处理器1.3.3 自定义解析1.3.4 测试 2、百万数据导出2.1、概述2.2、解决方案分析2.3、原理分析2.4、百万数据的导出2.4.1、模拟数据2.4.2、思路分析2.4.3、代码实现2.4.4、测试结果 1、百万…...
如何快速用PHP取短信验证码
要用PHP获取短信验证码,通常需要连接到一个短信服务提供商的API,并通过该API发送请求来获取验证码。由于不同的短信服务提供商可能具有不同的API和授权方式,我将以一个简单的示例介绍如何使用Go语言来获取短信验证码。 在这个示例中ÿ…...
CloudStack 的 AsyncJobManagerImpl
在 CloudStack 的 AsyncJobManagerImpl 类中,下列方法的作用如下: getConfigComponentName(): 返回配置组件的名称。 getConfigKeys(): 返回与异步任务管理器相关的配置键列表。 getAsyncJob(): 根据异步任务的 ID 获取相应的异步任务对象。 findInst…...
OAuth机制_web站点接入微软azure账号进行三方登录
文章目录 ⭐前言⭐微软三方登录流程💖 web站点获取微软账号流程💖 node封装微软登录接口💖 webapp 自定义code换token💖 调用 Microsoft Graph API💖 前端唤醒authlink进行登录回调逻辑 ⭐结束 ⭐前言 大家好…...
Linux ALSA音频工具aplay、arecord、amixer的使用方法
ALSA 是Advanced Linux Sound Architecture的缩写,先进的Linux音频架构,为Linux操作系统提供音频和MIDI功能。 aplay命令 aplay是播放命令。 rootimx6ul7d:~# aplay -h Usage: aplay [OPTION]... [FILE]...-h, --help help--version …...
编写一个最简单的Linux服务端和客户端程序
2023年8月3日,周四下午 这篇文章我从下午开始写了几个小时, 这篇文件基本总结了我今天学到的知识, 在写这篇文章的过程中灵感不断涌现、想明白了很多知识点,非常酣畅淋漓。 什么叫做深度学习?这就是深度学习&#…...
openKylin顺利加入RISC-V 基金会,推动架构芯片与操作系统协同发展
日前开放麒麟openKylin宣布,正式加入RISC-V基金会,由此成为其产业联盟成员。 公开资料显示,ISC-V是由加州大学伯克利分校研究团队在 2010年推出的一个开源指令集架构(ISA)。并且RISC-V拥有免费、高效、简洁和开放等特性qlbrsb。 作为新生的…...
SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【二】
文章目录 SSM--基础环境搭建【二】项目介绍项目功能/界面● SSM 整合项目界面 项目全局配置web.xmlSpringMVC 配置 SSM–基础环境搭建【二】 项目介绍 项目功能/界面 ● SSM 整合项目界面 项目全局配置web.xml 配置furns_ssm\src\main\webapp\WEB-INF\web.xml , 和项目全局…...
出现一次的数字(其他数字出现三次,两次)
位运算的知识点: 异或运算具有以下几个重要性质 交换律:a ^ b b ^ a 结合律:a ^ (b ^ c) (a ^ b) ^ c 任何数与0异或等于它本身:a ^ 0 a 任何数与自身异或等于0:a ^ a 0 对于数组中所有元素进行异或运算…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
