【JavaEE】数据链路层协议和DNS

  🔥个人主页: 中草药

🔥专栏:【Java】登神长阶 史诗般的Java成神之路


👜一.以太网

        以太网(Ethernet)是一种局域网技术,它定义了开放系统互连(OSI)模型中的物理层和数据链路层的规范。以太网是目前最广泛使用的有线网络技术之一,支持不同类型的计算机和其他设备之间的通信。

工作原理

  • CSMA/CD(载波侦听多路访问/冲突检测):这是原始以太网的核心机制,允许所有设备共享同一物理媒介。当一个设备想要发送数据时,它会先监听信道是否空闲;如果空闲,则开始发送。如果有两个或更多设备同时尝试发送,就会发生碰撞,这些设备随后会在随机等待一段时间后重新尝试发送。
  • 帧结构:数据是以帧的形式进行封装的,每个帧包含源地址、目的地址、类型/长度字段、实际数据以及校验序列(如CRC)来确保数据完整性。

帧格式

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

👔二.MAC地址

        MAC地址(Media Access Control Address)是一种用于标识网络设备硬件的唯一地址。它在数据链路层(OSI模型中的第二层)上工作,主要用于局域网通信。每个网络接口卡(NIC)或任何其他具有网络功能的设备都有一个唯一的MAC地址。

结构

        一个标准的MAC地址由6个字节(48位)组成,通常以十六进制表示,(IP地址4个字节)并用冒号或连字符分隔每两个十六进制数字。例如:00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E。MAC地址还可以作为设备的身份标识

  • 前24位(OUI, Organizationally Unique Identifier):这部分是组织唯一标识符,由IEEE分配给各个制造商。这使得可以根据MAC地址的前三个字节识别出设备是由哪家公司生产的。
  • 后24位:这部分由设备制造商自行分配,确保了即使是同一制造商生产的所有设备之间,MAC地址也是唯一的。

作用

  • 寻址:在局域网中,MAC地址用于直接寻址和识别通信双方。
  • 过滤:网络设备如交换机可以利用MAC地址进行流量控制和安全过滤,比如基于MAC地址的访问控制列表(ACL)。
  • 转发:在交换式网络中,交换机会学习每个端口上连接设备的MAC地址,并据此构建转发表来决定如何转发数据帧。

静态与动态MAC地址

  • 静态MAC地址:大多数情况下,MAC地址是在制造过程中烧录到设备中的ROM里,不可更改,被称为静态MAC地址。
  • 动态MAC地址:某些高级网络设备支持配置临时的、可更改的MAC地址,这类地址通常存储在RAM中,重启后会丢失。

总之,MAC地址对于保证网络通信的有效性和安全性至关重要,它是网络基础设施的一个基本组成部分。

MAC地址使用在数据链路层,用来实现两个相邻设备的数据转发---微观

IP地址使用在网络层,立足于整个转发流程,进行路径规划---宏观

👕三.MTU

        MTU(Maximum Transmission Unit,最大传输单元)是指网络中可以传输的最大数据包大小,单位通常是字节。MTU的概念主要应用于网络层和数据链路层,特别是在IP网络中,它影响着数据如何被分割成更小的部分以适应不同网络路径的限制。

MTU直接和硬件相关,不同的硬件设备,对应了不同的数据链路层协议,对应了不同的MTU 

作用

  1. 避免分片:当一个较大的数据包需要通过具有较小MTU值的网络时,该数据包会被分割成几个较小的数据包(称为分片)。接收端必须重新组装这些分片才能得到原始数据。这个过程会增加处理开销并可能导致性能下降。因此,设置合适的MTU有助于减少不必要的分片。

  2. 提高效率:适当调整MTU可以优化网络性能。如果MTU太小,会导致过多的小数据包在网络上传输,增加了头部信息的比例,从而降低了有效载荷的比例。而如果MTU太大,则可能会导致频繁的分片,同样影响性能。

  3. 兼容性:不同的网络技术有不同的默认MTU值。例如,传统的以太网MTU为1500字节,但某些特殊的网络环境如PPPoe、GRE隧道或MPLS可能有更小的MTU。

常见的MTU值

  • 以太网:通常情况下,标准以太网接口的MTU是1500字节。(1.5KB 算是非常小)
  • PPP (Point-to-Point Protocol):在使用PPP进行拨号连接时,常见的MTU值为576字节。
  • PPPoE (Point-to-Point Protocol over Ethernet):由于额外的封装,实际可用的MTU通常是1492字节。
  • Jumbo Frames:为了提高网络吞吐量,在一些高性能网络环境中,可以配置更大的MTU,如9000字节,这种帧被称为“巨型帧”(Jumbo Frames)。

路径MTU发现

        路径MTU发现(Path MTU Discovery, PMTUD)是一种机制,用于确定从源到目的地之间的路径上最小的MTU值。这可以帮助发送方正确地设置其数据包大小,避免因中间路由器强制分片而导致的问题。PMTUD通过ICMP(Internet Control Message Protocol)消息来实现,当某个中间路由器发现数据包大于它的出接口MTU时,它会向源主机发送一个ICMP“Packet Too Big”消息,并附带自己的MTU值。

MTU对IP协议的影响

数据包分片

  1. 分片必要性

    • 当一个IP数据包从一个具有较大MTU的网络发送到另一个具有较小MTU的网络时,如果数据包的大小超过了目标网络的MTU,那么该数据包必须被分割成更小的数据包,以便能够通过这个网络。
    • 这个过程称为分片(fragmentation),每个分片都是原始数据包的一个部分,并且每个分片都有自己的IP头部。
  2. 分片过程

    • 在IP头部中,有几个字段用于处理分片:标识符(Identification)、标志(Flags)和片段偏移量(Fragment Offset)。
    • 标识符字段是一个16位的数字,它对于所有分片是相同的,这样接收端就可以识别出哪些分片属于同一个原始数据包。
    • 标志字段包含三个比特,其中一个比特表示是否还有更多的分片(More Fragments, MF),另外两个比特通常不使用。
    • 片段偏移量字段指出了当前分片在原始数据包中的位置,单位是8字节。
  3. 分片的影响

    • 分片会增加网络开销,因为每个分片都需要额外的IP头部信息。
    • 如果任何一个分片丢失,整个数据包需要重新发送。
    • 分片后的数据包可能在网络中经历不同的路径,这可能导致到达顺序混乱,接收端需要进行排序和重组。

重组过程

  • 接收方收到所有分片后,会根据标识符、标志和片段偏移量字段将这些分片重新组合成原始数据包。
  • 重组发生在最终目的地或中间路由器上,但通常是目的地设备执行重组以减少中间路由器的负担。

设置MTU

对于大多数用户来说,不需要手动更改MTU值,因为操作系统和网络设备通常已经设置了合理的默认值。但在特定情况下,比如遇到网络性能问题或是配置特殊类型的网络时,可能需要调整MTU:

  • 在Windows系统中,可以通过命令行工具netsh来修改MTU。
  • 在Linux系统中,可以使用ifconfigip命令来设置接口的MTU。
  • 对于网络设备如路由器或交换机,一般可以在设备的管理界面中找到相应的配置选项。

调整MTU时应当谨慎,因为它会影响到整个网络的表现。在进行任何更改之前,最好先进行测试以确保不会引起其他问题。

🧣四.ARP协议

        ARP(Address Resolution Protocol,地址解析协议)是一个在TCP/IP网络中使用的链路层协议,用于将已知的IP地址映射到相应的物理地址(如以太网中的MAC地址)。它可以视为,让当前设备,获取到周围设备 IP 地址和 MAC 地址之间的映射关系

工作原理

  1. 请求过程

    • 当主机A想要向主机B发送数据,但只知道主机B的IP地址而不知道其MAC地址时,主机A会广播一个ARP请求报文。
    • 这个ARP请求包含主机A的MAC地址和IP地址,以及主机B的IP地址,并询问“谁拥有这个IP地址?请告诉我你的MAC地址”。
  2. 响应过程

    • 所有接收到ARP请求的设备都会检查自己的IP地址是否与请求中的目标IP地址匹配。
    • 如果匹配,那么该设备(假设是主机B)就会单播回应一个ARP响应报文给主机A,其中包含了主机B的MAC地址。
    • 如果不匹配,则这些设备不会做出任何响应。
  3. 更新ARP缓存

    • 主机A收到ARP响应后,会将主机B的IP地址和MAC地址对存储在本地的ARP缓存表中,这样下次再发送数据给主机B时就可以直接使用缓存中的信息,而不需要再次发起ARP请求。
  4. ARP缓存超时

    • 为了保持ARP缓存表的时效性,每个条目都有一个生存时间。一旦超过这个时间,对应的条目会被删除或标记为过期,下一次发送数据时又需要重新执行ARP请求。

总的来说,ARP协议虽然简单,但它在网络通信中扮演着至关重要的角色,确保了不同层次之间的正确映射。同时,了解ARP的安全风险并采取适当的保护措施也是网络管理的重要组成部分。

🎒五.DNS协议(应用层协议)

        DNS(Domain Name System,域名系统)是一种分布式数据库系统,用于将人类易于记忆的域名转换为计算机可识别的IP地址。它解决了互联网上主机名和IP地址之间的映射问题,使得用户无需记住复杂的IP地址即可访问网站和其他服务。以下是对DNS协议的简要介绍:

工作流程

  1. 查询过程

    • 用户输入一个域名(如www.example.com)后,浏览器或操作系统会向本地DNS客户端发送一个DNS查询请求。
    • 本地DNS客户端首先查找本地缓存,看是否有对应记录。如果有,就直接返回结果。
    • 如果没有,客户端会向DNS服务器发出查询请求。
  2. 递归查询

    • 如果本地DNS客户端没有找到答案,它会向DNS服务器发送一个递归查询,要求服务器提供完整的解答。
    • DNS服务器会尝试从根域名服务器开始,逐级向下查询,直到找到正确的权威名称服务器为止。
  3. 权威名称服务器

    • 权威名称服务器负责维护特定域名下的所有记录,如A记录(将域名映射到IP地址)、MX记录(邮件服务器)等。
    • 当查询到达权威名称服务器时,它会返回正确的IP地址或其他相关信息。
  4. 回答过程

    • DNS服务器将查询结果返回给本地客户端,然后本地客户端将其保存在缓存中,以备后续查询使用。

相关概念

  • DNS缓存:本地客户端和DNS服务器都可能有自己的缓存,以加速查询速度。
  • DNS轮询:多个DNS服务器可以同时提供服务,客户端可以随机选择一个进行查询。
  • DNS负载均衡:通过将域名映射到多个IP地址,可以实现流量分散和故障转移。

DNS服务器类型

  • 根域名服务器:顶级域名的权威服务器,如com、org等。
  • 顶级域名服务器:负责特定顶级域名的服务器,如.com服务器。
  • 权威名称服务器:负责特定域名的服务器,如example.com服务器。
  • 递归DNS服务器:为用户提供全面查询服务的服务器,常见于ISP或企业内部。

DNS缓存

  • 本地缓存:存在于客户端和DNS服务器中,用于加快查询速度。
  • 缓存污染:当缓存中的信息过期或被非法修改时,可能导致错误的结果。

        总的来说,DNS协议是互联网的关键组件之一,它使得用户可以方便地访问网络资源,同时也为网络管理员提供了管理和优化网络流量的方法。理解DNS的工作原理和相关安全问题对于保障网络稳定和安全非常重要。


成功的秘诀,在永不改变既定的目的。——卢梭 

🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀

以上,就是本期的全部内容啦,若有错误疏忽希望各位大佬及时指出💐

  制作不易,希望能对各位提供微小的帮助,可否留下你免费的赞呢🌸

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

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

相关文章

基于AWR1642 讲解TI毫米波雷达开发环境搭建

文章内容同步发布在公众号(雷达原理与系统),欢迎关注交流~ 这是第三篇文章,上一篇文章介绍了“TI官方资源介绍和使用”,感兴趣的可以去参考一下。本篇内容打算介绍基于AWR1642讲解TI毫米波雷达开发环境搭建,包括常用的…

会员业务出口网关的设计与实现

01# 背景介绍 1.1 出口网关是什么 出口网关(Egress Gateway)是一种部署在云或企业网络中的网络组件,它控制着从内部网络(如企业内网、内部微服务网络)流出到外部网络(如公共互联网或其他外部服务&#xf…

宠物浮毛难清理,希喂、小米、美的宠物空气净化器该选哪款?

养猫养出病来说的就是我了。 养猫之前幻想的一人一猫幸福生活还没一个月,我就进了医院。我自认为是很爱干净的人,养猫后打扫得更勤快了,早晚都给猫咪梳毛。平时卫生也没少搞,家里也是很干净的,实在不明白为什么会过敏…

点赞10万+,1分钟教会你,用AI生成的宠物带娃视频

今天刷到了这样的宠物带娃视频,最近这种视频爆火,出现了很多爆款,今天就拆解一下,教大家学会这种视频用AI如何生成。 我们先看一下这类视频的数据,很多账号都在做,对于不了解AI的人来说,会觉得…

1小时极限速通MC局域网联机:PCL2 + Zerotier局域网联机方案

目录 前言 你需要在开始之前做什么? 你需要什么 你需要下载什么 谁,需要做什么? STEP I:创建/加入一个子网 创建一个子网(子网的维护者做) 加入一个子网(其他人做) 现在... …

论文笔记:基于共注意网络的多模态假新闻检测

整理了AAAI2023 Multimodal Fusion with Co-Attention Networks for Fake News Detection)论文的阅读笔记 背景模型MCAN框架特征提取特征融合 实验主实验消融实验可视化 背景 具有文字和视觉内容的假新闻具有更好的讲故事能力,人们很容易被这样的假新闻欺…

python 图片加文字 文字自动上下左右居中 自动换行居中对齐

一.实现效果展示 二.代码 # -*- coding: utf-8 -*- # Time : 2024/9/26 17:22 # Author : Cocktail_pyfrom PIL import Image, ImageFont, ImageDrawdef split_string(s, num_parts):length len(s)chunk_size length // num_partsremainder length % num_partsparts […

新能源背景下,电瓶车充电现状的分析及管理方案

【摘要】:在新能源日益普及的背景下,社会安全问题显得尤为突出。以电瓶车为例,其户外停放难、充电难的问题愈发凸显,成为社会各界关注的焦点。尤其是“飞线充电”和“楼道充电”等不规范行为,更是屡见不鲜,…

脚手架是什么?详细版+通俗易懂版!!!!!!

脚手架(Scaffolding)在软件开发领域,特别是在前端开发和全栈开发环境中,是一个术语,用来描述一个辅助工具或框架,它旨在帮助开发者快速搭建项目的基础结构和开发环境。这些基础结构可能包括项目的目录结构、…

Halcon基础系列1-基础算子

1 窗口介绍 打开Halcon 的主界面主要有图形窗口、算子窗口、变量窗口和程序窗口,可拖动调整位置,关闭后可在窗口下拉选项中找到。 2 显示操作 关闭-dev_close_window() 打开-dev_open_window (0, 0, 712, 512, black, WindowHandle) 显示-dev_display(…

图片转字符画

在Github上看到的一个有趣的开源项目,实现将图片转换为字符画,这样,不能贴图片的场景下可以用字符画替代。 Github演示地址: https://505e06b2.github.io/Image-to-Braille/ Github源码下载地址: https://github.c…

【C++与数据结构】搜索二叉树(BinarySearchTree)

一、概念: 二叉搜索树又称为二叉排序树,因为它具有以下性质: 1、如果二叉树的左子树不为空,那么它左子树的任意一个节点的值都小于根节点。 2、如果二叉树的右子树不为空,那么它右子树的任意一个节点的值都大于根节点。…

C++类和对象第一关

一:类的定义 (一)类的定义 (1)类的定义格式: class name{ // 类成员变量 // 类方法(函数) }; class是定义类的关键字,name为定义的类的名字,后面的花括号…

助力降本增效,ByteHouse打造新一代云原生数据仓库

随着数据量的爆炸式增长、企业上云速度加快以及数据实时性需求加强,云原生数仓市场迎来了快速发展机遇。 据 IDC、Gartner 研究机构数据显示,到 2025 年,企业 50% 数据预计为云存储,75% 数据库都将运行在云上,全球数据…

DK5V100R10SL贴片TO252功率12V4.3A同步整流芯片

概述DK5V100R10SL是一款简单高效率的同步整流芯片,只有A,K两个功能引脚,分别对应肖特基二极管PN管脚。芯片内部集成了100V功率NMOS管,可以大幅降低二极管导通损耗,提高整机效率,取代或替换目前市场上等规的…

双十一数码产品有哪些? 2024年度双十一数码好物推荐

每年双十一来临都是更新手机、平板或者电脑、耳机的绝佳时机。年末也让一年来发布的新机器有了更大的优惠空间再加上平台补贴,绝对是实打实的划算。今天给大家总结了几款双十一价格刷新新低的数码好物,真的要看过再下单,不然买贵就吃亏了。 …

UGUI动态元素大小的滑动无限列表

效果与使用说明 效果 可以滑动无限列表(严格来说也和常规的不太一样)可以通过曲线调整元素大小 使用说明 列表元素位于脚本挂载处的直接子级最大的元素位于脚本挂载元素的pivot处水平列表的对齐依据是所有元素pivot都在一条线上默认在最左侧和最右侧元…

kafka下载配置

下载安装 参开kafka社区 zookeeperkafka消息队列群集部署https://apache.csdn.net/66c958fb10164416336632c3.html 下载 kafka_2.12-3.2.0安装包快速下载地址分享 官网下载链接地址: 官网下载地址:https://kafka.apache.org/downloads 官网呢下载慢…

基于Node.js+Express+MySQL+VUE实现的计算机毕业设计共享单车管理网站

单车信息选择骑行 骑行状态留言公告/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序 功能如下: 一、开发目标 在共享经济日益盛行的今天,共享单车作为一种绿色、便捷的出行方式,已经深入人们的日常生活。然而,随着共享…