4.网络技术与应用
一、计算机网络基础
1. 网络基本原理
-
通信模型:
- OSI七层模型:
- 物理层(传输比特流,如网线、光纤)
- 数据链路层(MAC地址,交换机)
- 网络层(IP地址,路由器)
- 传输层(TCP/UDP协议,端口号)
- 会话层(建立/管理会话)
- 表示层(数据加密、压缩)
- 应用层(HTTP、FTP协议)
- TCP/IP四层模型:
网络接口层 → 网际层(IP) → 传输层(TCP/UDP) → 应用层
- OSI七层模型:
-
核心协议:
- TCP:面向连接,可靠传输(三次握手、流量控制)
- UDP:无连接,高效但不可靠(视频流、DNS查询)
- HTTP/HTTPS:
- HTTP 1.1/2/3演变(长连接、头部压缩)
- HTTPS = HTTP + SSL/TLS加密(端口443)
- IP协议:IPv4(32位地址)、IPv6(128位地址,解决地址耗尽)
2. 网络拓扑结构
- 常见类型:
- 星型拓扑:中心节点(交换机)连接所有设备,易扩展但依赖中心。
- 总线型拓扑:单根电缆串联设备,成本低但故障排查难。
- 环型拓扑:设备成环,数据单向传输,延迟确定但容错性差。
- 网状拓扑:全连接(冗余高,成本高,用于核心网络)。
- 混合拓扑:如树型拓扑(分层星型),适用于大型企业网络。
3. 网络设备配置与管理
-
核心设备:
-
交换机(L2/L3):
- 功能:
- MAC地址学习:通过数据帧的源MAC地址构建MAC地址表,实现二层转发。
- VLAN划分:通过
switchport access vlan <vlan-id>
命令隔离广播域,提升网络安全性。
- 管理:
- 端口安全:限制端口接入设备数量或绑定特定MAC地址,防止非法接入。
- STP防环:配置生成树协议(如
spanning-tree mode rapid-pvst
),避免二层环路。
- 功能:
-
路由器:
- 功能:
- 路由选择:通过OSPF(
network <network-id> area <area-id>
)、BGP(neighbor <ip> remote-as <asn>
)等协议实现跨网络通信。 - NAT转换:通过
ip nat inside source static <private-ip> <public-ip>
命令实现私网转公网。
- 路由选择:通过OSPF(
- 配置示例:
ip route 192.168.2.0 255.255.255.0 10.0.0.1 # 静态路由
- 功能:
-
防火墙:
- 功能:
- ACL规则:通过
access-list 101 permit/deny <protocol> <source> <destination> <port>
控制流量。 - 状态检测:跟踪会话状态(如TCP三次握手),仅允许合法流量通过。
- ACL规则:通过
- 配置示例:
access-list 101 permit tcp any any eq 80 # 允许HTTP流量
- 功能:
-
-
网络管理工具:
- SNMP:通过MIB(管理信息库)监控设备状态(如CPU利用率、接口流量),支持告警通知。
- NetFlow:分析流量流向(如大流量应用识别),生成流量统计报告。
- 网络设备实操
(1)交换机(L2/L3)配置实例
# 创建VLAN 10和VLAN 20
switch> enable
switch# configure terminal
switch(config)# vlan 10
switch(config-vlan)# name Sales
switch(config-vlan)# exit
switch(config)# vlan 20
switch(config-vlan)# name Tech
switch(config-vlan)# exit# 配置接口加入VLAN(Access模式)
switch(config)# interface gigabitethernet0/1
switch(config-if)# switchport mode access
switch(config-if)# switchport access vlan 10
switch(config-if)# exitswitch(config)# interface gigabitethernet0/2
switch(config-if)# switchport mode access
switch(config-if)# switchport access vlan 20
switch(config-if)# exit# 配置Trunk端口(允许VLAN 10/20通过)
switch(config)# interface gigabitethernet0/3
switch(config-if)# switchport mode trunk
switch(config-if)# switchport trunk allowed vlan 10,20
switch(config-if)# exit# 端口安全(限制MAC地址数量)
switch(config)# interface gigabitethernet0/1
switch(config-if)# switchport port-security
switch(config-if)# switchport port-security maximum 2
switch(config-if)# switchport port-security mac-address sticky
switch(config-if)# exit# 启用生成树协议(防环路)
switch(config)# spanning-tree mode rapid-pvst
switch(config)# spanning-tree vlan 10,20 priority 4096
(2)路由器配置实例
# 配置接口IP地址
router> enable
router# configure terminal
router(config)# interface gigabitethernet0/0
router(config-if)# ip address 192.168.1.1 255.255.255.0
router(config-if)# no shutdown
router(config-if)# exitrouter(config)# interface gigabitethernet0/1
router(config-if)# ip address 10.0.0.1 255.255.255.0
router(config-if)# no shutdown
router(config-if)# exit# 配置OSPF动态路由
router(config)# router ospf 1
router(config-router)# network 192.168.1.0 0.0.0.255 area 0
router(config-router)# network 10.0.0.0 0.0.0.255 area 0
router(config-router)# exit# 配置BGP动态路由
router(config)# router bgp 65001
router(config-router)# neighbor 203.0.113.1 remote-as 65002
router(config-router)# network 192.168.1.0
router(config-router)# exit# 配置NAT转换(私网转公网)
router(config)# ip nat pool PUBLIC_IP 203.0.113.2 203.0.113.3 netmask 255.255.255.0
router(config)# ip nat inside source route-map NAT_ACL pool PUBLIC_IP
router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
router(config)# route-map NAT_ACL permit 10
router(config-route-map)# match ip address 1
router(config-route-map)# exit
(3)防火墙配置实例
# 配置标准ACL规则(允许HTTP流量)
firewall> enable
firewall# configure terminal
firewall(config)# access-list 101 permit tcp any any eq 80
firewall(config)# exit# 应用ACL到接口(入站方向)
firewall(config)# interface gigabitethernet0/0
firewall(config-if)# ip access-group 101 in
firewall(config-if)# exit# 配置状态检测(启用会话跟踪)
firewall(config)# service-policy input STATEFUL_ACL
firewall(config)# class-map HTTP_TRAFFIC
firewall(config-class-map)# match protocol http
firewall(config-class-map)# exit
firewall(config)# policy-map STATEFUL_ACL
firewall(config-policy-map)# class HTTP_TRAFFIC
firewall(config-policy-map)# inspect
firewall(config-policy-map)# exit
4. 网络故障排查
- 常用命令:
ping
:测试连通性(ICMP协议)。tracert
(Windows)/traceroute
(Linux):追踪路径。nslookup
/dig
:DNS解析测试。netstat
:查看端口监听状态(netstat -ano
)。
- 抓包工具:
- Wireshark:分析数据包内容(过滤HTTP请求)。
- tcpdump(Linux):命令行抓包(
tcpdump port 80
)。
- 典型故障场景:
- IP冲突:ARP表异常,使用
arp -a
检查。 - VLAN配置错误:跨VLAN通信需配置路由器或三层交换机。
- IP冲突:ARP表异常,使用
二、互联网技术应用
1. Web开发技术
-
前端开发:
- 基础技术栈:
- HTML:页面结构(语义化标签如
<article>
)。 - CSS:布局与样式(Flex/Grid、响应式设计)。
- JavaScript:交互逻辑(ES6+特性、异步编程)。
- HTML:页面结构(语义化标签如
- 框架与库:
- React:组件化开发(虚拟DOM、Hooks)。
- Vue:响应式数据绑定(Vuex状态管理)。
- Angular:MVC架构(依赖注入、TypeScript)。
- 基础技术栈:
-
后端开发:
- 语言与框架:
- Node.js:事件驱动(Express.js、NestJS框架)。
- Python:Django(ORM、Admin后台)、Flask(轻量级)。
- Java:Spring Boot(微服务、Spring Security)。
- 数据库集成:
- RESTful API设计(GET/POST/PUT/DELETE)。
- 使用JWT实现身份验证(
Authorization: Bearer <token>
)。
- 语言与框架:
2. 移动应用开发
- 原生开发:
- Android:
- 语言:Kotlin/Java
- 工具:Android Studio(布局编辑器、Logcat调试)。
- iOS:
- 语言:Swift
- 工具:Xcode(Interface Builder、Simulator)。
- Android:
- 跨平台开发:
- Flutter:Dart语言,高性能渲染引擎(Skia)。
- React Native:JavaScript核心,原生组件封装。
3. 新兴技术应用
-
云计算:
- 服务模型:
- IaaS(基础设施即服务):AWS EC2、阿里云ECS。
- PaaS(平台即服务):Heroku、Google App Engine。
- SaaS(软件即服务):Salesforce、Office 365。
- 核心技术:
- 虚拟化(VMware、KVM)、容器化(Docker、Kubernetes)。
- 无服务器架构(AWS Lambda、函数计算)。
- 服务模型:
-
大数据:
- 处理框架:
- Hadoop:HDFS存储、MapReduce计算。
- Spark:内存计算(比Hadoop快100倍)。
- 工具生态:
- 数据仓库:Hive、Snowflake
- 实时流处理:Apache Kafka、Flink
- 处理框架:
-
物联网(IoT):
- 架构层次:
- 感知层(传感器、RFID)。
- 网络层(LoRa、NB-IoT低功耗广域网)。
- 平台层(AWS IoT Core、阿里云物联网平台)。
- 应用层(智能家居、工业监测)。
- 协议:
- MQTT(轻量级发布/订阅协议)。
- CoAP(受限环境下的RESTful协议)。
- 架构层次:
三、网络安全与优化
1. 网络安全防护
- 常见攻击与防御:
- DDoS攻击:防御方案(流量清洗、CDN分发)。
- SQL注入:参数化查询(
PreparedStatement
)。 - XSS跨站脚本:输入过滤(转义
<
为<
)。
2. 性能优化策略
- Web性能优化:
- 压缩资源(Gzip/Brotli)。
- CDN加速静态内容(图片、JS/CSS)。
- 懒加载(延迟加载非首屏内容)。
- 数据库优化:
- 读写分离(主从复制)。
- 缓存策略(Redis缓存热点数据)。
四、实践案例
- 企业网络搭建:
- 设计VLAN隔离部门流量,配置OSPF动态路由。
- 部署防火墙规则,限制外部访问敏感端口(如22/3389)。
- 全栈Web项目:
- 前端:Vue3 + TypeScript实现SPA。
- 后端:Spring Boot提供REST API,MySQL存储数据。
- 部署:Nginx反向代理,Docker容器化。
- 物联网智能家居:
- ESP32传感器采集温湿度 → MQTT推送至云平台 → 手机App控制空调。
相关文章:
4.网络技术与应用
一、计算机网络基础 1. 网络基本原理 通信模型: OSI七层模型: 物理层(传输比特流,如网线、光纤)数据链路层(MAC地址,交换机)网络层(IP地址,路由器࿰…...
Kafka 主题 retention.ms 配置修改及深度问题排查指南
文章目录 Kafka 主题 retention.ms 配置修改及深度问题排查指南版本背景查看 Kafka 主题当前状态修改 retention.ms 配置的正确方式为什么不能使用 kafka-topics.sh?使用 kafka-configs.sh 动态更新配置 深入解析 retention 配置retention.ms 与 retention.bytes 的…...

React实现无缝滚动轮播图
实现效果: 由于是演示代码,我是直接写在了App.tsx里面在 文件位置如下: App.tsx代码如下: import { useState, useEffect, useCallback, useRef } from "react"; import { ImageContainer } from "./view/ImageC…...

deepseek+mermaid【自动生成流程图】
成果: 第一步打开deepseek官网(或百度版(更快一点)): 百度AI搜索 - 办公学习一站解决 第二步,生成对应的Mermaid流程图: 丢给deepseek代码,或题目要求 生成mermaid代码 第三步将代码复制到me…...

分布式锁的简单实现
1. 什么是分布式锁? 在分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,和 Java 中多线程的锁不一样,由于分布式系统中涉及到多个进程多个主机,所以说 Java 中 synchronized 就不合适了。 2. 分布式锁的简…...

C语言(19)----------->函数(2)
本文介绍了C语言的return语句及其它在C语言函数中的作用,以及介绍了二维数组和一维数组传参时的一些注意事项和使用数组传参时的方法。 若没有学习过C语言的一维数组和二维数组,建议参考如下文章: C语言(15)--------…...

动态扩缩容引发的JVM堆内存震荡:从原理到实践的GC调优指南
目录 一、典型案例:系统发布后的GC雪崩事件 (一)故障现象 1. 刚刚启动时 GC 次数较多 2. 堆内存锯齿状波动 3. GC日志特征:Allocation Failure (二)问题定位 二、原理深度解析:JVM内存弹…...
为何在用户注销时使用 location.href 而非 Vue Router 的 router.push
在开发 Web 应用时,用户注销功能的设计看似简单,但背后隐藏着对状态管理、安全性和用户体验的深层考量。以下将详细探讨为何许多项目在注销跳转时选择 location.href(强制刷新页面)而非 Vue Router 的 router.push(单页…...

开源工具推荐:Uptime Kuma监控
1. 概述 Github:louislam/uptime-kuma: A fancy self-hosted monitoring tool Uptime Kuma is an easy-to-use self-hosted monitoring tool. Uptime Kuma 是一款开源的监控工具,可以帮助你实时监测网站或服务的状态,并在发生故障时及时通…...

《基于Selenium的论坛系统自动化测试实战报告》
一、项目背景与技术选型 项目简介 目标系统:论坛系统 核心功能:用户注册/登录、会话框发送信息、好友列表、信息发送 技术栈:html Springboot MySQL数据库 为什么选择Selenium 支持多浏览器兼容性测试(Chrome/Firefox/Edge&…...
深入解析SQL Server高级SQL技巧
SQL Server 是一种功能强大的关系型数据库管理系统,广泛应用于各种数据驱动的应用程序中。在开发过程中,掌握一些高级SQL技巧,不仅能提高查询性能,还能优化开发效率。这篇文章将全面深入地探讨SQL Server中的一些高级技巧…...
分布式中间件:环境准备
在当今数字化的时代,分布式系统已经成为了开发领域的主流。分布式中间件在其中扮演着至关重要的角色,它能够帮助我们更好地处理高并发、高可用等复杂的业务场景。在这个系列的博客中,我将带大家深入学习分布式中间件的相关知识,主…...

c# winform程序 vs2022 打包生成安装包
最近,利用c# winform程序该客户开发一套进销存管理系统,项目在部署前,需要生成安装包,以便部署在客户电脑上面。总结步骤如下: 1、在打包之前 (VS中需要包括Microsoft visual studio installer projects扩展项目)&…...

探索Elasticsearch:文档的CRUD
在企业环境中,Elasticsearch对文档操作的支持不仅是实现高效搜索的关键,更是数据驱动决策的重要支柱。它通过强大的索引机制和灵活的查询语言,使企业能够实时处理和分析海量文档数据,迅速获取有价值的洞察,从而加速创新…...
面试基础--Spring Boot启动流程及源码实现
深度解析Spring Boot启动流程及源码实现 一、Spring Boot启动全景图(含核心阶段) #mermaid-svg-dYTQ6WPa3o6vKFHh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dYTQ6WPa3o6vKFHh .error-i…...

火语言RPA--PDF提取图片
【组件功能】:提取PDF文档指定位置图片 配置预览 配置说明 文件路径 支持T或# 默认FLOW输入项 待提取图片的PDF文件的完整路径。 提取位置 全部、指定页、指定范围3种位置供选择。 PDF文件密码 支持T或# 打开PDF文件的密码。 页码 支持T或# 提取指定页的页…...
力扣977.有序数组的平方(双指针)
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 方法一:直接将每个元素的平方压入ans数组中,再对ans数组进行排序 class Solution { public:vector<int> sort…...

QT——文件IO
QFile 类 构造函数 QFile() 无参构造 仅仅构建一个QFile 对象,不设定文件名 QFile(文件名) 构建一个QFile对象的同时,设定文件名 但是注意,仅仅设定文件名,并不会打开该文件 设定文件名 QFile file file.setFileName…...
分布式中间件:Redis介绍
目录 Redis 概述 Redis 的特点 高性能 丰富的数据结构 持久化 分布式特性 简单易用 Redis 的数据结构 字符串(String) 哈希(Hash) 列表(List) 集合(Set) 有序集合&…...
服务器和本地电脑之间如何传输文件
在服务器和本地电脑之间传输文件可以通过多种方式实现,常见的方法包括使用 SFTP(安全文件传输协议)、SCP(安全复制协议)、FTP(文件传输协议)、rsync、以及 云存储 等工具。以下是几种常见的方法…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...