结合五层网络结构讲一下用户在浏览器输入一个网址并按下回车后到底发生了什么?
文章目录
- 实际应用
- 第一步:用户在浏览器输入 `www.baidu.com` 并按下回车
- 1. 浏览器触发域名解析(DNS查询)
- 第二步:DNS请求的逐层封装与传输
- 1. 应用层(DNS协议)
- 2. 传输层(UDP协议)
- 3. 网络层(IP协议)
- 4. 数据链路层(以太网/Wi-Fi协议)
- 5. 物理层(比特流传输)
- 第三步:数据包如何找到DNS服务器?
- 1. 局域网内传输(数据链路层)
- 2. 跨网络传输(网络层)
- 3. 最终抵达DNS服务器
- 第四步:浏览器发起HTTP请求
- 1. 建立TCP连接(传输层)
- 2. 封装HTTP请求(应用层)
- 3. 逐层封装
- 第五步:数据包穿越互联网到达百度服务器
- 1. 路由器的逐跳转发(网络层)
- 2. 服务器接收请求
- 第六步:响应数据返回客户端
- 1. 反向封装与传输
- 2. 浏览器渲染页面
- 关键协作点总结
- 补充技术细节
上一篇文章对计算机网络的五层结构做了简单的介绍,需要的可以看这里
计算机网络的五层结构(物理层、数据链路层、网络层、传输层、应用层)到底是什么?
实际应用
看到这里的时候我相信大家会有和我一样的疑惑,这五层结构到底是干嘛用的,到底有什么用,我平时有用到这东西的机会吗?
那么下面我给大家准备了一个实际的例子来让大家对这五层机构可以更好的了解。
我下面的例子是用访问浏览器中的某一个网址来举例,在我访问一个网址,比如www.baidu.com的时候,让我们看看这五层结构都是怎么发挥作用的?
第一步:用户在浏览器输入 www.baidu.com
并按下回车
1. 浏览器触发域名解析(DNS查询)
-
为什么需要DNS?
计算机无法直接通过域名www.baidu.com
通信,必须将其转换为 IP 地址(如14.215.177.38
)。这一过程称为 DNS解析。 -
具体流程:
- Step 1:检查本地缓存
浏览器缓存 → 系统缓存(如Windows的hosts文件) → 路由器缓存 → 若命中,直接使用缓存的IP地址。 - Step 2:未命中缓存 → 发起递归查询
若本地无缓存,浏览器调用操作系统的 DNS解析器(应用层组件),生成一个 DNS请求报文,内容为:查询域名:www.baidu.com 查询类型:A记录(IPv4地址)
- Step 1:检查本地缓存
第二步:DNS请求的逐层封装与传输
1. 应用层(DNS协议)
- DNS协议使用 UDP(传输层协议),目标端口为
53
,源端口随机(如50001
)。 - 封装后的 DNS报文 交给传输层处理。
2. 传输层(UDP协议)
- 添加 UDP头部:包含源端口(
50001
)、目标端口(53
)、长度和校验和。 - 此时数据变为:
[UDP头部 | DNS请求报文]
3. 网络层(IP协议)
- 添加 IP头部:包含源IP(你的设备私有IP,如
192.168.1.100
)、目标IP(默认DNS服务器IP,如8.8.8.8
)。 - 此时数据变为:
[IP头部 | UDP头部 | DNS请求报文]
4. 数据链路层(以太网/Wi-Fi协议)
- 添加 帧头部:包含源MAC地址(你的网卡MAC,如
AA:BB:CC:DD:EE:FF
)和目标MAC地址(默认网关的MAC地址,如路由器的11:22:33:44:55:66
)。 - 此时数据变为:
[帧头 | IP头部 | UDP头部 | DNS请求报文 | 帧尾]
5. 物理层(比特流传输)
- 将帧转换为 电信号(网线) 或 无线电波(Wi-Fi),通过物理媒介发送到路由器(默认网关)。
第三步:数据包如何找到DNS服务器?
1. 局域网内传输(数据链路层)
- 目标MAC地址是路由器:你的设备通过ARP协议(地址解析协议)提前获取了默认网关(路由器)的MAC地址。
- 交换机的作用:如果设备通过网线连接到交换机,交换机会根据MAC地址表将帧转发到路由器对应的端口。
2. 跨网络传输(网络层)
- 路由器收到数据包后,剥离帧头部,检查IP头部:
- 目标IP是
8.8.8.8
(DNS服务器),不属于本地局域网。 - 路由器通过 NAT(网络地址转换) 将源IP(
192.168.1.100
)替换为路由器的公网IP(如120.230.10.20
)。 - 路由器根据 路由表 选择下一跳(如ISP的核心路由器),重新封装帧头部(目标MAC变为下一跳设备的MAC),转发数据包。
- 目标IP是
3. 最终抵达DNS服务器
- 数据包经过多个路由器的接力转发(每经过一个路由器,源/目标MAC地址会变化,但IP地址不变),最终到达DNS服务器
8.8.8.8
。 - DNS服务器解析请求,查询
www.baidu.com
的IP地址,生成 DNS响应报文(包含14.215.177.38
),按原路返回给你的设备。
第四步:浏览器发起HTTP请求
1. 建立TCP连接(传输层)
- 获取到百度服务器的IP地址后,浏览器通过 TCP协议 与目标IP(
14.215.177.38
)的80
端口(HTTP)或443
端口(HTTPS)建立连接。 - TCP三次握手:
- 客户端发送
SYN
报文(序列号x)。 - 服务器回复
SYN-ACK
报文(序列号y,确认号x+1)。 - 客户端发送
ACK
报文(确认号y+1)。
- 客户端发送
- 此时TCP连接建立完成,双方确认通信能力。
2. 封装HTTP请求(应用层)
- 浏览器生成 HTTP请求报文,例如:
GET / HTTP/1.1 Host: www.baidu.com User-Agent: Chrome/120.0
- 如果是HTTPS,还需进行 TLS握手(交换密钥、验证证书等)。
3. 逐层封装
- 传输层:将HTTP报文拆分为多个 TCP段,添加TCP头部(源端口、目标端口、序列号、确认号)。
- 网络层:添加IP头部(源IP为公网IP
120.230.10.20
,目标IP14.215.177.38
)。 - 数据链路层:添加帧头部(源MAC为路由器出口MAC,目标MAC为下一跳设备MAC)。
- 物理层:转换为比特流传输。
第五步:数据包穿越互联网到达百度服务器
1. 路由器的逐跳转发(网络层)
- 每个路由器根据目标IP
14.215.177.38
查询路由表,选择最优路径(如通过BGP协议判断)。 - 数据包可能经过:
- 家庭路由器 → ISP骨干网路由器 → 百度数据中心边缘路由器 → 百度内部核心路由器。
2. 服务器接收请求
- 百度服务器接收到数据包后,反向解封装:
- 物理层 → 数据链路层(剥离帧头) → 网络层(检查IP地址) → 传输层(重组TCP段) → 应用层(处理HTTP请求)。
- 服务器生成 HTTP响应报文(状态码200,包含HTML、CSS、JS等资源)。
第六步:响应数据返回客户端
1. 反向封装与传输
- 服务器将HTTP响应按相同流程封装(IP头部源/目标地址调换,TCP端口调换),通过互联网返回。
- 客户端路由器接收后,通过NAT将目标IP从公网IP
120.230.10.20
转换为内网IP192.168.1.100
,再转发给你的设备。
2. 浏览器渲染页面
- 浏览器接收HTTP响应后,解析HTML/CSS/JS,加载图片等资源(可能触发多次HTTP请求)。
- 最终渲染出完整的百度首页。
关键协作点总结
- DNS解析:
- 应用层协议(DNS) → 传输层(UDP) → 网络层(IP路由) → 数据链路层(MAC寻址) → 物理层传输。
- HTTP请求:
- 应用层(HTTP) → 传输层(TCP连接) → 网络层(IP跨网) → 数据链路层(帧转发) → 物理层传输。
- 数据封装与解封装:
- 每经过一层设备(如路由器、交换机),数据包的外层封装会被修改(如MAC地址、IP NAT),但核心内容(如HTTP报文)保持不变。
补充技术细节
- NAT(网络地址转换):
家庭路由器将内网设备的私有IP(如192.168.1.100
)转换为公网IP(如120.230.10.20
),解决IPv4地址不足问题。 - MTU与分片:
若数据包超过链路层最大传输单元(如1500字节),网络层会将其分片,目标端重组。 - ARP协议:
设备通过ARP广播查询IP地址对应的MAC地址(如“谁是192.168.1.1
?请告诉我你的MAC!”)。
通过以上流程,你可以清晰看到:五层模型并非独立运作,而是像流水线一样协同工作,最终实现“输入网址 → 看到网页”的复杂过程。
相关文章:
结合五层网络结构讲一下用户在浏览器输入一个网址并按下回车后到底发生了什么?
文章目录 实际应用第一步:用户在浏览器输入 www.baidu.com 并按下回车1. 浏览器触发域名解析(DNS查询) 第二步:DNS请求的逐层封装与传输1. 应用层(DNS协议)2. 传输层(UDP协议)3. 网络…...
关于Code_流苏:商务合作、产品开发、计算机科普、自媒体运营,一起见证科技与艺术的交融!
Code_流苏 🌿 名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 🌟 欢迎来到Code_流苏的CSDN主页 —— 与我一起&…...
Webpack模块打包工具
1. 认识webpack的基本用法步骤创建项目->下载webpack webpack-cli -> npm init -y -> package.json的scripts中配置webpack默认打包入口:src/index.js默认打包出口: dist/main.js2. 认识webpack.config.js的基本配置loader -> 打包css,less…...
crossOriginLoading使用说明
1. 说明 此配置用于控制 Webpack 动态加载的代码块(chunk)(例如代码分割或懒加载的模块)在跨域(不同域名)加载时的行为。它通过为动态生成的 <script>标签添加 crossorigin 属性,确保符合…...
Linux系统性能调优技巧分享
在数字化时代,Linux 系统以其开源、稳定、高效的特性,成为服务器、云计算、物联网等领域的核心支撑。然而,随着业务规模的扩大和负载的增加,系统性能问题逐渐凸显。掌握 Linux 系统性能调优技巧,不仅能提升系统运行效率,还能降低运维成本。下面从多个方面介绍实用的性能调…...
在Windows11中配置Git+SSH环境,本此实践使用Gitee(码云),方法同样适用于其它绝大部分Git服务
1.下载并安装Git 进入官网下载 Git - Downloading Package 选择下载Standalone Installer安装包,看自己电脑是64-bit还是32-bit(一般都是64-bit) 双击安装包进行安装,Next 这里可以自定义安装路径 这里可以勾选添加桌面快捷方式…...
【软考-架构】14、软件可靠性基础
✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 软件可靠性基本概念软件可靠性建模软件可靠性管理软件可靠性设计N版本程序设计恢复块设计(动态冗余)双机容错技术、集群技术负载均衡软件可靠性测试…...
怎样理解ceph?
Ceph 是一个开源的、高度可扩展的 分布式存储系统,设计用于提供高性能、高可靠性的对象存储(Object)、块存储(Block)和文件存储(File)服务。它的核心思想是通过去中心化的架构和智能的数据分布策…...
《AI大模型趣味实战》智能Agent和MCP协议的应用实例:搭建一个能阅读DOC文件并实时显示润色改写过程的Python Flask应用
智能Agent和MCP协议的应用实例:搭建一个能阅读DOC文件并实时显示润色改写过程的Python Flask应用 引言 随着人工智能技术的飞速发展,智能Agent与模型上下文协议(MCP)的应用场景越来越广泛。本报告将详细介绍如何基于Python Flask框架构建一个智能应用&…...
Pygame字体与UI:打造游戏菜单和HUD界面
Pygame字体与UI:打造游戏菜单和HUD界面 在现代游戏中,用户界面(UI)是玩家与游戏互动的重要桥梁。一个精心设计的UI不仅能够提升游戏的视觉效果,还能增强玩家的游戏体验。Pygame作为一个强大的游戏开发库,提供了丰富的工具和方法来创建和管理UI元素。本文将详细介绍如何使…...
游戏引擎学习第246天:将 Worker 上下文移到主线程创建
回顾并为今天的工作做准备 关于GPU驱动bug的问题,目前本地机器上没有复现。如果有问题,昨天的测试就应该已经暴露出来了。当前演示的是游戏的过场动画,运行正常,使用的是硬件渲染。 之前使用软件渲染时没有遇到太多问题ÿ…...
系统设计(2)—Redis—消息队列—数据库—熔限降
Redis 缓存设计 在高并发系统中,缓存是提升性能、减轻后端负载的杀手锏。Redis 作为内存级的高性能缓存数据库,被广泛应用于各类系统设计中。利用 Redis,将热点数据存储在内存中,可以加速读写并大幅降低对后端关系型数据库的直接…...
第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组
比赛还没有开始,竟然忘记写using namespace std; //debug半天没看明白 (平时cv多了 然后就是忘记那个编译参数,(好惨的开局 编译参数-stdc11 以下都是赛时所写代码,赛时无聊时把思路都打上去了(除了倒数第二题&#…...
HiSpark Studio如何使用Trae(Marscode)插件
引言 我现在非常喜欢使用编程辅助插件,用的最多的是Trae(以前叫Marscode)。以前华为的DevEco Device Tools是基于VSCode的,直接使用官方的插件市场就可以安装了。现在海思提供了自己的HiSpark Studio,比原来的Device …...
Netmiko连接池与长连接优化
背景与原理 在网络自动化中,频繁创建和断开 SSH 连接会带来以下问题: 性能损耗:每次连接需经历 TCP 握手、SSH 协商、用户认证等流程,耗时约 1~3 秒。资源浪费:设备端可能限制并发连接数,频繁连接易触发阈…...
10:00面试,10:08就出来了,面试问的问题太。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这…...
从基础到实战的量化交易全流程学习:1.2 金融市场基础
从基础到实战的量化交易全流程学习:1.2 金融市场基础 在量化交易领域,扎实的金融市场基础是策略开发与风险控制的核心支撑。本文将从交易品种、市场机制、监管合规三方面展开,结合市场特性、真实数据案例及实践要点进行系统化解析,…...
游戏状态管理:用Pygame实现场景切换与暂停功能
游戏状态管理:用Pygame实现场景切换与暂停功能 在开发游戏时,管理游戏的不同状态(如主菜单、游戏进行中、暂停等)是非常重要的。这不仅有助于提升玩家的游戏体验,还能使代码结构更加清晰。本文将通过一个简单的示例,展示如何使用Pygame库来实现游戏中的场景切换和暂停功…...
数据资产价值及其实现路径-简答题回顾
1. 简述数据资产的定义及其特征。 答案:数据资产是指企业或组织所拥有的、具有经济价值的数据资源。它具有以下特征:可复制性(数据可以多次使用)、价值潜力(数据经过处理、分析可以创造经济价值)、流动性&…...
Docker化HBase排错实录:从Master hflush启动失败到Snappy算法未支持解决
前言 在容器化时代,使用 Docker 部署像 HBase 这样复杂的分布式系统也比较方便。社区也提供了许多方便的 HBase Docker 镜像,没有找到官方的 apache的,但有包含许多大数据工具的 harisekhon/hbase 或用于学习目的的 bigdatauniversity/hbase…...
端到端自动驾驶的数据规模化定律
25年4月来自Nvidia、多伦多大学、NYU和斯坦福大学的论文“Data Scaling Laws for End-to-End Autonomous Driving”。 自动驾驶汽车 (AV) 栈传统上依赖于分解方法,使用单独的模块处理感知、预测和规划。然而,这种设计在模块间通信期间会引入信息丢失&am…...
桌面端开发技术栈选型:开启高效开发之旅
在数字化浪潮中,桌面端应用依然占据重要地位,而选择合适的技术栈是打造优质桌面端应用的关键一步。以下是多种主流桌面端开发技术栈的介绍与对比,希望能为大家提供有价值的参考。 基于 Web 技术的跨平台框架 • Electron: • 特…...
C++模拟Java C#的 finally
在 Java 和 C# 中,finally 是一个与异常处理(try-catch)配合使用的关键字,用于确保一段代码无论是否发生异常都会被执行。它通常用于释放资源(如文件句柄、数据库连接、锁等),避免内存泄漏或状态…...
Spring Boot安装指南
🔖 Spring Boot安装指南 🌱 Spring Boot支持两种使用方式: 1️⃣ 可作为常规Java开发工具使用 2️⃣ 可作为命令行工具安装 ⚠️ 安装前提: 📌 系统需安装 Java SDK 17 或更高版本 🔍 建议先运行检查命令…...
zephyr架构下Bluetooth advertising接口
目录 概述 1 函数接口 2 主要函数介绍 2.1 bt_le_adv_start函数 2.1.1 函数功能介绍 2.1.2 典型使用示例 2.1.3 广播间隔 2.1.4 注意事项 2.2 bt_le_adv_stop 函数 2.2.1 函数功能 2.2.2 使用方法介绍 2.2.3 实际应用示例 2.2.4 关键注意事项 2.2.5 常见问题解决 …...
Oracle官宣 MySQL+APEX+AI三认证限时免费
1 MySQL8 OCP 考试代码 1Z0-908 免费时间:2025年4月20日至7月31日 https://education.oracle.com/mysql-promo 2 APEX云开发专家 考试代码 1Z0-771 免费时间:2025年5月15日截止! https://mylearn.oracle.com/ou/learning-path/become…...
深入理解N皇后问题:从DFS到对角线优化
N皇后问题是一个经典的算法问题,要求在NN的棋盘上放置N个皇后,使得它们互不攻击。本文将全面解析该问题的解法,特别聚焦于DFS算法和对角线优化的数学原理。 问题描述 在NN的国际象棋棋盘上放置N个皇后,要求: 任意两个…...
1软考系统架构设计师:第一章系统架构概述 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
超简记忆要点 一、考试大纲 目标:架构设计能力(需求→架构)能力:技术/方法/行业科目:综合(选择)、案例(问答)、论文(论述) 二、架构核心 定义…...
MuJoCo 关节角速度记录与可视化,监控机械臂运动状态
视频讲解: MuJoCo 关节角速度记录与可视化,监控机械臂运动状态 代码仓库:GitHub - LitchiCheng/mujoco-learning 关节空间的轨迹优化,实际上是对于角速度起到加减速规划的控制,故一般来说具有该效果的速度变化会显得丝…...
如何打包python程序为可执行文件
将 Python 程序打包为可执行文件是一个常见需求,尤其是在希望将应用程序分享给不具备 Python 环境的用户时。以下是使用 PyInstaller 工具将 Python 程序打包为可执行文件的步骤。 步骤 1:安装 PyInstaller 如果您还没有安装 PyInstaller,请…...
产销协同是什么?产销协同流程有哪些?
目录 一、产销协同是什么 1.从市场需求的角度来看 2.企业内部运营的角度来看 3.从供应链的角度来看 二、实现产销协同的八大步骤 1. 市场需求预测 2. 销售计划制定 3. 生产能力评估 4. 生产计划制定 5. 库存管理 6. 信息共享与沟通 7. 订单执行与跟踪 8. 绩效评估…...
SQL 查询进阶:WHERE 子句与连接查询详解
SQL(Structured Query Language)是管理关系型数据库的核心语言,熟练掌握其查询功能对于数据处理至关重要。本文将深入探讨 SQL 中的两个关键概念:WHERE 子句和连接查询。我们将详细讲解 WHERE 子句中的模糊查询、IS NULL、IS NOT …...
【计算机视觉】CV实战项目- DFace: 基于深度学习的高性能人脸识别
图:MTCNN的三阶段网络结构(P-Net、R-Net、O-Net) DFace深度解析:基于深度学习的高性能人脸识别 深度解析DFace:基于PyTorch的实时人脸检测与识别系统技术背景与项目概述核心功能与特点实战部署指南环境准备硬件要求软…...
基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述
以下是基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述,使用文本和Mermaid语法表示: 架构图(Mermaid语法) #mermaid-svg-WWCAqL1oWjvRywVJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WWCAq…...
百度搜索AI开放计划:让应用连接精准流量的秘诀
引言 在人工智能技术深刻改变各行各业的今天,每天都有许多AI应用诞生。然而无论是开发者还是用户依然会感到自己的应用鲜有人使用或是需求没有被充分满足。这种情况正说明了为什么我们需要SEO流量,而一个能够与AI应用直接相关的SEO平台更是呼之欲出。百度…...
Redis数据结构SDS,IntSet,Dict
1.字符串:SDS SDS的底层是C语言编写的构建的一种简单动态字符串 简称SDS,是redis比较常见的数据结构。 由于以下几种缺点,Redis并没有直接采用C语言的字符串。 1.获取长度需要计算 2.非二进制安全 :中间不能有 \0,…...
leetcode201.数字范围按位与
找到公共前缀部分,然后后面的部分全0 class Solution {public int rangeBitwiseAnd(int left, int right) {int offset 0;while (left ! right) {offset;left left >> 1;right right >> 1;}return right << offset;} }...
云服务器 —— 公有 IP 与 私有 IP
云服务器的 公有 IP 和 私有 IP 在网络架构中扮演不同的角色,具体用途和区别如下: 目录 1. 公有 IP(Public IP) 作用: 特点: 示例场景: 2. 私有 IP(Private IP) 作用…...
北斗导航 | Transformer增强BiLSTM网络的GNSS伪距观测量误差探测
在GNSS(全球导航卫星系统)定位中,伪距观测量的误差直接影响定位精度。结合Transformer和LSTM的优势,可以设计一种混合模型以提升误差探测能力。以下是具体的技术实现方案: 1. 模型架构设计 1.1 输入特征设计 原始GNSS观测数据: 伪距观测值(C/A码、P码)、载波相位、多普…...
0803分页_加载更多-网络ajax请求2-react-仿低代码平台项目
文章目录 1 分页1.1 url与分页参数1.2 分页组件与url1.3 列表页引用分页组件 2 加载更多2.1 状态2.2 触发时机2.3 加载数据2.4优化 结语 1 分页 1.1 url与分页参数 查询问卷列表接口,添加分页参数: page:当前页码(第几页&#…...
React 与 Vue 的区别:你会选择哪个框架呢
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
Jmeter如何取JDBC request响应参数作为下一个接口的值?
1、 功能参数说明 Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致 Query:填写的sql语句未尾不要加“;” Parameter valus:参数值,对查询条件进行参数化 Paramete…...
【C++】14.容器适配器 | stack | queue | 仿函数 | priority_queue
1. 容器适配器 什么是适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设 计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。 在C中,容器适配器(Container Adapters&…...
论文阅读:2025 arxiv Aligning to What? Limits to RLHF Based Alignment
Aligning to What? Limits to RLHF Based Alignment https://arxiv.org/pdf/2503.09025 https://www.doubao.com/chat/3871529075012866 速览 这篇论文主要探讨了强化学习从人类反馈(RLHF)在对齐大型语言模型(LLMs)时的局限性…...
利用Arcgis自己绘制shp文件
1.选择自己想要创建的shp文件的位置 我是直接创建在连接文件夹中 2.右键-新建-shp 3.设置名称、要素类型、空间参考 4、点击创建要素 5、右侧选择图层、创建面 6、开始绘制,双击任意位置结束绘制 之后可以改一下shp文件的名字...
路由器重分发(OSPF+静态路由)
路由器重分发(OSPF静态路由) 静态路由充当不了翻译官 OSPF路由 OSPF路由需要宣告自己的ip, Router(config)#router ospf 1 Router(config-router)#network 10.10.10.0 0.0.0.255 area 0还要帮静态路由的也宣告一下 Router(config)#ip route…...
KTT入门
Kinetic tournament tree 简称 KTT 下文中全部简写。 KTT 用于解决类以下问题: 已知 N N N 条一次函数,求解一段区间内函数最大值。支持修改操作可以修改 x i x_i xi 或者 b i b_i bi 的值。具体做法: 我们考虑线段树来维护一个类似 Δ \Delta Δ 的东西,我们令当…...
WPF 上位机开发模板
WPF 上位机开发模板 WPF上位机开发模板,集成了基础操作菜单、海康视觉实时图像界面、串口通讯、网口通讯、主流PLC通讯、数据存储、图片存储、参数配置、权限管理、第三方webapi接口接入、数据追溯与查询等功能。 一、项目结构 WpfSupervisor/ ├── Models/ …...
理想星环OS选择NuttX作为MCU侧OS的核心原因分析
文章目录 引言一、POSIX兼容性:降低汽车软件迁移成本二、轻量级与模块化:适配MCU资源约束三、硬实时性能:保障车辆控制确定性四、多芯片适配:加速车企供应链灵活性五、安全与可靠性:构建纵深防御体系六、社区与生态&am…...
IP数据报发送和转发的过程
1. 发送端准备数据 应用程序(比如浏览器)要发送数据,比如访问一个网站。 应用层(HTTP) → 传输层(TCP/UDP) → 网络层(IP)。 IP层负责把数据包打包,加上必要…...