IP----访问服务器流程
这只是IP的其中一块内容-访问服务器流程,IP还有更多内容可以查看IP专栏,前一段学习内容为IA内容,还有更多内容可以查看IA专栏,可通过以下路径查看IA-----配置NAT-CSDN博客CSDN,欢迎指正
1.访问服务器流程
1.分层
1.更利于标准化
2.降低层次之间的关联性---每一层都只完成自身层次所执行的功能--每一层都在下层的基础上提供增值服务

1.应用层
抽象语言---编码---提供人机交互的接口
2.表示层
编码--二进制,压缩解压缩、格式转换
3.会话层
建立维持主机应用到服务器之间的会话连接---------主机------服务器------另一台主机----主机传输信息到服务器,服务器再转发给另一台主机
4.传输层
建立端到端的传输---应用到应用之间的传输---------四层封装------封装源端口号和目标端口号
端口号---16位二进制构成 65536 1-65535 1-1023--知名端口号:区分进程和服务------固定的,其他的都不可以用
主机的端口号一般都是随机端口号,但是不可能会是1-1023。
HTTP:80 (超文本协议-----除了文本其他的图片,也都可以)
HTTPS:443 SSL-TLS DNS:53 UDP TCP
DHCP:67 68 RIP :UDP 520 521
5.网络层
通过IP地址进行逻辑寻址-------路由---------三层封装----------封装源IP和目标IP
获取目标IP地址的方法:(服务器)
1.直接知道目标的IP地址
2.通过dns协议去获取IP地址
3.通过APP或者一些应用去获取IP
4.通过广播去获取目标IP---扫描
6.数据链路层
MAC地址(物理地址)---二进制---电信号:控制物理层----------二层封装--------封装源MAC地址和目标MAC地址
MAC地址是以太网所独有的地址
7.物理层
处理电信号--CPU------一层不封装,因为是处理电信号的一层
2.封装和解封装
封装:数据来到每一层都会加入该层实现功能的协议报文(四层封装)
解封装:从二层开始往第四层依次解封装,解封装第二层看目标MAC地址是否是自己的,是则继续进行解封装第三层,如果不是给自己的就转发或者丢弃;解封装第三层,看目标IP如果不是给自己的就转发或者丢弃,如果是给自己的就继续解封装第四层,然后看端口号,根据端口号将跟数据给相应端口号的应用层去处理。
协议头部---------数据每一层封装后都会加上协议头部-------以便解封装时知道解下一层封装的
应用层-------数据
传输层---------四层封装------封装源端口号和目标端口号------协议头部--------协议号------TCP,UDP
网络层---------三层封装----------封装源IP和目标IP-------协议头部--------数字类型--------IPV4,IPV6
数据链路层---------二层封装--------封装源MAC地址和目标MAC地址
物理层----------处理电信号(一层不封装)

跨层封装---OSPF跨四层封装的协议--------协议号:89
---STP-----如下图

3.访问服务器流程

主机获取IP地址的方法:
静态获取
DHCP---动态主机配置协议----动态获取
C/S
UDP :68---C 67---S
1.过程
访问服务器需要自身端口号,服务器端口号,自身IP,服务器IP,自身MAC地址,网关MAC地址
要的是网关MAC地址原因是
自身MAC地址,服务器端口号,自身端口号(随机端口号)服务器IP全部已知
自身IP,网关MAC地址全部不知道,所以需要获取
首先获取自身IP-------获取过程中知道一个网关IP-----因为路由器给需要IP的设备发IP时,回包会有路由器网关IP
然后获取网关MAC地址不知道-------通过ARP协议发送数据包获取
------------二层封装自身MAC地址,以及全f泛洪,三层封装自身IP以及网关IP,用户发送给交换机,交换机进行解封装二层,发现是 全f,然后进行泛洪,泛洪后路由器接收到进行三层解封装,发现是给自己的,就将MAC地址补全,最后进行回包。
然后再次进行发送,路由器接收到后进行解封装,解封装二层发现是给自己的,继续解封装,解封装三层,发现不是给自己的,查看自身的路由表,是否有记录,有或者有缺省路由就进行转发,没有就丢弃,如果转发,就需要重新进行封装二层,源MAC为路由器自身的,目标MAC地址为下一跳路由的MAC地址,然后不断转发查找最后访问到
2.转发和获取
ARP:
地址解析协议:已知一种地址获取另外一种地址的协议
正向ARP---通过IP地址获取MAC地址会发送一个广播的ARP数据包,所有这个广播域中的设备均会收到,如果目标IP请求的是自身的MAC
则单播回复,若请求IP地址不是自身则仅记录数据包中原IP地址和对应的MAC地址,后续转发过程中将直接调用ARP表中的记录,直接转发。
反向ARP--通过MAC地址获取IP地址
免费ARP---无故ARP--检测地址冲突 ,自我介绍
交换机的转发:
交换机收到一个数据帧,会查询自身MAC地址表中的记录信息,如果存在记录则按照MAC地址表记录单播转发,如果没有记录则直接洪范:除了收到这个数据帧的接口外,向交换机其他所有接口复制转发一次-------如果连接路由器,那么路由器也是收得到
路由表: 在路由器中接收到一个数据包,会进行解封装,如果解封装第二层是给自己的,就会继续解封装第三层,在路由表上查看是否有该IP记录,如果没有但是有缺省路由,就按缺省路由转发,如果没有记录也没有缺省路由就进行丢弃。
3.自动获取IP流程
1.客户端---服务端 DHCP discover包 ----广播
SPORT :68 DPORT :67
SIP:0.0.0.0 DIP:255.255.255.255
--------没有地址要写0.0.0.0,不能不写,因为STP头部协议中有一个检验和,如果没有写就说明有缺,会丢弃
--------255.255.255.255 --- 受限广播地址 --- 受路由器的限制 --- 只能作为目标IP地址使用(不知道目的地址使用)
SMAC:主机 DMAC:ff-ff-ff-ff…ff
-------全f--------强制主动洪范
------全球唯一格式统一MAC地址 --- 所有芯片出厂时,厂商烧录的一个串号。48位二进制构成 ---- 前24位为厂商的 标识,后24位为厂商为产品分配的串号(物理地址)
2.服务器---客户端 ---DHCP Offer包 (携带一个可用的临时IP地址) 可以广播/单播
SPORT:67 DPORT:68
SIP:服务器的IP地址 DIP:下发的IP地址
SMAC:服务器 DMAC:客户端MAC
3.客户端---服务端 DHCP request ---请求一个合法的IP地址 (广播发送)
会选择最先收到的Offer包中携带的IP地址
SPORT:68 DPORT 67
SIP : DIP:服务器的IP地址
SMAC:主机 DMAC:ff-ff..ff
4.服务端---客户端 DHCP ACK(广播发送/单播)
SPORT: 67 DPORT:68/
SIP:fwq DIP :
SMAC:FWQ DMAC :主机
4.域名


这只是IP的其中一块内容-访问服务器流程,IP还有更多内容可以查看IP专栏,后一章内容为网络类型,可通过以下路径查看IP---网络类型-CSDN博客 ,欢迎指正
相关文章:
IP----访问服务器流程
这只是IP的其中一块内容-访问服务器流程,IP还有更多内容可以查看IP专栏,前一段学习内容为IA内容,还有更多内容可以查看IA专栏,可通过以下路径查看IA-----配置NAT-CSDN博客CSDN,欢迎指正 1.访问服务器流程 1.分层 1.更利于标准化…...
阿里云ack的创建与实战应用案例
阿里云ack的创建与应用案例 创建前开通ack相关服务:开始创建简单的魔方游戏,熟悉sv与clb自动注册创建部署一个nginx 服务示例:走不同域名访问不同svc资源:为什么需要 Ingress ?创建第一个域名的 Deployment和Service。…...
git 的 Detached HEAD
在 Git 版本管理中,Detached HEAD 是指你当前的工作状态不再指向任何分支,而是指向一个特定的提交(commit)。 通常情况下,HEAD 是指向你当前工作分支的指针,例如 main 或 feature-branch。当你切换到一个特…...
【R语言】dplyr包经典函数summarise函数
dplyr包经典函数summarise函数,后面改名乘reframe函数了,但是summarise仍然适用 这个函数的返回结果是一个新的数据框,下面讲一下几种常见用法 示例数据为R自带的数据集mtcars 1.不分组 mtcars %>%summarise(mean mean(disp), n n()…...
C#装箱拆箱机制详解
在C#中,装箱(Boxing)和拆箱(Unboxing) 是值类型与引用类型之间转换的核心机制。它们的实现直接影响程序的性能和类型安全。 一、装箱(Boxing) 定义: 将值类型转换为引用类型&#…...
llama.cpp 一键运行本地大模型 - Windows
文章目录 llama.cpp 一键运行本地大模型 - Windows嘿,咱来唠唠 llama.cpp 这玩意儿!gguf 格式是啥?咱得好好说道说道基座模型咋选?所需物料,咱得准备齐全咯核心命令,得记牢啦运行方式咋选?测试应…...
BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】
模板: {{.__class__.__base__.__subclasses__()[80].__init__.__globals__[__builtins__].eval("__import__(os).popen(type flag.txt).read()")}} 是个空字符串,.__class__代表这个空字符串的类是什么(这里是单引号双引号都行&a…...
数据同步的中间件
以下是10个支持MySQL、HBase、ClickHouse、HDFS等不同数据库之间数据同步的GitHub项目推荐: 项目名称语言主要特点支持的数据库GitHub链接DataXPython阿里巴巴开源的数据同步工具,支持多种数据库和文件系统。MySQL、ClickHouse、HDFS等GitHub链接Apache…...
C# | GDI+图像测距辅助线的实现思路
C# | GDI图像测距辅助线的实现思路 文章目录 C# | GDI图像测距辅助线的实现思路一、辅助线需求概述二、坐标系与角度计算2.1 笛卡尔坐标系2.2 线长和角度计算方法2.3 文本角度矫正计算方法2.4 坐标变换实现步骤 三、与if判断方式对比四、总结 一、辅助线需求概述 在图像测量工…...
【备份】php项目处理跨域请求踩坑
这都是老生常谈的东西了。我还在踩坑,记录一下。 我在项目入口明明写了如下代码: // 处理预检请求 (OPTIONS) if ($_SERVER[REQUEST_METHOD] OPTIONS) {header("Access-Control-Allow-Origin: https://xxx.vip");header("Access-Cont…...
常见的Linux面试题
以下是一些常见的Linux面试题: 基础操作类 如何远程连接Linux服务器:常用的工具如Xshell、CRT、FinalShell等,通过SSH协议连接,默认端口是22。 如何查看当前目录下的所有文件(包括隐藏文件):使…...
MySQL 数据库本地及异地备份:全面指南
文章目录 MySQL 数据库本地及异地备份:全面指南备份脚本概述编写备份脚本脚本内容主要参数解释设置脚本权限 定期执行备份设置crontab任务 安全性建议避免明文密码rsync密码文件安全 进阶功能和优化增量备份备份验证日志轮转 总结附录:脚本依赖 MySQL 数…...
免费使用 DeepSeek API 教程及资源汇总
免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型,凭借其卓越的逻辑推理能力和成本优势,迅速…...
java后端开发day20--面向对象进阶(一)--static继承
(以下内容全部来自上述课程) 1.static–静态–共享 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 1.静态变量 被static修饰的成员变量,叫做静态变量。 特点: 被该类…...
统计学中的得分函数(Score Function)是什么?它和Fisher信息矩阵有什么关系?
得分函数:统计学中的“敏感探针” 在统计学和概率论中,得分函数(Score Function)是一个看似简单却非常重要的概念。它不仅是Fisher信息矩阵的核心组成部分,还在参数估计、模型优化等领域发挥着关键作用。今天…...
Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)
Spring Boot集成MyBatis访问MySQL 一、引言 在当今企业级应用开发中,Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性,成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目,掌握Spring Boot集成MyBatis的基础入门内容。…...
ShenNiusModularity项目源码学习(14:ShenNius.Infrastructure项目分析)
ShenNius.Infrastructure项目用于定义ShenNius.Admin.Mvc项目和ShenNius.Admin.API项目共用的特性类、数据操作接口实现类、上下文类、通讯类,主要文件的用途如下: Attributes文件夹保存特性类或过滤器类定义,主要包括: …...
Linux 内核配置机制详细讲解
本文是对 Linux 内核配置机制 make menuconfig 的 超详细分步解析,涵盖其工作原理、界面操作、配置逻辑及底层实现: 一、内核配置系统概述 Linux 内核的配置系统是一个 基于文本的交互式配置工具链,核心目标是通过定义 CONFIG_XXX 宏来控制内…...
【C语言】第八期——指针、二维数组与字符串
目录 1 初始指针 2 获取变量的地址 3 定义指针变量、取地址、取值 3.1 定义指针变量 3.2 取地址、取值 4 对指针变量进行读写操作 5 指针变量作为函数参数 6 数组与指针 6.1 指针元素指向数组 6.2 指针加减运算(了解) 6.2.1 指针加减具体数字…...
Spring Boot集成Spring Security之HTTP请求授权
一、HTTP请求授权工作原理 基于Spring Security最新的Http请求授权讲解,不再使用旧版的请求授权 授权过滤器AuthorizationFilter获取认证信息 调用RequestMatcherDelegatingAuthorizationManager的check方法验证该用户是否具有该请求的授权 RequestMatcherDele…...
可以免费无限次下载PPT的网站
前言 最近发现了一个超实用的网站,想分享给大家。 在学习和工作的过程中,想必做PPT是一件让大家都很头疼的一件事。 想下载一些PPT模板减少做PPT的工作量,但网上大多精美的PPT都是需要付费才能下载使用。 即使免费也有次数限制࿰…...
DeepSeek 开源周:DeepEP 项目详解,GPU 压榨计划启动!
引言 就在今天,2025年2月25日,DeepSeek 再次为人工智能社区带来了一场技术盛宴——DeepEP 项目的开源。这个旨在优化 GPU 性能的工具一经发布便迅速获得了广泛的关注和赞誉,短短两小时内就斩获了超过1000个 Star。本文将详细介绍 DeepEP 的功…...
GPT1 与 GPT2 的异同
1.什么是GPT1: GPT1介绍了一种通过生成式预训练(Generative Pre-Training)来提升语言理解能力的方法。这种方法首先在一个大型的未标注文本语料库上进行语言模型的预训练,然后针对具体的任务进行判别式微调(discrimin…...
从零开始自主「起身站立」,上海AI Lab发布最新控制算法,机器人:起猛了
来源 | 机器之心 近日,上海 AI Lab 具身智能中心研究团队在机器人控制领域取得了最新突破,提出的 HoST(Humanoid Standing-up Control)算法,成功让人形机器人在多种复杂环境中实现了自主站起,并展现出强大…...
基于Python socket库构建的基于 P2P 的文件共享系统示例
基于 P2P 的文件共享系统 实现方式: 使用 Python 的socket库构建 P2P 网络,节点之间通过 TCP 或 UDP 协议进行通信。每个节点维护一个文件列表,并向其他节点广播自己拥有的文件信息。当一个节点需要某个文件时,它会向网络中的其…...
【Kubernetes】API server 限流 之 maxinflight.go
这个文件实现了一个基于信号量(Channel)的简单限流器。 基础知识 总共有四种channel 带缓冲的channel nonMutatingChan、mutatingChan 都是带缓冲的channel ,这类channel 的特点是: 这允许最多 mutatingLimit /nonMutatingLimit 个请求同时获取令牌并执…...
Solr中得Core和Collection的作用和关系
Solr中得Core和Collection的作用和关系 一, 总结 在Apache Solr中,Core和Collection 是两个核心概念,他们分别用于单机模式和分布式模式(SolrCloud)中,用于管理和组织数据。 二,Core 定义&am…...
AI驱动的自动化留给人类的时间不多了
时间紧迫!时间紧迫!时间紧迫! 关于AI工作流催生的行业任务自动化时间窗口,结合技术成熟度、成本效益、行业特性等维度,可划分为以下阶段: 一、技术渗透阶段(2025-2028年) 高重复性任…...
嵌入式Qt的动平衡仪完整设计方案
一、系统架构总览 #mermaid-svg-R5q0e12ntMzsskep {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-R5q0e12ntMzsskep .error-icon{fill:#552222;}#mermaid-svg-R5q0e12ntMzsskep .error-text{fill:#552222;stroke:#5…...
使用 Containerd 通过 HTTP 协议拉取 Harbor 私有镜像仓库的镜像
在 Kubernetes 1.24及以上版本环境中,docker不再被支持,主要使用Containerd 是常用的容器运行。默认情况下,Containerd 使用 HTTPS 协议与镜像仓库通信。然而,在某些场景下(如测试环境或内部网络)ÿ…...
