OSI七层模型中的数据链路层

                                                    图片:数据帧的格式

这里面的一个关键点是,数据的源IP和目标IP在哪里?

就在图中的“数据”里面,这个“数据”也就是网络层的数据包,如果是TCP类型的数据包,数据包里面就包含TCP类型的首部信息,如果是UDP类型的数据包,数据包里面就包含UDP类型的首部信息。

这个就是数据帧和数据包的关系。如图,数据帧是把数据包包含在内的。

1)字段解析:

-目的地址: 接收主机的MAC地址(6个字节=48个bit)

-源地址: 发送数据主机的MAC地址

-类型: 用来表示上一层使用的什么协议,如果是0x800 代表上层协议是 ip协议

-数据: 要传输的数据(包含IP包头,包含TCP包头,包含数据)

-帧校验序列: 数据校验,检查数据是否损坏,好的就接收,坏的就丢弃 2)一个数据帧的大小范围是 64字节—1518字节

数据链路层的主要设备是交换机

主要协议是vlan

vlan可以隔离广播

为什么要隔离广播,因为网络的带宽是有限的,比如一个用户办理的宽带是100Mbps,也就是每秒能传递的数据量是100兆比特,相当于12.5兆字节。而网络中的广播也是数据,所以当同一个平面的广播太多的时候,带宽就被占用了很多,能够给用户传递数据的带宽就变少,所以用户就会感觉网速很慢。

所以vlan的主要作用就是隔离广播,顺带着提高了网络中的隐私和安全,因为不同的vlan之间默认不能相互通信。

另外一个数据链路层比较重要的就是mac地址

每个数据帧上面有源mac地址和目标mac地址

当图中pc1(ip  192.168.10.10 )向pc2(ip  192.168.20.20 )发送信息的时候,

源mac地址是pc1,目标mac地址是路由器g0/0/0的mac地址

为什么?因为pc1找非同网段的ip的时候,就会把数据包给到网关,pc1上是设置了自己的网关地址的,所以发送之前,会发个arp地址解析请求,谁是我的网关的端口,然后路由器的g0/0/0,就会把自己的mac地址发送给pc1,然后pc1就会把数据帧的目标mac地址设置为路由器的g0/0/0的mac地址

然后,路由器的g0/0/1会发广播,谁是20.20,然后pc2就会回应它。

路由器就会把数据帧的源mac地址改为g0/0/1的mac地址,目标mac地址改成pc2的mac地址。

路由器是怎么知道pc2的mac地址的?

也是通过arp(address resolution protocol)问谁是20.20,把你的mac地址发过来。

数据在通过路由器转发的时候,数据包里面的IP地址是不变的,括号源ip和目标ip。

而数据帧的mac地址是变化的,包括源mac和目标mac。

这个点,对于理解lvs dr模式负载均衡技术中,所用到的地址伪装方法,

实现负载均衡器向后端服务器的请求分发,

以及后端服务器不经过负载均衡器,

直接把请求处理结果返回给客户端线路的

数据通信流程

应该有一点帮助

另外说一点,lvs-dr模式之所以性能比较优秀的原因之一,就是因为数据的返回线路不用经过负载均衡服务器。负载均衡服务器只用分发来访的数据。所以负载均衡服务器的负载差不多减少了一半。

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

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

相关文章

使用excel把json文件转为表格

json文件格式 [ { "ID": "16", "名称": "测站", "管理ID": "3", "管理名称": "土", "辅助信息": { "百度经度&qu…

linux neo4j 切换知识图谱

neo4j 安装 linux neo4j的安装可以浏览这篇文章: ubuntu sudo apt-get install neo4j 配置安装与设置远程访问 引言 如果你是window用户,直接下载桌面版进行安装与使用即可; 我有一台linux的服务器,想部署在上面,不…

阿里云私有镜像仓库配置及使用

1 登录阿里云 阿里云访问地址:https://www.aliyun.com/ 右上角选择“控制台” 2 创建个人实例 搜索框搜索“容器镜像服务” 新建“个人实例” 选择“创建个人版” 同意协议,点击确定 3 个人实例配置 设置Registry登录密码 密码要求&#xff1…

[Arxiv 2024] Self-Rewarding Language Models

Contents IntroductionMethodExperimentsReferences Introduction 作者提出 Self-Rewarding 训练框架,LLM 在训练过程中同时担任 actor 和 critic,actor 负责合成新数据,critic 负责判断合成数据质量用于组成高质量的偏好数据集用于模型的下…

NoSql数据库Redis集群

一、关系型数据库和 NoSQL 数据库 1.1 数据库主要分为两大类:关系型数据库与 NoSQL 数据库 关系型数据库 ,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库中的数据主流的 MySQL 、 Oracle 、 MS SQL Server…

ElasticSearch和Kibana的安全设置以及https设置

👨‍💻本文专栏:ElasticSearch和Kibana的安全设置以及https设置 👨‍💻本文简述:跟着猿灰灰一起学Java! 👨‍💻上一篇文章: 👨‍💻有任…

『功能项目』怪物受击的动画事件【10】

我们打开上一篇09着色器光透魔法球的项目, 本章要做的事情是在场景中创建一个怪物对象,当怪物被主角的魔法球击中后播放受击动画效果,此类技术用到动画事件帧,在动画上创建脚本。 首先打开资源商店选择一个免费资源的怪物模型加载…

apache httpclient速成

目录标题 快速使用连接池参数连接池状态清除闲置连接evictIdleConnections删除过期连接 timeToLive 和evictExpiredConnections 注意释放内存关闭流 http和netty的关系 导入依赖 <dependency><groupId>org.apache.httpcomponents.client5</groupId><artif…

【ceph学习】S3权限认证部分

认证过程简介 认证的过程是一个对用户信息进行解析并且判断前后得到的秘钥是否一致的过程。 auth_regitry的创建 在rgw_main.cc:main()中进行初始化auth_registry对象 /*rgw_main.cc*/ /* Initialize the registry of auth strategies which will coordinate * the dynamic…

浏览器中的开源SQL可视化工具:sqliteviz

sqliteviz&#xff1a; 在浏览器中&#xff0c;即刻开启数据可视化之旅。- 精选真开源&#xff0c;释放新价值。 概览 sqliteviz是一个专为数据可视化而设计的单页离线优先PWA&#xff0c;它利用了现代浏览器技术&#xff0c;让用户无需安装任何软件即可在本地浏览器中进行SQL…

WxPython可视化编辑器

作者&#xff1a;陈炳强 WxPython是python的一个用来写桌面程序的模块,目前只写了小部分功能跟组件, 用Python写中文&#xff0c;非常方便&#xff01; 下载地址&#xff1a;https://pan.quark.cn/s/ba19b2472246

大模型提示词工程技术2-设计有效的提示词技巧、角色与上下文在提示中的应用

大模型提示词工程技术2-设计有效的提示词技巧、角色与上下文在提示中的应用。《大模型提示词工程技术》的作者&#xff1a;微学AI&#xff0c;这是一本专注于提升人工智能大模型性能的著作&#xff0c;它深入浅出地讲解了如何通过优化输入提示词来引导大模型生成高质量、准确的…

19.神经网络 - 线性层及其他层介绍

神经网络 - 线性层及其他层介绍 1.批标准化层–归一化层&#xff08;不难&#xff0c;自学看官方文档&#xff09; Normalization Layers torch.nn — PyTorch 1.10 documentation BatchNorm2d — PyTorch 1.10 documentation 对输入采用Batch Normalization&#xff0c;可…

美发店会员系统设计解读之规格选择-SAAS本地化及未来之窗行业应用跨平台架构

一、请求产品信息 $.ajax({type:"get", //请求方式async:true, //是否异步url:"服务器",dataType:"json", //跨域json请求一定是jsonpjsonp: "cwpd_showData_dy_spec", //跨域请求的参数名&#xff0c;默认是callback//js…

从学习到工作,2024年不可或缺的翻译助手精选

翻译工具利用先进的机器学习和自然语言处理技术&#xff0c;能够迅速将一种语言的文档转换为另一种语言&#xff0c;极大地促进了信息的无障碍流通。接下来&#xff0c;我们将介绍几款功能强大、操作简便的类似deepl翻译的工具&#xff0c;帮助你轻松应对各种翻译需求。 第一款…

pymysql cursor使用教程

Python之PyMySQL的使用&#xff1a; 在python3.x中&#xff0c;可以使用pymysql来MySQL数据库的连接&#xff0c;并实现数据库的各种操作&#xff0c;本次博客主要介绍了pymysql的安装和使用方法。 PyMySQL的安装 一、.windows上的安装方法&#xff1a; 在python3.6中&…

基于SpringBoot的校园闲置物品交易管理系统

基于SpringBootVue的校园闲置物品交易管理系统【附源码文档】、前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 摘要 基于SpringBoot与Vue的校…

Linux驱动开发—创建总线,创建属性文件

文章目录 1.什么是BUS&#xff1f;1.1总线的主要概念1.2总线的操作1.3总线的实现 2.创建总线关键结构体解析2.1注册总线到系统2.2 struct bus_type *bus 解析 3.实验结果分析1. devices 目录2. drivers 目录3. drivers_autoprobe 文件4. drivers_probe 文件5. uevent 文件 4.在…

vscode远程连接服务器并根据项目配置setting.json

vscode连接好远程服务器&#xff0c;打开项目文件&#xff0c;按下快捷键&#xff1a;CtrlShiftP 搜索setting.json 这边可以看到不同范围的setting.json&#xff0c;这边以文件夹&#xff08;项目&#xff09;为单位&#xff0c;即在打开的文件夹内创建setting.json&#xff…

axure9树形元件节点的添加

树形元件 | AxureChina 在需要添加节点处右键添加->添加子节点