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

javaEE 初阶 — 数据链路层中的以太网数据帧

文章目录

  • 以太网帧格式
    • 1. MAC 地址
    • 2. MAC 地址是如何与 IP 地址相互配合的
    • 3. 以太网帧格式中的类型
  • MTU(了解)

以太网帧格式


数据链路层主要考虑的是相邻的两个结点之间的传输。

这里最知名的协议就是 以太网


一个以太网数据帧有三个部分组成。帧头+载荷+帧尾
载荷描述了一个完整的 IP 数据报,而帧头描述了 目的地址源地址、和类型(由这三部分组成)。帧尾则是 CRC

1. MAC 地址

这里的地址指的不是 IP 地址 而是 MAC 地址,MAC 地址是物理上的地址。

MAC 地址与 IP 地址 完全不是一回事,是不同的两套体系。

MAC 地址有 6 个字节,当前每个设备都会有唯一的 MAC 地址,MAC 地址不是动态分配的,
而是网卡出场的时候就被设置好的。

打开 cmd 键入 ipconfig 就可以查看自己的 MAC 地址。



这里的物理地址就是 MAC 地址。

2. MAC 地址是如何与 IP 地址相互配合的


IP 是用来描述这个传输过程的起点和终点, MAC 则是用来描述两个相邻结点的起点和终点。


下面来举个例子,比如说我从 河北 到 广东 去,通过网络层就回规划出一条路线:

河北 —> 河南 —> 湖北 —> 湖南 —> 广东

数据链路层会考虑到相邻的两个结点怎么走。

比如从 河北 —> 河南

源 IP 就是 河南,目的 IP 就是 广东,源 MAC 就是 河北,目的 MAC 就是河南。
比如说这一段路坐火车。


从 河南 —> 湖北

源 IP 就是 河北,目的 IP 就是 广东;源 MAC 就是 河南,目的 MAC 就是 湖北。
比如说这一段路程可以做高铁。


后面的路径与前面类似,总之 IP 描述的是最初从哪里来到哪里去,而 MAC 描述的是当前的阶段任务。

3. 以太网帧格式中的类型



类型是 0800 的描述的是一个普通的以太网数据帧,载荷部分就是一个完整的 IP 数据报。
0806 类型描述载荷部分是一个 ARP 报文,而 8035 的类型描述载荷部分是一个 RARP 报文。

这里的 ARP 报文RARP 报文 是数据链路层中的 ARP 协议
通过这个协议可以让某个路由器与交换机能够认识局域网里的其它设备,也就是建立连接。
也可以通过 ARP 协议 在交换机与路由器里建立一个表,这个表相当于是 哈希表,可以建立出 IP 与 MAC 之间映射关系。
映射关系 也就是知道了 IP 就可以知道 MAC ,知道了 MAC 就可以知道 IP 。

MTU(了解)


MTU 是一个数据链路层的数据帧,描述的是能够承载数据的最大长度。(载荷的长度)

但是载荷具体多长和使用的物理介质有很大的关系,当然也和数据链路层使用的协议有很大的关系。
比如以太网协议 MTU 是 1500的字节。(这和物理层有很大的关系)

正是这个 MTU 引起了 IP 这个协议来进行分包组包。
IP 的分包组包通常不是根据这个 IP 最大长度 64 KB 来分的,大概率的情况下,数据链路层的 MTU 都比 64 KB 要小。

http://www.lryc.cn/news/28967.html

相关文章:

  • 泼辣修图Polarr5.11.4 版,让你的创意无限延伸
  • leetcode打卡-深度优先遍历和广度优先遍历
  • 【0177】Linux中POSIX信号量实现机制
  • 跳表--C++实现
  • c#:System.Text.Json 的使用一
  • kaggle数据集下载当中所遇到的问题
  • TEX:高阶用法
  • UML 类图
  • 项目实战典型案例1——redis只管存不管删除 让失效时间删除的问题
  • @RequestParam和@PathVariable的用法与区别
  • 【大数据 AI 人工智能】数据科学家必学的 9 个核心机器学习算法
  • IronPDF for .NET 2023.2.4 Crack
  • 3.4-前端的10个问题
  • 开发手册——一、编程规约_9.其他
  • 23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E
  • Gem5模拟器,一些运行的小tips(十一)
  • 【JAVA】List接口
  • Hbase RegionServer的核心模块
  • 【Java开发】JUC进阶 01:Lock锁详解
  • 关于登录校验的解决方案以及原理(回顾知识点)--项目开发那点事(自问自答版本)
  • 【数据结构】邻接矩阵和邻接图的遍历
  • 设计跳表(动态设置节点高度)
  • 基于神经辐射场(Neural Radiance Fileds, NeRF)的三维重建- 简介(1)
  • 【AI面试】NMS 与 Soft NMS 的辨析
  • 一文让你彻底理解Linux内核多线程(互斥锁、条件变量、读写锁、自旋锁、信号量)
  • 利用python写一个gui小公举--环境搭建
  • 英飞凌Tricore实战系列02_ENDINIT属性看门狗原理及应用
  • Java Number类
  • C++构造和析构
  • docker安装即docker连接mysql(window)