当前位置: 首页 > news >正文

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模式之所以性能比较优秀的原因之一,就是因为数据的返回线路不用经过负载均衡服务器。负载均衡服务器只用分发来访的数据。所以负载均衡服务器的负载差不多减少了一半。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 图像数据处理25
  • MySQL数据库用户管理和授权
  • 突发性网络攻击的安全挑战分析
  • 微软DP420认证,涉及SQL,C#,Java
  • Apache Kafka 简介、使用场景及特点
  • day-43 盛最多水的容器
  • Shell 脚本入门指南
  • xss-labs靶场通关详解
  • 【DSP+FPGA】基于DSP+FPGA XC7K325T与TMS320C6678的通用信号处理平台
  • 【软考】【多媒体应用设计师】媒体与技术2
  • useeffect和uselayout区别
  • HTTPS协议中的加密机制分析、证书认证
  • hadoop日志文件
  • Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明]
  • Transformer模型 PostionEmbedding的实现
  • ES6--对象的扩展
  • Java 内存分配及垃圾回收机制初探
  • Javascript Math对象和Date对象常用方法详解
  • js 实现textarea输入字数提示
  • leetcode46 Permutation 排列组合
  • Redis在Web项目中的应用与实践
  • scala基础语法(二)
  • text-decoration与color属性
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 欢迎参加第二届中国游戏开发者大会
  • 前言-如何学习区块链
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 为视图添加丝滑的水波纹
  • 我从编程教室毕业
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • ## 基础知识
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (PySpark)RDD实验实战——求商品销量排行
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (离散数学)逻辑连接词
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法设计与分析)第一章算法概述-习题
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Windows2003安全设置/维护
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net CHARTING图表控件下载地址
  • .net Stream篇(六)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net操作Excel出错解决
  • .net开发日常笔记(持续更新)
  • @Autowired和@Resource装配
  • [C++]: std::move
  • [CF]Codeforces Round #551 (Div. 2)
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [Flink]三、Flink1.13
  • [Gamma]阶段测试报告