网络定义多台设备通过连接介质,能互相传数据,共享资源的集合协议:设备之间的沟通规则拓扑结构网络设备的物理连接方式星型:就是有一个中间的设备转一下总线型:学校机房那种所有设备连着一台设备环型:按一定顺序传数据,一般是医院用的多网状型:每台设备都是一联多,传数据时根据算法选择最优路劲传输OSI 七层模型定义:国际上把复杂的网络拆分成了七个独立的功能层,每层有独立任务,互不干扰物理层:负责物理传输数据链路层:同一网络里面,把数据包封装成“帧”,进行发送啊,传输,检测之类的,确保数据能传输网络层:给数据加ip,找到目标设备的ip地址然后选择最优路径传输数据,实现网络之间的通信传输层:主要是实现原终端到目标终端的数据传输流程通过“端口”号识别同一设备的不同应用通过TCP协议规则进行重要数据传输,UDP协议进行快速传输(UDP安全性较低,但快)防火墙就是基于端口号进行过滤的端口扫描:扫描web服务器的开放端口,寻找攻击漏洞(相当于写了一个监听程序,和开放端口绑定,实时检测端口的传输信息)会话层:建立和维护通信会话传完了之后表示层数据格式转换和加密和压缩(把我们的语言准换成计算机语言,https数据加密,网页html/css文件自动压缩和解压)应用层:实现网页请求响应和域名解析比如说就是你输入www.baidu,这一层给你解析成ip地址然后向百度的web服务器发请求,接收数据的时候把数据给你转化成你能看懂的语言通信流程(看看就行,大概知道啥流程)应用层(7):浏览器输入域名,通过 DNS 协议查询百度的 IP(180.101.49.11),生成 HTTP 请求(包含访问路径、浏览器信息);表示层(6):如果是 HTTPS,将 HTTP 请求数据用 SSL/TLS 加密,同时压缩网页请求中的冗余数据;会话层(5):浏览器与百度服务器建立 HTTPS 会话,协商加密算法和会话超时时间;传输层(4):将加密后的 HTTP 请求分成 TCP 数据段,添加源端口(如随机端口 12345)和目标端口(443),通过 TCP 三次握手建立连接;网络层(3):给 TCP 数据段添加源 IP(你的电脑 IP:192.168.1.100)和目标 IP(180.101.49.11),路由器通过路由表选择传输路径;数据链路层(2):给 IP 数据包添加源 MAC 地址(你的电脑网卡 MAC)和目标 MAC 地址(下一跳路由器 MAC),封装成以太网帧,通过交换机转发;物理层(1):将以太网帧转换成电信号 / 光信号,通过网线 / 光纤传输到百度服务器所在的网络;接收端反向流程:百度服务器从物理层到应用层,依次解封装(拆帧→拆数据包→拆数据段→解密→解压缩),最终拿到 HTTP 请求,处理后返回网页数据,再通过七层模型反向传输到你的浏览器,浏览器解析后展示网页安全应用层:HTTP/HTTPS 协议(Web 安全的核心,如 SQL 注入、XSS 攻击都与 HTTP 请求处理相关)、DNS 协议(域名劫持攻击);传输层:TCP 协议(三次握手、四次挥手的原理,SYN 洪水攻击防御)、端口安全(开放端口管理);网络层:IP 地址(IP 欺骗攻击)、路由协议(网络拓扑安全)、ICMP 协议(ping 洪水攻击);数据链路层:MAC 地址过滤、VLAN 隔离(Web 服务器和数据库服务器的网络隔离)TCP/IP 协议簇:用来传输数据的网络接口层:把ip数据打包成帧,然后传给接收设备,物理介质是以太网,所以打开cmd查询ip就能看到以太网适配器区分osi的数据连接层的打包osi是打包网络数据TCP是打包的应用的数据网络层:IP 协议(IPv4/IPv6)给主机分配唯一地址子网掩码通过判断ip地址区分内网和外网用的IP 192.168.1.100 + 子网掩码 255.255.255.0 → 网络地址192.168.1.0网关子网掩码判断不是内网就发给网关路由协议(RIP、OSPF)就是跨地区访问服务器用的ARP 协议网络层ip转MAC地址用的(计算机只会看MAC地址不会看ip)ICMP 协议报错用的传输层TCP 协议(靠谱)LISENING端口处于监听状态ESTABLISH网站已经连接,可以传数据TIME_WAIT我关了连接程序,但是系统没有关,它在等待,在处理残留信息CLOSE_WAIT系统关了,但是我没关程序UDP 协议(快但是不靠谱)一般就是收收短信,存一下游戏数据之类的不太重要的数据端口范围:0——655350——1023系统留的端口http80https443ssh223306MysqlDNS53注册端口:1024——49151这个一般是开发啥的还有就是自定义服务器用的动态端口:同一个web服务,你开了好几个网页,为了区分数据,客户端会临时给你分配一个动态端口号跟在ip后面(http网站为例),然后传数据应用层功能实现用的HTTP/HTTPS 协议核心方法客户端对服务器的“操作指令”浏览器和web服务器之间传输超文本(html,css,图片,js)前者不加密,后者加密(混合加密,不重要)常用方法GET 获取资源向服务器发出请求,读取资源用的请求参数通过 URL 传递(如https://www.baidu.com/s?wd=HTTP,wd=HTTP是查询参数),参数可见于地址栏应用访问网页(如输入www.baidu.com,浏览器发送 GET 请求获取首页 HTML);搜索功能(如百度搜索关键词,参数通过 URL 传递);读取接口数据(如https://api.example.com/user/1,获取 ID=1 的用户信息)POST 提交数据提交数据用的,服务器接收到数据之后通常会进行一些操作的请求参数放在请求体(Request Body)中,不暴露在 URL 中,可传递大量数据(无明确长度限制,由服务器配置决定)应用场景用户注册 / 登录(提交用户名、密码);上传文件(如头像、文档);提交订单、支付操作;接口提交数据(如POST /api/user,创建新用户)注意:POST 请求参数不在 URL 中,但不代表 “安全”—— 未加密的 HTTP 传输中,请求体数据仍会被抓包窃取(需用 HTTPS 加密);网络安全中,POST 请求是表单注入(如 SQL 注入、XSS)的主要攻击入口,需对请求体数据进行过滤校验PUT 更新资源把新的数据发给服务器,服务器接收到之后,将新的数据覆盖旧的数据,完成更新必须指定 “唯一资源标识”(如 URL 中的 ID),否则服务器无法确定要更新哪个资源DELETE 删除资源就是删除用的状态码2xx:成功状态码200成功,代表服务器已经处理了请求201创建成功,POST/PUT请求创建资源成功3xx:重定向状态(其实就是你要找的东西在这个网站上面转移到了另外一个新的网站)301永久重定向,就是以后的资源都在新的网站看了302临时重定向,就是临时的,下一次访问原网页还能找着数据4xx:客户端错误状态码400:请求错误(客户端输入的请求格式不对)401:未授权(未登录)得输入密码403:登陆成功了但是禁止访问(比如说有的东西只能管理员看)404:资源没了405:服务器不支持客户端使用的http方法5xx:服务器错误500:服务器内部错误(这个一般是代码bug)503:服务器无法处理请求(一般是服务器崩了或者是维护中)502: 网关错误,网关把请求数据发给服务器的时候,服务器由于崩了,处理不了网关请求,网络断开或者是返回了网关处理不了的数据504:网关超时,就是服务器比较忙,处理的请求比较多,没有及时处理网关发的请求数据,网关没等到返回数据,就给了个504DNS 协议把域名转化成ip地址SSH 协议远程登录安全通道,远程登录服务器时,这个东西加的密web访问流程(大概看看就行)应用层:用户输入域名,浏览器发起 HTTPS 请求,DNS 协议解析www.baidu.com为 IP(如180.101.49.11);传输层:HTTPS 基于 TCP,客户端与百度服务器进行三次握手,建立 TCP 连接(客户端动态端口 ↔ 服务器 443 端口);网络层:客户端 IP(如192.168.1.100)与百度服务器 IP,通过路由协议(OSPF)规划最优路径,ARP 协议解析网关 MAC 地址,IP 协议封装数据报,ICMP 协议保障网络连通;网络接口层:IP 数据报封装为以太网帧,通过 Wi-Fi / 网线传输到网关,最终转发到百度服务器;服务器端反向解封装(帧→IP 数据报→TCP 段→HTTPS 数据),处理请求后返回响应数据,按原路径传输回客户端,浏览器渲染网页网络设备路由器(也是协议搞的功能)网络层工作用来跨网络数据转发的选择数据最优传输路径交换机数据链路层工作,就是一个传数据的防火墙一个系统软件,部署在内网和公网之间原理限制特定 IP、端口、协议过滤端口扫描、DoS/DDoS 攻击、恶意数据包(如 SQL 注入、XSS 攻击的特征码匹配)记录所有通过防火墙的数据包网关:进行协议转换的(我感觉也没啥用)代理服务器在应用层,相当于一个中间人正向代理我要干啥,不想让别人知道我的ip,用代理服务器,对方只能看到代理服务器的ip反向代理有人想干啥,我替他干,但是他用了代理服务器,我不知道他的真实ip网络通信流程URL 解析(DNS 查询)URL就是一个网址(访问完之后上面的全部的网址)基础地址+数据的⼀个⽹址⽽且必须是.php「.asp「.jsp」这种动态文件,它的后端代码才能接收你传的参数并且根据数据改变显示结果,一般是靶场有这个,如果是其他的网址比如说百度这种大概率就传了没啥改变流程浏览器先查询本地 DNS 缓存(如之前访问过百度,直接获取 IP,流程结束);缓存未命中,向本地 DNS 服务器(如路由器分配的 ISP DNS,如 223.5.5.5)发送递归查询请求;本地 DNS 服务器向根 DNS 服务器(全球共 13 组,负责指示顶级域 DNS 位置)发送迭代查询;根 DNS 服务器返回 “com” 顶级域 DNS 服务器的 IP;本地 DNS 服务器向 “com” 顶级域 DNS 服务器发送查询,获取 “baidu.com” 权威 DNS 服务器的 IP;本地 DNS 服务器向 “baidu.com” 权威 DNS 服务器发送查询,获取www.baidu.com的目标 IP(如 180.101.49.11);本地 DNS 服务器将 IP 返回给浏览器,并缓存该映射关系TCP 连接建立数据传输连接断开网络隔离+访问控制VPN访问公网的时候建了一条加密隧道NAT隐藏一下你的私人ip静态 NAT:一个私有 IP 固定映射一个公网 IP(比如企业的服务器需要对外提供服务);动态 NAT:多个私有 IP 共享一个公网 IP 池(比如小型企业);PAT(端口地址转换):所有私有 IP 共享一个公网 IP,通过端口区分(最常用,家庭路由器都是这个)DMZ隔离服务器用的,相当于又加了一个防火墙,把内网和外网之间划分一个隔离区域(一般是企业接外包用的,用这个对外展示和转发)核心区别VPN:解决 “远程安全访问”,是「跨网络的加密通道」,连接的是 “外部设备” 和 “内网”;NAT:解决 “IP 地址复用 + 隐藏内网”,是「地址转换技术」,连接的是 “内网设备” 和 “公网”本质是ip翻译工具,区分于代理!DMZ:解决 “公开服务与内网隔离”,是「网络区域划分」,隔离的是 “公网” 和 “内网” 之间的公开服务