JavaEE 数据链路层 以太网协议

news2024/11/26 23:26:21

网络原理补充-数据链路层与以太网协议

@在这里插入图片描述

文章目录

  • JavaEE & 网络原理补充-数据链路层 & 以太网协议
    • 1. 以太网数据帧
      • 1.1 帧头帧尾
      • 1.2 类型
      • 1.3 载荷
    • 2. IP数据报补充
      • 2.1 16位标识
      • 2.2 13位片偏移
      • 2.3 3位标识
    • 3. DNS
      • 3.1 DNS原理
      • 3.2 DNS劫持或者污染

JavaEE & 网络原理补充-数据链路层 & 以太网协议

数据链路层更接触底层,也就离我们更远了,所以只需要了解即可,在本文章也不会涉及太深!

1. 以太网数据帧

  • 以太网数据帧就是对IP数据报进一步的包装的数据报
  • 以太网协议,属于数据链路层也属于物理层
    • 数据链路层和物理层之间还是有很多联系的,有很多重合

1.1 帧头帧尾

在这里插入图片描述

分析:

  • 校验和跟之前的类似,防止发生数据因为外界原因影响后,如磁暴,而错乱的数据被使用

在这里插入图片描述

  • 所以相对于IPV4地址不够用问题,mac地址目前是足够用的
  • 所以mac地址在一张网卡出厂的时候久被确定了,写死了

因此,mac地址就可以作为网络上身份识别的一种有效技术手段!

  • 如CCtalk,一个账号要绑定对应的mac地址,应该是两个,也就是通过这个手段,限制只有这两台设备才能登录,只能通过管理员去改绑。通过这种方式,保证一个账号不被多人使用

为什么ip和mac存在两套地址?

  • 这是一个历史遗留的问题

    • 数据链路层和网络层是被各自独立发明出来的~
  • ip地址发明者与mac地址发明者互不相识,导致ip和mac地址同时被发明出来

  • mac地址发明者显然更加有先见之明(mac地址6个字节)

1.2 类型

在这里插入图片描述

ARP和RARP,是二层转发(数据链路层的转发)的必要辅助工具

  • 交换机里面的一个转发表,ARP就是用来构造转发表的机制~
  • 离我们太远了,这里就不多讲了~
    • 如果你是学校考试,那么你可以去网上搜罗资料去研究研究~

1.3 载荷

  • 对于普通的以太网数据帧,你也发现了一个细节

  • 硬件要求载荷(即IP数据报)最大为1500个字节

不同数据链路层协议,对于到不同的硬件物理设备,这种硬件限制也是不一样的~

  • 相当于,不同的运输工具:面包车小轿车,货车,火车…
  • 他们的载重量也是不一样的

以太网数据帧通过网线这种硬件传输,网线就不能传输太大的数据报~

把这个数据链路层数据帧最大载荷长度称为MTU

MTU的英文全称为Maximum Transmission Unit,中文是意思是最大传输单元

如果承载的数据,长度超过MTU,就会在IP层进行分包,使得分出来的结果,在MTU之内

2. IP数据报补充

对于IP数据报被分包后,如何保证数据联系和数据连贯的?

  • 涉及IP数据报的这些属性:

在这里插入图片描述

2.1 16位标识

一个大的IP数据报拆成多个小包之后,这些小包的表示都是相同的!

2.2 13位片偏移

表示每个小的数据报之间的先后顺序,以此用来组包

  • 数据报组包的原理与其他协议基本类似

TCP的整队,其实也可以借助IP整队来完成

2.3 3位标识

三位的作用如下:

  1. 有一位没啥用
  2. 有一位标识是否分包了
  3. 有一位标识当前这个包儿是否是最后一个
    • 结束标识

在这里插入图片描述

IP报头多份,是因为多份是为了组包

  • 但是UDP报头不需要多份,所以其实只有一个IP数据报包含UDP数据报报头

FDDI是另一个数据链路层协议~

因此,即使有MTU的限制,IP仍然可以传输一个更大的数据~

注意:

如果别人问你MTU是几?

  • 答案不是1500,这样不严谨
  • 因为在不同的数据链路层现已,MTU不一样,只是以太网协议是1500!!!

3. DNS

电子监听、全国断网,棱镜门背后,中国如何从末路狂奔到世界之巅_哔哩哔哩_bilibili

  • 墙裂建议观看!很有帮助!

你可能不知道,我们可以通过IP地址,去访问百度

在这里插入图片描述

  • 当然很多情况下,是这样的
    在这里插入图片描述

我们一般是通过域名访问

  • 因为IP地址太难记了~

在这里插入图片描述

3.1 DNS原理

例子:

小马有一百个朋友,他习惯通过手机电话交流,而每一个朋友的手机号又不同,甚至一个普通有两个手机号,那么小马需要背下朋友们的手机号吗?

答:没必要,因为手机的通讯录,很好的解决这个问题了,我们只需要将手机号的朋友的名字绑定起来,我们记住姓名,点击姓名拨号即可~

在这里插入图片描述

我们能通过域名就能访问服务器,则是因为我们电脑里有一个类似于通讯录的文件,去记录域名和IP的对应关系

  • 这个文件就是Hosts文件

下面是纵多hosts文件中的一个:

在这里插入图片描述

在这里插入图片描述

动图解释:
在这里插入图片描述

来源:【硬件科普】能上QQ但是打不开网页?详解DNS服务,DNS解析,DNS劫持和污染_哔哩哔哩_bilibili

  • 讲的很好!

显然,hosts文件是有限的,我们可以记录一些常见的域名对应的IP,但是你绝对不可能记录下全世界所有域名对应的IP!

所以就单独独立出来了一个服务器,这个服务器就是DNS服务器

  • 让这台服务器,专门去存储这个世界上绝大多数域名和IP的映射表

动图解释:
在这里插入图片描述

当然,DNS服务器不是唯一的,选择不同的DNS服务器处理相同的网址速度是不同的,对于不同地区的设备选择相同的DNS服务器访问速度也是不同的~

  • 没有好坏之分~
  • 我嫌麻烦,自动获取运营商提供的DNS就行了

如果你打不开一些网址,但是可以登录QQ之类的

  • 这也是DNS配置错误的问题

动图解释:

在这里插入图片描述

3.2 DNS劫持或者污染

如果有人对你配置的DN服务器,进行一些不为人知的操作,你输入的域名会被解析为另一个IP,而这个IP如果外观与原网页一致,那后果让人后怕!

动图解释:

在这里插入图片描述

  1. 轻则给你看点广告
  2. 重则获得个人信息,盗号,甚至涉及钱!

动图解释:

在这里插入图片描述

但是你没背IP呀,单看域名是对的呀~

DNS劫持或者污染已经算得上是犯罪了!

  • 破坏计算机信息系统罪

文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

这是网络原理的一点点补充~


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

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

相关文章

MongoDB 查询文档中使用文本选择器($text)

之前我们介绍过使用比较选择器、逻辑选择器、元素选择器、数组选择器查询文档,如果您需要进一步了解,可以参考: MongoDB 查询文档中使用比较选择器、逻辑选择器https://blog.csdn.net/m1729339749/article/details/129965699 MongoDB 查询文…

IHS安装ssl证书

1、向专业机构申请证书,或者使用openssl生成自签名证书,openssl生成证书参考以下步骤。 openssl生成证书参考https://blog.51cto.com/longlei/2120718 生成加密私钥 [rootlocalhost test]# openssl genrsa -out test.key 2048 Generating RSA private…

直线模组常见故障的解决方法

直线模组因其具有单体运动速度快、重复定位精度高、本体质量轻、占设备空间小、寿命长等特点,运用的范围一直在扩大,发展至今,已经被广泛应用到各种各样的设备当中。 在直线模组的使用过程中,或多或少都会出现一些问题&#xff0c…

DUBBO 3.x 兼容 invoke 调用

从DUBBO的2.7.22版本升级到了3.x的版本后,发现invoke失灵了 首先是启动报错,注释掉配置 dubbo.protocol.telnetinvoke后程序可运行,但是invoke失效。 通过对比源码 示例: tag-3.0.10 tag-2.7.22 发现3.0.2之后的版本都移除了i…

【网络编程】UDP简单实现翻译软件与网络聊天室

文章目录 一、引入二、翻译软件实现2.1 加载字典2.2 处理数据并传递给用户端2.3 客户端获取结果2.4 结果2.5 执行命名功能 三、网络聊天室实现3.1 管理用户3.2 发送消息3.3 多线程处理3.4 结果 四、源码 一、引入 在上一章【网络编程】demo版UDP网络服务器实现实现了客户端和服…

(1分钟了解)视觉惯性导航初始化方法综述

视觉惯性导航初始化方法综述 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 初始化相关的简介,在这里知道初始化方法可以分为联合初始化、非联合初始化和半联合初始化三种方法即可。 ​ 编辑切换为居中 添加图片注释&…

VIM学习笔记 正则表达式-(vimgrep/grep)

在UNIX问世的前一年,1969年,Ken Thompson将正则表达式整合入QED文本编辑器。在Linux文本编辑器ed中,如果你希望显示包含字母“re”的行时,需要使用命令g/re/p,而grep也因此得名。可以看作此操作的缩写:g (g…

ARM板上的蓝牙对讲功能

1)ARMRTL8723 或RTL8821 RTL8723是USB接口的邮票芯片,集成了wifi和BT。前面已经完成了wifi的处理,这次主要说一下蓝牙语音方面。 蓝牙功能,我们主要是使用Bluez5协议栈.结合alsa使用(pulseaudio也是可以的&#xff0c…

JVM学习(四)

1. JAVA IO/NIO 1.1. 阻塞 IO 模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内 核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态&#xff0c…

Class 02 - R语言Rstudio的安装

Class 02 - R语言&Rstudio的安装 下载和安装R安装前准备下载R语言安装R语言开始使用R语言 下载和安装RStudio安装前准备下载RStudio安装RStudio开始使用RStudio如何编写代码 下载和安装R 在这个部分中,你将完成在计算机上下载和安装R语言程序。当安装完成后&am…

嫌视频背景杂乱或单调?如何去除视频杂乱背景

录制视频时,有时候视频背景会十分杂乱或单调,这会对用户的视觉体验和注意力产生负面影响。 背景杂乱或单调的场景可能会影响您的观感。这种情况通常发生在自然光线不足或拍摄环境不理想的情况下。如果您想改变视频的背景或者是去除视频杂乱的背景&#…

硬件I2C读写MPU6050代码

1、接线图 SDA接在B11,SCL接在B10 ,软件IIC的两个引脚可以任意更改的,因为都是开漏输出,硬件接在哪个引脚上,程序中就对应操作哪个引脚 但是硬件IIC,通信引脚是不可以任意指定的,查表,由于PB6、…

2023年Android开发者路线-第4部分

2023年Android开发者路线-第1部分 2023年Android开发者路线-第2部分 2023年Android开发者路线-第3部分 2023年Android开发者路线-第4部分 2023年Android开发者路线-第4部分 在上一篇博文中,我们讨论了现代 Android 开发的基本要素,包括 Fragments、…

2023年Android开发者路线-第3部分

2023年Android开发者路线-第1部分 2023年Android开发者路线-第2部分 2023年Android开发者路线-第3部分 2023年Android开发者路线-第4部分 2023年Android开发者路线-第3部分 在上一篇文章中,我们讨论了 Android 主要组件的重要元素,包括 Intents 和 …

【C++初阶】类与对象(中)之你必须掌握的三个重要默认成员函数 --- 构造函数 +析构函数 + 拷贝构造函数

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

chatgptH5源码开发

hatGPTH5源码开发需要以下步骤: 确定需求:在开发ChatGPTH5应用之前,需要明确用户的需求和目标,以便进行合理的设计和开发。 技术选型:选择适合的前端技术框架和工具,如React、Vue、Angular等&#…

Flink从入门到精通之-10容错机制

Flink从入门到精通之-10容错机制 流式数据连续不断地到来,无休无止;所以流处理程序也是持续运行的,并没有一个明确的结束退出时间。机器运行程序,996 起来当然比人要容易得多,不过希望“永远运行”也是不切实际的。因…

WritingGPT: 基于ChatGPT和AutoGPT打造个人写作团队

本文介绍了如何通过定义多个GPT角色,以自动化流水线的方式打造个人写作团队,让AI帮助我们完成文章写作、修改、SEO等所有流程。原文: How I Built WritingGPT, a Fully Automated AI Writing Team ChatGPT是AI内容创造领域的巨大飞跃,但当我们…

8 种「Python 程序」定时执行方式

在日常工作中,我们常常会用到需要周期性执行的任务,一种方式是采用 Linux 系统自带的 crond 结合命令行实现,另外一种方式是直接使用Python。 最近我整理了一下 Python 定时任务的实现方式,建议收藏后学习。 利用while True: sle…

pro如何添加定时任务

Pro v2.4版本开始后台可以开关控制定时任务,那如何添加新的定时任务呢? 第一步:设置定时任务名称及标识; 文件app\controller\admin\v1\system\SystemTimer中task_name()方法 /**定时任务名称及标识 * return mixed */ public fu…