数据链路层【Linux网络复习版】

 

目录

 

一、数据链路层主要解决的是什么问题?

二、什么是以太网?

三、什么是MAC地址?

 四、以太网帧的格式是什么?

五、 什么是MTU?

六、MTU和分片

MTU对IP协议的影响?

 如何分片?

如何组装? 

如何识别有无丢失?

 怎么知道第一个是不是被分片了?

怎么避免分片?MSS

 七、局域网内主机如何通信?

交换机 

八、ARP协议

ARP协议的工作原理

 ARP协议报头

ARP请求发送过程 

 ARP应答发送过程

ARP欺骗


一、数据链路层主要解决的是什么问题?

直接相连的主机(同一网段的主机-路由器)进行数据交付的过程。

二、什么是以太网?

以太网(Ethernet)是一种局域网技术。既包含数据链路层的内容,也包含了一些物理层的内容。除了以太网以外,还有令牌环网,无线LAN等。

三、什么是MAC地址?

MAC地址用来识别数据链路层中相连的节点,在网卡出厂时就确定了,不能修改,具有全球唯一性(虚拟机中的MAC地址不是真实的MAC地址,可能会有冲突;也有写网卡支持用户配置MAC地址)

MAC地址长度为48位,即6字节,一般用16进制数字加上冒号的形式来表示。

 四、以太网帧的格式是什么?

以太网帧首部由 目的mac地址、源mac地址类型组成。

帧类型:该字段的值通常是一个16位的十六进制数,对应不同的协议使用不同的值。例如:

  • 0x0800:表示IP数据报,会把有效载荷交给上层 ------ 网络层        
  • 0x0806:表示ARP请求/响应,发起ARP请求/应答。

五、 什么是MTU?

以太网中规定数据长度最小为46字节,最大为1500字节,ARP数据包长度如果不够46字节,就要在后面补填充位。

MTU就是以太网的最大传输单元:1500(不包括以太网首部),不同的网络类型有不同的传输单元。

六、MTU和分片

MTU对IP协议的影响?

 由于数据链路层MTU的限制,网络层就要对较大数据包进行分片。

 如何分片?

3位标志:第二位表示是否允许分片(0允许);第三位是结束标记(当前是否是最后一个小包,0是/1不是)

13位片偏移:比如4500字节的数据要进行分片,那么第一片的片偏移就是0,第二片的片偏移是1500,第三片的片偏移就是3000。

如何组装? 

a.将分片全聚在一起

b.根据片偏移排序

如何识别有无丢失?

根据片偏移计算。

一旦这些小包中任意一个小包丢失,接收段重组就会失败,但IP层不负责重传。

 怎么知道第一个是不是被分片了?

片偏移为0且接结束标记为1。

怎么避免分片?MSS

分片会增加丢包概率,因为ip中任何一个分片丢失,都要上层重发。所以尽量不分片。

双方tcp三次握手时,协商好双方mss的较小值,就能避免分片。

以太网的mtu是1500(有效载荷)

则 IP的最大有效长度 = 1500 - IP报头(20Byte)=  1480

则 TCP的最大有效长度 = 1480 - TCP报头(20Byte)= 1460

1460数据就是MSS,通信双方的MSS尽量保持一致,减少分片。

 七、局域网内主机如何通信?

局域网中,是以广播的形式来通信的,就好像在一个班级里,老师说:“xxx过来一下”,此时全班的学生都收到了这条消息,只不过不是告诉自己的,就自动丢弃了。

局域网中任何时刻只允许有一条消息在信道上,否则会产生碰撞(有碰撞检查、碰撞避免算法),那么如果局域网内很多主机,碰撞的概率就会加大,如何缓解?

交换机 

 划分碰撞域,在概率上减少局域网碰撞。

此时,交换机左侧和右侧主机可以同时进行内部通信(eg:h1发给h2,h3发给h4),此时就能见效冲突概率。

数据包每到达一个路由器都要重新解包和封包,更新下一跳的mac地址,mac帧只在局域网中有效。

八、ARP协议

当主机A想跨网络传输到主机B,当数据包到主机B所在网络的网关路由器时,该路由器只知道源ip和目的ip,它如何在局域网内将该数据包送给主机B呢?这是候就要用到ARP协议,来获得IP对应的mac地址。ARP协议建立的IP和MAC地址的映射关系

该协议虽然归属数据链路层,但实际是介于数据链路层和网络层之间的协议。

ARP协议的工作原理

在局域网内广播一条消息,问局域网内xxip地址是谁,对应的mac地址是多少。所有主机收到后,根据xxip发现是向我发起的ARP请求,那么就给它响应一条消息,告诉它自己的mac地址是多少。

 ARP协议报头

硬件类型:数据链路层网络类型,1为以太网。

协议类型:只要转换的地址类型,0x0800为IP;

硬件地址长度:对于以太网为6字节。

协议地址长度:对于IP地址为4字节。

op:1表示ARP请求,2表示ARP应答。

ARP请求发送过程 

如果局域网内一台主机想知道局域网内另一台主机的mac地址(已知其ip地址),那么它可以发起一个ARP请求。

填充ARP报头:

op填1(请求)

发送端mac地址和发送端ip地址:自己的mac地址和ip地址。

目的mac地址:未知,填全F

目的ip地址:已知的

mac帧报头:

目的mac地址:全F(表示广播)

源mac地址:自己的mac地址

由于以太网mac地址是全F,广播,所以局域网内每台主机都会收到,到达某台主机的mac帧层时,发现它的目的mac地址是广播地址,就把数据帧向上交付给ARP层。

ARP层

1)先看op字段。

2)发现op字段是请求,那么继续看目的ip地址,如果与当前主机ip地址相同,则说明是发给本主机的,本主机就会给对方回一个ARP应答。

 ARP应答发送过程

目标主机收到应答,mac帧层发现是发给自己的,将数据帧向上交给ARP层。

ARP层:

1)先看op字段,发现op是2(即应答)

2)提取发送端mac地址+发送端ip地址

如果是其他主机收到应答,那么它在数据链路层就发现不是发给自己的,就丢弃了。

ARP欺骗

1)如何获得同一网段下的其他所有主机的mac地址?

用自己的ip地址和子网掩码按位与得到网络号,遍历所有的ip地址,ping一下,就ok了。

2)ARP欺骗

ARP的缓存是有时间限制的,且多次发送收到应答时,往往会以最新的为准。

同一个局域网内的hostM(攻击机)可以伪造应答发疯狂发送给hostA,hostA就会以为ipA的mac地址是macM,那么它就会给hostM发送报文。

hostM可以选择丢弃该报文,也可以替hostA向Route R去请求,Route R应答也会发送给我,此时hostM就成了中间人。

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

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

相关文章

服务器安装JDK,Maven等常用环境

生产环境部署服务器需要安装一些常用工具,下面我就把常用的jdk,maven,node,git的安装方法和步骤演示 一、安装JDK环境 执行如下命令,安装JDK,所有命令都是 复制,粘贴,回车 yum install -y jav…

感恩的力量!美洲杯魔幻提前预告 阿根廷 ——早读(逆天打工人爬取热门微信文章解读)

梅西还能不能提? 引言Python 代码第一篇 洞见 感恩的力量(深度好文)第二篇 视频新闻结尾 引言 早上早起 昨天晚上1点多才睡 这几天都是 明明很早就准备上床睡觉 但是就是忍不住 吃根雪糕 喝个小饮料 看看最近的欧洲杯比赛 卒 真的是拖延症十…

Linux系统资源监控nmon工具下载及使用介绍

一、资源下载 夸克网盘链接:https://pan.quark.cn/s/2684089bc34d 里面包含了各种分享的实用工具,nmon在 Linux服务器监控nmon工具 文件夹内 文件说明: nmon16p_binaries.tar.gz 为最新的nmon官方工具包,支持linux全平台 nmo…

Hibernate 框架进行对象关系映射(ORM)

Hibernate是一个广泛使用的Java对象关系映射(ORM)框架,它通过将Java类与数据库表关联起来,使得开发人员可以使用面向对象的编程方式进行数据库操作。Hibernate的主要目标是消除冗长的JDBC代码和手动处理SQL的需求,从而…

【Agent应用】运营数据分析与决策建议

基于ERNIE Bot Agent框架实现运营数据分析与决策建议功能。 请注意!!!填入自己的token才可运行。 可以选择上传自己的数据(Excel表格),或者直接使用示例数据演示。 demo链接:https://aistudi…

数学建模理论学习:线性规划模型

三要素:目标函数、约束条件(s.t.)、决策变量(x) 目标函数:z ax1 bx2 cx3 ... 其中c为一个序列,从左到右依次从x1到xn的系数 解决下面的线性规划问题: % 目标函数系数&#xf…

造价信息网工程造价信息最新明细

提供造价信息网工程造价信息、厂商报价市场价,交通工程造价信息,电网工程造价信息,园林苗木绿化造价信息,工程定额免费资源可在 祖国建材通 www.zgjct.com 查询获取下载 造价信息网工程造价信息更新明细如下: 直辖市 …

深度神经网络——什么是决策树?

概述 决策树 是一种有用的机器学习算法,用于回归和分类任务。 “决策树”这个名字来源于这样一个事实:算法不断地将数据集划分为越来越小的部分,直到数据被划分为单个实例,然后对实例进行分类。如果您要可视化算法的结果&#xf…

基于AI技术的车型识别系统---功能页面

一.主窗口 #创建主窗口 window tk.Tk() window.title("图像目标检测系统") window.geometry(1400x700) # 设置窗口大小1.1画布的宽度为1400像素,高度为700像素,画布是放置在window中 #创建背景画布并使用grid布局管理器 canvas_background…

计算机网络知识点(七)

目录 一、简述浏览器从输入URL到展现页面的全过程 二、简述HTTP和HTTPS的区别 1、HTTP 2、HTTPS 3、区别 三、简述HTTP中的referer头的作用 1、HTTP referer是header的一部分。 2、防盗链 3、防止恶意请求 4、空Referer 5、防御CSRF 四、简述HTTP的方法有哪些 1、…

[大师C语言(第三十四篇)]C语言文件操作背后的技术

C语言提供了一系列标准库函数来处理文件操作,包括文件的打开、读写、关闭等。这些函数使得开发者能够方便地与文件系统交互,进行数据的存储和检索。本文将深入探讨C语言文件操作背后的技术,并通过详细的代码示例来展示这些技术的实际应用。 …

Goroutine和协程的区别

线程 定义:线程是操作系统管理的基本执行单元,一个进程可以包含多个线程。重量级:线程是重量级的操作系统资源,创建和销毁线程的开销较大。内存消耗:每个线程有独立的栈空间(通常为几MB)&#…

WHAT - React 学习系列(一)

官方文档 If you have a lot of HTML to port to JSX, you can use an online converter. You’ll get two things from useState: the current state (count), and the function that lets you update it (setCount). To “remember” things, components use state.To mak…

淘宝卖家为啥不退差价怎么回事 淘宝客服不退差价

今天给各位分享淘宝卖家为啥不退差价怎么回事的知识,其中也会对淘宝客服不退差价进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! [1] 拼多多商家不给差价怎么办 首先大家要跟商家进行商量&#…

LVS(Linux Virtual Server)集群,(1)NAT模式

Cluster:集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。 集群分为三种类型: LB(Load Balancing),负载均衡,多个主机组成,每个主机只承担一部分访问请求 HA(High Availiablity)&#xf…

洛杉矶裸机云服务器怎么用

洛杉矶裸机云服务器是一种结合了物理服务器性能和云服务灵活性的高性能计算服务。它为用户提供了高效、安全的计算和存储能力,特别适合需要大量数据处理和快速响应的应用。具体分析如下,rak部落小编为您整理发布洛杉矶裸机云服务器怎么用。 1. 硬件配置选…

c++常考笔记

一 什么是深拷贝,什么是浅拷贝?c 浅拷贝(Shallow Copy) 浅拷贝在C中是默认的复制方式,它复制对象的所有成员变量,但对于指针成员变量,仅复制指针的值(即指向的地址)&am…

IPython的使用技巧

1、解释说明 IPython是一个强大的Python交互式shell,它提供了丰富的功能,如自动补全、历史记录、内置帮助等。IPython使得在命令行下编写和测试Python代码变得更加方便和高效。 2、使用示例 安装IPython: pip install ipython启动IPython…

亲测5个电脑浏览器高效技巧,保证让你搜索效率倍增!

虽然我们每个人的电脑基本每天都会用到浏览器,但你会发现有的人用起浏览器就是噼里啪啦的,找他要个什么网站他都能快速找到,而有的人,经常打开的是广告搜索的网页,找不到搜索的答案非常慢。小编今天就来跟你分享一下我…

LeetCode 热题100 --哈希

哈希 哈希,有限空间映射一个无限的空间。在空间内,有序化进行快速查询。 用空间换时间。 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组…