news 2026/5/2 6:44:09

计算机网络基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机网络基础
  • 网络定义
    • 多台设备通过连接介质,能互相传数据,共享资源的集合
    • 协议:设备之间的沟通规则
  • 拓扑结构
    • 网络设备的物理连接方式
    • 星型:就是有一个中间的设备转一下
    • 总线型:学校机房那种所有设备连着一台设备
    • 环型:按一定顺序传数据,一般是医院用的多
    • 网状型:每台设备都是一联多,传数据时根据算法选择最优路劲传输
  • 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——65535
        • 0——1023系统留的端口
          • http80
          • https443
          • ssh22
          • 3306Mysql
          • DNS53
        • 注册端口: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:网关超时,就是服务器比较忙,处理的请求比较多,没有及时处理网关发的请求数据,网关没等到返回数据,就给了个504
      • 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:解决 “远程安全访问”,是「跨网络的加密通道」,连接的是 “外部设备” 和 “内网”;
      • NAT:解决 “IP 地址复用 + 隐藏内网”,是「地址转换技术」,连接的是 “内网设备” 和 “公网”本质是ip翻译工具,区分于代理!
      • DMZ:解决 “公开服务与内网隔离”,是「网络区域划分」,隔离的是 “公网” 和 “内网” 之间的公开服务

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 0:25:42

AI智能体(Agent)开发全攻略:概念、设计到安全运行,程序员必学

本文详解AI智能体的本质区别、三大核心特征及落地路径,涵盖模型选型、工具定义、指令配置等关键组件,解析单智能体与多智能体编排模式,并强调安全护栏体系的重要性,为开发者提供从0到1构建智能体的完整路线图,助力抢占…

作者头像 李华
网站建设 2026/5/1 0:30:36

LLM RAG开发进阶:多查询检索技术详解与实战代码

本文详细介绍了LLM应用中RAG开发的三个关键步骤和六个优化阶段,重点阐述了多查询检索策略如何提升检索准确性。通过生成多个角度的子问题进行检索并合并结果,有效克服传统相似性搜索的局限。文章提供了LangChain中MultiQueryRetriever的具体实现代码和优…

作者头像 李华
网站建设 2026/4/30 22:59:31

广东省考备考三要素(喻明公考)

材料结构化面试备考要注意的方面有很多,但是抓住关键才能有效备考。在实际的学习中,喻明公考提醒各位考生有三个备考的关键要素需要深入把握。一、学好普通结构化材料结构化归根到底还是在普通结构化的基础上进行的创新,背景材料对作答有指导…

作者头像 李华
网站建设 2026/5/1 0:37:57

好写作AI|学术萌新救星:你的“论文私教”如何把知识喂到嘴边

写论文像在迷宫里裸奔?别慌!你的“学术导航仪”已上线各位刚踏入学术圈的萌新们,是不是觉得论文写作就像突然被扔进深海却没人教游泳?面对“文献综述”、“研究方法”这些专业术语一脸懵?别怕!今天给你们安…

作者头像 李华
网站建设 2026/5/1 0:16:15

【紧急预警】环境指标悄然变化!用R语言快速识别趋势拐点的方法

第一章:环境监测的 R 语言趋势检验在环境科学领域,长期监测数据的趋势分析对于评估气候变化、污染水平演变及生态响应至关重要。R 语言凭借其强大的统计建模与可视化能力,成为执行环境趋势检验的首选工具。常用方法包括Mann-Kendall非参数趋势…

作者头像 李华
网站建设 2026/5/1 0:24:53

揭秘高产农田背后的算法秘密:R语言如何改变传统农业决策

第一章:农业产量的 R 语言种植建议模型在现代农业数据分析中,R 语言因其强大的统计建模与可视化能力,被广泛应用于作物产量预测和种植策略优化。通过整合气象数据、土壤特征与历史收成记录,可构建一个基于回归分析与机器学习的种植…

作者头像 李华