Linux网络基础-5

news2024/11/24 17:50:20

在上一篇博客中我们对网络层的典型协议--IP进行了介绍,那么本篇博客作为网络方面的最后一片博客,我们对网络中最后内容--链路层协议进行讲解。

目录

1.链路层协议

1.1MAC地址

1.1.1类型

1.1.2作用

1.2以太网协议

1.2.1协议格式

1.2.2ARP协议

1.2.3获取指定硬件地址

1.2.4MTU

1.链路层协议

链路层是负责相邻设备之间的数据传输,在网络层中的IP地址描述的是数据从一台主机到另一台主机,是数据收发的起点和终点。但是在数据传输过程中并不是由起点直接传达到终点,这中间过程中需要经历层层转发才可以,链路层便是为这一部分内容服务的。

1.1MAC地址

MAC地址是网卡的物理硬件地址,是网卡出山时所设定的固定地址。它是为上述转发过程中所经过的中间设备进行标识,通过MAC地址,我们可以很好的清楚数据传输过程所经过的中间转发设备。

1.1.1类型

MAC地址的数据类型是:uint8_t mac[6],是一个无符号的48位数字。

1.1.2作用

MAC地址的作用也正是设计它的初衷,即作为相邻设备之间的标识。

1.2以太网协议

1.2.1协议格式

其中,6字节对端&6字节源端MAC地址:用于描述通信相邻的两个硬件设备;2字节协议类型:所封装的报文data所使用的协议类型;4字节位校验和:进行差错校验。

1.2.2ARP协议

ARP协议是介于链路层和网络层之间的协议,既包含了MAC地址也包含了IP地址。

笔者引用《TCP-IP详解》一书中的结构说明,在上图中进行展示。

其中,2字节硬件类型:描述链路层网络协议--以太网;2字节协议类型:要进行地址转换的地址类型;1字节硬件地址长度:存储硬件地址长度;1字节协议地址长度:存储转换使用的协议地址长度; 2字节op:1--标识ARP请求,2--标识ARP应答。

6字节源端MAC地址,4字节源端IP地址,6字节对端MAC地址,4字节对端IP地址。

1.2.3获取指定硬件地址

  1. 当前主机封装一个ARP请求,在请求中填充源端MAC地址和IP地址,并将以太网帧中头中的目标MAC地址填充为:0XFFFFFFFFFFFF -- 广播地址;
  2. 将ARP请求广播给所有相邻设备;
  3. 收到ARP请求的主机,对数据帧进行解析,如果目标IP地址匹配则填充自己的MAC地址和IP地址进行相应,如果不匹配则直接丢弃;
  4. 当前主机收到相应之后,便知道了指定设备的MAC地址;
  5. 当前主机将MAC-IP映射关系缓存起来,并保存一段时间(非永久)。

了解完如何过去指定硬件地址的操作内容之后,我们可以来简单讲解一种网络攻击--ARP欺骗攻击,也叫做局域网攻击。

它的攻击方式便是:恶意主机伪造IP地址不断的给网关设备发送ARP响应,告知网关自己是子网中的某个主机;与此同时,该恶意主机还会给子网中的其他主机不断发送ARP响应,告知其他主机自己是网关设备。

于是这两种角色的设备会被不断得到的ARP响应覆盖掉自己原有的ARP映射表,普通主机认为恶意主机是网关设备,将数据发送给恶意主机;网关设备认为恶意主机是指定设备,将响应发送给恶意主机。这样,该恶意主机便达成了网络攻击的目的--窃取数据。

1.2.4MTU

以太网中的链路层对数据帧长度存在一个限制,其最大值的默认值是1500字节,链路层将这个特性称作MTU,即最大传输单元。

顺便罗列出几种常见的最大传输单元(MTU):

接下来我们来看一看MTU的存在对传输层协议的影响:

对于TCP协议,我们在三次握手建立连接阶段便会协商MSS(根据MTU计算得到的传输最大数据),然后在后续的数据传输过程中,每次从缓冲区中取出合适大小的数据进行头部封装后传输。TCP在传输层会自动将数据进行分段,因此不会在网络层出现数据分片。

对于UDP协议,并不存在协商MSS(无连接),只要传输的数据大小最大小于64k-8就可以传输,但是有可能会因为网络层传输中,因为数据大小大于MTU而导致数据分片。但是,数据分片之后的重组是有可能失败的(分片越多,越容易失败),重组失败便会导致数据重传,传输效率低下。因此,我们在使用UDP进行数据传输过程中,可以在应用层的程序中设计MSS,即在传输时便将数据分割完成,尽量减少数据在网络层的分片。

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

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

相关文章

现场直击 | 沈阳新技术交流会,实景三维再“出圈”

5月19日,由中国测绘学会、中国地理信息产业协会指导,辽宁省测绘地理信息学会、辽宁省土地学会地理信息专业委员会主办,武汉大势智慧科技有限公司、沈阳市勘察测绘研究院有限公司承办的“全自主、全流程、全覆盖”2023实景三维新技术交流会沈阳…

QT桌面项目(日历程序)

文章目录 前言一、QCalendarWidget介绍二、日历代码实现总结 前言 本篇文章继续为大家讲解QT桌面项目,那么这篇文章我们将实现一个日历程序。在QT中要想实现一个简单的日历程序是非常简单的,使用QT中自带的QCalendarWidget类即可实现。 一、QCalendarW…

LAMP的部署(天光渐暗,暮色里遗漏了一丝蓝,星辰便从中亮起。)

一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP&#…

阻抗板是否高可靠,华秋有话说

随着高频高速电子产品的快速发展,信号传输过程更容易出现反射、串扰等信号完整性问题,且频率越高、传输速率越快,信号损耗越严重,如何降低信号在传输过程中的损耗、保证信号完整性是高频高速PCB发展中的巨大挑战。 在高速PCB设计…

USB主机枚举设备

https://space.bilibili.com/489340606/channel/collectiondetail?sid896957 以下图片来自于沁恒微电子蔡亮工程师的讲课,对USB开发入门很有好处。 1. USB设备的组成结构 一个设备可以有多个配置,但同一时刻只能有一个生效。一个配置可以有多个接口&a…

Linux——进程概念详解

目录 一.什么是进程? 2.PCB的含义,为什么会存在PCB? 整体解析操作系统对进程的管理方式: 二.对比Windows系统: 三.Linux——进程 学习一个新指令:ps ajx 四.接下来学习几个进程的系统调用函数&#xff1…

版图设计IC617 virtuoso工具使用,创建一个库

库是用于创建自己的芯片的,一个库可以看成一个芯片,一个芯片又包含各种元器件。cell就是用于定义具体的元器件的。元器件包含版图,原理图,逻辑符号,等各种视图。 一 创建库过程 1.1 库的创建 1. 在Library Manager下…

PaLM 2重磅来袭,深挖谷歌92页技术报告亮点总结

谷歌CEO桑达尔・皮查伊(Sundar Pichai)亲切地将2023年称为是一个AI busy year,当地时间5月10日,谷歌IO大会上,谷歌大语言模型PaLM 2虽迟但到。作为一个“AI-first”公司,谷歌在Bard聊天机器人爆出事实性错误…

异常排查 | 重复Cookie访问导致HTTP请求引发空指针异常

文章目录 一、场景描述二、异常说明三、查找问题四、调试排查五、思考分析六、解决方案七、写在最后 近几日,遇到一个困惑了我很久的异常,是浏览器页面向Tomcat服务器发起HTTP请求时,服务器发还回来的一处异常 java.lang.NullPointerExceptio…

html实现酷炫星空可视化大屏(附源码)

文章目录 1.设计来源1.1 可视化架构1.2 可视化大屏界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/130884793 html实现酷炫星空可视化大屏(附源码) ,html大…

华为OD机试真题(Java),跳跃游戏 II(100%通过+复盘思路)

一、题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]0i j < 返回到达 num…

Talk预告 | ICML‘23 Oral 字节跳动 AI Lab 研究员郑在翔:人工智能如何助力蛋白质设计?

本期为TechBeat人工智能社区第500期线上Talk&#xff01; 北京时间5月25日(周四)20:00&#xff0c;字节跳动 AI Lab 研究员 — 郑在翔的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “人工智能如何助力蛋白质设计 ”&#xff0c;届时将介绍基于…

springboot+vue智慧食堂系统(java项目源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的智慧食堂系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

Rancher添加集群报错:Etcd Cluster is not healthy

原因&#xff1a; 有一台虚拟机在升级内核失败后&#xff0c;回滚至快照。但由于快照版本太老旧&#xff0c;和当前的rancher版本不匹配&#xff0c;服务器上的agent等需要清楚后&#xff0c;重新在rancher添加集群&#xff1b;但是只删除了rancher镜像以及agent相关容器&#…

Linux设备树:删除节点和属性的方法

[摘要]&#xff1a;本文主要介绍了在设备树中删除节点&#xff08;node&#xff09;和属性&#xff08;property&#xff09;的方法。为了便于理解&#xff0c;笔者先介绍了 dtsi 和 dts 的关系&#xff0c;然后构建了虚拟的需求场景&#xff0c;最终给出示例。 背景知识 设备…

易基因:MeRIP-seq等揭示m6A reader YTHDF1在结直肠癌PD-1免疫治疗中的作|Gut

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 结直肠癌&#xff08;colorectal cancer &#xff0c;CRC&#xff09;是全球最常见的癌症之一&#xff0c;转移性CRC患者的5年生存率低于20%。免疫检查点阻断&#xff08;Immune checkpo…

基于LLMs的多模态大模型(MiniGPT-4,LLaVA,mPLUG-Owl,InstuctBLIP,X-LLM)

这个系列的前一些文章有&#xff1a; 基于LLMs的多模态大模型&#xff08;Visual ChatGPT&#xff0c;PICa&#xff0c;MM-REACT&#xff0c;MAGIC&#xff09;基于LLMs的多模态大模型&#xff08;Flamingo, BLIP-2&#xff0c;KOSMOS-1&#xff0c;ScienceQA&#xff09; 前…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问):mov、add、sub、push、pop

《汇编语言》- 读书笔记 - 第3章-寄存器&#xff08;内存访问&#xff09; 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

基于LSB实现文本、图片、压缩包的隐藏

关于LSB的相关介绍&#xff1a; LSB全称为 Least Significant Bit&#xff08;最低有效位&#xff09;&#xff0c;是一种基于图片最低有效位修改储存信息的隐写方法&#xff0c;在CTF杂项中经常会遇到&#xff0c;LSB属于空域算法中的一种&#xff0c;是将信息嵌入到图像点中…

OPCUA从入门到精通看这里就够了

本文将会从以下几个方面介绍 1.OPCUA是什么 2.OPCUA常用的工具有那些 3.OPCUA的官网 4.使用opcua常用的方法和功能介绍 5.根据官网自己封装了一个opcuaclient类&#xff0c;并说明每个方法的用处 6.根据4中的opcuaclient类自己写了demo 本文所有用到的资料在此下载包括U…