我的计算机网络(总览篇)
总览--网络协议的角度
在一个庞大的网络中,该从哪里去了解呢?我先细细的讲一下我们访问一个网站的全部流程,当我们的电脑连上网络的时候,就会启动DHCP协议,来进行IP地址,MAC地址,DNS地址的分配,拿到我们的IP地址后,使用UDP协议进行DNS服务器的查询,DNS有什么?查询什么?可以将DNS服务器理解成一个域名和IP的映射集合,通过域名进行IP的查找,查找到我们所需要访问的网站的IP之后,再次通过UDP数据报返回给我们,然后我们就要面临选择了,如果我们需要实时性,就选择UDP协议,需要安全性就选择TCP协议,我先介绍TCP协议,因为UDP太简单了。首先我们知道了各自的IP,但是还不知道MAC地址,MAC地址在全球具有唯一标识,跟IP地址相比更类似于一个物理标识,而IP更偏向于软件。此时我们通过IP地址,在ARP协议中寻找对应的MAC地址,ARP协议包含了IP和MAC的映射集,然后我们就拥有了和我们目的服务器建立连接的基本条件--IP和MAC,然后就通过TCP三次握手建立连接,之后就可以通过HTTP协议进行数据的交换,但是为什么说TCP协议可以保证安全性呢?因为有HTTPS协议,那么HTTP和HTTPS有什么不同的呢?请记住一个等式:HTTPS=HTTP+SSL/TSL,HTTP协议中文就是超文本传输协议,而SSL/TSL协议就是一种非对称加密协议,经过加密之后别人就别想看了,然后就可以使用HTTP协议进行数据交换了,但是交换的前提就是使用IP协议,IP协议最重要的两个功能就是分组转发和路由选择,何为分组转发?我们将分组(上一层的PDU)转发到目的IP,何为路由选择?我们不能只知道IP目的地,还得知道怎么走,而路由选择就是告诉我们再去往目的IP的这个过程中怎么走,走哪些路由器。我们做完这些之后就可以进行数据交换了,但是数据交换的过程依旧提心吊胆,因为数据如果错误怎么办?数据如果丢失怎么办?数据如果超时怎么办?该怎么保证数据的可靠传输呢?别急!!!针对这三个问题,伟大的前人已经想好了各种协议去解决,我们一个一个来:
面对数据的错误-首先我们可以使用差错校验去进行数据错误的判断,具体的方法有奇偶校验和循环冗余校验,但是奇偶校验会发生漏码,就是特定情况下不能检测出误码,但是循环冗余校验则不会,如果发现误码,接收方就会丢掉。
面对数据的超时-首先进行数据交换的双方非常的有礼貌,当他们收到数据的时候都会回复一个收到,而正是因为这个收到发送方才能知晓对方收到,而这个收到在他们的语言里叫做ACK,如果在规定时间里发送方没有收到ACK,那么就会触发发送方的超时重传,所以无论是超时还是丢失,只要接收方没有发送ACK,那么发送方就会重传。
数据的可靠传输-我们之前所说的超时重传依赖的就是ACK,而这种方式又叫做停止-等待协议(SW),顾名思义如果没有接收到ACK,那就停止发送,等待至规定时间,然后触发重传,除此之外还有回退N帧协议(GBN)。
在进行完数据交换之后,就进行TCP四次挥手,至此连接断开。
总览--网络分层的角度
我们现在换一个角度去理解计算机网络,那就是分层协议,分层协议可以有两种,一种就是法律意义上的OSI协议,总共有七层,依次是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层,另一个就是在商业被广泛使用的TCP/IP四层模型:网络接口层,网络层,传输层,应用层。一个数据会经过这些层层包装,然后转发,转发,之后又会层层卸掉包装,那为什么OSI有七层,TCPIP只有四层呢?首先要说的是OSI协议已经不被使用了,因为过于复杂,而且运行效率很低,而且成本很高,缺乏实际经验,没有商业驱动力,所以能够占领市场的就是标准--TCP/IP协议,OSI的表示层,会话层被合并到了TCPIP的应用层,数据链路层和物理层被合并到了网络接口层。那每一层都是干嘛的呢?我们先从繁琐的OSI七层开始讲起。
OSI七层模型概述
物理层:我们熟知的光纤电缆,这种通过物理介质传输的就是物理层的作用
数据链路层:将比特流封装成帧,而且进行流量控制,差错检验,MAC寻址
网络层:通过IP协议进行路由选择,分组转发,实现主机之间的连接
传输层:建立端口到端口的通信,使用TCP/UDP协议
会话层:管理应用之间的对话,支持断点续传和同步
表示层:处理数据格式之间的转换
应用层:直接面向用户,提供网络服务接口,如:HTTP,HTTPS
TCP/IP四层模型概述
网络接口层:封装成帧,将帧转化为比特流,在物流层面进行传输
网络层:通过IP协议,进行路由选择和分组转发,实现主机之间的通信
传输层:通过TCP或者UDP协议实现端口之间的通信,也就是应用之间的通信
应用层:OSI的会话层,表示层,应用层
通过以上的介绍,我们不难发现OSI有两层没有和其他层整合在一起--传输层和网络层,这两层也是所有分层中最重要的。现在我们具体介绍一下,一个数据在每一层都会发生什么,又是通过什么协议发生改变的?
数据在各个分层的状态
首先在应用层,我们的要发送的数据位于应用层,这些数据被称为应用层的PDU,然后这些数据到了传输层,传输层建立端口之间的链接,将这些数据拆分成若干个报文段,将这些报文段进行改造,改造成本层的PDU,经过哪些改造呢?对原报文段增加头部,头部包含源端口和目的端口。然后来到了网络层,还是得在强调一下网络层的作用:分组转发和路由选择,以此实现主机之间的通信,这个分组就是指数据报,这实在是太重要了,网络层拿到了传输层的PDU,然后还要改造,也是要添加头部,头部里包含源IP地址和目的IP地址,这就构成了网络层的IP数据包,然后到了数据链路层,数据链路层给IP数据报添加帧首部和帧尾部,这就是数据链路层的分装成帧,帧首部包含了帧开始符,帧的源地址和目的地址,而帧尾部包含了帧结束符,到了物理层,如何识别比特流中的帧呢?就是靠帧的开始符和结束符,也就是帧定界。
从网络分层和网络协议两个角度去理解计算机网络的全过程就结束了,接下来就是逐个介绍一些很重要的协议了!!!
相关文章:
我的计算机网络(总览篇)
总览--网络协议的角度 在一个庞大的网络中,该从哪里去了解呢?我先细细的讲一下我们访问一个网站的全部流程,当我们的电脑连上网络的时候,就会启动DHCP协议,来进行IP地址,MAC地址,DNS地址的分配…...
开源CMS的模块化设计和API接口如何具体影响其扩展性?
优秀的CMS系统都有自己主打的特点,开源CMS凭借其灵活性和低成本优势占据了市场主流地位,而模块化设计与API接口正是其扩展性的两大基石。本文将深入探讨这两大技术特性是如何影响cms的扩展性的。 一、模块化设计:功能解耦与生态繁荣的引擎 …...
【网络原理】网络通信基础
目录 一. 网络发展史 (1)局域网 (2)广域网 二. 网络基础知识 (1)IP地址 (2)端口号 (3)协议 (4)五元组 一. 网络发展史 网络的发…...
Win11系统 VMware虚拟机 安装教程
Win11系统 VMware虚拟机 安装教程 一、介绍 Windows 11是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备 。于2021年6月24日发布 ,2021年10月5日发行 。 Windows 11提供了许多创新功能,增加了新…...
新手宝塔部署thinkphp一步到位
目录 一、下载对应配置 二、加载数据库 三、添加FTP 四、上传项目到宝塔 五、添加站点 六、配置伪静态 七、其他配置 开启监控 八、常见错误 一、打开宝塔页面,下载对应配置。 二、加载数据库 从本地导入数据库文件 三、添加FTP 四、上传项目到宝塔…...
MCU如何查看系统有没有卡死
前言:在我们调试单片机的时候,经常会遇到系统非预期运行的状况。造成系统卡死的原因有很多,主要有:野指针,数组越界,死锁,还有一些while写入的一些逻辑错误。本文就如何排查这些问题,…...
有哪些反爬机制可能会影响Python爬取视频?如何应对这些机制?
文章目录 前言常见反爬机制及影响1. IP 封禁2. 验证码3. 请求头验证4. 动态加载5. 加密与混淆6. 行为分析 应对方法1. 应对 IP 封禁2. 应对验证码3. 应对请求头验证4. 应对动态加载5. 应对加密与混淆6. 应对行为分析 前言 在使用 Python 爬取视频时,会遇到多种反爬…...
【辰辉创聚生物】提供上万种单抗/多抗及其偶联物
辰辉创聚生物致力于提供高质量的一抗(Primary Antibodies)、二抗(Secondary Antibodies)和对照抗体(Control Antibodies),支持分子生物学、免疫学及生物医学科学领域的前沿研究。我们拥有超过40…...
Google Chrome Canary版官方下载及安装教程【适用于开发者与进阶用户】
谷歌浏览器(Google Chrome)以其高性能、强扩展性和良好的用户体验深受全球用户喜爱。在其多个版本中,Chrome Canary因具备最前沿的功能测试环境,成为开发者和技术探索者的首选。如果你希望第一时间体验Google Chrome最新功能&…...
BERT - BERT 模型综述
1. BERT的两个任务 (1)Pre-Training 预训练 Masked LM (MLM) - 让模型预测被隐藏(Mask)掉的token。 例如:输入“我喜欢吃[MASK]”,Label是“我喜欢吃苹果”, 模型需要预测出“苹果”。这种…...
Vue 大文件分片上传组件实现解析
Vue 大文件分片上传组件实现解析 一、功能概述 1.1本组件基于 Vue Element UI 实现,主要功能特点: 大文件分片上传:支持 2MB 分片切割上传实时进度显示:可视化展示每个文件上传进度智能格式校验:支持文件类型、大小…...
Matlab 电机激励模型和仿真
1、内容简介 Matlab 191-电机激励模型和仿真 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 clc close all clear Tn 165;%电机转矩 R 0.05;%定子半径 n0 1800;% 电机转速 i 2;%额定电流 Lmin 4.95;%最小电感 k 82.5; Nr 6;%转子级数 T 60/Nr/n0;%周期 b 0…...
GPU算力优化
GPU(图形处理单元)算力优化是提升计算性能的重要任务,在深度学习、科学计算等领域有重要意义。下面从硬件层面、软件层面和算法层面为你介绍一些优化方法: 硬件层面 选择合适的 GPU:不同的 GPU 在算力、显存、功耗等…...
微服务拆分的原则、时机、方法以及常见问题
前言# 在平常情况下,技术架构会随着业务规模大小、团队人数多少、技术债积累速度等动态变化。当然,引起架构变化最主要的因素还是业务发展速度。 在以前的单体架构到微服务架构演进历程 文章2 等文章中,有一张架构演进的图,如下…...
第十八天 - ELK日志体系集成 - 自定义Logstash插件 - 练习:分布式日志分析平台
前言 在分布式系统和微服务架构中,日志管理是监控系统健康、排查故障的核心环节。ELK(Elasticsearch、Logstash、Kibana)作为业界领先的日志分析解决方案,能够实现日志采集、处理、存储与可视化的全链路管理。本文将手把手带你掌…...
HBuilderX中uni-app打包Android(apk)全流程超详细打包
一、Android生成打包证书 1、Android平台签名证书(.keystore)生成指南_android 签名生成-CSDN博客(如果不上架应用商店可以跳过,可以使用云端证书) 二、打开manifest.json配置基础设置 三、配置安卓应用图标 四、配置安卓启动页图片 五、…...
CTF web入门之命令执行
web29 文件名过滤 由于flag被过滤,需要进行文件名绕过,有以下几种方法: 1.通配符绕过 fla?.* 2.反斜杠绕过 fl\ag.php 3.双引号绕过 fl’‘ag’.php 还有特殊变量$1、内联执行等 此外 读取文件利用cat函数,输出利用system、passthru 、echo echo `nl flag.php`; ec…...
安宝特案例 | 某户外机房制造企业应用AR+作业流,规范制造过程,记录施工节点,保障交付质量
行业特点:产品客制化、依赖人工,工程量大、细节多,验收困难 户外通讯机房无疑是现代工业社会的“信息心脏”,承载着信息交换、传输与处理的重任。建设一座质量过关的户外通讯机房是保障通信稳定运行的基石。 通常建设一个户外通信…...
学习MySQL的第八天
海到无边天作岸 山登绝顶我为峰 一、数据库的创建、修改与删除 1.1 引言 在经过前面七天对于MySQL基本知识的学习之后,现在我们从基本的语句命令开始进入综合性的语句的编写来实现特定的需求,从这里开始需要我们有一个宏观的思想&…...
ESP8266 采集 DHT11 和 DS18B20 温湿度数据 MQTT 上传至 Home Assistant
ESP8266 采集 DHT11 和 DS18B20 温湿度数据 MQTT 上传至 Home Assistant DHT11 采集 DHT11 温湿度数据并通过 MQTT 联网上传至 Home Assistant 智能家居平台; Arduino 代码 #include <ESP8266WiFi.h> #include <PubSubClient.h> #include <Ardui…...
三、TorchRec中的Optimizer
TorchRec中的Optimizer 文章目录 TorchRec中的Optimizer前言一、嵌入后向传递与稀疏优化器融合如下图所示:二、上述图片的关键步骤讲解:三、优势四、与传统优化器对比总结 前言 TorchRec 模块提供了一个无缝 API,用于在训练中融合后向传递和…...
操作系统 4.1-I/O与显示器
外设工作起来 操作系统让外设工作的基本原理和过程,具体来说,它概括了以下几个关键步骤: 发出指令:操作系统通过向控制器中的寄存器发送指令来启动外设的工作。这些指令通常是通过I/O指令(如out指令)来实现…...
Qt 5.14.2 入门(三)基本知识理解
目录 一、新建项目后生成的三个文件的作用和内容1、.h文件:头文件(如mainwindow.h)2、.cpp文件:源文件(如mainwindow.cpp)3、main.cpp:主程序 二、信号和槽机制1、信号(Signal)2、槽(Slot)3、连…...
Java中常见的设计模式
Java中常见的设计模式 Java 中有 23 种经典设计模式,通常被分为三大类:创建型、结构型和行为型。每个设计模式都解决了不同类型的设计问题。以下是几种常见设计模式的总结,并附带了实际应用场景、示例代码和详细的注释说明。 一、创建型设计…...
nltk 是怎么和 Transformers(比如 BERT 模型)联动来处理文本的
🧠 一句话解释nltk: nltk 是一个用于自然语言处理(NLP)的 Python 库,功能包括分词、词性标注、命名实体识别、文本分类等。 全称是:Natural Language Toolkit(自然语言工具包) &…...
项目日志配置模板示例
1.新增application.properties配置 logging.configclasspath:logback-spring.xml spring.profiles.activedev 将项目部署到服务器时需要将dev修改为test后再进行打包部署 2.新增logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <…...
sql server统计小时数据中每日最大风速及风速对应的风向
客户提出一个需求,有历年逐小时的风速、风向资料,想获取历年最大的风速及风速对应的风向值,通过sql 怎么实现,这个统计,我认为主要考虑一个问题,就是数据重复性,所以我采用以下方法实现…...
【SQL】MySql常见的性能优化方式
MySQL性能优化的常用方式及对比说明 一、引言二、MySQL性能优化的常用方式及对比说明1. 索引优化1.1 合理创建索引1.2 覆盖索引1.3 索引下推 2. SQL语法优化2.1 避免低效操作2.2 分页优化2.3 JOIN优化 3. 配置与架构优化3.1 参数调优3.2 读写分离与分库…...
Prometheus实现负载均衡并将多个实例数据汇总到一个主Prometheus
一、Prometheus实现负载均衡策略原理 要实现 Prometheus 的负载均衡并将多个 Prometheus 实例的数据汇总到一个主 Prometheus 实例中,可以结合 Prometheus 联邦(Federation) 和 负载均衡器 来进行配置。 这种方法的核心是在主 Prometheus 实例…...
力扣 — — 最长公共子序列
力扣 — — 最长公共子序列 最长公共子序列 题源:1143. 最长公共子序列 - 力扣(LeetCode) 题目: 分析: 一道经典的题目:最长公共子序列(LCS) 题目大意:求两个字符串的最长公共序列。 算法&…...
通过AWS EKS 生成并部署容器化应用
今天给大家分享一个实战例子,如何在EKS上创建容器化应用并通过ALB来发布。先介绍一下几个基本概念: IAM, OpenID Connect (OIDC) 2014 年,AWS Identity and Access Management 增加了使用 OpenID Connect (OIDC) 的联合身份支持。此功能允许…...
GNSS静态数据处理
1 安装数据处理软件:仪器之星(InStar )和 Trimble Business Center 做完控制点静态后,我们需要下载GNSS数据,对静态数据进行处理。在处理之前需要将相关软件在自己电脑上安装好: 仪器之星(InS…...
NVIDIA H100 vs A100:新一代GPU架构性能对比分析
一、核心架构演进对比 Ampere架构(A100)采用台积电7nm工艺,集成540亿晶体管,配备6,912个CUDA核心和432个第三代Tensor Core,支持FP16、TF32和INT8精度计算。其显存子系统采用HBM2e技术,80GB版本带宽可…...
AI图像生成
要通过代码实现AI图像生成,可以使用深度学习框架如TensorFlow、PyTorch或GANs等技术。下面是一个简单的示例代码,演示如何使用GANs生成手写数字图像: import torch import torchvision import torchvision.transforms as transforms import …...
计算机考研一战上岸宁波大学经验分享
目录 话不多说先上分数 个人介绍 政治 英语二 数学二 408 复试 话不多说先上分数 初试排名15/65 复试79.81分,复试排名13/65 总成绩13/65,研招网招考50人 (均为公开数据,非泄露复试信息) 个人介绍 本人山东…...
泛微ECOLOGY9 记 数据展现集成 自定义开窗测试中对SQL 的IN语法转换存在BUG
背景 搭建流程时,需将明细表1中的合同字段 供明细表2中的合同开窗查询使用。 最终实现如下图: 选择 发票号时,自动带出明细表1中的采购合同号清单,然后在明细表2中开窗采购合同号时,只跳出明细表1中有的采购合同号&am…...
【Nginx】Nginx代理Tomcat配置及404问题解决
当Tomcat返回HTTP 404未找到错误时,可以通过以下两种方式设置跳转到指定地址: ① 在Tomcat应用内部配置错误页面跳转(直接修改Tomcat的Web应用配置) ② 在Nginx反向代理层拦截404错误并跳转(无需修改Tomcat,…...
【Vue】案例——To do list:
【Vue】案例——To do list: 一、案例介绍:二、效果展示(如图)三、主要功能:四、技术要点:补充:【Vue】Vue模板语法(点击可跳转)补充:【Vue】数据绑定(单双向)…...
JVM不同环境不同参数配置文件覆盖
背景 需要在启动Java服务并且参数不同的场景,例如端口号在yml中的配置是这样的: server:port: 9100 覆盖配置对应JVM参数: java -jar xxxx.jar -Dserver.port12306 [JVM其他参数] 这样12306就会覆盖掉9100端口的配置作为启动配置 IDE…...
游戏引擎学习第215天
总结并为今天做铺垫 今天的工作内容是解决调试系统中的一个小问题。昨天我们已经完成了大部分的调试系统工作,但还有一个小部分没有完全处理,那就是关于如何层次化组织数据的问题。我们遇到的一个问题是,演示代码中仍有一个尚未解决的部分&a…...
C语言--求n以内的素数(质数)
求n以内的素数,可以用试除法或者埃拉托斯特尼筛法(埃氏筛法) 输入:数字n 输出:n以内所有的素数 不管是哪个方法,都有一个数学结论可以减少循环次数: 如果有一个数不是质数,那么它至…...
多版本go冲突问题
今天执行go build时遇到一个报错: compile: version “go1.22.7 (Red Hat 1.22.7-1.moduleel8.10.0700fd5cfc7a)” does not match go tool version “go1.23.4” 结果一查 which -a go 发现 当前系统居然有四个不同的位置都安装了go 于是先看go version…...
Windows 10系统出现无法使用键鼠的问题
有一位系统之家的小伙伴在升级Windows 10系统电脑的时候,出现键盘鼠标不能正常工作打问题,其实,遇到这个问题,有时只需重新启动计算机或断开连接并重新连接鼠标或键盘可以提供帮助,如果没有,可以看看下面系…...
NFC 数据传输
前言 初次接触NFC协议,很多人都会感觉困惑,搜索相关资料,大多数都介绍协议的理论及应用领域,数据传输的内容却很少,但对与开发人员来说,除了理论知识外,数据传输也是非常重要环节,尤…...
基于Streamlit的智能创业计划生成器开发实践
一、应用概述 在数字经济时代,创业者亟需高效工具进行系统化的商业规划。本文介绍的智能创业计划生成器基于Streamlit框架构建,整合了财务建模、时间轴规划、智能文档生成等核心功能。该工具通过模块化设计实现了九大创业要素的系统化配置,显…...
蓝桥杯单片机刷题——按键控制距离显示精度
设计要求 驱动超声波传感器,启动距离测量功能,并将其结果显示到数码管上,距离数据单位为m。 按键“S4”定义为“切换”按键,通过此按键切换距离的显示精度(一位或两位小数)。切换顺序如图所示。 数码管显示格式如下图…...
c++拷贝构造函数(深浅拷贝)+运算符重载
1拷贝构造函数 1.1定义 只有一个形参,且该形参是对本类类型对象的引用(一般用const 修饰),在用已经存在的类类型对象穿件新对象是由编译器自动调用。(是一种特殊构造,即初始化一个一模一样的新对象&#…...
操作系统 3.5-内存换入-请求调页
案例分析内存换入 内存换入分析: 内存换入(Swapping)是指操作系统将不常使用的内存页从物理内存(RAM)移动到磁盘上的交换空间(Swap Space),以释放物理内存供其他进程使用。当需要访…...
stm32工程,拷贝到另一台电脑编译,错误提示头文件找不到cannot open source input file “core_cm4.h”
提示 cannot open source input file “core_cm4.h” ,找不到 [ core_cm4.h ] 这个头文件 . 于是我在原电脑工程文件里找也没有找到这个头文件 接下来查看原电脑keil的头文件引入配置,发现只引入了工程文件下的头文件, 那么core_cm4.h到底哪里来的? (到现在我也不清楚怎…...
使用platformio如何定位hard fault错误
这里写自定义目录标题 前言过程记录结语前言 hard fault是单片机开发过程中经常会遇到的问题,通常是内存溢出、野指针访问等导致,对于有经验的工程师,在代码改动不大的情况下,一般可以通过代码审查定位到问题原因,但也有很多情况下需要借助调试工具进行定位,像Keil就有比…...