07.计算机网络——数据链路层

news2024/10/7 12:19:46

文章目录

  • 数据链路层
    • 以太网帧格式
    • MAC地址
    • 理解MAC地址和IP地址
    • 认识MTU
      • MTU对IP协议的影响
      • MTU对UDP协议的影响
      • MTU对于TCP协议的影响
    • ARP协议
      • **ARP**协议的作用
      • ARP协议的工作流程
      • ARP数据报的格式


数据链路层

​ 数据链路层在物理层提供的服务的基础上向网络层提供服务,用于同一数据链路节点之间进行数据传递。


以太网帧格式

  • “以太网” 不是一种具体的网络, 而是一种技术标准。
  • 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMRWSuub-1689856483309)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230720153552711.png)]

  • 源地址和目的地址是指网卡的硬件地址/MAC地址,长度是48位,是在网卡出厂时固化的。
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP。
  • 帧末尾是CRC校验码。

MAC地址

  • MAC地址用来识别数据链路层中相连的节点。
  • 子网中的ip是动态分配的,无法表示主机的唯一性,而MAC地址在网卡出厂时就确定了, mac地址唯一,其可以表示主机的唯一性。
  • MAC地址长度为6字节,一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)。

理解MAC地址和IP地址

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

认识MTU

  • MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层产生的限制。
  • 以太网帧中的数据长度规定最小46字节,最大1500字节。最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  • 如果一个数据包长度大于MTU,则需要对数据包进行分片(fragmentation),不同的数据链路层标准的MTU是不同的。

MTU对IP协议的影响

  • 由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包。
  • 较大的IP包分成多个小包, 并给每个小包打上标签(16位标识);
  • 每个小包的IP协议头的3位标志字段中, 第2位置为0表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0);
  • 到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WsnWH6IZ-1689856483310)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230720153702313.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CK1G88Qi-1689856483310)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230720153708473.png)]

MTU对UDP协议的影响

​ 如果UDP在网络层分成多个IP数据报,这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了。

MTU对于TCP协议的影响

​ TCP在建立连接的过程中, 通信双方会进行MSS(大消息长度)协商,这个长度仍然是受制于数据链路层的MTU。双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,然后双方得知对方的MSS值之后, 选择较小的作为最终MSS,MSS的值在TCP首部的40字节变长选项中。


ARP协议

  • ARP协议:ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;

ARP协议的作用

​ 当进行网络通信的时候,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址。ARP协议建立了主机 IP地址 和 MAC地址的映射关系,从而解决了这一问题。


ARP协议的工作流程

  • 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段。
  • 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
  • ARP会发生在网络中的任何路径中,在局域网中,任何一个主机收到的ARP可能是一个应答也可能是一个请求。
  • 每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lKT8oUMF-1689856483310)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230720153755919.png)]


ARP数据报的格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KGl71xeA-1689856483310)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230720153813024.png)]

  • 源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况
    是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于和IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答。

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

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

相关文章

了解持续集成、交付和部署

如果可以实现记得点赞分享,谢谢老铁~ 软件开发公司变得越来越敏捷。他们不断适应新技术和实践,以在其业务领域保持领先地位。在软件开发中,三种策略;持续集成、持续交付和持续部署是为了快速、一致地开发、部署、测试和…

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin <?xml version"1.0" encoding"utf-8"?> <resources><dimen name"my_size_dp">20dp</dimen><dimen name"my_size_px">20px</dime…

研发机器配网方案(针对禁止外网电脑的组网方案)

背景&#xff1a;公司是研发型小公司&#xff0c;难免会使用A某D和K某l 等国内免费软件&#xff0c;这两个是业界律师函发得最多的软件。最简单的方案是离网使用&#xff0c;但是离网使用比较麻烦的是要进行文件传输&#xff0c;需要使用U盘拷贝&#xff0c;另外研发型企业一般…

【UE5】CallCustomEvent插件的使用文档

该插件是一款可以帮助你调用任意的蓝图自定义事件 使用该插件调用自定义事件时&#xff0c;你不需要实现获取对方类的引用 比如我在A类里创建了一个名叫“MyPrint”的自定义事件 因为该节点有三个参数&#xff0c;所以我们在B类中调用三个参数的CallCustomEvent节点 然后在B类…

蓝桥杯刷题记录-2020省赛

比较全面的记录2020省赛题目&#xff0c;本篇文章全文都是采用Python解题&#xff0c;题目都是基础简单的题目 1.成绩统计 解题代码&#xff1a; import os import sys nint(input()) well0 ok0 for i in range(n):aint(input())if a>85:well1ok1elif a>60:ok1 print(&…

网络安全:密码学基本理论.

网络安全&#xff1a;密码学基本理论. 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律&#xff0c;应用于编制密码以保守通信秘密的&#xff0c;称为编码学&#xff1b;应用于破译密码以获取通信情报的&#xff0c;称为破译学&#xff0c;总称密码学. 目录…

【itext7】itext7操作PDF文档之添加表单控件(单行文本框、多行文本框、单选框、复选框、下拉框、按钮)

这篇文章&#xff0c;主要介绍itext7操作PDF文档之添加表单控件&#xff08;单行文本框、多行文本框、单选框、复选框、下拉框、按钮&#xff09;。 目录 一、itext操作PDF表单 1.1、添加单行文本框 1.2、添加多行文本框 1.3、添加单选框 1.4、添加复选框 1.5、添加下拉框…

目标检测——SSD模型介绍

目录 SSD网络结构backboneextra部分loc和clsPriorBox层先验框的生成方法loc的预测结果 模型训练正负样本标记损失函数困难样本挖掘 模型预测 SSD网络结构 backbone extra部分 loc和cls PriorBox层先验框的生成方法 loc的预测结果 模型训练 正负样本标记 损失函数 困难样本挖掘…

rabbitmq访问异常

看到这个问题&#xff0c;第一时间想到rabbitmq的问题&#xff0c;应该权限导致的 先创建virtual hosts 接着创建用户并赋予权限,将eayc的virtual hosts权限赋予acc用户即可 15:34:24.250 WARN com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connec…

自动驾驶技术架构

自动驾驶技术架构 自动驾驶技术架构 自动驾驶关键技术 自动驾驶汽车技术架构较为复杂&#xff0c;涉及了多领域的交叉互容&#xff0c;例如汽车、交通、通信等&#xff0c;基于自动驾驶相关的软硬件、辅助开发工具、行业标准等各方面关键问题&#xff0c;自动驾驶汽车关键技术…

RedisTemplate存数据乱码

目录 方法一&#xff1a;为RedisTemplate写一个配置类 方法二&#xff1a;用StringRedisTemplate 我猜测&#xff0c;你可能想往redis里直接存对象&#xff0c;但是存完后&#xff0c;打开redis&#xff0c;才发现自己存进去的key和value均是乱码。 原因可能是因为你用redis…

24考研数据结构-——绪论2

目录 1.4 算法的时间复杂度1.4.1 渐近时间复杂度1.4.2 常对幂指阶1.4.3 时间复杂度的计算1.4.4 最好与最坏时间复杂度 1.5 算法的空间复杂度1.5.1 空间复杂度1.5.2 函数递归调用&#xff08;未总结&#xff09;1.5.3 存储地址1.5.3.1 内存高低地址与高低位1.5.3.2 用户程序虚拟…

【目标跟踪】1、基础知识

文章目录 一、卡尔曼滤波二、匈牙利匹配 一、卡尔曼滤波 什么是卡尔曼滤波&#xff1f;——状态估计器 卡尔曼滤波用于在包含不确定信息的系统中做出预测&#xff0c;对系统下一步要做什么进行推测&#xff0c;且会结合推测值和观测值来得到修正后的最优值卡尔曼滤波就是利用…

Hadoop——Hive运行环境搭建

Windows&#xff1a;10 JDK&#xff1a;1.8 Apache Hadoop&#xff1a;2.7.0 Apache Hive&#xff1a;2.1.1 Apache Hive src&#xff1a;1.2.2 MySQL&#xff1a;5.7 1、下载 Hadoop搭建 Apache Hive 2.1.1&#xff1a;https://archive.a…

基础 | 日志 | 体系介绍

INDEX 总览图上图的说明 总览图 上图的说明 日志体系的结构大约可以概括为 日志门面日志绑定层日志实现日志桥接层 slf4j 是 日志门面&#xff0c;所谓日志门面可以理解为日志总接口 slf4j-log4j、log4j-slf4j-impl 是 日志绑定层&#xff0c;日志绑定层的作用是将 日志门面…

嵌入式Linux开发常用命令以及工具总结

现在的Linux发行版诸如 Ubuntu、 CentOS、Fedora都具有图形界面环境&#xff0c;Linux 中的桌面环境&#xff08;GNOME、Unity等&#xff09;也是一个程序&#xff0c;它们是命令行的抽象&#xff0c;例如&#xff0c;当您通过单击“X”关闭窗口时&#xff0c;该操作会导致运行…

<C语言> 数据在内存中的存储

1.数据类型介绍 C语言中的基本内置类型如下&#xff1a; char //字符数据类型 short //短整型 int //整型 long //长整型 long long //更长的整型 float //单精度浮点数 double //双精度浮点数类型的意义&#xff1a; 1.使用这个类…

vue2如何将页面生成 pdf 导出 html2Canvas + jspdf

1.引入两个依赖 npm i html2canvas npm i jspdf 2.在utils文件夹下新建html2pdf.js文件 import html2canvas from html2canvas; import jsPDF from jspdf export const htmlToPDF async (htmlId, title "报表", bgColor "#fff") > { let pdfDom do…

Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范

场景&#xff1a; java中我们可以利用 Pattern 注解对某个入参进行规则校验&#xff0c;但有些特殊参数在接口入口处不方便校验&#xff0c;需要在代码中校验 一、使用 Pattern 注解校验 Pattern(regexp "^[a-zA-Z0-9]$", message "xxx号限输入字母、…

个人博客系统(SSM版 前端+后端)

前言 在学习Servlet的时候,也写了一个博客系统,主要的就是使用servelet加Tomcat进行实现的,而这个项目 仅仅适合去学习Web项目开发的思想,并不满足当下企业使用框架的思想,进行学习过Spring,Spring Boot,Spring MVC以及MyBatis之后,我们就可以对之前的项目使用SSM框架的形式进行…