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地址

物理层----------处理电信号(一层不封装)

360截图17860602123131109

跨层封装---OSPF跨四层封装的协议--------协议号:89

---STP-----如下图

360截图17571120669860

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.域名

360截图17981201154723

这只是IP的其中一块内容-访问服务器流程,IP还有更多内容可以查看IP专栏,后一章内容为网络类型,可通过以下路径查看IP---网络类型-CSDN博客 ,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24897.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubutu部署WordPress

前言 什么是word press WordPress是一种使用PHP语言开发的建站系统,用户可以在支持PHP和MySQL数据库的服务器上架设WordPress。它是一个开源的内容管理系统(CMS),允许用户构建动态网站和博客。现在的WordPress已经强大到几乎可以…

LangChain构建行业知识库实践:从架构设计到生产部署全指南

文章目录 引言:行业知识库的进化挑战一、系统架构设计1.1 核心组件拓扑1.2 模块化设计原则二、关键技术实现2.1 文档预处理流水线2.2 混合检索增强三、领域适配优化3.1 医学知识图谱融合3.2 检索结果重排序算法四、生产环境部署4.1 性能优化方案4.2 安全防护体系五、评估与调优…

Lua的table(表)

Lua表的基本概念 Lua中的表(table)是一种多功能数据结构,可以用作数组、字典、集合等。表是Lua中唯一的数据结构机制,其他数据结构如数组、列表、队列等都可以通过表来实现。 表的实现 Lua的表由两部分组成: 数组部分…

应对现代生活的健康养生指南

在科技飞速发展的现代社会,人们的生活方式发生了巨大改变,随之而来的是一系列健康问题。快节奏的生活、高强度的工作以及电子产品的过度使用,让我们的身体承受着前所未有的压力。因此,掌握正确的健康养生方法迫在眉睫。 针对久坐不…

使用DeepSeek/chatgpt等AI工具辅助网络协议流量数据包分析

随着deepseek,chatgpt等大模型的能力越来越强大,本文将介绍一下deepseek等LLM在分数流量数据包这方面的能力。为需要借助LLM等大模型辅助分析流量数据包的同学提供参考,也了解一下目前是否有必要继续学习wireshark工具以及复杂的协议知识。 pcap格式 目…

【Linux】CentOS7停服之后配置yum镜像源

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 毛毛张今天分享一个CentOS7系统停服之后,配置yum镜像源的步骤,有坑! 文章目录 1.概述2.查看系统架构2.1 查看内核版本2.2 查看lin…

2025-02-26 学习记录--C/C++-C语言 整数格式说明符

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 C语言 整数格式说明符 【例如 】🎀 :在 C 语言中,%ld 是 printf 或 scanf 等格式化输入输出函…

OpenAI开放Deep Research权限,AI智能体大战升级,DeepSeek与Claude迎来新对决

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

个人电脑小参数GPT预训练、SFT、RLHF、蒸馏、CoT、Lora过程实践——MiniMind图文版教程

最近看到Github上开源了一个小模型的repo,是真正拉低LLM的学习门槛,让每个人都能从理解每一行代码, 从零开始亲手训练一个极小的语言模型。开源地址: GitHub - jingyaogong/minimind: 🚀🚀 「大模型」2小时…

【数据结构】顺序表和链表

线性表 线性表 (linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串 ….. 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时…

一文讲解Redis的内存淘汰和过期策略

Redis 报内存不足怎么处理? Redis 内存不足有这么几种处理方式: 修改配置文件 redis.conf 的 maxmemory 参数,增加 Redis 可用内存 也可以通过命令 set maxmemory 动态设置内存上限 修改内存淘汰策略,及时释放内存空间 使用 R…

游戏引擎学习第125天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并为今天的内容做准备。 昨天,当我们离开时,工作队列已经完成了基本的功能。这个队列虽然简单,但它能够执行任务,并且我们已经为各种操作编写了测试。字符串也能够正常推送到队…

【UCB CS 61B SP24】Lecture 16 - Data Structures 2: ADTs, BSTs学习笔记

本文首先介绍了抽象数据类型与树的概念,接着重点讲解二叉搜索树的定义与操作方式,并用 Java 实现一个标准的二叉搜索树结构。 1. 抽象数据类型 首先引入一个概念叫做抽象数据类型(Abstract Data Type,ADT)&#xff0…

包子凑数——蓝桥杯真题Python

包子凑数 输入输出样例 示例 1 输入 2 4 5输出 6样例说明 凑不出的数目包括:1, 2, 3, 6, 7, 11。 示例 2 输入 2 4 6输出 INF样例说明 所有奇数都凑不出来,所以有无限多个 运行限制 最大运行时间:1s最大运行内存: 256M 最大公约数 最大公…

一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 一个Web项目不仅需要HTML模板,还需要许多静态文件,比如 CSS、JavaScript文件、图片以及音频等。在Fla…

Python的那些事第三十二篇:用于创建静态、动画和交互式可视化的绘图库Matplotlib

Matplotlib:用于创建静态、动画和交互式可视化的绘图库 摘要 Matplotlib 是一个广泛使用的 Python 绘图库,能够创建静态、动画和交互式可视化图表。本文首先介绍了 Matplotlib 的基本功能和架构,然后通过具体的示例代码展示了如何使用 Matplotlib 创建不同类型的图表。接着…

tableau之雷达图和凹凸图

一、雷达图 概念 雷达图(Radar Chart),也称为蜘蛛网图(Spider Chart)或星状图(Star Chart),是一种用于多变量数据可视化的图表。它以中心点向外辐射的轴线表示不同的变量&#xff…

Redis-列表结构实操

列表实操 前言简单练习基本的LPUSH和RPUSH操作列表元素的访问与修改列表元素的插入和删除列表阻塞操作 困难练习分页列表游标机制业务上考虑直接访问任意页如何高效分页局限性小结 实现限时排行版轮换消息队列可靠性实现分布式锁实现 总结 前言 之前总结过-列表的数据结构,但是…

SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)

目录 一、环境准备 二、新建项目 三、整合依赖 1、MyBatis Plus 数据库操作 2、Hutool 工具库 3、Knife4j 接口文档 4、其他依赖 四、通用基础代码 1、自定义异常 2、响应包装类 3、全局异常处理器 4、请求包装类 5、全局跨域配置 补充:设置新建类/接…

实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能

一、环境安装准备 #git拉取 bert-base-chinese 文件#创建 虚拟运行环境python -m venv myicrplatenv#刷新source myicrplatenv/bin/activate#python Django 集成nacospip install nacos-sdk-python#安装 Djangopip3 install Django5.1#安装 pymysql settings.py 里面需要 # 强制…