- 网络定义
- 多台设备通过连接介质,能互相传数据,共享资源的集合
- 协议:设备之间的沟通规则
- 拓扑结构
- 网络设备的物理连接方式
- 星型:就是有一个中间的设备转一下
- 总线型:学校机房那种所有设备连着一台设备
- 环型:按一定顺序传数据,一般是医院用的多
- 网状型:每台设备都是一联多,传数据时根据算法选择最优路劲传输
- 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是打包的应用的数据
- 区分osi的数据连接层的打包
- 网络层:
- 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 协议
- 报错用的
- IP 协议(IPv4/IPv6)
- 传输层
- TCP 协议(靠谱)
- LISENING
- 端口处于监听状态
- ESTABLISH
- 网站已经连接,可以传数据
- TIME_WAIT
- 我关了连接程序,但是系统没有关,它在等待,在处理残留信息
- CLOSE_WAIT
- 系统关了,但是我没关程序
- LISENING
- UDP 协议(快但是不靠谱)
- 一般就是收收短信,存一下游戏数据之类的不太重要的数据
- 端口
- 范围:0——65535
- 0——1023系统留的端口
- http80
- https443
- ssh22
- 3306Mysql
- DNS53
- 注册端口:1024——49151
- 这个一般是开发啥的还有就是自定义服务器用的
- 动态端口:同一个web服务,你开了好几个网页,为了区分数据,客户端会临时给你分配一个动态端口号跟在ip后面(http网站为例),然后传数据
- TCP 协议(靠谱)
- 应用层
- 功能实现用的
- 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 删除资源
- 就是删除用的
- GET 获取资源
- 状态码
- 2xx:成功状态码
- 200成功,代表服务器已经处理了请求
- 201创建成功,POST/PUT请求创建资源成功
- 3xx:重定向状态(其实就是你要找的东西在这个网站上面转移到了另外一个新的网站)
- 301永久重定向,就是以后的资源都在新的网站看了
- 302临时重定向,就是临时的,下一次访问原网页还能找着数据
- 4xx:客户端错误状态码
- 400:请求错误(客户端输入的请求格式不对)
- 401:未授权(未登录)得输入密码
- 403:登陆成功了但是禁止访问(比如说有的东西只能管理员看)
- 404:资源没了
- 405:服务器不支持客户端使用的http方法
- 5xx:服务器错误
- 500:服务器内部错误(这个一般是代码bug)
- 503:服务器无法处理请求(一般是服务器崩了或者是维护中)
- 502: 网关错误,网关把请求数据发给服务器的时候,服务器由于崩了,处理不了网关请求,网络断开或者是返回了网关处理不了的数据
- 504:网关超时,就是服务器比较忙,处理的请求比较多,没有及时处理网关发的请求数据,网关没等到返回数据,就给了个504
- 2xx:成功状态码
- 核心方法
- DNS 协议
- 把域名转化成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
- 核心区别
- VPN:解决 “远程安全访问”,是「跨网络的加密通道」,连接的是 “外部设备” 和 “内网”;
- NAT:解决 “IP 地址复用 + 隐藏内网”,是「地址转换技术」,连接的是 “内网设备” 和 “公网”本质是ip翻译工具,区分于代理!
- DMZ:解决 “公开服务与内网隔离”,是「网络区域划分」,隔离的是 “公网” 和 “内网” 之间的公开服务
- URL 解析(DNS 查询)
计算机网络基础
张小明
前端开发工程师
Mac电脑往U盘拷贝文件有同名的“._”开头的文件,怎么避免?
在Mac电脑上往U盘拷贝文件时,操作系统自动创建一些“._”开头的文件。这些文件称为AppleDouble文件,是Mac OS在非Mac格式的磁盘上存储额外的文件属性、资源分支等信息。 避免产生这些文件的方法有: 使用CleanMyDrive或DotCleaner等第三方应用…
智能体完全指南:从理论到实践,适合小白和程序员的AI学习宝典
本文系统介绍了智能体的定义、类型及运行原理,详细阐述了从传统智能体到大语言模型驱动智能体的演进过程。通过PEAS模型和智能体循环解析了智能体的工作机制,并以智能旅行助手为例展示了实践方法。文章还探讨了智能体作为开发工具和自主协作者的两种应用…
如何用R语言完成高精度生态风险评估?这4个包你必须掌握
第一章:环境监测的 R 语言生态风险评估在环境科学领域,R 语言因其强大的统计分析与可视化能力,成为生态风险评估的重要工具。研究人员可利用其丰富的包生态系统对污染数据、物种分布及气候变量进行建模分析,从而识别潜在生态威胁。…
【Dify索引优化终极指南】:构建毫秒级视频帧检索系统的秘密武器
第一章:视频帧检索的 Dify 索引优化在处理大规模视频数据时,高效检索关键帧是构建智能视觉系统的基石。Dify 作为支持多模态索引与检索的框架,提供了对视频帧特征向量的结构化管理能力。通过对视频帧进行特征提取并建立分层索引结构ÿ…
如何在48小时内掌握单细胞测序的R语言分析?:一线科研专家亲授实战心法
第一章:单细胞测序与R语言分析概述单细胞RNA测序(scRNA-seq)技术的快速发展,使得研究人员能够在单个细胞水平上解析基因表达异质性,揭示复杂组织中的细胞亚群和功能状态。该技术突破了传统批量测序的局限,为…
Dify与Spring AI版本兼容性全解析(附官方支持矩阵+实测数据)
第一章:Dify与Spring AI版本兼容性概述 在构建现代化AI驱动的应用程序时,Dify与Spring AI的集成成为关键环节。两者之间的版本兼容性直接影响开发效率、系统稳定性以及功能完整性。由于Dify作为低代码AI应用开发平台,依赖于后端AI框架提供的语…