【网络】数据链路层

目录

以太网

以太网的帧格式

MSS

交换机

MTU对UDP的影响

ARP协议


数据链路层是软件层的最底层协议,它的下面就是物理层,那么下面我们就来介绍一下它负责在网络通信中完成什么工作

我们前面说的IP协议是解决如何进行跨网络转发的,也就是转发时的路径选择问题。比如一个主机A要跨公网转发到主机B,先不要说A如何到B,我们先说A如何到距离A最近的路由器(与A处于同一个子网,负责转发A的消息的路由器)的,这就需要用到数据链路层

并且跨网络转发到目标主机本质就是一个报文经历了无数个子网

所以数据链路层是解决同一个网段之间的主机的如何通信的问题的,即局域网通信

以太网

我们目前应用非常广泛的局域网就是以太网,就是我们平常的拉网线

“以太网”不是一种具体的网络,而是一种技术标准

以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN(WIFI属于无线LAN的一种实现方式)等

每个网卡都有自己的MAC地址,我们可以通过下面的命令看到

ether就是以太的意思,MAC地址占6个字节

以太网的帧格式

下面是以太网的帧格式

我们可以看到数据大小的范围是46-1500,这个1500就是我们之前说的mtu(Maximum Transmission Unit最大传输单元),也正是有mtu的存在,tcp才不会将滑动窗口中的数据一次性全发,而是分批次。

如果IP层给的数据少于46个字节我们不用担心,数据链路层会自动填充。填充后也不用担心找不到IP层有效载荷的结尾,因为IP协议报头字段中不仅要四位首部长度,还有16位总长度

那么以太网发出的报文报头和有效载荷如何分离呢?就是通过14个字节的固定长度的报头

如何分用(向上交付)呢?就是通过报头中的类型字段,不同的数字表示上层是IP还是ARP还是RARP(ARP和RARP也属于数据链路层但是位于MAC帧上层)

MSS

不分片,TCP能发送的单次最大长度是多少呢?也就是说IP报头+TCP报头+TCP有效载荷=1500字节

那么TCP有效载荷其实最大就是1460字节,这个我们叫做MSS(Maximum Segment Size 最大段尺寸)

其实TCP进行三次握手时,双方就会交换这个尺寸,并且用两者间最小的那个作为最终的MSS

所以局域网进行通信就是数据链路层收到一个报文后看报文中的MAC地址是不是自己,不是自己就可以丢弃了,如果是自己在交给上层IP,由IP决定报文中IP地址是否相同,如果相同就交TCP,不同就证明还要继续传,此时再交给数据链路层让它封装发送

以太网同一时刻只能是一台主机发消息,否则信息会碰撞,影响数据。如果消息碰撞那么进行重发,所以不止有TCP会重发

所以我们可以把局域网当成临界资源,同一时刻只允许一台主机访问;像令牌环网就更明显了,令牌就相当于一把锁,只有持有锁的主机才可以发消息

交换机

下面我们来介绍一下交换机,交换机是在局域网中负责转发和划分碰撞域的设备

我们知道局域网中我们要尽量避免消息碰撞,于是我们可以引入交换机这个设备,它的大致工作图像下面这样

一开始交换机其实并不知道各个主机的存在,交换机也不会影响消息的转发,随着消息的不断发送交换机的左右接口慢慢认识到了左边和右边都有哪些主机存在,于是之后比如A向G发消息,那么交换机还是要把消息转发到右边的,但是如果A给C发消息,交换机就不会把消息发送到右边,就减小了消息碰撞的概率

MTU对UDP的影响

一旦UDP携带的数据超过1472(1500-20(IP首部)-8(UDP首部)),那么就会在网络层分成多个IP数据包

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

ARP协议

上面说数据链路层是负责子网内转发,但事实是我们并不知道以太网帧格式的目的MAC地址,所以ARP就是一种协议,负责把IP地址转成IP对应的MAC地址

ARP也属于数据链路层但是位于MAC帧上层,它属于一个管理的协议,并不向上交付

ARP采取的方式是以广播的形式向局域网内的主机发送请求,然后与目标IP相符的主机会发回它自己的MAC地址,就是通过这样的简单的形式就可以拿到目标主机的MAC地址

我们用arp -a可以查到Linux和Windows中的arp缓存,就是IP地址和MAC地址的对应关系

这个缓存只会缓存一段时间,因为其实MAC地址也会更新,比如换网卡

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

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

相关文章

零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——下

细节较多,篇幅较大,分为上/下两部分发布在两篇文章内 另一部分详见下面文章 零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——上https://blog.csdn.net/weixin_62808713/article/details/143572185 八、第二层数据库服务器权限获取 猜到新闻资…

13-鸿蒙开发中的综合实战:华为登录界面

大家好,欢迎来到鸿蒙开发系列教程!今天,我们将通过一个综合实战项目来实现一个华为登录界面。这个项目将涵盖输入框组件、按钮组件、文本组件和布局容器的使用,帮助你更好地理解和应用这些组件。无论你是初学者还是有一定经验的开…

告别复杂协作:Adobe XD的简化替代方案

Adobe XD是一款集成UI/UX设计和原型创建功能的设计平台。它允许用户进行网页、移动应用的设计,以及原型的绘制,并且能够将静态设计转化为动态的交互原型。尽管Adobe XD提供了这些功能,但它依赖于第三方插件,且插件库有限&#xff…

ctfshow web文件上传 web166-170

1.web166 通过源码上传发现只能传zip,尝试一下图片上传也不行 把随便一张图片打包成zip文件,上传后发现有一个下载的地方,猜测是文件上传,尝试zip伪协议发现失败,打包php文件也失败了,不知为什么,&#x…

二开CS—上线流量特征shellcode生成修改模板修改反编译打包

前言 免杀几乎讲的差不多了,今天讲个CS的二次开发。我们原生态的CS特征肯定都是被提取完的了,包括它的流量特征,而我们要做的就是把它的流量特征给打乱,还可以修改生成的后门,使其生成即免杀。 实验环境 CS4.4&…

7.《双指针篇》---⑦三数之和(中等偏难)

题目传送门 方法一:双指针 1.新建一个顺序表用来返回结果。并排序数组。 2.for循环 i 从第一个数组元素遍历到倒数第三个数。 3.如果遍历过程中有值大于0的则break; 4.定义左右指针,以及target。int left i 1, right n - 1; int target -nums[i];…

Muse-Ant-Desgin-Vue 改造成 Vite+Vue3

后台地址:https://www.creative-tim.com/product/muse-vue-ant-design-dashboard?refantdv-official 一、配置 ViteAntDesginVue 配置ViteAntDesginVue ViteAntDesginVue配置:https://blog.csdn.net/qq_17523181/article/details/143241626 安装vue-ro…

实习作假:阿里健康实习做了RABC中台,还优化了短信发送流程

最近有二本同学说:“大拿老师,能帮忙看下简历吗?” 如果是从面试官的角度来看,这个同学的实习简历是很虚假的。 但是我们一直强调的是:校招的实习简历是不能出现明显的虚假。 首先,你去公司做事情&#…

疯狂Java讲义-Java基础类库

Java基础类库 本章思维导图 5-0Java基础类库.png 用户互动 使用Scanner获取键盘输入 Scanner主要提供了两个方法来扫描输入 hasNextXxx(); 是否还有下一个输入项,其中Xxx可以是int、long等代表基本数据类型的字符串。 nextXxx(); 获取下一个输入项。Xxx的含义与前一…

[前端] 为网站侧边栏添加搜索引擎模块

前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站SEO优化(让用户可以通过点击搜索按钮完成一次对本人网站的搜索,从而实现对网站的搜索引擎优化)。 最开始,我只是想实现一个简单的百度搜索…

汇聚全球前沿科技产品,北京智能科技产业展览会·世亚智博会

在北京这座古老而又充满现代气息的城市中,一场科技与创新的盛宴正悄然上演——北京智能科技产业展览会(简称:世亚智博会),作为全球前沿科技的汇聚地,不仅展示了人工智能、5G通信、虚拟现实等尖端技术的最新…

JAVA基础:数组 (习题笔记)

一,编码题 1,数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”&…

猎板PCB2到10层数的科技进阶与应用解析

1. 单层板(Single-sided PCB) 定义:单层板是最基本的PCB类型,导线只出现在其中一面,因此被称为单面板。限制:由于只有一面可以布线,设计线路上有许多限制,不适合复杂电路。应用&…

2025年山东省考报名流程图解

2025年山东公务员考试备考开始 为大家整理了从笔试到录用的全部流程,希望可以帮助到你们!参考2024年山东省考公告整理,请以最新公告为准! 一、阅读公告和职位表 二、职位查询 三、网上报名 四、确认缴费 五、网上打印准考证 六、参…

修改elementUI等UI组件样式的5种方法总结,哪些情况需要使用/deep/, :deep()等方式来穿透方法大全

文章目录 方法 1:全局修改样式示例:修改 `ElMessage` 的背景色和字体颜色方法 2:修改特定类型的 `ElMessage` 样式-全局-不需要穿透示例:修改 `ElMessage` 成功类型的样式方法 3:通过 Scoped CSS 在组件内部修改-局部-不需要穿透方法 4:使用 JavaScript 动态修改样式-不需…

pandas——对齐运算+函数应用

引言:对齐运算是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN 一、Series的对齐运算 1.Series 按行、索引对齐 import pandas as pds1 pd.Series(range(10, 20), indexrange(10)) s2…

# Ubuntu 达人九步养成记(1)

Ubuntu 达人九步养成记(1) 目录: 一、ubuntu基本安装 二、设置语言环境 三、设置服务器镜像源 四、在启动栏添加终端图标 五、使用apt更新和升级系统软件 六、使用apt安装软件 七、使用apt删除软件以及apt-get 八、deb格式及谷歌浏览…

优选算法第五讲:位运算模块

优选算法第五讲:位运算模块 1.常见的位运算总结2.判断字符是否唯一3.丢失的数字4.两整数之和5.只出现一次的数字II6.消失的两个数字 1.常见的位运算总结 2.判断字符是否唯一 链接: link class Solution { public:bool isUnique(string astr) {if(astr.size() >…

计算机视觉算法真的难学吗?这些技巧让你轻松掌握

在当今这个数字化迅猛发展的时代,计算机视觉作为人工智能的重要分支,正在逐渐改变我们的生活和工作方式。很多人可能会觉得计算机视觉算法难以掌握,尤其是在面对复杂的数学和编程时,常常会感到无从下手。不过,实际上&a…

基于YOLO11/v10/v8/v5深度学习的老鼠智能检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…