【网络世界】数据链路层

news2024/9/22 5:35:18

目录

🌈前言🌈

📁 初识数据链路层

 📂 概念

 📂 协议格式

📁 MAC地址

 📂 概念

 📂 与IP地址的区别

📁 MTU

 📂 对IP协议的影响

 📂 对UDP协议的影响

 📂 对TCP协议的影响

📁 ARP协议

 📂 引入

 📂 格式

 📂 工作流程

 📂 ARP欺骗

📁 总结


🌈前言🌈

        欢迎收看本期【网络世界】,本期内容讲解TCP/IP协议栈中的数据链路层,包含了MAC地址,局域网通信,ARP协议等。

📁 初识数据链路层

 📂 概念

        数据链路层(Data Link Layer)也称为网络接口层,是计算机网络协议栈中的第二层,位于物理层之上,网络层之下,而在TCP/IP参考模型中则被视为最低层。它主要负责在相邻节点之间提供可靠的数据传输服务。数据链路层通过封装成帧、差错检测、流量控制等机制,确保数据帧在物理链路上能够准确无误地传输。并涉及物理地址(如MAC地址)与逻辑地址(如IP地址)之间的映射机制。

作用
        数据链路层的主要作用是将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,从而向网络层提供一条可靠的、无差错的链路。这一层通过封装成帧、差错检测、流量控制等功能,确保数据在传输过程中的完整性和可靠性。

认识以太网

        • "以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内 容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速 率等;

        • 例如以太网中的网线必须使用双绞线; 传输速率有 10M, 100M, 1000M 等;

        • 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线 LAN 等

 📂 协议格式

        源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址), 长度是 48 位,是在网 卡出厂时固化的。

        帧协议类型字段有三种值,分别对应 IP、ARP、RARP。

        帧末尾是 CRC 校验码。

📁 MAC地址

 📂 概念

        MAC地址是用来识别数据链路层中相互连接的节点。长度是48位(6B),一般用16进制+冒号形式表示(例如: 08:00:27:03:fb:19)

        在网卡出厂时就确定了,不能被修改,mac地址通常是唯一的(虚拟机mac地址并不是真实的mac地址,可能会冲突;有些网卡也支持自己配置)

 📂 与IP地址的区别

        IP地址是逻辑地址,是网络层的概念,表示全网的唯一台主机。描述的是路径总体的起点和终点。

        mac地址是物理地址,是数据链路层的概念,用来确认网络设备位置的位址。描述的是路途上的每一个区间的起点和终点。

        MAC地址作为物理地址,确保了局域网内设备之间的准确通信;而IP地址作为逻辑地址,则实现了不同网络之间的互联互通。

  1. 物理与逻辑的区别
    • MAC地址:是物理地址,与设备的硬件直接相关,由设备制造商在生产时烧录在网卡上,具有唯一性和固定性。
    • IP地址:是逻辑地址,用于在网络中标识设备或主机,由网络管理员进行配置和管理,具有一定的灵活性和可变性。
  2. 工作层次不同
    • MAC地址工作在OSI模型的第二层(数据链路层),用于在局域网内控制数据包的传输。
    • IP地址则工作在OSI模型的第三层(网络层),用于在不同网络之间标识和传输数据包。
  3. 范围与扩展性
    • MAC地址:只能在同一个局域网内使用,无法跨越不同的网络。由于其长度固定为48位,无法进行扩展。
    • IP地址:可以在全球范围内的任何网络中使用,支持跨网络通信。IP地址可以根据需要进行分段和组织,实现更加丰富、复杂和可扩展的网络拓扑结构。
  4. 分配与管理
    • MAC地址:由设备制造商在设备制造时分配,具有全球唯一性,用户无法更改。
    • IP地址:由网络管理员根据网络拓扑和需求进行分配和管理,可以根据需要进行更改或重新分配。
  5. 作用与功能
    • MAC地址:主要用于局域网内的设备标识和数据传输控制,确保数据包能够准确地传输到目标设备。
    • IP地址:用于在网络中标识设备或主机,实现数据在不同网络之间的传输和路由选择。此外,IP地址还可以用于建立网络连接、进行网络扫描、实现主机发现和设备管理等任务。

📁 MTU

        MTU(Maximum Transmission Unit,最大传输单元)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。它限制了数据链路层上面能发送的数据包的最大尺寸。这个参数通常与通信接口有关(例如以太网、PPP等)。

• 以太网帧中的数据长度规定最小 46 字节,最大 1500 字节,ARP 数据包的长度不够 46 字节,要在后面补填充位;

• 最大值 1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的 MTU;

• 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的 MTU 了,则需要对数据包进行分片(fragmentation);

• 不同的数据链路层标准的 MTU 是不同的

 📂 对IP协议的影响

        由于数据链路层对MTU的影响,对较大的IP数据包要进行分片

• 将较大的 IP 包分成多个小包, 并给每个小包打上标签;

• 每个小包 IP 协议头的 16 位标识(id) 都是相同的;

• 每个小包的 IP 协议头的 3 位标志字段中, 第 2 位置为 0, 表示允许分片, 第 3 位 来表示结束标记(当前是否是最后一个小包, 是的话置为 1, 否则置为 0);

• 到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;

• 一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. 但是 IP 层不会负 责重新传输数据;

 📂 对UDP协议的影响

        一旦UDP携带的数据超过1472(1500B - 20B(IP首部)  - 8 (UDP首部) ),那么就会在网络层进行分片。这个IP数据包有任何一个丢失,都会引起对端网络层重组失败,但UDP是不可靠的,面向无连接的,因此UDP数据报被网络层分片,数据丢失的概率就大大增加了。

 📂 对TCP协议的影响

        TCP数据报也受限于MTU,TCP单个数据报最大长度为MSS(Max Segment Size).TCP在建立连接时,通信双方会进行MSS协商。最理想情况下,MSS的值正好是IP不会被分片处理的最大长度。

        通信双方在发送SYM的是偶会在TCP头部写入自己支持的MSS,然后双方告知对方的MSS值后,选择较小值作为最终的MSS。MSS值就是TCP首部的40B选项中。

📁 ARP协议

 📂 引入

        在网络通讯时,源主机的应用程序知道目的主机的 IP 地址和端口号,却不知道目的主机的硬件地址。数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。

        ARP 协议建立了主机 IP 地址 和 MAC 地址 的映射关系,负责将IP地址转换成MAC地址。

        RARP协议负责将MAC地址转换成IP地址。(不讲解RARP协议,主要以ARP协议进行讲解)

 📂 格式

• 注意到源 MAC 地址、目的 MAC 地址在以太网首部和 ARP 请求中各出现一次, 对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。

• 硬件类型指链路层网络类型,1 为以太网;

• 协议类型指要转换的地址类型,0x0800 为 IP 地址;

• 硬件地址长度对于以太网地址为 6 字节;

• 协议地址长度对于和 IP 地址为 4 字节; • op 字段为 1 表示 ARP 请求,op 字段为 2 表示 ARP 应答

 📂 工作流程

        我们先来理解一下如何构建IP地址映射Mac地址的关系。

(1). 路由器(或源主机)发出 ARP 请求,每个主机取出MAC帧,取出帧中ARP,首先检查oper。

(2). 如果是arp请求,就对比destip和自己的ip,如果一样,说明请求自己的mac地址,然后取出srcip和srcmac,构建arp应答单播给路由器。

(3). 路由器收到arp应答,取出mac帧,发现oper是arp应答,然后提取srcIP和srcMac,构建映射关系。

        为什么是暂时缓存呢?主机可能会随时更换网卡,如果是一成不变的,那么就会导致错误。因此需要定时更换,暂时缓存。

 📂 ARP欺骗

        ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。

        ARP欺骗通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通或数据被截获。攻击者发送假的ARP数据包到网上,尤其是送到网关上,目的是要让送至特定的IP地址的流量被错误地送到攻击者所取代的地方。

📁 总结

        以上,就是本期【网络世界】的内容了,包含了数据链路层的基本概念,例如Mac地址是什么,局域网通信使用的就是MAC地址。

        学习了为什么我们只需要知道IP地址,就能够经过一跳一跳的发送到目的主机呢?因为ARP协议的存在,将IP地址转换为Mac地址,Mac地址充当了路径每个区间的起点和终点。

        如果感觉本期内容对你有帮助,欢迎点赞,关注,收藏Thanks♪(・ω・)ノ

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

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

相关文章

思维+位运算,CF 1934D1 - XOR Break --- Solo Version

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1934D1 - XOR Break --- Solo Version 二、解题报告 1、思路分析 合法操作会让 n 越变越小 假如最高位1为 b1, 次高位1 为b2 那么我们去掉b1 的 1最大能够得到的数为 &#xff08;1 << b2&#xff…

图像传感器 - 从零开始认识各种传感器【二十六期】

图像传感器|从零开始认识各种传感器 1、什么是图像传感器&#xff1f; 图像传感器是将光信号转换为电信号的设备&#xff0c;图像传感器通过捕捉光子并将其转化为电子信号&#xff0c;从而生成数字图像。它是数码相机、摄像机、智能手机、无人机、自动驾驶汽车以及各种工业和医…

良心推荐!分享6个强大的电脑软件,每一个都非常实用

良心推荐&#xff01;分享6个功能强大的电脑软件&#xff0c;每一个都非常实用&#xff01; 1.Listen1 一个可以免费听音乐的软件&#xff0c;也可以在浏览器上作为插件使用&#xff0c;曲库丰富&#xff0c;里面涵盖了QQ音乐、酷狗音乐、网易云音乐等多个平台的歌单资源&…

【MySQL】索引——索引的实现、B+ vs B、聚簇索引 VS 非聚簇索引、索引操作、创建索引、查询索引、删除索引

文章目录 MySQL5. 索引的实现5.1 B vs B5.2 聚簇索引 VS 非聚簇索引 6. 索引操作6.1 创建主键索引6.2 创建唯一索引6.3 创建普通索引6.4 创建全文索引6.5 查询索引6.6 删除索引 MySQL 5. 索引的实现 因为MySQL和磁盘交互的基本单位为Page&#xff08;页&#xff09;。 MySQL 中…

LTrack:实现夜间多目标追踪,并开放低光多目标追踪数据集LMOT

摘要 低光场景在现实应用中很常见&#xff08;例如&#xff0c;夜间的自动驾驶和监控&#xff09;。最近&#xff0c;多目标跟踪在各种实际用例中受到了很多关注&#xff0c;但黑暗场景中的多目标跟踪却很少被考虑。在本文中&#xff0c;我们专注于黑暗场景中的多目标跟踪。为…

点菜吧——随便点 C#生成套餐

前言 一到食堂发现有多种选择&#xff0c;但是有一个固定的套路&#xff0c;只能是一个荤&#xff0c;二个小荤&#xff0c;菜品数量也不少&#xff0c;任君选择&#xff0c;如果是一个选择困难症&#xff0c;就有点烦了&#xff0c;所以出品这个自动生成套餐软件。各位老板可…

Mysql原理与调优-InnoDB行记录结构

目录 1.绪论 2.InnoDB的记录格式分类 3.compact格式 3.1 基本组成 3.2 记录额外信息 3.2.1 记录额外信息组成 3.2.2 变成字段长度列表 3.2.3 null值列表 3.2.4 记录头信息 3.3 实际记录 3.3.1 溢出页 3.3.2 varchar最多可以储存多少个字符的数据 4.其他记录格式和c…

配置python的基本环境

python的背景知识 python是咋来的&#xff1f; Python 是一种广泛使用的高级编程语言&#xff0c;由 Guido van Rossum 在1989年底发明&#xff0c;第一个公开发行版发行于1991年。Python 的设计哲学强调代码的可读性和简洁的语法&#xff08;尤其是使用空格缩进来区分代码块…

tcpdump使用指南

tcpdump 是一款强大的网络抓包工具&#xff0c;它使用 libpcap 库来抓取网络数据包&#xff0c;这个库在几乎在所有的 Linux/Unix 中都有。 tcpdump src 10.5.2.3 and dst port 3389 # 1. 基于IP地址过滤 # 根据源ip进行过滤 $ tcpdump -i eth2 src 192.168.10.100# 根据目标…

sqli-labs靶场练习(1、5-8关)

自己搭建环境啊喂...http://127.0.0.1/sqli-labs-php7-master/ 第一关 1.单引号判断是否存在注入点 /?id1 2.查询列数 ?id1 order by 3-- ?id1 order by 4-- 由此可判断有3列 3.查询用户名和密码分别在哪列 ?id-1 union select 1,2,3 -- 4.查询数据库名称为security ?…

CC2530组网实验-1

1&#xff0c;ZigBee协议栈 协议是一系列的通信标准&#xff0c;通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式&#xff0c;通俗点来理解就是协议栈是协议和用户之间的一个接口&#xff0c;开发人员通过使用协议栈来使用这个协议的&…

生活一地猫毛,空气还有猫浮毛!宠物空气净化器帮你消除这些烦恼

随着换毛季节的到来&#xff0c;铲屎官们如临大敌&#xff0c;猫咪将它们的毛发洒满每一个角落&#xff0c;仿佛室内下起了毛茸茸的飘雪。对于铲屎官来说&#xff0c;这不仅耗费时间的清理任务&#xff0c;更是一场守护健康的保卫战。为此&#xff0c;采取了许多措施来应对猫咪…

STL中的vector以及简单实现

vector的简单介绍&#xff1a; 头文件&#xff1a; #include<vector> vector是属于STL的一员&#xff0c;虽然vector的英文意思是向量&#xff0c;但是vector就是一个顺序表&#xff1b; 对于vector来说&#xff0c;面对string的设计的复杂和冗余&#xff0c;vector就…

Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序

Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的图书馆座位预约系统微信小程序&#xff0c;适合用于Java毕业设计。 功能介绍 用户 登录 注册 首页 图片轮播 关于我们 公告信息 图书馆信息 图书馆详情 预约选座 收藏 …

Tkinter Designer:拖拽式加速Python Tkinter GUI开发的神器

引言 在Python的世界里&#xff0c;创建美观且功能强大的图形用户界面&#xff08;GUI&#xff09;向来是开发者的挑战之一。Tkinter&#xff0c;作为Python的内置GUI库&#xff0c;虽然功能强大&#xff0c;但在实际使用中&#xff0c;设计和实现GUI的过程往往耗时且繁琐。Tki…

Linux中信号的处理

进程正在递达某一个信号期间&#xff0c;同类型的信号无法被递达&#xff01;&#xff01;&#xff01; 当当前信号正在被捕捉事&#xff0c;系统会自动将当前信号加入到进程的信号屏蔽字&#xff08;block&#xff09;。 当信号完成捕捉动作&#xff0c;系统又会自动解除对该…

R语言BIOMOD2 及机器学习方法的物种分布模拟与案例分析

BIOMOD2是一个R软件包&#xff0c;用于构建和评估物种分布模型&#xff08;SDMs&#xff09;。它集成了多种统计和机器学习方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允许用户预测和分析物种在不同环境条件下的地理分布。通过这种方式&#xff0c;BIOMOD帮助研究者评估气候…

Linux-理解shell

文章目录 5. 理解shell5.1 shell的类型5.2 交互shell和系统默认shell5.3 安装zsh shell程序5.4 shell的父子关系5.5 命令列表5.6 命令分组5.7 使用命令分组创建子shell5.8 子shell用法5.9 shell的非内建命令和内建命令5.9.1 非内建命令5.9.2 内建命令5.9.3 history和alias命令介…

Cornerstone加载本地Dicom文件第二弹 - Blob篇

&#x1f340; 引言 当我们刚接触Cornerstone或拿到一组Dicom文件时&#xff0c;如果没有ImageID和后台接口&#xff0c;可能只是想简单测试Cornerstone能否加载这些Dicom文件。在这种情况下&#xff0c;可以使用本地文件加载的方法。之前我们介绍了通过node启动服务器请求文件…

cuda pytorch安装详细教程 GPU版

1.先安装anaconda Anaconda 1.1这里用了最简单的方法&#xff0c;后面将pytorch直接安装到base配置下面了。 1.2下载安装&#xff0c;全部勾选。 一定添加文件夹到path中去&#xff0c;否则后面下载pytorch&#xff0c;无法传输。 1.3 通过cmd&#xff0c;输入conda --versio…