网络数据链路层以太网协议

网络数据链路层以太网协议

1. 以太网协议介绍

以太网是一个数据链路层协议,数据链路层的作用是用于两个设备(同一种数据链路节点)之间进行传递。

以太网不是一种具体的网络,而是一种网络技术标准,既包含了数据链路层的内容,也包含了一些网络层的内容。

例如规定了网络拓扑结构、访问控制方式、传输速率等。规定以太网中的网线必须使用双绞线,传输速率有 10M, 100M, 1000M 等。

以太网是当前应用最广泛的局域网技术,其具有简单、成本低、可扩展性强、与IP网能够很好地结合等特点。与其并列的还有令牌环网、无限LAN等技术。

2. 以太网帧格式

Ethernet1

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

类型: 帧协议类型字段有三种值,分别对应 IP(0800)、ARP(0806)、RARP(8035)。

CRC: 帧末尾校验码

3. MAC地址

MAC地址是用来识别数据链路层中相连的节点的。MAC地址在网卡出厂时就确定了,不能修改。虚拟机中的 MAC 不是真实的MAC地址,也有的网卡支持用户配置 MAC 地址。

格式:

长度 48 位(6 字节),一般用16进制数字加上冒号的形式表示,如:08:00:27:03:fb:19

与 IP 地址相比,IP 地址描述着数据的起点和终点,目的 IP 地址不会改变(源 IP 因为 NAT 技术需要转换)。而 MAC 地址描述的是,数据传输的路上每一个区域的起点和终点,是会不断变化的。

4. 最大传输单元MTU

4.1 MTU

MTU(Maximum Transmission Unit,最大传输单元),是数据链路层协议中都有的,规定数据链路层报文可发送的最大数据(不包括报头),在以太网帧中, MTU 是 1500 字节。

一个局域网就是一个碰撞域,互联网处理数据碰撞的方式,是默认数据不会碰撞,等数据发生碰撞了再做碰撞避免算法。

如果主机A和主机B发生数据碰撞了,双方就要进行数据碰撞避免算法。

数据链路层十分接近硬件,所以数据帧发送的速度很快,但在同一时间里,只能有一个数据帧在发送,数据帧越大,占用局域网的时间就越长,发送数据碰撞的概率也就越大,所以数据链路层会需要有一个 MTU 来控制数据碰撞。

以太网帧除了有 MTU 1500 字节之外,还有一个 46 字节的最小数据长度。如果网络层对数据包分片,导致传输下来的报文没有 46 字节等情况,以太网帧就会对不足 46 字节的部分进行垃圾信息填充(一般填充二进制0)。在报文向上交付时,由于 IP 协议头的16位总长度没有包括这些垃圾信息,这些垃圾信息会被丢弃。

4.1 MTU 对 IP 协议的影响

IP 协议要对传输层发送过来的、加上自己报头的数据中,超过 MTU 的数据包分片,详细看 IP 协议文档。

4.2 MTU 对 UDP 协议的影响

如果 UDP 的携带的数据,在向下交付的过程中,超过了 MTU ,网络层协议就要对其进行分片,如果分片丢了任何一个,接收端网络层重组失败,就会丢包。但由于 UDP 协议没有任何重传机制,也没有任何应答机制,丢包只能在应用层重传。

4.3 MTU 对 TCP 协议的影响

TCP的一个数据包,会考虑数据链路层的 MTU的影响,TCP 的单个数据报的最大消息长度,称为 MSS (Max Segment Size)。

TCP 在建立连接的过程中,通信双方会进行 MSS 协商。双方在发送 SYN 的时候,会在 TCP 头部写入自己能支持的 MSS 值,双方收到对方的 MSS 值后,会选择较小的值最为最终 MSS 值。最理想的情况是,MSS 的值正好等于 IP 协议不会对其进行分片处理的最大长度。

MSS 的值就是在 TCP 首部的 40 字节变长选项中(kind=2)。

5. 交换机

交换机是一个局域网设备,工作在数据链路层。

一个局域网就是一个碰撞域,但是交换机可以将局域网的大碰撞域分成两个小的碰撞域,同一碰撞域内的主机互相发送数据不经过交换机转发;不同碰撞域的主机互相发送数据,经过交换机识别后转发数据。这样,一个局域网使用多个交换机,就能将碰撞域的数量增多,范围减小,减少数据碰撞的可能性。

Ethernet2

主机A给主机B发送数据,不经过交换机主机B能直接收到。同时交换机也收到了主机A发送的数据,但是发现该数据是由 i0 碰撞域发给 i0 碰撞域的主机的,于是就不会转发给 i1 碰撞域。

主机A给主机C发送数据,交换机收到主机A的数据,发现是 i0 碰撞域发给 i1 这一侧的碰撞域的主机的,于是向 i1 碰撞域转发数据,之后主机C收到数据。

注意:同一碰撞域内数据是广播的,大家都会收到,但不一定响应。

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

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

相关文章

Kotlin 循环语句详解

文章目录 循环类别for-in 循环区间整数区间示例1:正向遍历示例2:反向遍历 示例1:遍历数组示例2:遍历区间示例3:遍历字符串示例4:带索引遍历 while 循环示例:计算阶乘 do-while 循环示例&#xf…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

使用WebdriverIO和Appium测试App

1.新建项目 打开Webstorm新建项目 打开终端输入命令 npm init -y npm install wdio/cli allure-commandline --save-dev npx wdio config 然后在终端依次选择如下: 然后在终端输入命令: npm install wdio/local-runnerlatest wdio/mocha-frameworkla…

uniapp小程序开发,配置开启小程序右上角三点的分享功能

直接全局配置一个分享的功能,要不然需要一个一个页面去单独配置就太麻烦了!!! 1.新建一个share.js文件,并配置代码,调用onShareMessage()和onShareTimeline()两个函数。 其中: title&#xff1…

行业案例:高德服务单元化方案和架构实践

目录 为什么要做单元化 高德单元化的特点 高德单元化实践 服务单元化架构 就近接入实现方案 路由表设计 路由计算 服务端数据驱动的单元化场景 总结 系列阅读 为什么要做单元化 单机房资源瓶颈 随着业务体量和服务用户群体的增长,单机房或同城双机房无法支持服…

ip属地什么条件会改变?多角度深入探讨

IP属地,即IP地址的归属地,是互联网上设备连接时的一个关键信息,它通常反映了设备连接互联网时的地理位置。随着社交软件及各大平台推出IP归属地显示功能,IP属地的变化问题逐渐受到广大用户的关注。那么,IP属地在什么条…

【干货】交换网络环路介绍

定义 以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路。如图7-1所示,三台设备两两相连就…

Linux服务器网络丢包场景及解决办法

一、Linux网络丢包概述 在数字化浪潮席卷的当下,网络已然成为我们生活、工作与娱乐不可或缺的基础设施,如同空气般,无孔不入地渗透到各个角落。对于 Linux 系统的用户而言,网络丢包问题却宛如挥之不去的 “噩梦”,频繁…

Springboot内置Apache Tomcat 安全漏洞(CVE-2024-50379)

背景 大家都知道我们使用Springboot开发后,无需再额外配置tomcat,因为Springboot已经帮我们内置好了tomcat。 这次在线上安全团队就扫出来了我们Springboot服务的tomcat漏洞: 可以看到这是2023年的洞,Apache Tomcat 安全漏洞(…

杭州铭师堂的云原生升级实践

作者:升学e网通研发部基建团队 公司介绍 杭州铭师堂,是一个致力于为人的全面发展而服务的在线教育品牌。杭州铭师堂秉持“用互联网改变教育,让中国人都有好书读”的使命,致力于用“互联网教育”的科技手段让更多的孩子都能享有优…

qml XmlListModel详解

1、概述 XmlListModel是QtQuick用于从XML数据创建只读模型的组件。它可以作为各种view元素的数据源,比如ListView、GridView、PathView等;也可以作为其他和model交互的元素的数据源。通过XmlRole定义角色,如name、age和height,并…

《异步编程之美》— 全栈修仙《Java 8 CompletableFuture 对比 ES6 Promise 以及Spring @Async》

哈喽,大家好!在平常开发过程中会遇到许多意想不到的坑,本篇文章就记录在开发过程中遇到一些常见的问题,看了许多博主的异步编程,我只能说一言难尽。本文详细的讲解了异步编程之美,是不可多得的好文&#xf…

《机器学习》之K-means聚类

目录 一、简介 二、K-means聚类实现步骤 1、初始化数据点、确定K值 2、通过距离分配数据点 3、更新簇中心 4、 迭代更新 三、聚类效果评价方式 1、轮廓系数的定义 2、整体轮廓系数 3、使用场景 4、优点 5、缺点 6、代码实现方法 四、K-means聚类代码实现 1、API接…

MVC执行流程

(1)用户通过浏览器(客户端)向服务端(后端)发送请求,请求会被前端控制器DispatcherServlet拦截。 (2)DispatcherServlet拦截到请求后,会调用处理器映射器&…

springboot和vue配置https请求

项目场景: 代码发布到线上使用https请求需要配置ssl证书,前后端都需要修改。 问题描述 如图,我们在调用接口时报如下错误,这就是未配置ssl但是用https请求产生的问题。 解决方案: 前端:在vite.config.js文…

单细胞组学大模型(8)--- scGenePT,scGPT和GenePT的结合,实验数据和文本数据的交融模型

–https://doi.org/10.1101/2024.10.23.619972 研究团队和单位 Theofanis Karaletsos–Head Of AI - Science at Chan Zuckerberg Initiative (Chan Zuckerberg Initiative是扎克伯格和他妻子Chan成立的科研&教育机构) 研究简介 研究背景&…

改进萤火虫算法之八:量子萤火虫算法(Quantum-behaved Firfly Algorithm,QFA)

量子萤火虫算法(Quantum-behaved Firfly Algorithm,QFA)是对萤火虫算法的一种改进,旨在提升萤火虫个体的搜索能力。以下是对量子萤火虫算法的详细介绍: 一、萤火虫算法基础 萤火虫算法(Firefly Algorithm,FA)是一种基于群体智能的优化算法,由剑桥大学的Xin-She Yang在…

C++----STL(string)

引言:STL简介 什么是STL STL(standard template libaray-标准模板库): 是 C标准库的重要组成部分(注意:STL只是C标准库里的一部分,cin和cout也是属于C标准库的),不仅是一个可复用的组件库&…

基于“大型园区”网络设计

基于“大型园区”网络设计 目 录 第1章 项目概述1 1.1 项目背景1 1.2 公司概况1 1.3 网络现状2 第2章 需求分析4 2.1 部门需求4 2.2 配置需求4 2.3 网络功能需求5 第3章 网络设计6 3.1 建设原则6 3.2 网络拓扑结构6 3.3 IP地址和VLAN划分8 3.4 核心层设计9 3.5 …

宝塔面板 申请证书后 仍然提示不安全

证书显示有效,但是网站显示不安全 导致的原因是引入静态文件使用的是HTTP,查看方法为F12打开console控制台 可以看到静态文件全部都是HTTP 网站采用wordpress搭建,基于问题解决,其他方式搭建也是一样,处理掉所有的H…