【小白必备】网络安全基础:五层模型与常见协议深度解析,建议收藏学习
文章系统介绍了计算机网络五层模型及各层核心协议,包括应用层的DNS、HTTP、HTTPS,传输层的TCP、UDP,网络层的IP、ICMP,数据链路层的ARP等。详细解释了各层协议的功能、工作原理及特点,分析了整体网络传输流程,并强调了分层设计如何简化网络复杂性。最后提供了网络安全学习资源,适合初学者系统掌握网络基础知识。
前言
本篇博客将对基于 计算机网络五层模型 中的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理
计算机网络五层模型回顾
应用层:为用户为用户的应用进程提供网络通信服务 协议——DNS协议、HTTP协议、HTTPS协议传输层:负责两台主机之间的数据传输,将数据从发送端传输到接收端 协议——TCP协议、UDP协议网络层:负责传输的地址管理和路由选择,在众多复杂的网络环境中确定一条合适的路径 协议——IP协议数据链路层:负责设备之间数据帧的传送和识别,将网络层传递的数据报封装成帧,在处于同一个数据数据链路节点的两个设备之间传输 协议——ARP协议、MTU协议物理层:负责光电信号的传递方式,实现相邻计算机节点之间比特流的透明传输
对于五层网络模型基本都是耳熟能详,但是有没有思考过,网络为什么要这样分层呢?
最直接的回答就是为了简化网络设计的复杂性,通信协议采用分层结构,各层之间既相互独立又相互协调工作,如此以来便达到的高效的目的。如同设计模式中对于设计一个复杂的程序时,尽量使程序各功能之间是解耦合的一样,对于复杂的网络设计,分层设计也是很明智的一种做法。
网络分层的最本质就是每一层独立的完成一个任务而不必考虑自己任务之外的实现,而因为不同的任务因此就有了每一层所对应的不同设备。(实例到应用就是,物理层只需要关系0和1的光电信号如何传输,而对它所表达的内容毫不关心;再往上数据链路层只需要关心封装好的数据帧如何准确的送到对应的MAC地址的目的主机中,而不必关心数据报的具体内容和具体会通过何种方式光纤还是局域网…同理往上对于所有层)
应用层协议
应用层协议主要负责各个程序间的通信,发生网络传输一个数据时,先由应用层对数据按照对应的协议封装,然后交给下一层传输层,当经过一系列网络传输,数据达到接收端时,一层层的分用,最后一层再由应用层分用,最终得到数据。
DNS协议:
DNS协议是一个应用层协议,建立在TCP和UDP的基础之上,使用默认端口为53,其默认通过UDP协议通信,但如果报文过大是则会切换成TCP协议。
域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44),本质是通过DNS域名和IP地址的对应关系转换,而这种对应关系则保存在DNS服务器中
域名的解析过程:
域名的解析工作大体上可以分为两个步骤:第一步客户端向本地DNS服务器发起一个DNS请求报文,报文里携带需要查询的域名,第二步本地DNS服务器向本机回应一个DNS响应报文,报文里携带查询域名所对应的IP地址
具体流程如下:
在本地缓存中查询,如果有则返回对应IP,如果没有将请求发给DNS服务器当本地DNS服务器接收到查询后,先在服务器管理区域记录中查询,若没有再在服务器本地缓存中查询,如果没有将请求发送到根域名服务器根域名服务器负责解析请求的根域部分,然后将包含下一级域名信息的DNS服务地址返回给本地DNS服务器本地DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域的DNS服务器地址按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应的IP地址信息本地DNS服务器将最终查询到的IP返回给客户端,让客户端访问对应主机
HTTP协议
HTTP协议是一个简单的请求——响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。
HTTP是基于TCP协议,且面向连接的。典型的HTTP事务处理有如下的过程:
客户端与服务器建立连接;客户端向服务器提出请求;服务器接受请求,并根据请求返回相应的数据作为应答响应;客户端与服务器关闭连接。
HTTP协议报文格式 HTTP报文由从客户机到服务器的请求(Request)和从服务器到客户机的响应(Respone)构成
请求由请求行,请求头,请求体组成 请求行中包含请求方法、路径、版本号,请求头为多个key-value数据,请求正文包含一些请求的数据 响应由响应行,响应头,响应体组成 响应行中包含状态码,状态码描述,版本号,响应头为多个key-value数据,响应正文包含一些响应的数据
常见HTTP响应状态码汇总
200 OK :客户端请求成功
3XX系列
301 Moved Permanently :请求的资源以被永久的移动到新URL中,返回的Response中包含一个Location,浏览器会自动重定向到新URL,以后请求都会被新的URL替代 302 Found :与301类似,但请求的资源只是临时的被移动到新的URL中,下次请求客户端继续使用原URL 307 Temporary Redirect :临时重定向,类似于302,使用GET请求重定向
4XX系列
400 Bad Request :客户端请求语法错误,服务器无法理解(在 ajax 请求后台数据时比较常见) 401 Unauthorized :请求要求用户的身份认证 403 Forbidden :服务器理解客户端请求,但是拒绝执行(一般用于用户级别为达到要求等等不支持访问) 404 Not Found :服务器无法根据客户端请求找到对应资源 405 Method Not Allowed :服务器不支持该方法
5XX系列
500 Internal Server Error :服务器内部错误,无法完成请求 503 Service Unavailable :由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
HTTP协议的特点
支持服务器/客户端模式传输较快速,客户端向服务器发送请求,只需要传输请求方法和路径灵活,HTTP允许传输任意类型的数据对象无连接,每次连接只能处理一个请求,服务器处理完客户端请求,客户端收到响应后就断开连接无状态,协议本身对事务处理没有记忆能力,如果后序连接需要之前发送的信息时就需要重传
HTTP1.0和HTTP1.1和HTTP2.0的区别:
HTTP1.0和HTTP1.1的区别:
长连接:HTTP1.0只支持浏览器与服务器的短连接,即每次请求都要重新建立连接,服务器无法记录每个历史请求,HTTP1.1支持长连接即在一次连接下,浏览器可以向服务器发送多次请求增加Host字段:HTTP1.0中认为每个服务器都绑定这唯一一个IP,所有发送的请求头URL中没有host信息,而HTTP1.1在请求和响应中都支持了host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)缓存:HTTP1.1在1.0的基础上加入了一些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,而是与源服务器进行重新激活(revalidation)。错误提示:HTTP1.0中定义了16个状态码,对错误或警告的提示不够具体。HTTP1.1引入了一个Warning头域,增加对错误或警告信息的描述,并且还新增了24个状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除
HTTP1.X和HTTP2.0的区别
增加二进制格式解析:HTTP1.X解析基于文本,而文本格式本身就具有多样性,很多场景下不方便,而引入二进制后,只有0和1组合,使解析更加方便也增强了健壮性多路复用:即每个request都是是用作连接共享机制的,每个request都对应一个id,使一个连接可以有多个请求,再根据id将request归属到不同的服务端请求里header压缩:HTTP1.X中,每次传输都要写点header头,占用了大量数据,因此HTTP2.0在客户端和服务端各保存了一份header fields表,每次传输时只需传输header的更新信息,将header fields表更新即可实现header传输服务端推送:HTTP2.0也添加了server push功能
HTTPS协议
HTTPS同样作为应用层协议,可以说它是HTTP的升级版,增加了传输数据的安全性,HTTPS协议是在HTTP的基础上增加了一个SSL外壳,HTTPS运行在SSL上,SSL运行在TCP上,对数据的加密工作就是在SSL上完成的
其保证安全性的做法是通过证书验证和对信息混合加密的方式 混合加密技术:
混合加密技术:结合对称加密与非对称加密 服务端生成私钥,再通过私钥生成公钥,然后将公钥放在证书中颁发给客户端 使用公钥和私钥以非对称方式加密生成密钥 客户端接下来的传输数据中,都会用密钥以对称方式对信息加密,再传输给服务端
对于,上述提到的公钥和私钥,我们规定用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开_
所以HTTPS传输数据是用被密钥加密的密文和用公钥加密的私钥来保证数据安全的
HTTPS加密,只用对称加密可以吗? 不行!无法保证安全性,因为只用对称加密即只用密钥对数据加密传输的话,如果传输途中,信息被第三方劫持,获取到密钥,那接下来的传输,第三方都可以通过密钥对数据解密从而得到原始数据。
HTTPS加密,只用非对称加密可以吗?两次呢? 同样不行,如果只用非对称加密。客户端每次传输数据用公钥加密,服务端再用私钥解密这一方向看似安全,但当服务端发送数据用私钥加密,客户端收到用公钥解密时,第三方劫持到信息,但可能在此之前就获得公钥,因为首次服务端向客户端发送公钥是明文传输的。 而换个角度如果使用两次非对称加密,即两组公钥,两组私钥,客户端服务端各持一组,理论上可以达到安全,但实际HTTPS并未采用,因为非对称加密耗时十分大
证书:
单有混合加密技术,看似已经保证了传输的安全性,实则还是有漏洞,问题就在于服务器根本无法识别发送过来的公钥是否是自己的,如此以来在第三方劫持到数据后,自行再定义一个公钥B,并将公钥B传回给客服端,此时客户端就会利用该公钥B重新加密数据然后发送,此时第三方就可以通过自己的公钥B解密得到原始数据了。
证书就解决了这一问题,指定颁发的为CA机构,当网站使用HTTPS时,会向CA机构申请一个数字证书,证书中可以存放公钥、数据等信息,由此以来,服务端就可以通过证书来向客户端证明正确的公钥是哪一个,以此保证安全。 而对于证书,还有一些自己的放篡改机制,防止第三方获取到使用
传输层协议
传输层的主要功能是为了实现“端口到端口”的通信,以确保一条数据发送到主机上后,能够正确的传递到对应的端口上
UDP协议
UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法,但是UDP也有自己的缺陷,一旦进行通信,就不知道对方是否接收到数据了,很有可能会造成传输数据的丢包问题
特点:
无连接:只需要知道目的ip和端口号就可以发送数据,无需建立连接不可靠:没有一系列机制来应对传输数据时的丢包问题面向数据报发送:应用层交给UDP什么样的报文,UDP就会发送什么样的,不会进行拆分,合并UDP一次传输的数据大小有限,最大64k
UDP的传输流程 UDP的适用范围:
由于UDP不属于连接型协议,所以具有资源消耗小。处理速度优的特点,因此经常使用与视频、音频通话传输中,因为发送的数据较多,偶尔丢包一两个不会产生太大影响
TCP
因为上述讲到UDP的传输是不可靠的,经常会导致连接错误、数据丢包问题,针对这些问题规定了另一个传输层协议——TCP协议,TCP是一种面向连接、可靠的、基于字节流的传输层协议
TCP的特点:
面向连接:在传输数据是,要先建立起客户端与服务端的连接,才能进行数据传输可靠的通信:TCP输出数据中,会基于内部的各种机制保证数据传输到目的端口基于字节流:TCP传输数据是基于字节传输的,易于对数据的拆分与合并发送TCP的头部比UDP的开销要打,因为要存放更多的信息
TCP与UDP的区别:
UDP是无连接的,TCP是有连接的UDP是不可靠的,TCP是可靠的UDP面向数据报,TCP面向字节流UDP比TCP的传输消耗小,速度更快
这里分享一张神图,以便于更加形象的理解TCP和UDP的区别
网络层
网络层是基于数据链路层和传输层之间的第三层协议,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。
IP协议
IP协议是TCP/IP网络模型中的核心部分,他提供了一种分层的、无关硬件的寻址方式,可以在复杂的路由式网络中传递数据所需的服务
IP协议可以将多个交换网络连接起来,在源地址和目的地址之间传输数据包,同时它还能提供数据的组装功能,以适应不同网络对数据包大小的要求
预研知识:
IP地址: IP地址是互联网协议特有的一种地址,它是IP协议提供的一种统一的地址格式,IP地址为互联网的每个网络和每台主机分配了一个逻辑地址,以此来屏蔽物理地址的差异
IP地址的格式: IP地址为32位地址,被分为4个部分,如XXX.XXX.XXX.XXX,IP地址又被划分为两个部分 网络号:前三部分用于标识网段,保证相互连接的两个网段有不同标识 主机号:由最后一部分组成,用于标识主机,保证处于同一网段的两台主机有不同的主机号 通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同4
MAC地址: 被称为物理地址,是用来标识网络中每个设备的,MAC地址是设备出厂之后就写死的
引入IP地址的目的: 在单个局域网网段中,计算机与计算机之间可以使用数据链路层提供的MAC地址进行通信 如果在路由式网络中,计算机之间就不能用MAC地址实现通信,主要是因为在路由式网络中,数据只是经过一次简单的利用两个计算机之间的MAC地址建立通信,而是需要进行多次的通信,每次跳转都会体目的主机更近一步,经历都次跳转,最终找到目的主机实现通信,而这个过程中,要知道每次向哪跳转才能更接近目的主机,必须使用一种逻辑化、层次化的寻址方案对网络进行组织,这就是 IP 地址
IP协议数据报格式
”
IP协议的工作方式:
由于网络分为同网段和不同网段,所以会分成两种方式
同网段:如果源地址主机和目的地址主机处于同一网段,则目的IP地址被 ARP协议 解析为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目的主机不同网段: 如果源地址主机和目的地址主机不处于同一网段,则数据包会经历多个过程最终发送给目的主机 1、网关(一般为路由器)的 IP地址 被 ARP协议 解析为 MAC地址,根据该 MAC地址 源主机会将数据包发送到网关 2、网关根据数据包中的网段ID找到目标网络,如果找到,将数据包发送给目标网路,如果没有则重复第一步发送到更高一级网关 3、数据包经过网关发送到正确的网段后,目标IP被 ARP协议 解析为MAC地址,在根据该 MAC地址 将数据包发送给目标地址的主机
ICMP协议
ICMP协议又叫控制报文协议,ICMP协议用于在IP 和 路由器之间传递控制消息,描述网络是否通畅、主机是否可达、路由器是否可用等网络状态,ICMP本身并不传输数据,但对于用户间数据的传递起着重要的作用
作用: 在数据包从源主机传输到目的主机的过程中,会经历一个或多个路由器,而数据包在经过这些路由器传输过程中,可能会遇到很多问题,最终导致数据包没有成功传递给目的主机。为了了解数据包在传输过程中在哪个环节出了问题,就需要用到ICMP协议,它可以跟踪数据包,并把消息返回给源主机。
数据链路层
数据链路层是TCP/IP网络模型的第二层,基于物理层和网络层之间,数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
ARP协议
ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题
引入ARP协议的目的: 由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。
ARP的工作流程:
如图展示的是同一网段下的两台主机,ARP的工作流程
主机A以广播的形式向该网段内的所有主机发送ARP请求,请求中包含了目的主机的IP地址主机B接收到请求,通过请求中的目的IP地址发现自己是主机A要找的,返回响应,响应包括主机B的 MAC地址
ARP缓存: 在请求目标主机的 MAC 地址时,每次获取目标主机 MAC 地址都需要发送一次 ARP 请求,然后根据响应获取到 MAC 地址。
为了避免重复发送 ARP 请求,每台主机都有一个 ARP 高速缓存。当主机得到 ARP 响应后,将目标主机的 IP 地址和物理地址存入本机 ARP 缓存中,并保留一定时间。
只要在这个时间范围内,下次请求 MAC 地址时,直接查询 ARP 缓存,而无须再发送 ARP 请求,从而节约了网络资源。
物理层
物理层,顾名思义就是用物理手段将两个要通信的电脑连接起来,主要用来传输0、1光电信号,因为这一层过于偏硬件,所以本文不做过多的赘述
整体的网络传输流程
经过以上对网络传输层中每一层理解下面我们来看看,当访问一个网页时,到底发生了什么?
主机A:发送http://www.baidu.com网络数据报
DNS解析:将域名转换成对应IP地址(本机DNS缓存栈开始找—>逐级向上查找,如果根域服务器找不到,表示公网上没有该域名主机)找到IP后:通过目的IP找到对应的目的MAC地址根据目的IP计算目的主机是否和主机A处于同一网段如在同网段:接通过ARP协议解析出对应的目的MAC,跳转到底9步如不在同一网段:发送数据报到网关,现在ARP缓存表查找,通过网关IP查找MAC地址,找不到发送查询MAC广播数据报,最终返回网关自己的MAC交换机转发:在MAC地址转换表中找到对应MAC交换机接口路由器接收:分用数据报
途中的设备:与第7步同样操作如目的IP对应的MAC地址不是当前设备则继续重复该操作继续往更接近目的IP的路由发送
找到目的主机B,主机B的服务器开始接受分用请求,解析,最终组织响应
同上述操作一样,由主机B向主机A发送数据最终主机A接受到数据报,经过分用,解析,最终得到响应
文章来自网上,侵权请联系博主
互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!
题外话
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术! 一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。 
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)