【网络编程】第十一章 数据链路层 - 以太网(MAC+MTU+ARP+MSS+RARP)

news2024/9/27 19:26:24

文章目录

  • 重点
  • 链路层
    • 以太网MAC帧格式
    • 碰撞域
    • MAC地址
      • MAC地址和IP地址
    • MTU-最大传输单元
      • MTU 对 IP 的影响
      • MTU 对 UDP 的影响
      • MTU 对 TCP 的影响-MSS
    • ARP协议
      • ARP协议的工作流程
        • ARP请求的过程
        • ARP应答的过程
      • ARP 缓存
      • 中间人攻击
    • RARP协议


重点

  • 数据链路层的作用:两个设备 (同一种数据链路节点) 之间进行传递数据;
  • 以太网是一种技术标准;既包含了数据链路层的内容, 也包含了一些物理层的内容。 例如:规定了网络拓扑结构,访问控制方式,传输速率等;
  • 以太网帧格式
  • 理解 mac 地址
  • 理解 arp 协议
  • 理解 MTU

链路层

数据链路层:提供将数据在局域网中传输的能力,传输方式主要是以太网

  • 数据在发送之前会给数据封装上对应的局域网的报头。
  • 数据要进行跨网络传输,需要经过路由器转发。
  • 数据在路由器进行向上交付时,会将该数据对应的局域网报头去掉。
  • 而当路由器该数据转发给下一跳之前,又会给该数据封装上下一跳网络所对应的局域网报头。

以太网中所有的主机共享一个通信信道,当局域网中的一台主机发出数据后,该局域网中的所有主机都能够收到该数据

以太网MAC帧格式

image-20240821080959978

  • 目的地址(6B):48 位的 MAC 地址

  • 源地址(6B):48 位的 MAC 地址

  • 类型(2B):网络层使用的协议,帧协议类型有三种值,分别对应 IP、ARP、RARP,所以只需要 2 个字节

    • TCP/IPv4:0x0800

    • ARP 请求或响应:0x0806

    • RARP:0x8035

    • Novell 网络层 IPX 协议:0x8137

  • 数据载荷:46B-1500B

  • CRC(4B):校验码

碰撞域

通过交换机来划分碰撞域,在同一个碰撞域当中,目的地址不会传输到外面去,减少碰撞的概率发生,同时MAC 帧不要太大,否则会大大增加碰撞的概率

MAC地址

mac地址也是物理地址,不是指物理层的概念

  • MAC地址用来识别数据链路层中相连的节点
  • 长度为48位,及6个字节,例如:08:00:27:03:fb:19
  • 网卡出厂时就确定,MAC地址通常是唯一的

ifconfig命令来查看我们的MAC地址

MAC地址和IP地址

  • IP是路途总体的起点和终点。
  • MAC是路途上的每一个区间的起点和终点。

MTU-最大传输单元

以太网对应MTU的值一般是1500字节,最小长度为46字节,为了满足数据链路层中最大帧/最小帧的要求

MTU 对 IP 的影响

  • 因为 MTU 的存在,网络层 IP 协议中需要对较大的数据包进行分片
  • 如果 IP 分片后出现丢包导致数据丢失,那么传输层就必须得重传

MTU 对 UDP 的影响

IP报头的长度是20字节,UDP报头的长度是8字节,只要 UDP 携带的数据超过 1472字节 (1500 - 20 IP首部 - 8 UDP首部),那么就会在网络层分片

一旦数据报中有一个 IP 报文丢失了,那么整个 UDP 报文就会丢失。再加上 UDP 并没有超时重传机制,UDP 的报文在 IP 层中被分片后丢包的概率远大于 TCP

MTU 对 TCP 的影响-MSS

  • TCP发送的数据报该受制于MTU,TCP的单个数据报的最大报文长度,称为MSS,在TCP首部选项当中
  • TCP 在建立连接的过程中,通信双方会进行 MSS 协商。最理想的情况, 最终选取双方支持的MSS值当中的较小值作为最终MSS

image-20240821164045163

ARP协议

地址解析协议协议,根据IP地址获取MAC地址的一个TCP协议,是 MAC 帧协议的 “上层”,因为同一个局域网中发消息需要知道对方mac地址,而我们一般只知道ip地址,所以需要arp协议将ip地址转换为mac地址

image-20240821171434993

  • 硬件类型指链路层的网络类型,1为以太网
  • 协议类型指要转换的地址类型,0x0800为IP地址
  • 硬件地址长度对于以太网地址为6字节,因为MAC地址是48位的
  • 协议地址长度对于IP地址为4字节,因为IP地址是32位的
  • op字段为1表示ARP请求,op字段为2表示ARP应答

ARP协议的工作流程

ARP请求的过程

主机 A 需要给主机 B 发送数据,但是不知道主机 B 的 MAC 地址,它就需要发起一个 ARP 请求

  • 以太网目的地址填为全 F,代表广播
  • 源地址填主机 A 自己的 MAC 地址
  • 帧类型填 0806 代表 ARP 协议
  • 硬件类型字段设置为1
  • 协议类型设置为0800
  • 硬件地址长度为6
  • 协议地址长度为4
  • ARP 中的 OP 填为 1,代表是 ARP 请求
  • 发送端以太网地址填为主机 A 的 MAC 地址
  • IP 地址填主机 A的 IP 地址
  • 目的以太网地址填为全 F,表示广播
  • 目的IP 地址填为主机 B的 IP 地址

之后将封装好的MAC帧以广播的方式发送到局域网当中,直接判断arp协议

  • ARP 层先通过 OP 为 1 判断是 ARP 的请求
  • 取出请求中的目的 IP 地址,判断是否为本机 IP 地址,不是则丢弃
  • 是本机的 IP 地址,代表这个报文是发给自己的 ARP 请求,需要构造 ARP 响应
ARP应答的过程
  • 以太网目的地址填为 ARP 请求中的主机 A MAC 地址
  • 以太网源地址填主机 B的MAC 地址
  • 帧类型填 0806 代表 ARP 协议
  • 硬件类型字段设置为1
  • 协议类型设置为0800
  • 硬件地址长度为6
  • 协议地址长度为4
  • ARP 中的 OP 填 2,代表 ARP 响应
  • 发送端以太网地址填为主机 B 的 MAC 地址
  • IP 地址填主机 B的 IP 地址
  • 目的以太网地址填 A 的 MAC 地址
  • IP 地址填为目的主机 A 的 IP 地址

之后将封装好的MAC帧以广播的方式发送到局域网当中,先判断mac协议,再判断arp协议

  • 通过 MAC 地址来判断是否是发给自己的 MAC 帧。如果不是就直接丢弃
  • 判断 ARP 中的 OP 为 2,代表是 ARP 响应
  • 直接取出发送端主机 MAC 和主机 IP,就能得到主机 B 的 IP 和 MAC 地址的映射关系

ARP 缓存

  • 任何一台主机发出的一定是 ARP 的请求
  • 接收到的 ARP 可能是对方向往发送的 ARP 请求,也可能是我发送的 ARP 请求的响应

当我们发送了一个 ARP 请求后,应该需要将 ARP 响应给暂时缓存到本机上,过段时间一起发

中间人攻击

  • 主机 A 想获取主机 B 的 MAC,发送 ARP 请求并获取到了响应
  • 主机 D 把自己的 IP 伪装成主机 B 的 IP,又给主机 A 发送了 ARP 响应
  • 此时主机 A 更新了 ARP 缓存表,将主机 B 的 IP B 映射给了 MAC D
  • 主机 D 用同样的办法,将主机 B 的 ARP 缓存表中的 IP A 映射给了 MAC D
  • 此时主机 A 给 B 发送消息,填的是 MAC D;B 给 A 发消息,填的也是 MAC D;
  • 主机 D 在收到 A 和 B 双方通信的报文后,先交付给自己的上层,再转发给对方;

RARP协议

根据MAC地址获取IP地址的一个TCP/IP协议,因为既然我们已经知道一台主机的MAC地址了,那么我们就已经可以直接向给主机发送消息了,因此我们可以直接发消息询问对方的IP地址就行了


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博物馆地图导览:利用GIS与蓝牙定位技术,融合语音解说功能

引言 亲爱的技术员、开发者朋友们,随着科技的不断进步,博物馆等文化场所的导览方式也在不断创新。今天,我将为大家介绍我们的新产品——博物馆地图导览系统,该系统集成了GIS(地理信息系统)、蓝牙定位技术以…

PHP反序列化一

1.序列化/反序列化 序列化:对象转化为字节流 反序列化:字节流转化为对象 二者相互结合,可以轻松的存储和传输数据,使程序更具维护性 2.反序列化漏洞 原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制&…

Heygen注册不了?试试这两种方法!

随着数字媒体发展,视频内容已成为传播信息的重要手段。然而,高质量的视频制作往往需要专业的技术知识和昂贵的制作成本。HeyGen平台,正是打破这一局限的创新工具。它不仅为视频创作者提供了一个全新的创作空间,更能极大程度地降低…

minio使用与注解事务管理

目录 一、minio启动 1、创建文件夹 2、cmd启动 3、查看端口地址以及密码 二、minio使用步骤 1、创建bucket,并且把Access Policy设置成public 2、代码 三、注解事务管理 一、minio启动 1、创建文件夹 2、cmd启动 3、查看端口地址以及密码 二、minio使用步…

uni-app开发日志:实现无限层级树形分类页面,通过schema2code生成代码并在此基础上完善修改list、add和edit页面

本文中省略很多开发说明,可能需有一定uniapp的实战基础的朋友才能看明白。 schema2code 生成的无限级分类页面只提供超简易版的功能,没有层级选择,只能自己填入父类ID,列表的时候也是全部显示,没有层级关系&#xff0c…

闲置物品交易平台网站商城-计算机毕设Java|springboot实战项目

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

WIFI 频段及信道简介

一、WiFi 三频AP规划信道时,建议分别采用2.4G、5.2G、5.8G频段可用信道。 2.4G频段;5.2G频段;5.8G频段。 1、中国5G WiFi频段 5.8GHz频段,中国开放只有149、153、157、161、165这5个信道; 其中可支持一组80MHz信道…

Linux 软件编程 数据库与网页

sqlite3数据库操作效率: 1.增加事务机制 2.关闭数据库磁盘同步写入 3.使用预处理SQL语句机制实现提升数据库效率 事务机制: 1.可以提高sqlite处理数据的效率 2.确保数据的一致性 关闭数据库中写同步机制: 在…

文献阅读:单细胞分辨率下小鼠大脑衰老的分子和空间特征

文献介绍 文献题目: Molecular and spatial signatures of mouse brain aging at single-cell resolution 研究团队: 庄小威(美国哈佛大学)、Catherine Dulac(美国哈佛大学) 发表时间: 2022-12…

具有手势识别的动捕设备——mHand Pro VR数据手套

数据手套是指通过手套内置的传感器,实时采集手部运动数据的动捕设备,通常被应用于虚拟仿真、虚拟现实vr交互、动画制作等领域。其中,基于惯性动作捕捉技术研发的数据手套,凭借其高性价比的优势,在市面上的应用更为广泛…

数据驱动的社交网络:分析Facebook的算法与用户体验

在现代社交网络中,Facebook以其庞大的用户基础和数据驱动的算法而著称。这些算法不仅决定了用户在平台上的体验,也深刻影响了他们与内容的互动方式。本文将深入分析Facebook的算法如何通过数据驱动优化用户体验,并探讨其在社交网络中的作用。…

图片合集

文章目录 线段树 8.23 线段树 8.23

企业网中网关的部署位置浅析

园区网网关部署位置 园区网络中的终端设备,想要访问外部的Internet,第一步首先要找自己的网关设备。然后通过网关设备再进入园区网内部进行数据路由。 一般园区网的网关部署方案有两类: 一、园区网关部署在汇聚层 如果把网关部署在汇聚交换…

安利一款企业都在用的Ser-U替代产品

Ser-U,这款历史悠久的FTP服务器软件,曾经在市场上占据着主导地位。然而,随着技术的不断进步,一些新兴的竞争对手开始崭露头角,比如镭速这样的替代品,正在逐渐成为企业的新宠。那么,企业为何要寻…

医院住院管理系统+vue

TOC ssm012医院住院管理系统vue 第1章 绪论 1.1背景及意义 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对医院住院管理系统方面的要求也在不断提高,随着医院住院管理系统受到广大用户的关注&…

CVPR 2024论文分享┆LMDrive:基于大模型的闭环端到端自动驾驶

论文简介 本推文主要介绍2024 CVPR接收的一篇论文《LMDrive: Closed-Loop End-to-End Driving with Large Language Models》,该论文提出了一种名为LMDrive的创新方法,展示了如何利用大型语言模型在自动驾驶系统中进行闭环的端到端驾驶控制。传统的自动…

用Python制作一个可以预测天气的程序(附代码)

要用Python制作一个简单的天气预报应用,你可以使用多种方法,但最常见和方便的是利用现有的天气API(如OpenWeatherMap、Weatherbit、AccuWeather等)。这里,我将以OpenWeatherMap为例,展示如何编写一个简单的…

pikachu SSRF通关(服务器端请求伪造)

开始闯关吧 一共有两关 第1关 SSRF(curl) 按照指示点击下图蓝色字体的链接 得到了下图地址栏里的带参数的url,参数名是url, PHP的curl PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。 libcurl目前…

融合定位系统的误差与什么有关

在当今科技日新月异的时代,融合定位系统作为精准导航与定位的关键技术,广泛应用于智能手机、自动驾驶、无人机及智能物流等领域。然而,这一技术的准确性并非无懈可击,其误差来源复杂多样,深刻影响着定位精度与用户体验…

在线制作9png的好网站

https://inloop.github.io/shadow4android/ fook : https://github.com/inloop/shadow4android